Wildmeshing Toolkit
tetwild_simplification.cpp File Reference
#include "tetwild_simplification.hpp"
#include <wmtk/Mesh.hpp>
#include <wmtk/TriMesh.hpp>
#include <wmtk/utils/EigenMatrixWriter.hpp>
#include <wmtk/utils/Logger.hpp>
#include <wmtk/utils/mesh_utils.hpp>
#include <igl/remove_duplicate_vertices.h>
#include <igl/unique_rows.h>
#include <fastenvelope/FastEnvelope.h>
#include <SimpleBVH/BVH.hpp>
#include <polysolve/Utils.hpp>
#include <queue>
#include <random>
#include <unordered_set>
Include dependency graph for tetwild_simplification.cpp:

Go to the source code of this file.

Classes

class  wmtk::components::Random
 
class  wmtk::components::AABBWrapper
 
class  wmtk::components::ElementInQueue
 
struct  wmtk::components::cmp_s
 
struct  wmtk::components::cmp_l
 

Namespaces

 wmtk
 
 wmtk::components
 

Typedefs

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

Functions

int wmtk::components::mod3 (int j)
 
void wmtk::components::set_intersection (const std::unordered_set< int > &s1, const std::unordered_set< int > &s2, std::vector< int > &v)
 
template<typename T >
void wmtk::components::vector_unique (std::vector< T > &v)
 
bool wmtk::components::is_out_envelope (const std::array< Vector3, 3 > &vs, const AABBWrapper &tree)
 
double wmtk::components::get_angle_cos (const Vector3 &p, const Vector3 &p1, const Vector3 &p2)
 
void wmtk::components::remove_duplicates (std::vector< Vector3 > &input_vertices, std::vector< Vector3i > &input_faces, const double duplicate_tol)
 
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)
 
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)
 
nlohmann::json wmtk::components::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::jsonwmtk::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. More...