Wildmeshing Toolkit
wmtk::components Namespace Reference

Namespaces

 adaptive_tessellation
 
 input
 
 internal
 
 isotropic_remeshing
 
 longest_edge_split
 
 multimesh
 
 output
 
 procedural
 
 shortest_edge_collapse
 
 triangle_insertion
 
 utils
 

Classes

struct  EdgeInsertionMeshes
 
class  TagAttribute
 
class  Marching
 This component implements a marching triangle/tetrahedra. More...
 
struct  MarchingOptions
 
struct  FusionOptions
 
struct  MultimeshUVOptions
 
struct  MultimeshBOptions
 
struct  MultimeshTOptions
 
struct  PeriodicOptimizationOptions
 
class  TagIntersection
 
class  Random
 
class  AABBWrapper
 
class  ElementInQueue
 
struct  cmp_s
 
struct  cmp_l
 
class  ToPtsOptions
 
struct  EnvelopeOptions
 
struct  WildMeshingOptions
 
struct  WildmeshingOptionsAttributes
 
struct  WildmeshingOptionsEnvelopeMesh
 
struct  WildmeshingOptionsEnvelope
 
struct  WildmeshingOptions
 

Typedefs

using Vector3 = Eigen::Vector3d
 
using Vector3i = Eigen::Vector3i
 

Functions

std::shared_ptr< MeshCDT (const TriMesh &trimesh, const bool inner_only, const bool rational_output)
 
template<int D>
RowVectors< double, D > points_to_rowvectors (const PointMesh &point_cloud, const attribute::MeshAttributeHandle &pts_attr)
 
template<int D, typename MeshT >
std::shared_ptr< MeshT > delaunay_exec (const PointMesh &point_cloud, const attribute::MeshAttributeHandle &pts_attr, const std::string &output_pos_attr_name)
 
std::shared_ptr< Meshdelaunay (const PointMesh &point_cloud, const attribute::MeshAttributeHandle &pts_attr, const std::string &output_pos_attr_name)
 
EdgeInsertionMeshes edge_insertion (EdgeMesh &input_mesh, TriMesh &bg_mesh)
 
void export_cache (const utils::Paths &paths, const nlohmann::json &j, io::Cache &cache)
 
void get_all_meshes (const utils::Paths &paths, const nlohmann::json &j, io::Cache &cache)
 
void import_cache (const utils::Paths &paths, const nlohmann::json &j, io::Cache &cache)
 
wmtk::io::Cache run_components (const nlohmann::json &json_input_file, bool strict)
 
void marching (Mesh &mesh, const MarchingOptions &options)
 Perform maching tetrahedra/triangles. More...
 
void mesh_info (const utils::Paths &paths, const nlohmann::json &j, io::Cache &cache)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (FusionOptions, input, fusion_X, fusion_Y, fusion_Z, name)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (MultimeshUVOptions, type, parent, child, name)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (MultimeshBOptions, type, name, mesh, position, tag_name)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (MultimeshTOptions, type, name, mesh, position, tag, tag_value, primitive)
 
void multimesh_from_tag (std::shared_ptr< Mesh > &mesh_in, attribute::MeshAttributeHandle &substructure_label, int64_t substructure_value)
 Generate a multi-mesh from a mesh with a tag that represents the substructure, the mesh is changed. More...
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (PeriodicOptimizationOptions, periodic_mesh, position_mesh, output, envelope_size, target_max_amips, target_edge_length, passes, intermediate_output)
 
void periodic_optimization (const utils::Paths &paths, const nlohmann::json &j, io::Cache &cache)
 
auto gather_attributes (io::Cache &cache, Mesh &mesh, const internal::RegularSpaceOptions &options)
 
void regular_space (const utils::Paths &paths, const nlohmann::json &j, io::Cache &cache)
 
auto gather_attributes (io::Cache &cache, const Mesh &mesh, const internal::TagIntersectionOptions &options)
 
int mod3 (int j)
 
void set_intersection (const std::unordered_set< int > &s1, const std::unordered_set< int > &s2, std::vector< int > &v)
 
template<typename T >
void vector_unique (std::vector< T > &v)
 
bool is_out_envelope (const std::array< Vector3, 3 > &vs, const AABBWrapper &tree)
 
double get_angle_cos (const Vector3 &p, const Vector3 &p1, const Vector3 &p2)
 
void remove_duplicates (std::vector< Vector3 > &input_vertices, std::vector< Vector3i > &input_faces, const double duplicate_tol)
 
void collapsing (std::vector< Vector3 > &input_vertices, std::vector< Vector3i > &input_faces, const AABBWrapper &tree, std::vector< bool > &v_is_removed, std::vector< bool > &f_is_removed, std::vector< std::unordered_set< int >> &conn_fs)
 
void swapping (std::vector< Vector3 > &input_vertices, std::vector< Vector3i > &input_faces, const AABBWrapper &tree, std::vector< bool > &v_is_removed, std::vector< bool > &f_is_removed, std::vector< std::unordered_set< int >> &conn_fs)
 
nlohmann::json simplify (std::vector< Vector3 > &input_vertices, std::vector< Vector3i > &input_faces, const AABBWrapper &tree, const double duplicate_tol)
 
std::tuple< std::shared_ptr< TriMesh >, nlohmann::jsontetwild_simplification (const TriMesh &mesh, const std::string &postion_attr_name, double main_eps, bool relative=true, double duplicate_tol=-1, bool use_sampling=true)
 Perform the simplification from the original tetwild. More...
 
std::shared_ptr< PointMeshto_points (const Mesh &mesh, const attribute::MeshAttributeHandle &pts_attr, const ToPtsOptions &options, const std::string &output_pos_attr_name)
 
std::vector< std::pair< std::shared_ptr< Mesh >, std::string > > wildmeshing (const WildMeshingOptions &option)
 
void adjust_sizing_field (Mesh &m, const TypedAttributeHandle< Rational > &coordinate_handle, const TypedAttributeHandle< double > &edge_length_handle, const TypedAttributeHandle< double > &sizing_field_scalar_handle, const TypedAttributeHandle< double > &energy_handle, const TypedAttributeHandle< double > &target_edge_length_handle, const TypedAttributeHandle< char > &visited_handle, const double stop_energy, const double current_max_energy, const double initial_target_edge_length, const double min_target_edge_length)
 
void set_operation_energy_filter (Mesh &m, const TypedAttributeHandle< Rational > &coordinate_handle, const TypedAttributeHandle< double > &energy_handle, const TypedAttributeHandle< char > &energy_filter_handle, const TypedAttributeHandle< char > &visited_handle, const double stop_energy, const double current_max_energy, const double initial_target_edge_length)
 
void set_operation_energy_filter_after_sizing_field (Mesh &m, const TypedAttributeHandle< Rational > &coordinate_handle, const TypedAttributeHandle< double > &energy_handle, const TypedAttributeHandle< char > &energy_filter_handle, const TypedAttributeHandle< char > &visited_handle, const double stop_energy, const double current_max_energy, const double initial_target_edge_length)
 
void wildmeshing (const utils::Paths &paths, const nlohmann::json &j, io::Cache &cache)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (WildmeshingOptionsAttributes, position, replace_double_coordinate)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (WildmeshingOptionsEnvelopeMesh, mesh, position)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (WildmeshingOptionsEnvelope, geometry, thickness, constrained_position)
 
 NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE (WildmeshingOptions, attributes, pass_through, passes, input, scheduler_update_frequency, envelopes, target_edge_length, target_max_amips, intermediate_output, output)
 
std::shared_ptr< Meshwinding_number (const std::shared_ptr< Mesh > &query_mesh_ptr, const std::shared_ptr< Mesh > &surface_ptr)
 
tag_intersection

when you what to get a tag intersection between several tag attributes, then you can call this function

Parameters
jsetting [please check the TagIntersectionOptions.hpp]
cacheused for io write/read
void tag_intersection (const utils::Paths &paths, const nlohmann::json &j, io::Cache &cache)
 

Typedef Documentation

◆ Vector3

