Functions | |
float | comp_angle_defect (Vertex *v) |
Compute the angle defect of a vertex. More... | |
float | cos_face_angle (Halfedge *h, Halfedge *hopp) |
Compute the cosine of the face angle (dihedral angle) at an edge. More... | |
float | cos_edge_angle (const Halfedge *h1, const Halfedge *h2) |
Compute the cosine of the edge angle at a vertex between two incident feature edges. More... | |
float | cos_edge_angle (const Feature_1 &f1, Feature_1::const_iterator it, bool isloop) |
Compute the cosine of the edge angle at a vertex in a given feature curve. More... | |
bool | is_strong_ad (Vertex *v) |
Determine whether a vertex is strong (either theta-strong or relatively strong) in angle defect. More... | |
bool | is_rstrong_ea (const Feature_1 &f1, Feature_1::const_iterator hprev, Feature_1::const_iterator hnext, float cos_ea, bool isloop) |
Determine whether a vertex is relatively strong in edge angle within a give feature. More... | |
template<class T > | |
T | squares (const T &t) |
void | init_feature_parameters () |
Read in the control file for feature detection. More... | |
|
protected |
Compute the angle defect of a vertex.
The angle defect at v is defined as:
Definition at line 224 of file RFC_Window_overlay_fea.C.
References NTS::abs(), acc, cimg_library::acos(), d, RFC_Pane_overlay::get_angle_defect(), HDS_accessor< _MP >::get_halfedge(), HDS_accessor< _MP >::get_next(), HDS_accessor< _MP >::get_next_around_destination(), HDS_accessor< _MP >::get_pane(), HUGE_VALF, HDS_accessor< _MP >::is_border(), and pi.
Compute the cosine of the edge angle at a vertex between two incident feature edges.
Definition at line 163 of file RFC_Window_overlay_fea.C.
References acc, d, HDS_accessor< _MP >::get_destination(), HDS_accessor< _MP >::get_origin(), get_tangent(), max(), min(), and sqrt().
|
protected |
Compute the cosine of the edge angle at a vertex in a given feature curve.
It saves the solution by associating it with the vertex. When the routine is invoked on the same vertex next time, it will return the saved value if the vertex is not at the end of the feature curve.
Definition at line 181 of file RFC_Window_overlay_fea.C.
References acc, RFC_Pane_overlay::get_cos_edge_angle(), HDS_accessor< _MP >::get_destination(), HDS_accessor< _MP >::get_origin(), HDS_accessor< _MP >::get_pane(), HUGE_VALF, and v.
Compute the cosine of the face angle (dihedral angle) at an edge.
When the face angle was computed the first time, it is saved and subsequent calls for the same edge will simply return the stored value. The face angle is defined to be pi if the edge is on the border.
Definition at line 139 of file RFC_Window_overlay_fea.C.
References acc, RFC_Pane_overlay::get_cos_face_angle(), Overlay_primitives::get_face_normal(), HDS_accessor< _MP >::get_pane(), HUGE_VALF, HDS_accessor< _MP >::is_border(), min(), p1, and sqrt().
|
private |
Read in the control file for feature detection.
The control file should be named as <window name>="">.fc. It should contain five lines. The first three lines correspond to the parameters for face angle, angle defect, and edge angle, respectively. The fourth line controls filteration rules, including the minimum edge length for open-ended 1-features, whether to apply long-falseness checking with strong endedness, and whether whether to snap the feature onto the reference mesh. The last line controls verbose level. A sample control file (default) is:
0.76604444 0.98480775 3 0.98480775 1.3962634 0.314159265 3 0.17364818 0.96592583 3 6 1 0 0 1
For RSRM dataset, use the following control files: 0.5 0.6 3 0.17365 # cos(face_angle_ub) cos(face_angle_lb) face_angle_r cos(weak_end) 1.39626 0.314159 3 # angle_defect_ub angle_defect_lb angle_defect_r 0 0.5 3 # cos(turn_angle_ub) cos(turn_angle_lb) turn_angle_r 6 1 1 0 # min-length-of-ridge long-falseness-rule strong-ended-check snapping 1 # verbose level
If the control file is missing, then the default values (above) will be used. These default values should work for most cases. For some extreme cases, adjusting the signal-to-noise ratios (the last parameters of the first three lines) and the minimum edge (line 4) should suffice.
Definition at line 81 of file RFC_Window_overlay_fea.C.
References cos, and RFC_assertion.
Referenced by RFC_Window_overlay::RFC_Window_overlay().
|
protected |
Determine whether a vertex is relatively strong in edge angle within a give feature.
Definition at line 278 of file RFC_Window_overlay_fea.C.
References cimg_library::acos(), and min().
|
protected |
Determine whether a vertex is strong (either theta-strong or relatively strong) in angle defect.
Definition at line 253 of file RFC_Window_overlay_fea.C.
References acc, d, HDS_accessor< _MP >::get_halfedge(), HDS_accessor< _MP >::get_next_around_destination(), HDS_accessor< _MP >::get_origin(), and max().
T squares | ( | const T & | t | ) |
Definition at line 246 of file RFC_Window_overlay_fea.C.