60 #include "FGJSBBase.h"
61 #include "math/FGMatrix33.h"
231 enum TransformType { tNone, tWindBody, tLocalBody, tCustom };
235 inline double GetBodyXForce(
void)
const {
return vFb(eX); }
236 inline double GetBodyYForce(
void)
const {
return vFb(eY); }
237 inline double GetBodyZForce(
void)
const {
return vFb(eZ); }
242 inline void SetLocation(
double x,
double y,
double z) {
262 inline void SetLocationX(
double x) {vXYZn(eX) = x; vActingXYZn(eX) = x;}
263 inline void SetLocationY(
double y) {vXYZn(eY) = y; vActingXYZn(eY) = y;}
264 inline void SetLocationZ(
double z) {vXYZn(eZ) = z; vActingXYZn(eZ) = z;}
265 inline double SetActingLocationX(
double x) {vActingXYZn(eX) = x;
return x;}
266 inline double SetActingLocationY(
double y) {vActingXYZn(eY) = y;
return y;}
267 inline double SetActingLocationZ(
double z) {vActingXYZn(eZ) = z;
return z;}
268 inline void SetLocation(
const FGColumnVector3& vv) { vXYZn = vv;
SetActingLocation(vv);}
271 inline double GetLocationX(
void )
const {
return vXYZn(eX);}
272 inline double GetLocationY(
void )
const {
return vXYZn(eY);}
273 inline double GetLocationZ(
void )
const {
return vXYZn(eZ);}
274 inline double GetActingLocationX(
void )
const {
return vActingXYZn(eX);}
275 inline double GetActingLocationY(
void )
const {
return vActingXYZn(eY);}
276 inline double GetActingLocationZ(
void )
const {
return vActingXYZn(eZ);}
277 const FGColumnVector3& GetLocation(
void)
const {
return vXYZn; }
278 const FGColumnVector3& GetActingLocation(
void)
const {
return vActingXYZn; }
287 void SetAnglesToBody(
double broll,
double bpitch,
double byaw);
288 inline void SetAnglesToBody(
const FGColumnVector3& vv) {
289 SetAnglesToBody(vv(eRoll), vv(ePitch), vv(eYaw));
292 void UpdateCustomTransformMatrix(
void);
293 void SetPitch(
double pitch) {vOrient(ePitch) = pitch; UpdateCustomTransformMatrix();}
294 void SetYaw(
double yaw) {vOrient(eYaw) = yaw; UpdateCustomTransformMatrix();}
296 double GetPitch(
void)
const {
return vOrient(ePitch);}
297 double GetYaw(
void)
const {
return vOrient(eYaw);}
299 inline const FGColumnVector3& GetAnglesToBody(
void)
const {
return vOrient;}
300 inline double GetAnglesToBody(
int axis)
const {
return vOrient(axis);}
302 inline void SetTransformType(TransformType ii) { ttype=ii; }
303 inline TransformType GetTransformType(
void)
const {
return ttype; }
305 const FGMatrix33& Transform(
void)
const;
309 FGMassBalance* MassBalance;
312 FGColumnVector3 vOrient;
314 FGColumnVector3 vXYZn;
315 FGColumnVector3 vActingXYZn;
322 void Debug(
int from);