Classes | Functions
sal3d::Geometric Namespace Reference

Namespace for the Geometric functions and classes. More...

Classes

class  InsufficientPoints
 Insufficient points to compute the result. More...
class  Plane
 Class that represents a plane in 3D space. More...
class  Sphere
 Class that represents a sphere in 3D space. More...

Functions

Plane getRobustTangentPlane (const COP &cop, float expectedInliersRatio, float &inliersRatio)
 Extracts a plane from a COP.
Plane getRobustTangentPlane (const COP &cop, float expectedInliersRatio, std::vector< Point3D > &inliers, float &inliersRatio)
 Extracts a plane from a COP and returns the inliers.
Plane getAveragePlane (const COP &cop)
 Calculates an average plane from the COP points.
float distanceToPlane (const Point3D &point, const Plane &plane, Point3D &intersectionPoint)
 Calculates the distance between a given point and a plane in 3D space.
Sphere fitSphere (std::vector< Point3D > points)
 Calculates a sphere given four or more points.
Sphere fitCOPToSphere (const COP &cop)
 Calculates a sphere given a COP.

Detailed Description

Namespace for the Geometric functions and classes.

The functions and classes in this namespace require linking with geometric.lib (import library for geometric.dll).

This namespace contains some functions meant to aid the user in performing some geometric operations on 3D data, as well as some class definitions for basic shapes.

Some of the functions operate on unorganized points, and some on COP objects. Please refer to the documentation of each function for details.

Coding example

One of the most useful functions of this module is the plane fitting in conjunction to the alignToZ method of the Plane. This can be used, for example, to align tilted planes to the Z plane to do a posterior analysis with the help of a ZMap.

 sal3d::COP cop("file.cop");
 const float expectedInliersRatio = .9f;
 float inliersRatio;
 sal3d::Geometric::Plane plane(getRobustTangentPlane(cop,
     expectedInliersRatio, inliersRatio));
 sal3d::Movement3D move(plane.alignToZ(sal3d::Point3D(0, 0, 0)));
 sal3d::ZMap zmap(cop, move, cop.getZMapFactors());

 // 2D analysis
 ...