Custom Class Reference

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

#include <MobilizedBody.h>

Inheritance diagram for Custom:
MobilizedBody PIMPLHandle< MobilizedBody, MobilizedBodyImpl, true > FunctionBased PseudorotationMobilizer RiboseNu3Mobilizer

List of all members.

Classes

class  Implementation

Public Member Functions

 Custom (MobilizedBody &parent, Implementation *implementation, const Body &body, Direction direction=Forward)
 Custom (MobilizedBody &parent, Implementation *implementation, const Transform &inbFrame, const Body &body, const Transform &outbFrame, Direction direction=Forward)
 SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS (Custom, CustomImpl, MobilizedBody)

Protected Member Functions

const ImplementationgetImplementation () const
ImplementationupdImplementation ()

Detailed Description

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.

To use it, create a class that extends MobilizedBody::Custom::Implementation. You can then create an instance of it and pass it to the MobilizedBody::Custom constructor:

 MobilizedBody::Custom myMobilizedBody(new MyMobilizedBodyImplementation(args));
 

Alternatively, you can also create a new Handle class which is a subclass of MobilizedBody::Custom and which creates the Implementation itself in its constructors.

 class MyMobilizedBody : public MobilizedBody::Custom {
 public:
   MyMobilizedBody(args) : MobilizedBody::Custom(new MyForceImplementation(args)) {
   }
 }
 

This allows an end user to simply write

 MyMobilizedBody(args);
 

and not worry about implementation classes or creating objects on the heap. If you do this, your MobilizedBody::Custom subclass must not have any data members or virtual methods. If it does, it will not work correctly. Instead, store all data in the Implementation subclass.


Constructor & Destructor Documentation

Custom ( MobilizedBody parent,
Implementation implementation,
const Body body,
Direction  direction = Forward 
)
Custom ( MobilizedBody parent,
Implementation implementation,
const Transform inbFrame,
const Body body,
const Transform outbFrame,
Direction  direction = Forward 
)

Member Function Documentation

const Implementation& getImplementation (  )  const [protected]
SimTK_INSERT_DERIVED_HANDLE_DECLARATIONS ( Custom  ,
CustomImpl  ,
MobilizedBody   
)
Implementation& updImplementation (  )  [protected]

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

Generated on Wed Dec 30 11:05:15 2009 for SimTKcore by  doxygen 1.6.1