Choreonoid  1.5
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
cnoid::SimulatorItem Class Referenceabstract

#include <SimulatorItem.h>

Inheritance diagram for cnoid::SimulatorItem:
cnoid::Item cnoid::Referenced cnoid::AISTSimulatorItem cnoid::BulletSimulatorItem cnoid::ODESimulatorItem

Public Types

enum  RecordingMode { REC_FULL, REC_TAIL, REC_NONE, N_RECORDING_MODES }
 
enum  TimeRangeMode {
  TR_UNLIMITED, TR_ACTIVE_CONTROL, TR_SPECIFIED, TR_TIMEBAR,
  N_TIME_RANGE_MODES
}
 
- Public Types inherited from cnoid::Item
enum  Attribute { SUB_ITEM, TEMPORAL, LOAD_ONLY, NUM_ATTRIBUTES }
 

Public Member Functions

 SimulatorItem ()
 
virtual ~SimulatorItem ()
 
virtual double worldTimeStep ()
 
virtual bool startSimulation (bool doReset=true)
 
virtual void stopSimulation ()
 
virtual void pauseSimulation ()
 
virtual void restartSimulation ()
 
bool isRunning () const
 
bool isPausing () const
 
bool isActive () const
 isRunning() && !isPausing() More...
 
int currentFrame () const
 This can only be called from the simulation thread. More...
 
double currentTime () const
 This can only be called from the simulation thread. More...
 
int simulationFrame () const
 This can be called from non simulation threads. More...
 
double simulationTime () const
 This can be called from non simulation threads. More...
 
SignalProxy< void()> sigSimulationStarted ()
 
SignalProxy< void()> sigSimulationFinished ()
 
void setRecordingMode (int selection)
 
Selection recordingMode () const
 
void setTimeRangeMode (int selection)
 
void setRealtimeSyncMode (bool on)
 
void setDeviceStateOutputEnabled (bool on)
 
bool isRecordingEnabled () const
 
bool isDeviceStateOutputEnabled () const
 
bool isAllLinkPositionOutputMode ()
 
virtual void setAllLinkPositionOutputMode (bool on)
 
const std::vector< SimulationBody * > & simulationBodies ()
 
SimulationBody * findSimulationBody (BodyItem *bodyItem)
 
SimulationBody * findSimulationBody (const std::string &name)
 
int addPreDynamicsFunction (boost::function< void()> func)
 
int addMidDynamicsFunction (boost::function< void()> func)
 
int addPostDynamicsFunction (boost::function< void()> func)
 
void removePreDynamicsFunction (int id)
 
void removeMidDynamicsFunction (int id)
 
void removePostDynamicsFunction (int id)
 
SgCloneMap & sgCloneMap ()
 
SignalProxy< void(const std::vector< SimulationBodyPtr > &simulationBodies)> sigSimulationBodyListUpdated ()
 
virtual void setExternalForce (BodyItem *bodyItem, Link *link, const Vector3 &point, const Vector3 &f, double time=0.0)
 
virtual void clearExternalForces ()
 
virtual void setVirtualElasticString (BodyItem *bodyItem, Link *link, const Vector3 &attachmentPoint, const Vector3 &endPoint)
 
virtual void clearVirtualElasticStrings ()
 
virtual void setForcedPosition (BodyItem *bodyItem, const Position &T)
 
virtual bool isForcedPositionActiveFor (BodyItem *bodyItem) const
 
virtual void clearForcedPositions ()
 
- Public Member Functions inherited from cnoid::Item
virtual ~Item ()
 
const std::string & name () const
 
virtual void setName (const std::string &name)
 
bool hasAttribute (Attribute attribute) const
 
Item * childItem () const
 
Item * prevItem () const
 
Item * nextItem () const
 
Item * parentItem () const
 
bool addChildItem (Item *item, bool isManualOperation=false)
 
bool addSubItem (Item *item)
 
bool isSubItem () const
 
void detachFromParentItem ()
 
void emitSigDetachedFromRootForSubTree ()
 
bool insertChildItem (Item *item, Item *nextItem, bool isManualOperation=false)
 
bool insertSubItem (Item *item, Item *nextItem)
 
bool isTemporal () const
 
void setTemporal (bool on=true)
 
RootItem * findRootItem () const
 
Item * findItem (const std::string &path) const
 
template<class ItemType >
ItemType * findItem (const std::string &path) const
 
template<class ItemType >
ItemType * find (const std::string &path)
 
