Overview
This example show how to extend the state model visualizer and turn all the entities in XR mode to red.
Expected Result
Extend Visualizer Result
Example details
In this example we derived from the class DtEntityArticulatedStateModelVisualizer to create a new class MyEntityArticulatedStateModelVisualizer. This class overrides the visualizer initialize method to force the entity's id for colorization. This will show that it is overriding the original visualizer. To see the effect switch to XR mode to see all the entities in red.
Note that the extended visualizer must be registered with the DtStateVisualizerFactory in exampleExtendVisualizerPlugin.cxx
Building the Example
VR-Vantage includes pre-built versions of the example plug-in. To build it yourself, follow the instructions at Building VR-Vantage Examples, Applications, and Plug-ins.
Running the Example
This example is a plug-in. You can run it by running ./bin64/exampleExtendVisualizer_stealth.bat (on Windows) or ./bin64/exampleExtendVisualizer_stealth.sh (on Linux). Any terrain can be used, but to replicate the image above: Open MaK Data logger and open Raid2021-DIS.lgr. Once Vantage is started, load the Ala Moana terrain, connect to a DIS connection; then switch the observer to "XR" and all the entities will be red.
For more information about running examples, please see Running Applications and Examples.
Example Source Files
exampleExtendVisualizerPlugin.cxx
#include <iostream>
using namespace makVrv;
namespace exampleExtendVisualizer
{
static vrvSignalsLib::connection postInitializeConnection;
void postInitializeWork(
DtDe* de)
{
postInitializeConnection.disconnect();
}
{
{
}
}
}
{
return true;
}
exampleExtendVisualizerPlugin.h
#pragma once
#define DT_DE_PLUGIN_EXPORT_MACRO DT_DLL_EXAMPLEEXTENDVISUALIZER
namespace makVrv { class DtDe; }
MyEntityArticulatedStateModelVisualizer.h
#pragma once
namespace makVrv
{
public DtEntityArticulatedStateModelVisualizer
{
public:
MyEntityArticulatedStateModelVisualizer( DtBaseConnection& simulation,
DtStateListener& listener, DtSceneObjectAgent* sceneObject,
DtModelSetId modelSet );
virtual ~MyEntityArticulatedStateModelVisualizer();
virtual void initialize() override;
protected:
};
typedef DtStateVisualizerCreatorTemplate<MyEntityArticulatedStateModelVisualizer>
}
MyEntityArticulatedStateModelVisualizer.cxx
namespace makVrv
{
DtStateListener& listener, DtSceneObjectAgent* sceneObject,
DtModelSetId modelSet )
: DtEntityArticulatedStateModelVisualizer( simulation, listener, sceneObject, modelSet )
{
}
MyEntityArticulatedStateModelVisualizer::~MyEntityArticulatedStateModelVisualizer()
{
}
void MyEntityArticulatedStateModelVisualizer::initialize()
{
DtEntityArticulatedStateModelVisualizer::initialize();
std::cout << "MyEntityArticulatedStateModelVisualizer initialized! " << std::endl;
DtEntityArticulatedStateModelVisualizer::setColorizedColor( 1.0, 0.0, 0.0, 1.0 );
}
}
[<< Examples] [Home] [Top of Page]