PointCloud2BIM Library
1.0
Library to facilitate the transpormation of point clouds into digital BIM representation
|
Public Member Functions | |
Plane () | |
Creates empty plane. | |
Plane (double _a, double _b, double _c, double _d) | |
Creates plane from given plane coefficients ( ![]() | |
Plane (Vector3 _a, Vector3 _b, Vector3 _c) | |
Creates plane from the coordinates (x,y,z) of the three given points. More... | |
Plane (PointXYZ _a, PointXYZ _b, PointXYZ _c) | |
Creates plane from three given points (PointXYZNormal). More... | |
Plane (PointXYZNormal _a, PointXYZNormal _b, PointXYZNormal _c) | |
Creates plane from three given points (PointXYZNormal). More... | |
const double * | getNormal () const |
Returns plane normal vector. More... | |
double * | getNormal () |
Returns plane normal vector. More... | |
void | setNormal (double nx, double ny, double nz) |
Sets plane normal vector. More... | |
const double * | getMin () const |
Returns minimum coordinates. More... | |
void | setMin (double x, double y, double z) |
Sets minimum coordinates. More... | |
const double * | getMax () const |
Returns maximum coordinates. More... | |
void | setMax (double x, double y, double z) |
Sets maximum coordinates. More... | |
int | getId () const |
Returns Plane identifier. More... | |
void | setId (int id) |
Sets Plane identifier. More... | |
int | getFloorId () const |
Returns Floor identifier. More... | |
void | setFloorId (int id) |
Sets Floor identifier. More... | |
double | getD () const |
Returns coefficient d (Plane = ![]() | |
void | setD (double d) |
Sets coefficient d (Plane = ![]() | |
std::vector< int > & | getPointCloudIDs () |
Returns Plane PointClouds identifiers. More... | |
void | setPointCloudIDs (std::vector< int > pcl_ids) |
const std::vector< PointCloud > & | getPointClouds () const |
Returns Plane PointClouds. More... | |
std::vector< PointCloud > & | getPointClouds () |
Returns Plane PointClouds. More... | |
void | addPointCloud (PointCloud &pc) |
Adds PointCloud to the Plane. More... | |
template<typename T > | |
void | getPoints (std::vector< T > &points) |
Returns Plane Points. More... | |
Vector3 | getNormalVector () |
Returns Plane normal vector. More... | |
double | distanceTo (Vector3 &v) |
Returns the distance between the receiver and the given point. More... | |
double | distanceTo (PointXYZ &p) |
Returns the distance between the receiver and the given point. More... | |
double | distanceTo (PointXYZNormal p) |
Returns the distance between the receiver and the given point. More... | |
double | distanceTo (std::vector< PointXYZ > &points) |
double | distanceTo (std::vector< PointXYZNormal > &points) |
Returns the distance between the receiver and the given point. More... | |
Static Public Member Functions | |
static double | angleBetween (double a1, double b1, double c1, double a2, double b2, double c2) |
static void | getLocalContinuity (std::vector< PointXYZ > points1, std::vector< PointXYZ > points2, std::vector< int > &result) |
static void | getLocalMatch (std::vector< PointXYZNormal > points1, std::vector< PointXYZNormal > points2, std::vector< int > &result1, std::vector< int > &result2) |
Search for the overlapping points of two given planes. More... | |
static bool | makeWall (Plane &plane1, Plane &plane2, std::vector< PointXYZ > &result1, std::vector< PointXYZ > &result2) |
Search for the overlapping points of two given planes. More... | |
static double | checkLocalMatch (std::vector< PointXYZNormal > points1, std::vector< PointXYZNormal > points2) |
Returns the ratio of the overlapping area of two planes over the area of the smaller plane. More... | |
static double | checkMatchingArea (std::vector< PointXYZNormal > points1, std::vector< PointXYZNormal > points2) |
Returns the size of the overlapping area of two planes. More... | |
static void | giveCenterPlane (std::vector< PointXYZNormal > points1, std::vector< PointXYZNormal > points2, double(&v1)[3], double(&v2)[3], double(&v3)[3], double &d, std::vector< PointXYZNormal > &corners) |
Calculates the centerplane between the two given planes. More... | |
static bool | isInnerPlane (std::vector< PointXYZNormal > points, std::vector< BitGrid > roomGrids, double minOffset) |
Evaluates whether the plane is inner (between two rooms) or not (at the pointcloud boundary). More... | |
static bool | generateOuterPlane (std::vector< PointXYZNormal > points, std::vector< PointXYZNormal > &outPoints, std::vector< BitGrid > roomGrids, double minOffset) |
Generates a copy of the plane at the pointcloud boundary with given offset. More... | |
static double | distanceBetweenPlanes (Plane &pl1, Plane &pl2) |
Returns distance between planes with same a, b, c coefficients. More... | |
|
inline |
Creates plane from given plane coefficients ( ).
_a | Coefficient a |
_b | Coefficient b |
_c | Coefficient c |
_d | Coefficient d |
Creates plane from the coordinates (x,y,z) of the three given points.
_a | Vector of the coordinates of the point 1 |
_b | Vector of the coordinates of the point 2 |
_c | Vector of the coordinates of the point 3 |
Creates plane from three given points (PointXYZNormal).
|
inline |
Creates plane from three given points (PointXYZNormal).
|
inline |
Adds PointCloud to the Plane.
pc | PointCloud to be added |
|
inlinestatic |
Returns the ratio of the overlapping area of two planes over the area of the smaller plane.
points1 | Points of the first plane |
points2 | Points of the second plane |
|
inlinestatic |
Returns the size of the overlapping area of two planes.
points1 | Points of the first plane |
points2 | Points of the second plane |
Returns distance between planes with same a, b, c coefficients.
pl1 | The first plane |
pl2 | The second plane |
|
inline |
Returns the distance between the receiver and the given point.
v | Vector of the coordinates (x, y, z) of the point to which the distance is calculated |
|
inline |
Returns the distance between the receiver and the given point.
p | Point to which the distance is calculated |
|
inline |
Returns the distance between the receiver and the given point.
p | Point to which the distance is calculated |
|
inline |
Returns the distance between the receiver and the given point.
p | Point to which the distance is calculated |
|
inlinestatic |
Generates a copy of the plane at the pointcloud boundary with given offset.
points | Points of the plane to be copied |
outPoints | Return parameter storing points of the newly generated plane |
roomGrids | Vector of grids of all rooms in the pointcloud |
minOffset | Parameter defining the offset (in the normal direction, positive value ~ out of the pointcloud) of the newly generated plane |
|
inline |
Returns coefficient d (Plane = ).
|
inlinestatic |
Search for the overlapping points of two given planes.
points1 | Points of the first plane |
points2 | Points of the second plane |
result1 | Indexes of the points1 which are overlapping with the second plane |
result2 | Indexes of the points2 which are overlapping with the first plane |
|
inline |
Returns maximum coordinates.
|
inline |
Returns minimum coordinates.
|
inline |
Returns plane normal vector.
|
inline |
Returns plane normal vector.
|
inline |
Returns Plane PointClouds identifiers.
|
inline |
|
inline |
|
inline |
|
inlinestatic |
Calculates the centerplane between the two given planes.
points1 | Plane 1 |
points2 | Plane 2 |
v1 | Return parameter corresponding to the normal vector of the calculated centerplane |
v2 | Return parameter corresponding to the in-plane vector of the calculated centerplane |
v3 | Return parameter corresponding to the in-plane vector of the calculated centerplane |
d | Return parameter corresponding to coefficient d of the calculated plane |
corners | Return parameter corresp[onding to the set of points defining the centerplane |
|
inlinestatic |
Evaluates whether the plane is inner (between two rooms) or not (at the pointcloud boundary).
points | Points of the plane to be evaluated |
roomGrids | Vector of grids of all rooms in the pointcloud |
minOffset | Parameter defining how far from the plane to search for the room |
|
inlinestatic |
Search for the overlapping points of two given planes.
points1 | Points of the first plane |
points2 | Points of the second plane |
result1 | Return parametr storing indexes of the points1 which are overlapping with the second plane |
result2 | Return parametr storing indexes of the points2 which are overlapping with the first plane |
|
inline |
Sets coefficient d (Plane = ).
d | Coefficient d to be set |
|
inline |
|
inline |
Sets maximum coordinates.
x | X coordinate to be set |
y | Y coordinate to be set |
z | Z coordinate to be set |
|
inline |
Sets minimum coordinates.
x | X coordinate to be set |
y | Y coordinate to be set |
z | Z coordinate to be set |
|
inline |
Sets plane normal vector.
nx | X component |
ny | Y component |
nz | Z component |