using wmtk::components::Vector3 = typedef Eigen::Vector3d

Definition at line 39 of file tetwild_simplification.cpp.

◆ Vector3i

using wmtk::components::Vector3i = typedef Eigen::Vector3i

Definition at line 40 of file tetwild_simplification.cpp.

Function Documentation

◆ adjust_sizing_field()

void wmtk::components::adjust_sizing_field ( Mesh m,
const TypedAttributeHandle< Rational > &  coordinate_handle,
const TypedAttributeHandle< double > &  edge_length_handle,
const TypedAttributeHandle< double > &  sizing_field_scalar_handle,
const TypedAttributeHandle< double > &  energy_handle,
const TypedAttributeHandle< double > &  target_edge_length_handle,
const TypedAttributeHandle< char > &  visited_handle,
const double  stop_energy,
const double  current_max_energy,
const double  initial_target_edge_length,
const double  min_target_edge_length 
)

Definition at line 137 of file wildmeshing_old.cpp.

References wmtk::Mesh::create_accessor(), wmtk::Mesh::create_const_accessor(), wmtk::Edge, wmtk::Mesh::get_all(), wmtk::simplex::link(), wmtk::logger(), wmtk::Mesh::orient_vertices(), wmtk::Mesh::switch_tuple(), wmtk::Tetrahedron, wmtk::Mesh::top_simplex_type(), wmtk::Vertex, wmtk::simplex::Simplex::vertex(), and wmtk::simplex::vertices().

Referenced by wildmeshing().

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

◆ CDT()

std::shared_ptr< Mesh > wmtk::components::CDT ( const TriMesh trimesh,
const bool  inner_only,
const bool  rational_output 
)

Definition at line 18 of file CDT.cpp.

References wmtk::components::internal::CDT_internal(), wmtk::Edge, wmtk::logger(), wmtk::PE, PF, PT, wmtk::PV, wmtk::Tetrahedron, wmtk::Triangle, and wmtk::Vertex.

Here is the call graph for this function:

◆ collapsing()

void wmtk::components::collapsing ( std::vector< Vector3 > &  input_vertices,
std::vector< Vector3i > &  input_faces,
const AABBWrapper tree,
std::vector< bool > &  v_is_removed,
std::vector< bool > &  f_is_removed,
std::vector< std::unordered_set< int >> &  conn_fs 
)

Definition at line 442 of file tetwild_simplification.cpp.

References wmtk::simplex::edges().

Referenced by simplify().

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

◆ delaunay()

std::shared_ptr< Mesh > wmtk::components::delaunay ( const PointMesh point_cloud,
const attribute::MeshAttributeHandle pts_attr,
const std::string &  output_pos_attr_name 
)

Definition at line 68 of file delaunay.cpp.

References wmtk::MeshCRTP< Derived >::create_const_accessor().

Here is the call graph for this function:

◆ delaunay_exec()

template<int D, typename MeshT >
std::shared_ptr<MeshT> wmtk::components::delaunay_exec ( const PointMesh point_cloud,
const attribute::MeshAttributeHandle pts_attr,
const std::string &  output_pos_attr_name 
)

Definition at line 35 of file delaunay.cpp.

References wmtk::components::internal::delaunay_2d(), wmtk::components::internal::delaunay_3d(), wmtk::simplex::faces(), wmtk::mesh_utils::set_matrix_attribute(), wmtk::Vertex, and wmtk::simplex::vertices().

Here is the call graph for this function:

◆ edge_insertion()

◆ export_cache()

void wmtk::components::export_cache ( const utils::Paths &  paths,
const nlohmann::json j,
io::Cache cache 
)

Definition at line 10 of file export_cache.cpp.

References wmtk::io::Cache::export_cache(), wmtk::components::internal::ExportCacheOptions::folder, wmtk::log_and_throw_error(), and wmtk::components::utils::resolve_path().

Referenced by TEST_CASE().

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

◆ gather_attributes() [1/2]

◆ gather_attributes() [2/2]

auto wmtk::components::gather_attributes ( io::Cache cache,
Mesh mesh,
const internal::RegularSpaceOptions options 
)

