![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2004 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: groundInter.h,v $ $Revision: 1.16 $ $State: Exp $ 00007 *******************************************************************************/ 00008 #ifndef groundInter_H_ 00009 #define groundInter_H_ 00010 00014 00017 00018 00019 #include <matrix/LibMatrix.h> 00020 #include "geometry/surface.h" 00021 00022 class DtAttachedTerrain; 00023 class DtChordIntersectionRecord; 00024 class DtSimManager; 00025 00026 00031 #include "vrfobjcore/vrfobjcoreDefines.h" 00032 class DT_DLL_vrfobjcore DtGroundInteractionPt 00033 { 00034 public: 00035 DtGroundInteractionPt(); 00036 00037 DtGroundInteractionPt(const DtVector& localPosition, DtAttachedTerrain& refFrame); 00038 00039 virtual ~DtGroundInteractionPt(); 00040 00042 DtGroundInteractionPt(const DtGroundInteractionPt& original); 00043 00045 DtGroundInteractionPt& operator=(const DtGroundInteractionPt& original); 00046 00048 DtGroundInteractionPt& operator=(const DtChordIntersectionRecord& intersectionRecord); 00049 00051 void init(const DtVector& localPosition, DtAttachedTerrain& terrainAttachedTo); 00052 00054 virtual bool isOnGround(); 00055 00059 virtual DtFloat64 calculatePosition(); 00060 00062 virtual void calculatePositionWithoutGround(); 00063 00064 virtual const DtVector& localPosition() const; 00065 virtual void setLocalPosition(const DtVector& position); 00066 00067 virtual DtAttachedTerrain* terrainAttachedTo(); 00068 virtual const DtAttachedTerrain* terrainAttachedTo() const; 00069 virtual void setTerrainAttachedTo(DtAttachedTerrain* newTerrainAttachedTo); 00070 00071 virtual void setPosition(const DtVector& position); 00072 00081 virtual DtVector calculateOnGroundPlanePosition() const; 00082 00086 virtual const DtVector& position() const; 00087 00088 virtual DtFloat64 altitude() const; 00089 virtual void setAltitude(DtFloat64 alt); 00090 00091 virtual const DtVector& groundPosition() const; 00092 virtual void setGroundPosition(const DtVector& pos); 00093 00094 virtual DtRoughnessSoilType soilType() const; 00095 virtual void setSoilType(DtRoughnessSoilType type); 00096 00097 virtual const DtSurface& surface() const; 00098 virtual void setSurface(const DtSurface& surface); 00099 00100 virtual void setParentPosition(const DtVector& pos); 00101 virtual void setParentOrientation(const DtDcm& orient); 00102 00103 protected: 00104 00105 bool testInvariant() const; 00106 00107 00108 protected: 00109 00110 DtVector myParentPosition; 00111 DtDcm myParentOrientation; 00112 DtVector myLocalPosition; 00113 DtVector myPosition; 00114 DtVector myGroundPosition; 00115 DtFloat64 myAltitude; 00116 DtRoughnessSoilType mySoilType; 00117 DtSurface mySurface; 00118 DtAttachedTerrain* myTerrainAttachedTo; 00119 }; 00120 00121 #endif