MEPP2 Project
|
The Point Cloud processing API is provided by the Point Cloud concept detailed below.
See also:
The objective of the PointCloud concept is to enable the manipulation of Point Cloud (PC) objects within the geometrical context of mesh manipulations. Point Clouds can be conceived as the geometric information of more general concepts like meshes or cell-sets. The PointCloud concept offers the ability to manipulate such point clouds independently from such other concepts for example when working on point cloud data coming from specialized sources (e.g. LIDAR data).
PC
A type that is a model of PointCloud
.pc
An object of type PC
.u
,v
, w
Vertex descriptors.Type | Reference | Description |
---|---|---|
vertices_size_type | VertexListGraph (boost) | The unsigned integer type used to represent the number of point in the point cloud. |
vertex_descriptor | Graph (boost) | A vertex descriptor corresponds to a unique node in a Point Cloud instance. A vertex descriptor must be Default Constructible, Assignable, and Equality Comparable. |
vertex_iterator | VertexListGraph (boost) | A vertex iterator (obtained via vertices(g) ) provides access to all of the vertices in a point cloud. A vertex iterator type must meet the requirements of MultiPassInputIterator. The value type of the vertex iterator must be the vertex descriptor of the point cloud. |
Expression | Reference | Returns | Description |
---|---|---|---|
Traversals | |||
vertices(pc) | VertexListGraph (boost) | std::pair<vertex_iterator, vertex_iterator> | Returns an iterator-range providing access to all the points in the point cloud pc . |
size_of_vertices(pc) | ListGraphExtensions (MEPP2) | vertices_size_type | Returns the exact number of vertices in the point cloud pc , as opposed to ‘'num_vertices(pc)’which returns an upper bound.\ilinebr </td> </tr> <tr class="markdownTableRowEven"> <td class="markdownTableBodyNone"> num_vertices(pc)\ilinebr </td> <td class="markdownTableBodyNone"> [VertexListGraph (boost)](http://www.boost.org/doc/libs/1_60_0/libs/graph/doc/VertexListGraph.html)\ilinebr </td> <td class="markdownTableBodyNone"> vertices_size_type\ilinebr </td> <td class="markdownTableBodyNone"> Returns an upper bound of the number of vertices in the point cloud pc. Provided only for compatibility with base concepts. Its usage is highly discouraged in favor of 'size_of_vertices(pc)'`. |
Mutability | |||
add_vertex(pc) | MutableGraph (boost) | vertex_descriptor | Add a new vertex to the point cloud. The vertex_descriptor for the new vertex is returned. |
remove_vertex(v, pc) | MutableGraph (boost) | void | Remove v from the vertex set of point cloud. |
Miscelaneous | |||
null_vertex() | Graph (boost) | vertex_descriptor | Returns a special vertex_descriptor object which does not refer to any vertex of point cloud object which type is PC. |
Neighborhood | |||
create_kd_tree(pc) | Smart pointer to a k-d tree | Returns a smart pointer to a k-d tree that can be later used for nearest neighbor searches. The smart pointer must NOT be manually deleted. | |
kNN_search(kd_tree, k, query, pc) | std::pair< std::vector<vertex_descriptor>, std::vector<double> > | Looks for the 'k' nearest neighbors of the point 'query' in the point cloud 'pc' using the previously created k-d tree 'kd_tree'. Returns a pair of vectors: the first vector contains the vertex descriptors of the k nearest neighbors, the second vector contains the distance of each nearest neighbor to the 'query' point. The 'query' point is given by its geometry and do not need to be an existing point of the point cloud. | |
radius_search(kd_tree, radius, query, pc) | std::pair< std::vector<vertex_descriptor>, std::vector<double> > | Looks for the neighbors of the point 'query' in the given 'radius' in the point cloud 'pc' using the previously created k-d tree 'kd_tree'. Returns a pair of vectors: the first vector contains the vertex descriptors of the neighbors, the second vector contains the distance of each neighbor to the 'query' point. The 'query' point is given by its geometry and do not need to be an existing point of the point cloud. |