Wildmeshing Toolkit
wmtk::invariants::Invariant Class Reference

#include <Invariant.hpp>

Inheritance diagram for wmtk::invariants::Invariant:
[legend]
Collaboration diagram for wmtk::invariants::Invariant:
[legend]

Public Member Functions

virtual bool before (const simplex::Simplex &t) const
 
virtual bool after (const std::vector< Tuple > &top_dimension_tuples_before, const std::vector< Tuple > &top_dimension_tuples_after) const
 
 Invariant (const Mesh &m)
 
 Invariant (const Mesh &m, bool use_before, bool use_old_state_in_after, bool use_new_state_in_after)
 
virtual ~Invariant ()
 
const Meshmesh () const
 
virtual bool directly_modified_after (const std::vector< simplex::Simplex > &simplices_before, const std::vector< simplex::Simplex > &simplices_after) const
 
bool use_before () const
 
bool use_after () const
 
bool use_old_state_in_after () const
 
bool use_new_state_in_after () const
 

Private Member Functions

const std::vector< Tupleget_top_dimension_cofaces (const std::vector< simplex::Simplex > &simplices) const
 

Private Attributes

const Meshm_mesh
 
const bool m_use_before = true
 
const bool m_use_old_state_in_after = true
 
const bool m_use_new_state_in_after = true
 

Detailed Description

Definition at line 11 of file Invariant.hpp.

Constructor & Destructor Documentation

◆ Invariant() [1/2]

wmtk::invariants::Invariant::Invariant ( const Mesh m)

Definition at line 10 of file Invariant.cpp.

◆ Invariant() [2/2]

wmtk::invariants::Invariant::Invariant ( const Mesh m,
bool  use_before,
bool  use_old_state_in_after,
bool  use_new_state_in_after 
)

Definition at line 13 of file Invariant.cpp.

◆ ~Invariant()

wmtk::invariants::Invariant::~Invariant ( )
virtualdefault

Member Function Documentation

◆ after()

bool wmtk::invariants::Invariant::after ( const std::vector< Tuple > &  top_dimension_tuples_before,
const std::vector< Tuple > &  top_dimension_tuples_after 
) const
virtual

Reimplemented in wmtk::invariants::MinIncidentValenceInvariant, wmtk::invariants::MaxFunctionInvariant, wmtk::invariants::InvariantCollection, wmtk::invariants::internal::ConstantInvariant, wmtk::invariants::FunctionInvariant, wmtk::invariants::EnvelopeInvariant, and wmtk::SimplexInversionInvariant< T >.

Definition at line 28 of file Invariant.cpp.

Referenced by directly_modified_after().

Here is the caller graph for this function:

◆ before()

bool wmtk::invariants::Invariant::before ( const simplex::Simplex t) const
virtual

Reimplemented in wmtk::invariants::ValenceImprovementInvariant, wmtk::TodoSmallerInvariant, wmtk::TodoLargerInvariant, wmtk::TodoInvariant, wmtk::Swap56EnergyBeforeInvariantDouble, wmtk::Swap56EnergyBeforeInvariant, wmtk::Swap44EnergyBeforeInvariantDouble, wmtk::Swap44EnergyBeforeInvariant, wmtk::Swap32EnergyBeforeInvariantDouble, wmtk::Swap32EnergyBeforeInvariant, wmtk::Swap2dUnroundedVertexInvariant, wmtk::Swap2dEdgeLengthInvariant, wmtk::Swap23EnergyBeforeInvariant, wmtk::RoundedInvariant, wmtk::invariants::NoChildMeshAttachingInvariant, wmtk::invariants::NoBoundaryCollapseToInteriorInvariant, wmtk::MultiMeshEdgeTopologyInvariant, wmtk::MultiMeshMapValidInvariant, wmtk::invariants::MultiMeshLinkConditionInvariant, wmtk::invariants::MinIncidentValenceInvariant, wmtk::invariants::MinEdgeLengthInvariant, wmtk::MaxEdgeLengthInvariant, wmtk::invariants::InvariantCollection, wmtk::invariants::internal::ConstantInvariant, wmtk::invariants::InteriorSimplexInvariant, wmtk::invariants::FrozenOppVertexInvariant, wmtk::invariants::FrozenVertexInvariant, wmtk::EnergyFilterInvariant, wmtk::invariants::EdgeValenceInvariant, wmtk::invariants::MaxFunctionInvariant, wmtk::invariants::uvEdgeInvariant, wmtk::invariants::SeparateSubstructuresInvariant, wmtk::invariants::FusionEdgeInvariant, wmtk::invariants::CollapseSoftEnergyBeforeInvariant, wmtk::invariants::CollapseEnergyBeforeInvariantDouble, wmtk::invariants::CollapseEnergyBeforeInvariant, wmtk::invariants::TriMeshSubstructureTopologyPreservingInvariant, and wmtk::invariants::TetMeshSubstructureTopologyPreservingInvariant.

Definition at line 24 of file Invariant.cpp.

Referenced by wmtk::invariants::FunctionInvariant::after().

Here is the caller graph for this function:

◆ directly_modified_after()

bool wmtk::invariants::Invariant::directly_modified_after ( const std::vector< simplex::Simplex > &  simplices_before,
const std::vector< simplex::Simplex > &  simplices_after 
) const
virtual

Reimplemented in wmtk::invariants::InvariantCollection.

Definition at line 39 of file Invariant.cpp.

References after(), get_top_dimension_cofaces(), m_mesh, wmtk::Mesh::parent_scope(), use_after(), use_new_state_in_after(), and use_old_state_in_after().