Item * findChildItem (const std::string &path) const
 
template<class ItemType >
ItemType * findChildItem (const std::string &path) const
 
Item * findSubItem (const std::string &path) const
 
template<class ItemType >
ItemType * findSubItem (const std::string &path) const
 
Item * headItem () const
 
template<class ItemType >
ItemType * findOwnerItem (bool includeSelf=false)
 
bool isOwnedBy (Item *item) const
 
bool traverse (boost::function< bool(Item *)> function)
 
template<class ItemType >
bool traverse (boost::function< bool(ItemType *item)> function)
 
Item * duplicate () const
 
Item * duplicateAll () const
 
void assign (Item *srcItem)
 
bool load (const std::string &filename, const std::string &format=std::string())
 
bool load (const std::string &filename, Item *parent, const std::string &format=std::string())
 
bool save (const std::string &filename, const std::string &format=std::string())
 
bool overwrite (bool forceOverwrite=false, const std::string &format=std::string())
 
const std::string & filePath () const
 
const std::string & fileFormat () const
 
std::time_t fileModificationTime () const
 
bool isConsistentWithFile () const
 
void clearFileInformation ()
 
void suggestFileUpdate ()
 
void putProperties (PutPropertyFunction &putProperty)
 
virtual void notifyUpdate ()
 
SignalProxy< void(const std::string &oldName)> sigNameChanged ()
 
SignalProxy< void()> sigUpdated ()
 
SignalProxy< void()> sigPositionChanged ()
 
SignalProxy< void()> sigDetachedFromRoot ()
 
SignalProxy< void()> sigDisconnectedFromRoot ()
 
SignalProxy< void()> sigSubTreeChanged ()
 
Referenced * customData (int id)
 
const Referenced * customData (int id) const
 
void setCustomData (int id, ReferencedPtr data)
 
void clearCustomData (int id)
 
- Public Member Functions inherited from cnoid::Referenced
virtual ~Referenced ()
 
void addRef ()
 
void releaseRef ()
 

Static Public Member Functions

static void initializeClass (ExtensionManager *ext)
 
static SimulatorItem * findActiveSimulatorItemFor (Item *item)
 
- Static Public Member Functions inherited from cnoid::Item
static Item * find (const std::string &path)
 
static SignalProxy< void(const char *type_info_name)> sigClassUnregistered ()
 

Protected Member Functions

 SimulatorItem (const SimulatorItem &org)
 
virtual void onDisconnectedFromRoot ()
 
virtual SimulationBody * createSimulationBody (Body *orgBody)=0
 
CollisionDetectorPtr collisionDetector ()
 
virtual bool initializeSimulation (const std::vector< SimulationBody *> &simBodies)=0
 
virtual void initializeSimulationThread ()
 
virtual void finalizeSimulationThread ()
 
virtual bool stepSimulation (const std::vector< SimulationBody *> &activeSimBodies)=0
 
virtual void finalizeSimulation ()
 
virtual CollisionLinkPairListPtr getCollisions ()
 
void doPutProperties (PutPropertyFunction &putProperty)
 
bool store (Archive &archive)
 
bool restore (const Archive &archive)
 
- Protected Member Functions inherited from cnoid::Item
 Item ()
 
 Item (const Item &item)
 
virtual void onConnectedToRoot ()
 
virtual void onPositionChanged ()
 
virtual bool onChildItemAboutToBeAdded (Item *childItem, bool isManualOperation)
 
virtual Item * doDuplicate () const
 
virtual void doAssign (Item *srcItem)
 
void setAttribute (Attribute attribute)
 
void unsetAttribute (Attribute attribute)
 
- Protected Member Functions inherited from cnoid::Referenced
 Referenced ()
 
 Referenced (const Referenced &org)
 
int refCount () const
 

Friends

class SimulatorItemImpl
 
class SimulatedMotionEngineManager
 

Member Enumeration Documentation

§ RecordingMode

Enumerator
REC_FULL 
REC_TAIL 
REC_NONE 
N_RECORDING_MODES 

§ TimeRangeMode

Enumerator
TR_UNLIMITED 
TR_ACTIVE_CONTROL 
TR_SPECIFIED 
TR_TIMEBAR 
N_TIME_RANGE_MODES 

Constructor & Destructor Documentation

§ SimulatorItem() [1/2]

SimulatorItem::SimulatorItem ( )

§ ~SimulatorItem()

SimulatorItem::~SimulatorItem ( )
virtual

§ SimulatorItem() [2/2]

