Class uipc::constitution::ExternalArticulationConstraint
ClassList > uipc > constitution > ExternalArticulationConstraint
External articulation constraint for incorporating external kinetic energy into the IPC system. More...
#include <external_articulation_constraint.h>
Inherits the following classes: uipc::constitution::Constraint
Public Functions
| Type | Name |
|---|---|
| ExternalArticulationConstraint (const Json & config=default_config()) noexcept Construct an ExternalArticulationConstraint . |
|
| geometry::Geometry | create_geometry (span< S< const geometry::GeometrySlot > > joint_geos) const Create geometry for external articulation joints. |
| geometry::Geometry | create_geometry (span< S< const geometry::GeometrySlot > > joint_geos, span< IndexT > indices) const Create geometry for external articulation joints with specified indices. |
| ~ExternalArticulationConstraint () Destructor. |
Public Functions inherited from uipc::constitution::Constraint
See uipc::constitution::Constraint
| Type | Name |
|---|---|
| Constraint () noexcept |
Public Functions inherited from uipc::constitution::IConstitution
See uipc::constitution::IConstitution
| Type | Name |
|---|---|
| std::string_view | name () noexcept const |
| std::string_view | type () noexcept const |
| U64 | uid () noexcept const |
| const builtin::UIDInfo & | uid_info () noexcept const |
| virtual | ~IConstitution () = default |
Public Static Functions
| Type | Name |
|---|---|
| Json | default_config () Get the default configuration for ExternalArticulationConstraint . |
Protected Functions
| Type | Name |
|---|---|
| virtual U64 | get_uid () noexcept override const Get the unique identifier for this constraint type. |
Protected Functions inherited from uipc::constitution::Constraint
See uipc::constitution::Constraint
| Type | Name |
|---|---|
| void | apply_to (geometry::Geometry & geo) const |
| virtual U64 | get_uid () noexcept const = 0 |
Protected Functions inherited from uipc::constitution::IConstitution
See uipc::constitution::IConstitution
| Type | Name |
|---|---|
| virtual U64 | get_uid () noexcept const = 0 |
Detailed Description
Controls motion of affine bodies by prescribing articulation DOFs (joint positions, angles, etc.). Incorporates kinetic energy term: K = 1/2(delta_theta - delta_theta_tilde)^T M^t (delta_theta - delta_theta_tilde) where delta_theta is variational joint DOF, delta_theta_tilde is predicted variational joint DOF, and M^t is effective mass matrix at previous time step.
Users must provide M^t and delta_theta_tilde through animator callback. Works with AffineBodyRevoluteJoint and AffineBodyPrismaticJoint to constrain affine bodies to follow articulation motion.
Public Functions Documentation
function ExternalArticulationConstraint
Construct an ExternalArticulationConstraint .
uipc::constitution::ExternalArticulationConstraint::ExternalArticulationConstraint (
const Json & config=default_config ()
) noexcept
Parameters:
configConfiguration dictionary (optional, uses default if not provided).
function create_geometry [1/2]
Create geometry for external articulation joints.
geometry::Geometry uipc::constitution::ExternalArticulationConstraint::create_geometry (
span< S< const geometry::GeometrySlot > > joint_geos
) const
Creates geometry structure with joint attributes (geo_id, index, delta_theta_tilde, delta_theta) and joint-joint mass attributes. All joints use index 0 by default.
Parameters:
joint_geosGeometry slots containing joint information.
Returns:
geometry::Geometry Created geometry with joint constraint data.
function create_geometry [2/2]
Create geometry for external articulation joints with specified indices.
geometry::Geometry uipc::constitution::ExternalArticulationConstraint::create_geometry (
span< S< const geometry::GeometrySlot > > joint_geos,
span< IndexT > indices
) const
Same as single-parameter version but allows selecting specific joints from each geometry slot.
Parameters:
joint_geosGeometry slots containing joint information.indicesIndices specifying which joint to use from each slot. Must match joint_geos size.
Returns:
geometry::Geometry Created geometry with joint constraint data.
function ~ExternalArticulationConstraint
Destructor.
Public Static Functions Documentation
function default_config
Get the default configuration for ExternalArticulationConstraint .
Returns:
Json Default configuration dictionary (currently empty).
Protected Functions Documentation
function get_uid
Get the unique identifier for this constraint type.
Returns:
U64 The constraint UID.
Implements uipc::constitution::Constraint::get_uid
The documentation for this class was generated from the following file include/uipc/constitution/external_articulation_constraint.h