Class ConstraintNode#
Defined in File Node.h
Inheritance Relationships#
Base Type#
public Karana::Dynamics::Node(Class Node)
Class Documentation#
-
class ConstraintNode : public Karana::Dynamics::Node#
This class is used by LoopConstraintBase loop constraints as attachment body nodes.
ConstraintNodes are always force nodes, but do not allow the accumulation of forces. The node constraint forces are computed automatically by dynamics algorithms such as Karana::Dynamics::Algorithms::evalTAForwardDynamics(). See the
Hinge loop-constraints section for more on constraint nodes.
Public Functions
-
inline ConstraintNode(const std::string &name, kc::ks_ptr<PhysicalBody> bd)#
-
inline virtual const std::string &typeString() const noexcept override#
Get the type string of the frame.
- Returns:
The type string.
Public Static Functions
-
static kc::ks_ptr<ConstraintNode> lookupOrCreate(kc::ks_ptr<PhysicalBody> bd, const std::string &name)#
Protected Functions
-
virtual void detach() override#
detach the node from the current parent body, and put in the pool of detached nodes for possible reuse
-
inline virtual void accumExternalSpForce(const km::SpatialVector&, const kc::ks_ptr<kf::Frame>& = nullptr) override#
Make this method protected since it is not meant to be called for constraint nodes
-
inline virtual void setExternalSpForce(const km::SpatialVector &spforce, const kc::ks_ptr<kf::Frame>& = nullptr) override#
Make this method protected since the constraint forces at the nodes are computed algorithmically by methods such as Karana::Dynamics::Algorithms::evalTAForwardDynamics()
-
void _discard(kc::ks_ptr<kc::Base> &base) override#
Discard a constriant node.
- Parameters:
base – - A base pointer to the constraint node to discard.
-
inline ConstraintNode(const std::string &name, kc::ks_ptr<PhysicalBody> bd)#