![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtVrlinkAggregateKinStateVisualizer.h,v $ $Revision: 1.43 $ $SceneObject: Exp $ 00007 ******************************************************************************/ 00008 00013 00014 #pragma once 00015 00016 #include <vrvCore/DtAggregateKinStateVisualizer.h> 00017 #include <vrvVrl/DtVrlinkAggregateStateListener.h> 00018 00019 namespace makVrv 00020 { 00021 namespace DT_PROTOCOL_NAMESPACE 00022 { 00027 class DL_DLL_IGCONVRLINK DtVrlinkAggregateKinStateVisualizer : public DtAggregateKinStateVisualizer 00028 { 00029 protected: 00030 enum DirtyBits 00031 { 00032 DirtyLocation = 1 << 0, 00033 DirtyVelocity = 1 << 1, 00034 DirtyAcceleration = 1 << 2, 00035 DirtyOrientation = 1 << 3, 00036 DirtyRotationalVelocity = 1 << 4, 00037 }; 00038 00039 public: 00040 DtVrlinkAggregateKinStateVisualizer(DtBaseConnection& simulation, DtStateListener& listener, int modelSet); 00041 00042 virtual ~DtVrlinkAggregateKinStateVisualizer(); 00043 00044 public: 00045 00047 virtual void createModelAgents(); 00048 00050 virtual void setLocation(const DtVector&); 00051 00053 virtual void setOrientation(const DtTaitBryan&); 00054 00056 virtual void setVelocity(const DtVector&); 00057 00059 virtual void setAngularVelocity(const DtVector&); 00060 00062 virtual void setAcceleration(const DtVector&); 00063 00065 bool anythingDirty() const; 00066 00067 protected: 00069 virtual void postUpdate(); 00070 00071 void flagLocationDirty(); 00072 void flagVelocityDirty(); 00073 void flagAccelerationDirty(); 00074 void flagOrientationDirty(); 00075 void flagRotationalVelocityDirty(); 00076 00077 void flagAllSpatialDirty(); 00078 00079 void makeClean(); 00080 00082 virtual void setHostGlobalId(const std::string& id); 00083 00086 virtual void slot_aggregateCreated(DtVrlinkAggregateStateListener& esl); 00087 00089 virtual void resetSpatialAttributes(); 00090 00092 virtual void setAlgorithm(); 00093 00095 virtual void setEntityType(const std::string& type); 00096 00097 virtual void setSmoothingEnabled(bool b); 00098 00099 protected: 00100 unsigned int myDirtyBits; 00101 00103 DtVrlinkAggregateStateListener* myVrlinkListener; 00104 00106 DtVrlinkConnection* myVrlinkSimulation; 00107 00108 DtVector myLastTranslatedLocation; 00109 DtGlobalObjectDesignator myHostId; 00110 }; 00111 00112 typedef DtStateVisualizerCreatorTemplate<DtVrlinkAggregateKinStateVisualizer> DtVrlinkAggregateKinStateVisualizerCreator; 00113 } 00114 }