VR-Forces 4.1 Class Documentation
List of all members | Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
makVrv::DtOverlayGreatCircleArcModelInstance Class Reference

Model instance to draw a 3D line with styleable segments onto the 2D overlay. More...

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

Classes

struct  SegmentLandmarks

Public Member Functions

 DtOverlayGreatCircleArcModelInstance (DtDe &de)
 CTOR.
virtual ~DtOverlayGreatCircleArcModelInstance ()
 DTOR.
virtual void setMaxSubdivisions (int subDivisions)
 The maximum number of subdivisions that will be created when implementing curvature.
virtual void setPreferredSubdivisionSize (double size)
 The preferred size of curvature-related subdivisions.
virtual void setHeightScale (double heightScale)
 This scales the arc height of segments to the arcLength of the segment times the heightScale value.
virtual bool realize (DtModelDefinition &definition)
 Attempt to realize a definition.
- Public Member Functions inherited from makVrv::DtOverlaySegmentedLineModelInstance
 DtOverlaySegmentedLineModelInstance (DtDe &de)
 CTOR.
virtual ~DtOverlaySegmentedLineModelInstance ()
 DTOR.
virtual void setPosition (int vtx, const DtVector &position)
 Set the position of one endpoint of the line.
virtual void removePosition (int vtx)
 Remove the vertex at position vtx.
virtual void setWidth (float width)
 Set the width of the line.
virtual void setColor (float r, float g, float b, float a)
 Set the color of the line.
virtual void setStipplePattern (unsigned int pattern, int repeatFactor)
 Set a stipple pattern for the line.
virtual void setStyleSegments (const std::vector< double > &segmentPercentages)
 Set the style segments to percentages of the total line length The values in segmentPercentages must add up to 1.0.
virtual void setSegmentColor (unsigned int segmentIndex, float r, float g, float b, float a)
 Set the color of a particular segment.
virtual void setSegmentLightningStyle (unsigned int segmentIndex, bool enableLightningStyle)
 Turn on or off lightning bolt style for a particular segment.
virtual void setSegmentStartArrow (unsigned int segmentIndex, bool enableArrow)
 Turn on or off the arrow at a segment's start point.
virtual void setSegmentEndArrow (unsigned int segmentIndex, bool enableArrow)
 Turn on or off the arrow at a segment's end point.
virtual void setSegmentStipplePattern (unsigned int segmentIndex, unsigned int stipplePattern, int repeatFactor)
 Set the line stipple pattern for a segment, according to the OpenGL line stippling specification.
virtual void setSegmentWidth (unsigned int segmentIndex, double width)
 Set the line width of a segment.
virtual void setSegmentStartColor (unsigned int segmentIndex, float r, float g, float b, float a)
 Set the color of the firt vertex in a segment.
virtual void setSegmentEndColor (unsigned int segmentIndex, float r, float g, float b, float a)
 Set the color of the end vertex in a segment.
virtual void setModelSet (int modelSet)
 Set the model set this model instance uses (needed for doing intersections).
virtual void setVisible (bool isVisible)
 Set the line visible or invisible; maintains state.
virtual void setEventsEnabled (bool enabled, unsigned long long userData)
 Turn on or off the ability to pick the line. Off by default.
virtual void setEventWidth (float width)
 Sets the width of the segment (in pixels), for picking and mouse-over.
virtual void update ()
 Indicate that its time to prepare actual scene graph data to be rendered.
virtual void setRotation (const osg::Quat &quat)
 rotate the points about the origin
virtual void setArrowSize (double)
 Sets the size of the arrow (in pixels)
virtual void setLineStyle (vrvTacticalGraphicUtilities::LineStyle)
 Sets the line style (see DtTacticalGraphicUtilities.h for types)
virtual void setArrowStyle (vrvTacticalGraphicUtilities::ArrowStyle)
 Sets the style of the arrow (see DtTacticalGraphicUtilities.h for types)
virtual void setTexture (osg::Texture *)
 Sets a pattern to apply to the line and recreates line object.
virtual bool isTextured () const
 Returns true if this instance has a textured line.
virtual void setFixedWidthSizing (bool)
 For those lines that support it, whether or not the lines sizes when zooming to pixel space (fixed width) or to the database (non-fixed width).
virtual void setChannelInstance (DtChannel *, int modelSet)
 Set to make this model channel specific.
virtual const std::vector
< DtVector > & 
points () const
 Returns the points of the line.
virtual void setPoints (const std::vector< DtVector > &)
 Sets the points on the line.
virtual const
SegmentAttributesVector
segmentInformation () const
 Returns segment information.
virtual void setSegmentInformation (const SegmentAttributesVector &)
 Sets segment information.
- Public Member Functions inherited from makVrv::DtOsgModelInstance
virtual ~DtOsgModelInstance ()
 DTOR.
virtual void addToConnector (DtOsgSceneConnector *connector)
 Brief Tell the model instance to add itself to the provided node.