Definition at line 14 of file regular_space.cpp.

References wmtk::components::internal::RegularSpaceOptions::attributes, wmtk::Edge, wmtk::Mesh::get_attribute_handle(), wmtk::components::utils::get_attributes(), wmtk::log_and_throw_error(), wmtk::components::internal::RegularSpaceOptions::pass_through, wmtk::utils::primitive_below(), wmtk::Mesh::register_attribute(), wmtk::Tetrahedron, wmtk::Mesh::top_simplex_type(), wmtk::Triangle, and wmtk::Vertex.

Referenced by regular_space(), and tag_intersection().

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

◆ get_all_meshes()

void wmtk::components::get_all_meshes ( const utils::Paths &  paths,
const nlohmann::json j,
io::Cache cache 
)

Definition at line 17 of file get_all_meshes.cpp.

References wmtk::multimesh::MultiMeshVisitor< NodeFunctor_ >::execute_from_root(), wmtk::components::internal::GetAllMeshesOptions::input, wmtk::logger(), wmtk::components::internal::GetAllMeshesOptions::name, wmtk::io::Cache::read_mesh(), and wmtk::io::Cache::write_mesh().

Here is the call graph for this function:

◆ get_angle_cos()

double wmtk::components::get_angle_cos ( const Vector3 p,
const Vector3 p1,
const Vector3 p2 
)

Definition at line 377 of file tetwild_simplification.cpp.

Referenced by swapping().

Here is the caller graph for this function:

◆ import_cache()

void wmtk::components::import_cache ( const utils::Paths &  paths,
const nlohmann::json j,
io::Cache cache 
)

Definition at line 10 of file import_cache.cpp.

References wmtk::components::internal::ImportCacheOptions::folder, wmtk::io::Cache::import_cache(), wmtk::log_and_throw_error(), and wmtk::components::utils::resolve_path().

Referenced by TEST_CASE().

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

◆ is_out_envelope()

bool wmtk::components::is_out_envelope ( const std::array< Vector3, 3 > &  vs,
const AABBWrapper tree 
)

Definition at line 372 of file tetwild_simplification.cpp.

References wmtk::components::AABBWrapper::is_out().

Referenced by swapping().

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

◆ marching()

void wmtk::components::marching ( Mesh mesh,
const MarchingOptions options 
)

Perform maching tetrahedra/triangles.

See MarchingOptions for details.

Definition at line 11 of file marching.cpp.

References wmtk::components::Marching::add_filter(), wmtk::components::Marching::add_pass_through(), wmtk::components::MarchingOptions::edge_filter_handles, wmtk::components::MarchingOptions::input_values, wmtk::components::MarchingOptions::label_handles, wmtk::attribute::MeshAttributeHandle::mesh(), wmtk::components::MarchingOptions::output_value, wmtk::components::MarchingOptions::pass_through_attributes, wmtk::components::MarchingOptions::position_handle, wmtk::components::Marching::process(), wmtk::Tetrahedron, wmtk::Mesh::top_simplex_type(), and wmtk::Triangle.

Referenced by TEST_CASE().

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

◆ mesh_info()

void wmtk::components::mesh_info ( const utils::Paths &  paths,
const nlohmann::json j,
io::Cache cache 
)

Definition at line 11 of file mesh_info.cpp.

References wmtk::Mesh::get_all(), wmtk::components::internal::MeshInfoOptions::input, wmtk::logger(), wmtk::io::Cache::read_mesh(), wmtk::Triangle, and wmtk::Vertex.

Referenced by TEST_CASE().

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

◆ mod3()

int wmtk::components::mod3 ( int  j)
inline

Definition at line 67 of file tetwild_simplification.cpp.

Referenced by wmtk::components::AABBWrapper::is_out_using_sampling(), and swapping().

Here is the caller graph for this function:

◆ multimesh_from_tag()

void wmtk::components::multimesh_from_tag ( std::shared_ptr< Mesh > &  mesh_in,
attribute::MeshAttributeHandle substructure_label,
int64_t  substructure_value 
)

