OpenSim Namespace Reference

A class that supports the application of a coordinate actuator to a model. More...


Classes

class  ContDerivMuscle
 A class implementing a SIMM muscle. More...
class  CoordinateActuator
class  Delp1990Muscle
 A class implementing a SIMM muscle. More...
class  PassiveJointTorque
class  PointActuator
class  Schutte1993Muscle
 A class implementing a SIMM muscle. More...
class  SpringGeneralizedForce
class  Springs
class  Thelen2003Muscle
 A class implementing a SIMM muscle. More...
class  TorqueActuator
class  Actuation
 A class for recording the basic actuator information for a model during a simulation. More...
class  ActuatorPerturbation
class  ActuatorPerturbationIndependent
class  BodyKinematics
 A class for recording the kinematics of the bodies of a model during a simulation. More...
class  ForceReporter
 A class for recording the Forces applied to a model during a simulation. More...
class  InverseDynamics
 A class for performing and recording Inverse Dynamics forces/moments on a motion trajectory. More...
class  JointReaction
 An analysis for reporting the joint reaction loads from a model. More...
class  Kinematics
 A class for recording the kinematics of the generalized coordinates of a model during a simulation. More...
class  MuscleAnalysis
 A class for recording and computting basic quantities (length, shortening velocity, tendon length, . More...
class  PointKinematics
 A class for recording the kinematics of a point on a body of a model during a simulation. More...
class  StaticOptimization
 This class implements static optimization to compute Muscle Forces and activations. More...
class  StaticOptimizationTarget
 This class provides an interface specification for static optimization Objective Function. More...
class  Array
class  ArrayPtrs
class  BSpline
class  Constant
 A class for representing a constant value. More...
class  Event
 A base class for events to be communicated between platform objects. More...
class  Exception
class  Function
class  FunctionAdapter
class  FunctionScaler
class  FunctionSet
class  GCVSpline
class  GCVSplineSet
class  Geometry
 Class Geometry is intended to be used as the base class for all geometry that needs to be represented in the system, both as vtk files, or analytic. More...
class  LineGeometry
class  ArrowGeometry
class  AnalyticGeometry
 Utility class used to abstract anayltic geometry. More...
class  AnalyticSphere
class  AnalyticEllipsoid
class  AnalyticCylinder
class  AnalyticTorus
class  PolyhedralGeometry
class  InterruptedException
class  IO
class  LinearFunction
 A class for representing a LinearFunction. More...
class  LogCallback
class  StreamLogCallback
class  LogBuffer
class  LogManager
class  MarkerData
 A class implementing a sequence of marker frames from a TRC/TRB file. More...
class  MarkerFrame
 A class implementing a frame of marker data from a TRC/TRB file. More...
class  Material
 A class for representing the material properties of an object. More...
class  Mtx
class  MultiplierFunction
class  NaturalCubicSpline
class  Object
class  ObjectGroup
 A class implementing an object group. More...
class  Observable
class  OptimizationTarget
class  PiecewiseLinearFunction
class  Property
class  PropertyBool
class  PropertyBoolArray
 Class PropertyBoolArray extends class Property. More...
class  PropertyDbl
class  PropertyDblArray
class  PropertyDblVec3
class  PropertyGroup
 A class implementing a property group. More...
class  PropertyInt
class  PropertyIntArray
class  PropertyObj
class  PropertyObjArray
class  PropertyObjPtr
class  PropertySet
class  PropertyStr
class  PropertyStrArray
class  Range
class  RootSolver
class  Scale
class  ScaleSet
class  Set
 A class for holding a set of pointers to objects. More...
class  Signal
class  SimmMotionData
 A class implementing a SIMM motion file. More...
class  SimmMotionEvent
 A class implementing an event in a SIMM motion. More...
class  SimmPoint
 A class implementing a 3D point. More...
class  SIMMTransform
 Class SIMMTransform is intended to represent transformations for rd platform. More...
class  SIMMUtilities
class  Spline
class  StateVector
class  StepFunction
class  Storage
class  ExampleVectorFunctionUncoupledNxN
class  rdSerializableObject
class  rdSerializableObject2
class  TransformChangeEvent
class  Units
 A class implementing various units for measuring quantities. More...
class  VectorFunction
class  VectorFunctionUncoupledNxN
class  VectorGCVSplineR1R3
class  VisibleObject
 Class VisibleObject is intended to be used as the base class for all Visible objects that subclass Object. More...
class  VisibleProperties
 Class VisibleProperties is intended to contain all visible properties of an object including Wireframe/Surface Shading-Quality,. More...
class  XMLDocument
class  XMLNode
class  XMLParsingException
class  XYPoint
class  XYFunctionInterface
class  ConstantController
class  Control
class  ControlConstant
class  Controller
class  ControlLinear
class  ControlLinearNode
class  ControlSet
class  ControlSetController
class  TrackingController
class  Manager
class  AbstractTool
 An abstract class for specifying the interface for an investigation. More...
class  Actuator
 An abstract class for representing an actuator (e.g., a torque motor, muscle, . More...
class  Analysis
 An abstract class for specifying the interface for an analysis plugin. More...
class  AnalysisSet
class  BodyScale
 A class implementing a set of parameters describing how to scale a body segment. More...
class  BodyScaleSet
 A class for holding a set of body scales. More...
class  BodySet
 A class for holding a set of bodies. More...
class  CMCActuatorSystemRep
class  CMCActuatorSystem
class  CMCActuatorSubsystemRep
class  CMCActuatorSubsystem
class  Condition
 A parent class for implementing an OpenSim Condition. More...
class  ConditionalPathPoint
 A class implementing a conditional path point, which is a point that is active only for a specified range of a coordinate. More...
class  ConstraintSet
 A class for holding a set of constraints. More...
class  ContactGeometry
 This class represents the physical shape of an object for use in contact modeling. More...
class  ContactGeometrySet
 A class for holding a set of ContactGeometry objects. More...
class  ContactHalfSpace
 This class represents a half space (that is, everything to one side of an infinite plane) for use in contact modeling. More...
class  ContactMesh
 This class represents a polygonal mesh for use in contact modeling. More...
class  ContactSphere
 This class represents a spherical object for use in contact modeling. More...
class  ControllerSet
 A class for holding and managing a set of controllers for a model. More...
class  CoordinateSet
 A class for holding a set of coordinates. More...
class  CustomActuator
 This is an abstract subclass of Actuator which allows you to define new Actuator types by overriding methods, rather than having to create a new SimTK::Force subclass. More...
class  CustomForce
 This is an abstract subclass of Force which allows you to define new Force types by overriding methods, rather than having to create a new SimTK::Force subclass. More...
class  ElasticFoundationForce
 This Force subclass implements an elastic foundation contact model. More...
class  Force
 This abstract class represents a force applied to bodies or generalized coordinates during a simulation. More...
class  ForceAdapter
 This acts as an adapter to allow a CustomForce or CustomActuator to be used as a SimTK::Force. More...
class  ForceSet
 A class for holding and managing a set of actuators for a model. More...
class  FunctionThresholdCondition
 FunctionThresholdCondition is a concrete implementation of a Condition. More...
class  GeometryPath
 A base class representing a path (muscle, ligament, etc. More...
class  HuntCrossleyForce
 This force subclass implements a Hunt-Crossley contact model. More...
class  JointSet
 A class for holding a set of joints. More...
class  Ligament
 A class implementing a ligament. More...
class  Marker
 A class implementing a SIMM [mocap] marker. More...
class  MarkerSet
 A class for holding a set of markers for inverse kinematics. More...
class  Model
 A base class that specifies the interface for a musculoskeletal model. More...
class  ModelComponent
 This is the base class for any object which can be added to a Model. More...
class  ModelComponentSet
 This is the base class for sets of ModelComponent subclasses. More...
class  MovingPathPoint
 A class implementing a moving muscle point, which is a muscle point that moves in a body's reference frame as a function of a coordinate. More...
class  Muscle
 A base class representing a muscle-tendon actuator. More...
class  OpenSimForceSubsystemRep
class  OpenSimForceSubsystem
class  PathPoint
 A class implementing a path point. More...
class  PathPointSet
 A class for holding a set of muscle points. More...
class  PrescribedForce
 This applies a force and/or torque to a body which is fully specified as a function of time. More...
class  VectorFunctionForActuators
class  BallJoint
 A class implementing an Ball joint. More...
class  Body
 A class implementing a Simbody body segment. More...
class  Constraint
 A parent class for implementing a Simbody Constraint. More...
class  Coordinate
 A class implementing a Simbody generalized coordinate. More...
class  CoordinateCouplerConstraint
class  CustomJoint
 A class implementing a custom joint. More...
class  EllipsoidJoint
 A class implementing an Ellipsoid joint. More...
class  FreeJoint
 A class implementing a Free joint. More...
class  Joint
 A class implementing an OpenSim Joint. More...
class  PinJoint
 A class implementing an Pin joint. More...
class  PointConstraint
 A class implementing a Point Constraint. More...
class  PointOnLineConstraint
 A class implementing a Point On Line Constraint. More...
class  RollingOnSurfaceConstraint
 A class implementing a collection of rolling-without-slipping and non-penetration constraints on a surface. More...
class  SimbodyEngine
 A wrapper class to use the SimTK Simbody dynamics engine as the underlying engine for OpenSim. More...
class  SliderJoint
 A class implementing an Slider joint. More...
class  SpatialTransform
 A class encapsulating the spatial transformation bewteen two bodies that defines the behaviour of a custom joint. More...
class  TransformAxis
 A class expressing a tranformation of a child body in relation to a parent body along either a translation or rotation axis. More...
class  UnilateralConstraint
 A parent class for implementing an OpenSim UnilateralConstraint. More...
class  WeldConstraint
 A class implementing a Weld Constraint. More...
class  WeldJoint
 A class implementing an Weld joint. More...
class  ModelTestSuite
class  PathWrap
 A class implementing an instance of muscle wrapping. More...
class  PathWrapPoint
 A class implementing a SIMM muscle via point, which is a muscle point that is active only for a specified range of a coordinate. More...
class  PathWrapSet
 A class for holding a set of muscle wrap instances. More...
class  WrapCylinder
 A class implementing a cylinder for muscle wrapping. More...
class  WrapCylinderObst
 A class implementing a cylinder obstacle for muscle wrapping, based on algorithm presented in Garner & Pandy (2000). More...
class  WrapDoubleCylinderObst
 A class implementing a cylinder obstacle for muscle wrapping, based on algorithm presented in Garner & Pandy (2000). More...
class  WrapEllipsoid
 A class implementing an ellipsoid for muscle wrapping. More...
class  WrapMath
 This class provides basic math functions and constants. More...
class  WrapObject
 An abstract class that specifies the interface for a wrapping object. More...
class  WrapObjectSet
 A class for holding a set of wrap objects. More...
class  WrapResult
 A class for holding the results of a wrapping calculation. More...
class  WrapSphere
 A class implementing a sphere for muscle wrapping. More...
class  WrapSphereObst
 A class implementing a sphere obstacle for muscle wrapping, based on the algorithm presented in Garner & Pandy (2000). More...
class  WrapTorus
 A class implementing a torus for muscle wrapping. More...
class  ActuatorForceTarget
 A Computed Muscle Control (CMC) optimization target for controlling dynamic systems whose actuators may be themselves governed by differential equations, meaning there may be non-linear behavior and delays in force production. More...
class  ActuatorForceTargetFast
 A Computed Muscle Control (CMC) optimization target for controlling dynamic systems whose actuators may be themselves governed by differential equations, meaning there may be non-linear behavior and delays in force production. More...
class  AnalyzeTool
 An abstract class for specifying the interface for an investigation. More...
class  CMC
 Computed Muscle Control (CMC) is an optimization-based control technique designed specifically for controlling dynamic models that are actuated by redundant sets of actuators whose force-generating properties may be nonlinear and goverend by differential equaitions (as so have delays in force production). More...
class  CMC_Joint
 A class for specifying the tracking task for a joint. More...
class  CMC_Orientation
 A class for tracking the orientation of a body. More...
class  CMC_Point
 A class for specifying and computing parameters for tracking a point. More...
class  CMC_Task
 An abstract base class for specifying a task objective for a dynamic simulation. More...
class  CMC_TaskSet
 An class for holding and managing a set of tasks. More...
class  CMCTool
 An abstract class for specifying the interface for an investigation. More...
class  CorrectionController
 This is a simple feedback controller to be used in generating a forward dynamic simulation. More...
class  ForwardTool
 A concrete tool for perfroming forward dynamics simulations. More...
class  GenericModelMaker
 A class implementing a set of parameters describing a generic musculoskeletal model. More...
class  IKCoordinateTask
class  IKMarkerTask
class  IKSolverImpl
class  IKSolverInterface
class  IKTarget
 A Class that represents an inverse kinematics optimization target. More...
class  IKTask
class  IKTaskSet
class  IKTool
 An investigation class for the IK solver. More...
class  IKTrial
 A class implementing a set of parameters describing how to perform a single inverse kinematics trial on a model and a marker set. More...
class  IKTrialSet
 A class for holding a set of SIMM coordinates. More...
class  MarkerPair
class  MarkerPairSet
 A class for holding a set of SimmMarkerPairs. More...
class  MarkerPlacer
 A class implementing a set of parameters describing how to place markers on a model (presumably after it has been scaled to fit a subject). More...
class  Measurement
 A class implementing a measurement (the distance between one or more pairs of markers, used to scale a model). More...
class  MeasurementSet
 A class for holding a set of measurements. More...
class  ModelScaler
 A class for scaling a model. More...
class  PerturbationTool
 An abstract class for specifying the interface for an investigation. More...
class  ScaleTool
 A class implementing a set of parameters describing how to scale a model to fit a subject, place markers on it, and do IK on one or more motion trials. More...
class  SMC_Joint
 A class for specifying the tracking task for a joint. More...

Typedefs

typedef std::map< std::string,
std::string, std::less
< std::string > > 
MapKeysToValues

Functions

OSIMCOMMON_API
OPENSIM_PORTABLE_HMODULE
WINAPI 
LoadOpenSimLibrary (const std::string &lpLibFileName, bool verbose)
 A wrapper around Window's LoadLibrary that implements library naming convention and loading policy on windows which follows: If you're loading osimSimulation_D and other libraries that do not have a trailing _D an _D is appended to the library file name.
OSIMCOMMON_API void LoadOpenSimLibrary (const std::string &aLibraryName)
OSIMCOMMON_API void LoadOpenSimLibraries (int argc, char **argv)
 A function for loading libraries specified in a command line.
bool readNonCommentStringFromStream (istream &aStream, string &rBuffer)
 Read a string from a stream, skipping over any commented text.
bool readStringFromStream (istream &aStream, string &rBuffer)
 Read a string from a stream.
bool readStringFromString (string &aString, string &rBuffer)
 Read a string from an input string.
bool readTabDelimitedStringFromString (string &aString, string &rBuffer)
 Read a tab-delimited string from an input string.
bool readIntegerFromString (string &aString, int *rNumber)
 Read an integer from an input string.
bool readDoubleFromString (string &aString, double *rNumber)
 Read a double from an input string.
bool readVectorFromString (string &aString, SimmPoint &rVec)
 Read a vector from an input string.
bool readVectorFromString (string &aString, double *rVX, double *rVY, double *rVZ)
 Read a vector from an input string.
bool readCoordinatesFromString (string &aString, double rVec[3])
 Read tab-delimited XYZ coordinate values from a string.
int findFirstNonWhiteSpace (string &aString)
 Find the first non-white-space character in a string.
int findFirstWhiteSpace (string &aString)
 Find the first white-space character in a string.
void convertString (string &aString, bool aPrependUnderscore)
 Convert a text string into a single token that can serve as a C/C++ variable name.
string getCurrentTimeString ()
bool OSIMCOMMON_API readNonCommentStringFromStream (std::istream &aStream, std::string &rBuffer)
bool OSIMCOMMON_API readStringFromStream (std::istream &aStream, std::string &rBuffer)
bool OSIMCOMMON_API readStringFromString (std::string &aString, std::string &rBuffer)
bool OSIMCOMMON_API readTabDelimitedStringFromString (std::string &aString, std::string &rBuffer)
bool OSIMCOMMON_API readIntegerFromString (std::string &aString, int *rNumber)
bool OSIMCOMMON_API readDoubleFromString (std::string &aString, double *rNumber)
bool OSIMCOMMON_API readVectorFromString (std::string &aString, SimmPoint &rVec)
bool OSIMCOMMON_API readVectorFromString (std::string &aString, double *rVX, double *rVY, double *rVZ)
bool OSIMCOMMON_API readCoordinatesFromString (std::string &aString, double rVec[3])
int OSIMCOMMON_API findFirstNonWhiteSpace (std::string &aString)
int OSIMCOMMON_API findFirstWhiteSpace (std::string &aString)
void OSIMCOMMON_API convertString (std::string &aString, bool aPrependUnderscore)
OSIMSIMULATION_API ModelLoadModel (const string &aModelLibraryName, const string &aModelFileName)
 Load and create a model from a dynamically loaded library (DLL).
OSIMSIMULATION_API ModelLoadModel (const std::string &aModelLibraryName, const std::string &aModelFileName="")


Detailed Description

A class that supports the application of a coordinate actuator to a model.

A class for holding the names of a pair of markers (for making measurements on a model).

A class for testing the basic functionality of an Model instance.

A class for holding and managing a set of integration callbacks for a model.

A class that manages the execution of a simulation.

TrackingController is an abstract class from which all tracking type of controllers should be derived.

A class for holding and managing a set of controls for a dynamic simulation.

A control node used to reconstruct a piecewise linear control.

A class that represents a piece-wise linear control curve.

Controller is a class that specifies the interface (i.e., the minimal set of variables and methods that should be defined by any class used to control a Model.

A class that represents a constant control curve.

A class that represents a control in a dynamic simulation.

ControllerSetController is a controller that uses a ControlSet to supply controls to actuators.

A class for XML parsing exceptions (derives from Exception).

A class for performing operations on XML nodes.

A class for managing and for performing operations on an XML document.

An object for mainly for testing XML serialization.

An abstract class for representing a vector function.

A class for storing an array of statevectors.

A class implementing a step function.

A class which stores a vector of states or data at a specified time.

A class for representing smooth functions with b-splines.

A class for signal processing.

A class for finding the N roots of N one-dimensional non-linear equations.

Class PropertyStrArray extends class Property.

A property set is simply a set of properties.

Class PropertyObjPtr extends class Property.

Class PropertyObjArray extends class Property.

Class PropertyObj extends class Property.

Class PropertyIntArray extends class Property.

Class PropertyInt extends class Property.

Class PropertyDblVec3 extends class Property.

Class PropertyDblArray extends class Property.

Class PropertyDbl extends class Property.

Class PropertyBool extends class Property.

A class implementing a linear function.

This class provides an interface specification for optimizing redundant systems.

A class implementing a smooth function with a natural cubic spline.

A class implementing a Function and a scale factor for the function's value.

A class for performing vector and matrix operations.

A class for performing input and output.

Typically used by the GUI to stop long computations (e.g.

A class for holding a set of generalized cross-validated splines.

A class for representing a smooth function with a generalized cross-validation spline.

A class for holding a set of functions.

This is a SimTK::Function that multiplies the value of another function by a constant.

This is a SimTK::Function that acts as a wrapper around an OpenMM::Function.

An abstract class for representing a function.

A class for basic exception functionality.

A class for representing and evaluating univariate B-splines.

A class for storing an array of pointers to objects of type T.

A class for storing an array of values of type T.

A used for perturbing the actuator forces during a simulation.

Used for perturbing the actuator forces during a simulation.

A class that implements a torque actuator acting on a body.

A class which implements a set of static functions which model the stress-strain properties of a number of different types of springs.

An force that exerts a generalized force based on spring-like characteristics (stiffness and viscosity).

A class that implements a point actuator acting on the model.

An actuator that exerts passive elastic and damping forces at a generalized coordinate.

This actuator has no states; the control is simply the force to be applied to the model.

Author:
Frank C. Anderson
Version:
1.0
Author:
Frank C. Anderson, Kate Holzbaur
Version:
1.0
This actuator has no states; the control is simply the force to be applied to the model.

Author:
Ajay Seth
Version:
2.0
Author:
Frank C. Anderson, Ajay Seth
Version:
2.0
Author:
Frank C. Anderson, Saryn R. Goldberg
Version:
1.0
The "Independent" in the name refers to the fact that all of the unperturbed muscles are forced to exert the force that they did during the nominal simulation during which they were recorded (ie, the intrinsic properties of the muscles are not taken into account). This is also true for the perturbed muscle - the perturbation is made to the nominal force without taking into account the intrinsic properties of the muscle. NOTES: When you use this to make a perturbation the actuator force, this change in the force IS NOT recoreded in the state file. If you want to run an induced accleration analysis using results from a perturbation, you must first alter the states field to accurately reflect the changes made to the forces.

This requires that two unperturbed integration be performed prior to running a perturbation. The first is to establish the correct number of timesteps used in the simulation. The integrator should be set to use the existing DTVector prior to running the second unperturbed simulation, during which the unperturbed forces should be recorded. The user is responsible for running these unperturbed integrations.This should be reset between running simulations.

This will only work properly when the integration start time is t = 0.0.

Author:
Frank C. Anderson, Saryn R. Goldberg, May Q. Liu
Version:
1.0
Todo:
Make the manager a global static variable so that any class can get the manager and query it for information. For example, this class would like to know whether the integrator has been set to use a specified set of time steps. If the manager were available, the integrator could be gotten and queried for this information.
The capacity of the class grows as needed. To use this template for a class of type T, class T should implement the following methods: default constructor, copy constructor, assignment operator (=), equality operator (==), and less than operator (<).

Version:
1.0
Author:
Frank C. Anderson
In constrast to class Array<T>, when an object is added to this array a copy is not made. Rather, a pointer to the added object is stored in the array.

When an ArrayPtrs object falls out of scope or is deleted, all objects pointed to by the pointers in the array are deleted unless the array is set not to own the memory associated with the objects to which its array points.

The capacity of the class grows as needed. To use this template for a class of type T, class T should implement the following methods: default constructor, copy constructor, T* copy(), assignment operator (=), equality operator (==), less than operator (<), and the output operator (<<).

Version:
1.0
Author:
Frank C. Anderson

Jeff Reinbolt

Version:
1.0
Author:
Frank C. Anderson
A function is a relation between independent variables and a dependent value such that for any particular set of independent variables there is only one unique dependent value. Values of the function and its derivatives are obtained by calling the evaluate() method. The curve may or may not be finite or diferentiable; the evaluate method returns values between -SimTKInfinity and SimTK::Infinity, or it returns SimTK::NaN (not a number) if the curve is not defined. Currently, functions of up to 3 variables (x,y,z) are supported.

Author:
Frank C. Anderson

Peter Eastman

See also:
Function
Author:
Frank C. Anderson
Linear, cubic, qunitic, and heptic splines are supported:

m (half-order) order degree description 1 2 1 linear 2 4 3 cubic 3 6 5 quintic 4 8 7 heptic

This class wraps the gcvspl.c source code written by D. Twisk in 1994, which is based on the GCVSPL code written in Fortran by Woltring in 1985_07_04. This class was initially based on a spline class authored by Darryl Thelen and Victor Ng; it has been rewritten to fit into the Realistic Dynamics, Inc. software framework.

See the following source for details on how the GCV spline is fit: Woltring, H.J. (1986). A Fortran package for generalized, cross-validatory spline smoothing and differentiation. Advances in Engineering Software, Vol. 8, No. 2, 104-113.

This class inherits from Function and so can be used as input to any class requiring an rdFuction as input.

Author:
Frank C. Anderson
See also:
GCVSpline
Author:
Frank C. Anderson
IK, CMC, etc.)

Version:
1.0
Author:
Eran Guendelman
Most all the methods in this class are static.

This class inherits from Function and so can be used as input to any class requiring a Fuction as input.

Author:
Peter Loan
Version:
1.0
This class inherits from Function and so can be used as input to any class requiring an rdFuction as input.

Author:
Peter Loan
Version:
1.0
If a class represents a redundant system for which one would like to find a set of optimal controls, the class should inherit from this class and implement the virtual functions defined here.

This class inherits from Function and so can be used as input to any class requiring a Function as input.

Author:
Peter Loan
Version:
1.0
It consists of a boolean value and the methods for accessing and modifying this value.

Version:
1.0
Author:
Frank C. Anderson
It consists of a double value and the methods for accessing and modifying this value.

Version:
1.0
Author:
Frank C. Anderson
It consists of an array of doubles (i.e., Array<double>) and the methods for accessing and modifying this array.

Version:
1.0
Author:
Frank C. Anderson
It consists of an array of doubles (i.e., SimTK::Vec3) and the methods for accessing and modifying this Vec3.

Version:
1.0
Author:
Ayman HAbib
It consists of an integer value and the methods for accessing and modifying this value.

Version:
1.0
Author:
Frank C. Anderson
It consists of an array of integers (i.e., Array<int>) and the methods for accessing and modifying this array.

Version:
1.0
Author:
Frank C. Anderson
It consists of a pointer to an object and the methods for accessing and modifying this object.

Version:
1.0
Author:
Frank C. Anderson
Assumes template T is a class derived from Object.

Version:
1.0
Author:
Frank C. Anderson
It differs from ProprtyObj in that PropertyObj looks for an XML element with a specific tag name (matching the object type), PropertyObjPtr accepts any recognized object type. It's essentially like a singleton PropertyObjArray.

Note: Class owns its Object _value (so it is deleted as appropriate).

Version:
1.0
Author:
Eran Guendelman
It provides methods for adding, removing, and retrieving properties from itself.

Version:
1.0
Author:
Frank C. Anderson
See also:
Property
It consists of a string value and the methods for accessing and modifying this value.

Version:
1.0
Author:
Frank C. Anderson
It consists of an array of strings (i.e., Array<string>) and the methods for accessing and modifying this array.

Version:
1.0
Author:
Frank C. Anderson
The rational for making this class solve for the roots of N equations simultaneously is that, for some problems, it is more computationally efficient to evaluate the N equations at the same time, as opposed to one after the other. That is, the N equations, though decoupled, do share some common terms.

This class can always be used for a system where N=1, although there will be some small amount of overhead for this class to function in this way when compared to a class that is dedicated to an N=1.

To construct an instance of this class, the user must provide an instance of a VectorFunctionUncoupledNxN.

Version:
1.0
Author:
Frank C. Anderson
Generally, it is used to store the time histories of the states during an integration.

The format of the numerical output for this class is specified by the settings in IO.

Author:
Frank C. Anderson
Version:
1.0
See also:
IO
A statevector is an array of data that has an associated time stamp (see StateVector). Generally, it is used to store the time histories of the states during an integration, but may be used for a variety of applications. Note that it is assumed by several methods in this class that the time stamps of stored statevectors are monotonically increasing.

When stored as a file, the statevectors are stored in rows. This first value in a row is the time stamp at which the states occured. The rest of the elements in a row are the states. Therefore, each column of data in a file corresponds to a particular state.

In an Storage object, statevectors (or rows) are indexed by the TimeIndex, and a particular state (or column) is indexed by the StateIndex.

Version:
1.0
Author:
Frank C. Anderson
A vector function is a relation between some number of independent variables and some number of dependent values such that for any particular set of independent variables the correct number of dependent variables is returned. Values of the function and its derivatives are obtained by calling the evaluate() method. The curve may or may not be finite or diferentiable; the evaluate method returns values between Math::MINUS_INFINITY and Math::PLUS_INFINITY, or it returns Math::NAN (not a number) if the curve is not defined. Currently, functions of up to 3 variables (x,y,z) are supported.

Author:
Frank C. Anderson

Frank C. Anderson

Version:
1.0
A vector function is a relation between some number of independent variables and some number of dependent values such that for any particular set of independent variables the correct number of dependent variables is returned. Values of the function and its derivatives are obtained by calling the evaluate() method. The curve may or may not be finite or diferentiable; the evaluate method returns values between -SimTKInfinity and SimTK::Infinity, or it returns SimTK::NaN (not a number) if the curve is not defined. Currently, functions of up to 3 variables (x,y,z) are supported.

Author:
Frank C. Anderson and Saryn R. Goldberg
A vector function is a relation between some number of independent variables and some number of dependent values such that for any particular set of independent variables the correct number of dependent variables is returned. Values of the function and its derivatives are obtained by calling the evaluate() method. The curve may or may not be finite or diferentiable; the evaluate method returns values between -SimTKInfinity and SimTK::Infinity , or it returns SimTK::NaN (not a number) if the curve is not defined. Currently, functions of up to 3 variables (x,y,z) are supported.

Author:
Frank C. Anderson and Saryn R. Goldberg
Linear, cubic, qunitic, and heptic splines are supported:

m (half-order) order degree description 1 2 1 linear 2 4 3 cubic 3 6 5 quintic 4 8 7 heptic

This class wraps the gcvspl.c source code written by D. Twisk in 1994, which is based on the GCVSPL code written in Fortran by Woltring in 1985_07_04. This class was initially based on a spline class authored by Darryl Thelen and Victor Ng; it has been rewritten to fit into the Realistic Dynamics, Inc. software framework.

See the following source for details on how the GCV spline is fit: Woltring, H.J. (1986). A Fortran package for generalized, cross-validatory spline smoothing and differentiation. Advances in Engineering Software, Vol. 8, No. 2, 104-113.

This class inherits from VectorFunction and so can be used as input to any class requiring an rdVectorFuction as input.

Author:
Frank C. Anderson
The document can originate from one of two sources: 1) parsed from an XML source or 2) created locally in memory.

This product includes software developed by the Apache Software Foundation (http://www.apache.org/).

Version:
1.0
Author:
Frank C. Anderson
The methods in this class are generally static methods that take an DOMNode as their first argument.

This product includes software developed by the Apache Software Foundation (http://www.apache.org/).

Version:
1.0
Author:
Frank C. Anderson
Version:
1.0
Author:
Eran Guendelman

Jack Middleton

Version:
1.0
This class is intended to be the base class for different types of controls, so many of its methods are virtual.

In general, a control consists of a set of parameters. These parameters are used to reconstruct a control curve. For example, a control may be represented by a consant, a series of step functions, a set of linearly interpolated values, a set of spline control points, coefficients in a Fourier series, etc.

Because there is not necessarily a 1-to-1 correspondence between the parameters used to represent a control curve and the value of the control curve, there are two basic ways to access the content of a control: getParameter() gets the value of a parameter, and getValue() gets the value at a particular time.

A distinction is also made between controls that control a model and controls that control some other aspect of a simulation. For example, a control for the excitation level of a muscle is a "model" control. The value of this type of control is querried during the course of a simualtion. On the other hand, a control for the final time of a simulation is not usually a "model" control. Nor is a control for the initial value of a state variable, even if that state variable is the initial value of a muscle activation. These "non-model" controls are used to set things before a simulation ever begins and are not querried during the cours of a simulation. The number of model controls can be querried by a call to Model::getNumControls().

Author:
Frank C. Anderson
Version:
1.0
That is, the value of the control curve is the same at any value of time.

Author:
Frank C. Anderson
Version:
1.0
Any class used to control a Model should be a subclass (child) of Controller. In C++ jargon, Controller is an abstract class, which means that you cannot create an instance of it (i.e. you cannot write code that contains a statement like "Controller controller;" or "Controller controller(&model,&yDesStore);". However, you can create a subclass of Controller (such as ControlSetController) that is not abstract, which means you can create an instance of it. Controller is abstract because it has a method, computeControl, that is "pure virtual." This means that computeControl must be implemented by any subclass of Controller, because Controller itself does not implement computeControl.

Author:
Frank C. Anderson, Chand T. John, Samuel R. Hamner, Ajay Seth
Version:
1.0
The curve is specified by an array of control nodes (see class ControlLinearNode) that occur at monotonically increasing times. The value of the control curve is computed by linearly interpolating the values of the appropriate control nodes.

Author:
Frank C. Anderson
Version:
1.0
The member variables consist of a time, a value, a minimum value, and a maximum value. So that an Array<T> can be instantiated for ControlLinearNode, this class implements a default constructor, a copy constructor, the assignment operator (=), the equality operator (==), and the less than operator (<). The time at which a control node occurs is used to determine the results of the operators == and <.

Author:
Frank C. Anderson
Version:
1.0
See also:
ControlLinear
This class implements convenience methods to construct dsired trajectories of desired model state values, like joint angles, from Storage (file) or user-supplied functions and provides methods for obtaining the error between model and desired state values.

Derive classes need only to implement the tracking control law based on the error signals computed by this base class.

Author:
Ajay Seth
Version:
1.0
A vector function is a relation between some number of independent variables and some number of dependent values such that for any particular set of independent variables the correct number of dependent variables is returned. Values of the function and its derivatives are obtained by calling the evaluate() method. The curve may or may not be finite or diferentiable; the evaluate method returns values between -SimTKInfinity and SimTK::Infinity, or it returns SimTK::NaN (not a number) if the curve is not defined. Currently, functions of up to 3 variables (x,y,z) are supported.

Author:
Frank C. Anderson

Frank C. Anderson, James M. Ziegler

Version:
1.0
Author:
Peter Loan
Version:
1.0

Function Documentation

void OpenSim::convertString ( string &  aString,
bool  aPrependUnderscore 
)

Convert a text string into a single token that can serve as a C/C++ variable name.

Parameters:
aString input string to convert.
aPrependUnderscore whether to prepend underscore before numbers

int OpenSim::findFirstNonWhiteSpace ( string &  aString  ) 

Find the first non-white-space character in a string.

Parameters:
aString input string to scan.
Returns:
Position of first non-white-space character.

int OpenSim::findFirstWhiteSpace ( string &  aString  ) 

Find the first white-space character in a string.

Parameters:
aString input string to scan.
Returns:
Position of first white-space character.

OSIMSIMULATION_API Model* OpenSim::LoadModel ( const string &  aModelLibraryName,
const string &  aModelFileName 
)

Load and create a model from a dynamically loaded library (DLL).

Parameters:
aModelLibraryName Name of the model DLL (e.g., rdBlock_D). Do not include the library (.lib) or DLL (.dll) extension in the name of the model library.
aModelFileName Name of the model xml file (optional).
Returns:
Pointer to an intance of the model, NULL if no model was created.

OSIMCOMMON_API void OpenSim::LoadOpenSimLibraries ( int  argc,
char **  argv 
)

A function for loading libraries specified in a command line.

LoadOpenSimLibrary() is used to load each library.

Parameters:
argc Number of command-line arguments.
argv Array of command-line arguments.
See also:
LoadOpenSimLibrary()

OSIMCOMMON_API OPENSIM_PORTABLE_HMODULE WINAPI OpenSim::LoadOpenSimLibrary ( const std::string &  lpLibFileName,
bool  verbose 
)

A wrapper around Window's LoadLibrary that implements library naming convention and loading policy on windows which follows: If you're loading osimSimulation_D and other libraries that do not have a trailing _D an _D is appended to the library file name.

If loading of that fails, we revert to using the non _D file instead, if that fails we give error and return 0. A reciprocal treatment for release libraries is implemented. I tried to keep this function in the same file to try to localize platform specific code. -Ayman

Parameters:
lpLibFileName Name of the library without either the .lib or .dll extension.
Returns:
Pointer to the loaded library, NULL on error.

bool OpenSim::readCoordinatesFromString ( string &  aString,
double  rVec[3] 
)

Read tab-delimited XYZ coordinate values from a string.

If there are 2 tabs in a row, this indicates a missing coordinate, so fill it in with SimTK::NaN. The input string is modified by deleting the coordinates from it after they have been read.

Parameters:
aString input string to read from.
rVec vector of coordinates is returned here.
Returns:
True if coordinates were read, false if not.

bool OpenSim::readDoubleFromString ( string &  aString,
double *  rNumber 
)

Read a double from an input string.

The input string is modified by deleting the double from it after it is read.

Parameters:
aString input string to read from.
rNumber double that is read is returned here.
Returns:
True if double was read, false if not.

bool OpenSim::readIntegerFromString ( string &  aString,
int *  rNumber 
)

Read an integer from an input string.

The input string is modified by deleting the integer from it after it is read.

Parameters:
aString input string to read from.
rNumber integer that is read is returned here.
Returns:
True if integer was read, false if not.

bool OpenSim::readNonCommentStringFromStream ( istream &  aStream,
string &  rBuffer 
)

Read a string from a stream, skipping over any commented text.

Parameters:
aStream stream to read from.
rBuffer string from stream is returned here.
Returns:
True if string was read, false if not.

bool OpenSim::readStringFromStream ( istream &  aStream,
string &  rBuffer 
)

Read a string from a stream.

Parameters:
aStream stream to read from.
rBuffer string from stream is returned here.
Returns:
True if string was read, false if not.

bool OpenSim::readStringFromString ( string &  aString,
string &  rBuffer 
)

Read a string from an input string.

The input string is modified by deleting the string from it after it is read.

Parameters:
aString input string to read from.
rBuffer string that is read is returned here.
Returns:
True if string was read, false if not.

bool OpenSim::readTabDelimitedStringFromString ( string &  aString,
string &  rBuffer 
)

Read a tab-delimited string from an input string.

The input string is modified by deleting the string from it after it is read. This function strips all leading white space from the input string, then looks for a tab, line feed, or carriage return to terminate the string.

Parameters:
aString input string to read from.
rBuffer string that is read is returned here.
Returns:
True if string was read, false if not.

bool OpenSim::readVectorFromString ( string &  aString,
double *  rVX,
double *  rVY,
double *  rVZ 
)

Read a vector from an input string.

The input string is modified by deleting the double from it after it is read.

Parameters:
aString input string to read from.
rVX X coordinate of vector is returned here.
rVY Y coordinate of vector is returned here.
rVZ Z coordinate of vector is returned here.
Returns:
True if vector was read, false if not.

bool OpenSim::readVectorFromString ( string &  aString,
SimmPoint rVec 
)

Read a vector from an input string.

The input string is modified by deleting the double from it after it is read.

Parameters:
aString input string to read from.
rVec vector that is read is returned here.
Returns:
True if vector was read, false if not.


Generated on Thu Oct 22 09:30:09 2009 for OpenSim by  doxygen 1.5.6