Program Listing for File meshoperations.hpp#
↰ Return to documentation for file (pymembrane/cppmodule/src/mesh/meshoperations.hpp)
#ifndef __meshoperations_hpp__
#define __meshoperations_hpp__
#include "../types/globaltypes.hpp"
class SystemClass;
class MeshOperations
{
public:
MeshOperations(SystemClass &system) : _system(system)
{
}
~MeshOperations(void) {}
bool check_if_edge_can_flip(const int& flip_edge_index);
bool edge_need_flip(int flip_edge_index);
real compute_average_edge_length();
void edge_flip(int flip_edge_index);
void refine_mesh_edge_flip();
void simplify_mesh(real collapse_threshold=0.5);
void refine_mesh_edge_split(real split_threshhold=2.0);
void adapt_mesh(real threshold=0.5);
//void equiangulation(void);
void compute_vertices_connexities();
private:
void compute_vertex_connexity(int vertex_index);
bool edge_need_collapse(int edge_index, real minimum);
bool edge_can_collapse(int edge_index);
void edge_case_collapse(int he01, int &del_e1, int &del_e2, int &del_f0, int &del_f1);
void edge_collapse(int edge_index);
void edge_collapse(int edge_index, int &del_vertex, int &del_e1, int &del_e2,
int &del_f0, int &del_f1);
void edge_split(int edge_index, int new_vertex, int new_edge0, int new_edge1,
int new_edge2, int new_f0, int new_f1);
int create_vertex(real mass=1.0);
int create_edge();
int create_face();
void delete_vertex(int vertex_index);
void delete_edge(int edge_index);
void delete_hedge(int hedge_index);
void delete_face(int face_index);
SystemClass& _system;
};
#endif