![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2011 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: $ $Revision: $ $State: $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 #include <vrvCore/vrvCore.h> 00015 #include <vrvCore/DtUniqueID.h> 00016 #include <vrvCore/DtGroundClampingUpdater.h> 00017 #include <string> 00018 00019 class DtTaitBryan; 00020 class DtVector; 00021 00022 namespace makVrv 00023 { 00024 class DtAgentManagerInterface; 00025 class DtArticulatedModelAgent; 00026 class DtDeadReckonGroundClampUpdaterAgent; 00027 class DtSceneObjectAgent; 00028 00032 class DtEntity3dFacade 00033 { 00034 public: 00035 00037 DtEntity3dFacade(DtAgentManagerInterface& sceneInterface, 00038 DtElementID id, bool distribute = false); 00039 00040 00042 DtEntity3dFacade(DtAgentManagerInterface& sceneInterface, 00043 DtElementID id, int modelset, bool distribute = false); 00044 00046 virtual ~DtEntity3dFacade(); 00047 00051 00052 00054 virtual void setVisible(bool visible); 00055 00057 virtual bool visible() const; 00058 00060 virtual DtElementID elementId() const; 00061 00063 virtual int modelSet() const; 00064 00066 DtSceneObjectAgent& sceneObjectAgent(); 00067 00069 00072 00073 00077 virtual void setPosition(const DtVector& position); 00078 00084 virtual DtVector position() const; 00085 00089 virtual void setVelocity(const DtVector& velocity); 00090 00095 virtual DtVector velocity() const; 00096 00098 virtual void setAcceleration(const DtVector& acceleration); 00099 00104 virtual DtVector acceleration() const; 00105 00107 virtual void setOrientation(const DtTaitBryan& orientation); 00108 00110 virtual DtTaitBryan orientation() const; 00111 00113 virtual void setAngularVelocity(const DtVector& angularVelocity); 00114 00116 virtual DtVector angularVelocity() const; 00117 00119 00123 00124 00127 virtual void setDeadReckoningEnabled(bool position, bool velocity, 00128 bool orientation); 00129 00131 virtual void setSmoothingEnabled(bool enabled); 00132 00134 virtual void setSmoothingPeriod(float period); 00135 00138 virtual void setGroundClampingMode( 00139 DtGroundClampingUpdater::GroundClampingMode mode); 00140 00142 00146 00147 00149 virtual void setArticulatedModelDefinition(const std::string& modelName); 00150 00152 virtual void setModelScalingEnabled(bool enabled); 00153 00155 virtual void setPartOrientation(int partNumber, 00156 const DtTaitBryan& orientation,const DtVector& angularVelocity); 00157 00159 virtual void setPartTranslation(int partNumber, 00160 const DtVector& translation,const DtVector& velocity); 00161 00163 virtual void setPartVisibility(int partNumber, bool onOff); 00164 00166 00167 protected: 00168 DtElementID myElementId; 00169 int myModelSet; 00170 DtSceneObjectAgent* mySceneObjectAgent; 00171 DtArticulatedModelAgent* myModelAgent; 00172 DtDeadReckonGroundClampUpdaterAgent* mySceneObjectUpdaterAgent; 00173 }; 00174 00175 } 00176 00177 #define DtEntity3dFacade_INL_ 00178 #include <vrvCore/DtEntity3dFacade.inl> 00179 #undef DtEntity3dFacade_INL_ 00180