Choreonoid
1.1
|
#include <BodyItem.h>
構成 | |
struct | KinematicState |
Public 型 | |
enum | PresetPoseID { INITIAL_POSE, STANDARD_POSE } |
enum | PositionType { CM_PROJECTION, HOME_COP, RIGHT_HOME_COP, LEFT_HOME_COP, ZMP } |
Public メソッド | |
BodyItem () | |
BodyItem (const BodyItem &org) | |
virtual | ~BodyItem () |
void | init () |
bool | loadModelFile (const std::string &filename) |
virtual void | setName (const std::string &name) |
Body * | body () |
ModelNodeSetPtr | modelNodeSet () |
const std::string & | errorMessage () |
void | moveToOrigin () |
void | setPresetPose (PresetPoseID id) |
Link * | currentBaseLink () const |
void | setCurrentBaseLink (Link *link) |
void | calcForwardKinematics (bool calcVelocity=false, bool calcAcceleration=false) |
void | copyKinematicState () |
void | pasteKinematicState () |
void | storeKinematicState (KinematicState &state) |
bool | restoreKinematicState (const KinematicState &state) |
void | beginKinematicStateEdit () |
void | acceptKinematicStateEdit () |
bool | undoKinematicState () |
bool | redoKinematicState () |
PinDragIKptr | pinDragIK () |
InverseKinematicsPtr | getCurrentIK (Link *targetLink) |
PenetrationBlockerPtr | createPenetrationBlocker (Link *link, bool excludeSelfCollisions=false) |
SignalProxy< boost::signal < void()> > | sigKinematicStateChanged () |
void | notifyKinematicStateChange (bool requestFK=false, bool requestVelFK=false, bool requestAccFK=false) |
void | notifyKinematicStateChange (boost::signals::connection &connectionToBlock, bool requestFK=false, bool requestVelFK=false, bool requestAccFK=false) |
SignalProxy< boost::signal < void()> > | sigKinematicStateEdited () |
WorldItem * | worldItem () |
void | updateColdetModelPositions (bool force=false) |
void | enableSelfCollisionDetection (bool on) |
bool | isSelfCollisionDetectionEnabled () |
bool | updateSelfCollisions (bool force=false) |
void | clearSelfCollisions () |
SignalProxy< boost::signal < void()> > | sigSelfCollisionsUpdated () |
SignalProxy< boost::signal < void()> > | sigSelfCollisionLinkSetChanged () |
std::vector< ColdetLinkPairPtr > & | worldColdetPairsOfLink (int linkIndex) |
const std::vector < ColdetLinkPairPtr > & | worldColdetPairsOfLink (int linkIndex) const |
SignalProxy< boost::signal < void()> > | sigWorldCollisionsUpdated () |
SignalProxy< boost::signal < void()> > | sigWorldCollisionLinkSetChanged () |
void | notifyWorldCollisionLinkSetChange () |
void | notifyWorldCollisionUpdate () |
const Vector3 & | centerOfMass () |
bool | doLegIkToMoveCm (const Vector3 &c, bool onlyProjectionToFloor=false) |
const Vector3 & | zmp () |
void | setZmp (const Vector3 &zmp) |
void | editZmp (const Vector3 &zmp) |
boost::optional< Vector3 > | getParticularPosition (PositionType posType) |
bool | setStance (double width) |
const std::string | modelFilePath () |
Public 変数 | |
std::vector< ColdetLinkPairPtr > | selfColdetPairs |
boost::dynamic_bitset | selfCollisionLinkBitSet |
boost::dynamic_bitset | worldCollisionLinkBitSet |
Protected メソッド | |
virtual ItemPtr | doDuplicate () const |
virtual void | doPutProperties (PutPropertyFunction &putProperty) |
virtual bool | store (Archive &archive) |
virtual bool | restore (const Archive &archive) |
BodyItem::BodyItem | ( | ) |
BodyItem::BodyItem | ( | const BodyItem & | org) |
|
virtual |
void BodyItem::acceptKinematicStateEdit | ( | ) |
void BodyItem::beginKinematicStateEdit | ( | ) |
|
inline |
void BodyItem::calcForwardKinematics | ( | bool | calcVelocity = false , |
bool | calcAcceleration = false |
||
) |
Forward kinematics from the current base link is done.
const Vector3 & BodyItem::centerOfMass | ( | ) |
void BodyItem::clearSelfCollisions | ( | ) |
void BodyItem::copyKinematicState | ( | ) |
PenetrationBlockerPtr BodyItem::createPenetrationBlocker | ( | Link * | link, |
bool | excludeSelfCollisions = false |
||
) |
|
inline |
|
protectedvirtual |
bool BodyItem::doLegIkToMoveCm | ( | const Vector3 & | c, |
bool | onlyProjectionToFloor = false |
||
) |
|
protectedvirtual |
void BodyItem::editZmp | ( | const Vector3 & | zmp) |
void BodyItem::enableSelfCollisionDetection | ( | bool | on) |
|
inline |
InverseKinematicsPtr BodyItem::getCurrentIK | ( | Link * | targetLink) |
boost::optional< Vector3 > BodyItem::getParticularPosition | ( | PositionType | posType) |
void BodyItem::init | ( | ) |
|
inline |
bool BodyItem::loadModelFile | ( | const std::string & | filename) |
|
inline |
|
inline |
void BodyItem::moveToOrigin | ( | ) |
void BodyItem::notifyKinematicStateChange | ( | bool | requestFK = false , |
bool | requestVelFK = false , |
||
bool | requestAccFK = false |
||
) |
void BodyItem::notifyKinematicStateChange | ( | boost::signals::connection & | connectionToBlock, |
bool | requestFK = false , |
||
bool | requestVelFK = false , |
||
bool | requestAccFK = false |
||
) |
|
inline |
|
inline |
void BodyItem::pasteKinematicState | ( | ) |
PinDragIKptr BodyItem::pinDragIK | ( | ) |
bool BodyItem::redoKinematicState | ( | ) |
|
protectedvirtual |
bool BodyItem::restoreKinematicState | ( | const KinematicState & | state) |
void BodyItem::setCurrentBaseLink | ( | Link * | link) |
|
virtual |
void BodyItem::setPresetPose | ( | PresetPoseID | id) |
bool BodyItem::setStance | ( | double | width) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
protectedvirtual |
void BodyItem::storeKinematicState | ( | KinematicState & | state) |
bool BodyItem::undoKinematicState | ( | ) |
void BodyItem::updateColdetModelPositions | ( | bool | force = false ) |
bool BodyItem::updateSelfCollisions | ( | bool | force = false ) |
true if a colliding link set changes
|
inline |
|
inline |
|
inline |
std::vector<ColdetLinkPairPtr> cnoid::BodyItem::selfColdetPairs |
boost::dynamic_bitset cnoid::BodyItem::selfCollisionLinkBitSet |
boost::dynamic_bitset cnoid::BodyItem::worldCollisionLinkBitSet |