virtual bool removeFromConnector (DtOsgSceneConnector *connector)
 Brief Tell the model instance to remove itself from the provided node.
virtual bool saveModelToFile (const std::string &filename) const
 Attempt to save the model to a file.
virtual void enableColorBlending (bool b)
 Enable / disable coloring on all models in the scene object.
virtual void setBlendColor (float r, float g, float b, float a)
 set the model's color
virtual void enableTexture (bool onOff)
virtual osg::Node * rootNode ()
 Get the model instance's root node.
virtual const osg::Node * rootNode () const
 Get the model instance's root node.
- Public Member Functions inherited from makVrv::DtModelInstance
 DtModelInstance (DtDe &de)
 CTOR.
virtual ~DtModelInstance ()
 DTOR.
const std::string & realizedDefinitionName () const
 Get the name of the definition that this model instance was realized with.
const DtVectorboundingBoxExtents () const
 Get the bounding box extents of the model instance.
void getBoundingBoxExtents (double &x, double &y, double &z) const
 Get the bounding box extents of the model instance.
const DtVectorboundingBoxCenter () const
 Get the bounding box center of the model instance.
void getBoundingBoxCenter (double &x, double &y, double &z) const
 Get the bounding box center of the model instance.
void getBoundingBoxComponents (DtVector &minimum, DtVector &maximum)
virtual void setContributesToBound (bool trueOrFalse)
 Set whether this model instance contributes to an object's overall bounding volume.
bool contributesToBound () const
 Get whether this model instance contributes to an object's overall bounding volume.

Protected Types

typedef std::vector
< SegmentLandmarks
SegmentLandmarksVector
- Protected Types inherited from makVrv::DtOverlaySegmentedLineModelInstance
typedef std::vector< DtVectorPoints

Protected Member Functions

virtual void updateGeometry ()
 Updates the segment information.
virtual void generateStyleSegmentedGeometry ()
 Called by updateGeometry when style segments are used.
virtual void generateMultipointGeometry ()
 Called by updateGeometry when style segments are not used.
virtual void updateSegments ()
 Updates the segment information.
virtual void resizeSegmentAttributes (int size)
 Override to resize SegmentLandmarks as well.
virtual int calculateNumSubdivisions (const DtGreatCircleCurveGenerator &curveGen, const DtVector &endGeod, double percentage) const
 Calculate the number of segment subdivisions that will be used in this segment to approximate the curve.
DtVector localToGeodetic (const DtVector &local)
 Convert osg::Vec3 in local coordinates to DtVector in Geodetic.
DtVector geodeticToLocal (const DtVector &geodetic)
 Convert DtVector in Geodetic to osg::Vec3 in local coordinates.
- Protected Member Functions inherited from makVrv::DtOverlaySegmentedLineModelInstance
virtual void updateSegmentsWithArrows (const std::vector< DtVector > &pts, std::vector< DtVector > &drawPoints, std::vector< DtVector > &twodOffsets)
 Updates segments with arrows as appropriate (beginning or end)
virtual void createLineIfNecessary ()
 Creates the line model.
virtual void updateGeometryForLineStyle ()
 Calculates vertices to draw for updating line style.
virtual void set3DVertexPosition (unsigned int index, double x, double y, double z)
 Sets a lines vertex's position.
virtual void set3DPositionAux (double x, double y, double z, float tempPackedCoords[4])
 Utility function for transforming a vertex and setting it on the line.
virtual void channelUpdated (DtTacticalGraphicModelUpdaterManager::ChannelUpdateData)
 Called to effect zoom level if textured to make sure textures keep proper aspect.
void updatePointsForLineStyle (const std::vector< DtVector > &, std::vector< DtVector > &drawPoints, std::vector< DtVector > &twodOffsets, std::vector< int > &segmentsToErase) const
 Creates the points for the line given the line style.
- Protected Member Functions inherited from makVrv::DtOsgModelInstance
virtual void updateColorBlending ()
 calls update color blending with the model root.
virtual void updateColorBlending (osg::Node *node)
virtual void enableTexture (osg::Node *root, bool onOff)
virtual void updateBoundingBoxViaContents ()
 DtOsgModelInstance (DtDe &de)
 CTOR.
virtual void setRootNode (osg::Node *node)
 Set the model instance's root node.

Protected Attributes

