24 #include <vlutil/vlString.h>
25 #include <matrix/vlVector.h>
29 #include <tbb/mutex.h>
36 class diguyCharacterTypeMapFieldValues;
37 class diguyGestureMetadata;
39 class DtCoordTransform;
43 class DtDiGuySettings;
55 class DtLightPointNode;
58 class DtDiGuyOsgRootNode;
59 class DtDiGuyInstanceTboUpdaterJob;
60 class DtDiGuyScenario;
61 class DtDiGuyInstanceDrawable;
63 class DtOsgGizmoRenderer;
65 struct DtDiGuyCullData;
95 static DtDiGuyScenario* lightweight_instance(
const std::string& dataPath );
118 void initializeVisualComponent();
121 diguyScenario& scenario();
123 virtual void clearScene();
126 virtual osg::Node* characterRoot();
129 virtual bool useGuides()
const;
131 virtual float guideSyncGain()
const;
134 virtual bool useInstancing()
const;
137 virtual bool useTextureVariations()
const;
140 virtual bool useMultithreadedCull()
const;
143 virtual bool useOctree()
const;
146 std::string findCharacterName(
DtElementID parentSceneObjectID );
149 int getSupportsWeightVariations(
DtElementID parentSceneObjectID );
152 bool evalScript(
const std::string& script );
155 static osg::Group* getDiGuyAttachGroup();
158 static osg::Group* getDiGuyInstancingAttachGroup();
161 virtual bool isGeocentric()
const;
190 virtual void updateStats(
int mask,
double duration );
196 virtual const LightConfigDataArray& lightDataArray();
199 virtual void drawDebugLines( osg::RenderInfo& renderInfo,
const osg::Vec3d& eyePoint,
208 virtual void slot_terrainLoaded(
const DtUnicode& terrain,
bool reload );
211 virtual void slot_windowCreated(
DtWindow* window );
214 virtual void slot_windowDestroyed(
DtWindow* window );
217 virtual void slot_ProfilingChanged(
bool active );
220 virtual void slot_reloadShader();
223 virtual void slot_displayConfigurationRealized();
226 virtual void slot_preDraw();
229 virtual void slot_postDraw();
232 virtual void slot_postUpdate();
235 virtual void syncToSharedDiGuySettings();
238 virtual void slot_diGuyInstancingEnabledChanged(
bool enabled );
241 virtual void slot_diGuyInstancedLodChanged(
int lod );
244 virtual void slot_diGuyVisualizeInstancingChanged(
bool enabled );
247 virtual void slot_diGuyTextureVariationsEnabledChanged(
bool enabled );
250 virtual void slot_diGuyMaxDrawDistanceChanged(
float distance );
253 virtual void slot_diGuyMaxMotionUpdateDistanceChanged(
float distance );
256 virtual void slot_diGuyMultiThreadUpdateChanged(
bool enabled );
261 diguyCharacter* getCharacter(
DtElementID parentSceneObjectID );
263 void updateScenario(
double simTime );
264 void setComponentVisualizationMode(
int mode );
266 void createDiGuyScenario();
268 void reloadConfigInfo();
273 static DtDiGuyScenario* createNonVisualInstance(
const std::string& dataPath );
275 static void slot_displayToBeDestroyed(
const std::string& displayName,
DtDe* de );
virtual DtDe & getDe()
returns de
Definition: DtDiGuyScenario.h:181
std::set< DtString > StringSet
Definition: DtDiGuyScenario.h:81
bool myVisualComponentInitialized
Definition: DtDiGuyScenario.h:315
data that's passed around for culling
Definition: DtDiGuyOctreeCullGroup.h:35
Abstract Base class.
Definition: DtWindow.h:25
tbb::mutex myOctreeMutex
Definition: DtDiGuyScenario.h:321
Virtual base class.
Definition: DtVirtualBaseClass.h:19
osg::ref_ptr< DtDiGuyInstanceDrawable > myInstancedDrawable
Definition: DtDiGuyScenario.h:297
osg::ref_ptr< osg::Group > myCharacterRoot
Definition: DtDiGuyScenario.h:293
A unicode string.
Definition: DtUnicode.h:33
bool myDrawSkeletons
Definition: DtDiGuyScenario.h:309
helper struct for data loaded from light config file
Definition: DtDiGuyScenario.h:68
LightConfigDataArray myLightDataArray
Definition: DtDiGuyScenario.h:334
bool myUseInstancing
Definition: DtDiGuyScenario.h:304
int myLightType
Definition: DtDiGuyScenario.h:71
osg::ref_ptr< osg::Group > myDiguyRoot
Definition: DtDiGuyScenario.h:292
diguyScenario * myScenario
Definition: DtDiGuyScenario.h:290
bool myDeIsValid
Definition: DtDiGuyScenario.h:288
Custom per character root node that does custom traversals and short circuits osg lod picking...
Definition: DtDiGuyOsgGraphicsLink.h:99
virtual Instance * createInstance()
Definition: bdiQPropTree_subclasses.h:693
bool myUseMultithreadedCull
Definition: DtDiGuyScenario.h:308
a class to quickly render a bunch of basic primitives as debugging aids basic overview, create an adapter that inherits from DtDebugDrawCallbackInterface then call DtOsgGizmoRenderer::addDebugDrawerCallback() to register it with the system.
Definition: DtOsgGizmoRenderer.h:136
bool myUseTextureVariations
Definition: DtDiGuyScenario.h:306
bool myLightweightInstance
Definition: DtDiGuyScenario.h:316
double myFirstUpdateT
Definition: DtDiGuyScenario.h:300
osg::ref_ptr< osg::MatrixTransform > myInstancingRoot
Definition: DtDiGuyScenario.h:296
tbb::concurrent_vector< DtDiGuyOsgRootNode * > myNoninstancedNodeArray
Definition: DtDiGuyScenario.h:326
Contains DLL export macros.
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:23
osg::ref_ptr< DtLightPointNode > myLightPointNode
Definition: DtDiGuyScenario.h:294
int myStatOctreeUpdate
Definition: DtDiGuyScenario.h:329
float myGuideSyncGain
Definition: DtDiGuyScenario.h:312
bool myDrawIKVisuals
Definition: DtDiGuyScenario.h:310
bool myReAddNodeToSceneGraph
Definition: DtDiGuyScenario.h:337
virtual Octree_64 * octree()
returns octree
Definition: DtDiGuyScenario.h:176
Contains makVrv::DtVirtualBaseClass class.
DT_DLL_VRVCORE double distance(const makVrv::DtCoordinateSystem &, const DtVector &from, const DtVector &to)
Returns the distance from the two points.
DtCoordTransform getTopoToGeoc(const DtVector &location)
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Octree datastructure for managing scene nodes.
Definition: DtOctree.h:27
Derived from osg::Node and is a replacement for the osgSim::LightPointNode represents a group of ligh...
Definition: DtLightPointNode.h:37
std::vector< DtOctreeNode< T > * > NodeVector
Definition: DtOctree.h:79
double myPreviousUpdateTime
Definition: DtDiGuyScenario.h:301
int myDriver
Definition: DtDiGuyScenario.h:72
static int theStatNumCharDrawn
Definition: DtDiGuyScenario.h:279
Octree_64::NodeVector myVisibleOctreeNodes
Definition: DtDiGuyScenario.h:323
osg::ref_ptr< osg::MatrixTransform > myLightPointRoot
Definition: DtDiGuyScenario.h:295
Base class to provide boost signal/slot management.
DtDe & myDe
Definition: DtDiGuyScenario.h:284
DtSignalConnectionManager myConnections
Definition: DtDiGuyScenario.h:319
const char int mode
Definition: ioapi.h:38
std::vector< DtDiguyLightConfig > LightConfigDataArray
Definition: DtDiGuyScenario.h:83
Contains makVrv::DtUniqueID type.
float myMaxMotionUpdateDistance
Definition: DtDiGuyScenario.h:311
Class that renders all the diguy instance objects in one osg drawable, major performance improvement...
Definition: DtDiGuyInstanceDrawable.h:26
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
#define DT_DLL_VRVDIGUY
Definition: vrvDiGuy.h:21
Octree_64 * myOctree
Definition: DtDiGuyScenario.h:322
bool myIsGeocentric
Definition: DtDiGuyScenario.h:299
std::string myAlternateDataPath
Definition: DtDiGuyScenario.h:318
float myStatOctreeUpdateTime
Definition: DtDiGuyScenario.h:330
float myStatPreviousOctreeUpdateTime
Definition: DtDiGuyScenario.h:331
bool myUseGuides
Definition: DtDiGuyScenario.h:305
bool myUseOctree
Definition: DtDiGuyScenario.h:307
static tbb::atomic< int > theStatNumCharInstanced
Definition: DtDiGuyScenario.h:280
std::vector< StringSet > StringSetVec
Definition: DtDiGuyScenario.h:82
float myStatCulltime
Definition: DtDiGuyScenario.h:332
Owns a DiGuy scenario for the application.
Definition: DtDiGuyScenario.h:77
Contains the makVrv::DtDiGuyTypeMapFieldNode class declaration.
std::string myLinkName
Definition: DtDiGuyScenario.h:70
virtual DtDiGuyInstanceDrawable * instancedDrawable()
returns instance drawable singleton
Definition: DtDiGuyScenario.h:187