WSF
P6DofMassProperties.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef P6DOFMASSPROPERTIES_H
13#define P6DOFMASSPROPERTIES_H
14
15#include "p6dof_export.h"
16
17#include "UtVec3dX.hpp"
18
19class UtInput;
20
21// P6DofMassProperties provides mass and rotational inertia properties for
22// P6DofObjects. It also provides functions to "build-up" mass properties
23// including those from subobjects (P6DofObjects) as well as contributors
24// from consumables such as fuel.
25class P6DOF_EXPORT P6DofMassProperties
26{
27public:
29
30 bool ProcessInput(UtInput& aInput);
31
32 // This is the "preferred" method of adding mass properties
34
35 // These functions provide the "current" values
36 double GetMass_lbs() const;
37 double GetIxx_slugft2() const;
38 double GetIyy_slugft2() const;
39 double GetIzz_slugft2() const;
40 UtVec3dX GetCmPosRelToRef_ft() const;
41
42 // These functions provide the "base" values
43 double GetBaseMass_lbs() const;
44 double GetBaseIxx_slugft2() const;
45 double GetBaseIyy_slugft2() const;
46 double GetBaseIzz_slugft2() const;
47 UtVec3dX GetBaseCmPosRelToRef_ft() const;
48
49 // This sets all mass properties data to zero
50 void ClearData();
51
52 // This sets the current properties to the base properties
54
55 // This sets the base properties and (internally) set the current properties
56 void SetBaseMassProperties(double aBaseMass_lbm,
57 double aBaseIxx_slugft2,
58 double aBaseIyy_slugft2,
59 double aBaseIzz_slugft2,
60 const UtVec3dX& aBaseCmPosRelToRef_ft);
61
62 // This adds a mass, with the specified rotational inertia,
63 // at the specified location
64 void AddMassAtLocation(double aMass_lbm,
65 double aIxx_slugft2,
66 double aIyy_slugft2,
67 double aIzz_slugft2,
68 const UtVec3dX& aLocation_ft);
69
70 // This adds a point mass at the specified location
71 void AddMassAtLocation(double aMass_lbm, const UtVec3dX& aLocation_ft);
72
73 // This moves to a new reference point
74 void MoveToLocation(const UtVec3dX& aLocation_ft);
75
76protected:
81 UtVec3dX mBaseCmPosRelToRef_ft; // CM location relative to reference point
82
87 UtVec3dX mCurrentCmPosRelToRef_ft; // CM location relative to reference point
88};
89
90#endif
double GetIzz_slugft2() const
Definition P6DofMassProperties.cpp:104
P6DofMassProperties()
Definition P6DofMassProperties.cpp:21
double mCurrentIyy_slugft2
Definition P6DofMassProperties.hpp:85
double mBaseMass_lbm
Definition P6DofMassProperties.hpp:77
UtVec3dX GetBaseCmPosRelToRef_ft() const
Definition P6DofMassProperties.cpp:134
double mBaseIyy_slugft2
Definition P6DofMassProperties.hpp:79
void MoveToLocation(const UtVec3dX &aLocation_ft)
Definition P6DofMassProperties.cpp:318
bool ProcessInput(UtInput &aInput)
Definition P6DofMassProperties.cpp:159
double GetMass_lbs() const
Definition P6DofMassProperties.cpp:89
double mBaseIxx_slugft2
Definition P6DofMassProperties.hpp:78
void ClearData()
Definition P6DofMassProperties.cpp:139
double GetIyy_slugft2() const
Definition P6DofMassProperties.cpp:99
UtVec3dX mCurrentCmPosRelToRef_ft
Definition P6DofMassProperties.hpp:87
void SetBaseMassProperties(double aBaseMass_lbm, double aBaseIxx_slugft2, double aBaseIyy_slugft2, double aBaseIzz_slugft2, const UtVec3dX &aBaseCmPosRelToRef_ft)
Definition P6DofMassProperties.cpp:240
double GetIxx_slugft2() const
Definition P6DofMassProperties.cpp:94
double mBaseIzz_slugft2
Definition P6DofMassProperties.hpp:80
P6DofMassProperties & operator+=(const P6DofMassProperties &aSrc)
Definition P6DofMassProperties.cpp:35
double mCurrentIzz_slugft2
Definition P6DofMassProperties.hpp:86
double GetBaseIyy_slugft2() const
Definition P6DofMassProperties.cpp:124
double GetBaseIxx_slugft2() const
Definition P6DofMassProperties.cpp:119
double mCurrentIxx_slugft2
Definition P6DofMassProperties.hpp:84
UtVec3dX GetCmPosRelToRef_ft() const
Definition P6DofMassProperties.cpp:109
double GetBaseIzz_slugft2() const
Definition P6DofMassProperties.cpp:129
void AddMassAtLocation(double aMass_lbm, double aIxx_slugft2, double aIyy_slugft2, double aIzz_slugft2, const UtVec3dX &aLocation_ft)
Definition P6DofMassProperties.cpp:259
void SetCurrentDataToBaseData()
Definition P6DofMassProperties.cpp:150
double GetBaseMass_lbs() const
Definition P6DofMassProperties.cpp:114
UtVec3dX mBaseCmPosRelToRef_ft
Definition P6DofMassProperties.hpp:81
double mCurrentMass_lbm
Definition P6DofMassProperties.hpp:83
Copyrights Multiple, All Rights Reserved