esp::physics::ArticulatedLink class

A single rigid link in a kinematic chain. Abstract class. Feature attaches to a SceneNode.

Base classes

class RigidBase
This class specifies the functionality expected of rigid objects and stages, particularly with regard to dynamic simulation, if such a library, such as bullet, is available.

Derived classes

class BulletArticulatedLink

Constructors, destructors, conversion operators

ArticulatedLink(scene::SceneNode* bodyNode, int index, const assets::ResourceManager& resMgr)
~ArticulatedLink() defaulted override

Public functions

auto getIndex() const -> int
Get the link's index within its multibody.
auto initialize(metadata::attributes::AbstractObjectAttributes::ptr initAttributes) -> bool override
Initializes the link.
void initializeArticulatedLink(const std::string& _linkName, const Mn::Vector3& _scale)
auto finalizeObject() -> bool override
Finalize the creation of the link.
void setTransformation(const Magnum::Matrix4& transformation) override
void setTranslation(const Magnum::Vector3& vector) override
void setRotation(const Magnum::Quaternion& quaternion) override
void setRigidState(const core::RigidState& rigidState) override
void resetTransformation() override
void translate(const Magnum::Vector3& vector) override
void translateLocal(const Magnum::Vector3& vector) override
void rotate(const Magnum::Rad angleInRad, const Magnum::Vector3& normalizedAxis) override
void rotateLocal(const Magnum::Rad angleInRad, const Magnum::Vector3& normalizedAxis) override
void rotateX(const Magnum::Rad angleInRad) override
void rotateY(const Magnum::Rad angleInRad) override
void rotateZ(const Magnum::Rad angleInRad) override
void rotateXLocal(const Magnum::Rad angleInRad) override
void rotateYLocal(const Magnum::Rad angleInRad) override
void rotateZLocal(const Magnum::Rad angleInRad) override
void resetStateFromSceneInstanceAttr() override
Not used for articulated links. Set or reset the object's state using the object's specified sceneInstanceAttributes_.
template<class T>
void setOwningManagedAO(const std::shared_ptr<T>& owningManagedAO)
Set the ManagedArticulatedObject encapsulating this link's owning Articulated Object.

Public variables

std::vector<std::pair<esp::scene::SceneNode*, std::string>> visualAttachments_
std::string linkName
std::string linkJointName

Protected functions

template<class T>
auto getOwningManagedAOInternal() const -> std::shared_ptr<T>
Get the ManagedArticulatedObject encapsulating this link's owning Articulated Object.

Protected variables

int mbIndex_

Private functions

auto initialization_LibSpecific() -> bool override
Finalize the initialization of this link.
auto finalizeObject_LibSpecific() -> bool override
any physics-lib-specific finalization code that needs to be run after creation.

Function documentation

bool esp::physics::ArticulatedLink::initialize(metadata::attributes::AbstractObjectAttributes::ptr initAttributes) override

Initializes the link.

Returns true if initialized successfully, false otherwise.

bool esp::physics::ArticulatedLink::finalizeObject() override

Finalize the creation of the link.

Returns whether successful finalization.

bool esp::physics::ArticulatedLink::initialization_LibSpecific() override private

Finalize the initialization of this link.

Returns true if initialized successfully, false otherwise.

bool esp::physics::ArticulatedLink::finalizeObject_LibSpecific() override private

any physics-lib-specific finalization code that needs to be run after creation.

Returns whether successful finalization.

Variable documentation

std::vector<std::pair<esp::scene::SceneNode*, std::string>> esp::physics::ArticulatedLink::visualAttachments_

List of visual components attached to this link. Used for NavMesh recomputation. Each entry is a child node of this link's node and a string key to reference the asset in ResourceManager.