WSF
P6DofVehicleType.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 P6DOFOBJECTTYPE_H
13#define P6DOFOBJECTTYPE_H
14
15#include "p6dof_export.h"
16
17#include <list>
18#include <vector>
19
23#include "P6DofObject.hpp"
24#include "P6DofSizeFactor.hpp"
25#include "UtInput.hpp"
26#include "UtVec3dX.hpp"
27
35class P6DofScenario;
36class P6DofSequencer;
37
38// The P6DofVehicleType class is used to define a "type" of P6DofVehicle. Each
39// P6DofVehicle instance is derived, in part, from an instance of P6DofVehicleType.
40class P6DOF_EXPORT P6DofVehicleType : public P6DofObject
41{
42 friend class P6DofVehicle;
43
44public:
45 explicit P6DofVehicleType(P6DofScenario* aScenario);
46 ~P6DofVehicleType() override;
47
49
50 P6DofVehicleType* Clone() const;
51
52 bool ProcessInput(UtInput& aInput);
53
54 // Object 'Types' do not initialize, so they do not use Initialize() or Initialize2()
55
56 // Name is the identifier for an object, the manager classes rely on the name not to change,
57 // thus there is no interface to change the name.
58 std::string GetSubobjectBaseName() const;
59 std::string GetDerivedFromName() const;
60
61 void DeriveFrom(const P6DofVehicleType& aSrc);
62
65
66protected:
68
69 // This removes a sequencer (with specified name), from the sequencer list
70 bool RemoveSequencer(const std::string& aName);
71
72 std::string mSubobjectBaseName;
73 std::string mDerivedFromType;
74
75 // Mass properties
77
78 // Kinematic (motion) state
80
81 // Integrator type
83
84 // Aero properties
86 std::list<P6DofAeroMovableObject*> mAeroPartList;
87
88 // Propulsion system (engines, fuel tanks, etc)
90
91 // A pilot object is what controls the vehicle. This could a manual
92 // pilot, synthetic pilot, a simulated hardware autopilot, or guidance.
94
95 // Flight controls determine the positions of flight control surfaces and
96 // related objects
98
99 // Landing gear is optional
101
102 // List of sequencer objects
103 std::vector<P6DofSequencer*> mSequencerList;
104
105 // List of subobjects
106 std::list<P6DofVehicleType*> mSubObjectList;
107
108 // Relationship with parent object (if it exists)
113
114 // Graphical support -- provides support to define the current graphics
115 // representation for a P6DofVehicle in graphical support tools.
117
118 // The size factor allows effects (esp aerodynamic) based on size
120
121 // Fixed object flag (used to denote no need for kinematics calculations)
123
124 // These parameters are used to generate internal tabular data.
125 // Although the object can operate outside of these values, the
126 // tabular data will be clamped to the highest value. For this reason,
127 // accurate estimates of the operating envelope should be used.
128 double mMaxMach;
132};
133
134#endif
Definition P6DofAeroCoreObject.hpp:32
Definition P6DofAeroMovableObject.hpp:28
Definition P6DofFlightControlSystem.hpp:42
Definition P6DofGraphicalSupport.hpp:24
Definition P6DofKinematicState.hpp:31
Definition P6DofLandingGear.hpp:33
Definition P6DofMassProperties.hpp:26
P6DofObject(P6DofScenario *aScenario)
Definition P6DofObject.cpp:17
P6DofObject * Clone() const
Definition P6DofObject.cpp:24
Definition P6DofPilotManager.hpp:38
Definition P6DofPilotObject.hpp:37
Definition P6DofPropulsionSystem.hpp:35
Definition P6DofScenario.hpp:25
Definition P6DofSequencer.hpp:28
Definition P6DofSizeFactor.hpp:24
Definition P6DofVehicleType.hpp:41
double mMaxBeta_deg
Definition P6DofVehicleType.hpp:131
P6DofPilotManager * PilotManager() const
Definition P6DofVehicleType.hpp:64
P6DofFlightControlSystem * mFlightControlsPtr
Definition P6DofVehicleType.hpp:97
P6DofLandingGear * mLandingGearPtr
Definition P6DofVehicleType.hpp:100
std::string mSubobjectBaseName
Definition P6DofVehicleType.hpp:72
void DeriveFrom(const P6DofVehicleType &aSrc)
Definition P6DofVehicleType.cpp:203
UtVec3dX mAngRelToParentYPR_rad
Definition P6DofVehicleType.hpp:110
double mMaxAlpha_deg
Definition P6DofVehicleType.hpp:129
UtVec3dX mSeparationVel_fps
Definition P6DofVehicleType.hpp:111
P6DofPilotManager * mPilotManagerPtr
Definition P6DofVehicleType.hpp:93
std::string mDerivedFromType
Definition P6DofVehicleType.hpp:73
P6DofGraphicalSupport mGraphicalSupport
Definition P6DofVehicleType.hpp:116
P6DofVehicleType & operator=(const P6DofVehicleType &other)=delete
std::list< P6DofVehicleType * > mSubObjectList
Definition P6DofVehicleType.hpp:106
P6DofMassProperties mMassProperties
Definition P6DofVehicleType.hpp:76
std::string mIntegratorTypeName
Definition P6DofVehicleType.hpp:82
bool ProcessInput(UtInput &aInput)
Definition P6DofVehicleType.cpp:289
UtVec3dX mPosRelToParent_m
Definition P6DofVehicleType.hpp:109
std::string GetDerivedFromName() const
Definition P6DofVehicleType.cpp:1018
P6DofKinematicState mKinematicState
Definition P6DofVehicleType.hpp:79
std::vector< P6DofSequencer * > mSequencerList
Definition P6DofVehicleType.hpp:103
P6DofAeroCoreObject * mAeroCoreObjPtr
Definition P6DofVehicleType.hpp:85
P6DofPilotObject * PilotObject() const
Definition P6DofVehicleType.cpp:280
double mMinAlpha_deg
Definition P6DofVehicleType.hpp:130
std::list< P6DofAeroMovableObject * > mAeroPartList
Definition P6DofVehicleType.hpp:86
P6DofPropulsionSystem * mPropulsionObjPtr
Definition P6DofVehicleType.hpp:89
bool mFixedObject
Definition P6DofVehicleType.hpp:122
P6DofVehicleType(P6DofScenario *aScenario)
Definition P6DofVehicleType.cpp:37
std::string GetSubobjectBaseName() const
Definition P6DofVehicleType.cpp:1013
friend class P6DofVehicle
Definition P6DofVehicleType.hpp:42
double mMaxMach
Definition P6DofVehicleType.hpp:128
UtVec3dX mSeparationOmega_rps
Definition P6DofVehicleType.hpp:112
P6DofSizeFactor mSizeFactor
Definition P6DofVehicleType.hpp:119
Copyrights Multiple, All Rights Reserved