Skip to content

Class uipc::geometry::SimplicialComplex

ClassList > uipc > geometry > SimplicialComplex

A simplicial complex is a collection of simplices. More...

  • #include <simplicial_complex.h>

Inherits the following classes: uipc::geometry::Geometry

Public Types

Type Name
typedef SimplicialComplexAttributes< true, 1 > CEdgeAttributes
typedef SimplicialComplexAttributes< true, 3 > CTetrahedronAttributes
typedef SimplicialComplexAttributes< true, 2 > CTriangleAttributes
typedef SimplicialComplexAttributes< true, 0 > CVertexAttributes
typedef SimplicialComplexAttributes< false, 1 > EdgeAttributes
Alias for the edge attributes.
typedef SimplicialComplexAttributes< false, 3 > TetrahedronAttributes
Alias for the tetrahedron attributes.
typedef SimplicialComplexAttributes< false, 2 > TriangleAttributes
Alias for the triangle attributes.
typedef SimplicialComplexAttributes< false, 0 > VertexAttributes
Alias for the vertex attributes.

Public Types inherited from uipc::geometry::Geometry

See uipc::geometry::Geometry

Type Name
typedef InstanceAttributesT< true > CInstanceAttributes
typedef MetaAttributesT< true > CMetaAttributes
typedef InstanceAttributesT< false > InstanceAttributes
typedef MetaAttributesT< false > MetaAttributes

Public Functions

Type Name
SimplicialComplex ()
SimplicialComplex (const SimplicialComplex & o) = default
SimplicialComplex (SimplicialComplex && o) = default
IndexT dim () noexcept const
Get the dimension of the simplicial complex.
EdgeAttributes edges () noexcept
A wrapper of the edges and its attributes of the simplicial complex.
CEdgeAttributes edges () noexcept const
SimplicialComplex & operator= (const SimplicialComplex & o) = delete
SimplicialComplex & operator= (SimplicialComplex && o) = delete
AttributeSlot< Vector3 > & positions () noexcept
Get the positions of the vertices.
const AttributeSlot< Vector3 > & positions () noexcept const
A short cut to get the positions of the vertices.
TetrahedronAttributes tetrahedra () noexcept
A wrapper of the tetrahedra and its attributes of the simplicial complex.
CTetrahedronAttributes tetrahedra () noexcept const
AttributeSlot< Matrix4x4 > & transforms ()
A short-cut to get the non-const transforms attribute slot.
const AttributeSlot< Matrix4x4 > & transforms () const
A short-cut to get the const transforms attribute slot.
TriangleAttributes triangles () noexcept
A wrapper of the triangles and its attributes of the simplicial complex.
CTriangleAttributes triangles () noexcept const
VertexAttributes vertices () noexcept
A wrapper of the vertices and its attributes of the simplicial complex.
CVertexAttributes vertices () noexcept const

Public Functions inherited from uipc::geometry::Geometry

See uipc::geometry::Geometry

Type Name
Geometry ()
Geometry (const Geometry & o) = default
Geometry (Geometry && o) = default
T * as ()
InstanceAttributes instances ()
Get the instance attributes of the geometries.
CInstanceAttributes instances () const
MetaAttributes meta ()
Get the meta attributes of the geometries.
CMetaAttributes meta () const
Geometry & operator= (const Geometry & o) = delete
Geometry & operator= (Geometry && o) = delete

Public Functions inherited from uipc::geometry::IGeometry

See uipc::geometry::IGeometry

Type Name
Json to_json () const
std::string_view type () noexcept const
Get the type of the geometries, check the type to downcast the geometries to a specific type.
virtual ~IGeometry () = default

Protected Attributes inherited from uipc::geometry::Geometry

See uipc::geometry::Geometry

Type Name
AttributeCollection m_intances
AttributeCollection m_meta

Protected Functions

Type Name
virtual void do_collect_attribute_collections (vector< std::string > & names, vector< AttributeCollection * > & collections) override
virtual Json do_to_json () override const
virtual std::string_view get_type () noexcept override const

Protected Functions inherited from uipc::geometry::Geometry

See uipc::geometry::Geometry

Type Name
virtual void do_collect_attribute_collections (vector< std::string > & names, vector< AttributeCollection * > & collections) override
virtual Json do_to_json () override const

Protected Functions inherited from uipc::geometry::IGeometry

See uipc::geometry::IGeometry

Type Name
virtual void do_collect_attribute_collections (vector< std::string > & names, vector< AttributeCollection * > & collections) = 0
virtual Json do_to_json () const = 0
virtual std::string_view get_type () noexcept const = 0

Detailed Description

In \(\mathbb{R}^3\), a simplicial complex is defined as follows: $$ K = (V, E, F, T), $$ where \(V\) is the set of vertices, \(E\) is the set of edges, \(F\) is the set of triangles, and \(T\) is the set of tetrahedra.

See also: Tutorial/Geometry

Public Types Documentation

typedef CEdgeAttributes

using uipc::geometry::SimplicialComplex::CEdgeAttributes =  SimplicialComplexAttributes<true, 1>;

typedef CTetrahedronAttributes

using uipc::geometry::SimplicialComplex::CTetrahedronAttributes =  SimplicialComplexAttributes<true, 3>;

