Wildmeshing Toolkit
edge_insertion.cpp File Reference
#include "edge_insertion.hpp"
#include <wmtk/utils/EigenMatrixWriter.hpp>
#include <wmtk/utils/Logger.hpp>
#include <wmtk/utils/orient.hpp>
#include <wmtk/operations/EdgeSplit.hpp>
#include <wmtk/operations/composite/TriFaceSplit.hpp>
#include <wmtk/EdgeMesh.hpp>
#include <wmtk/Mesh.hpp>
#include <wmtk/TriMesh.hpp>
#include <wmtk/operations/attribute_new/SplitNewAttributeStrategy.hpp>
#include <wmtk/operations/attribute_update/AttributeTransferStrategy.hpp>
#include <wmtk/operations/attribute_update/make_cast_attribute_transfer_strategy.hpp>
#include <igl/edges.h>
#include <igl/remove_duplicate_vertices.h>
#include <array>
#include <numeric>
#include <tuple>
#include <vector>
Include dependency graph for edge_insertion.cpp:

Go to the source code of this file.

Namespaces

 wmtk
 
 wmtk::components
 
 wmtk::components::internal
 

Functions

wmtk::Rational wmtk::components::internal::det (const wmtk::Vector2r &a, const wmtk::Vector2r &b)
 
int wmtk::components::internal::is_point_inside_triangle (const wmtk::Vector2r &P, const wmtk::Vector2r &A, const wmtk::Vector2r &B, const wmtk::Vector2r &C)
 
bool wmtk::components::internal::segment_segment_inter (const Vector2r &s0, const Vector2r &e0, const Vector2r &s1, const Vector2r &e1, Vector2r &res, Rational &t0, Rational &t1)
 
bool wmtk::components::internal::is_point_in_bbox (const Vector2r &point, const Vector2r &bbox_min, const Vector2r &bbox_max)
 
bool wmtk::components::internal::is_bbox_intersect (const Vector2r &bbox_min_0, const Vector2r &bbox_max_0, const Vector2r &bbox_min_1, const Vector2r &bbox_max_1)
 
std::array< wmtk::Vector2r, 2 > wmtk::components::internal::compute_bbox (const wmtk::Vector2r &p0, const wmtk::Vector2r &p1, const wmtk::Vector2r &p2)
 
std::array< wmtk::Vector2r, 2 > wmtk::components::internal::compute_bbox (const wmtk::Vector2r &p0, const wmtk::Vector2r &p1)
 
bool wmtk::components::internal::is_colinear (const Vector2r &p0, const Vector2r &p1, const Vector2r &q0, const Vector2r &q1)
 
std::vector< int64_t > wmtk::components::internal::cyclic_order (const std::vector< Vector2r > &V)
 
void wmtk::components::internal::dfs_triangulate_aux (int64_t v, std::vector< std::vector< std::tuple< int64_t, bool, bool >>> &VV, std::vector< Vector2r > &V_pos, std::vector< int64_t > &stack, std::vector< int > &in_stack, std::vector< int > &is_on_input, std::vector< int > &is_used, std::vector< std::vector< int64_t >> &in_stack_idx, const Vector2r &prev_vector, const int64_t v_prev, std::vector< std::array< int64_t, 3 >> &FV, std::vector< std::array< int, 3 >> &local_e_on_input)
 
void wmtk::components::internal::dfs_triangulate (std::vector< std::vector< std::tuple< int64_t, bool, bool >>> &VV, std::vector< Vector2r > &V_pos, std::vector< std::array< int64_t, 3 >> &FV, std::vector< std::array< int, 3 >> &local_e_on_input)
 
void wmtk::components::internal::edge_insertion (TriMesh &_trimesh, EdgeMesh &edgemesh, std::vector< Vector2r > &v_final, std::vector< std::array< int64_t, 3 >> &FV_new, std::vector< std::array< int, 3 >> &local_e_on_input)