![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /***************************************************************************** 00002 * Copyright (c) 2010 MAK Technologies, Inc. 00003 * All rights reserved. 00004 *****************************************************************************/ 00005 /***************************************************************************** 00006 * $RCSfile: DtOsgOverlayEllipseArcModelInstance.h,v $ $Revision: 1.0 $ $State: Exp $ 00007 *****************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvOsg/vrvOsg.h> 00015 #include <vrvOsg/DtOsgModelInstance.h> 00016 #include <matrix/vlDcm.h> 00017 #include <osg/Vec2> 00018 00019 namespace makVrv 00020 { 00021 00022 class DtDe; 00023 class DtPolygon; 00024 00027 class DT_DLL_VRVOSG DtOsgOverlayEllipseArcModelInstance : public DtOsgModelInstance 00028 { 00029 public: 00030 00032 DtOsgOverlayEllipseArcModelInstance( DtDe& de ); 00033 00035 virtual ~DtOsgOverlayEllipseArcModelInstance(); 00036 00038 virtual void setModelSet( int modelSet ); 00039 00040 public: 00041 00043 virtual void setMaxAngleSegment( double angleSegmentMax ); 00044 00046 virtual void setGeometry( double angle, double sweep ); 00047 00049 virtual void setDimensions( float x, float y ); 00050 00052 virtual void setRelativePosition( double x, double y, double z ); 00053 00055 virtual void setPosition( const DtVector& position ); 00056 00058 virtual void setOrientation( const DtTaitBryan& orientation ); 00059 00061 virtual void setScale( float scale ); 00062 00064 virtual void setColor( float r, float g, float b, float a ); 00065 00067 virtual void setInsideColor( float r, float g, float b, float a ); 00068 00070 virtual void setOutsideColor( float r, float g, float b, float a ); 00071 00073 virtual void setLockUpdates( bool lock ); 00074 00076 virtual void setVisible( bool isVisible ); 00077 00079 virtual void setFill(bool); 00080 00082 virtual void setOutlineWidth(float); 00083 00085 virtual void setEventsEnabled(bool, unsigned long long userData); 00086 00087 protected: 00088 00090 virtual void createPolygonIfNecessary(); 00091 00092 00094 virtual void updateVertices(); 00095 00097 virtual void updateColors(); 00098 00099 00101 virtual void set3DVertexPosition( unsigned int index, double x, double y, double z ); 00102 00104 virtual void set3DCentroidPosition( double x, double y, double z ); 00105 00107 virtual void set3DPositionAux( double x, double y, double z, float tempPackedCoords[4] ); 00108 00109 protected: 00110 00111 unsigned int myModelSet; 00112 DtDcm myOrientationDcm; 00113 double myMaxAngleSegment; 00114 00115 osg::Vec4 myInnerColor; 00116 osg::Vec4 myOuterColor; 00117 osg::Vec2 myDimensions; 00118 osg::Vec3d myRelativePosition; 00119 osg::Vec3d myPosition; 00120 float myScale; 00121 00122 double myAngle; 00123 double mySweep; 00124 00125 bool myLockUpdates; 00126 bool myDirtyColors; 00127 bool myDirtyVertices; 00128 00129 bool myPositionSetFlag; 00130 bool myFillPolygon; 00131 00132 float myWidth; 00133 bool myEventsEnabled; 00134 unsigned long long myUserData; 00135 00136 bool myVisible; 00137 DtPolygon* myPolygon; 00138 00139 }; 00140 00141 }