12#ifndef P6DOFGROUNDREACTIONPOINT_H
13#define P6DOFGROUNDREACTIONPOINT_H
16#include "p6dof_export.h"
22#include "UtVec3dX.hpp"
49 bool CalcNormalForceMoment(UtVec3dX& aForce_lbs, UtVec3dX& aMoment_ftlbs,
bool& aMaxCompressionExceeded,
double aDeltaT_sec);
67 UtVec3dX& aMoment_ftlbs,
68 UtVec3dX& aFrictionDirectionInSurfaceNED);
75 UtVec3dX& aMoment_ftlbs,
76 bool& aMaxCompressionExceeded,
78 const UtVec3dX& aAdditiveVelocityNED_fps);
103 void GetSteeringData(
double& aCurrentSteeringAngle_deg,
double& aMaxSteeringAngle_deg)
const;
106 void GetData(UtVec3dX& aGearPos_m,
107 UtVec3dX& aGearCompressionVec,
108 UtVec3dX& aCurrentGearRollingVec,
109 UtVec3dX& aCurrentForce_lbs,
110 UtVec3dX& aCurrentMoment_ftlbs,
111 UtVec3dX& aCurrentNormalForce_lbs,
112 UtVec3dX& aCurrentFrictionForce_lbs,
113 double& aUncompressedLength_ft,
114 double& aMaximumCompression_ft,
115 double& aCurrentCompression_ft,
116 double& aNormalizedBrakingValue,
117 double& aSteeringAngle_deg,
118 double& aHeightAboveTerrain_ft,
119 bool& aIsLandingGear,
120 bool& aInContactWithGround,
121 bool& aMaxCompressionExceeded);
124 void GetCompressionData(
double& aUncompressedLength_ft,
125 double& aMaximumCompression_ft,
126 double& aCurrentCompression_ft,
127 double& aNormalizedBrakingValue,
128 double& aSteeringAngle_deg,
129 bool& aInContactWithGround,
130 bool& aMaxCompressionExceeded);
132 bool NotMoving()
const;
140 bool SetDataWhenTinyDeltaT(UtVec3dX& aForce_lbs, UtVec3dX& aMoment_ftlbs,
bool& aMaxCompressionExceeded);
145 bool ReturnWhenTinyDeltaT(UtVec3dX& aForce_lbs, UtVec3dX& aMoment_ftlbs,
bool& aMaxCompressionExceeded);
152 UtVec3dX& aMoment_ftlbs,
153 UtVec3dX& aFrictionDirectionInSurfaceNED,
154 bool aUseForceBasedFriction);
bool mIsLandingGear
Definition P6DofGroundReactionPoint.hpp:183
size_t GetSteeringControlHandle() const
Definition P6DofGroundReactionPoint.cpp:315
UtVec3dX mCurrentForce_lbs
Definition P6DofGroundReactionPoint.hpp:194
size_t mSteeringControlSurfaceHandle
Definition P6DofGroundReactionPoint.hpp:159
double GetSteeringAngle_deg() const
Definition P6DofGroundReactionPoint.cpp:330
UtVec3dX mGearCompressionVec
Definition P6DofGroundReactionPoint.hpp:171
bool CalcNormalForceMoment(UtVec3dX &aForce_lbs, UtVec3dX &aMoment_ftlbs, bool &aMaxCompressionExceeded, double aDeltaT_sec)
Definition P6DofGroundReactionPoint.cpp:335
double CalcMaxFrictionForceMagnitude_lbs(UtVec3dX &aDesiredForceBasedFrictionDirectionInSurfaceVecNED)
Definition P6DofGroundReactionPoint.cpp:491
UtVec3dX mCurrentGearRollingVecNED
Definition P6DofGroundReactionPoint.hpp:191
~P6DofGroundReactionPoint() override=default
UtVec3dX mGearRollingVec
Definition P6DofGroundReactionPoint.hpp:172
UtVec3dX mCurrentMoment_ftlbs
Definition P6DofGroundReactionPoint.hpp:195
bool SetDataWhenTinyDeltaT(UtVec3dX &aForce_lbs, UtVec3dX &aMoment_ftlbs, bool &aMaxCompressionExceeded)
Definition P6DofGroundReactionPoint.cpp:1187
bool SetDataWhenNotInContactWithGround(UtVec3dX &aForce_lbs, UtVec3dX &aMoment_ftlbs, bool &aMaxCompressionExceeded)
Definition P6DofGroundReactionPoint.cpp:1157
UtVec3dX mGearPos_m
Definition P6DofGroundReactionPoint.hpp:170
void CalcFrictionForceMomentWhileInMotion(UtVec3dX &aForce_lbs, UtVec3dX &aMoment_ftlbs)
Definition P6DofGroundReactionPoint.cpp:588
P6DofGroundReactionPoint(const P6DofGroundReactionPoint &aSrc)=default
bool ReturnWhenNotInContactWithGround(UtVec3dX &aForce_lbs, UtVec3dX &aMoment_ftlbs, bool &aMaxCompressionExceeded)
Definition P6DofGroundReactionPoint.cpp:1201
bool Initialize()
Definition P6DofGroundReactionPoint.cpp:271
bool mNWS_Engaged
Definition P6DofGroundReactionPoint.hpp:163
void SetBraking(double aNormalizedValue)
Definition P6DofGroundReactionPoint.cpp:305
double mScuffingFrictionCoefficient
Definition P6DofGroundReactionPoint.hpp:181
std::string mNWSAngleControlSurfaceName
Definition P6DofGroundReactionPoint.hpp:160
std::string mControlSurfaceName
Definition P6DofGroundReactionPoint.hpp:156
UtVec3dX mCurrentNormalForceBody_lbs
Definition P6DofGroundReactionPoint.hpp:192
UtVec3dX mCurrentFrictionForceBody_lbs
Definition P6DofGroundReactionPoint.hpp:193
void SetSteeringAngle_deg(double aSteeringAngle_deg)
Definition P6DofGroundReactionPoint.cpp:325
double mBrakingFrictionCoefficient
Definition P6DofGroundReactionPoint.hpp:180
bool ReturnWhenTinyDeltaT(UtVec3dX &aForce_lbs, UtVec3dX &aMoment_ftlbs, bool &aMaxCompressionExceeded)
Definition P6DofGroundReactionPoint.cpp:1213
bool mMaxCompressionExceeded
Definition P6DofGroundReactionPoint.hpp:201
double mCurrentCompressionRate_fps
Definition P6DofGroundReactionPoint.hpp:198
bool mExternalForceBeingApplied
Definition P6DofGroundReactionPoint.hpp:164
bool mNotMoving
Definition P6DofGroundReactionPoint.hpp:203
double mUncompressedLength_ft
Definition P6DofGroundReactionPoint.hpp:177
double mDamperConstant_lbs_per_fps
Definition P6DofGroundReactionPoint.hpp:176
bool mInContactWithGround
Definition P6DofGroundReactionPoint.hpp:200
void CalcFrictionForceMomentStartingToMove(UtVec3dX &aForce_lbs, UtVec3dX &aMoment_ftlbs, UtVec3dX &aFrictionDirectionInSurfaceNED)
Definition P6DofGroundReactionPoint.cpp:594
double mLastCompressionRate_fps
Definition P6DofGroundReactionPoint.hpp:207
double mSteeringAngle_deg
Definition P6DofGroundReactionPoint.hpp:187
size_t GetBrakingControlHandle() const
Definition P6DofGroundReactionPoint.cpp:300
std::string mBrakeControlName
Definition P6DofGroundReactionPoint.hpp:166
double mRollingFrictionCoefficient
Definition P6DofGroundReactionPoint.hpp:179
double mLastNormalForceMagnitude_lbs
Definition P6DofGroundReactionPoint.hpp:210
UtVec3dX mCurrentExternalForce_lbs
Definition P6DofGroundReactionPoint.hpp:196
double mCurrentCompression_ft
Definition P6DofGroundReactionPoint.hpp:197
std::string mSteeringControlSurfaceName
Definition P6DofGroundReactionPoint.hpp:158
size_t mNWSAngleControlSurfaceHandle
Definition P6DofGroundReactionPoint.hpp:161
bool ProcessInput(UtInput &aInput)
Definition P6DofGroundReactionPoint.cpp:73
double GetBraking() const
Definition P6DofGroundReactionPoint.cpp:310
size_t mControlSurfaceHandle
Definition P6DofGroundReactionPoint.hpp:157
bool IsLandingGear()
Definition P6DofGroundReactionPoint.hpp:100
double mNormalizedBrakingValue
Definition P6DofGroundReactionPoint.hpp:186
size_t mBrakeControlHandle
Definition P6DofGroundReactionPoint.hpp:167
bool mIsValid
Definition P6DofGroundReactionPoint.hpp:202
double mLastCompression_ft
Definition P6DofGroundReactionPoint.hpp:206
bool mLastNetGearVelInSurfaceNEDValid
Definition P6DofGroundReactionPoint.hpp:209
double mMaximumCompression_ft
Definition P6DofGroundReactionPoint.hpp:178
P6DofGroundReactionPoint(P6DofScenario *aScenario)
Definition P6DofGroundReactionPoint.cpp:23
UtVec3dX mLastNetGearVelInSurfaceNED_fps
Definition P6DofGroundReactionPoint.hpp:208
P6DofGroundReactionPoint & operator=(const P6DofGroundReactionPoint &other)=delete
bool CalcGroundReactionForceMoment(UtVec3dX &aForce_lbs, UtVec3dX &aMoment_ftlbs, bool &aMaxCompressionExceeded, double aDeltaT_sec, const UtVec3dX &aAdditiveVelocityNED_fps)
Definition P6DofGroundReactionPoint.cpp:733
friend class P6DofLandingGear
Definition P6DofGroundReactionPoint.hpp:35
double mHeightAboveTerrain_ft
Definition P6DofGroundReactionPoint.hpp:199
UtVec3dX mCurrentGearVel_NED_mps
Definition P6DofGroundReactionPoint.hpp:190
double mSpringConstant_lbs_per_ft
Definition P6DofGroundReactionPoint.hpp:175
bool mUseFriction
Definition P6DofGroundReactionPoint.hpp:182
bool mNoseGear
Definition P6DofGroundReactionPoint.hpp:162
void CalcFrictionForceMoment(UtVec3dX &aForce_lbs, UtVec3dX &aMoment_ftlbs, UtVec3dX &aFrictionDirectionInSurfaceNED, bool aUseForceBasedFriction)
Definition P6DofGroundReactionPoint.cpp:601
P6DofObject(P6DofScenario *aScenario)
Definition P6DofObject.cpp:17
P6DofObject * Clone() const
Definition P6DofObject.cpp:24
Definition P6DofScenario.hpp:25
P6DofTerrain provides height of terrain for Pseudo 6DOF objects. This base.
Definition P6DofTerrain.hpp:29
Definition P6DofVehicle.hpp:53