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;
106 static DtDiGuyScenario* lightweight_instance(
const std::string& dataPath );
129 void initializeVisualComponent();
132 diguyScenario& scenario();
134 virtual void clearScene();
137 virtual osg::Node* characterRoot();
140 virtual bool useGuides()
const;
142 virtual float guideSyncGain()
const;
145 virtual bool useInstancing()
const;
148 virtual bool useTextureVariations()
const;
151 virtual bool useMultithreadedCull()
const;
154 virtual bool useOctree()
const;
157 std::string findCharacterName(
DtElementID parentSceneObjectID );
160 diguyCharacter* getCharacter(
DtElementID parentSceneObjectID);
163 int getSupportsWeightVariations(
DtElementID parentSceneObjectID );
166 bool evalScript(
const std::string& script );
169 static osg::Group* getDiGuyAttachGroup();
172 static osg::Group* getDiGuyInstancingAttachGroup();
175 virtual bool isGeocentric()
const;
204 virtual void updateStats(
int mask,
double duration );
210 virtual const LightConfigDataArray& lightDataArray();
213 virtual const StationConfigArray& stationDataArray();
216 virtual void drawDebugLines( osg::RenderInfo& renderInfo,
const osg::Vec3d& eyePoint,
227 virtual void slot_terrainLoaded(
const DtUnicode& terrain,
bool reload );
230 virtual void slot_windowCreated(
DtWindow* window );
233 virtual void slot_windowDestroyed(
DtWindow* window );
236 virtual void slot_ProfilingChanged(
bool active );
239 virtual void slot_reloadShader();
242 virtual void slot_displayConfigurationRealized();
245 virtual void slot_preDraw();
248 virtual void slot_postDraw();
251 virtual void slot_postUpdate();
255 virtual void syncToSharedDiGuySettings();
258 virtual void slot_diGuyInstancingEnabledChanged(
bool enabled );
261 virtual void slot_diGuyInstancedLodChanged(
int lod );
264 virtual void slot_diGuyVisualizeInstancingChanged(
bool enabled );
267 virtual void slot_diGuyTextureVariationsEnabledChanged(
bool enabled );
270 virtual void slot_diGuyMaxDrawDistanceChanged(
float distance );
273 virtual void slot_diGuyMaxMotionUpdateDistanceChanged(
float distance );
276 virtual void slot_diGuyMultiThreadUpdateChanged(
bool enabled );
278 virtual void updateImgui(
void);
283 void updateScenario(
double simTime );
284 void setComponentVisualizationMode(
int mode );
286 void createDiGuyScenario();
291 static DtDiGuyScenario* createNonVisualInstance(
const std::string& dataPath );
293 static void slot_displayToBeDestroyed(
const std::string& displayName,
DtDe* de );
virtual DtDe & getDe()
returns de
Definition: DtDiGuyScenario.h:195
std::set< DtString > StringSet
Definition: DtDiGuyScenario.h:91
std::vector< DtDiguyStationConfig > StationConfigArray
Definition: DtDiGuyScenario.h:94
bool myVisualComponentInitialized
Definition: DtDiGuyScenario.h:334
data that's passed around for culling
Definition: DtDiGuyOctreeCullGroup.h:35
Abstract Base class.
Definition: DtWindow.h:25
virtual bool debugUIActive()
is the lower level debug UI visible
Definition: DtDiGuyScenario.h:220
tbb::mutex myOctreeMutex
Definition: DtDiGuyScenario.h:340
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
osg::ref_ptr< DtDiGuyInstanceDrawable > myInstancedDrawable
Definition: DtDiGuyScenario.h:315
osg::ref_ptr< osg::Group > myCharacterRoot
Definition: DtDiGuyScenario.h:311
A unicode string. DtUnicode stores a UTF-16 encoded unicode string. Code Point, a Unicode character...
Definition: DtUnicode.h:33
bool myDrawSkeletons
Definition: DtDiGuyScenario.h:327
helper struct for data loaded from light config file
Definition: DtDiGuyScenario.h:68
LightConfigDataArray myLightDataArray
Definition: DtDiGuyScenario.h:353
int myEnum
Definition: DtDiGuyScenario.h:82
bool myUseInstancing
Definition: DtDiGuyScenario.h:322
int myLightType
Definition: DtDiGuyScenario.h:71
osg::ref_ptr< osg::Group > myDiguyRoot
Definition: DtDiGuyScenario.h:310
std::string myIkTargetRightArm
Definition: DtDiGuyScenario.h:80
diguyScenario * myScenario
Definition: DtDiGuyScenario.h:308
bool myDeIsValid
Definition: DtDiGuyScenario.h:306
std::string myIkTargetLeftArm
Definition: DtDiGuyScenario.h:81
StationConfigArray myStationDataArray
Definition: DtDiGuyScenario.h:354
Custom per character root node that does custom traversals and short circuits osg lod picking...
Definition: DtDiGuyOsgGraphicsLink.h:101
bool myUseMultithreadedCull
Definition: DtDiGuyScenario.h:326
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. Your code will then get called while the system is drawing, user should then add various primitives that will get rendered in one big batch after all the callbacks. See DtOsgLightDebugAdapter::drawDebugLines() for an example.
Definition: DtOsgGizmoRenderer.h:44
bool myUseTextureVariations
Definition: DtDiGuyScenario.h:324
bool myLightweightInstance
Definition: DtDiGuyScenario.h:335
double myFirstUpdateT
Definition: DtDiGuyScenario.h:318
osg::ref_ptr< osg::MatrixTransform > myInstancingRoot
Definition: DtDiGuyScenario.h:314
tbb::concurrent_vector< DtDiGuyOsgRootNode * > myNoninstancedNodeArray
Definition: DtDiGuyScenario.h:345
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
helper struct for data loaded from station config file
Definition: DtDiGuyScenario.h:76
osg::ref_ptr< DtLightPointNode > myLightPointNode
Definition: DtDiGuyScenario.h:312
int myStatOctreeUpdate
Definition: DtDiGuyScenario.h:348
float myGuideSyncGain
Definition: DtDiGuyScenario.h:331
bool myDrawIKVisuals
Definition: DtDiGuyScenario.h:328
bool myDrawMovementInfo
Definition: DtDiGuyScenario.h:329
bool myReAddNodeToSceneGraph
Definition: DtDiGuyScenario.h:357
std::string myName
Definition: DtDiGuyScenario.h:78
virtual Octree_64 * octree()
returns octree
Definition: DtDiGuyScenario.h:190
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. Coordinates are in local database coordinates The coordinat...
DtCoordTransform getTopoToGeoc(const DtVector &location)
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
Octree datastructure for managing scene nodes. This is a loose octree implementation, meaning that each octant child of the octree actually overlaps it's siblings by a factor of .5. This guarantees that any thing that is half the size of the parent will fit completely into a child, with no splitting necessary.
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:319
int myDriver
Definition: DtDiGuyScenario.h:72
static std::atomic< int > theStatNumCharInstanced
Definition: DtDiGuyScenario.h:298
static int theStatNumCharDrawn
Definition: DtDiGuyScenario.h:297
Octree_64::NodeVector myVisibleOctreeNodes
Definition: DtDiGuyScenario.h:342
osg::ref_ptr< osg::MatrixTransform > myLightPointRoot
Definition: DtDiGuyScenario.h:313
Base class to provide boost signal/slot management.
DtDe & myDe
Definition: DtDiGuyScenario.h:302
DtSignalConnectionManager myConnections
Definition: DtDiGuyScenario.h:338
const char int mode
Definition: ioapi.h:38
std::vector< DtDiguyLightConfig > LightConfigDataArray
Definition: DtDiGuyScenario.h:93
Contains makVrv::DtUniqueID type.
float myMaxMotionUpdateDistance
Definition: DtDiGuyScenario.h:330
Class that renders all the diguy instance objects in one osg drawable, major performance improvement...
Definition: DtDiGuyInstanceDrawable.h:27
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:76
#define DT_DLL_VRVDIGUY
Definition: vrvDiGuy.h:21
Octree_64 * myOctree
Definition: DtDiGuyScenario.h:341
bool myIsGeocentric
Definition: DtDiGuyScenario.h:317
bool myDebugUIActive
Definition: DtDiGuyScenario.h:336
std::string myAlternateDataPath
Definition: DtDiGuyScenario.h:337
float myStatOctreeUpdateTime
Definition: DtDiGuyScenario.h:349
float myStatPreviousOctreeUpdateTime
Definition: DtDiGuyScenario.h:350
bool myUseGuides
Definition: DtDiGuyScenario.h:323
std::string myTargetName
Definition: DtDiGuyScenario.h:79
bool myUseOctree
Definition: DtDiGuyScenario.h:325
std::vector< StringSet > StringSetVec
Definition: DtDiGuyScenario.h:92
float myStatCulltime
Definition: DtDiGuyScenario.h:351
Owns a DiGuy scenario for the application.
Definition: DtDiGuyScenario.h:87
Contains the makVrv::DtDiGuyTypeMapFieldNode class declaration.
std::string myLinkName
Definition: DtDiGuyScenario.h:70
virtual DtDiGuyInstanceDrawable * instancedDrawable()
returns instance drawable singleton
Definition: DtDiGuyScenario.h:201