![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /***************************************************************************** 00002 * Copyright (c) 2012 MAK Technologies, Inc. 00003 * All rights reserved. 00004 *****************************************************************************/ 00005 00009 00010 #pragma once 00011 00012 #include <vrvCore/vrvCore.h> 00013 00014 #include <vrvCore/DtBaseRadioVisualization.h> 00015 00016 #include <vrvUtil/DtVirtualBaseClass.h> 00017 00018 #include <vrvCore/DtUniqueID.h> 00019 00020 #include <matrix/vlVector.h> 00021 00022 namespace makVrv 00023 { 00024 00025 class DtSceneObjectAgent; 00026 class DtAttachableUpdaterAgent; 00027 class DtSegmentedLineModelAgent; 00028 00032 class DT_DLL_VRVCORE DtCommunicationLine : public DtBaseRadioVisualization 00033 { 00034 public: 00035 00037 virtual ~DtCommunicationLine(); 00038 00040 virtual void setDirection( AttachablePoint source, AttachablePoint dest ); 00041 00044 00047 virtual void setColor( float red, float green, float blue, float alpha = 1.0f ); 00048 00053 virtual void setAnimationRate( float rate ); 00054 00056 virtual void animate( double t ); 00057 00059 00061 virtual void setCurvedEarthExaggeration( float amount ); 00062 00066 virtual void setUseCurvedEarthLines( bool useCurved ); 00067 00069 virtual void setStartOffset( const DtVector& offset ); 00070 00072 virtual void setEndOffset( const DtVector& offset ); 00073 00074 protected: 00075 00076 friend class DtCommunicationLineCreator; 00077 00079 DtCommunicationLine( DtDe& de, int modelSet, int visualType, 00080 AttachablePoint source, AttachablePoint dest ); 00081 00085 virtual void initialize(); 00086 00091 virtual DtSegmentedLineModelAgent* instantiateLineModelAgent(); 00092 00098 virtual void initializeLineModelAgent( DtSegmentedLineModelAgent* agent ); 00099 00103 virtual void slot_coordinateSystemChanged(); 00104 00105 protected: 00106 00107 DtAttachableUpdaterAgent* myUpdater; 00108 DtSegmentedLineModelAgent* myLineModel; 00109 00110 DtSceneObjectAgent* mySceneObject; 00111 00112 int myModelSet; 00113 int myVisualType; 00114 00115 bool myReverseDirectionFlag; 00116 bool myCurvedEarthModeFlag; 00117 00118 float myCurvedEarthExaggerationAmount; 00119 00120 unsigned short myStipplePattern; 00121 00122 float myAnimationRate; 00123 00124 AttachablePoint myStartPoint; 00125 AttachablePoint myEndPoint; 00126 00127 float myLineColorR; 00128 float myLineColorG; 00129 float myLineColorB; 00130 float myLineColorA; 00131 00132 DtDe& myDe; 00133 00134 }; 00135 00136 00141 class DT_DLL_VRVCORE DtCommunicationLineCreator : public DtVirtualBaseClass 00142 { 00143 public: 00144 00148 static DtCommunicationLineCreator& instance( DtDe& de ); 00149 00151 DtCommunicationLineCreator( DtDe& de ); 00152 00155 DtCommunicationLine* create( int modelSet, int visualizerType, 00156 DtCommunicationLine::AttachablePoint source, 00157 DtCommunicationLine::AttachablePoint dest ); 00158 00159 protected: 00160 00161 DtDe& myDe; 00162 00163 }; 00164 00165 }