Class uipc::constitution::AffineBodyConstitution
ClassList > uipc > constitution > AffineBodyConstitution
Inherits the following classes: uipc::constitution::IConstitution
Inherited by the following classes: uipc::constitution::AffineBodyRod, uipc::constitution::AffineBodyShell
Public Functions
| Type | Name |
|---|---|
| AffineBodyConstitution (const Json & config=default_config()) noexcept |
|
| void | apply_to (geometry::SimplicialComplex & sc, Float kappa, Float mass_density=1e3) const |
| void | apply_to (geometry::SimplicialComplex & sc, Float kappa, const Matrix12x12 & mass, Float volume) const Apply ABD constitution with explicit mass matrix and volume override. |
| AffineBodyMaterial | create_material (Float kappa) noexcept const |
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 () noexcept |
Protected Functions
| Type | Name |
|---|---|
| virtual U64 | get_uid () noexcept override const |
| void | setup_abd_attributes (geometry::SimplicialComplex & sc, Float kappa, Float mass_density, Float volume) const Common ABD attribute setup without volume computation. |
Protected Functions inherited from uipc::constitution::IConstitution
See uipc::constitution::IConstitution
| Type | Name |
|---|---|
| virtual U64 | get_uid () noexcept const = 0 |
Public Functions Documentation
function AffineBodyConstitution
uipc::constitution::AffineBodyConstitution::AffineBodyConstitution (
const Json & config=default_config()
) noexcept
function apply_to [1/2]
void uipc::constitution::AffineBodyConstitution::apply_to (
geometry::SimplicialComplex & sc,
Float kappa,
Float mass_density=1e3
) const
function apply_to [2/2]
Apply ABD constitution with explicit mass matrix and volume override.
void uipc::constitution::AffineBodyConstitution::apply_to (
geometry::SimplicialComplex & sc,
Float kappa,
const Matrix12x12 & mass,
Float volume
) const
The 12x12 mass matrix is decomposed into (m, m_x_bar, m_x_bar_x_bar) and stored as meta attributes so the backend uses them directly instead of computing from mesh geometry.
function create_material
AffineBodyMaterial uipc::constitution::AffineBodyConstitution::create_material (
Float kappa
) noexcept const
Public Static Functions Documentation
function default_config
Protected Functions Documentation
function get_uid
Implements uipc::constitution::IConstitution::get_uid
function setup_abd_attributes
Common ABD attribute setup without volume computation.
void uipc::constitution::AffineBodyConstitution::setup_abd_attributes (
geometry::SimplicialComplex & sc,
Float kappa,
Float mass_density,
Float volume
) const
Sets constitution_uid, transforms, dof_offset, dof_count, is_fixed, is_dynamic, external_kinetic, velocity, self_collision, kappa, volume, and mass_density attributes.
Subclasses (AffineBodyShell, AffineBodyRod) call this with their own pre-computed volume instead of compute_mesh_volume().
The documentation for this class was generated from the following file include/uipc/constitution/affine_body_constitution.h