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

#include <BodyItem.h>

Inheritance diagram for cnoid::BodyItem:
cnoid::Item cnoid::SceneProvider cnoid::Referenced

Public Types

enum  PresetPoseID { INITIAL_POSE, STANDARD_POSE }
 
enum  PositionType {
  CM_PROJECTION, HOME_COP, RIGHT_HOME_COP, LEFT_HOME_COP,
  ZERO_MOMENT_POINT
}
 
- Public Types inherited from cnoid::Item
enum  Attribute { SUB_ITEM, TEMPORAL, LOAD_ONLY, NUM_ATTRIBUTES }
 

Public Member Functions

 BodyItem ()
 
 BodyItem (const BodyItem &org)
 
virtual ~BodyItem ()
 
bool loadModelFile (const std::string &filename)
 
virtual void setName (const std::string &name)
 
Bodybody () const
 
bool isEditable () const
 
void setEditable (bool on)
 
void moveToOrigin ()
 
void setPresetPose (PresetPoseID id)
 
LinkcurrentBaseLink () const
 
void setCurrentBaseLink (Link *link)
 
void calcForwardKinematics (bool calcVelocity=false, bool calcAcceleration=false)
 
void copyKinematicState ()
 
void pasteKinematicState ()
 
void storeKinematicState (BodyState &state)
 
bool restoreKinematicState (const BodyState &state)
 
void storeInitialState ()
 
void restoreInitialState (bool doNotify=true)
 
void getInitialState (BodyState &out_state)
 
void setInitialState (const BodyState &in_state)
 
void beginKinematicStateEdit ()
 
void acceptKinematicStateEdit ()
 
bool undoKinematicState ()
 
bool redoKinematicState ()
 
PinDragIKptr pinDragIK ()
 
InverseKinematicsPtr getCurrentIK (Link *targetLink)
 
InverseKinematicsPtr getDefaultIK (Link *targetLink)
 
PenetrationBlockerPtr createPenetrationBlocker (Link *link, bool excludeSelfCollisions=false)
 
SignalProxy< void()> sigModelUpdated ()
 
void notifyModelUpdate ()
 
SignalProxy< void()> sigKinematicStateChanged ()
 
void notifyKinematicStateChange (bool requestFK=false, bool requestVelFK=false, bool requestAccFK=false)
 
void notifyKinematicStateChange (Connection &connectionToBlock, bool requestFK=false, bool requestVelFK=false, bool requestAccFK=false)
 
SignalProxy< void()> sigKinematicStateEdited ()
 
void enableCollisionDetection (bool on)
 
bool isCollisionDetectionEnabled () const
 
void enableSelfCollisionDetection (bool on)
 
bool isSelfCollisionDetectionEnabled () const
 
void clearCollisions ()
 
std::vector< CollisionLinkPairPtr > & collisions ()
 
const std::vector< CollisionLinkPairPtr > & collisions () const
 
boost::dynamic_bitset & collisionLinkBitSet ()
 
const boost::dynamic_bitset & collisionLinkBitSet () const
 
std::vector< CollisionLinkPairPtr > & collisionsOfLink (int linkIndex)
 
const std::vector< CollisionLinkPairPtr > & collisionsOfLink (int linkIndex) const
 
SignalProxy< void()> sigCollisionsUpdated ()
 
void notifyCollisionUpdate ()
 
const Vector3centerOfMass ()
 
bool isLeggedBody () const
 
bool doLegIkToMoveCm (const Vector3 &c, bool onlyProjectionToFloor=false)
 
const Vector3zmp () const
 
void setZmp (const Vector3 &zmp)
 
void editZmp (const Vector3 &zmp)
 
boost::optional< Vector3getParticularPosition (PositionType posType)
 
bool setStance (double width)
 
virtual SgNodegetScene ()
 
EditableSceneBodysceneBody ()
 
EditableSceneBodyexistingSceneBody ()
 
- Public Member Functions inherited from cnoid::Item
virtual ~Item ()
 
const std::string & name () const
 
bool hasAttribute (Attribute attribute) const
 
ItemchildItem () const
 
ItemprevItem () const
 
ItemnextItem () const
 
ItemparentItem () 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)
 
RootItemfindRootItem () const
 
ItemfindItem (const std::string &path) const
 
template<class ItemType >
ItemType * findItem (const std::string &path) const
 
template<class ItemType >
ItemType * find (const std::string &path)
 
ItemfindChildItem (const std::string &path) const
 
template<class ItemType >
ItemType * findChildItem (const std::string &path) const
 
ItemfindSubItem (const std::string &path) const
 
template<class ItemType >
ItemType * findSubItem (const std::string &path) const
 
ItemheadItem () 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)
 
Itemduplicate () const
 
ItemduplicateAll () 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 ()
 
ReferencedcustomData (int id)
 
