29 #include <osg/NodeVisitor>
30 #include <osg/Geometry>
31 #include <osg/ref_ptr>
50 class DtIndirectTextureCollectionPolicy;
51 class DtIndirectLimitTextureStrategy;
52 class DtIndirectGeometryStateManager;
54 class DtDynamicTerrainSwitchNode;
55 class DtDynamicTerrainSequenceNode;
56 class DtIndirectAggregateHelper;
57 class DtIndirectModelInfoContainer;
58 class DtLightPointNode;
59 class DtIndirectModelInfo;
60 class DtIndirectDefaultTexturesContainer;
117 virtual void aggregate(osg::Node* node,
int modelId
118 ,
const std::string& modelFileName,
const std::string& modelDefName
122 virtual void apply(osg::Geometry& geometry);
128 virtual void apply(osg::Geode& geode);
131 virtual void apply(osg::Node& node);
134 virtual void apply(osg::Switch& node);
137 virtual void apply(osgSim::MultiSwitch& node);
140 virtual void apply(osg::LOD& node);
143 virtual void apply(osg::Sequence& node);
146 virtual void apply(osg::Billboard& node);
153 virtual void augmentModelInfo(osg::Geometry* geometry
157 , Material& materialForThisGeometry
158 ,
const bool isLight);
162 virtual void apply(osg::MatrixTransform& matTrans);
165 virtual void apply(osgSim::DOFTransform& node);
168 virtual void apply(osg::LightSource& node)
override;
171 virtual int numGeodes()
const;
176 virtual int numGeometries()
const;
180 virtual Material gatherMaterial(osg::StateSet* ss)
const;
183 virtual bool isCullFaceEnabled(
const osg::StateSet* ss)
const;
186 virtual bool isBlendingEnabled(
const osg::StateSet* ss)
const;
189 virtual bool isAlphaToCoverageEnabled(
const osg::StateSet* ss)
const;
201 virtual bool isDepthOnly(
const osg::StateSet* ss)
const;
210 virtual osg::Geometry* createDebugLightSourceCube(osg::LightSource& node);
213 virtual void applyToSwitchStack(osg::Group* node, osg::NodePath& nodePath);
288 friend class ScopedStackOperator;
289 friend class ScopedAnnotationParser;
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
Contains makVrv::DtIndirectUvOffsetManager class.
Contains the DtIndirectBlendEquation class declaration.
DtIndirectUvOffsetManager::ScrollableUvOffsetIdsAndMultipliers myScrollableUvOffsetIdsAndMultipliers
Definition: DtIndirectGeometryAggregator.h:224
DtMaterial class declaration.
std::stack< int > myBillboardModeStack
Definition: DtIndirectGeometryAggregator.h:265
std::stack< AggregatorData > myDataStack
stack of Aggregator as traversal happens.
Definition: DtIndirectGeometryAggregator.h:262
DtIndirectEffectTexturesTemplate & myAggregatedEffectTexturesState
Definition: DtIndirectGeometryAggregator.h:228
DtIndirectLodManager::DequeIndirectLodInfos myLodStack
Definition: DtIndirectGeometryAggregator.h:267
DtDynamicTerrainSwitchNode replaces an osgSim::multiswitch in a terrain patch (or page) that is tagge...
Definition: DtDynamicTerrainSwitchNode.h:74
DtIndirectDofManager::DequeNodeDofInfoPairs myDofStack
Definition: DtIndirectGeometryAggregator.h:273
DtIndirectGeometryTexturesRefPtr myTextures
current collection of textures
Definition: DtIndirectGeometryAggregator.h:236
bool myModelIsOcean
Definition: DtIndirectGeometryAggregator.h:300
const DtIndirectTextureCollectionPolicy & myTextureCollectionPolicy
Definition: DtIndirectGeometryAggregator.h:277
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
int myCurrentParentId
Definition: DtIndirectGeometryAggregator.h:275
std::string myModelDefName
Definition: DtIndirectGeometryAggregator.h:282
bool myLightSourcesDaylightControlled
Definition: DtIndirectGeometryAggregator.h:293
current state of the model traversal
Definition: DtIndirectGeometryAggregator.h:233
Contains the DtIndirectBlendFunction class declaration.
DtIndirectDefaultTexturesContainer & myDefaultTexturesContainer
cache to avoid repeated look ups via DtIndirectDefaultTexturesContainer::instance(myDe) ...
Definition: DtIndirectGeometryAggregator.h:296
std::deque< NodeSwitchInfoPair > DequeNodeSwitchInfoPairs
Definition: DtIndirectSwitchManager.h:76
DtIndirectGeometryTexturesRefPtr myDefaultTextures
Definition: DtIndirectGeometryAggregator.h:286
Class that loads and contains a bunch of models registered with the registrar. It is owned by the Ind...
Definition: DtIndirectModelInfoContainer.h:76
Abstract class to look in the stateset and collect textures specified via its template The effect tex...
Definition: DtIndirectTextureCollectionPolicy.h:38
unsigned int myMaxUvOffsetId
Definition: DtIndirectGeometryAggregator.h:222
DtIndirectPolygonOffset myPolygonOffset
polygon offset settings.
Definition: DtIndirectGeometryAggregator.h:255
Indirect rendering works because we are able to combine multiple geometries into a single 'aggregated...
Definition: DtIndirectGeometryAggregator.h:85
bool myAlphaToCoverageEnabled
a2C enabled or not
Definition: DtIndirectGeometryAggregator.h:246
DtIndirectUvOffsetManager::AnnotationToUvOffsetMap myAnnotationToIdMap
Definition: DtIndirectGeometryAggregator.h:223
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
Contains the DtIndirectEffectTexturesTemplate class declaration.
Template for 32/64 bit Axis Aligned bounding boxesnot virtual because its stored as is on the GPU...
Definition: DtAxisAlignedBoundingBox.h:27
std::deque< NodeDofInfoPair > DequeNodeDofInfoPairs
Definition: DtIndirectDofManager.h:75
non virtual container class for defining a blending function
Definition: DtIndirectBlendFunction.h:29
Contains makVrv::DtIndirectDofManager class.
Axis Aligned Bounding Box class.
Simple state/glmodes class for handling setting up modes It can now handle generic state modes and at...
Definition: DtIndirectGeometryStateManager.h:31
std::stack< unsigned int > myLastUvOffsetIdStack
Definition: DtIndirectGeometryAggregator.h:226
const char * creatorTypeName< DtIndirectGeometryAggregator >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectGeometryAggregator.h:77
class to hold osg Textures (diffuse map texture + effect textures) basically just a list of osg textu...
Definition: DtIndirectGeometryTextures.h:26
std::map< std::string, unsigned int > AnnotationToUvOffsetMap
Definition: DtIndirectUvOffsetManager.h:53
int myNumGeometries
Definition: DtIndirectGeometryAggregator.h:217
std::unordered_map< int, MultiplierAndTrackSide > ScrollableUvOffsetIdsAndMultipliers
Definition: DtIndirectUvOffsetManager.h:65
DtIndirectSwitchManager::DequeNodeSwitchInfoPairs mySwitchStack
Definition: DtIndirectGeometryAggregator.h:269
bool myCullFaceEnabled
cull face state
Definition: DtIndirectGeometryAggregator.h:240
Derived from osg::Node and is a replacement for the osgSim::LightPointNode represents a group of ligh...
Definition: DtLightPointNode.h:37
loads and contains various core default textures used by the indirect system
Definition: DtIndirectDefaultTexturesContainer.h:27
int myMaxDofId
Definition: DtIndirectGeometryAggregator.h:274
int myLastIndexOffset
Definition: DtIndirectGeometryAggregator.h:220
This class is passed as a pointer to DtIndirectTextureProcessor. The processor then uses this in conj...
Definition: DtIndirectLimitTextureStrategy.h:65
DtVirtualBaseClassCreator< DtIndirectGeometryAggregator, DtIndirectModelInfoContainer &, DtIndirectEffectTexturesTemplate &, DtIndirectGeometryStateManager &, const DtIndirectTextureCollectionPolicy &, const DtIndirectLimitTextureStrategy & > DtIndirectGeometryAggregatorCreator
creator
Definition: DtIndirectGeometryAggregator.h:65
DtIndirectBlendFunction myBlendFunction
the blending function
Definition: DtIndirectGeometryAggregator.h:249
Contains makVrv::DtIndirectSwitchManager class.
friend DtIndirectGeometryAggregatorCreator
Definition: DtIndirectGeometryAggregator.h:88
Material myMaterial
current indirect material
Definition: DtIndirectGeometryAggregator.h:238
non virtual container class for defining a blending equation
Definition: DtIndirectBlendEquation.h:30
std::stack< osg::Matrix > myMatrixStack
Definition: DtIndirectGeometryAggregator.h:263
DtIndirectModelInfoContainer & myModelInfoContainer
Definition: DtIndirectGeometryAggregator.h:230
int myNumGeodes
Definition: DtIndirectGeometryAggregator.h:216
std::string myModelFileName
Definition: DtIndirectGeometryAggregator.h:280
Contains makVrv::DtIndirectLodManager class.
int myModelId
Definition: DtIndirectGeometryAggregator.h:218
non virtual container class for defining a polygon offset state
Definition: DtIndirectPolygonOffset.h:18
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
bool myBlendingEnabled
blending enabled or not
Definition: DtIndirectGeometryAggregator.h:243
const DtIndirectLimitTextureStrategy & myLimitTextureStrategy
Definition: DtIndirectGeometryAggregator.h:298
Material myDefaultMaterial
Definition: DtIndirectGeometryAggregator.h:284
Contains the DtIndirectGeometryTextures class declaration.
std::deque< IndirectLodInfo > DequeIndirectLodInfos
Definition: DtIndirectLodManager.h:66
DtIndirectGeometryStateManager & myStateManager
Definition: DtIndirectGeometryAggregator.h:229
Contains the DtIndirectPolygonOffset class declaration.
Class that allows you to abstractly register effect texture types the effect texture types are client...
Definition: DtIndirectEffectTexturesTemplate.h:40
DtIndirectBlendEquation myBlendEquation
the blending equation
Definition: DtIndirectGeometryAggregator.h:252
DtDe & myDe
Definition: DtIndirectGeometryAggregator.h:291
bool myDepthOnly
depth only?
Definition: DtIndirectGeometryAggregator.h:258