SimulatorItem::SimulatorItem ( const SimulatorItem &  org)
protected

Member Function Documentation

§ addMidDynamicsFunction()

int SimulatorItem::addMidDynamicsFunction ( boost::function< void()>  func)

§ addPostDynamicsFunction()

int SimulatorItem::addPostDynamicsFunction ( boost::function< void()>  func)

§ addPreDynamicsFunction()

int SimulatorItem::addPreDynamicsFunction ( boost::function< void()>  func)
Returns
The registration id of the function. The id can be used for removing the function.

§ clearExternalForces()

void SimulatorItem::clearExternalForces ( )
virtual

§ clearForcedPositions()

void SimulatorItem::clearForcedPositions ( )
virtual

Reimplemented in cnoid::AISTSimulatorItem.

§ clearVirtualElasticStrings()

void SimulatorItem::clearVirtualElasticStrings ( )
virtual

§ collisionDetector()

CollisionDetectorPtr SimulatorItem::collisionDetector ( )
protected

§ createSimulationBody()

virtual SimulationBody* cnoid::SimulatorItem::createSimulationBody ( Body *  orgBody)
protectedpure virtual
Note
orgBody should not owned by the SimulationBody instance. Instead of it, a clone instance which may be a sub Body class should be created and owned.

Implemented in cnoid::AISTSimulatorItem, cnoid::ODESimulatorItem, and cnoid::BulletSimulatorItem.

§ currentFrame()

int SimulatorItem::currentFrame ( ) const

This can only be called from the simulation thread.

§ currentTime()

double SimulatorItem::currentTime ( void  ) const

This can only be called from the simulation thread.

§ doPutProperties()

void SimulatorItem::doPutProperties ( PutPropertyFunction &  putProperty)
protectedvirtual

Override this function to put properties of the item.

Note
Please call doPutProperties() of the parent class in this function. For example, when your class directly inherits the Item class, call Item::doPutProperties(putProperty).

Reimplemented from cnoid::Item.

Reimplemented in cnoid::ODESimulatorItem, and cnoid::BulletSimulatorItem.

§ finalizeSimulation()

void SimulatorItem::finalizeSimulation ( )
protectedvirtual
Note
This function is called from the main thread.

Reimplemented in cnoid::AISTSimulatorItem, and cnoid::ODESimulatorItem.

§ finalizeSimulationThread()

void SimulatorItem::finalizeSimulationThread ( )
protectedvirtual

§ findActiveSimulatorItemFor()

SimulatorItem * SimulatorItem::findActiveSimulatorItemFor ( Item *  item)
static

§ findSimulationBody() [1/2]

SimulationBody * SimulatorItem::findSimulationBody ( BodyItem *  bodyItem)
Todo:
make thread safe

§ findSimulationBody() [2/2]

SimulationBody * SimulatorItem::findSimulationBody ( const std::string &  name)
Todo:
make thread safe

§ getCollisions()

virtual CollisionLinkPairListPtr cnoid::SimulatorItem::getCollisions ( )
inlineprotectedvirtual

Reimplemented in cnoid::AISTSimulatorItem.

§ initializeClass()

void SimulatorItem::initializeClass ( ExtensionManager *  ext)
static

§ initializeSimulation()

virtual bool cnoid::SimulatorItem::initializeSimulation ( const std::vector< SimulationBody *> &  simBodies)
protectedpure virtual
Parameters
simBodiesSimulatorBody objects which have a valid body
Note
This function is called from the main thread.

Implemented in cnoid::AISTSimulatorItem, cnoid::ODESimulatorItem, and cnoid::BulletSimulatorItem.

§ initializeSimulationThread()

void SimulatorItem::initializeSimulationThread ( )
protectedvirtual

§ isActive()

bool SimulatorItem::isActive ( ) const

isRunning() && !isPausing()

§ isAllLinkPositionOutputMode()

bool SimulatorItem::isAllLinkPositionOutputMode ( )

§ isDeviceStateOutputEnabled()

bool SimulatorItem::isDeviceStateOutputEnabled ( ) const

§ isForcedPositionActiveFor()

bool SimulatorItem::isForcedPositionActiveFor ( BodyItem *  bodyItem) const
virtual

Reimplemented in cnoid::AISTSimulatorItem.

§ isPausing()

bool SimulatorItem::isPausing ( ) const

§ isRecordingEnabled()

bool SimulatorItem::isRecordingEnabled ( ) const

§ isRunning()

