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
384 virtual void realizeTopology(
State&)
const { }
455 friend class MobilizedBody::CustomImpl;
460 #endif // SimTK_SIMBODY_MOBILIZED_BODY_CUSTOM_H_
virtual void realizeDynamics(const State &) const
The Matter Subsystem's realizeDynamics() method will call this method along with the built-in Mobiliz...
Definition: MobilizedBody_Custom.h:437
virtual void realizeTime(const State &) const
The Matter Subsystem's realizeTime() method will call this method along with the built-in MobilizedBo...
Definition: MobilizedBody_Custom.h:413
virtual void realizeInstance(const State &) const
The Matter Subsystem's realizeInstance() method will call this method along with the built-in Mobiliz...
Definition: MobilizedBody_Custom.h:407
The Body class represents a reference frame that can be used to describe mass properties and geometry...
Definition: Body.h:55
This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with o...
Definition: Assembler.h:37
This class provides some infrastructure useful in making SimTK Private Implementation (PIMPL) classes...
Definition: PrivateImplementation.h:106
This class is basically a glorified enumerated type, type-safe and range checked but permitting conve...
Definition: Stage.h:50
virtual void realizeModel(State &) const
The Matter Subsystem's realizeModel() method will call this method along with the built-in MobilizedB...
Definition: MobilizedBody_Custom.h:402
The SimTK::Array_ container class is a plug-compatible replacement for the C++ standard template l...
Definition: Array.h:50
SimTK_Real Real
This is the default compiled-in floating point type for SimTK, either float or double.
Definition: SimTKcommon/include/SimTKcommon/internal/common.h:577
This object is intended to contain all state information for a SimTK::System, except topological info...
Definition: State.h:276
Custom()
Default constructor provides an empty handle that can be assigned to reference any MobilizedBody::Cus...
Definition: MobilizedBody_Custom.h:79
virtual void realizeAcceleration(const State &) const
The Matter Subsystem's realizeAcceleration() method will call this method along with the built-in Mob...
Definition: MobilizedBody_Custom.h:445
#define SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS(DERIVED, DERIVED_IMPL, PARENT)
Definition: PrivateImplementation.h:343
This is the implementation class for Custom mobilizers.
Definition: MobilizedBody_Custom.h:130
virtual void realizeVelocity(const State &) const
The Matter Subsystem's realizeVelocity() method will call this method along with the built-in Mobiliz...
Definition: MobilizedBody_Custom.h:429
Direction
Constructors can take an argument of this type to indicate that the mobilizer is being defined in the...
Definition: MobilizedBody.h:180
This defines the MobilizedBody class, which associates a new body (the "child", "outboard", or "successor" body) with a mobilizer and a reference frame on an existing body (the "parent", "inboard", or "predecessor" body) that is already part of a SimbodyMatterSubsystem.
#define SimTK_SIMBODY_EXPORT
Definition: Simbody/include/simbody/internal/common.h:72
A MobilizedBody is Simbody's fundamental body-and-joint object used to parameterize a system's motion...
Definition: MobilizedBody.h:167
The handle class MobilizedBody::Custom (dataless) and its companion class MobilizedBody::Custom::Impl...
Definition: MobilizedBody_Custom.h:72
This subsystem contains the bodies ("matter") in the multibody system, the mobilizers (joints) that d...
Definition: SimbodyMatterSubsystem.h:133
virtual void realizeReport(const State &) const
The Matter Subsystem's realizeReport() method will call this method along with the built-in Mobilized...
Definition: MobilizedBody_Custom.h:452
virtual void realizePosition(const State &) const
The Matter Subsystem's realizePosition() method will call this method along with the built-in Mobiliz...
Definition: MobilizedBody_Custom.h:421