#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().