Here is the call graph for this function:

◆ get_top_dimension_cofaces()

const std::vector< Tuple > wmtk::invariants::Invariant::get_top_dimension_cofaces ( const std::vector< simplex::Simplex > &  simplices) const
private

Definition at line 77 of file Invariant.cpp.

References wmtk::simplex::SimplexCollection::add(), m_mesh, mesh(), wmtk::simplex::SimplexCollection::simplex_vector(), wmtk::simplex::SimplexCollection::simplex_vector_tuples(), wmtk::simplex::SimplexCollection::sort_and_clean(), wmtk::simplex::top_dimension_cofaces(), and wmtk::Mesh::top_simplex_type().

Referenced by directly_modified_after().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mesh()

const Mesh & wmtk::invariants::Invariant::mesh ( ) const

Definition at line 35 of file Invariant.cpp.

References m_mesh.

Referenced by wmtk::invariants::EnvelopeInvariant::after(), wmtk::invariants::FunctionInvariant::after(), wmtk::invariants::InvariantCollection::after(), wmtk::invariants::MaxFunctionInvariant::after(), wmtk::invariants::MinIncidentValenceInvariant::after(), wmtk::invariants::TetMeshSubstructureTopologyPreservingInvariant::before(), wmtk::invariants::TriMeshSubstructureTopologyPreservingInvariant::before(), wmtk::invariants::CollapseEnergyBeforeInvariant::before(), wmtk::invariants::CollapseEnergyBeforeInvariantDouble::before(), wmtk::invariants::CollapseSoftEnergyBeforeInvariant::before(), wmtk::invariants::FusionEdgeInvariant::before(), wmtk::invariants::SeparateSubstructuresInvariant::before(), wmtk::invariants::uvEdgeInvariant::before(), wmtk::operations::Operation::before(), wmtk::invariants::EdgeValenceInvariant::before(), wmtk::EnergyFilterInvariant::before(), wmtk::invariants::FrozenVertexInvariant::before(), wmtk::invariants::FrozenOppVertexInvariant::before(), wmtk::invariants::InteriorSimplexInvariant::before(), wmtk::invariants::InvariantCollection::before(), wmtk::MaxEdgeLengthInvariant::before(), wmtk::invariants::MinEdgeLengthInvariant::before(), wmtk::invariants::MultiMeshLinkConditionInvariant::before(), wmtk::MultiMeshMapValidInvariant::before(), wmtk::MultiMeshEdgeTopologyInvariant::before(), wmtk::invariants::NoBoundaryCollapseToInteriorInvariant::before(), wmtk::invariants::NoChildMeshAttachingInvariant::before(), wmtk::RoundedInvariant::before(), wmtk::Swap23EnergyBeforeInvariant::before(), wmtk::Swap2dEdgeLengthInvariant::before(), wmtk::Swap2dUnroundedVertexInvariant::before(), wmtk::Swap32EnergyBeforeInvariant::before(), wmtk::Swap32EnergyBeforeInvariantDouble::before(), wmtk::Swap44EnergyBeforeInvariant::before(), wmtk::Swap44EnergyBeforeInvariantDouble::before(), wmtk::Swap56EnergyBeforeInvariant::before(), wmtk::Swap56EnergyBeforeInvariantDouble::before(), wmtk::TodoInvariant::before(), wmtk::TodoLargerInvariant::before(), wmtk::TodoSmallerInvariant::before(), wmtk::invariants::ValenceImprovementInvariant::before(), wmtk::invariants::InvariantCollection::directly_modified_after(), get_top_dimension_cofaces(), wmtk::invariants::MinIncidentValenceInvariant::is_greater_min_valence(), and wmtk::invariants::InvariantCollection::operator=().

Here is the caller graph for this function:

◆ use_after()

bool wmtk::invariants::Invariant::use_after ( ) const

Definition at line 69 of file Invariant.cpp.

References use_new_state_in_after(), and use_old_state_in_after().

Referenced by directly_modified_after().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ use_before()

bool wmtk::invariants::Invariant::use_before ( ) const

Definition at line 73 of file Invariant.cpp.

References m_use_before.

◆ use_new_state_in_after()

bool wmtk::invariants::Invariant::use_new_state_in_after ( ) const

Definition at line 65 of file Invariant.cpp.

References m_use_new_state_in_after.

Referenced by directly_modified_after(), and use_after().

Here is the caller graph for this function:

◆ use_old_state_in_after()

bool wmtk::invariants::Invariant::use_old_state_in_after ( ) const

Definition at line 61 of file Invariant.cpp.

References m_use_old_state_in_after.

Referenced by directly_modified_after(), and use_after().

Here is the caller graph for this function:

Member Data Documentation

◆ m_mesh

const Mesh& wmtk::invariants::Invariant::m_mesh
private

Definition at line 45 of file Invariant.hpp.

Referenced by directly_modified_after(), get_top_dimension_cofaces(), and mesh().

◆ m_use_before

const bool wmtk::invariants::Invariant::m_use_before = true
private

Definition at line 46 of file Invariant.hpp.

Referenced by use_before().

◆ m_use_new_state_in_after

const bool wmtk::invariants::Invariant::m_use_new_state_in_after = true
private

Definition at line 48 of file Invariant.hpp.

Referenced by use_new_state_in_after().

◆ m_use_old_state_in_after

const bool wmtk::invariants::Invariant::m_use_old_state_in_after = true
private

Definition at line 47 of file Invariant.hpp.

Referenced by use_old_state_in_after().


The documentation for this class was generated from the following files: