esp::physics::ManagedArticulatedObject class

Class describing wrapper for ArticulatedObject constructions. Provides bindings for all ArticulatedObject-specific functionality.

Base classes

template<class T>
class AbstractManagedPhysicsObject<esp::physics::ArticulatedObject>
Base class template for wrapper for physics objects of all kinds to enable Managed Container access.

Derived classes

class ManagedBulletArticulatedObject
Class describing wrapper for dynamic ArticulatedObject constructions using the Bullet library. Provides bindings for all ArticulatedObject-specific functionality.

Constructors, destructors, conversion operators

ManagedArticulatedObject(const std::string& classKey = "ManagedArticulatedObject") explicit

Public functions

auto getInitializationAttributes() const -> std::shared_ptr<metadata::attributes::ArticulatedObjectAttributes>
Get a copy of the template attributes describing the initial state of this articulated object. These attributes have the combination of date from the original articulated object attributes and specific instance attributes used to create this articulated object. Note : values will reflect both sources, and should not be saved to disk as articulated object attributes, since instance attribute modifications will still occur on subsequent loads.
auto getGlobalScale() const -> float
auto getLinkSceneNode(int linkId = BASELINK_ID) const -> scene::SceneNode*
auto getLinkVisualSceneNodes(int linkId = BASELINK_ID) const -> std::vector<scene::SceneNode*>
auto getLink(int linkId) const -> ArticulatedLink*
auto getNumLinks() const -> int
auto getLinkIds() const -> std::vector<int>
auto getLinkIdsWithBase() const -> std::vector<int>
auto getLinkIdFromName(const std::string& _name) const -> int
auto getLinkObjectIds() const -> std::unordered_map<int, int>
auto getLinkIdsToObjectIds() const -> std::unordered_map<int, int>
void setRootLinearVelocity(const Mn::Vector3& linVel)
auto getRootLinearVelocity() const -> Mn::Vector3
void setRootAngularVelocity(const Mn::Vector3& angVel)
auto getRootAngularVelocity() const -> Mn::Vector3
void setJointForces(const std::vector<float>& forces)
void addJointForces(const std::vector<float>& forces)
auto getJointForces() -> std::vector<float>
void setJointVelocities(const std::vector<float>& vels)
auto getJointVelocities() -> std::vector<float>
void setJointPositions(const std::vector<float>& positions)
auto getJointPositions() -> std::vector<float>
auto getJointMotorTorques(double fixedTimeStep) -> std::vector<float>
auto getJointPositionLimits() -> std::pair<std::vector<float>, std::vector<float>>
void addArticulatedLinkForce(int linkId, Magnum::Vector3 force)
auto getArticulatedLinkFriction(int linkId) const -> float
void setArticulatedLinkFriction(int linkId, float friction)
auto getLinkJointType(int linkId) const -> JointType
auto getLinkJointName(int linkId) const -> std::string
auto getLinkName(int linkId) const -> std::string
auto getLinkDoFOffset(int linkId) const -> int
auto getLinkNumDoFs(int linkId) const -> int
auto getLinkJointPosOffset(int linkId) const -> int
auto getLinkNumJointPos(int linkId) const -> int
void reset()
auto getCanSleep() const -> bool
void setAutoClampJointLimits(bool autoClamp)
auto getAutoClampJointLimits() const -> bool
void clampJointLimits()
auto createJointMotor(const int dof, const JointMotorSettings& settings) const -> int
void removeJointMotor(const int motorId)
auto getJointMotorSettings(const int motorId) const -> JointMotorSettings
void updateJointMotor(const int motorId, const JointMotorSettings& settings)
auto getExistingJointMotors() const -> std::unordered_map<int, int>
auto createMotorsForAllDofs(const JointMotorSettings& settings) -> std::unordered_map<int, int>
void updateAllMotorTargets(const std::vector<float>& stateTargets, bool velocities)

Protected functions

auto getPhyObjInfoHeaderInternal() const -> std::string override
Retrieve a comma-separated string holding the header values for the info returned for this managed object, type-specific. TODO : once Magnum supports retrieving key-values of configurations, use that to build this data.
auto getPhysObjInfoInternal(std::shared_ptr<esp::physics::ArticulatedObject>& sp) const -> std::string override
Specialization-specific extension of getObjectInfo, comma separated info ideal for saving to csv.