VR-Forces 4.0.4 Class Documentation
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
vrvControlToolkit::DtLine3DObject Class Reference

A 3D Line Stealth Draw Control Object. More...

Inheritance diagram for vrvControlToolkit::DtLine3DObject:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 DtLine3DObject (DtExerciseConn *exConn, unsigned id, const DtVdc3DAttachPoint &startAttachment, const DtVdc3DAttachPoint &endAttachment, int numSegments=1, const DtVector &offset=DtVector::zero(), DtVdcColor color=DtVdcColor::DtVdcWhite, DtVdcLineSegment::DtVdcSegmentStyle lineStyle=DtVdcLineSegment::DtVdcSegmentStyleStraight, DtVdcLineSegment::DtVdcSegmentArrowStyle arrowStyle=DtVdcLineSegment::DtVdcSegmentArrowStyleNoArrow, unsigned thickness=1, unsigned pattern=0xffffff, bool flashing=false, bool checkLos=false, bool projected=false)
 Construct the Line Draw Control Object.
virtual ~DtLine3DObject ()
virtual const DtVdc3DAttachPointstartAttachment () const
 startAttachment accessor
virtual void setStartAttachment (const DtVdc3DAttachPoint &startAttachment)
 startAttachment mutator
virtual const DtVdc3DAttachPointendAttachment () const
 endAttachment accessor
virtual void setEndAttachment (const DtVdc3DAttachPoint &endAttachment)
 endAttachment mutator
virtual const DtVectoroffset () const
 offset accessor
virtual void setOffset (const DtVector &off)
 offset mutator
virtual int numSegments () const
 numSegments accessor
virtual void setNumSegments (int numSegments)
 numSegments mutator
virtual const DtVdcColorcolor (int segment) const
 color accessor
virtual const DtVdcColorcolor () const
virtual void setColor (const DtVdcColor &color, int segment)
 color mutator
virtual void setColor (const DtVdcColor &color)
virtual
DtVdcLineSegment::DtVdcSegmentStyle 
lineStyle (int segment=0) const
 lineStyle accessor
virtual void setLineStyle (DtVdcLineSegment::DtVdcSegmentStyle lineStyle, int segment=0)
 lineStyle mutator
virtual
DtVdcLineSegment::DtVdcSegmentArrowStyle 
arrowStyle (int segment=0) const
 arrowStyle accessor
virtual void setArrowStyle (DtVdcLineSegment::DtVdcSegmentArrowStyle arrowStyle, int segment=0)
 arrowStyle mutator
virtual unsigned pattern (int segment=0) const
 pattern accessor
virtual void setPattern (unsigned pattern, int segment=0)
 pattern mutator
virtual unsigned thickness (int segment=0) const
 thickness accessor
virtual void setThickness (unsigned thickness, int segment=0)
 thickness mutator
virtual double percentage (int segment) const
 percentage accessor
virtual void setPercentage (double percentage, int segment)
 percentage mutator
virtual bool flashing () const
 flashing accessor
virtual void setFlashing (bool flashing)
 flashing mutator
virtual bool checkLos () const
 checkLos accessor
virtual void setCheckLos (bool checkLos)
 checkLos mutator
virtual bool projected () const
 projected accessor
virtual void setProjected (bool projected)
 projected mutator
virtual void setRemoteGraphicSet (const std::string &setName)
virtual void update ()
 update the internal pdu

Protected Member Functions

void initRecords ()

Protected Attributes

DtVdc3DAttachPoint myStartAttachment
DtVdc3DAttachPoint myEndAttachment
DtVector myOffset
bool myFlashing
bool myCheckLos
bool myProjected
std::vector< DtVdcLineSegmentmyLineSegments
DtEnvironmentalLineRecord myLineRecord
Dt3DGraphicalObjectLineStateRecord myLineStateRecord

