Wildmeshing Toolkit
Loading...
Searching...
No Matches
wmtk::components Namespace Reference

Namespaces

namespace  adaptive_tessellation
 
namespace  input
 
namespace  internal
 
namespace  isotropic_remeshing
 
namespace  longest_edge_split
 
namespace  multimesh
 
namespace  output
 
namespace  procedural
 
namespace  shortest_edge_collapse
 
namespace  triangle_insertion
 
namespace  utils
 

Classes

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

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.
 
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.
 
 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)
 
void simplicial_embedding (Mesh &mesh, const SimplicialEmbeddingOptions &options)
 
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::json > 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.
 
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 
)

◆ 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()

EdgeInsertionMeshes wmtk::components::edge_insertion ( EdgeMesh input_mesh,
TriMesh bg_mesh 
)

Definition at line 21 of file edge_insertion.cpp.

References wmtk::components::EdgeInsertionMeshes::bbox_mesh, wmtk::components::internal::MultiMeshFromTag::compute_substructure_mesh(), wmtk::Edge, edge_insertion(), wmtk::components::EdgeInsertionMeshes::inserted_edge_mesh, wmtk::logger(), wmtk::components::internal::MultiMeshFromTag::remove_soup(), wmtk::mesh_utils::set_matrix_attribute(), wmtk::components::EdgeInsertionMeshes::tri_mesh, wmtk::Triangle, and wmtk::Vertex.

Referenced by edge_insertion(), wmtk::components::internal::edge_insertion(), and wmtk::components::internal::segment_segment_inter().

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

◆ 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, and wmtk::log_and_throw_error().

Referenced by TEST_CASE(), and 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(), and wmtk::log_and_throw_error().

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(), and 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(), and wmtk::opt_logger().

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.

References set_intersection().

Referenced by set_intersection(), and swapping().

Here is the call graph for this function:
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 
)

◆ 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 
)

◆ simplicial_embedding()

void wmtk::components::simplicial_embedding ( Mesh mesh,
const SimplicialEmbeddingOptions options 
)

Definition at line 13 of file simplicial_embedding.cpp.

References wmtk::Mesh::clear_attributes(), wmtk::Mesh::consolidate(), wmtk::components::SimplicialEmbeddingOptions::generate_simplicial_embedding, wmtk::components::SimplicialEmbeddingOptions::pass_through_attributes, wmtk::utils::primitive_below(), wmtk::components::internal::SimplicialEmbedding::regularize_tags(), wmtk::components::SimplicialEmbeddingOptions::tag_attributes, wmtk::Mesh::top_simplex_type(), and wmtk::components::SimplicialEmbeddingOptions::value.

Referenced by TEST_CASE(), and TEST_CASE().

Here is the call graph for this function:
Here is the caller 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(), simplify(), and swapping().

Referenced by simplify(), and 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(), swapping(), and vector_unique().

Referenced by simplify(), and swapping().

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(), wmtk::components::TagIntersection::compute_intersection(), gather_attributes(), wmtk::components::internal::TagIntersectionOptions::input, wmtk::log_and_throw_error(), wmtk::components::internal::TagIntersectionOptions::output, wmtk::io::Cache::read_mesh(), tag_intersection(), wmtk::Tetrahedron, wmtk::Triangle, and wmtk::io::Cache::write_mesh().

Referenced by tag_intersection().

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(), simplify(), wmtk::simplex::SimplexCollection::size(), tetwild_simplification(), and wmtk::simplex::vertices().

Referenced by tetwild_simplification().

Here is the call graph for this function:
Here is the caller 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(), wmtk::components::internal::adjust_sizing_field(), 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, wmtk::components::internal::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: