Simbody
Classes | Namespaces

MobilizedBody.h File Reference

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 MatterSubsystem. More...

#include "SimTKmath.h"
#include "simbody/internal/common.h"
#include "simbody/internal/Body.h"
#include "simbody/internal/Motion.h"
#include <cassert>

Go to the source code of this file.

Classes

class  SimTK::MobilizedBody
 This is the base class for all MobilizedBody classes, which include a body and a particular kind of mobilizer (joint) connecting that body to its parent. More...
class  SimTK::MobilizedBody::Pin
 One mobility -- rotation about the common z axis of the inboard and outboard mobilizer frames. More...
class  SimTK::MobilizedBody::Slider
 One mobility -- translation along the common x axis of the inboard and outboard mobilizer frames. More...
class  SimTK::MobilizedBody::Screw
 One mobility -- coordinated rotation and translation along the common z axis of the inboard and outboard mobilizer frames. More...
class  SimTK::MobilizedBody::Universal
 Two mobilities -- rotation about the x axis, followed by a rotation about the new y axis. More...
class  SimTK::MobilizedBody::Cylinder
 Two mobilities -- rotation and translation along the common z axis of the inboard and outboard mobilizer frames. More...
class  SimTK::MobilizedBody::BendStretch
 Two mobilities: The z axis of the parent's F frame is used for rotation (and that is always aligned with the M frame z axis). More...
class  SimTK::MobilizedBody::Planar
 Three mobilities -- z rotation and x,y translation. More...
class  SimTK::MobilizedBody::SphericalCoords
 Three mobilities -- body fixed 3-2 (z-y) rotation followed by translation along body z or body x. More...
class  SimTK::MobilizedBody::Gimbal
 Three mobilities -- unrestricted orientation modeled as a 1-2-3 body-fixed Euler angle sequence. More...
class  SimTK::MobilizedBody::Ball
 Three mobilities -- unrestricted orientation modeled with a quaternion which is never singular. More...
class  SimTK::MobilizedBody::Ellipsoid
 Three mobilities -- coordinated rotation and translation along the surface of an ellipsoid fixed to the parent (inboard) body. More...
class  SimTK::MobilizedBody::Translation
 Three translational mobilities. More...
class  SimTK::MobilizedBody::Free
 Unrestricted motion for a rigid body (six mobilities). More...
class  SimTK::MobilizedBody::LineOrientation
 Two mobilities, representing unrestricted orientation for a body which is inertialess along its own z axis. More...
class  SimTK::MobilizedBody::FreeLine
 Five mobilities, representing unrestricted motion for a body which is inertialess along its own z axis. More...
class  SimTK::MobilizedBody::Weld
 Zero mobilities. More...
class  SimTK::MobilizedBody::Ground
 This is a special type of "mobilized" body used as a placeholder for Ground in the 0th slot for a MatterSubsystem's mobilized bodies. More...
class  SimTK::MobilizedBody::Custom
 The handle class MobilizedBody::Custom (dataless) and its companion class MobilizedBody::Custom::Implementation can be used together to define new MobilizedBody types with arbitrary properties. More...
class  SimTK::MobilizedBody::Custom::Implementation
class  SimTK::MobilizedBody::FunctionBased
 This is a subclass of MobilizedBody::Custom which uses a set of Function objects to define the behavior of the MobilizedBody. More...

Namespaces

namespace  SimTK
 

This is the top-level SimTK namespace into which all SimTK names are placed to avoid collision with other symbols.



Detailed Description

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 MatterSubsystem.

MobilizedBody is an abstract base class handle, with concrete classes defined for each kind of mobilizer. There are a set of built-in mobilizers and a generic "Custom" mobilizer (an actual abstract base class) from which advanced users may derive their own mobilizers.

A Mobilizer may be associated with a Motion object which defines how it is to move; otherwise its motion is calculated as a result of the application of forces (either directly applied or resulting from constraint forces generated to satisfy restrictions imposed by Constraint objects).

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines