VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
makVrv::Dt3DSegmentedLineModelInstance Class Reference

Model instance to draw a 3D line with styleable segments.

Inheritance diagram for makVrv::Dt3DSegmentedLineModelInstance:
Inheritance graph
[legend]

Classes

struct  SegmentAttributes
 

Public Member Functions

 Dt3DSegmentedLineModelInstance (DtDe &de)
 
virtual ~Dt3DSegmentedLineModelInstance ()
 
virtual void setPosition (int vtx, const DtVector &position)
 
virtual DtVector removePosition (int vtx)
 
virtual void setWidth (float width)
 
virtual void setColor (float r, float g, float b, float a)
 
virtual void setStipplePattern (unsigned int pattern, int repeatFactor)
 
virtual void setStyleSegments (const std::vector< double > &segmentPercentages)
 
virtual void setSegmentColor (unsigned int segmentIndex, float r, float g, float b, float a)
 
virtual void setSegmentLightningStyle (unsigned int segmentIndex, bool enableLightningStyle)
 
virtual void setSegmentStartArrow (unsigned int segmentIndex, bool enableArrow)
 
virtual void setSegmentEndArrow (unsigned int segmentIndex, bool enableArrow)
 
virtual void setSegmentStipplePattern (unsigned int segmentIndex, unsigned int stipplePattern, int repeatFactor)
 
virtual void setSegmentWidth (unsigned int segmentWidth, double width)
 
virtual void setSegmentStartColor (unsigned int segmentIndex, float r, float g, float b, float a)
 
virtual void setSegmentEndColor (unsigned int segmentIndex, float r, float g, float b, float a)
 
virtual void setTerrainIntersect (bool enabled)
 
virtual void setModelSet (DtModelSetId modelSet)
 
virtual bool realize (const DtModelDefinition &definition)
 
virtual void addToConnector (DtOsgSceneConnector *connector)
 
virtual bool removeFromConnector (DtOsgSceneConnector *connector)
 
virtual void setDepthTestEnabled (bool enabled)
 
virtual void setVisible (bool isVisible)
 
virtual void setPickable (bool pickable)
 
bool pickable () const
 
virtual void update ()
 
virtual const std::vector
< DtVector > & 
points () const
 
- Public Member Functions inherited from makVrv::DtOsgModelInstance
virtual ~DtOsgModelInstance ()
 
virtual bool cloneInstance (const DtModelDefinition &definition)
 
virtual bool saveModelToFile (const std::string &filename) const
 
virtual void enableColorBlending (bool b)
 
virtual void setBlendColor (float r, float g, float b, float a)
 
virtual void enableTexture (bool onOff)
 
virtual osg::Node * rootNode ()
 
virtual const osg::Node * rootNode () const
 
virtual osg::Node * sensorNode ()
 
virtual const osg::Node * sensorNode () const
 
virtual void setDynamicSensorRegion (const std::string &region, bool state)
 
virtual bool dynamicSensorRegion (const std::string &region)
 
virtual const
SensorRegionStateMap
dynamicSensorRegionMap () const
 
virtual void slot_atcGlobalModelEnableChanged ()
 
virtual bool alphaToCoverageEnabled ()
 
- Public Member Functions inherited from makVrv::DtModelInstance
 DtModelInstance (DtDe &de)
 
virtual ~DtModelInstance ()
 
const std::string & realizedDefinitionName () const
 
const DtVector & boundingBoxExtents () const
 
void getBoundingBoxExtents (double &x, double &y, double &z) const
 
const DtVector & boundingBoxCenter () const
 
void getBoundingBoxCenter (double &x, double &y, double &z) const
 
void getBoundingBoxComponents (DtVector &minimum, DtVector &maximum)
 
const DtVector & allGeometryboundingBoxExtents () const
 
void getAllGeometryBoundingBoxExtents (double &x, double &y, double &z) const
 
const DtVector & allGeometryboundingBoxCenter () const
 
void getAllGeometryBoundingBoxCenter (double &x, double &y, double &z) const
 
void getAllGeometryBoundingBoxComponents (DtVector &minimum, DtVector &maximum)
 
virtual void setContributesToBound (bool trueOrFalse)
 
bool contributesToBound () const
 

Protected Member Functions

virtual
Dt3DLineModelInstanceSegmentInterface
createSegment ()
 
Dt3DLineModelInstanceSegmentlineSegment (int i)
 