Private Member Functions

 DtLine3DObject ()
 Default constructor.
 DtLine3DObject (const DtLine3DObject &orig)
 Copy constructor.
DtLine3DObjectoperator= (const DtLine3DObject &rhs)
 Assignment operator.

Detailed Description

A 3D Line Stealth Draw Control Object.

DtLine3DObject represents a line that can be positioned and displayed in the scene. The line may be divided into multiple segments of varying relative lengths. A color, line style, arrow style, pattern and thickness may be specified for each segment; and the line can flash, if desired.


Constructor & Destructor Documentation

vrvControlToolkit::DtLine3DObject::DtLine3DObject ( DtExerciseConn *  exConn,
unsigned  id,
const DtVdc3DAttachPoint startAttachment,
const DtVdc3DAttachPoint endAttachment,
int  numSegments = 1,
const DtVector offset = DtVector::zero(),
DtVdcColor  color = DtVdcColor::DtVdcWhite,
DtVdcLineSegment::DtVdcSegmentStyle  lineStyle = DtVdcLineSegment::DtVdcSegmentStyleStraight,
DtVdcLineSegment::DtVdcSegmentArrowStyle  arrowStyle = DtVdcLineSegment::DtVdcSegmentArrowStyleNoArrow,
unsigned  thickness = 1,
unsigned  pattern = 0xffffff,
bool  flashing = false,
bool  checkLos = false,
bool  projected = false 
)

Construct the Line Draw Control Object.

Note that the color and subsequent default parameters are applied to all segments; multi-segmented lines are constructed with all segments being equally proportioned. The segment proportions and individual stylistic elements may all be modified after construction.

Parameters:
idPassed to DtDrawControlObject base (see)
startAttachmentStarting attachment of the line
endAttachmentEnding attachment of the line
numSegmentsThe number of segments the line should be divided into. Note that this can be changed at any time
enuOffseta 3D vector indicating an east/north/up offset (in meters) from the base attachment that is applied to both start and end positions
colorThe color to apply to all segments constructed
lineStyleA style enumeration from DtVdcLineSegment applied to all segments constructed
arrowStyleAn arrow style enumeration from DtVdcLineSegment applied to all segments constructed
thicknessThe number of pixels thick to draw all segments constructed
patternA stipple pattern used to draw all segments constructed
flashingA boolean parameter indicating whether or not the line should be flashing
checkLosA boolean parameter indicating whether or not the line should be terminated upon collision with the terrain. A check is made going from the starting attachment point to the end attachment point. If any terrain is intersected, that point of intersection becomes the new (temporary) end attach point. This is re-evaluated each frame, so may become CPU intensive for long lines or complex terrains
projectedA boolean parameter indicating whether or not the line should be projected onto the overlay. This prevents terrain occlusion

Default constructor.

Private and not implemented - you must supply an id and basic geometric parameters to construct the line

Copy constructor.

Private and unimplemented - not copyable.


Member Function Documentation

DtLine3DObject& vrvControlToolkit::DtLine3DObject::operator= ( const DtLine3DObject rhs) [private]

Assignment operator.

Private and unimplemented - not copyable.

startAttachment accessor

Get the line's start position

Returns:
attach point type and data

Implements vrvControlToolkit::Dt3DTwoPositionedObject.

virtual void vrvControlToolkit::DtLine3DObject::setStartAttachment ( const DtVdc3DAttachPoint startAttachment) [virtual]

startAttachment mutator

Set the line's start position

Parameters:
startAttachmentattach point type and data

Implements vrvControlToolkit::Dt3DTwoPositionedObject.

endAttachment accessor

Get the line's end position

Returns:
attach point type and data

Implements vrvControlToolkit::Dt3DTwoPositionedObject.

virtual void vrvControlToolkit::DtLine3DObject::setEndAttachment ( const DtVdc3DAttachPoint endAttachment) [virtual]

endAttachment mutator

Set the line's end position

Parameters:
endAttachmentattach point type and data

