Futher work on new view dependent overlay node
This commit is contained in:
@@ -89,6 +89,12 @@ void OverlayNode::setOverlayTechnique(OverlayTechnique technique)
|
||||
init();
|
||||
}
|
||||
|
||||
OverlayNode::OverlayData& OverlayNode::getOverlayData(osgUtil::CullVisitor* cv)
|
||||
{
|
||||
OpenThreads::ScopedLock<OpenThreads::Mutex> lock(_overlayDataMapMutex);
|
||||
return _overlayDataMap[cv];
|
||||
}
|
||||
|
||||
void OverlayNode::init()
|
||||
{
|
||||
switch(_overlayTechnique)
|
||||
@@ -332,6 +338,26 @@ void OverlayNode::traverse_OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY(osg::NodeV
|
||||
void OverlayNode::traverse_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY(osg::NodeVisitor& nv)
|
||||
{
|
||||
osg::notify(osg::NOTICE)<<"OverlayNode::traverse() - VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY"<<std::endl;
|
||||
|
||||
|
||||
if (nv.getVisitorType() != osg::NodeVisitor::CULL_VISITOR)
|
||||
{
|
||||
Group::traverse(nv);
|
||||
return;
|
||||
}
|
||||
|
||||
osgUtil::CullVisitor* cv = dynamic_cast<osgUtil::CullVisitor*>(&nv);
|
||||
if (!cv)
|
||||
{
|
||||
Group::traverse(nv);
|
||||
return;
|
||||
}
|
||||
|
||||
OverlayData& overlayData = getOverlayData(cv);
|
||||
|
||||
Group::traverse(nv);
|
||||
|
||||
osg::notify(osg::NOTICE)<<" "<<&overlayData<<std::endl;
|
||||
}
|
||||
|
||||
void OverlayNode::traverse_VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY(osg::NodeVisitor& nv)
|
||||
|
||||
@@ -110,7 +110,7 @@ BEGIN_OBJECT_REFLECTOR(osg::DrawPixels)
|
||||
__void__getSubImageDimensions__unsigned_int_R1__unsigned_int_R1__unsigned_int_R1__unsigned_int_R1,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, drawImplementation, IN, osg::RenderInfo &, state,
|
||||
I_Method1(void, drawImplementation, IN, osg::RenderInfo &, renderInfo,
|
||||
Properties::VIRTUAL,
|
||||
__void__drawImplementation__RenderInfo_R1,
|
||||
"drawImplementation(RenderInfo&) is a pure virtual method for the actual implementation of OpenGL drawing calls, such as vertex arrays and primitives, that must be implemented in concrete subclasses of the Drawable base class, examples include osg::Geometry and osg::ShapeDrawable. ",
|
||||
|
||||
@@ -27,11 +27,19 @@
|
||||
#undef OUT
|
||||
#endif
|
||||
|
||||
BEGIN_ENUM_REFLECTOR(osgSim::OverlayNode::OverlayTechnique)
|
||||
I_EnumLabel(osgSim::OverlayNode::OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY);
|
||||
I_EnumLabel(osgSim::OverlayNode::VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY);
|
||||
I_EnumLabel(osgSim::OverlayNode::VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY);
|
||||
END_REFLECTOR
|
||||
|
||||
BEGIN_OBJECT_REFLECTOR(osgSim::OverlayNode)
|
||||
I_BaseType(osg::Group);
|
||||
I_Constructor0(____OverlayNode,
|
||||
"",
|
||||
"");
|
||||
I_ConstructorWithDefaults1(IN, osgSim::OverlayNode::OverlayTechnique, technique, osgSim::OverlayNode::OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY,
|
||||
Properties::NON_EXPLICIT,
|
||||
____OverlayNode__OverlayTechnique,
|
||||
"",
|
||||
"");
|
||||
I_ConstructorWithDefaults2(IN, const osgSim::OverlayNode &, es, , IN, const osg::CopyOp &, copyop, osg::CopyOp::SHALLOW_COPY,
|
||||
____OverlayNode__C5_OverlayNode_R1__C5_osg_CopyOp_R1,
|
||||
"",
|
||||
@@ -71,6 +79,16 @@ BEGIN_OBJECT_REFLECTOR(osgSim::OverlayNode)
|
||||
__void__traverse__osg_NodeVisitor_R1,
|
||||
"Traverse downwards : calls children's accept method with NodeVisitor. ",
|
||||
"");
|
||||
I_Method1(void, setOverlayTechnique, IN, osgSim::OverlayNode::OverlayTechnique, technique,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setOverlayTechnique__OverlayTechnique,
|
||||
"",
|
||||
"");
|
||||
I_Method0(osgSim::OverlayNode::OverlayTechnique, getOverlayTechnique,
|
||||
Properties::NON_VIRTUAL,
|
||||
__OverlayTechnique__getOverlayTechnique,
|
||||
"",
|
||||
"");
|
||||
I_Method1(void, setOverlaySubgraph, IN, osg::Node *, node,
|
||||
Properties::NON_VIRTUAL,
|
||||
__void__setOverlaySubgraph__osg_Node_P1,
|
||||
@@ -106,9 +124,9 @@ BEGIN_OBJECT_REFLECTOR(osgSim::OverlayNode)
|
||||
__void__setOverlayClearColor__C5_osg_Vec4_R1,
|
||||
"Set the clear color to use when rendering the overlay subgraph. ",
|
||||
"");
|
||||
I_Method0(const osg::Vec4 &, getOverlayClearColor,
|
||||
I_Method0(osg::Vec4, getOverlayClearColor,
|
||||
Properties::NON_VIRTUAL,
|
||||
__C5_osg_Vec4_R1__getOverlayClearColor,
|
||||
__osg_Vec4__getOverlayClearColor,
|
||||
"Get the clear color to use when rendering the overlay subgraph. ",
|
||||
"");
|
||||
I_Method1(void, setTexEnvMode, IN, GLenum, mode,
|
||||
@@ -172,6 +190,42 @@ BEGIN_OBJECT_REFLECTOR(osgSim::OverlayNode)
|
||||
__void__init,
|
||||
"",
|
||||
"");
|
||||
I_ProtectedMethod0(void, init_OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY,
|
||||
Properties::NON_VIRTUAL,
|
||||
Properties::NON_CONST,
|
||||
__void__init_OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY,
|
||||
"",
|
||||
"");
|
||||
I_ProtectedMethod0(void, init_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY,
|
||||
Properties::NON_VIRTUAL,
|
||||
Properties::NON_CONST,
|
||||
__void__init_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY,
|
||||
"",
|
||||
"");
|
||||
I_ProtectedMethod0(void, init_VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY,
|
||||
Properties::NON_VIRTUAL,
|
||||
Properties::NON_CONST,
|
||||
__void__init_VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY,
|
||||
"",
|
||||
"");
|
||||
I_ProtectedMethod1(void, traverse_OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY, IN, osg::NodeVisitor &, nv,
|
||||
Properties::NON_VIRTUAL,
|
||||
Properties::NON_CONST,
|
||||
__void__traverse_OBJECT_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY__osg_NodeVisitor_R1,
|
||||
"",
|
||||
"");
|
||||
I_ProtectedMethod1(void, traverse_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY, IN, osg::NodeVisitor &, nv,
|
||||
Properties::NON_VIRTUAL,
|
||||
Properties::NON_CONST,
|
||||
__void__traverse_VIEW_DEPENDENT_WITH_ORTHOGRAPHIC_OVERLAY__osg_NodeVisitor_R1,
|
||||
"",
|
||||
"");
|
||||
I_ProtectedMethod1(void, traverse_VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY, IN, osg::NodeVisitor &, nv,
|
||||
Properties::NON_VIRTUAL,
|
||||
Properties::NON_CONST,
|
||||
__void__traverse_VIEW_DEPENDENT_WITH_PERSPECTIVE_OVERLAY__osg_NodeVisitor_R1,
|
||||
"",
|
||||
"");
|
||||
I_ProtectedMethod0(void, updateMainSubgraphStateSet,
|
||||
Properties::NON_VIRTUAL,
|
||||
Properties::NON_CONST,
|
||||
@@ -184,12 +238,15 @@ BEGIN_OBJECT_REFLECTOR(osgSim::OverlayNode)
|
||||
I_SimpleProperty(bool, ContinuousUpdate,
|
||||
__bool__getContinuousUpdate,
|
||||
__void__setContinuousUpdate__bool);
|
||||
I_SimpleProperty(const osg::Vec4 &, OverlayClearColor,
|
||||
__C5_osg_Vec4_R1__getOverlayClearColor,
|
||||
I_SimpleProperty(osg::Vec4, OverlayClearColor,
|
||||
__osg_Vec4__getOverlayClearColor,
|
||||
__void__setOverlayClearColor__C5_osg_Vec4_R1);
|
||||
I_SimpleProperty(osg::Node *, OverlaySubgraph,
|
||||
__osg_Node_P1__getOverlaySubgraph,
|
||||
__void__setOverlaySubgraph__osg_Node_P1);
|
||||
I_SimpleProperty(osgSim::OverlayNode::OverlayTechnique, OverlayTechnique,
|
||||
__OverlayTechnique__getOverlayTechnique,
|
||||
__void__setOverlayTechnique__OverlayTechnique);
|
||||
I_SimpleProperty(unsigned int, OverlayTextureSizeHint,
|
||||
__unsigned_int__getOverlayTextureSizeHint,
|
||||
__void__setOverlayTextureSizeHint__unsigned_int);
|
||||
|
||||
Reference in New Issue
Block a user