Wildmeshing Toolkit
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
wmtk::components::tetwild::orig::VertexSmoother Class Reference
Inheritance diagram for wmtk::components::tetwild::orig::VertexSmoother:
wmtk::components::tetwild::orig::LocalOperations

Public Member Functions

 VertexSmoother (LocalOperations lo)
 
void smooth ()
 
void smoothSingle ()
 Smooth all vertices except for deleted, locked, bbox, and surface vertices.
 
bool smoothSingleVertex (int v_id, bool is_cal_energy)
 
void smoothSurface ()
 Smooth all surface vertices except for deleted, and locked vertices.
 
bool NewtonsMethod (const std::vector< int > &t_ids, const std::vector< std::array< int, 4 > > &new_tets, int v_id, Vector3d &p)
 
bool NewtonsUpdate (const std::vector< int > &t_ids, int v_id, double &energy, Eigen::Vector3d &J, Eigen::Matrix3d &H, Eigen::Vector3d &X0)
 
double getNewEnergy (const std::vector< int > &t_ids)
 
- Public Member Functions inherited from wmtk::components::tetwild::orig::LocalOperations
 LocalOperations (std::vector< TetVertex > &t_vs, std::vector< std::array< int, 4 > > &ts, std::vector< std::array< int, 4 > > &is_sf_fs, std::vector< bool > &v_is_rm, std::vector< bool > &t_is_rm, std::vector< TetQuality > &tet_qs, const SampleEnvelope &geo_tree, const SampleEnvelope &b_t, const Args &ar, State &st)
 
void outputInfo (int op_type, double time, bool is_log=true)
 
void calTetQualities (const std::vector< std::array< int, 4 > > &new_tets, std::vector< TetQuality > &tet_qs)
 
double calEdgeLength (int v1_id, int v2_id)
 
void calTetQuality_AMIPS (const std::array< int, 4 > &tet, TetQuality &t_quality)
 
bool isFlip (const std::vector< std::array< int, 4 > > &new_tets)
 
bool isTetFlip (const std::array< int, 4 > &t)
 
bool isTetFlip (int t_id)
 
void getAvgMaxEnergy (double &avg_tq, double &max_tq)
 
double getMaxEnergy ()
 
void getCheckQuality (const std::vector< TetQuality > &tet_qs, TetQuality &tq)
 
void getCheckQuality (const std::vector< int > &t_ids, TetQuality &tq)
 
bool isEdgeOnSurface (int v1_id, int v2_id)
 
bool isEdgeOnBbox (int v1_id, int v2_id)
 
bool isEdgeOnSurface (int v1_id, int v2_id, const std::vector< int > &t_ids)
 
bool isEdgeOnBbox (int v1_id, int v2_id, const std::vector< int > &t_ids)
 
bool isEdgeOnBoundary (int v1_id, int v2_id)
 
bool isFaceOutEnvelop (const std::array< Vector3d, 3 > &tri)
 
bool isPointOutEnvelop (const Vector3d &p)
 
bool isPointOutBoundaryEnvelop (const Vector3d &p)
 
void getFaceConnTets (int v1_id, int v2_id, int v3_id, std::vector< int > &t_ids)
 
bool isIsolated (int v_id)
 
bool isBoundaryPoint (int v_id)
 
bool isLocked_ui (const std::array< int, 2 > &e)
 
bool isTetLocked_ui (int tid)
 

Public Attributes

int ts
 
std::vector< int > tets_tss
 
std::vector< int > tet_vertices_tss
 
int id_value_e = 0
 
int id_value_j = 1
 
int id_value_h = 2
 
int id_solve = 3
 
int id_aabb = 4
 
int id_project = 5
 
int id_round = 6
 
std::array< double, 7 > breakdown_timing = {{0, 0, 0, 0, 0, 0, 0}}
 
std::array< std::string, 7 > breakdown_name
 
igl::Timer igl_timer
 
- Public Attributes inherited from wmtk::components::tetwild::orig::LocalOperations
const Argsargs
 
Statestate
 
std::vector< TetVertex > & tet_vertices
 
std::vector< std::array< int, 4 > > & tets
 
std::vector< std::array< int, 4 > > & is_surface_fs
 
std::vector< bool > & v_is_removed
 
std::vector< bool > & t_is_removed
 
std::vector< TetQuality > & tet_qualities
 
const SampleEnvelopegeo_sf_tree
 
const SampleEnvelopegeo_b_tree
 
int counter = 0
 
int suc_counter = 0
 
igl::Timer igl_timer0
 
int id_sampling = 0
 
int id_aabb = 1
 
int mid_id = 0
 

Member Function Documentation

◆ smoothSingle()

void wmtk::components::tetwild::orig::VertexSmoother::smoothSingle ( )

Smooth all vertices except for deleted, locked, bbox, and surface vertices.

try to round the vertex

check if should use exact smoothing

update timestamps

◆ smoothSingleVertex()

bool wmtk::components::tetwild::orig::VertexSmoother::smoothSingleVertex ( int  v_id,
bool  is_cal_energy 
)

try to round the vertex

check if should use exact smoothing

◆ smoothSurface()

void wmtk::components::tetwild::orig::VertexSmoother::smoothSurface ( )

Smooth all surface vertices except for deleted, and locked vertices.

find one-ring surface faces

check if tris outside the envelop

real update update timestamps

Member Data Documentation

◆ breakdown_name

std::array<std::string, 7> wmtk::components::tetwild::orig::VertexSmoother::breakdown_name
Initial value:
= {
{"Computing E",
"Computing J",
"Computing H",
"Solving linear system",
"AABB",
"Project",
"Rounding"}}

The documentation for this class was generated from the following files: