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;
99 virtual void setPartTypeAttachedTo(
int attachedTo);
102 virtual unsigned short attachedToPartIndex()
const;
105 virtual void setAttachedToPartIndex(
unsigned int index);
108 virtual unsigned int partType()
const;
111 virtual void setPartType(
unsigned int artPartType);
114 virtual void getParameterMetrics(std::vector<ParameterMetric>& metrics)
const;
129 bool setOnlyValue =
true);
140 parameter.
value = value;
141 return setParameter(parameterMetric,parameter);
148 virtual bool getParameter(ParameterMetric parameterMetric,Parameter& parameter)
const;
156 virtual float getParameterValue(ParameterMetric parameterMetric,
double time)
const;
163 return getParameterValue(parameterMetric,clock() ? clock()->simTime() : 0.0);
167 virtual void unsetParameter(ParameterMetric parameterMetric);
170 virtual void unsetAllParameters();
173 virtual void incrementChange(ParameterMetric parameterMetric);
176 virtual bool approximating()
const;
179 virtual void setApproximating(
bool deadreckoning);
184 virtual void setClock(
DtClock* clock);
196 inline bool isParameterSet(ParameterMetric parameterMetric)
const;
199 inline bool isParameterMetricValid(ParameterMetric parameterMetric)
const;
202 inline bool isParameterApproximated(ParameterMetric parameterMetric)
const;
209 inline unsigned int getParameterRateMetric(ParameterMetric parameterMetric)
const;
218 inline bool hasTranslation()
const;
221 inline DtVector translation()
const;
224 inline DtVector translation(
double time)
const;
227 inline bool getTranslation(
DtVector& vec)
const;
230 inline bool getTranslation(
DtVector& vec,
double time)
const;
233 inline void setTranslation(
const DtVector& trans);
236 inline bool hasTranslationRate()
const;
239 inline DtVector translationRate()
const;
242 inline bool getTranslationRate(
DtVector& vec)
const;
245 inline void setTranslationRate(
const DtVector& transRate);
248 inline bool hasOrientation()
const;
257 inline bool getOrientation(
DtTaitBryan& ori)
const;
260 inline bool getOrientation(
DtTaitBryan& ori,
double time)
const;
263 inline void setOrientation(
const DtTaitBryan& ori);
266 inline bool hasOrientationRate()
const;
269 inline DtVector orientationRate()
const;
272 inline bool getOrientationRate(
DtVector& oriRate)
const;
275 inline void setOrientationRate(
const DtVector& oriRate);
280 virtual void printDataToStream(std::ostream& str)
const;
284 static inline unsigned int decodeArtPartType(
unsigned int type);
287 static inline unsigned char decodeArtPartParamMetric(
unsigned int type);
289 static inline unsigned int encodeArtPartParamType(
unsigned int partType,
unsigned char paramMetric);
291 static bool approximatingEnabledFlag();
292 static void setApproximatingEnabledFlag(
bool enabled);
320 #define articulatedPart_inl_
321 #include "articulatedPart.inl"
322 #undef articulatedPart_inl_