![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtDeadReckonGroundClampUpdater.h,v $ $Revision: 1.19 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtDeadReckonGroundClampUpdater_H_ 00014 #define DtDeadReckonGroundClampUpdater_H_ 00015 00016 #include <vrvCore/vrvCore.h> 00017 #include <vrvCore/DtDe.h> 00018 #include <vrvCore/DtGroundClampingUpdater.h> 00019 #include <vrvCore/DtUpdater.h> 00020 00021 #include <string> 00022 00023 class DtVector; 00024 class DtTaitBryan; 00025 00026 namespace makVrv 00027 { 00028 class DtDeadReckonUpdater; 00029 class DtGroundClampingUpdater; 00030 class DtMotionModel; 00031 00036 class DT_DLL_VRVCORE DtDeadReckonGroundClampUpdater : public DtUpdater 00037 { 00038 public: 00039 00041 DtDeadReckonGroundClampUpdater(DtDe& de, DtUniqueID id ); 00042 00044 virtual ~DtDeadReckonGroundClampUpdater(); 00045 00047 virtual void update( double simTime ); 00048 00050 virtual void setSceneObject( DtSceneObject* sceneObject ); 00051 00054 virtual void deadReckonAndGroundClamp(); 00055 00057 virtual void setPosition(const DtVector& position); 00058 00060 virtual void setOrientation(const DtTaitBryan& ori); 00061 00063 virtual void setVelocity(const DtVector& velocity); 00064 00066 virtual void setAcceleration(const DtVector& acceleration); 00067 00069 virtual void setAngularVelocity(const DtVector& angularVelocity); 00070 00072 virtual void setDeadReckoningSettings(bool deadReckonPosition, 00073 bool deadReckonVelocity, bool deadReckonOrientation); 00074 00076 virtual void setSmoothingEnabled(bool enabled); 00077 00079 virtual void setSmoothingPeriod(float period); 00080 00082 virtual void updateSpacial(double simulationTime); 00083 00085 virtual void setMotionModel(const std::string& modelName); 00086 00088 virtual DtMotionModel* motionModel(); 00089 00092 virtual void setGroundClamping(bool enabled); 00093 00096 virtual void setGroundClampingMode( 00097 DtGroundClampingUpdater::GroundClampingMode mode); 00098 00101 virtual void setGroundClampingRadiusScale(float scale); 00102 00105 virtual void setGroundClampingAlways(bool enabled); 00106 00108 virtual void setCheckForCulling(bool); 00109 00110 protected: 00111 00112 DtGroundClampingUpdater* myGroundClampingUpdater; 00113 DtDeadReckonUpdater* myDeadReckonUpdater; 00114 00115 }; 00116 } 00117 00118 #endif 00119