Wildmeshing Toolkit
|
#include <TriMesh.hpp>
Classes | |
class | TriMeshOperationExecutor |
Public Member Functions | |
TriMesh () | |
TriMesh (const TriMesh &o)=delete | |
TriMesh & | operator= (const TriMesh &o)=delete |
TriMesh (TriMesh &&o) | |
TriMesh & | operator= (TriMesh &&o) |
~TriMesh () override | |
void | make_cached_accessors () |
Tuple | switch_tuple (const Tuple &tuple, PrimitiveType type) const final override |
switch the orientation of the Tuple of the given dimension More... | |
bool | is_ccw (const Tuple &tuple) const final override |
TODO this needs dimension? More... | |
bool | is_boundary (PrimitiveType pt, const Tuple &tuple) const final override |
check if a simplex (encoded as a tuple/primitive pair) lies on a boundary or not More... | |
bool | is_boundary_vertex (const Tuple &tuple) const |
bool | is_boundary_edge (const Tuple &tuple) const |
void | initialize (Eigen::Ref< const RowVectors3l > FV, Eigen::Ref< const RowVectors3l > FE, Eigen::Ref< const RowVectors3l > FF, Eigen::Ref< const VectorXl > VF, Eigen::Ref< const VectorXl > EF) |
void | initialize (Eigen::Ref< const RowVectors3l > F, bool make_free=false) |
void | initialize_free (int64_t count) |
bool | is_valid (const Tuple &tuple) const final override |
check validity of tuple including its hash More... | |
bool | is_connectivity_valid () const final override |
std::vector< std::vector< TypedAttributeHandle< int64_t > > > | connectivity_attributes () const override |
Returns a vector of vectors of attribute handles. More... | |
Tuple | switch_vertex (const Tuple &tuple) const |
Tuple | switch_edge (const Tuple &tuple) const |
Tuple | switch_face (const Tuple &tuple) const |
std::vector< Tuple > | orient_vertices (const Tuple &t) const override |
bool | is_boundary (const simplex::Simplex &tuple) const |
check if a simplex lies on a boundary or not More... | |
virtual bool | is_boundary (PrimitiveType, const Tuple &tuple) const=0 |
check if a simplex (encoded as a tuple/primitive pair) lies on a boundary or not More... | |
Public Member Functions inherited from wmtk::MeshCRTP< TriMesh > | |
TriMesh & | derived () |
CRTP utility to extract the derived type of this. More... | |
const TriMesh & | derived () const |
CRTP utility to extract the derived type of this with constnesss. More... | |
Tuple | switch_tuple (const Tuple &tuple, PrimitiveType type) const override |
switch the orientation of the Tuple of the given dimension More... | |
Tuple | switch_tuples (const Tuple &tuple, const ContainerType &op_sequence) const |
Performs a sequence of switch_tuple operations in the order specified in op_sequence. More... | |
Tuple | switch_tuples (const Tuple &tuple, const std::initializer_list< PrimitiveType > &op_sequence) const |
annoying initializer list prototype to catch switch_tuples(t, {PV,PE}) More... | |
bool | is_ccw (const Tuple &tuple) const override |
returns if a tuple is counterclockwise or not More... | |
bool | is_boundary (PrimitiveType pt, const Tuple &tuple) const override |
returns if a simplex is on the boundary of hte mesh. For anything but dimension - 1 this checks if this is the face of any boundary dimension-1 facet More... | |
attribute::Accessor< T, TriMesh, Dim > | create_accessor (const TypedAttributeHandle< T > &handle) |
constructs an accessor that is aware of the derived mesh's type More... | |
attribute::Accessor< T, TriMesh, Dim > | create_accessor (const attribute::MeshAttributeHandle &handle) |
constructs a accessor that is aware of the derived mesh's type More... | |
const attribute::Accessor< T, TriMesh, Dim > | create_const_accessor (const attribute::TypedAttributeHandle< T > &handle) const |
constructs a const accessor that is aware of the derived mesh's type More... | |
const attribute::Accessor< T, TriMesh, Dim > | create_const_accessor (const attribute::MeshAttributeHandle &handle) const |
constructs a const accessor that is aware of the derived mesh's type More... | |
Mesh (const int64_t &dimension) | |
Mesh (const int64_t &dimension, const int64_t &max_primitive_type_id, PrimitiveType hash_type) | |
Mesh (Mesh &&other) | |
Mesh (const Mesh &other)=delete | |
Public Member Functions inherited from wmtk::Mesh | |
int64_t | top_cell_dimension () const |
PrimitiveType | top_simplex_type () const |
bool | is_free () const |
std::map< std::string, const wmtk::utils::Hashable * > | child_hashables () const override |
std::map< std::string, std::size_t > | child_hashes () const override |
Mesh (const int64_t &dimension) | |
Mesh (const int64_t &dimension, const int64_t &max_primitive_type_id, PrimitiveType hash_type) | |
Mesh (Mesh &&other) | |
Mesh (const Mesh &other)=delete | |
Mesh & | operator= (const Mesh &other)=delete |
Mesh & | operator= (Mesh &&other) |
virtual | ~Mesh () |
void | serialize (MeshWriter &writer, const Mesh *local_root=nullptr) const |
std::vector< Tuple > | get_all (PrimitiveType type) const |
Generate a vector of Tuples from global vertex/edge/triangle/tetrahedron index. More... | |
std::vector< simplex::IdSimplex > | get_all_id_simplex (PrimitiveType type) const |
simplex::IdSimplex | get_id_simplex (const Tuple &tuple, PrimitiveType pt) const |
Retrieve the IdSimplex that is represented by the tuple and primitive type. More... | |
simplex::IdSimplex | get_id_simplex (const simplex::Simplex &s) const |
simplex::Simplex | get_simplex (const simplex::IdSimplex &s) const |
Convert an IdSimplex into a Simplex. More... | |
Tuple | get_tuple_from_id_simplex (const simplex::IdSimplex &s) const |
virtual std::tuple< std::vector< std::vector< int64_t > >, std::vector< std::vector< int64_t > > > | consolidate () |
Consolidate the attributes, moving all valid simplexes at the beginning of the corresponding vector. More... | |
std::vector< attribute::MeshAttributeHandle::HandleVariant > | builtin_attributes () const |
std::vector< attribute::MeshAttributeHandle::HandleVariant > | custom_attributes () const |
template<typename T > | |
attribute::MeshAttributeHandle | register_attribute (const std::string &name, PrimitiveType type, int64_t size, bool replace=false, T default_value=T(0)) |
template<typename T > | |
attribute::TypedAttributeHandle< T > | register_attribute_typed (const std::string &name, PrimitiveType type, int64_t size, bool replace=false, T default_value=T(0)) |
template<typename T > | |
bool | has_attribute (const std::string &name, const PrimitiveType ptype) const |
template<typename T > | |
attribute::MeshAttributeHandle | get_attribute_handle (const std::string &name, const PrimitiveType ptype) const |
template<typename T > | |
attribute::TypedAttributeHandle< T > | get_attribute_handle_typed (const std::string &name, const PrimitiveType ptype) const |
template<typename T , int D = Eigen::Dynamic> | |
attribute::Accessor< T, Mesh, D > | create_accessor (const attribute::MeshAttributeHandle &handle) |
template<typename T , int D = Eigen::Dynamic> | |
const attribute::Accessor< T, Mesh, D > | create_const_accessor (const attribute::MeshAttributeHandle &handle) const |
template<typename T , int D = Eigen::Dynamic> | |
attribute::Accessor< T, Mesh, D > | create_accessor (const TypedAttributeHandle< T > &handle) |
template<typename T , int D = Eigen::Dynamic> | |
const attribute::Accessor< T, Mesh, D > | create_const_accessor (const TypedAttributeHandle< T > &handle) const |
template<typename T > | |
int64_t | get_attribute_dimension (const TypedAttributeHandle< T > &handle) const |
template<typename T > | |
const T & | get_attribute_default_value (const TypedAttributeHandle< T > &handle) const |
template<typename T > | |
std::string | get_attribute_name (const TypedAttributeHandle< T > &handle) const |
std::string | get_attribute_name (const attribute::MeshAttributeHandle::HandleVariant &handle) const |
void | clear_attributes (const std::vector< attribute::MeshAttributeHandle::HandleVariant > &keep_attributes) |
Remove all custom attributes besides the one passed in. More... | |
void | clear_attributes () |
void | clear_attributes (const std::vector< attribute::MeshAttributeHandle > &keep_attributes) |
void | delete_attribute (const attribute::MeshAttributeHandle &to_delete) |
void | delete_attribute (const attribute::MeshAttributeHandle::HandleVariant &to_delete) |
multimesh::attribute::AttributeScopeHandle | create_scope () |
template<typename Functor , typename... Args> | |
decltype(auto) | parent_scope (Functor &&f, Args &&... args) const |
Evaluate the passed in function inside the parent scope. More... | |
const attribute::FlagAccessor< Mesh > | get_flag_accessor (PrimitiveType type) const |
const attribute::FlagAccessor< Mesh > | get_const_flag_accessor (PrimitiveType type) const |
bool | operator== (const Mesh &other) const |
void | assert_capacity_valid () const |
template<typename ContainerType > | |
Tuple | switch_tuples (const Tuple &tuple, const ContainerType &op_sequence) const |
Tuple | switch_tuples (const Tuple &tuple, const std::initializer_list< PrimitiveType > &op_sequence) const |
template<typename ContainerType > | |
Tuple | switch_tuples_unsafe (const Tuple &tuple, const ContainerType &op_sequence) const |
Tuple | switch_tuples_unsafe (const Tuple &tuple, const std::initializer_list< PrimitiveType > &op_sequence) const |
void | set_capacities_from_flags () |
int64_t | capacity (PrimitiveType type) const |
read in the m_capacities return the upper bound for the number of entities of the given dimension More... | |
bool | is_boundary (const simplex::Simplex &tuple) const |
check if a simplex lies on a boundary or not More... | |
bool | is_hash_valid (const Tuple &tuple, const attribute::Accessor< int64_t > &hash_accessor) const |
bool | is_hash_valid (const Tuple &tuple) const |
bool | is_removed (const Tuple &tuple) const |
bool | is_removed (const Tuple &tuple, PrimitiveType pt) const |
bool | is_valid (const simplex::Simplex &s) const |
Check if the cached id in a simplex is up-to-date. More... | |
bool | is_multi_mesh_root () const |
return true if this mesh is the root of a multimesh tree More... | |
Mesh & | get_multi_mesh_root () |
returns a reference to the root of a multimesh tree More... | |
const Mesh & | get_multi_mesh_root () const |
returns a const reference to the root of a multimesh tree More... | |
Mesh & | get_multi_mesh_mesh (const std::vector< int64_t > &absolute_id) |
const Mesh & | get_multi_mesh_mesh (const std::vector< int64_t > &absolute_id) const |
Mesh & | get_multi_mesh_child_mesh (const std::vector< int64_t > &relative_id) |
const Mesh & | get_multi_mesh_child_mesh (const std::vector< int64_t > &relative_id) const |
std::vector< std::shared_ptr< Mesh > > | get_child_meshes () const |
returns the direct multimesh child meshes for the current mesh More... | |
std::vector< std::shared_ptr< Mesh > > | get_all_child_meshes () const |
returns all multimesh child meshes More... | |
std::vector< std::shared_ptr< const Mesh > > | get_all_meshes () const |
returns all meshes in multimesh More... | |
std::vector< int64_t > | absolute_multi_mesh_id () const |
returns a unique identifier for this mesh within a single multimesh structure More... | |
void | register_child_mesh (const std::shared_ptr< Mesh > &child_mesh_ptr, const std::vector< std::array< Tuple, 2 >> &map_tuples) |
register a mesh as the child of this mesh More... | |
void | deregister_child_mesh (const std::shared_ptr< Mesh > &child_mesh_ptr) |
Deregister a child mesh. More... | |
std::vector< simplex::Simplex > | map (const Mesh &other_mesh, const simplex::Simplex &my_simplex) const |
maps a simplex from this mesh to any other mesh More... | |
std::vector< simplex::Simplex > | map (const Mesh &other_mesh, const std::vector< simplex::Simplex > &my_simplices) const |
std::vector< simplex::Simplex > | lub_map (const Mesh &other_mesh, const simplex::Simplex &my_simplex) const |
maps a simplex from this mesh to any other mesh using LUB mesh as root More... | |
std::vector< simplex::Simplex > | lub_map (const Mesh &other_mesh, const std::vector< simplex::Simplex > &my_simplices) const |
simplex::Simplex | map_to_parent (const simplex::Simplex &my_simplex) const |
optimized map from a simplex from this mesh to its direct parent More... | |
simplex::Simplex | map_to_root (const simplex::Simplex &my_simplex) const |
maps a simplex from this mesh to the root mesh More... | |
std::vector< simplex::Simplex > | map_to_child (const Mesh &child_mesh, const simplex::Simplex &my_simplex) const |
optimized map fromsimplex from this mesh to one of its direct children More... | |
std::vector< Tuple > | map_tuples (const Mesh &other_mesh, const simplex::Simplex &my_simplex) const |
maps a simplex from this mesh to any other mesh More... | |
std::vector< Tuple > | map_tuples (const Mesh &other_mesh, PrimitiveType pt, const std::vector< Tuple > &my_simplices) const |
std::vector< Tuple > | lub_map_tuples (const Mesh &other_mesh, const simplex::Simplex &my_simplex) const |
maps a simplex from this mesh to any other mesh using LUB mesh as root More... | |
std::vector< Tuple > | lub_map_tuples (const Mesh &other_mesh, PrimitiveType pt, const std::vector< Tuple > &my_simplices) const |
Tuple | map_to_parent_tuple (const simplex::Simplex &my_simplex) const |
optimized map from a simplex from this mesh to its direct parent More... | |
Tuple | map_to_root_tuple (const simplex::Simplex &my_simplex) const |
maps a simplex from this mesh to the root mesh More... | |
std::vector< Tuple > | map_to_child_tuples (const Mesh &child_mesh, const simplex::Simplex &my_simplex) const |
optimized map fromsimplex from this mesh to one of its direct children More... | |
bool | can_map (const Mesh &other_mesh, const simplex::Simplex &my_simplex) const |
void | update_vertex_operation_hashes (const Tuple &vertex, attribute::Accessor< int64_t > &hash_accessor) |
wrapper function to update hashes (for parent mesh *this and its child meshes) after vertex operations More... | |
bool | has_child_mesh_in_dimension (int64_t dimension) const |
returns if the mesh has a child mesh in the given dimension More... | |
bool | has_child_mesh () const |
bool | is_from_same_multi_mesh_structure (const Mesh &other) const |
template<typename T , int D> | |
auto | create_accessor (const TypedAttributeHandle< T > &handle) -> attribute::Accessor< T, Mesh, D > |
template<typename T , int D> | |
auto | create_const_accessor (const TypedAttributeHandle< T > &handle) const -> const attribute::Accessor< T, Mesh, D > |
template<typename T , int D> | |
auto | create_accessor (const attribute::MeshAttributeHandle &handle) -> attribute::Accessor< T, Mesh, D > |
template<typename T , int D> | |
auto | create_const_accessor (const attribute::MeshAttributeHandle &handle) const -> const attribute::Accessor< T, Mesh, D > |
Public Member Functions inherited from wmtk::utils::MerkleTreeInteriorNode | |
std::map< std::string, std::size_t > | child_hashes () const override |
Public Member Functions inherited from wmtk::utils::Hashable | |
Hashable () | |
Hashable (const Hashable &) | |
Hashable (Hashable &&) | |
Hashable & | operator= (const Hashable &) |
Hashable & | operator= (Hashable &&) |
virtual | ~Hashable () |
virtual std::size_t | hash () const |
Protected Member Functions | |
int64_t | id (const Tuple &tuple, PrimitiveType type) const |
int64_t | id_vertex (const Tuple &tuple) const |
int64_t | id_edge (const Tuple &tuple) const |
int64_t | id_face (const Tuple &tuple) const |
Tuple | tuple_from_id (const PrimitiveType type, const int64_t gid) const final override |
internal function that returns the tuple of requested type, and has the global index cid More... | |
Tuple | tuple_from_global_ids (int64_t fid, int64_t eid, int64_t vid) const |
Tuple | vertex_tuple_from_id (int64_t id) const |
Tuple | edge_tuple_from_id (int64_t id) const |
Tuple | face_tuple_from_id (int64_t id) const |
Protected Member Functions inherited from wmtk::MeshCRTP< TriMesh > | |
int64_t | id (const Tuple &tuple, PrimitiveType type) const |
Returns the id of a simplex encoded in a tuple. More... | |
int64_t | id (const simplex::Simplex &s) const final override |
variant of id that can cache internally held values More... | |
int64_t | id (const Tuple &tuple, PrimitiveType type) const |
return the global id of the Tuple of the given dimension More... | |
int64_t | id (const simplex::NavigatableSimplex &s) const |
int64_t | id (const simplex::IdSimplex &s) const |
virtual int64_t | id (const simplex::Simplex &s) const =0 |
Forwarding version of id on simplices that does id caching. More... | |
int64_t | id_virtual (const Tuple &tuple, PrimitiveType type) const final override |
internal utility for overriding the mesh class's id function without having the final override block the derived class's override (we can't have Mesh::id be virtual, MeshCRTP<Derived>::id final override, and TriMesh::id. More... | |
Tuple | tuple_from_id (const PrimitiveType type, const int64_t gid) const override |
internal function that returns the tuple of requested type, and has the global index cid More... | |
Protected Member Functions inherited from wmtk::Mesh | |
attribute::FlagAccessor | get_flag_accessor (PrimitiveType type) |
simplex::NavigatableSimplex | simplex_from_id (const PrimitiveType type, const int64_t gid) const |
std::vector< std::vector< int64_t > > | simplices_to_gids (const std::vector< std::vector< simplex::Simplex >> &simplices) const |
void | reserve_attributes_to_fit () |
reserve space for all attributes data types for all dimensional simplices More... | |
void | reserve_attributes (PrimitiveType type, int64_t size) |
void | reserve_attributes (int64_t dimension, int64_t size) |
void | set_capacities (std::vector< int64_t > capacities) |
void | reserve_more_attributes (PrimitiveType type, int64_t size) |
void | reserve_more_attributes (const std::vector< int64_t > &sizes) |
void | guarantee_more_attributes (PrimitiveType type, int64_t size) |
void | guarantee_more_attributes (const std::vector< int64_t > &sizes) |
void | guarantee_at_least_attributes (PrimitiveType type, int64_t size) |
void | guarantee_at_least_attributes (const std::vector< int64_t > &sizes) |
std::vector< int64_t > | request_simplex_indices (PrimitiveType type, int64_t count) |
bool | is_removed (int64_t index) const |
bool | is_removed (int64_t index, PrimitiveType pt) const |
attribute::AttributeScopeHandle | create_single_mesh_scope () |
int64_t | id (const Tuple &tuple, PrimitiveType type) const |
return the global id of the Tuple of the given dimension More... | |
int64_t | id (const simplex::NavigatableSimplex &s) const |
int64_t | id (const simplex::IdSimplex &s) const |
Static Protected Member Functions | |
static Tuple | with_different_cid (const Tuple &t, int64_t cid) |
Static Protected Member Functions inherited from wmtk::Mesh | |
template<typename T , typename MeshType > | |
static auto & | get_index_access (attribute::Accessor< T, MeshType > &attr) |
template<typename T , typename MeshType > | |
static auto & | get_index_access (const attribute::Accessor< T, MeshType > &attr) |
Protected Attributes | |
attribute::TypedAttributeHandle< int64_t > | m_vf_handle |
attribute::TypedAttributeHandle< int64_t > | m_ef_handle |
attribute::TypedAttributeHandle< int64_t > | m_fv_handle |
attribute::TypedAttributeHandle< int64_t > | m_fe_handle |
attribute::TypedAttributeHandle< int64_t > | m_ff_handle |
std::unique_ptr< attribute::Accessor< int64_t, TriMesh > > | m_vf_accessor = nullptr |
std::unique_ptr< attribute::Accessor< int64_t, TriMesh > > | m_ef_accessor = nullptr |
std::unique_ptr< attribute::Accessor< int64_t, TriMesh > > | m_fv_accessor = nullptr |
std::unique_ptr< attribute::Accessor< int64_t, TriMesh > > | m_fe_accessor = nullptr |
std::unique_ptr< attribute::Accessor< int64_t, TriMesh > > | m_ff_accessor = nullptr |
Protected Attributes inherited from wmtk::Mesh | |
attribute::AttributeManager | m_attribute_manager |
multimesh::MultiMeshManager | m_multi_mesh_manager |
int64_t | m_top_cell_dimension = -1 |
bool | m_is_free = false |
Friends | |
class | MeshCRTP< TriMesh > |
class | operations::utils::MultiMeshEdgeCollapseFunctor |
class | operations::utils::MultiMeshEdgeSplitFunctor |
class | operations::utils::UpdateEdgeOperationMultiMeshMapFunctor |
template<typename U , typename MeshType , int Dim> | |
class | attribute::Accessor |
Definition at line 18 of file TriMesh.hpp.
wmtk::TriMesh::TriMesh | ( | ) |
Definition at line 13 of file TriMesh.cpp.
References wmtk::Edge, make_cached_accessors(), wmtk::Triangle, and wmtk::Vertex.
|
delete |
wmtk::TriMesh::TriMesh | ( | TriMesh && | o | ) |
Definition at line 33 of file TriMesh.cpp.
References m_ef_handle, m_fe_handle, m_ff_handle, m_fv_handle, m_vf_handle, and make_cached_accessors().
|
overridedefault |
|
overridevirtual |
Returns a vector of vectors of attribute handles.
The first index denotes the type of simplex pointed by the attribute (i.e. the index type). As an example, the FV relationship points to vertices so it should be returned in the slot [0].
Implements wmtk::Mesh.
Definition at line 547 of file TriMesh.cpp.
References m_ef_handle, m_fe_handle, m_ff_handle, m_fv_handle, and m_vf_handle.
|
protected |
Definition at line 303 of file TriMesh.cpp.
References wmtk::autogen::tri_mesh::get_tuple_from_simplex_local_edge_id(), wmtk::MeshCRTP< TriMesh >::id(), m_ef_accessor, and m_fe_accessor.
Referenced by tuple_from_id().
|
protected |
Definition at line 317 of file TriMesh.cpp.
References wmtk::autogen::tri_mesh::auto_2d_table_complete_vertex, is_ccw(), and is_valid().
Referenced by tuple_from_id().
|
inlineprotected |
Definition at line 125 of file TriMesh.hpp.
References wmtk::Edge, wmtk::Mesh::is_valid(), m_fe_accessor, m_fv_accessor, wmtk::Tuple::m_global_cid, wmtk::Tetrahedron, wmtk::Triangle, and wmtk::Vertex.
Referenced by wmtk::TriMesh::TriMeshOperationExecutor::get_collapse_simplices_to_delete(), and wmtk::TriMesh::TriMeshOperationExecutor::get_split_simplices_to_delete().
|
inlineprotected |
Definition at line 75 of file TriMesh.hpp.
References wmtk::Edge, and wmtk::MeshCRTP< TriMesh >::id().
|
inlineprotected |
Definition at line 76 of file TriMesh.hpp.
References wmtk::MeshCRTP< TriMesh >::id(), and wmtk::Triangle.
|
inlineprotected |
Definition at line 74 of file TriMesh.hpp.
References wmtk::MeshCRTP< TriMesh >::id(), and wmtk::Vertex.
Referenced by wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::update_ear_replacement().
void wmtk::TriMesh::initialize | ( | Eigen::Ref< const RowVectors3l > | F, |
bool | make_free = false |
||
) |
Definition at line 227 of file TriMesh.cpp.
References initialize(), wmtk::Mesh::is_free(), wmtk::Mesh::m_is_free, and wmtk::trimesh_topology_initialization().
void wmtk::TriMesh::initialize | ( | Eigen::Ref< const RowVectors3l > | FV, |
Eigen::Ref< const RowVectors3l > | FE, | ||
Eigen::Ref< const RowVectors3l > | FF, | ||
Eigen::Ref< const VectorXl > | VF, | ||
Eigen::Ref< const VectorXl > | EF | ||
) |
Definition at line 176 of file TriMesh.cpp.
References wmtk::attribute::IndexFlagAccessor< MeshType >::activate(), wmtk::Mesh::capacity(), wmtk::Edge, wmtk::Mesh::get_flag_accessor(), wmtk::attribute::Accessor< T, MeshType, Dim >::index_access(), wmtk::attribute::FlagAccessor< MeshType >::index_access(), m_ef_handle, m_fe_handle, m_ff_handle, m_fv_handle, m_vf_handle, wmtk::attribute::CachingAccessor< T, Dim >::scalar_attribute(), wmtk::Mesh::set_capacities(), wmtk::Triangle, wmtk::attribute::CachingAccessor< T, Dim >::vector_attribute(), and wmtk::Vertex.
Referenced by wmtk::components::multimesh::axis_aligned_fusion(), wmtk::components::internal::MultiMeshFromTag::compute_substructure_mesh(), initialize(), initialize_free(), and wmtk::components::procedural::make_mesh().
void wmtk::TriMesh::initialize_free | ( | int64_t | count | ) |
Definition at line 236 of file TriMesh.cpp.
References initialize().
Referenced by wmtk::components::internal::MultiMeshFromTag::create_substructure_soup().
bool wmtk::Mesh::is_boundary |
check if a simplex lies on a boundary or not
simplex |
Definition at line 424 of file Mesh.cpp.
Referenced by is_connectivity_valid().
|
finaloverridevirtual |
check if a simplex (encoded as a tuple/primitive pair) lies on a boundary or not
simplex |
Implements wmtk::Mesh.
Definition at line 58 of file TriMesh.cpp.
References wmtk::Edge, is_boundary_edge(), is_boundary_vertex(), wmtk::Tetrahedron, wmtk::Triangle, and wmtk::Vertex.
Referenced by wmtk::components::internal::edge_insertion(), and wmtk::simplex::link_condition().
virtual bool wmtk::Mesh::is_boundary |
check if a simplex (encoded as a tuple/primitive pair) lies on a boundary or not
simplex |
bool wmtk::TriMesh::is_boundary_edge | ( | const Tuple & | tuple | ) | const |
Definition at line 72 of file TriMesh.cpp.
References is_valid(), m_ff_accessor, and wmtk::Tuple::m_local_eid.
Referenced by is_boundary(), is_boundary_vertex(), wmtk::simplex::link_condition(), and TEST_CASE().
bool wmtk::TriMesh::is_boundary_vertex | ( | const Tuple & | tuple | ) | const |
Definition at line 78 of file TriMesh.cpp.
References is_boundary_edge(), switch_edge(), and switch_face().
Referenced by wmtk::function::EdgeValenceEnergy::get_value(), and is_boundary().
|
finaloverridevirtual |
TODO this needs dimension?
m |
Implements wmtk::Mesh.
Definition at line 170 of file TriMesh.cpp.
References wmtk::autogen::tri_mesh::is_ccw(), and is_valid().
Referenced by wmtk::SimplexInversionInvariant< T >::after(), wmtk::mesh_utils::compute_vertex_normal(), face_tuple_from_id(), and switch_tuple().
|
finaloverridevirtual |
Implements wmtk::Mesh.
Definition at line 359 of file TriMesh.cpp.
References wmtk::Mesh::capacity(), wmtk::attribute::CachingAccessor< T, Dim >::const_scalar_attribute(), wmtk::attribute::CachingAccessor< T, Dim >::const_vector_attribute(), wmtk::Edge, wmtk::Mesh::get_flag_accessor(), wmtk::attribute::Accessor< T, MeshType, Dim >::index_access(), wmtk::attribute::FlagAccessor< MeshType >::index_access(), wmtk::attribute::IndexFlagAccessor< MeshType >::is_active(), is_boundary(), wmtk::logger(), m_ef_handle, m_fe_handle, m_ff_handle, m_fv_handle, m_vf_handle, wmtk::Triangle, and wmtk::Vertex.
Referenced by wmtk::components::internal::MultiMeshFromTag::compute_substructure_mesh(), is_valid(), wmtk::components::isotropic_remeshing::isotropic_remeshing(), and TEST_CASE().
|
finaloverridevirtual |
check validity of tuple including its hash
tuple | the tuple to be checked |
type | only the top cell dimension, other validity follows with assumption of manifoldness. 2->triangle, 3->tetrahedron |
Reimplemented from wmtk::Mesh.
Definition at line 329 of file TriMesh.cpp.
References is_connectivity_valid(), wmtk::Mesh::is_valid(), wmtk::logger(), wmtk::Tuple::m_global_cid, wmtk::Tuple::m_local_eid, wmtk::Tuple::m_local_vid, and wmtk::autogen::tri_mesh::tuple_is_valid_for_ccw().
Referenced by face_tuple_from_id(), is_boundary_edge(), is_ccw(), wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::operator()(), and switch_tuple().
void wmtk::TriMesh::make_cached_accessors | ( | ) |
Definition at line 24 of file TriMesh.cpp.
References m_ef_accessor, m_ef_handle, m_fe_accessor, m_fe_handle, m_ff_accessor, m_ff_handle, m_fv_accessor, m_fv_handle, m_vf_accessor, and m_vf_handle.
Referenced by operator=(), and TriMesh().
Definition at line 44 of file TriMesh.cpp.
References m_ef_handle, m_fe_handle, m_ff_handle, m_fv_handle, m_vf_handle, make_cached_accessors(), and wmtk::Mesh::operator=().
Implements wmtk::Mesh.
Definition at line 562 of file TriMesh.cpp.
References wmtk::Tuple::m_global_cid.
Definition at line 117 of file TriMesh.hpp.
References wmtk::Edge, and switch_tuple().
Referenced by wmtk::mesh_utils::compute_face_normal_area_weighted(), wmtk::TriMesh::TriMeshOperationExecutor::get_collapse_simplices_to_delete(), is_boundary_vertex(), and wmtk::simplex::open_star().
Definition at line 121 of file TriMesh.hpp.
References switch_tuple(), and wmtk::Triangle.
Referenced by is_boundary_vertex().
|
finaloverridevirtual |
switch the orientation of the Tuple of the given dimension
m | |
type | d-0 -> switch vertex d-1 -> switch edge d-2 -> switch face d-3 -> switch tetrahedron |
Implements wmtk::Mesh.
Definition at line 99 of file TriMesh.cpp.
References wmtk::Edge, wmtk::MeshCRTP< TriMesh >::id(), is_ccw(), is_valid(), wmtk::autogen::tri_mesh::local_switch_tuple(), m_fe_accessor, m_ff_accessor, m_fv_accessor, wmtk::Tuple::m_local_eid, wmtk::Tuple::m_local_fid, wmtk::Tuple::m_local_vid, wmtk::Tetrahedron, wmtk::Triangle, and wmtk::Vertex.
Referenced by wmtk::SimplexInversionInvariant< T >::after(), wmtk::components::internal::edge_insertion(), wmtk::operations::tri_mesh::EdgeOperationData::input_endpoints(), wmtk::simplex::link_condition(), wmtk::simplex::link_condition_closed_trimesh(), switch_edge(), switch_face(), and switch_vertex().
Definition at line 113 of file TriMesh.hpp.
References switch_tuple(), and wmtk::Vertex.
Referenced by wmtk::mesh_utils::compute_face_normal_area_weighted(), wmtk::mesh_utils::compute_vertex_normal(), and wmtk::function::EdgeValenceEnergy::get_value().
|
protected |
Definition at line 245 of file TriMesh.cpp.
References m_fe_accessor, and m_fv_accessor.
Referenced by wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::operator()(), and wmtk::operations::utils::UpdateEdgeOperationMultiMeshMapFunctor::update_ear_replacement().
|
finaloverrideprotectedvirtual |
internal function that returns the tuple of requested type, and has the global index cid
gid |
Implements wmtk::Mesh.
Definition at line 268 of file TriMesh.cpp.
References wmtk::Edge, edge_tuple_from_id(), face_tuple_from_id(), wmtk::Tetrahedron, wmtk::Triangle, wmtk::Vertex, and vertex_tuple_from_id().
|
protected |
Definition at line 289 of file TriMesh.cpp.
References wmtk::autogen::tri_mesh::get_tuple_from_simplex_local_vertex_id(), wmtk::MeshCRTP< TriMesh >::id(), m_fv_accessor, and m_vf_accessor.
Referenced by tuple_from_id().
Definition at line 540 of file TriMesh.cpp.
References wmtk::Tuple::m_global_cid.
|
friend |
Definition at line 26 of file TriMesh.hpp.
Definition at line 125 of file TriMesh.hpp.
|
friend |
Definition at line 22 of file TriMesh.hpp.
|
friend |
Definition at line 23 of file TriMesh.hpp.
|
friend |
Definition at line 24 of file TriMesh.hpp.
|
protected |
Definition at line 98 of file TriMesh.hpp.
Referenced by edge_tuple_from_id(), and make_cached_accessors().
|
protected |
Definition at line 91 of file TriMesh.hpp.
Referenced by connectivity_attributes(), initialize(), is_connectivity_valid(), make_cached_accessors(), operator=(), and TriMesh().
|
protected |
Definition at line 100 of file TriMesh.hpp.
Referenced by edge_tuple_from_id(), id(), make_cached_accessors(), switch_tuple(), and tuple_from_global_ids().
|
protected |
Definition at line 94 of file TriMesh.hpp.
Referenced by connectivity_attributes(), initialize(), is_connectivity_valid(), make_cached_accessors(), operator=(), and TriMesh().
|
protected |
Definition at line 101 of file TriMesh.hpp.
Referenced by is_boundary_edge(), make_cached_accessors(), and switch_tuple().
|
protected |
Definition at line 95 of file TriMesh.hpp.
Referenced by connectivity_attributes(), initialize(), is_connectivity_valid(), make_cached_accessors(), operator=(), and TriMesh().
|
protected |
Definition at line 99 of file TriMesh.hpp.
Referenced by id(), make_cached_accessors(), switch_tuple(), tuple_from_global_ids(), and vertex_tuple_from_id().
|
protected |
Definition at line 93 of file TriMesh.hpp.
Referenced by connectivity_attributes(), initialize(), is_connectivity_valid(), make_cached_accessors(), operator=(), and TriMesh().
|
protected |
Definition at line 97 of file TriMesh.hpp.
Referenced by make_cached_accessors(), and vertex_tuple_from_id().
|
protected |
Definition at line 90 of file TriMesh.hpp.
Referenced by connectivity_attributes(), initialize(), is_connectivity_valid(), make_cached_accessors(), operator=(), and TriMesh().