const
Dt3DLineModelInstanceSegment
lineSegment (int i) const
 
virtual void updatePickableSegments ()
 
virtual void adjustSegmentVisibility (int vtx, bool visible)
 
virtual void resizeSegments (int size)
 
virtual void resizeSegmentAttributes (int size)
 
virtual void updateGeometry ()
 
virtual void updateAllSegmentAttributes ()
 
- Protected Member Functions inherited from makVrv::DtOsgModelInstance
 DtOsgModelInstance (DtDe &de)
 
virtual void updateColorBlending ()
 
virtual void updateColorBlending (osg::Node *node)
 
virtual void enableTexture (osg::Node *root, bool onOff)
 
virtual void updateBoundingBoxViaContents ()
 
virtual void setRootNode (osg::Node *node)
 
virtual void setUpDepthTest (osg::StateSet *stateSet)
 

Protected Attributes

std::vector< DtVector > myVertices
 
bool myTerrainIntersectMode
 
DtModelSetId myModelSet
 
bool myVisible
 
std::vector< doublemySegmentPercentages
 
std::vector
< Dt3DLineModelInstanceSegmentInterface * > 
mySegments
 
osg::ref_ptr< osg::Group > myGroup
 
DtOsgSegmentPickablemyPickable
 
double myWidth
 
osg::Vec4 myColor
 
unsigned int myStipplePattern
 
int myStippleRepeat
 
bool mySegmentAttributesDirty
 
bool myGeometryDirty
 
std::vector< SegmentAttributesmySegmentAttributes
 
DtIntersectorsContainermyIntersectors = nullptr
 
- Protected Attributes inherited from makVrv::DtOsgModelInstance
osg::ref_ptr< osg::Node > myModelRoot
 
osg::ref_ptr< osg::StateSet > myCachedState
 
SensorRegionStateMap mySensorRegionMap
 
AlphaToCoverageState myAlphaToCoverageState
 
DtSignalConnectionManager myConnections
 
bool myModelInstanceShaderSet
 
- Protected Attributes inherited from makVrv::DtModelInstance
DtDemyDe
 
std::string myRealizedModelDefinitionName
 
DtVector myBoundingBoxCenter
 
DtVector myBoundingBoxExtents
 
DtVector myBoundingBoxMinimum
 
DtVector myBoundingBoxMaximum
 
DtVector myAllGeometryBoundingBoxCenter
 
DtVector myAllGeometryBoundingBoxExtents
 
DtVector myAllGeometryBoundingBoxMinimum
 
DtVector myAllGeometryBoundingBoxMaximum
 
bool myContributesToBound
 
bool myColorBlendingEnabled
 
float myBlendRed
 
float myBlendBlue
 
float myBlendGreen
 
float myBlendAlpha
 

Private Member Functions

 Dt3DSegmentedLineModelInstance ()
 
 Dt3DSegmentedLineModelInstance (const Dt3DSegmentedLineModelInstance &)
 
Dt3DSegmentedLineModelInstanceoperator= (const Dt3DSegmentedLineModelInstance &)
 

Additional Inherited Members

- Public Types inherited from makVrv::DtOsgModelInstance
enum  AlphaToCoverageState { USE_GLOBAL, FORCE_OFF, FORCE_ON }
 
typedef std::unordered_map
< std::string, bool
SensorRegionStateMap
 
- Static Public Member Functions inherited from makVrv::DtModelInstance
static float readFloat (const std::string &paramName, const DtModelDefinition &definition)
 
static DtVector readVector (const std::string &paramName, const DtModelDefinition &definition)
 
static DtVector4< float > readVector4 (const std::string &paramName, const DtModelDefinition &definition)
 
- Public Attributes inherited from makVrv::DtOsgModelInstance
boost::signalslib::signal
< void(const std::string
&, bool) > 
signal_dynamicSensorRegionAdded
 
boost::signalslib::signal
< void(const std::string
&, bool) > 
signal_dynamicSensorRegionChanged
 
boost::signalslib::signal
< void(bool)> 
signal_atcModeEnableChanged
 
- Public Attributes inherited from makVrv::DtModelInstance
boost::signalslib::signal
< void(DtModelInstance *)> 
signal_modelInstanceChanged
 

Constructor & Destructor Documentation

makVrv::Dt3DSegmentedLineModelInstance::Dt3DSegmentedLineModelInstance ( DtDe de)

CTOR.

virtual makVrv::Dt3DSegmentedLineModelInstance::~Dt3DSegmentedLineModelInstance ( )
virtual

DTOR.

makVrv::Dt3DSegmentedLineModelInstance::Dt3DSegmentedLineModelInstance ( )
private

Default Constructor not implemented.

makVrv::Dt3DSegmentedLineModelInstance::Dt3DSegmentedLineModelInstance ( const Dt3DSegmentedLineModelInstance )
private

Copy Constructor not implemented - Copy not allowed.

Member Function Documentation

Dt3DSegmentedLineModelInstance& makVrv::Dt3DSegmentedLineModelInstance::operator= ( const Dt3DSegmentedLineModelInstance )
private

Assignment Operator not implemented - Copy not allowed.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setPosition ( int  vtx,
const DtVector &  position 
)
virtual

Set the position of one endpoint of the line.

Reimplemented in makVrf::DtVrf3DSegmentedLineModelInstance.

virtual DtVector makVrv::Dt3DSegmentedLineModelInstance::removePosition ( int  vtx)
virtual

Remove the vertex at position vtx Returns the value of the vertex that replaces it (or 0,0,0 if none)

virtual void makVrv::Dt3DSegmentedLineModelInstance::setWidth ( float  width)
virtual

Set the width of the line.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setColor ( float  r,
float  g,
float  b,
float  a 
)
virtual

Set the color of the line.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setStipplePattern ( unsigned int  pattern,
int  repeatFactor 
)
virtual

Set a stipple pattern for the line.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setStyleSegments ( const std::vector< double > &  segmentPercentages)
virtual

Set the style segments to percentages of the total line length The values in segmentPercentages must add up to 1.0.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setSegmentColor ( unsigned int  segmentIndex,
float  r,
float  g,
float  b,
float  a 
)
virtual

Set the color of a particular segment.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setSegmentLightningStyle ( unsigned int  segmentIndex,
bool  enableLightningStyle 
)
virtual

Turn on or off lightning bolt style for a particular segment.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setSegmentStartArrow ( unsigned int  segmentIndex,
bool  enableArrow 
)
virtual

Turn on or off the arrow at a segment's start point.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setSegmentEndArrow ( unsigned int  segmentIndex,
bool  enableArrow 
)
virtual

Turn on or off the arrow at a segment's end point.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setSegmentStipplePattern ( unsigned int  segmentIndex,
unsigned int  stipplePattern,
int  repeatFactor 
)
virtual

Set the line stipple pattern for a segment, according to the OpenGL line stippling specification.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setSegmentWidth ( unsigned int  segmentWidth,
double  width 
)
virtual

Set the line width of a segment.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setSegmentStartColor ( unsigned int  segmentIndex,
float  r,
float  g,
float  b,
float  a 
)
virtual

Set the color of the firt vertex in a segment. This can be used for color blending between vertices.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setSegmentEndColor ( unsigned int  segmentIndex,
float  r,
float  g,
float  b,
float  a 
)
virtual

Set the color of the end vertex in a segment. This can be used for color blending between vertices.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setTerrainIntersect ( bool  enabled)
virtual

Set terrain intersection mode.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setModelSet ( DtModelSetId  modelSet)
virtual

Set the model set this model instance uses (needed for doing intersections)

virtual bool makVrv::Dt3DSegmentedLineModelInstance::realize ( const DtModelDefinition definition)
virtual

Attempt to realize a definition. If the model instance can't realize the definition it should return false. This instance requires the definition be of schema "Line".

Reimplemented from makVrv::DtOsgModelInstance.

Reimplemented in makVrv::Dt3DGreatCircleArcModelInstance.

virtual void makVrv::Dt3DSegmentedLineModelInstance::addToConnector ( DtOsgSceneConnector connector)
virtual

Tell the model instance to add itself to the provided node.

Reimplemented from makVrv::DtOsgModelInstance.

virtual bool makVrv::Dt3DSegmentedLineModelInstance::removeFromConnector ( DtOsgSceneConnector connector)
virtual

Tell the model instance to remove itself from the provided node.

Reimplemented from makVrv::DtOsgModelInstance.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setDepthTestEnabled ( bool  enabled)
virtual

Turn on or off depth testing (occlusion); default is true.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setVisible ( bool  isVisible)
virtual

Set the line visible or invisible; maintains state.

Implements makVrv::DtModelInstance.

virtual void makVrv::Dt3DSegmentedLineModelInstance::setPickable ( bool  pickable)
virtual

Turn on or off the ability to pick the line. Off by default.

bool makVrv::Dt3DSegmentedLineModelInstance::pickable ( ) const

Get whether the arc is pickable.

virtual void makVrv::Dt3DSegmentedLineModelInstance::update ( )
virtual

Indicate that its time to prepare actual scene graph data to be rendered.

virtual const std::vector<DtVector>& makVrv::Dt3DSegmentedLineModelInstance::points ( ) const
virtual

Returns the points associated with this line.

virtual Dt3DLineModelInstanceSegmentInterface* makVrv::Dt3DSegmentedLineModelInstance::createSegment ( )
protectedvirtual

Create an appropriate segment type.

Reimplemented in makVrf::DtVrf3DSegmentedLineModelInstance, and makVrv::Dt3DGreatCircleArcModelInstance.

Dt3DLineModelInstanceSegment& makVrv::Dt3DSegmentedLineModelInstance::lineSegment ( int  i)
protected

Helper method to return properly cast Dt3DLineModelInstanceSegment.

const Dt3DLineModelInstanceSegment& makVrv::Dt3DSegmentedLineModelInstance::lineSegment ( int  i) const
protected

Helper method to return properly cast Dt3DLineModelInstanceSegment.

virtual void makVrv::Dt3DSegmentedLineModelInstance::updatePickableSegments ( )
protectedvirtual

Update the pickable segment objects.

virtual void makVrv::Dt3DSegmentedLineModelInstance::adjustSegmentVisibility ( int  vtx,
bool  visible 
)
protectedvirtual

Adjust segment visibility. also considering the total line visibility.

virtual void makVrv::Dt3DSegmentedLineModelInstance::resizeSegments ( int  size)
protectedvirtual

Resize the segments vector to size.

virtual void makVrv::Dt3DSegmentedLineModelInstance::resizeSegmentAttributes ( int  size)
protectedvirtual

Resize the segment attributes vector to size.

virtual void makVrv::Dt3DSegmentedLineModelInstance::updateGeometry ( )
protectedvirtual

Update the visibility, endpoints, etc. of the segments.

Reimplemented in makVrv::Dt3DGreatCircleArcModelInstance.

virtual void makVrv::Dt3DSegmentedLineModelInstance::updateAllSegmentAttributes ( )
protectedvirtual

Update the state of the segment attributes.

Reimplemented in makVrv::Dt3DGreatCircleArcModelInstance.

Member Data Documentation

std::vector<DtVector> makVrv::Dt3DSegmentedLineModelInstance::myVertices
protected
bool makVrv::Dt3DSegmentedLineModelInstance::myTerrainIntersectMode
protected
DtModelSetId makVrv::Dt3DSegmentedLineModelInstance::myModelSet
protected
bool makVrv::Dt3DSegmentedLineModelInstance::myVisible
protected
std::vector<double> makVrv::Dt3DSegmentedLineModelInstance::mySegmentPercentages
protected
std::vector<Dt3DLineModelInstanceSegmentInterface*> makVrv::Dt3DSegmentedLineModelInstance::mySegments
protected
osg::ref_ptr<osg::Group> makVrv::Dt3DSegmentedLineModelInstance::myGroup
protected
DtOsgSegmentPickable* makVrv::Dt3DSegmentedLineModelInstance::myPickable
protected
double makVrv::Dt3DSegmentedLineModelInstance::myWidth
protected
osg::Vec4 makVrv::Dt3DSegmentedLineModelInstance::myColor
protected
unsigned int makVrv::Dt3DSegmentedLineModelInstance::myStipplePattern
protected
int makVrv::Dt3DSegmentedLineModelInstance::myStippleRepeat
protected
bool makVrv::Dt3DSegmentedLineModelInstance::mySegmentAttributesDirty
protected
bool makVrv::Dt3DSegmentedLineModelInstance::myGeometryDirty
protected
std::vector<SegmentAttributes> makVrv::Dt3DSegmentedLineModelInstance::mySegmentAttributes
protected
DtIntersectorsContainer* makVrv::Dt3DSegmentedLineModelInstance::myIntersectors = nullptr
protected

The documentation for this class was generated from the following file:

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)