![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /********************************************************************* 00002 ** Copyright (c) 2010 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: DtCylinderStateVisualizer.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 *********************************************************************/ 00011 00012 #pragma once 00013 #include <vrvCore/vrvCore.h> 00014 #include <vrvCore/DtRemoteGraphicVisualizerAttributes.h> 00015 #include <vrvCore/DtSceneObjectVisualizer.h> 00016 #include <vrvCore/DtCylinderStateListener.h> 00017 #include <vrvCore/DtVisibilityAdapter.h> 00018 00019 class DtVector; 00020 class DtTaitBryan; 00021 00022 namespace makVrv 00023 { 00024 class DtCylinderModelAgent; 00025 class DtArticulatingCylinderModelAgent; 00026 class DtAttachableDeadReckonUpdaterAgent; 00027 class DtAttachableUpdaterAgent; 00028 00032 class DT_DLL_VRVCORE DtCylinderStateVisualizer : 00033 public DtSceneObjectVisualizer, 00034 public DtRemoteGraphicVisualizerAttributes 00035 { 00036 public: 00038 DtCylinderStateVisualizer(DtBaseConnection& simulation, 00039 DtStateListener& listener, int modelSet); 00040 00042 virtual ~DtCylinderStateVisualizer(); 00043 00045 virtual void setDiameters(double length, double width, double height); 00046 00048 virtual void setColor(float r,float g,float b,float a); 00049 00051 virtual void setFlashing(bool flashing); 00052 00054 virtual void setStartLocation(const DtVector& pos); 00055 00057 virtual void setEndLocation(const DtVector& endpoint); 00058 00061 virtual void setOrientation(const DtTaitBryan& orientation); 00062 00068 virtual void setAttached(DtUniqueID id, int vtx, double percentage); 00069 00071 virtual void setHostId(const std::string& id, int vtx, double percentage); 00072 00074 virtual void setOffset(const DtVector& offset); 00075 00078 virtual void setCylinderType( 00079 DtCylinderStateListener::DtCylinderType cylinderType); 00080 00082 virtual const DtStateVisualizer::TypeInfo& typeInfo() const; 00083 00085 static const DtStateVisualizer::TypeInfo& theTypeInfo(); 00086 00087 protected: 00088 virtual void setVisible(bool yesNo); 00089 00090 virtual void createModelAgents(); 00091 00092 virtual void destroyModelAgents(); 00093 00094 virtual void setModelDefinitionForAgents(); 00095 00096 virtual void setFixedAttached(DtUniqueID id, int vtx, double percentage); 00097 00098 virtual void setArticulatedAttached(DtUniqueID id, int vtx, 00099 double percentage); 00100 00101 protected: 00102 DtCylinderModelAgent* myFixedCylinderModelAgent; 00103 DtVisibilityAdapter<DtCylinderModelAgent>* myFixedVisibilityAdapter; 00104 00105 DtArticulatingCylinderModelAgent* myArticulatingCylinderModelAgent; 00106 DtVisibilityAdapter<DtArticulatingCylinderModelAgent>* 00107 myArticulatingVisibilityAdapter; 00108 00109 DtAttachableUpdaterAgent* myUpdaterAgent; 00110 DtAttachableDeadReckonUpdaterAgent* myDRUpdaterAgent; 00111 bool myVertex0Attached; 00112 bool myVertex1Attached; 00113 }; 00114 00115 typedef DtStateVisualizerCreatorTemplate<DtCylinderStateVisualizer> 00116 DtCylinderStateVisualizerCreator; 00117 } 00118