12 #ifndef articulatedPart_H_
13 #define articulatedPart_H_
47 ParameterMetric_Position = 1,
48 ParameterMetric_PositionRate = 2,
49 ParameterMetric_Extension = 3,
50 ParameterMetric_ExtensionRate = 4,
51 ParameterMetric_X = 5,
52 ParameterMetric_XRate = 6,
53 ParameterMetric_Y = 7,
54 ParameterMetric_YRate = 8,
55 ParameterMetric_Z = 9,
56 ParameterMetric_ZRate = 10,
57 ParameterMetric_Azimuth = 11,
58 ParameterMetric_AzimuthRate = 12,
59 ParameterMetric_Elevation = 13,
60 ParameterMetric_ElevationRate = 14,
61 ParameterMetric_Rotation = 15,
62 ParameterMetric_RotationRate = 16
93 virtual unsigned int parameterCount()
const;
96 virtual int partTypeAttachedTo()
const;
101 virtual void setPartTypeAttachedTo(
int attachedTo);
104 virtual unsigned short attachedToPartIndex()
const;
109 virtual void setAttachedToPartIndex(
unsigned int index);
112 virtual unsigned int partType()
const;
115 virtual void setPartType(
unsigned int artPartType);
118 virtual void getParameterMetrics(std::vector<ParameterMetric>& metrics)
const;
133 bool setOnlyValue =
true);
144 parameter.
value = value;
145 return setParameter(parameterMetric,parameter);
152 virtual bool getParameter(ParameterMetric parameterMetric,Parameter& parameter)
const;
160 virtual float getParameterValue(ParameterMetric parameterMetric,
double time)
const;
167 return getParameterValue(parameterMetric,clock() ? clock()->simTime() : 0.0);
171 virtual void unsetParameter(ParameterMetric parameterMetric);
174 virtual void unsetAllParameters();
177 virtual void incrementChange(ParameterMetric parameterMetric);
180 virtual bool approximating()
const;
183 virtual void setApproximating(
bool deadreckoning);
188 virtual void setClock(
DtClock* clock);
200 inline bool isParameterSet(ParameterMetric parameterMetric)
const;
203 inline bool isParameterMetricValid(ParameterMetric parameterMetric)
const;
206 inline bool isParameterApproximated(ParameterMetric parameterMetric)
const;
213 inline unsigned int getParameterRateMetric(ParameterMetric parameterMetric)
const;
222 inline bool hasTranslation()
const;
225 inline DtVector translation()
const;
228 inline DtVector translation(
double time)
const;
231 inline bool getTranslation(
DtVector& vec)
const;
234 inline bool getTranslation(
DtVector& vec,
double time)
const;
237 inline void setTranslation(
const DtVector& trans);
240 inline bool hasTranslationRate()
const;
243 inline DtVector translationRate()
const;
246 inline bool getTranslationRate(
DtVector& vec)
const;
249 inline void setTranslationRate(
const DtVector& transRate);
252 inline bool hasOrientation()
const;
261 inline bool getOrientation(
DtTaitBryan& ori)
const;
264 inline bool getOrientation(
DtTaitBryan& ori,
double time)
const;
267 inline void setOrientation(
const DtTaitBryan& ori);
270 inline bool hasOrientationRate()
const;
273 inline DtVector orientationRate()
const;
276 inline bool getOrientationRate(
DtVector& oriRate)
const;
279 inline void setOrientationRate(
const DtVector& oriRate);
284 virtual void printDataToStream(std::ostream& str)
const;
289 static inline unsigned int decodeArtPartType(
unsigned int type);
292 static inline unsigned int decodeArtPartClass(
unsigned int type);
295 static inline unsigned char decodeArtPartParamMetric(
unsigned int type);
298 static inline unsigned int encodeArtPartParamType(
unsigned int partClass,
unsigned char paramMetric);
300 static bool approximatingEnabledFlag();
301 static void setApproximatingEnabledFlag(
bool enabled);
329 #define articulatedPart_inl_
330 #include "articulatedPart.inl"
331 #undef articulatedPart_inl_