Implements vrvControlToolkit::Dt3DTwoPositionedObject.

virtual const DtVector& vrvControlToolkit::DtLine3DObject::offset ( ) const [virtual]

offset accessor

Get the object's offset from the attach point, in entity coordinates if attached, geocentric otherwise

Returns:
[X, Y, Z] offset
virtual void vrvControlToolkit::DtLine3DObject::setOffset ( const DtVector off) [virtual]

offset mutator

Set the object's offset from the attach point, in entity coordinates if attached, geocentric otherwise

Parameters:
offset[X, Y, Z]
virtual int vrvControlToolkit::DtLine3DObject::numSegments ( ) const [virtual]

numSegments accessor

Get the number of segments in this line

Returns:
0 to N

Implements vrvControlToolkit::DtLineObjectInterface.

virtual void vrvControlToolkit::DtLine3DObject::setNumSegments ( int  numSegments) [virtual]

numSegments mutator

Set the number of individual segments that make up this line

Parameters:
numSegments0 to N

Implements vrvControlToolkit::DtLineObjectInterface.

virtual const DtVdcColor& vrvControlToolkit::DtLine3DObject::color ( int  segment) const [virtual]

color accessor

Get the color assigned to the indicated segment

Parameters:
segmentThe segment to retrieve the color from
Returns:
The segment's color
virtual const DtVdcColor& vrvControlToolkit::DtLine3DObject::color ( ) const [virtual]
virtual void vrvControlToolkit::DtLine3DObject::setColor ( const DtVdcColor color,
int  segment 
) [virtual]

color mutator

Set the color to use when drawing the indicated segment

Parameters:
colorThe DtVdcColor to use
segmentThe segment to apply the color to
virtual void vrvControlToolkit::DtLine3DObject::setColor ( const DtVdcColor color) [virtual]

lineStyle accessor

Get the lineStyle assigned to the indicated segment

Parameters:
segmentThe segment to retrieve the lineStyle from
Returns:
A DtVdcLineSegment::DtVdcSegmentStyle indicating the segment's style

Implements vrvControlToolkit::DtLineObjectInterface.

virtual void vrvControlToolkit::DtLine3DObject::setLineStyle ( DtVdcLineSegment::DtVdcSegmentStyle  lineStyle,
int  segment = 0 
) [virtual]

lineStyle mutator

Set the lineStyle to use when drawing the indicated segment

Parameters:
lineStyleThe lineStyle to use for the indicated segment
segmentThe segment to apply the lineStyle to

Implements vrvControlToolkit::DtLineObjectInterface.

arrowStyle accessor

Get the arrowStyle assigned to the indicated segment

Parameters:
segmentThe segment to retrieve the arrowStyle from
Returns:
A DtVdcLineSegment::DtVdcSegmentArrowStyle indicating the segment's arrow style

Implements vrvControlToolkit::DtLineObjectInterface.

virtual void vrvControlToolkit::DtLine3DObject::setArrowStyle ( DtVdcLineSegment::DtVdcSegmentArrowStyle  arrowStyle,
int  segment = 0 
) [virtual]

arrowStyle mutator

Set the arrowStyle to use when drawing the indicated segment

Parameters:
arrowStyleThe arrowStyle to use for the indicated segment
segmentThe segment to apply the arrowStyle to

Implements vrvControlToolkit::DtLineObjectInterface.

virtual unsigned vrvControlToolkit::DtLine3DObject::pattern ( int  segment = 0) const [virtual]

pattern accessor

Get the stipple pattern used when drawing the indicated segment

Parameters:
segmentThe segment to retrieve the pattern from
Returns:
The stipple pattern, 0x00000000 to 0xFFFFFFFF

Implements vrvControlToolkit::DtLineObjectInterface.

virtual void vrvControlToolkit::DtLine3DObject::setPattern ( unsigned  pattern,
int  segment = 0 
) [virtual]