Generate a multi-mesh from a mesh with a tag that represents the substructure, the mesh is changed.

Definition at line 20 of file multimesh_from_tag.cpp.

References wmtk::components::internal::MultiMeshFromTag::compute_substructure_mesh(), and wmtk::components::internal::MultiMeshFromTag::remove_soup().

Referenced by TEST_CASE().

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

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [1/9]

wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( FusionOptions  ,
input  ,
fusion_X  ,
fusion_Y  ,
fusion_Z  ,
name   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [2/9]

wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( MultimeshBOptions  ,
type  ,
name  ,
mesh  ,
position  ,
tag_name   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [3/9]

wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( MultimeshTOptions  ,
type  ,
name  ,
mesh  ,
position  ,
tag  ,
tag_value  ,
primitive   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [4/9]

wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( MultimeshUVOptions  ,
type  ,
parent  ,
child  ,
name   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [5/9]

wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( PeriodicOptimizationOptions  ,
periodic_mesh  ,
position_mesh  ,
output  ,
envelope_size  ,
target_max_amips  ,
target_edge_length  ,
passes  ,
intermediate_output   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [6/9]

wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( WildmeshingOptions  ,
attributes  ,
pass_through  ,
passes  ,
input  ,
scheduler_update_frequency  ,
envelopes  ,
target_edge_length  ,
target_max_amips  ,
intermediate_output  ,
output   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [7/9]

wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( WildmeshingOptionsAttributes  ,
position  ,
replace_double_coordinate   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [8/9]

wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( WildmeshingOptionsEnvelope  ,
geometry  ,
thickness  ,
constrained_position   
)

◆ NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE() [9/9]

wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE ( WildmeshingOptionsEnvelopeMesh  ,
mesh  ,
position   
)

◆ periodic_optimization()

◆ points_to_rowvectors()

template<int D>
RowVectors<double, D> wmtk::components::points_to_rowvectors ( const PointMesh point_cloud,
const attribute::MeshAttributeHandle pts_attr 
)

Definition at line 15 of file delaunay.cpp.

References wmtk::MeshCRTP< Derived >::create_const_accessor(), wmtk::Mesh::get_all(), wmtk::Vertex, and wmtk::simplex::vertices().

Here is the call graph for this function:

◆ regular_space()

void wmtk::components::regular_space ( const utils::Paths &  paths,
const nlohmann::json j,
io::Cache cache 
)

◆ remove_duplicates()

void wmtk::components::remove_duplicates ( std::vector< Vector3 > &  input_vertices,
std::vector< Vector3i > &  input_faces,
const double  duplicate_tol 
)

Definition at line 388 of file tetwild_simplification.cpp.

References wmtk::logger().

Referenced by simplify().

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

◆ run_components()

wmtk::io::Cache wmtk::components::run_components ( const nlohmann::json json_input_file,
bool  strict 
)

Definition at line 19 of file run_components.cpp.

References wmtk::io::Cache::flush_multimeshes(), wmtk::has_user_overloaded_logger_level(), wmtk::log_and_throw_error(), wmtk::logger(), wmtk::opt_logger(), and wmtk::components::utils::resolve_path().

Here is the call graph for this function:

◆ set_intersection()

void wmtk::components::set_intersection ( const std::unordered_set< int > &  s1,
const std::unordered_set< int > &  s2,
std::vector< int > &  v 
)

Definition at line 346 of file tetwild_simplification.cpp.

Referenced by wmtk::invariants::SeparateSubstructuresInvariant::before(), wmtk::simplex::IdSimplexCollection::get_intersection(), wmtk::simplex::RawSimplexCollection::get_intersection(), wmtk::simplex::SimplexCollection::get_intersection(), and swapping().

Here is the caller graph for this function:

◆ set_operation_energy_filter()

void wmtk::components::set_operation_energy_filter ( Mesh m,
const TypedAttributeHandle< Rational > &  coordinate_handle,
const TypedAttributeHandle< double > &  energy_handle,
const TypedAttributeHandle< char > &  energy_filter_handle,
const TypedAttributeHandle< char > &  visited_handle,
const double  stop_energy,
const double  current_max_energy,
const double  initial_target_edge_length 
)

Definition at line 275 of file wildmeshing_old.cpp.

References wmtk::Mesh::create_accessor(), wmtk::Mesh::create_const_accessor(), wmtk::Mesh::get_all(), wmtk::simplex::k_ring(), wmtk::Mesh::orient_vertices(), wmtk::Tetrahedron, wmtk::Mesh::top_simplex_type(), wmtk::Vertex, wmtk::simplex::Simplex::vertex(), and wmtk::simplex::vertices().

Referenced by wildmeshing().

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

◆ set_operation_energy_filter_after_sizing_field()

void wmtk::components::set_operation_energy_filter_after_sizing_field ( Mesh m,
const TypedAttributeHandle< Rational > &  coordinate_handle,
const TypedAttributeHandle< double > &  energy_handle,
const TypedAttributeHandle< char > &  energy_filter_handle,
const TypedAttributeHandle< char > &  visited_handle,
const double  stop_energy,
const double  current_max_energy,
const double  initial_target_edge_length 
)

Definition at line 322 of file wildmeshing_old.cpp.

References wmtk::Mesh::create_accessor(), wmtk::Mesh::create_const_accessor(), wmtk::Mesh::get_all(), wmtk::simplex::link(), wmtk::Mesh::orient_vertices(), wmtk::Tetrahedron, wmtk::Mesh::top_simplex_type(), wmtk::Vertex, wmtk::simplex::Simplex::vertex(), and wmtk::simplex::vertices().

Here is the call graph for this function:

◆ simplify()

nlohmann::json wmtk::components::simplify ( std::vector< Vector3 > &  input_vertices,
std::vector< Vector3i > &  input_faces,
const AABBWrapper tree,
const double  duplicate_tol 
)

Definition at line 832 of file tetwild_simplification.cpp.

References collapsing(), wmtk::logger(), remove_duplicates(), and swapping().

Referenced by tetwild_simplification().

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

◆ swapping()

void wmtk::components::swapping ( std::vector< Vector3 > &  input_vertices,
std::vector< Vector3i > &  input_faces,
const AABBWrapper tree,
std::vector< bool > &  v_is_removed,
std::vector< bool > &  f_is_removed,
std::vector< std::unordered_set< int >> &  conn_fs 
)

Definition at line 715 of file tetwild_simplification.cpp.

References wmtk::simplex::edges(), get_angle_cos(), is_out_envelope(), wmtk::logger(), mod3(), set_intersection(), and vector_unique().

Referenced by simplify().

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

◆ tag_intersection()

void wmtk::components::tag_intersection ( const utils::Paths &  paths,
const nlohmann::json j,
io::Cache cache 
)

Definition at line 115 of file tag_intersection.cpp.

References wmtk::Mesh::clear_attributes(), gather_attributes(), wmtk::components::internal::TagIntersectionOptions::input, wmtk::log_and_throw_error(), wmtk::components::internal::TagIntersectionOptions::output, wmtk::io::Cache::read_mesh(), wmtk::Tetrahedron, wmtk::Triangle, and wmtk::io::Cache::write_mesh().

Referenced by TEST_CASE().

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

◆ tetwild_simplification()

std::tuple< std::shared_ptr< TriMesh >, nlohmann::json > wmtk::components::tetwild_simplification ( const TriMesh mesh,
const std::string &  postion_attr_name,
double  main_eps,
bool  relative = true,
double  duplicate_tol = -1,
bool  use_sampling = true 
)

Perform the simplification from the original tetwild.

This code does not use WMTK for anything besides in the API.

Parameters
meshThe mesh that should be simplified.
postion_attr_nameThe name of the position attribute.
main_epsSpecifies the amount of simplification.
relativeThe main_eps and duplicate_tol are relative to the bbox diagonal.
duplicate_tolThe radius in which vertices are considered duplicates. Also, faces that have an area below this value are removed.
use_samplingUse sampling for the envelope.

Definition at line 911 of file tetwild_simplification.cpp.

References wmtk::simplex::faces(), wmtk::utils::EigenMatrixWriter::get_double_matrix(), wmtk::utils::EigenMatrixWriter::get_FV_matrix(), wmtk::Mesh::serialize(), wmtk::mesh_utils::set_matrix_attribute(), simplify(), wmtk::simplex::SimplexCollection::size(), and wmtk::simplex::vertices().

Here is the call graph for this function:

◆ to_points()

◆ vector_unique()

template<typename T >
void wmtk::components::vector_unique ( std::vector< T > &  v)

Definition at line 366 of file tetwild_simplification.cpp.

Referenced by swapping().

Here is the caller graph for this function:

◆ wildmeshing() [1/2]

void wmtk::components::wildmeshing ( const utils::Paths &  paths,
const nlohmann::json j,
io::Cache cache 
)

Definition at line 407 of file wildmeshing_old.cpp.

References wmtk::operations::Operation::add_invariant(), wmtk::operations::Operation::add_transfer_strategy(), adjust_sizing_field(), wmtk::function::utils::amips(), wmtk::components::WildmeshingOptions::attributes, wmtk::SchedulerStats::collecting_time, wmtk::multimesh::consolidate(), wmtk::operations::Copy, wmtk::Edge, wmtk::components::WildmeshingOptions::envelopes, wmtk::SchedulerStats::executing_time, wmtk::components::utils::get_attributes(), wmtk::components::WildmeshingOptions::input, wmtk::components::WildmeshingOptions::intermediate_output, wmtk::simplex::link_condition(), wmtk::logger(), wmtk::operations::attribute_update::make_cast_attribute_transfer_strategy(), wmtk::operations::Mean, wmtk::operations::None, wmtk::SchedulerStats::number_of_failed_operations(), wmtk::SchedulerStats::number_of_performed_operations(), wmtk::SchedulerStats::number_of_successful_operations(), wmtk::components::WildmeshingOptions::output, wmtk::components::WildmeshingOptions::pass_through, wmtk::components::WildmeshingOptions::passes, wmtk::PE, PF, wmtk::components::WildmeshingOptionsAttributes::position, wmtk::operations::Operation::primitive_type(), PT, wmtk::PV, wmtk::io::Cache::read_mesh(), wmtk::components::WildmeshingOptionsAttributes::replace_double_coordinate, wmtk::Scheduler::run_operation_on_all(), wmtk::components::WildmeshingOptions::scheduler_update_frequency, set_operation_energy_filter(), wmtk::operations::Operation::set_priority(), wmtk::Scheduler::set_update_frequency(), wmtk::SchedulerStats::sorting_time, wmtk::components::WildmeshingOptions::target_edge_length, wmtk::components::WildmeshingOptions::target_max_amips, wmtk::function::Tet_AMIPS_energy(), wmtk::function::utils::Tet_AMIPS_energy(), wmtk::Tetrahedron, wmtk::function::Tri_AMIPS_energy(), wmtk::Triangle, wmtk::Vertex, wmtk::simplex::vertices(), wmtk::utils::wmtk_orient3d(), wmtk::components::internal::write(), and wmtk::io::Cache::write_mesh().

Here is the call graph for this function:

◆ wildmeshing() [2/2]

std::vector< std::pair< std::shared_ptr< Mesh >, std::string > > wmtk::components::wildmeshing ( const WildMeshingOptions option)

Definition at line 10 of file wildmeshing.cpp.

References wmtk::components::WildMeshingOptions::input_mesh, wmtk::Triangle, wmtk::components::internal::wildmeshing2d(), and wmtk::components::internal::wildmeshing3d().

Here is the call graph for this function:

◆ winding_number()

std::shared_ptr< Mesh > wmtk::components::winding_number ( const std::shared_ptr< Mesh > &  query_mesh_ptr,
const std::shared_ptr< Mesh > &  surface_ptr 
)

Definition at line 17 of file winding_number.cpp.

References wmtk::logger(), and wmtk::components::internal::winding_number().

Here is the call graph for this function: