1 #ifndef SimTK_SIMBODY_MOBILIZED_BODY_CUSTOM_H_
2 #define SimTK_SIMBODY_MOBILIZED_BODY_CUSTOM_H_
75 class ImplementationImpl;
111 const Implementation& getImplementation()
const;
112 Implementation& updImplementation();
119 #ifndef SimTK_SIMBODY_DEFINING_MOBILIZED_BODY
121 MobilizedBody::Custom::ImplementationImpl>;
131 :
public PIMPLHandle<Implementation,ImplementationImpl>
214 bool getUseEulerAngles(
const State& s)
const;
222 void invalidateTopologyCache()
const;
237 virtual Transform calcMobilizerTransformFromQ(
const State& s,
int nq,
const Real* q)
const = 0;
266 virtual void multiplyByHTranspose(
const State& s,
const SpatialVec& F,
int nu,
Real* f)
const = 0;
287 virtual void multiplyByHDotTranspose(
const State& s,
const SpatialVec& F,
int nu,
Real* f)
const = 0;
299 virtual void multiplyByN(
const State& s,
bool transposeMatrix,
300 int nIn,
const Real* in,
int nOut,
Real* out)
const;
312 virtual void multiplyByNInv(
const State& s,
bool transposeMatrix,
313 int nIn,
const Real* in,
int nOut,
Real* out)
const;
325 virtual void multiplyByNDot(
const State& s,
bool transposeMatrix,
326 int nIn,
const Real* in,
int nOut,
Real* out)
const;
346 virtual void setQToFitTransform(
const State&,
const Transform& X_FM,
int nq,
Real* q)
const;
359 virtual void setUToFitVelocity(
const State&,
const SpatialVec& V_FM,
int nu,
Real* u)
const;
367 virtual void calcDecorativeGeometryAndAppend
455 friend class MobilizedBody::CustomImpl;
460 #endif // SimTK_SIMBODY_MOBILIZED_BODY_CUSTOM_H_