Wildmeshing Toolkit
|
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< Mesh > | CDT (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< Mesh > | delaunay (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::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. More... | |||||
std::shared_ptr< PointMesh > | to_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< Mesh > | winding_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
| |||||
void | tag_intersection (const utils::Paths &paths, const nlohmann::json &j, io::Cache &cache) | ||||
using wmtk::components::Vector3 = typedef Eigen::Vector3d |
Definition at line 39 of file tetwild_simplification.cpp.
using wmtk::components::Vector3i = typedef Eigen::Vector3i |
Definition at line 40 of file tetwild_simplification.cpp.
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().
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.
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().
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().
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().
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, wmtk::components::internal::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.
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().
auto wmtk::components::gather_attributes | ( | io::Cache & | cache, |
const Mesh & | mesh, | ||
const internal::TagIntersectionOptions & | options | ||
) |
Definition at line 17 of file tag_intersection.cpp.
References wmtk::components::internal::TagIntersectionOptions::attributes, wmtk::Edge, wmtk::components::internal::TagIntersectionAttributes::edge_labels, wmtk::components::internal::TagIntersectionValues::edge_values, wmtk::components::internal::TagIntersectionAttributes::face_labels, wmtk::components::internal::TagIntersectionValues::face_values, wmtk::Mesh::get_attribute_handle(), wmtk::components::utils::get_attributes(), wmtk::components::internal::TagIntersectionOptions::output_attributes, wmtk::components::internal::TagIntersectionOptions::output_values, wmtk::components::internal::TagIntersectionOptions::pass_through, wmtk::Tetrahedron, wmtk::components::internal::TagIntersectionAttributes::tetrahedron_labels, wmtk::components::internal::TagIntersectionValues::tetrahedron_values, wmtk::Triangle, wmtk::components::internal::TagIntersectionOptions::values, wmtk::Vertex, wmtk::components::internal::TagIntersectionAttributes::vertex_labels, and wmtk::components::internal::TagIntersectionValues::vertex_values.
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().
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().
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().
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().
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().
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().
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().
|
inline |
Definition at line 67 of file tetwild_simplification.cpp.
Referenced by wmtk::components::AABBWrapper::is_out_using_sampling(), and swapping().
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().
wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE | ( | FusionOptions | , |
input | , | ||
fusion_X | , | ||
fusion_Y | , | ||
fusion_Z | , | ||
name | |||
) |
wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE | ( | MultimeshBOptions | , |
type | , | ||
name | , | ||
mesh | , | ||
position | , | ||
tag_name | |||
) |
wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE | ( | MultimeshTOptions | , |
type | , | ||
name | , | ||
mesh | , | ||
position | , | ||
tag | , | ||
tag_value | , | ||
primitive | |||
) |
wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE | ( | MultimeshUVOptions | , |
type | , | ||
parent | , | ||
child | , | ||
name | |||
) |
wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE | ( | PeriodicOptimizationOptions | , |
periodic_mesh | , | ||
position_mesh | , | ||
output | , | ||
envelope_size | , | ||
target_max_amips | , | ||
target_edge_length | , | ||
passes | , | ||
intermediate_output | |||
) |
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 | |||
) |
wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE | ( | WildmeshingOptionsAttributes | , |
position | , | ||
replace_double_coordinate | |||
) |
wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE | ( | WildmeshingOptionsEnvelope | , |
geometry | , | ||
thickness | , | ||
constrained_position | |||
) |
wmtk::components::NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE | ( | WildmeshingOptionsEnvelopeMesh | , |
mesh | , | ||
position | |||
) |
void wmtk::components::periodic_optimization | ( | const utils::Paths & | paths, |
const nlohmann::json & | j, | ||
io::Cache & | cache | ||
) |
Definition at line 18 of file periodic_optimization.cpp.
References wmtk::components::internal::MultiMeshFromTag::compute_substructure_mesh(), wmtk::components::PeriodicOptimizationOptions::envelope_size, wmtk::components::PeriodicOptimizationOptions::intermediate_output, wmtk::logger(), wmtk::components::PeriodicOptimizationOptions::output, wmtk::components::PeriodicOptimizationOptions::passes, wmtk::components::PeriodicOptimizationOptions::periodic_mesh, wmtk::components::internal::periodic_optimization(), wmtk::components::PeriodicOptimizationOptions::position_mesh, wmtk::io::Cache::read_mesh(), wmtk::components::internal::MultiMeshFromTag::remove_soup(), wmtk::components::PeriodicOptimizationOptions::target_edge_length, wmtk::components::PeriodicOptimizationOptions::target_max_amips, wmtk::Tetrahedron, wmtk::Triangle, wmtk::Vertex, and wmtk::io::Cache::write_mesh().
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().
void wmtk::components::regular_space | ( | const utils::Paths & | paths, |
const nlohmann::json & | j, | ||
io::Cache & | cache | ||
) |
Definition at line 58 of file regular_space.cpp.
References wmtk::Mesh::clear_attributes(), gather_attributes(), wmtk::components::internal::RegularSpaceOptions::input, wmtk::components::internal::RegularSpaceOptions::output, wmtk::io::Cache::read_mesh(), wmtk::components::internal::RegularSpace::regularize_tags(), wmtk::components::internal::RegularSpaceOptions::values, and wmtk::io::Cache::write_mesh().
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().
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().
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().
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().
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().
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().
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().
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().
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.
mesh | The mesh that should be simplified. |
postion_attr_name | The name of the position attribute. |
main_eps | Specifies the amount of simplification. |
relative | The main_eps and duplicate_tol are relative to the bbox diagonal. |
duplicate_tol | The radius in which vertices are considered duplicates. Also, faces that have an area below this value are removed. |
use_sampling | Use 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().
std::shared_ptr< PointMesh > wmtk::components::to_points | ( | const Mesh & | mesh, |
const attribute::MeshAttributeHandle & | pts_attr, | ||
const ToPtsOptions & | options, | ||
const std::string & | output_pos_attr_name | ||
) |
Definition at line 16 of file to_points.cpp.
References wmtk::components::ToPtsOptions::add_box, wmtk::components::ToPtsOptions::add_grid, wmtk::components::ToPtsOptions::box_scale, wmtk::Mesh::create_const_accessor(), wmtk::simplex::faces(), wmtk::simplex::faces_single_dimension_tuples(), wmtk::Mesh::get_all(), wmtk::components::ToPtsOptions::grid_spacing, wmtk::logger(), wmtk::components::ToPtsOptions::min_dist, wmtk::pow(), wmtk::components::ToPtsOptions::remove_duplicates, wmtk::mesh_utils::set_matrix_attribute(), wmtk::Mesh::top_simplex_type(), wmtk::Vertex, and wmtk::simplex::vertices().
void wmtk::components::vector_unique | ( | std::vector< T > & | v | ) |
Definition at line 366 of file tetwild_simplification.cpp.
Referenced by swapping().
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().
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().
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().