SegmentLandmarksVector mySegmentLandmarks
double myHeightScale
int myMaxSubdivisions
double myPreferredSubdivisionSize
- Protected Attributes inherited from makVrv::DtOverlaySegmentedLineModelInstance
DtUniqueID mySceneObjectId
Points myPoints
Points myVertices
Points my2DOffsets
SegmentAttributesVector mySegmentAttributes
unsigned int myModelSet
DtSegmentedLinemyLine
bool myVisible
osg::Vec4 myColor
float myWidth
unsigned int myStipplePattern
int myStippleRepeat
std::vector< double > mySegmentPercentages
float myEventWidth
bool myGeometryDirty
bool mySegmentsDirty
bool myEventsEnabled
osg::Vec3d myOrigin
osg::Quat myRotation
double myArrowSize
vrvTacticalGraphicUtilities::ArrowStyle myArrowStyle
osg::ref_ptr< osg::Texture > myTexture
vrvTacticalGraphicUtilities::LineStyle myLineStyle
bool myFixedWidthSizing
std::vector< int > mySegmentsToErase
DtChannelmyChannelInstance
- Protected Attributes inherited from makVrv::DtOsgModelInstance
osg::ref_ptr< osg::Node > myModelRoot
osg::ref_ptr< osg::StateSet > myCachedState
- Protected Attributes inherited from makVrv::DtModelInstance
DtDemyDe
std::string myRealizedModelDefinitionName
DtVector myBoundingBoxCenter
DtVector myBoundingBoxExtents
DtVector myBoundingBoxMinimum
DtVector myBoundingBoxMaximum
bool myContributesToBound
bool myColorBlendingEnabled
float myBlendRed
float myBlendBlue
float myBlendGreen
float myBlendAlpha

Additional Inherited Members

- Public Types inherited from makVrv::DtOverlaySegmentedLineModelInstance
typedef std::vector
< SegmentAttributes
SegmentAttributesVector
 Vector of segment information.
- Static Public Member Functions inherited from makVrv::DtOsgModelInstance
static osg::Vec4 readVec4 (const std::string &paramName, const DtModelDefinition &definition)
static osg::Vec3 readVec3 (const std::string &paramName, const DtModelDefinition &definition)
- Public Attributes inherited from makVrv::DtModelInstance
boost::signal< void(DtModelInstance *)> signal_modelInstanceChanged

Detailed Description

Model instance to draw a 3D line with styleable segments onto the 2D overlay.

Member Typedef Documentation

Constructor & Destructor Documentation

makVrv::DtOverlayGreatCircleArcModelInstance::DtOverlayGreatCircleArcModelInstance ( DtDe de)

CTOR.

virtual makVrv::DtOverlayGreatCircleArcModelInstance::~DtOverlayGreatCircleArcModelInstance ( )
virtual

DTOR.

Member Function Documentation

virtual void makVrv::DtOverlayGreatCircleArcModelInstance::setMaxSubdivisions ( int  subDivisions)
virtual

The maximum number of subdivisions that will be created when implementing curvature.

virtual void makVrv::DtOverlayGreatCircleArcModelInstance::setPreferredSubdivisionSize ( double  size)
virtual

The preferred size of curvature-related subdivisions.

This will only be honored up to the point at which it causes maxSubdivisions to be exceeded

virtual void makVrv::DtOverlayGreatCircleArcModelInstance::setHeightScale ( double  heightScale)
virtual

This scales the arc height of segments to the arcLength of the segment times the heightScale value.

virtual bool makVrv::DtOverlayGreatCircleArcModelInstance::realize ( DtModelDefinition definition)
virtual

Attempt to realize a definition.

If the model instance can't realize the definition it should return false.

Reimplemented from makVrv::DtOverlaySegmentedLineModelInstance.

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

Updates the segment information.

Reimplemented from makVrv::DtOverlaySegmentedLineModelInstance.

virtual void makVrv::DtOverlayGreatCircleArcModelInstance::generateStyleSegmentedGeometry ( )
protectedvirtual

Called by updateGeometry when style segments are used.

virtual void makVrv::DtOverlayGreatCircleArcModelInstance::generateMultipointGeometry ( )
protectedvirtual

Called by updateGeometry when style segments are not used.

virtual void makVrv::DtOverlayGreatCircleArcModelInstance::updateSegments ( )
protectedvirtual

Updates the segment information.

Reimplemented from makVrv::DtOverlaySegmentedLineModelInstance.

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

Override to resize SegmentLandmarks as well.

Reimplemented from makVrv::DtOverlaySegmentedLineModelInstance.

virtual int makVrv::DtOverlayGreatCircleArcModelInstance::calculateNumSubdivisions ( const DtGreatCircleCurveGenerator curveGen,
const DtVector endGeod,
double  percentage 
) const
protectedvirtual

Calculate the number of segment subdivisions that will be used in this segment to approximate the curve.

DtVector makVrv::DtOverlayGreatCircleArcModelInstance::localToGeodetic ( const DtVector local)
protected

Convert osg::Vec3 in local coordinates to DtVector in Geodetic.

DtVector makVrv::DtOverlayGreatCircleArcModelInstance::geodeticToLocal ( const DtVector geodetic)
protected

Convert DtVector in Geodetic to osg::Vec3 in local coordinates.

Member Data Documentation

SegmentLandmarksVector makVrv::DtOverlayGreatCircleArcModelInstance::mySegmentLandmarks
protected
double makVrv::DtOverlayGreatCircleArcModelInstance::myHeightScale
protected
int makVrv::DtOverlayGreatCircleArcModelInstance::myMaxSubdivisions
protected
double makVrv::DtOverlayGreatCircleArcModelInstance::myPreferredSubdivisionSize
protected

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

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)