const ReferencedcustomData (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 ()
 
- Public Member Functions inherited from cnoid::SceneProvider
virtual ~SceneProvider ()
 
virtual SgNodegetScene (SgCloneMap &cloneMap)
 

Static Public Member Functions

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

Protected Member Functions

virtual ItemdoDuplicate () const
 
virtual void doAssign (Item *item)
 
virtual void doPutProperties (PutPropertyFunction &putProperty)
 
virtual bool store (Archive &archive)
 
virtual bool restore (const Archive &archive)
 
- Protected Member Functions inherited from cnoid::Item
 Item ()
 
 Item (const Item &item)
 
virtual void onConnectedToRoot ()
 
virtual void onDisconnectedFromRoot ()
 
virtual void onPositionChanged ()
 
virtual bool onChildItemAboutToBeAdded (Item *childItem, bool isManualOperation)
 
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 BodyItemImpl
 
class PyBodyPlugin
 

Member Enumeration Documentation

Enumerator
CM_PROJECTION 
HOME_COP 
RIGHT_HOME_COP 
LEFT_HOME_COP 
ZERO_MOMENT_POINT 
Enumerator
INITIAL_POSE 
STANDARD_POSE 

Constructor & Destructor Documentation

BodyItem::BodyItem ( )
BodyItem::BodyItem ( const BodyItem org)
BodyItem::~BodyItem ( )
virtual

Member Function Documentation

void BodyItem::acceptKinematicStateEdit ( )
void BodyItem::beginKinematicStateEdit ( )
Body * BodyItem::body ( ) const
void BodyItem::calcForwardKinematics ( bool  calcVelocity = false,
bool  calcAcceleration = false 
)

Forward kinematics from the current base link is done.

const Vector3 & BodyItem::centerOfMass ( )
void BodyItem::clearCollisions ( )
boost::dynamic_bitset& cnoid::BodyItem::collisionLinkBitSet ( )
inline
const boost::dynamic_bitset& cnoid::BodyItem::collisionLinkBitSet ( ) const
inline
std::vector<CollisionLinkPairPtr>& cnoid::BodyItem::collisions ( )
inline
const std::vector<CollisionLinkPairPtr>& cnoid::BodyItem::collisions ( ) const
inline
std::vector<CollisionLinkPairPtr>& cnoid::BodyItem::collisionsOfLink ( int  linkIndex)
inline
const std::vector<CollisionLinkPairPtr>& cnoid::BodyItem::collisionsOfLink ( int  linkIndex) const
inline
void BodyItem::copyKinematicState ( )
PenetrationBlockerPtr BodyItem::createPenetrationBlocker ( Link link,
bool  excludeSelfCollisions = false 
)
Link * BodyItem::currentBaseLink ( ) const
void BodyItem::doAssign ( Item srcItem)
protectedvirtual

Implement the code to copy properties like the assingment operator

Reimplemented from cnoid::Item.

Item * BodyItem::doDuplicate ( ) const
protectedvirtual

Override this function to allow duplication of an instance.

Reimplemented from cnoid::Item.

bool BodyItem::doLegIkToMoveCm ( const Vector3 c,
bool  onlyProjectionToFloor = false 
)
Todo:
use getDefaultIK() if the kinematics bar is in the AUTO mode.
void BodyItem::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.

void BodyItem::editZmp ( const Vector3 zmp)
void BodyItem::enableCollisionDetection ( bool  on)
void BodyItem::enableSelfCollisionDetection ( bool  on)
EditableSceneBody * BodyItem::existingSceneBody ( )
InverseKinematicsPtr BodyItem::getCurrentIK ( Link targetLink)
InverseKinematicsPtr BodyItem::getDefaultIK ( Link targetLink)
void BodyItem::getInitialState ( BodyState out_state)
boost::optional< Vector3 > BodyItem::getParticularPosition ( PositionType  posType)
SgNode * BodyItem::getScene ( )
virtual

If the scene has some state that affect the rendering, the scene node should be cloned for each call of this function. Otherwise, the same instance can be returned.

Implements cnoid::SceneProvider.

void BodyItem::initializeClass ( ExtensionManager ext)
static
bool BodyItem::isCollisionDetectionEnabled ( ) const
bool BodyItem::isEditable ( ) const
bool BodyItem::isLeggedBody ( ) const
bool BodyItem::isSelfCollisionDetectionEnabled ( ) const
bool BodyItem::loadModelFile ( const std::string &  filename)
void BodyItem::moveToOrigin ( )
void cnoid::BodyItem::notifyCollisionUpdate ( )
inline
void BodyItem::notifyKinematicStateChange ( bool  requestFK = false,
bool  requestVelFK = false,
bool  requestAccFK = false 
)
void BodyItem::notifyKinematicStateChange ( Connection connectionToBlock,
bool  requestFK = false,
bool  requestVelFK = false,
bool  requestAccFK = false 
)
void BodyItem::notifyModelUpdate ( )
void BodyItem::pasteKinematicState ( )
PinDragIKptr BodyItem::pinDragIK ( )
bool BodyItem::redoKinematicState ( )
bool BodyItem::restore ( const Archive archive)
protectedvirtual

Reimplemented from cnoid::Item.

void BodyItem::restoreInitialState ( bool  doNotify = true)
bool BodyItem::restoreKinematicState ( const BodyState state)
Returns
false if the restored state is same as the current state
EditableSceneBody * BodyItem::sceneBody ( )
void BodyItem::setCurrentBaseLink ( Link link)
void BodyItem::setEditable ( bool  on)
void cnoid::BodyItem::setInitialState ( const BodyState in_state)
void BodyItem::setName ( const std::string &  name)
virtual

Reimplemented from cnoid::Item.

void BodyItem::setPresetPose ( PresetPoseID  id)
bool BodyItem::setStance ( double  width)
void BodyItem::setZmp ( const Vector3 zmp)
SignalProxy<void()> cnoid::BodyItem::sigCollisionsUpdated ( )
inline
SignalProxy< void()> BodyItem::sigKinematicStateChanged ( )
SignalProxy< void()> BodyItem::sigKinematicStateEdited ( )
SignalProxy< void()> BodyItem::sigModelUpdated ( )
bool BodyItem::store ( Archive archive)
protectedvirtual

Reimplemented from cnoid::Item.

void BodyItem::storeInitialState ( )
void BodyItem::storeKinematicState ( BodyState state)
bool BodyItem::undoKinematicState ( )
const Vector3 & BodyItem::zmp ( ) const

Friends And Related Function Documentation

friend class BodyItemImpl
friend
friend class PyBodyPlugin
friend

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