pattern mutator

Set the stipple pattern to use when drawing the indicated segment

Parameters:
patternThe stipple pattern, 0x00000000 to 0xFFFFFFFF.
segmentThe segment to apply the pattern to

Implements vrvControlToolkit::DtLineObjectInterface.

virtual unsigned vrvControlToolkit::DtLine3DObject::thickness ( int  segment = 0) const [virtual]

thickness accessor

Get the thickness assigned to the indicated segment

Parameters:
segmentThe segment to retrieve the thickness from
Returns:
The segments's thickness, in pixels (0-255)

Implements vrvControlToolkit::DtLineObjectInterface.

virtual void vrvControlToolkit::DtLine3DObject::setThickness ( unsigned  thickness,
int  segment = 0 
) [virtual]

thickness mutator

Set the thickness to use when drawing the indicated segment

Parameters:
thicknessThe thickness in pixels, (0-255). Note that GL may not actually be willing or able to draw a line 255 pixels wide. It is implementation dependent.
segmentThe segment to apply the thickness to

Implements vrvControlToolkit::DtLineObjectInterface.

virtual double vrvControlToolkit::DtLine3DObject::percentage ( int  segment) const [virtual]

percentage accessor

Get the percentage of the line that the indicated segment occupies

Parameters:
segmentThe segment to retrieve the percentage from
Returns:
The line's thickness, in pixels (0-255)

Implements vrvControlToolkit::DtLineObjectInterface.

virtual void vrvControlToolkit::DtLine3DObject::setPercentage ( double  percentage,
int  segment 
) [virtual]

percentage mutator

Set the percentage of the line that the indicated segment should occupy. Note that it is the responsibility of the user to ensure that the sum of the individual segment's percentages is 1.

Parameters:
percentageThe percentage (0. to 1.)
segmentThe segment to apply the percentage to

Implements vrvControlToolkit::DtLineObjectInterface.

flashing accessor

Get the boolean that indicates whether or not the line should flash

Returns:
true or false

Reimplemented from vrvControlToolkit::DtDrawControlObject.

virtual void vrvControlToolkit::DtLine3DObject::setFlashing ( bool  flashing) [virtual]

flashing mutator

Set the boolean that indicates whether or not the line should flash

Parameters:
flashingtrue or false

Reimplemented from vrvControlToolkit::DtDrawControlObject.

checkLos accessor

Get the boolean that indicates whether or not the line is checked for terrain collisions

Returns:
true or false
virtual void vrvControlToolkit::DtLine3DObject::setCheckLos ( bool  checkLos) [virtual]

checkLos mutator

Set the boolean that indicates whether or not the line is checked for terrain collisions

Parameters:
checkLostrue or false

projected accessor

Get the boolean that indicates whether or not the line (if it is a 3D line) should be projected onto the overlay (preventing terrain occlusion)

Returns:
true or false
virtual void vrvControlToolkit::DtLine3DObject::setProjected ( bool  projected) [virtual]

projected mutator

Set the boolean that indicates whether or not the line (if it is a 3D line) should be projected onto the overlay (preventing terrain occlusion)

Parameters:
projectedtrue or false
virtual void vrvControlToolkit::DtLine3DObject::setRemoteGraphicSet ( const std::string &  setName) [virtual]
virtual void vrvControlToolkit::DtLine3DObject::update ( ) [virtual]

update the internal pdu

Make sure the internal pdu reflects the actual state of the draw control object's members. This is necessary because some members can be modified directly (which make the interface easier to use). DtStealthRemoteDrawer::update() calls this, so the user doesn't need to; but if the user is accessing the pdu directly (via the pdu() accessor) this should be called before using the pdu.

Implements vrvControlToolkit::DtDrawControlObject.


Member Data Documentation

DtEnvironmentalLineRecord vrvControlToolkit::DtLine3DObject::myLineRecord [protected]

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

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)