Class LoopsCompoundBody#
Defined in File CECompoundBody.h
Inheritance Relationships#
Base Type#
public Karana::Dynamics::CECompoundBody(Class CECompoundBody)
Class Documentation#
-
class LoopsCompoundBody : public Karana::Dynamics::CECompoundBody#
Constraint embedding class for a bodies with loop constraints.
This class is embedding loop constraint for a subgraph of bodies.
Public Functions
-
virtual ~LoopsCompoundBody()#
Destructor.
-
inline virtual const std::string &typeString() const noexcept override#
Returns the type string of the SubTree.
- Returns:
The type string.
-
LoopsCompoundBody(const std::string &name, kc::ks_ptr<SubGraph> parent_subtree, kc::ks_ptr<SubGraph> bodies_tree, const std::vector<kc::ks_ptr<PhysicalBody>> &indep_bodies)#
Constructs a LoopsCompoundBody.
Public Static Functions
-
static kc::ks_ptr<LoopsCompoundBody> create(kc::ks_ptr<SubGraph> parent_subtree, const std::string &name, kc::ks_ptr<SubGraph> component_bodies, std::vector<kc::ks_ptr<PhysicalBody>> indep_bodies)#
Protected Functions
-
virtual void _updateDependentQ(const km::Vec &min_Q) const override#
Convert the input minimal coords Q into the full dependent Q for all the aggregated subhinges for the compound body
-
virtual km::Mat _constraintX() const override#
Convert the input full dependent coords for all the aggregated subhinges for the compound body Q into the minimal independent Q Return the X matrix that maps the min independent U to the full dependent U for the compound body
-
virtual km::Mat _constraintXdot() const override#
Return the Xdot matrix that is the time derivative of the X constraint matrix
-
virtual km::Mat _invConstraintX() const override#
Return the X matrix pseudo inverse that maps the full dependent U for the compound body to the min independent U
Protected Attributes
-
kc::ks_ptr<ConstraintKinematicsSolver> _cks = nullptr#
the CK solver used to solve for the dependent coordinates
-
kc::ks_ptr<MultiJacobianGenerator> _jacgen = nullptr#
Jacobian generator for computing X and Xdot. Has no frozen coords
-
std::vector<kc::ks_ptr<PhysicalBody>> _indep_bodies#
list of bodies whose subhinges define the independent coords for the compound body
-
kc::ks_ptr<CoordData> _subhge_coord_data = nullptr#
Clone of bodies_tree subhinge coord data - except this one has no frozen subhinges
-
std::vector<unsigned int> _independent_offsets#
-
std::vector<unsigned int> _dependent_offsets#
-
virtual ~LoopsCompoundBody()#