bool SimulatorItem::isRunning ( ) const

§ onDisconnectedFromRoot()

void SimulatorItem::onDisconnectedFromRoot ( )
protectedvirtual

Reimplemented from cnoid::Item.

§ pauseSimulation()

void SimulatorItem::pauseSimulation ( )
virtual

§ recordingMode()

Selection SimulatorItem::recordingMode ( ) const

§ removeMidDynamicsFunction()

void SimulatorItem::removeMidDynamicsFunction ( int  id)

§ removePostDynamicsFunction()

void SimulatorItem::removePostDynamicsFunction ( int  id)

§ removePreDynamicsFunction()

void SimulatorItem::removePreDynamicsFunction ( int  id)

§ restartSimulation()

void SimulatorItem::restartSimulation ( )
virtual

§ restore()

bool SimulatorItem::restore ( const Archive &  archive)
protectedvirtual

Reimplemented from cnoid::Item.

Reimplemented in cnoid::ODESimulatorItem, and cnoid::BulletSimulatorItem.

§ setAllLinkPositionOutputMode()

void SimulatorItem::setAllLinkPositionOutputMode ( bool  on)
virtual

§ setDeviceStateOutputEnabled()

void SimulatorItem::setDeviceStateOutputEnabled ( bool  on)

§ setExternalForce()

void SimulatorItem::setExternalForce ( BodyItem *  bodyItem,
Link *  link,
const Vector3 &  point,
const Vector3 &  f,
double  time = 0.0 
)
virtual
Parameters
pointlink local position to apply the force
flinear force to apply in global coordinate

§ setForcedPosition()

void SimulatorItem::setForcedPosition ( BodyItem *  bodyItem,
const Position &  T 
)
virtual

Reimplemented in cnoid::AISTSimulatorItem.

§ setRealtimeSyncMode()

void SimulatorItem::setRealtimeSyncMode ( bool  on)

§ setRecordingMode()

void SimulatorItem::setRecordingMode ( int  selection)

§ setTimeRangeMode()

void SimulatorItem::setTimeRangeMode ( int  selection)

§ setVirtualElasticString()

void SimulatorItem::setVirtualElasticString ( BodyItem *  bodyItem,
Link *  link,
const Vector3 &  attachmentPoint,
const Vector3 &  endPoint 
)
virtual
Parameters
attachmentPointlink local position
goalglobal goal position

§ sgCloneMap()

SgCloneMap & SimulatorItem::sgCloneMap ( )

§ sigSimulationBodyListUpdated()

SignalProxy<void(const std::vector<SimulationBodyPtr>& simulationBodies)> cnoid::SimulatorItem::sigSimulationBodyListUpdated ( )
Note
This signal is emitted in the simulation thread

§ sigSimulationFinished()

SignalProxy< void()> SimulatorItem::sigSimulationFinished ( )

§ sigSimulationStarted()

SignalProxy< void()> SimulatorItem::sigSimulationStarted ( )

§ simulationBodies()

const std::vector< SimulationBody * > & SimulatorItem::simulationBodies ( )

For sub simulators

§ simulationFrame()

int SimulatorItem::simulationFrame ( ) const

This can be called from non simulation threads.

§ simulationTime()

double SimulatorItem::simulationTime ( ) const

This can be called from non simulation threads.

§ startSimulation()

bool SimulatorItem::startSimulation ( bool  doReset = true)
virtual

Reimplemented in cnoid::AISTSimulatorItem.

§ stepSimulation()

virtual bool cnoid::SimulatorItem::stepSimulation ( const std::vector< SimulationBody *> &  activeSimBodies)
protectedpure virtual

This function is called from the simulation loop thread.

Parameters
activeSimBodiesSimulatorBody objects which are non-static ones.

Implemented in cnoid::AISTSimulatorItem, cnoid::ODESimulatorItem, and cnoid::BulletSimulatorItem.

§ stopSimulation()

void SimulatorItem::stopSimulation ( )
virtual

§ store()

bool SimulatorItem::store ( Archive &  archive)
protectedvirtual

Reimplemented from cnoid::Item.

Reimplemented in cnoid::ODESimulatorItem, and cnoid::BulletSimulatorItem.

§ worldTimeStep()

double SimulatorItem::worldTimeStep ( )
virtual

Friends And Related Function Documentation

§ SimulatedMotionEngineManager

friend class SimulatedMotionEngineManager
friend

§ SimulatorItemImpl

friend class SimulatorItemImpl
friend

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