![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtAttachableDeadReckonUpdater.h,v $ $Revision: 1.19 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtAttachableDeadReckonUpdater_H_ 00014 #define DtAttachableDeadReckonUpdater_H_ 00015 00016 #include <vrvCore/vrvCore.h> 00017 #include <vrvCore/DtDe.h> 00018 #include <vrvCore/DtUpdater.h> 00019 00020 #include <string> 00021 00022 class DtVector; 00023 class DtTaitBryan; 00024 00025 namespace makVrv 00026 { 00027 class DtAttachableUpdater; 00028 class DtDeadReckonUpdater; 00029 00034 class DT_DLL_VRVCORE DtAttachableDeadReckonUpdater : public DtUpdater 00035 { 00036 public: 00037 00039 DtAttachableDeadReckonUpdater(DtDe& de, DtUniqueID id, bool doNotAddToMgr = false ); 00040 00042 virtual ~DtAttachableDeadReckonUpdater(); 00043 00045 virtual void update( double simTime ); 00046 00050 virtual void deadReckonAndAttach(); 00051 00055 virtual void addAttachedPoint( const DtVector& position, int targetVertexIndex ); 00056 00060 virtual void addAttachedPoint( DtUniqueID uniqueID, int targetVertexIndex ); 00061 00065 virtual void addAttachedPoint( DtUniqueID uniqueID, int vtx1, int vtx2, 00066 double proportion, int targetVertexIndex ); 00067 00069 virtual void setPosition(const DtVector& position); 00070 00072 virtual void setOrientation(const DtTaitBryan& ori); 00073 00075 virtual void setVelocity(const DtVector& velocity); 00076 00078 virtual void setAcceleration(const DtVector& acceleration); 00079 00081 virtual void setAngularVelocity(const DtVector& angularVelocity); 00082 00084 virtual void setDeadReckoningSettings(bool deadReckonPosition, 00085 bool deadReckonVelocity, bool deadReckonOrientation); 00086 00088 virtual void setSmoothingEnabled(bool enabled); 00089 00091 virtual void setSmoothingPeriod(float period); 00092 00094 virtual void updateSpacial(double simulationTime); 00095 00097 void setMotionModel(const std::string& modelName); 00098 00100 virtual void setSceneObject( DtSceneObject* sceneObject ); 00101 00102 00103 protected: 00104 00105 DtAttachableUpdater* myAttachableUpdater; 00106 DtDeadReckonUpdater* myDeadReckonUpdater; 00107 00108 }; 00109 } 00110 00111 #endif 00112