|
Geogram Version 1.9.7
A programming library of geometric algorithms
|
Represents the set of radial halfedge bundles. More...
#include <geogram/mesh/mesh_surface_intersection.h>
Public Types | |
| typedef std::pair< index_t, index_t > | ChartPos |
| Indicates where to find a chart in a bundle. | |
Public Member Functions | |
| RadialBundles (MeshSurfaceIntersection &I) | |
| RadialBundles constructor. | |
| void | initialize () |
| Initializes the structure. | |
| index_t | nb () const |
| Gets the number of bundles. | |
| index_as_iterator | begin () const |
| used by range-based for | |
| index_as_iterator | end () const |
| used by range-based for | |
| index_t | nb_halfedges (index_t bndl) const |
| Gets the number of halfedges in a bundle. | |
| index_t | halfedge (index_t bndl, index_t li) const |
| Gets a halfedge in a bundle from local index. | |
| void | set_halfedge (index_t bndl, index_t li, index_t h) |
| Sets a halfedge in a bundle. | |
| index_ptr_range | halfedges (index_t bndl) |
| gets the halfedges in a bundle | |
| const_index_ptr_range | halfedges (index_t bndl) const |
| gets the halfedges in a bundle | |
| index_t | vertex (index_t bndl, index_t lv) const |
| gets one of the vertices at the two extremities of a bundle | |
| index_t | vertex_first_bundle (index_t v) const |
| gets the first bundle starting from a vertex | |
| index_t | next_around_vertex (index_t bndl) const |
| gets the next bundle around a vertex | |
| index_t | nb_bundles_around_vertex (index_t v) const |
| gets the bumber of bundles around a vertex | |
| index_t | opposite (index_t bndl) |
| gets the opposite bundle | |
| index_t | prev_along_polyline (index_t bndl) |
| gets the predecessor of a bundle along its polyline | |
| index_t | next_along_polyline (index_t bndl) |
| gets the successor of a bundle along its polyline | |
| bool | radial_sort (index_t bndl, RadialSort &RS) |
| Sorts the halfedges of the bundle in-place. | |
| void | set_sorted_halfedges (index_t bndl, const vector< index_t > &halfedges) |
| Sets the halfedges of a bundle. | |
| void | get_sorted_incident_charts (index_t bndl, vector< ChartPos > &chart_pos) |
| Gets the sorted list of charts around bundle. | |
| bool | is_sorted (index_t bndl) const |
Public Attributes | |
| MeshSurfaceIntersection & | I_ |
| Mesh & | mesh_ |
| Attribute< index_t > | facet_chart_ |
| vector< index_t > | H_ |
| vector< index_t > | bndl_start_ |
| vector< index_t > | v_first_bndl_ |
| vector< index_t > | bndl_next_around_v_ |
| vector< bool > | bndl_is_sorted_ |
Represents the set of radial halfedge bundles.
A Radial bundle corresponds to the set of halfedges connecting the same pair of vertices (and in the same order).
Definition at line 770 of file mesh_surface_intersection.h.
| typedef std::pair<index_t, index_t> GEO::MeshSurfaceIntersection::RadialBundles::ChartPos |
Indicates where to find a chart in a bundle.
the first index is a chart index, and the second index indicates which halfedge in a bundle is incident to that chart.
Definition at line 1022 of file mesh_surface_intersection.h.
|
inline |
RadialBundles constructor.
| [in] | I | a reference to the MeshSurfaceIntersectionx |
Definition at line 777 of file mesh_surface_intersection.h.
|
inline |
used by range-based for
Definition at line 797 of file mesh_surface_intersection.h.
|
inline |
used by range-based for
Definition at line 805 of file mesh_surface_intersection.h.
| void GEO::MeshSurfaceIntersection::RadialBundles::get_sorted_incident_charts | ( | index_t | bndl, |
| vector< ChartPos > & | chart_pos | ||
| ) |
Gets the sorted list of charts around bundle.
| [in] | bndl | a bundle |
| [out] | chart_pos | a list of (chart id, halfedge index) couples, sorted by chart id, and where the halfedge index is the original index in the bundle before sorting |
|
inline |
Gets a halfedge in a bundle from local index.
| [in] | bndl | the bundle |
| [in] | li | the local index of the halfedge in the bundle, in [0 .. nb_halfedges(bndl)-1] |
Definition at line 826 of file mesh_surface_intersection.h.
|
inline |
gets the halfedges in a bundle
| [in] | bndl | bundle index |
Definition at line 850 of file mesh_surface_intersection.h.
|
inline |
gets the halfedges in a bundle
| [in] | bndl | bundle index |
Definition at line 861 of file mesh_surface_intersection.h.
| void GEO::MeshSurfaceIntersection::RadialBundles::initialize | ( | ) |
Initializes the structure.
Needs to be called before any other function
|
inline |
Definition at line 1035 of file mesh_surface_intersection.h.
|
inline |
Gets the number of bundles.
Definition at line 789 of file mesh_surface_intersection.h.
|
inline |
gets the bumber of bundles around a vertex
| [in] | v | the vertex |
v Definition at line 907 of file mesh_surface_intersection.h.
Gets the number of halfedges in a bundle.
| [in] | bndl | the bundle |
bndl Definition at line 814 of file mesh_surface_intersection.h.
gets the successor of a bundle along its polyline
Definition at line 956 of file mesh_surface_intersection.h.
|
inline |
gets the next bundle around a vertex
| [in] | bndl | the bundle |
bundles starting from the same vertex are chained
bndl, or NO_INDEX if there is no such bundle Definition at line 898 of file mesh_surface_intersection.h.
gets the opposite bundle
| [in] | bndl | a bundle index |
Definition at line 925 of file mesh_surface_intersection.h.
gets the predecessor of a bundle along its polyline
Definition at line 935 of file mesh_surface_intersection.h.
|
inline |
Sorts the halfedges of the bundle in-place.
| [in] | bndl | the bundle |
| [in] | RS | a RadialSort structure (that caches some information) |
| true | if radial sort was successful |
| false | otherwise (may happen with expansion_nt) |
Definition at line 980 of file mesh_surface_intersection.h.
|
inline |
Sets a halfedge in a bundle.
| [in] | bndl | the bundle |
| [in] | li | the local index of the halfedge in the bunble, in [0 .. nb_halfedges(bndl)-1] |
| [in] | h | the new halfedge |
Definition at line 839 of file mesh_surface_intersection.h.
|
inline |
Sets the halfedges of a bundle.
Used when radial sorting can be replaced with combinatorial propagation.
| [in] | bndl | a bundle |
| [in] | halfedges | the sorted list of the halfedges in the bundle |
Definition at line 1007 of file mesh_surface_intersection.h.
|
inline |
gets one of the vertices at the two extremities of a bundle
| [in] | bndl | bundle index |
| [in] | lv | local vertex index, in {0,1} |
lv = 0 the source vertex, if lv = 1 the destination vertex Definition at line 874 of file mesh_surface_intersection.h.
gets the first bundle starting from a vertex
| [in] | v | the vertex |
bundles starting from the same vertex are chained
v, or NO_INDEX if there is no such bundle Definition at line 887 of file mesh_surface_intersection.h.
| vector<bool> GEO::MeshSurfaceIntersection::RadialBundles::bndl_is_sorted_ |
Definition at line 1048 of file mesh_surface_intersection.h.
Definition at line 1047 of file mesh_surface_intersection.h.
Definition at line 1045 of file mesh_surface_intersection.h.
Definition at line 1043 of file mesh_surface_intersection.h.
Definition at line 1044 of file mesh_surface_intersection.h.
| MeshSurfaceIntersection& GEO::MeshSurfaceIntersection::RadialBundles::I_ |
Definition at line 1041 of file mesh_surface_intersection.h.
| Mesh& GEO::MeshSurfaceIntersection::RadialBundles::mesh_ |
Definition at line 1042 of file mesh_surface_intersection.h.
Definition at line 1046 of file mesh_surface_intersection.h.