#include <FaceOffset_3.h>
Public Member Functions | |
FaceOffset_3 () | |
Default constructor. More... | |
FaceOffset_3 (Manifold *wm, COM::Window *buf) | |
Construct an object from a window manifold and a buffer window. More... | |
virtual | ~FaceOffset_3 () |
virtual double | time_stepping (const COM::Attribute *spds, double dt, COM::Attribute *disps, int *smoothed=NULL) |
Main entry of the algorithm. More... | |
void | set_wavefrontal_expansion (bool b) |
Set the wavefrontal switch. More... | |
bool | get_wavefrontal_expansion () const |
Obtain the wavefrontal switch. More... | |
void | set_normal_diffusion (char i) |
Set number of iterations for normal diffusion. More... | |
void | set_feature_layer (bool b) |
Set whether or not to use feature layer. More... | |
int | get_normal_diffuion () const |
Get number of iterations for normal diffusion. More... | |
void | set_eigen_threshold (double eps) |
Set the threshold of eigenvalues for splitting primary and null spaces. More... | |
double | get_eigen_threshold () const |
Get the threshold of eigenvalues for splitting primary and null spaces. More... | |
void | set_courant_constant (double c) |
Set the constant in front of CFL condition (0<=c<1) More... | |
double | get_courant_constant () const |
Get the constant in front of CFL condition (0<=c<=1) More... | |
void | set_weighting_scheme (int w) |
Weighting scheme. More... | |
int | get_weighting_scheme () const |
void | set_fangle_weak (double psi) |
Set the threshold for weak-feature angle. More... | |
void | set_fangle_strong (double psi) |
Set the threshold for weak-feature angle. More... | |
void | set_fangle_turn (double psi) |
Set the threshold for weak-feature angle. More... | |
double | get_fangle_weak_radians () const |
Get the threshold for weak-feature angle. More... | |
double | get_fangle_strong_radians () const |
Get the threshold for strong-feature angle. More... | |
double | get_fangle_turn_radians () const |
Set the threshold for weak-feature angle. More... | |
void | set_smoother (int smoother) |
Set the choice of mesh smoother. More... | |
void | set_conserve (int b) |
Set mass conservation. More... | |
void | reset_default_parameters (bool b=false) |
Public Member Functions inherited from Propagation_3 | |
Propagation_3 () | |
virtual | ~Propagation_3 () |
Propagation_3 (Manifold *wm, COM::Window *buf) | |
Construct an object from a window manifold. More... | |
virtual void | set_constraints (const COM::Attribute *cnstr_types) |
Set the types and directions of nodal constraints. More... | |
void | set_bounds (const COM::Attribute *bnd) |
Set the bounds. More... | |
void | bound_facial_speed (COM::Attribute *fa) |
virtual void | enforce_nodal_constraints (COM::Attribute *du) |
Enforces the nodal constraints by projecting motion onto given direction. More... | |
virtual void | bound_nodal_motion (COM::Attribute *disps) |
void | set_verbose (bool b) |
Set the verbose level. More... | |
Protected Member Functions | |
void | numerical_dissipation (COM::Attribute *nodal_buffer) |
Introduce numerical dissipation into equation. More... | |
void | compute_quadrics (double dt, const COM::Attribute *spds, COM::Attribute *rhs, COM::Attribute *predicted) |
Compute quadrics for every vertex. More... | |
void | compute_directions (COM::Attribute *b_offset, bool in_principle) |
Compute mean normals. More... | |
void | compute_volume_vector (const COM::Attribute *disps, COM::Attribute *bs) |
Compute volumn-vector. More... | |
bool | obtain_constrained_directions (COM::Attribute *disps, COM::Attribute *vcenters) |
Decompose propagation directions based on constraints. More... | |
double | rescale_displacements (COM::Attribute *disps, COM::Attribute *vcenters, int depth=0) |
Reduce time step based on stability limit, and rescale displacements by the reduced time step and diffusing expansion. More... | |
void | filter_and_identify_ridge_edges (bool filter_curves) |
Filter out isolated ridge vertices and identify ridge edges. More... | |
void | reclassify_ridge_vertices (const bool upgrade_corners, const bool upgrade_ridge, COM::Attribute *neighbor_feas, COM::Attribute *tr_attr, bool to_filter) |
int | build_ridge_neighbor_list (const COM::Attribute *maxtrnangv, const COM::Attribute *mintrnangv, const std::vector< std::map< Edge_ID, double > > &edge_maps, const COM::Attribute *maxranglev, const COM::Attribute *minranglev, const std::vector< std::map< Edge_ID, double > > &rangle_maps, std::vector< ObscendSet > &obscends) |
Build the list of ridge nighbors and obtain a list of weak-ended vertices Return the number of obscended vertices. More... | |
int | append_obscure_ends (const COM::Attribute *maxtrnangv, const COM::Attribute *mintrnangv, const std::vector< std::map< Edge_ID, double > > &edge_maps, const COM::Attribute *maxranglev, const COM::Attribute *minranglev, const std::vector< std::map< Edge_ID, double > > &rangle_maps) |
bool | filter_obscended_ridge (const std::vector< std::map< Edge_ID, double > > &edge_maps, const std::vector< std::map< Edge_ID, double > > &diangl_maps, const std::vector< ObscendSet > &obscends) |
Filter out weak-ended curves. More... | |
int | remove_obscure_curves (const std::vector< ObscendSet > &obscends) |
void | mark_weak_vertices () |
Mark vertices that are weak. More... | |
void | nulaplacian_smooth (const COM::Attribute *vert_normals, const COM::Attribute *tangranks, const COM::Attribute *disps, COM::Attribute *vcenters, COM::Attribute *buf, COM::Attribute *vert_weights_buf, const COM::Attribute *edge_weights=NULL) |
Redistribute smooth vertices by NuLaplacian smoothing. More... | |
void | balance_mass () |
void | distribute_volume_e2n (const COM::Attribute *fvol, const COM::Attribute *tranks, COM::Attribute *vvol) |
void | update_face_volumes (const COM::Attribute *fnormal, const COM::Attribute *vdsps, COM::Attribute *fvol) |
void | adjust_wavefrontal_motion (COM::Attribute *disps) |
std::pair< double, double > | comp_wavefrontal_motion (double det, double w, double delta, const Vector_3 &disp_nz, const Vector_3 &nrm_nz) |
int | eigen_analyze_vertex (Vector_3 A_io[3], Vector_3 &b_io, double angle_defect=0) |
void | obtain_directions (Vector_3 es[3], const Vector_3 &lambdas, int nrank, Vector_3 &b_medial, Vector_3 *b_offset=NULL) const |
void | obtain_face_offset (const Point_3 *pnts, const double *spd_ptr, const COM::Attribute *spd, double dt, const Vector_3 *dirs, COM::Element_node_enumerator &ene, Vector_3 &ns_nz, Point_3 &cnt, Vector_3 *disps, Vector_3 *ns) |
void | get_tangents (const Vector_3 *es, const Vector_3 &lambdas, const Vector_3 &mn, int nrank, Vector_3 vs[2], double scales[2], int *is_strong=NULL) const |
void | compute_anisotropic_vertex_centers (const COM::Attribute *disps_buf) |
void | denoise_surface (const COM::Attribute *disps_buf, COM::Attribute *normal_motion) |
void | get_primary_component (const Vector_3 &nrm, const Vector_3 es[], int trank, Vector_3 &prim) const |
int | insert_boundary_edges (COM::Attribute *tr_attr) |
void | update_vertex_centers () |
std::pair< double, double > | solve_quadratic_func (double a, double b, double c) |
double | sign (double x) |
Vector_3 | compute_weighted_normal (Vector_3 es[3], const Vector_3 &lambdas, int trank, const Vector_3 &mean_nrm, const Vector_3 &face_nrm) |
bool | is_acute_ridge (const Vector_3 *es, const Vector_3 &lambdas, const Vector_3 &mn, int nrank) const |
bool | is_acute_corner (const Vector_3 *es, const Vector_3 &lambdas, const Vector_3 &mn, int nrank) const |
bool | is_strong (const Vector_3 *es, const Vector_3 &lambdas, const Vector_3 &mn, int nrank) const |
double | get_nonuniform_weight (const Vector_3 &lambdas, int trank) |
Protected Member Functions inherited from Propagation_3 | |
void | convert_constraints (const COM::Attribute *ctypes_faces, COM::Attribute *ctypes_nodes) |
Convert facial constraints to nodal constraints. More... | |
void | determine_constraint_boundary (const COM::Attribute *ctypes_faces, COM::Attribute *ctypes_bndry_edges, COM::Attribute *ctypes_bndry_nodes) |
Convert facial or panel constraints to nodal constraints. More... | |
Static Protected Member Functions | |
template<class FT > | |
static void | solve (const FT &a1, const FT &a2, const FT &b1, const FT &b2, const FT &c1, const FT &c2, FT &x, FT &y) |
template<class FT > | |
static void | solve (const FT &a1, const FT &a2, const FT &a3, const FT &b1, const FT &b2, const FT &b3, const FT &c1, const FT &c2, const FT &c3, const FT &d1, const FT &d2, const FT &d3, FT &x, FT &y, FT &z) |
static void | solve (const Vector_3 A[3], const Vector_3 &q, Vector_3 &x) |
static Vector_2 | proj (const Vector_3 &v, const Vector_3 &d1, const Vector_3 &d2) |
static double | eval_angle (const Vector_3 &v1, const Vector_3 &v2) |
static double | eval_angle (const Vector_2 &v1, const Vector_2 &v2) |
static void | compute_eigenvectors (Vector_3 A[3], Vector_3 &lambdas) |
Static Protected Member Functions inherited from Propagation_3 | |
static void | get_constraint_directions (int type, int &ndirs, Vector_3 dirs[2]) |
Get orthonormals of the constraints. More... | |
static void | enforce_nodal_constraint (int type, Vector_3 &du) |
Enforce constraint for a specific vector. More... | |
static void | bound_nodal_motion (const Point_3 &pnt, const double *bnd, Vector_3 &du, double eps=0) |
static bool | check_spherical_bound (const Point_3 &pnt, const Point_3 &org, const double rad_min, const double rad_max, double eps=0) |
static void | bound_spherical_disp (const Point_3 &pnt, const Point_3 &org, const double rad_min, const double rad_max, Vector_3 &disp, double eps=0) |
static bool | check_radial_bound (const double x, const double y, const double bnd_min, const double bnd_max, double eps=0) |
static void | bound_radial_disp (const double x, const double y, const double bnd_min, const double bnd_max, double &dx, double &dy, double eps=0) |
static bool | check_axial_bound (const double x, const double bnd_min, const double bnd_max, double eps=0) |
static void | bound_axial_disp (const double x, const double bnd_min, const double bnd_max, double &dx, double eps=0) |
static bool | reached_nodal_bound (const Point_3 &pnt, const double *bnd, double eps=0) |
static bool | in_bounding_box (const Point_3 &pnt, const Point_3 &lb, const Point_3 &ub) |
static double | square (double x) |
Protected Attributes | |
bool | _wf_expn |
char | _wght_scheme |
char | _nrm_dfsn |
char | _smoother |
double | _courant |
double | _inv_sqrt_c |
double | _dir_thres_weak |
double | _dir_thres_strong |
double | _tol_angle_weak |
double | _tol_angle_strong |
int | _tol_kstrong |
double | _tol_kangle |
double | _tol_eangle |
double | _tol_cos_osta |
double | _tol_turn_angle |
double | _tol_ad |
double | _eig_thres |
double | _eig_weak_lb |
double | _eig_weak_ub |
bool | _conserv |
bool | _is_strtd |
bool | _feature_layer |
COM::Attribute * | _As |
COM::Attribute * | _boffset |
COM::Attribute * | _bmedial |
COM::Attribute * | _eigvalues |
COM::Attribute * | _eigvecs |
COM::Attribute * | _vnormals |
COM::Attribute * | _facenormals |
COM::Attribute * | _facecenters |
COM::Attribute * | _faceareas |
COM::Attribute * | _vcenters |
COM::Attribute * | _tangranks |
COM::Attribute * | _ctangranks |
COM::Attribute * | _weak |
COM::Attribute * | _strong |
COM::Attribute * | _ridges |
COM::Attribute * | _ridgeneighbors |
COM::Attribute * | _scales |
COM::Attribute * | _weights |
std::vector< std::set< Edge_ID > > | _edges |
Protected Attributes inherited from Propagation_3 | |
Manifold * | _surf |
SURF::Access_Mode | _mode |
COM::Window * | _buf |
int | _rank |
bool | _verb |
bool | _cnstr_set |
bool | _bnd_set |
COM::Attribute * | _cnstr_nodes |
COM::Attribute * | _cnstr_faces |
COM::Attribute * | _cnstr_bndry_edges |
COM::Attribute * | _cnstr_bndry_nodes |
COM::Attribute * | _cnstr_bound |
std::vector< COM::Pane * > | _panes |
Static Protected Attributes | |
static const double | pi = 3.14159265358979 |
Private Types | |
typedef std::map< Edge_ID, std::pair< int, int > > | ObscendSet |
Definition at line 39 of file FaceOffset_3.h.
|
private |
Definition at line 40 of file FaceOffset_3.h.
|
inline |
Default constructor.
Definition at line 43 of file FaceOffset_3.h.
References reset_default_parameters().
FaceOffset_3 | ( | Manifold * | wm, |
COM::Window * | buf | ||
) |
Construct an object from a window manifold and a buffer window.
Definition at line 81 of file FaceOffset_3.C.
References _As, _bmedial, _boffset, Propagation_3::_buf, _ctangranks, _eigvalues, _eigvecs, _faceareas, _facecenters, _facenormals, _is_strtd, Propagation_3::_panes, _ridgeneighbors, _ridges, _scales, _strong, _tangranks, _vcenters, _vnormals, _weak, _weights, COM_CHAR, COM_DOUBLE, COM_INT, COMMPI_Initialized(), i, MPI_MIN, reset_default_parameters(), and s.
|
inlinevirtual |
Definition at line 53 of file FaceOffset_3.h.
|
protected |
|
protected |
|
protected |
Definition at line 33 of file cons_diff.C.
References Propagation_3::_buf, _faceareas, _facenormals, Propagation_3::_panes, _scales, Propagation_3::_surf, _tangranks, _vcenters, _vnormals, _weights, Rocblas::add(), COM_DOUBLE, COM_NC, Rocblas::copy(), Rocblas::copy_scalar(), distribute_volume_e2n(), Rocblas::dot(), E2N_ONE, i, j, k, and Rocblas::sub().
Referenced by obtain_constrained_directions().
|
protected |
Build the list of ridge nighbors and obtain a list of weak-ended vertices Return the number of obscended vertices.
Definition at line 570 of file detect_features.C.
References _edges, Propagation_3::_panes, _ridgeneighbors, _strong, Propagation_3::_surf, _tangranks, _tol_angle_strong, _tol_cos_osta, _tol_eangle, _tol_turn_angle, NTS::abs(), COM_assertion, COM_NC, Rocblas::copy_scalar(), eval_angle(), Element_node_enumerator::size_of_edges(), and RidgeNeighbor::vid.
Referenced by filter_and_identify_ridge_edges().
|
protected |
|
protected |
Definition at line 85 of file AnisotropicSmoothing.C.
References _As, _bmedial, _facecenters, _feature_layer, Propagation_3::_panes, _strong, Propagation_3::_surf, _tangranks, _vcenters, _weights, COM_NC, Rocblas::copy_scalar(), Rocblas::div(), eigen_analyze_vertex(), eval_angle(), get_tangents(), i, j, k, min(), Element_node_enumerator::next(), nj, and Element_node_enumerator::size_of_edges().
Referenced by time_stepping().
|
protected |
Compute mean normals.
Definition at line 447 of file FaceOffset_3.C.
References _eigvalues, _eigvecs, Propagation_3::_panes, _tangranks, _vnormals, i, j, and obtain_directions().
Referenced by time_stepping().
Definition at line 572 of file quadric_analysis.C.
References COM_assertion_msg, dsyevq3(), cimg_library::cimg::info(), and swap().
Referenced by denoise_surface(), and eigen_analyze_vertex().
|
protected |
Compute quadrics for every vertex.
Definition at line 34 of file quadric_analysis.C.
References _As, _bmedial, Propagation_3::_buf, _dir_thres_weak, _eigvalues, _eigvecs, _faceareas, _facecenters, _facenormals, _is_strtd, Propagation_3::_panes, _smoother, Propagation_3::_surf, _tangranks, _vcenters, _vnormals, _weights, _wght_scheme, angle(), COM_assertion_msg, COM_DOUBLE, COM_NC, copy, Rocblas::copy(), Rocblas::copy_scalar(), Rocblas::div(), E2N_ANGLE, E2N_AREA, E2N_ONE, eigen_analyze_vertex(), eval_angle(), i, j, k, Element_node_enumerator::next(), nj, obtain_face_offset(), pi, s, Element_node_enumerator::size_of_edges(), SMOOTHER_ANISOTROPIC, SMOOTHER_LAPLACIAN, and sqrt().
Referenced by time_stepping().
|
protected |
Compute volumn-vector.
|
protected |
|
protected |
Definition at line 260 of file AnisotropicSmoothing.C.
References _As, Propagation_3::_cnstr_nodes, _eigvalues, _faceareas, _facecenters, Propagation_3::_panes, Propagation_3::_surf, _tangranks, _vnormals, _weak, _weights, COM_NC, compute_eigenvectors(), Rocblas::copy_scalar(), Rocblas::div(), get_nonuniform_weight(), i, j, k, nj, and offset().
Referenced by time_stepping().
|
protected |
Definition at line 105 of file cons_diff.C.
References Propagation_3::_panes, Propagation_3::_surf, Rocblas::copy_scalar(), i, j, k, Element_node_enumerator::next(), nj, and Element_node_enumerator::size_of_edges().
Referenced by balance_mass().
Definition at line 240 of file quadric_analysis.C.
References _dir_thres_strong, _dir_thres_weak, _tol_ad, NTS::abs(), and compute_eigenvectors().
Referenced by compute_anisotropic_vertex_centers(), and compute_quadrics().
Definition at line 323 of file FaceOffset_3.h.
References cimg_library::acos(), s, sqrt(), and Vector_3< Type >::squared_norm().
Referenced by build_ridge_neighbor_list(), compute_anisotropic_vertex_centers(), and compute_quadrics().
Definition at line 331 of file FaceOffset_3.h.
References cimg_library::acos(), s, sqrt(), and Vector_2< Type >::squared_norm().
|
protected |
Filter out isolated ridge vertices and identify ridge edges.
Definition at line 33 of file detect_features.C.
References Propagation_3::_buf, _ctangranks, _edges, _eigvecs, _facenormals, Propagation_3::_panes, _ridges, _strong, Propagation_3::_surf, _tangranks, _tol_angle_strong, _tol_angle_weak, _tol_cos_osta, cimg_library::acos(), build_ridge_neighbor_list(), COM_assertion, COM_CHAR, COM_DOUBLE, COM_NC, COMMPI_Initialized(), Rocblas::copy(), Rocblas::copy_scalar(), filter_obscended_ridge(), i, insert_boundary_edges(), j, k, max(), n, Element_node_enumerator::next(), nj, Vector_3< Type >::normalize(), pi, reclassify_ridge_vertices(), and Element_node_enumerator::size_of_edges().
Referenced by time_stepping().
|
protected |
Filter out weak-ended curves.
Definition at line 702 of file detect_features.C.
References Propagation_3::_panes, _ridgeneighbors, _strong, Propagation_3::_surf, _tangranks, _tol_kangle, _tol_kstrong, RidgeNeighbor::eid, i, remove_obscure_curves(), and RidgeNeighbor::vid.
Referenced by filter_and_identify_ridge_edges().
|
inline |
Get the constant in front of CFL condition (0<=c<=1)
Definition at line 87 of file FaceOffset_3.h.
References _courant.
|
inline |
Get the threshold of eigenvalues for splitting primary and null spaces.
Definition at line 80 of file FaceOffset_3.h.
References _eig_thres.
|
inline |
Get the threshold for strong-feature angle.
Definition at line 114 of file FaceOffset_3.h.
References _tol_angle_strong.
|
inline |
Set the threshold for weak-feature angle.
Definition at line 118 of file FaceOffset_3.h.
References _tol_cos_osta, and cimg_library::acos().
|
inline |
Get the threshold for weak-feature angle.
Definition at line 110 of file FaceOffset_3.h.
References _tol_angle_weak.
|
protected |
Definition at line 47 of file AnisotropicSmoothing.C.
Referenced by denoise_surface().
|
inline |
Get number of iterations for normal diffusion.
Definition at line 73 of file FaceOffset_3.h.
References _nrm_dfsn.
|
inlineprotected |
|
protected |
Definition at line 58 of file AnisotropicSmoothing.C.
References _dir_thres_strong, is_acute_corner(), is_acute_ridge(), max(), min(), and sqrt().
Referenced by compute_anisotropic_vertex_centers().
|
inline |
|
inline |
|
protected |
Definition at line 415 of file detect_features.C.
References Propagation_3::_buf, Propagation_3::_cnstr_bndry_edges, _edges, Propagation_3::_panes, Propagation_3::_surf, COMMPI_Initialized(), i, iend, j, k, MPI_SUM, Element_node_enumerator::next(), nj, and Element_node_enumerator::size_of_edges().
Referenced by filter_and_identify_ridge_edges().
|
inlineprotected |
Definition at line 357 of file FaceOffset_3.h.
References NTS::abs().
Referenced by get_tangents(), and is_strong().
|
inlineprotected |
Definition at line 352 of file FaceOffset_3.h.
References NTS::abs().
Referenced by get_tangents(), and is_strong().
|
protected |
Definition at line 36 of file AnisotropicSmoothing.C.
References _dir_thres_strong, is_acute_corner(), and is_acute_ridge().
|
protected |
Mark vertices that are weak.
Definition at line 356 of file quadric_analysis.C.
References _eig_thres, _eig_weak_lb, _eig_weak_ub, _eigvalues, Propagation_3::_panes, Propagation_3::_surf, _tangranks, _weak, Rocblas::copy_scalar(), i, j, and nj.
Referenced by time_stepping().
|
protected |
Redistribute smooth vertices by NuLaplacian smoothing.
Definition at line 36 of file NuLaplacian.C.
References _eigvecs, Propagation_3::_panes, Propagation_3::_surf, NTS::abs(), COM_assertion_msg, COM_NC, Rocblas::copy_scalar(), Vector_3< Type >::cross_product(), i, j, k, Element_node_enumerator::next(), nj, Vector_3< Type >::normalize(), and Element_node_enumerator::size_of_edges().
Referenced by time_stepping().
|
protected |
Introduce numerical dissipation into equation.
|
protected |
Decompose propagation directions based on constraints.
Definition at line 506 of file FaceOffset_3.C.
References _As, _bmedial, _boffset, Propagation_3::_cnstr_bndry_nodes, Propagation_3::_cnstr_nodes, _conserv, _eig_thres, _eigvalues, _eigvecs, Propagation_3::_panes, Propagation_3::_surf, _tangranks, NTS::abs(), balance_mass(), Vector_3< Type >::cross_product(), Mesquite::det(), Propagation_3::get_constraint_directions(), i, j, k, Vector_3< Type >::normalize(), and obtain_directions().
Referenced by time_stepping().
|
protected |
Definition at line 475 of file FaceOffset_3.C.
References _eig_thres, k, and Vector_3< Type >::normalize().
Referenced by compute_directions(), and obtain_constrained_directions().
|
protected |
Definition at line 332 of file FaceOffset_3.C.
References NTS::abs(), COM_assertion_msg, Vector_3< Type >::cross_product(), d, i, Element_node_enumerator::id(), Attribute::is_elemental(), Attribute::is_nodal(), k, Vector_3< Type >::norm(), Vector_3< Type >::normalize(), Element_node_vectors_k_const< Value >::set(), Attribute::size_of_components(), and Element_node_enumerator::size_of_edges().
Referenced by compute_quadrics().
|
inlinestaticprotected |
Definition at line 318 of file FaceOffset_3.h.
|
protected |
Definition at line 461 of file detect_features.C.
References Propagation_3::_buf, _edges, Propagation_3::_panes, Propagation_3::_surf, _tol_cos_osta, NTS::abs(), COM_assertion, COM_DOUBLE, COM_NC, Rocblas::copy_scalar(), j, nj, and Vector_3< Type >::normalize().
Referenced by filter_and_identify_ridge_edges().
|
protected |
Definition at line 780 of file detect_features.C.
References _edges, Propagation_3::_panes, _ridgeneighbors, Propagation_3::_surf, _tangranks, RidgeNeighbor::eid, i, and RidgeNeighbor::vid.
Referenced by filter_obscended_ridge().
|
protected |
Reduce time step based on stability limit, and rescale displacements by the reduced time step and diffusing expansion.
Returns the relative time step.
Definition at line 654 of file FaceOffset_3.C.
References Propagation_3::_buf, _courant, _facenormals, Propagation_3::_panes, Propagation_3::_surf, _tangranks, Rocblas::add(), COM_assertion_msg, COM_NC, COMMPI_Comm_size(), COMMPI_Initialized(), Vector_3< Type >::cross_product(), i, j, k, MPI_LOR, MPI_MIN, Rocblas::mul_scalar(), Element_node_enumerator::next(), nj, Element_node_enumerator::size_of_edges(), and solve_quadratic_func().
Referenced by time_stepping().
void reset_default_parameters | ( | bool | b = false | ) |
Definition at line 44 of file FaceOffset_3.C.
References _conserv, _courant, _dir_thres_strong, _dir_thres_weak, _eig_thres, _eig_weak_lb, _eig_weak_ub, _feature_layer, _inv_sqrt_c, _nrm_dfsn, _smoother, _tol_ad, _tol_angle_strong, _tol_angle_weak, _tol_cos_osta, _tol_eangle, _tol_kangle, _tol_kstrong, _tol_turn_angle, _wf_expn, _wght_scheme, cos, E2N_ANGLE, E2N_AREA, pi, SMOOTHER_LAPLACIAN, sqrt(), Propagation_3::square(), and cimg_library::tan().
Referenced by FaceOffset_3().
|
inline |
|
inline |
Set the constant in front of CFL condition (0<=c<1)
Definition at line 83 of file FaceOffset_3.h.
References _courant, _inv_sqrt_c, COM_assertion, and sqrt().
|
inline |
Set the threshold of eigenvalues for splitting primary and null spaces.
Definition at line 76 of file FaceOffset_3.h.
References _eig_thres, and COM_assertion.
|
inline |
Set the threshold for weak-feature angle.
Definition at line 100 of file FaceOffset_3.h.
References _tol_angle_strong, and pi.
|
inline |
Set the threshold for weak-feature angle.
Definition at line 105 of file FaceOffset_3.h.
References _tol_cos_osta, cos, and pi.
|
inline |
Set the threshold for weak-feature angle.
Definition at line 94 of file FaceOffset_3.h.
References _dir_thres_weak, _tol_angle_weak, pi, Propagation_3::square(), and cimg_library::tan().
|
inline |
Set whether or not to use feature layer.
Definition at line 70 of file FaceOffset_3.h.
References _feature_layer.
|
inline |
|
inline |
Set the choice of mesh smoother.
Definition at line 122 of file FaceOffset_3.h.
References _smoother.
|
inline |
|
inline |
|
inlineprotected |
Definition at line 312 of file FaceOffset_3.h.
|
inlinestaticprotected |
Definition at line 271 of file FaceOffset_3.h.
References denom.
Referenced by solve().
|
inlinestaticprotected |
Definition at line 300 of file FaceOffset_3.h.
References solve().
|
protected |
Definition at line 772 of file FaceOffset_3.C.
References NTS::abs(), Mesquite::det(), max(), and sqrt().
Referenced by rescale_displacements().
|
virtual |
Main entry of the algorithm.
At input, the value of smoothed specifies whether smoothing is desired.
Implements Propagation_3.
Definition at line 160 of file FaceOffset_3.C.
References Propagation_3::_bnd_set, _boffset, Propagation_3::_buf, Propagation_3::_cnstr_nodes, Propagation_3::_cnstr_set, _courant, _eigvalues, _eigvecs, _faceareas, _facecenters, _facenormals, _is_strtd, Propagation_3::_rank, _ridges, _scales, _smoother, Propagation_3::_surf, _tangranks, _vcenters, Propagation_3::_verb, _vnormals, _weights, _wf_expn, _wght_scheme, Rocblas::add(), Propagation_3::bound_nodal_motion(), COM_assertion_msg, compute_anisotropic_vertex_centers(), compute_directions(), compute_quadrics(), Rocblas::copy(), Rocblas::copy_scalar(), denoise_surface(), E2N_ANGLE, filter_and_identify_ridge_edges(), i, mark_weak_vertices(), Rocblas::mul_scalar(), nulaplacian_smooth(), obtain_constrained_directions(), rescale_displacements(), SMOOTHER_ANISOTROPIC, SMOOTHER_LAPLACIAN, and update_vertex_centers().
|
protected |
|
protected |
Definition at line 267 of file quadric_analysis.C.
References Propagation_3::_buf, Propagation_3::_cnstr_bndry_nodes, _ctangranks, _edges, Propagation_3::_panes, Propagation_3::_surf, _tangranks, _vcenters, COM_DOUBLE, COM_NC, i, j, and Element_node_enumerator::size_of_edges().
Referenced by time_stepping().
|
protected |
Definition at line 403 of file FaceOffset_3.h.
Referenced by compute_anisotropic_vertex_centers(), compute_quadrics(), denoise_surface(), FaceOffset_3(), and obtain_constrained_directions().
|
protected |
Definition at line 405 of file FaceOffset_3.h.
Referenced by compute_anisotropic_vertex_centers(), compute_quadrics(), FaceOffset_3(), and obtain_constrained_directions().
|
protected |
Definition at line 404 of file FaceOffset_3.h.
Referenced by FaceOffset_3(), obtain_constrained_directions(), and time_stepping().
|
protected |
Definition at line 399 of file FaceOffset_3.h.
Referenced by obtain_constrained_directions(), reset_default_parameters(), and set_conserve().
|
protected |
Definition at line 378 of file FaceOffset_3.h.
Referenced by get_courant_constant(), rescale_displacements(), reset_default_parameters(), set_courant_constant(), and time_stepping().
|
protected |
Definition at line 418 of file FaceOffset_3.h.
Referenced by FaceOffset_3(), filter_and_identify_ridge_edges(), and update_vertex_centers().
|
protected |
Definition at line 382 of file FaceOffset_3.h.
Referenced by eigen_analyze_vertex(), get_tangents(), is_strong(), and reset_default_parameters().
|
protected |
Definition at line 381 of file FaceOffset_3.h.
Referenced by compute_quadrics(), eigen_analyze_vertex(), reset_default_parameters(), and set_fangle_weak().
|
protected |
Definition at line 427 of file FaceOffset_3.h.
Referenced by build_ridge_neighbor_list(), filter_and_identify_ridge_edges(), insert_boundary_edges(), reclassify_ridge_vertices(), remove_obscure_curves(), and update_vertex_centers().
|
protected |
Definition at line 394 of file FaceOffset_3.h.
Referenced by get_eigen_threshold(), mark_weak_vertices(), obtain_constrained_directions(), obtain_directions(), reset_default_parameters(), and set_eigen_threshold().
|
protected |
Definition at line 396 of file FaceOffset_3.h.
Referenced by mark_weak_vertices(), and reset_default_parameters().
|
protected |
Definition at line 397 of file FaceOffset_3.h.
Referenced by mark_weak_vertices(), and reset_default_parameters().
|
protected |
Definition at line 406 of file FaceOffset_3.h.
Referenced by compute_directions(), compute_quadrics(), denoise_surface(), FaceOffset_3(), mark_weak_vertices(), obtain_constrained_directions(), and time_stepping().
|
protected |
Definition at line 407 of file FaceOffset_3.h.
Referenced by compute_directions(), compute_quadrics(), FaceOffset_3(), filter_and_identify_ridge_edges(), nulaplacian_smooth(), obtain_constrained_directions(), and time_stepping().
|
protected |
Definition at line 414 of file FaceOffset_3.h.
Referenced by balance_mass(), compute_quadrics(), denoise_surface(), FaceOffset_3(), and time_stepping().
|
protected |
Definition at line 413 of file FaceOffset_3.h.
Referenced by compute_anisotropic_vertex_centers(), compute_quadrics(), denoise_surface(), FaceOffset_3(), and time_stepping().
|
protected |
Definition at line 412 of file FaceOffset_3.h.
Referenced by balance_mass(), compute_quadrics(), FaceOffset_3(), filter_and_identify_ridge_edges(), rescale_displacements(), and time_stepping().
|
protected |
Definition at line 401 of file FaceOffset_3.h.
Referenced by compute_anisotropic_vertex_centers(), reset_default_parameters(), and set_feature_layer().
|
protected |
Definition at line 379 of file FaceOffset_3.h.
Referenced by reset_default_parameters(), and set_courant_constant().
|
protected |
Definition at line 400 of file FaceOffset_3.h.
Referenced by compute_quadrics(), FaceOffset_3(), and time_stepping().
|
protected |
Definition at line 375 of file FaceOffset_3.h.
Referenced by get_normal_diffuion(), reset_default_parameters(), and set_normal_diffusion().
|
protected |
Definition at line 422 of file FaceOffset_3.h.
Referenced by build_ridge_neighbor_list(), FaceOffset_3(), filter_obscended_ridge(), and remove_obscure_curves().
|
protected |
Definition at line 421 of file FaceOffset_3.h.
Referenced by FaceOffset_3(), filter_and_identify_ridge_edges(), and time_stepping().
|
protected |
Definition at line 424 of file FaceOffset_3.h.
Referenced by balance_mass(), FaceOffset_3(), and time_stepping().
|
protected |
Definition at line 376 of file FaceOffset_3.h.
Referenced by compute_quadrics(), reset_default_parameters(), set_smoother(), and time_stepping().
|
protected |
Definition at line 420 of file FaceOffset_3.h.
Referenced by build_ridge_neighbor_list(), compute_anisotropic_vertex_centers(), FaceOffset_3(), filter_and_identify_ridge_edges(), and filter_obscended_ridge().
|
protected |
Definition at line 417 of file FaceOffset_3.h.
Referenced by balance_mass(), build_ridge_neighbor_list(), compute_anisotropic_vertex_centers(), compute_directions(), compute_quadrics(), denoise_surface(), FaceOffset_3(), filter_and_identify_ridge_edges(), filter_obscended_ridge(), mark_weak_vertices(), obtain_constrained_directions(), remove_obscure_curves(), rescale_displacements(), time_stepping(), and update_vertex_centers().
|
protected |
Definition at line 393 of file FaceOffset_3.h.
Referenced by eigen_analyze_vertex(), and reset_default_parameters().
|
protected |
Definition at line 385 of file FaceOffset_3.h.
Referenced by build_ridge_neighbor_list(), filter_and_identify_ridge_edges(), get_fangle_strong_radians(), reset_default_parameters(), and set_fangle_strong().
|
protected |
Definition at line 384 of file FaceOffset_3.h.
Referenced by filter_and_identify_ridge_edges(), get_fangle_weak_radians(), reset_default_parameters(), and set_fangle_weak().
|
protected |
Definition at line 391 of file FaceOffset_3.h.
Referenced by build_ridge_neighbor_list(), filter_and_identify_ridge_edges(), get_fangle_turn_radians(), reclassify_ridge_vertices(), reset_default_parameters(), and set_fangle_turn().
|
protected |
Definition at line 389 of file FaceOffset_3.h.
Referenced by build_ridge_neighbor_list(), and reset_default_parameters().
|
protected |
Definition at line 388 of file FaceOffset_3.h.
Referenced by filter_obscended_ridge(), and reset_default_parameters().
|
protected |
Definition at line 387 of file FaceOffset_3.h.
Referenced by filter_obscended_ridge(), and reset_default_parameters().
|
protected |
Definition at line 392 of file FaceOffset_3.h.
Referenced by build_ridge_neighbor_list(), and reset_default_parameters().
|
protected |
Definition at line 415 of file FaceOffset_3.h.
Referenced by balance_mass(), compute_anisotropic_vertex_centers(), compute_quadrics(), FaceOffset_3(), time_stepping(), and update_vertex_centers().
|
protected |
Definition at line 410 of file FaceOffset_3.h.
Referenced by balance_mass(), compute_directions(), compute_quadrics(), denoise_surface(), FaceOffset_3(), and time_stepping().
|
protected |
Definition at line 419 of file FaceOffset_3.h.
Referenced by denoise_surface(), FaceOffset_3(), and mark_weak_vertices().
|
protected |
Definition at line 425 of file FaceOffset_3.h.
Referenced by balance_mass(), compute_anisotropic_vertex_centers(), compute_quadrics(), denoise_surface(), FaceOffset_3(), and time_stepping().
|
protected |
Definition at line 373 of file FaceOffset_3.h.
Referenced by get_wavefrontal_expansion(), reset_default_parameters(), set_wavefrontal_expansion(), and time_stepping().
|
protected |
Definition at line 374 of file FaceOffset_3.h.
Referenced by compute_quadrics(), get_weighting_scheme(), reset_default_parameters(), set_weighting_scheme(), and time_stepping().
|
staticprotected |
Definition at line 429 of file FaceOffset_3.h.
Referenced by compute_quadrics(), filter_and_identify_ridge_edges(), reset_default_parameters(), set_fangle_strong(), set_fangle_turn(), and set_fangle_weak().