![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtVrlinkEntityKinStateVisualizer.h,v $ $Revision: 1.43 $ $SceneObject: Exp $ 00007 ******************************************************************************/ 00008 00013 00014 #pragma once 00015 #include <vrvCore/DtEntityKinStateVisualizer.h> 00016 #include <vrvVrl/DtVrlinkEntityStateListener.h> 00017 00018 namespace makVrv 00019 { 00020 namespace DT_PROTOCOL_NAMESPACE 00021 { 00022 class DL_DLL_IGCONVRLINK DtVrlinkEntityKinStateVisualizer : public DtEntityKinStateVisualizer 00023 { 00024 protected: 00025 enum DirtyBits 00026 { 00027 DirtyLocation = 1 << 0, 00028 DirtyVelocity = 1 << 1, 00029 DirtyAcceleration = 1 << 2, 00030 DirtyOrientation = 1 << 3, 00031 DirtyRotationalVelocity = 1 << 4, 00032 }; 00033 00034 public: 00035 DtVrlinkEntityKinStateVisualizer(DtBaseConnection& simulation, DtStateListener& listener, int modelSet); 00036 00037 virtual ~DtVrlinkEntityKinStateVisualizer(); 00038 00039 public: 00040 00042 virtual void createModelAgents(); 00043 00045 virtual void setLocation(const DtVector&); 00046 00048 virtual void setOrientation(const DtTaitBryan&); 00049 00051 virtual void setVelocity(const DtVector&); 00052 00054 virtual void setAngularVelocity(const DtVector&); 00055 00057 virtual void setAcceleration(const DtVector&); 00058 00060 bool anythingDirty() const; 00061 00062 protected: 00064 virtual void postUpdate(); 00065 00066 void flagLocationDirty(); 00067 void flagVelocityDirty(); 00068 void flagAccelerationDirty(); 00069 void flagOrientationDirty(); 00070 void flagRotationalVelocityDirty(); 00071 00072 void flagAllSpatialDirty(); 00073 00074 void makeClean(); 00075 00077 virtual void setHostGlobalId(const std::string& id); 00078 00081 virtual void slot_entityCreated(DtVrlinkEntityStateListener& esl); 00082 00084 virtual void resetSpatialAttributes(); 00085 00087 virtual void setAlgorithm(); 00088 00090 virtual void setEntityType(const std::string& type); 00091 00093 virtual void orientationClampingChanged(bool enabled); 00094 00096 virtual void lifeformsUprightChanged(bool enabled); 00097 00098 virtual void setSmoothingEnabled(bool b); 00099 00100 protected: 00101 unsigned int myDirtyBits; 00102 00104 DtVrlinkEntityStateListener* myVrlinkListener; 00105 00107 DtVrlinkConnection* myVrlinkConnection; 00108 00109 DtVector myLastTranslatedLocation; 00110 DtGlobalObjectDesignator myHostToBeCreated; 00111 }; 00112 00113 typedef DtStateVisualizerCreatorTemplate<DtVrlinkEntityKinStateVisualizer> DtVrlinkEntityKinStateVisualizerCreator; 00114 } 00115 }