Skip to content

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:

  • config Configuration 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_geos Geometry 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_geos Geometry slots containing joint information.
  • indices Indices 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.

uipc::constitution::ExternalArticulationConstraint::~ExternalArticulationConstraint () 

Public Static Functions Documentation

function default_config

Get the default configuration for ExternalArticulationConstraint .

static Json uipc::constitution::ExternalArticulationConstraint::default_config () 

Returns:

Json Default configuration dictionary (currently empty).


Protected Functions Documentation

function get_uid

Get the unique identifier for this constraint type.

virtual U64 uipc::constitution::ExternalArticulationConstraint::get_uid () noexcept override const

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