typedef CTriangleAttributes

using uipc::geometry::SimplicialComplex::CTriangleAttributes =  SimplicialComplexAttributes<true, 2>;

typedef CVertexAttributes

using uipc::geometry::SimplicialComplex::CVertexAttributes =  SimplicialComplexAttributes<true, 0>;

typedef EdgeAttributes

Alias for the edge attributes.

using uipc::geometry::SimplicialComplex::EdgeAttributes =  SimplicialComplexAttributes<false, 1>;

See also: SimplicialComplexAttributes


typedef TetrahedronAttributes

Alias for the tetrahedron attributes.

using uipc::geometry::SimplicialComplex::TetrahedronAttributes =  SimplicialComplexAttributes<false, 3>;

See also: SimplicialComplexAttributes


typedef TriangleAttributes

Alias for the triangle attributes.

using uipc::geometry::SimplicialComplex::TriangleAttributes =  SimplicialComplexAttributes<false, 2>;

See also: SimplicialComplexAttributes


typedef VertexAttributes

Alias for the vertex attributes.

using uipc::geometry::SimplicialComplex::VertexAttributes =  SimplicialComplexAttributes<false, 0>;

See also: SimplicialComplexAttributes


Public Functions Documentation

function SimplicialComplex [1/3]

uipc::geometry::SimplicialComplex::SimplicialComplex () 

function SimplicialComplex [2/3]

uipc::geometry::SimplicialComplex::SimplicialComplex (
    const SimplicialComplex & o
) = default

function SimplicialComplex [3/3]

uipc::geometry::SimplicialComplex::SimplicialComplex (
    SimplicialComplex && o
) = default

function dim

Get the dimension of the simplicial complex.

IndexT uipc::geometry::SimplicialComplex::dim () noexcept const

Return the maximum dimension of the simplices in the simplicial complex.

Returns:

IndexT


function edges [1/2]

A wrapper of the edges and its attributes of the simplicial complex.

EdgeAttributes uipc::geometry::SimplicialComplex::edges () noexcept

Returns:

EdgeAttributes


function edges [2/2]

CEdgeAttributes uipc::geometry::SimplicialComplex::edges () noexcept const

function operator=

SimplicialComplex & uipc::geometry::SimplicialComplex::operator= (
    const SimplicialComplex & o
) = delete

function operator=

SimplicialComplex & uipc::geometry::SimplicialComplex::operator= (
    SimplicialComplex && o
) = delete

function positions [1/2]

Get the positions of the vertices.

AttributeSlot < Vector3 > & uipc::geometry::SimplicialComplex::positions () noexcept

Returns:

AttributeSlot<Vector3>&


function positions [2/2]

A short cut to get the positions of the vertices.

const AttributeSlot < Vector3 > & uipc::geometry::SimplicialComplex::positions () noexcept const

Returns:

const AttributeSlot<Vector3>&


function tetrahedra [1/2]

A wrapper of the tetrahedra and its attributes of the simplicial complex.

TetrahedronAttributes uipc::geometry::SimplicialComplex::tetrahedra () noexcept

Returns:

TetrahedronAttributes


function tetrahedra [2/2]

CTetrahedronAttributes uipc::geometry::SimplicialComplex::tetrahedra () noexcept const

function transforms [1/2]

A short-cut to get the non-const transforms attribute slot.

AttributeSlot < Matrix4x4 > & uipc::geometry::SimplicialComplex::transforms () 

Returns:

The attribute slot of the non-const transforms.


function transforms [2/2]

A short-cut to get the const transforms attribute slot.

const AttributeSlot < Matrix4x4 > & uipc::geometry::SimplicialComplex::transforms () const

Returns:

The attribute slot of the const transforms.


function triangles [1/2]

A wrapper of the triangles and its attributes of the simplicial complex.

TriangleAttributes uipc::geometry::SimplicialComplex::triangles () noexcept

Returns:

TriangleAttributes


function triangles [2/2]

CTriangleAttributes uipc::geometry::SimplicialComplex::triangles () noexcept const

function vertices [1/2]

A wrapper of the vertices and its attributes of the simplicial complex.

VertexAttributes uipc::geometry::SimplicialComplex::vertices () noexcept

Returns:

VertexAttributeInfo


function vertices [2/2]

CVertexAttributes uipc::geometry::SimplicialComplex::vertices () noexcept const

Protected Functions Documentation

function do_collect_attribute_collections

virtual void uipc::geometry::SimplicialComplex::do_collect_attribute_collections (
    vector< std::string > & names,
    vector< AttributeCollection * > & collections
) override

Implements uipc::geometry::Geometry::do_collect_attribute_collections


function do_to_json

virtual Json uipc::geometry::SimplicialComplex::do_to_json () override const

Implements uipc::geometry::Geometry::do_to_json


function get_type

virtual std::string_view uipc::geometry::SimplicialComplex::get_type () noexcept override const

Implements uipc::geometry::IGeometry::get_type


Friends Documentation

friend formatter< SimplicialComplex >

struct uipc::geometry::SimplicialComplex::formatter< SimplicialComplex > (
    fmt::formatter< SimplicialComplex >
) 


The documentation for this class was generated from the following file include/uipc/geometry/simplicial_complex.h