![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2006 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtLine2DObject.h,v $ $Revision: 1.3 $ $State: Exp $ 00007 ******************************************************************************/ 00008 #pragma once 00009 00014 00015 #include <vector> 00016 00017 #include <vlutil/vlString.h> 00018 #include <vl/exerciseConn.h> 00019 #include <vl/envLine.h> 00020 00021 #include <vrvDrawControl/vrvDrawControlDefines.h> 00022 #include <vrvDrawControl/DtDrawControlObject.h> 00023 #include <vrvDrawControl/DtLineObjectInterface.h> 00024 #include <vrvDrawControl/DtVdcVector2D.h> 00025 #include <vrvDrawControl/DtVdcLineSegment.h> 00026 #include <vrvDrawControl/DtVdcColor.h> 00027 00028 #include <vrfExtObjects/3dGraphicalObjectLineStateRecord.h> 00029 00030 namespace vrvControlToolkit 00031 { 00039 class DT_DLL_VRVDRAWCONTROL DtLine2DObject : public DtDrawControlObject, public DtLineObjectInterface 00040 { 00041 public: 00076 DtLine2DObject( DtExerciseConn* exConn, unsigned id, const DtVdcVector2D& startPosition, 00077 const DtVdcVector2D& endPosition, int numSegments=1, 00078 DtVdcColor color = DtVdcColor::DtVdcWhite, 00079 DtVdcLineSegment::DtVdcSegmentStyle lineStyle = 00080 DtVdcLineSegment::DtVdcSegmentStyleStraight, 00081 DtVdcLineSegment::DtVdcSegmentArrowStyle arrowStyle = 00082 DtVdcLineSegment::DtVdcSegmentArrowStyleNoArrow, 00083 unsigned thickness=1, unsigned pattern=0xffffff, bool flashing = false ); 00084 00085 // \brief Virtual destructor 00086 virtual ~DtLine2DObject(); 00087 00088 private: 00093 DtLine2DObject(); 00094 00095 public: 00101 virtual DtVdcVector2D startPosition() const; 00102 00108 virtual void setStartPosition( const DtVdcVector2D& startPosition ); 00109 00115 virtual DtVdcVector2D endPosition() const; 00116 00122 virtual void setEndPosition( const DtVdcVector2D& endPosition ); 00123 00129 virtual int numSegments() const; 00130 00136 virtual void setNumSegments( int numSegments ); 00137 00145 virtual const DtVdcColor& color( int segment ) const; 00146 virtual const DtVdcColor& color() const; 00147 00155 virtual void setColor ( const DtVdcColor& color, int segment ); 00156 virtual void setColor ( const DtVdcColor& color); 00157 00165 virtual DtVdcLineSegment::DtVdcSegmentStyle lineStyle( int segment=0 ) const; 00166 00174 virtual void setLineStyle( DtVdcLineSegment::DtVdcSegmentStyle lineStyle, 00175 int segment=0 ); 00176 00185 virtual DtVdcLineSegment::DtVdcSegmentArrowStyle arrowStyle( int segment=0 ) 00186 const; 00187 00195 virtual void setArrowStyle( DtVdcLineSegment::DtVdcSegmentArrowStyle arrowStyle, 00196 int segment=0 ); 00197 00205 virtual unsigned pattern( int segment=0 ) const; 00206 00214 virtual void setPattern( unsigned pattern, int segment=0 ); 00215 00223 virtual unsigned thickness( int segment=0 ) const; 00224 00234 virtual void setThickness( unsigned thickness, int segment=0 ); 00235 00243 virtual double percentage( int segment ) const; 00244 00254 virtual void setPercentage( double percentage, int segment ); 00255 00261 virtual bool flashing() const; 00262 00268 virtual void setFlashing( bool flashing ); 00269 00270 virtual void setRemoteGraphicSet(const std::string& setName); 00271 00272 00274 virtual void update(); 00275 00276 protected: 00277 virtual void initRecords(); 00278 00279 DtVdcVector2D myStartPosition; 00280 DtVdcVector2D myEndPosition; 00281 bool myFlashing; 00282 std::vector<DtVdcLineSegment> myLineSegments; 00283 00284 DtEnvironmentalLineRecord myLineRecord; 00285 Dt3DGraphicalObjectLineStateRecord myLineStateRecord; 00286 }; 00287 }