Class OrientedChainedFrame2Frame#

Nested Relationships#

Nested Types#

Inheritance Relationships#

Base Type#

Derived Type#

Class Documentation#

class OrientedChainedFrame2Frame : public Karana::Frame::Frame2Frame#

Frame2Frame class connecting an oframe with a downstream pframe.

The pframe can be arbitrary - as long as it is downstream of the oframe frames tree.

See The frames layer for more discussion on the frames layer.

Subclassed by Karana::Dynamics::FramePairHinge

Public Functions

OrientedChainedFrame2Frame(const kc::ks_ptr<Frame> &oframe, const kc::ks_ptr<Frame> &pframe, const std::string &name = "")#

Constructor for OrientedChainedFrame2Frame.

Parameters:
virtual const std::string &typeString() const noexcept override#

Returns the type string of LockingBase.

Returns:

The type string.

size_t numEdges() const#

Return the number of edges in this oriented chain.

Returns:

the number of edges in the chain

const std::string getPath() const#

Return the sequence of edge names in this chain as a string.

Returns:

string with the sequence of edge names

std::string dumpString(const std::string &prefix = "", const Base::dumpOptions *options = nullptr) const override#
virtual void makeZombie() override#

Make the ChainedFrame2Frame a zombie.

This also removes dependencies for the transform, velocity, and accel caches.

Public Static Functions

static const kc::ks_ptr<OrientedChainedFrame2Frame> &lookupOrCreate(const kc::ks_ptr<Frame> &oframe, const kc::ks_ptr<Frame> &pframe)#

Looks up or creates an OrientedChainedFrame2Frame two frames.

Parameters:
  • oframe – - The oframe of the oriented chain.

  • pframe – - The pframe of the oriented chain.

Returns:

The OrientedChainedFrame2Frame that connects the oframe and pframe.

Protected Functions

virtual void _computeTransform(km::HomTran&) override#

Compute the transformation between the oframe and pframe.

Returns:

The computed homogeneous transformation.

virtual void _computeVelocity(km::SpatialVector&) override#

Compute the spatial velocity between the oframe and pframe.

This method uses Exercise 1.8 (Evaluating spatial velocities) to combine the oframe/prfame parent spatial velocity with the pframe edge spatial velocity.

Returns:

The computed spatial velocity.

virtual void _computeAccel(km::SpatialVector&) override#

Compute the spatial acceleration between the oframe and pframe.

This method uses Exercise 1.15 (Evaluating spatial accelerations) to combine the oframe/prfame parent spatial acceleration with the pframe edge spatial acceleration and in the Coriolis contribution.

Returns:

The computed spatial acceleration.

virtual void _makeCurrent() override#

Used to lock the OrientedChainedFrame2Frame.

virtual void _makeStale() override#

Used to unlock the OrientedChainedFrame2Frame.

void _setup()#

Used to setup the OrientedChainedFrame2Frame.

void _discard(kc::ks_ptr<Base> &base) override#

Discard the provided OrientedChainedFrame2Frame.

Parameters:

base – - Base pointer to the OrientedChainedFrame2Frame to discard.

Protected Attributes

kc::ks_ptr<Frame> _pframe_parent = nullptr#
kc::ks_ptr<EdgeFrame2Frame> _pframe_edge_f2f = nullptr#
kc::ks_ptr<OrientedChainedFrame2Frame> _to_parent_f2f = nullptr#
struct dumpOptions : public Karana::Frame::Frame2Frame::dumpOptions#

options struct for dumpString

Public Functions

inline dumpOptions &operator=(const dumpOptions &p)#

the copy method

Public Members

bool path = true#

Display the edges that make up the path for this chain.