OpenSim::WrapDoubleCylinderObst Class Reference

A class implementing a cylinder obstacle for muscle wrapping, based on algorithm presented in Garner & Pandy (2000). More...

#include <WrapDoubleCylinderObst.h>

Inheritance diagram for OpenSim::WrapDoubleCylinderObst:
OpenSim::WrapObject OpenSim::Object

List of all members.

Public Member Functions

 WrapDoubleCylinderObst ()
 Default constructor.
 WrapDoubleCylinderObst (const WrapDoubleCylinderObst &aWrapDoubleCylinderObst)
 Copy constructor.
virtual ~WrapDoubleCylinderObst ()
 Destructor.
virtual Objectcopy () const
 Copy this WrapDoubleCylinderObst and return a pointer to the copy.
WrapDoubleCylinderObstoperator= (const WrapDoubleCylinderObst &aWrapDoubleCylinderObst)
 Assignment operator.
void copyData (const WrapDoubleCylinderObst &aWrapDoubleCylinderObst)
 Copy data members from one WrapDoubleCylinderObst to another.
double getRadius () const
void setRadius (double aRadius)
double getLength () const
void setLength (double aLength)
int getWrapDirection () const
virtual const char * getWrapTypeName () const
 Get the name of the type of wrap object ("cylinderObst" in this case).
virtual std::string getDimensionsString () const
 Get a string holding the dimensions definition that SIMM would use to describe this object.
virtual void scale (const SimTK::Vec3 &aScaleFactors)
 Scale the wrap object by aScaleFactors.
virtual void setup (Model &aModel, OpenSim::Body &aBody)
 Perform some set up functions that happen after the object has been deserialized or copied.
virtual int wrapLine (const SimTK::State &s, SimTK::Vec3 &aPoint1, SimTK::Vec3 &aPoint2, const PathWrap &aPathWrap, WrapResult &aWrapResult, bool &aFlag) const
 Calculate the wrapping of one line segment over the cylinder oriented parallel to z-axis.

Protected Member Functions

void setupProperties ()
 Connect properties to local pointers.

Detailed Description

A class implementing a cylinder obstacle for muscle wrapping, based on algorithm presented in Garner & Pandy (2000).

Author:
Brian Garner, derivded from Peter Loan
Version:
0.1

Constructor & Destructor Documentation

WrapDoubleCylinderObst::WrapDoubleCylinderObst (  ) 

Default constructor.

WrapDoubleCylinderObst::WrapDoubleCylinderObst ( const WrapDoubleCylinderObst aWrapDoubleCylinderObst  ) 

Copy constructor.

Parameters:
aWrapDoubleCylinderObst WrapDoubleCylinderObst to be copied.
WrapDoubleCylinderObst::~WrapDoubleCylinderObst (  )  [virtual]

Destructor.


Member Function Documentation

Object * WrapDoubleCylinderObst::copy (  )  const [virtual]

Copy this WrapDoubleCylinderObst and return a pointer to the copy.

The copy constructor for this class is used.

Returns:
Pointer to a copy of this WrapDoubleCylinderObst.

Implements OpenSim::WrapObject.

void WrapDoubleCylinderObst::copyData ( const WrapDoubleCylinderObst aWrapDoubleCylinderObst  ) 

Copy data members from one WrapDoubleCylinderObst to another.

Parameters:
aWrapDoubleCylinderObst WrapDoubleCylinderObst to be copied.

Reimplemented from OpenSim::WrapObject.

string WrapDoubleCylinderObst::getDimensionsString (  )  const [virtual]

Get a string holding the dimensions definition that SIMM would use to describe this object.

This is a rather ugly convenience function for outputting SIMM joint files.

Returns:
A string containing the dimensions of the wrap object

Reimplemented from OpenSim::WrapObject.

double OpenSim::WrapDoubleCylinderObst::getLength (  )  const [inline]
double OpenSim::WrapDoubleCylinderObst::getRadius (  )  const [inline]
int OpenSim::WrapDoubleCylinderObst::getWrapDirection (  )  const [inline]
const char * WrapDoubleCylinderObst::getWrapTypeName (  )  const [virtual]

Get the name of the type of wrap object ("cylinderObst" in this case).

Returns:
A string representing the type of wrap object

Implements OpenSim::WrapObject.

WrapDoubleCylinderObst & WrapDoubleCylinderObst::operator= ( const WrapDoubleCylinderObst aWrapDoubleCylinderObst  ) 

Assignment operator.

Returns:
Reference to this object.

Reimplemented from OpenSim::WrapObject.

virtual void OpenSim::WrapDoubleCylinderObst::scale ( const SimTK::Vec3 &  aScaleFactors  )  [inline, virtual]

Scale the wrap object by aScaleFactors.

This base class method scales only the _translation property, which is a local member. The derived classes are expected to scale the object itself, because they contain the object's dimensions.

Parameters:
aScaleFactors The XYZ scale factors.

Reimplemented from OpenSim::WrapObject.

void OpenSim::WrapDoubleCylinderObst::setLength ( double  aLength  )  [inline]
void OpenSim::WrapDoubleCylinderObst::setRadius ( double  aRadius  )  [inline]
void WrapDoubleCylinderObst::setup ( Model aModel,
OpenSim::Body aBody 
) [virtual]

Perform some set up functions that happen after the object has been deserialized or copied.

Parameters:
aModel simbody model

Reimplemented from OpenSim::WrapObject.

void WrapDoubleCylinderObst::setupProperties ( void   )  [protected]

Connect properties to local pointers.

Reimplemented from OpenSim::WrapObject.

int WrapDoubleCylinderObst::wrapLine ( const SimTK::State &  s,
SimTK::Vec3 &  aPoint1,
SimTK::Vec3 &  aPoint2,
const PathWrap aPathWrap,
WrapResult aWrapResult,
bool &  aFlag 
) const [virtual]

Calculate the wrapping of one line segment over the cylinder oriented parallel to z-axis.

Parameters:
aPointP One end of the line segment, already expressed in cylinder frame
aPointS The other end of the line segment, already expressed in cylinder frame
aPathWrap An object holding the parameters for this line/cylinder pairing
aWrapResult The result of the wrapping (tangent points, etc.)
aFlag A flag for indicating errors, etc.
Returns:
The status, as a WrapAction enum

Implements OpenSim::WrapObject.


The documentation for this class was generated from the following files:

Generated on Wed Dec 16 15:03:48 2009 for OpenSim by  doxygen 1.6.1