IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Classes | Typedefs | Enumerations | Functions
ipsdk::geom Namespace Reference

Namespace aggregating geometrical routines and classes. More...

Classes

class  AnisotropicScaleTransform2d
 Anisotropic 2d scale transformation. More...
 
class  AnisotropicScaleTransform3d
 Anisotropic 3d scale transformation. More...
 
class  AreaMsr2d
 Area measurement algorithm applied to a 2d geometry entity. More...
 
class  AreaMsr3d
 Area measurement algorithm applied to a 3d geometry entity. More...
 
class  BaseGeometryEntity
 Base class for geometry entities. More...
 
class  BaseGeometryEntity2d
 Base class for 2d geometry entities. More...
 
class  BaseGeometryEntity3d
 Base class for 3d geometry entities. More...
 
class  BaseGeometryMeasure
 Base class for geometry measures. More...
 
class  BaseGeometryMeasure2d
 Base class for geometry measures 2d. More...
 
class  BaseGeometryMeasure3d
 Base class for geometry measures 3d. More...
 
class  BaseGeometryTransform
 Base class for geometry transformations. More...
 
class  BaseGeometryTransform2d
 Base class for geometry 2d transformations. More...
 
class  BaseGeometryTransform3d
 Base class for geometry 3d transformations. More...
 
class  BaseTypedGeometryEntity2d
 Base class for typed 3d geometry entities. More...
 
class  BaseTypedGeometryEntity3d
 Base class for typed 3d geometry entities. More...
 
class  BaseTypedGeometryMeasure2d
 Base class for typed geometry measures 2d. More...
 
class  BaseTypedGeometryMeasure3d
 Base class for typed geometry measures 3d. More...
 
struct  BoostDirectPolygon2d
 
struct  BoostPointCloud2d
 
struct  BoostPointCloud3d
 
struct  BoostReversePolygon2d
 
class  BoundingBox2d
 Rectangular 2d bounding box class associated to cartesian 2d coordinates. More...
 
class  BoundingBox3d
 Rectangular 3d bounding box class associated to cartesian 3d coordinates. More...
 
struct  BranchThicknessInfo
 structure allowing to encapsulate branch thickness informations More...
 
class  CentroidTransform2d
 Computation of 2d centroid of input geometry using Bashein / Detmer algorithm strategy. More...
 
class  CentroidTransform3d
 Computation of 3d centroid of input geometry using Bashein / Detmer algorithm strategy. More...
 
class  Circle2d
 2d circle associated to cartesian 2d coordinates More...
 
class  Circle2dCostFunction
 Cost function for circle 2d parameters non linear optimization. More...
 
class  Circle2dEstimator
 Class allowing to estimate a circle 2d from a data set of 2d contour points. More...
 
class  ConvexHullTransform2d
 Computation of 2d convex hull associated to input geometry. More...
 
class  ConvexHullTransform3d
 Computation of 3d convex hull associated to input geometry. More...
 
struct  CoordWithIndex
 
class  Cube3d
 3d cube class associated to cartesian 3d coordinates More...
 
class  Cuboid3d
 3d cuboid (rectangular parallelepiped) class associated to cartesian 3d coordinates More...
 
class  Ellipse2d
 2d ellipse class associated to cartesian 2d coordinates. For a non rotated ellipse, the major axis follows the x axis and the minor axis follows the y axis. More...
 
class  Ellipse2dEstimator
 Class allowing to estimate an ellipse 2d from a data set of 2d contour points. More...
 
class  Ellipsoid3d
 3d ellipsoid associated to cartesian 3d coordinates For a non rotated ellipse, the major radius follows the x axis, the medium axis follows the y axis and the minor axis follows the z axis. More...
 
class  Ellipsoid3dEstimator
 Class allowing to estimate an ellipsoid 3d from a data set of 3d contour points. More...
 
class  EnvelopeTransform2d
 Algorithm allowing to compute envelope (axis aligned bounding box) of a 2d geometry entity. More...
 
class  EnvelopeTransform3d
 Algorithm allowing to compute envelope (axis aligned bounding box) of a 3d geometry entity. More...
 
class  HomographyTransform2d
 Homography 2d transformation. More...
 
class  HomographyTransform2dEstimator
 Class allowing to estimate a 2d homography transformationWe compute a homography transformation such as :

\[ H = \left \{ \begin{pmatrix} h_{xx} & h_{xy} & h_{xw} \\ h_{yx} & h_{yy} & h_{yw} \\ h_{wx} & h_{wy} & h_{ww} \\ \end{pmatrix} \right \} \]

. More...

 
class  HomographyTransform3d
 Homography 3d transformation. More...
 
class  HomographyTransform3dEstimator
 Class allowing to estimate a 3d homography transformationWe compute a homography transformation such as :

\[ H = \left \{ \begin{pmatrix} h_{xx} & h_{xy} & h_{xz} & h_{xw} \\ h_{yx} & h_{yy} & h_{yz} & h_{yw} \\ h_{zx} & h_{zy} & h_{zz} & h_{zw} \\ h_{wx} & h_{wy} & h_{wz} & h_{ww} \\ \end{pmatrix} \right \} \]

. More...

 
class  HuMoments2dO3
 Moments of order up to 3 on a 2d shape. More...
 
class  HuMomentsMsr2d
 Hu Moments of order up to 3 measurement algorithm applied to a 2d geometry entity. More...
 
class  IPSDKGeometryException
 Exception class for library IPSDKGeometry. More...
 
struct  LightTriangle3d
 
class  Line2d
 2d line associated to polar coordinates More...
 
class  Line2dEstimator
 Class allowing to estimate a line 2d from a data set of 2d pointsLine parameters are expressed in polar coordinates : $\cos{\theta} \times x + \sin{\theta} \times y = \rho$ where : More...
 
class  Line2dIntersectionEstimator
 Class allowing to estimate a intersection point 2d from a data set of 2d lines. More...
 
struct  MatchShapeInfo
 Match of a shape. More...
 
struct  MatchShapesInfo
 Match of some shapes. More...
 
class  Mesh3d
 Closed mesh associated to a triangulated boundary. More...
 
struct  Mesh3dHalfEdge
 
class  Mesh3dTriangleConstIterator
 Iterator class allowing to parse triangles associated to a mesh 3d. More...
 
class  Mesh3dTriangleTriangleConstCirculator
 Iterator class allowing to circulate over triangles immediatly neighbors of a given triangle. More...
 
class  Mesh3dVertexEdgeConstCirculator
 Iterator class allowing to circulate over half edges starting from a given vertex. More...
 
class  Mesh3dVertexTriangleConstCirculator
 Iterator class allowing to circulate over triangle with a top associated to a given vertex. More...
 
class  Mesh3dVertexVertexConstCirculator
 Iterator class allowing to circulate over vertices immediatly neighbors of a given vertex. More...
 
class  MeshSimplification
 Closed mesh associated to a triangulated boundary. More...
 
class  MeshWithHoles3d
 Closed mesh potentially associated to interior mesh holes. More...
 
class  MinEnclosingCircleTransform2d
 Algorithm allowing to compute minimum enclosing circle of a 2d geometry entity. More...
 
class  MinEnclosingSphereTransform3d
 Algorithm allowing to compute minimum enclosing sphere of a 3d geometry entity. More...
 
class  Moments2dO3
 Moments of order up to 3 on a 2d shape. More...
 
class  MomentsMsr2d
 Moments of order up to 3 measurement algorithm applied to a 2d geometry entity. More...
 
class  Parabola2d
 Parabola 2d class. More...
 
class  PerimeterMsr2d
 Perimeter measurement algorithm applied to a 2d geometry entity. More...
 
class  Plan3d
 3d plan associated to spherical coordinates More...
 
class  Plan3dEstimator
 Class allowing to estimate a plan 3d from a data set of 3d pointsPlan parameters are expressed in spherical coordinates :

\[ \vec{\eta} = \begin{pmatrix} \sin(\theta)\cos(\phi) \\ \sin(\theta)\sin(\phi) \\ \cos(\theta) \end{pmatrix} \]

where : More...

 
class  Point2d
 Point class associated to cartesian 2d coordinates. More...
 
struct  Point2dData
 Lightweight structure used to store Point2d data. More...
 
class  Point3d
 Point class associated to cartesian 3d coordinates. More...
 
struct  Point3dData
 Lightweight structure used to store Point3d data. More...
 
class  PointCloud2d
 Unordered collection of 2d points. More...
 
class  PointCloud3d
 Unordered collection of 3d points. More...
 
class  Polygon2d
 Closed polygon associated to an ordered collection of 2d points. More...
 
class  PolygonWithHoles2d
 Closed polygon potentially associated to interior polygonal holes. More...
 
class  Rectangle2d
 2d rectangle class associated to cartesian 2d coordinates More...
 
class  RigidTransform2d
 Rigid 2d transformation. More...
 
class  RigidTransform2dEstimator
 Class allowing to estimate a 2d rigid transformationWe compute a rigid transformation such as :

\[ RT = \{R(\theta), T(t_x, t_y)\} = \left \{ \begin{pmatrix} \cos(\theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\theta) \end{pmatrix}, \begin{pmatrix} t_x \\ t_y \end{pmatrix} \right \} \]

. More...

 
class  RigidTransform3d
 Rigid 3d transformation. More...
 
class  RigidTransform3dEstimator
 Class allowing to estimate a 3d rigid transformationWe compute a rigid transformation such as :

\[ RT = \{R(\chi, \beta, \alpha), T(t_x, t_y, t_z)\} \]

For more informations report to Rotations 3d. More...

 
class  RotationTransform2d
 Rotation 2d transformation (origin centered) More...
 
class  RotationTransform3d
 Rotation 3d transformation (origin centered) More...
 
struct  RowIntersections
 
struct  RowIntersections3d
 
struct  RowIntersections3d_UInt32
 
struct  RowIntersections_UInt32
 
struct  RowSegment
 
struct  RowSegment_UInt32
 
class  RTree
 Class allowing to encapsulate boost::geometry::rtree. More...
 
class  ScaleTransform2d
 Isotropic 2d scale transformation. More...
 
class  ScaleTransform3d
 Isotropic 3d scale transformation. More...
 
class  Segment2d
 2d segment associated to two points More...
 
class  Segment3d
 3d segment associated to two points More...
 
class  Shape2d
 Shape 2d associated to one or more closed polygon 2d. More...
 
class  Shape3d
 Shape 3d associated to one or more closed mesh 3d. More...
 
class  SimilarityTransform2d
 Non-reflective similarity 2d transformation. More...
 
class  SimilarityTransform2dEstimator
 Class allowing to estimate a 2d similarity transformationWe compute a similarity transformation such as :

\[ RT = \{S, R(\theta), T(t_x, t_y)\} = \left \{ S \begin{pmatrix} \cos(\theta) & -\sin(\theta) \\ \sin(\theta) & \cos(\theta) \end{pmatrix}, \begin{pmatrix} t_x \\ t_y \end{pmatrix} \right \} \]

. More...

 
class  SimilarityTransform3d
 Similarity 3d transformation. More...
 
class  SimilarityTransform3dEstimator
 Class allowing to estimate a 3d similarity transformationWe compute a similarity transformation such as :

\[ RT = \{S, R(\chi, \beta, \alpha), T(t_x, t_y, t_z)\} \]

For more informations report to Rotations 3d. More...

 
class  SimplifyTransform2d
 Algorithm allowing to simplify a geometry. More...
 
class  Skeleton2d
 Class allowing to represent a skeleton associated to a polygon with holes. More...
 
class  SkeletonVertex2d
 Class allowing to represent a vertex into a skeleton associated to a polygon. More...
 
class  Sphere3d
 3d sphere associated to cartesian 3d coordinates More...
 
class  Sphere3dCostFunction
 Cost function for sphere 3d parameters non linear optimization. More...
 
class  Sphere3dEstimator
 Class allowing to estimate a sphere 3d from a data set of 3d contour points. More...
 
class  Square2d
 2d square class associated to cartesian 2d coordinates More...
 
class  SymmetricMatrix
 Closed mesh associated to a triangulated boundary. More...
 
class  TranslationTransform2d
 Translation 2d transformation. More...
 
class  TranslationTransform2dEstimator
 Class allowing to estimate a 2d translation transformationWe compute a rigid transformation such as :

\[ T = \{T(t_x, t_y)\} = \left \{ \begin{pmatrix} t_x \\ t_y \end{pmatrix} \right \} \]

. More...

 
class  TranslationTransform3d
 Translation 3d transformation. More...
 
class  Triangle3d
 3d triangle associated to cartesian 3d coordinates More...
 
struct  TriVertexIx
 Structure that allows to get the vertices indices of one triangle. More...
 
class  Vector2d
 Vector class associated to polar 2d coordinates. More...
 
class  Vector3d
 Vector class associated to spherical 3d coordinates. More...
 
class  VolumeMsr3d
 Volume measurement algorithm applied to a 3d geometry entity. More...
 

Typedefs

typedef boost::shared_ptr< BaseGeometryEntity2dGeometryEntity2dPtr
 shared pointer to BaseGeometryEntity2d
 
typedef boost::shared_ptr< const BaseGeometryEntity2dGeometryEntity2dConstPtr
 shared pointer to const BaseGeometryEntity2d
 
typedef std::vector< GeometryEntity2dPtrGeometryEntity2dPtrColl
 collection of geometry entity 2d
 
typedef boost::shared_ptr< Shape2dShape2dPtr
 shared pointer to Shape2d
 
typedef boost::shared_ptr< const Shape2dShape2dConstPtr
 shared pointer to const Shape2d
 
typedef std::vector< Shape2dPtrShape2dVector
 collection of shape 2d shared pointers
 
typedef std::vector< Shape2dConstPtrShape2dConstVector
 collection of shape 2d const shared pointers
 
typedef ipReal32 Shape2dDataType
 underlying data type associated to shape 2d
 
typedef geom::Polygon2d< Shape2dDataTypeShape2dPolygon
 polygon type associated to shape
 
typedef Shape2dPolygon::PointType Shape2dPoint
 point type associated to shape
 
typedef Shape2dPolygon::PointColl Shape2dPointColl
 point collection associated to shape
 
typedef boost::shared_ptr< Shape2dPolygonShape2dPolygonPtr
 shared pointer to polygon associated to shape
 
typedef boost::shared_ptr< const Shape2dPolygonShape2dPolygonConstPtr
 shared pointer to const polygon associated to shape
 
typedef geom::PolygonWithHoles2d< Shape2dDataTypeShape2dPolygonWithHoles
 polygon with holes type associated to shape
 
typedef boost::shared_ptr< Shape2dPolygonWithHolesShape2dPolygonWithHolesPtr
 shared pointer to polygon with holes associated to shape
 
typedef boost::shared_ptr< const Shape2dPolygonWithHolesShape2dPolygonWithHolesConstPtr
 shared pointer to const polygon with holes associated to shape
 
typedef std::vector< Shape2dPolygonWithHolesConstPtrShape2dPolygonWithHolesConstColl
 collection of const polygon with holes
 
typedef std::vector< Shape2dPolygonWithHolesPtrShape2dPolygonWithHolesColl
 collection of polygon with holes
 
typedef Point2dData< ipReal64SkeletonPoint2d
 point type associated to voronoi skeletons
 
typedef std::vector< SkeletonPoint2dSkeletonPoint2dColl
 collection of points associated to voronoi skeletons
 
typedef std::vector< SkeletonVertex2dSkeletonVertex2dColl
 collection of skeleton vertex 2d
 
typedef std::pair< ipUInt64, ipUInt64PairIdx
 pair of point indexes
 
typedef std::vector< PairIdxPairIdxColl
 collection of pair of point indexes
 
typedef std::map< PairIdx, Parabola2dParabolaColl
 map allowing to associate an edge index to a parabola
 
typedef boost::shared_ptr< Skeleton2dSkeleton2dPtr
 shared pointer to Skeleton2d
 
typedef boost::shared_ptr< const Skeleton2dSkeleton2dConstPtr
 shared pointer to const Skeleton2d
 
typedef std::vector< RowIntersectionsRowIntersectionsColl
 
typedef std::vector< RowIntersections_UInt32RowIntersectionsColl_UInt32
 
typedef boost::shared_ptr< BaseGeometryEntity3dGeometryEntity3dPtr
 shared pointer to BaseGeometryEntity3d
 
typedef boost::shared_ptr< const BaseGeometryEntity3dGeometryEntity3dConstPtr
 shared pointer to const BaseGeometryEntity3d
 
typedef std::vector< GeometryEntity3dPtrGeometryEntity3dPtrColl
 collection of geometry entity 3d
 
typedef std::vector< Mesh3dHalfEdgeMesh3dHalfEdgeColl
 collection of half edges information associated to mesh 3d objects
 
typedef std::vector< TriVertexIxTriVertexIxColl
 
typedef boost::shared_ptr< Shape3dShape3dPtr
 shared pointer to Shape3d
 
typedef boost::shared_ptr< const Shape3dShape3dConstPtr
 shared pointer to const Shape3d
 
typedef std::vector< Shape3dPtrShape3dVector
 collection of standard shape
 
typedef std::vector< Shape3dConstPtrShape3dConstVector
 collection of const standard shape
 
typedef ipReal32 Shape3dDataType
 underlying data type associated to shape 3d
 
typedef geom::Mesh3d< Shape3dDataTypeShape3dMesh
 mesh type associated to shape
 
typedef Shape3dMesh::VertexType Shape3dVertex
 vertex type associated to shape
 
typedef Shape3dMesh::VertexColl Shape3dVertexColl
 vertex collection associated to shape
 
typedef boost::shared_ptr< Shape3dMeshShape3dMeshPtr
 shared pointer to mesh associated to shape
 
typedef boost::shared_ptr< const Shape3dMeshShape3dMeshConstPtr
 shared pointer to const mesh associated to shape
 
typedef geom::MeshWithHoles3d< Shape3dDataTypeShape3dMeshWithHoles
 mesh with holes type associated to shape
 
typedef boost::shared_ptr< Shape3dMeshWithHolesShape3dMeshWithHolesPtr
 shared pointer to mesh with holes associated to shape
 
typedef boost::shared_ptr< const Shape3dMeshWithHolesShape3dMeshWithHolesConstPtr
 shared pointer to const mesh with holes associated to shape
 
typedef std::vector< Shape3dMeshWithHolesConstPtrShape3dMeshWithHolesConstColl
 collection of const mesh with holes
 
typedef std::vector< Shape3dMeshWithHolesPtrShape3dMeshWithHolesColl
 collection of mesh with holes
 
typedef std::vector< RowSegmentRowSegments
 collection of row segments
 
typedef std::vector< RowSegmentsRowSegmentsColl
 collection of collection of row segments
 
typedef std::vector< RowSegment_UInt32RowSegments_UInt32
 collection of row segments for version 1 (with UInt32 data)
 
typedef std::vector< RowSegments_UInt32RowSegmentsColl_UInt32
 collection of collection of row segments for version 1 (with UInt32 data)
 
typedef boost::shared_ptr< BaseGeometryEntityGeometryEntityPtr
 shared pointer to BaseGeometryEntity
 
typedef boost::shared_ptr< const BaseGeometryEntityGeometryEntityConstPtr
 shared pointer to const BaseGeometryEntity
 
typedef boost::weak_ptr< BaseGeometryEntityGeometryEntityWeakPtr
 weak pointer to BaseGeometryEntity
 
typedef boost::weak_ptr< const BaseGeometryEntityGeometryEntityConstWeakPtr
 weak pointer to const BaseGeometryEntity
 
typedef std::vector< GeometryEntityPtrGeometryEntityPtrColl
 collection of shared pointer to BaseGeometryEntity
 
typedef boost::shared_ptr< BaseGeometryMeasure2dGeometryMeasure2dPtr
 shared pointer to BaseGeometryMeasure2d
 
typedef boost::shared_ptr< const BaseGeometryMeasure2dGeometryMeasure2dConstPtr
 shared pointer to const BaseGeometryMeasure2d
 
typedef std::vector< BranchThicknessInfoBranchThicknessColl
 collection of branch thickness informations
 
typedef boost::shared_ptr< BaseGeometryMeasure3dGeometryMeasure3dPtr
 shared pointer to BaseGeometryMeasure3d
 
typedef boost::shared_ptr< const BaseGeometryMeasure3dGeometryMeasure3dConstPtr
 shared pointer to const BaseGeometryMeasure3d
 
typedef RTree< Point2dData< ipReal32 > > Real32Point2dRTree
 RTree associated to Point 2d with ipReal32 data type.
 
typedef boost::shared_ptr< Real32Point2dRTreeReal32Point2dRTreePtr
 shared pointer to Point 2d with Shape2dDataType data type
 
typedef boost::shared_ptr< const Real32Point2dRTreeReal32Point2dRTreeConstPtr
 shared pointer to const Point 2d with Shape2dDataType data type
 
typedef RTree< Point2dData< ipReal64 > > Real64Point2dRTree
 RTree associated to Point 2d with ipReal64 data type.
 
typedef boost::shared_ptr< Real64Point2dRTreeReal64Point2dRTreePtr
 shared pointer to Point 2d with Shape2dDataType data type
 
typedef boost::shared_ptr< const Real64Point2dRTreeReal64Point2dRTreeConstPtr
 shared pointer to const Point 2d with Shape2dDataType data type
 
typedef RTree< BoundingBox2d< Shape2dDataType > > BBox2dRTree
 RTree associated to bounding box 2d with Shape2dDataType data type.
 
typedef boost::shared_ptr< BBox2dRTreeBBox2dRTreePtr
 shared pointer to bounding box 2d with Shape2dDataType data type
 
typedef boost::shared_ptr< const BBox2dRTreeBBox2dRTreeConstPtr
 shared pointer to const bounding box 2d with Shape2dDataType data type
 
typedef RTree< Segment2d< Shape2dDataType > > Seg2dRTree
 RTree associated to segment 2d with Shape2dDataType data type.
 
typedef boost::shared_ptr< Seg2dRTreeSeg2dRTreePtr
 shared pointer to segment 2d with Shape2dDataType data type
 
typedef boost::shared_ptr< const Seg2dRTreeSeg2dRTreeConstPtr
 shared pointer to const segment 2d with Shape2dDataType data type
 
typedef RTree< Point3dData< ipReal32 > > Real32Point3dRTree
 RTree associated to Point 3d with ipReal32 data type.
 
typedef boost::shared_ptr< Real32Point3dRTreeReal32Point3dRTreePtr
 shared pointer to Point 3d with Shape3dDataType data type
 
typedef boost::shared_ptr< const Real32Point3dRTreeReal32Point3dRTreeConstPtr
 shared pointer to const Point 3d with Shape3dDataType data type
 
typedef RTree< Point3dData< ipReal64 > > Real64Point3dRTree
 RTree associated to Point 3d with ipReal64 data type.
 
typedef boost::shared_ptr< Real64Point3dRTreeReal64Point3dRTreePtr
 shared pointer to Point 3d with Shape3dDataType data type
 
typedef boost::shared_ptr< const Real64Point3dRTreeReal64Point3dRTreeConstPtr
 shared pointer to const Point 3d with Shape3dDataType data type
 
typedef RTree< BoundingBox3d< Shape3dDataType > > BBox3dRTree
 RTree associated to bounding box 3d with Shape3dDataType data type.
 
typedef boost::shared_ptr< BBox3dRTreeBBox3dRTreePtr
 shared pointer to bounding box 3d with Shape3dDataType data type
 
typedef boost::shared_ptr< const BBox3dRTreeBBox3dRTreeConstPtr
 shared pointer to const bounding box 3d with Shape3dDataType data type
 
typedef RTree< LightTriangle3dLTri3dRTree
 RTree associated to light triangle 3d data.
 
typedef boost::shared_ptr< LTri3dRTreeLTri3dRTreePtr
 shared pointer to light triangle 3d data
 
typedef boost::shared_ptr< const LTri3dRTreeLTri3dRTreeConstPtr
 shared pointer to const light triangle 3d data
 
typedef boost::shared_ptr< BaseGeometryTransform2dGeometryTransform2dPtr
 shared pointer to BaseGeometryTransform2d
 
typedef boost::shared_ptr< const BaseGeometryTransform2dGeometryTransform2dConstPtr
 shared pointer to const BaseGeometryTransform2d
 
typedef boost::shared_ptr< BaseGeometryTransform3dGeometryTransform3dPtr
 shared pointer to BaseGeometryTransform3d
 
typedef boost::shared_ptr< const BaseGeometryTransform3dGeometryTransform3dConstPtr
 shared pointer to const BaseGeometryTransform3d
 

Enumerations

enum  eEntity2dType {
  eE2DT_Point, eE2DT_Vector, eE2DT_BoundingBox, eE2DT_PointCloud,
  eE2DT_Polygon, eE2DT_PolygonWithHoles, eE2DT_Shape, eE2DT_Circle,
  eE2DT_Ellipse, eE2DT_Square, eE2DT_Rectangle, eE2DT_Line,
  eE2DT_Parabola, eE2DT_Skeleton, eE2DT_Segment
}
 Enumerate describing entity 2d type. More...
 
enum  eCoordinateSystem2dType { eCS2DT_Cartesian, eCS2DT_Polar }
 Enumerate describing coordinate system 2d type. More...
 
enum  ePolygon2dType { eP2DT_Exterior, eP2DT_Interior }
 Enumerate describing polygon type. More...
 
enum  eSkeletonVertexCategory {
  eSVC_Internal, eSVC_Junction, eSVC_Slab, eSVC_EndPoint,
  eSVC_All
}
 Enumerate describing skeleton vertex type. More...
 
enum  eSkeletonEdgeCategory { eSEC_Leaf, eSEC_Branch, eSEC_All }
 Enumerate describing skeleton edge type. More...
 
enum  eEntity3dType {
  eE3DT_Point, eE3DT_Vector, eE3DT_BoundingBox, eE3DT_PointCloud,
  eE3DT_Sphere, eE3DT_Ellipsoid, eE3DT_Cube, eE3DT_Cuboid,
  eE3DT_Mesh, eE3DT_MeshWithHoles, eE3DT_Shape, eE3DT_Plan,
  eE3DT_Segment, eE3DT_Triangle
}
 Enumerate describing entity 3d type. More...
 
enum  eCoordinateSystem3dType { eCS3DT_Cartesian, eCS3DT_Spherical }
 Enumerate describing coordinate system 3d type. More...
 
enum  eMesh3dType { eM3DT_Exterior, eM3DT_Interior }
 Enumerate describing mesh type. More...
 
enum  eEntityMessage {
  eCantAddRowIntersection, eExteriorMeshNotInit, eHalfEdgeNotANewTriangle, eInvalidHalfEdgeIdx,
  eInvalidHalfEdgePair, eInvalidPointIndex, eInvalidShape2dRowIdx, eInvalidShape3dY,
  eInvalidShape3dZ, eInvalidTriangleIdx, eInvalidVertexIdx, eMesh3dCantWriteFile,
  eMethodNotImplemented, eNullInputSharedPointer, eParabolaSegmentNotFound, ePolygonMismatchWithSegment,
  ePolygonSimplificationFailed, eShape2dAccessorInternalError, eShape2dAccessorNotInit, eShape3dAccessorNotInit,
  eShapesMergeRowMismatch, eUnlinkedHalfEdges
}
 Enumerate describing messages. More...
 
enum  eCoordinateDimension { eCD_2d, eCD_3d }
 Enumerate describing coordinates dimension. More...
 
enum  eEstimationMessage {
  eCircle2dCantEstimate, eCircle2dCostFunCantInit, eEllipse2dCantEstimate, eEllipse2dEstimationNotAnEllipse,
  eEllipse2dParametersNotAnEllipse, eEllipsoid3dCantEstimate, eEllipsoid3dEstimationNotAnEllipse, eEllipsoid3dParametersNotAnEllipse,
  eHomography2dCantEstimate, eHomography3dCantEstimate, eIntersectionPoint2dUndefined, eLine2dNoPriviledgedDirection,
  ePlan3dNoPriviledgedDirection, ePointCollectionsSizeMismatch, eRigidTransform2dCantEstimate, eRigidTransform3dCantEstimate,
  eTranslationTransform2dCantEstimate, eTranslationTransform3dCantEstimate, eSimilarityTransform2dCantEstimate, eSimilarityTransform3dCantEstimate,
  eSphere3dCantEstimate, eSphere3dCostFunCantInit
}
 Enumerate describing messages. More...
 
enum  eIPSDKGeometryMessage
 Enumerate describing messages. More...
 
enum  eMeasure2dType { eM2DT_Perimeter, eM2DT_Area, eM2DT_Moments, eM2DT_HuMoments }
 Enumerate describing geometry 2d measure type. More...
 
enum  eShapeHuDistanceType { eSDT_Type1, eSDT_Type2, eSDT_Type3 }
 
enum  eMeasure3dType { eM3DT_Area, eM3DT_Volume }
 Enumerate describing geometry 3d measure type. More...
 
enum  eHoleMsrPolicy { eHMP_ProcessHoles, eHMP_IgnoreHoles }
 Enumerate describing measurement hole policy. More...
 
enum  eMeasureMessage { eMeasureFailed }
 
enum  eSegmentContactPolicy { eSCP_SegCenter, eSCP_SegEnds, eSCP_SegClosestPoint }
 Enumerate describing policy used to define if a segment belongs to elements in contact with a shape. More...
 
enum  eToolsMessage { eContactPolicyNotSupported }
 Enumerate describing messages. More...
 
enum  eTransform2dType {
  eT2DT_Translation, eT2DT_Rotation, eT2DT_Scale, eT2DT_AnisotropicScale,
  eT2DT_RigidTransform, eT2DT_SimilarityTransform, eT2DT_HomographyTransform, eT2DT_Centroid,
  eT2DT_ConvexHull, eT2DT_Envelope, eT2DT_Simplify, eT2DT_MinEnclosingCircle
}
 Enumerate describing geometry 2d transform type. More...
 
enum  eTransform3dType {
  eT3DT_Translation, eT3DT_Rotation, eT3DT_Scale, eT3DT_AnisotropicScale,
  eT3DT_RigidTransform, eT3DT_SimilarityTransform, eT3DT_HomographyTransform, eT3DT_Centroid,
  eT3DT_ConvexHull, eT3DT_Envelope, eT3DT_Simplify, eT3DT_MinEnclosingSphere
}
 Enumerate describing geometry 3d transform type. More...
 
enum  eTransformMessage {
  eCantTransformPoint2d, eCantTransformPoint3d, eSimplify2dEquivalenceIdxError, eSimplify2dNearestPtError,
  eTransformFailed, eUnsupportedGeometricTransform
}
 Enumerate describing messages. More...
 

Functions

template<typename T >
IPSDKGEOMETRY_API bool intersect (const BoundingBox2d< T > &bBox0, const BoundingBox2d< T > &bBox1)
 check whether two bounding boxes intersect with non null intersection
 
template<typename T >
IPSDKGEOMETRY_API bool intersectOrTouch (const BoundingBox2d< T > &bBox0, const BoundingBox2d< T > &bBox1)
 check whether two bounding boxes intersect or are in touch
 
template<typename T >
IPSDKGEOMETRY_API bool isContained (const BoundingBox2d< T > &bBoxInside, const BoundingBox2d< T > &bBoxOutside)
 check whether a bounding boxe is contained by another (check whether bBoxInside is contained by bBoxOutside) More...
 
template<typename T >
IPSDKGEOMETRY_API bool isContainedOrTouch (const BoundingBox2d< T > &bBoxInside, const BoundingBox2d< T > &bBoxOutside)
 check whether a bounding boxe is contained by another (check whether bBoxInside is contained by bBoxOutside) More...
 
template<typename T >
IPSDKGEOMETRY_API bool compare (const BoundingBox2d< T > &boundingBox1, const BoundingBox2d< T > &boundingBox2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon())
 function allowing to compare bounding box More...
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const BoundingBox2d< T > &boundingBox)
 output operator on bounding box
 
template<typename T >
bool compare (const Circle2d< T > &circle1, const Circle2d< T > &circle2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon())
 function allowing to compare circles with tolerance
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Circle2d< T > &circle)
 output operator on circle
 
template<typename T >
bool compare (const Ellipse2d< T > &ellipse1, const Ellipse2d< T > &ellipse2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon(), const ipReal64 epsilonOrientation=ipsdk::NumericLimits< ipReal64 >::sqrt_epsilon())
 function allowing to compare ellipses with tolerance
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Ellipse2d< T > &ellipse)
 output operator on circle
 
IPSDKGEOMETRY_API ipUInt64 getNbPixels (const ipsdk::geom::RowIntersections &)
 return the number of pixels in the input RowIntersections data structure
 
IPSDKGEOMETRY_API bool compare (const Line2d &line1, const Line2d &line2, const ipReal64 epsilon=ipsdk::NumericLimits< ipReal64 >::sqrt_epsilon())
 function allowing to compare lines
 
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Line2d &line)
 output operator on line
 
IPSDKGEOMETRY_API ipReal64 computeArcLength (const Parabola2d &parabola, const Point2dData< ipReal64 > &pt0, const Point2dData< ipReal64 > &pt1)
 function allowing to compute arc length between two points on a parabola More...
 
IPSDKGEOMETRY_API void sampleArc (const Parabola2d &parabola, const Point2dData< ipReal64 > &pt0, const Point2dData< ipReal64 > &pt1, const ipReal64 &maxDist, std::vector< Point2dData< ipReal64 > > &sampleColl)
 function allowing to sample a parabolic arc between two points More...
 
IPSDKGEOMETRY_API bool belongsTo (const Parabola2d &parabola, const Point2dData< ipReal64 > &pt)
 function allowing to check whether a point is on parabola
 
template<typename T >
IPSDKGEOMETRY_API bool isInside (const Parabola2d &parabola, const Point2dData< T > &pt)
 function allowing to check whether a point is inside (or belongs to) parabola
 
template<typename T >
IPSDKGEOMETRY_API bool isStrictlyInside (const Parabola2d &parabola, const Point2dData< T > &pt)
 function allowing to check whether a point is strictly inside parabola (point does not belongs to parabola)
 
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Parabola2d &parabola)
 output operator on parabola
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const PointCloud2d< T > &ptCloud)
 output operator on point cloud
 
template<typename T >
IPSDKGEOMETRY_API bool compare (const Polygon2d< T > &polygon1, const Polygon2d< T > &polygon2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon())
 function allowing to compare polygons
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Polygon2d< T > &polygon)
 output operator on polygon
 
template<typename T >
IPSDKGEOMETRY_API void fromString (Polygon2d< T > &polygon, const std::string &dataStr)
 
template<typename T >
IPSDKGEOMETRY_API bool compare (const PolygonWithHoles2d< T > &polygon1, const PolygonWithHoles2d< T > &polygon2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon())
 function allowing to compare polygons with holes
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const PolygonWithHoles2d< T > &polygon)
 output operator on polygon with holes
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Rectangle2d< T > &rectangle)
 output operator on rectangle
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Segment2d< T > &segment)
 output operator on segment
 
IPSDKGEOMETRY_API bool compare (const Shape2d &shape1, const Shape2d &shape2, const Shape2dDataType epsilon=ipsdk::NumericLimits< Shape2dDataType >::sqrt_epsilon())
 function allowing to compare shape2d
 
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Shape2d &shape)
 output operator on shape
 
IPSDKGEOMETRY_API ipUInt32 getNbPolygons (const Shape2d &shape2d)
 
IPSDKGEOMETRY_API ipUInt32 getNbPolygons (const Shape2dVector &shape2dVector)
 
IPSDKGEOMETRY_API ipUInt32 getPolygonMaxNbPoints (const Shape2d &shape2d)
 
IPSDKGEOMETRY_API ipUInt32 getPolygonMaxNbPoints (const Shape2dVector &shape2dVector)
 
IPSDKGEOMETRY_API bool writeToCsv (const boost::filesystem::path &filePath, const Shape2d &shape2d)
 function allowing to write polygons of a shape into a csv file More...
 
IPSDKGEOMETRY_API bool writeToCsv (const boost::filesystem::path &filePath, const Shape2dVector &shape2dVector)
 function allowing to write polygons of a collection of shapes into a csv file More...
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Square2d< T > &square)
 output operator on circle
 
IPSDKGEOMETRY_API ipReal64 distance (const Vector2d &v1, const Vector2d &v2)
 compute euclidian distance between two vectors
 
IPSDKGEOMETRY_API ipReal64 scalarProduct (const Vector2d &v1, const Vector2d &v2)
 compute vectors scalar product
 
IPSDKGEOMETRY_API bool compare (const Vector2d &vec1, const Vector2d &vec2, const ipReal64 epsilon=ipsdk::NumericLimits< ipReal64 >::sqrt_epsilon())
 function allowing to compare vectors More...
 
IPSDKGEOMETRY_API Vector2d operator* (const ipReal64 value, const Vector2d &vec)
 arithmetic operators on vector
 
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Vector2d &vec)
 output operator on vector
 
template<typename T >
IPSDKGEOMETRY_API bool intersect (const BoundingBox3d< T > &bBox0, const BoundingBox3d< T > &bBox1)
 check whether two bounding boxes intersect with non null intersection
 
template<typename T >
IPSDKGEOMETRY_API bool intersectOrTouch (const BoundingBox3d< T > &bBox0, const BoundingBox3d< T > &bBox1)
 check whether two bounding boxes intersect or are in touch
 
template<typename T >
IPSDKGEOMETRY_API bool isContained (const BoundingBox3d< T > &bBoxInside, const BoundingBox3d< T > &bBoxOutside)
 check whether a bounding boxe is contained by another (check whether bBoxInside is contained by bBoxOutside) More...
 
template<typename T >
IPSDKGEOMETRY_API bool isContainedOrTouch (const BoundingBox3d< T > &bBoxInside, const BoundingBox3d< T > &bBoxOutside)
 check whether a bounding boxe is contained by another (check whether bBoxInside is contained by bBoxOutside) More...
 
template<typename T >
IPSDKGEOMETRY_API bool compare (const BoundingBox3d< T > &boundingBox1, const BoundingBox3d< T > &boundingBox2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon())
 function allowing to compare bounding box More...
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const BoundingBox3d< T > &boundingBox)
 output operator on bounding box
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Cube3d< T > &cube)
 output operator on cube
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Cuboid3d< T > &cuboid)
 output operator on cuboid
 
template<typename T >
bool compare (const Ellipsoid3d< T > &ellipsoid1, const Ellipsoid3d< T > &ellipsoid2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon(), const ipReal64 epsilonOrientation=ipsdk::NumericLimits< ipReal64 >::sqrt_epsilon())
 function allowing to compare ellipsoids with tolerance
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Ellipsoid3d< T > &ellipsoid)
 output operator on ellipsoid
 
IPSDKGEOMETRY_API ipUInt64 getNbVoxels (const ipsdk::geom::RowIntersections3d &)
 
template<typename T >
IPSDK_FORCEINLINE Mesh3dTriangleConstIterator< Mesh3d< T > > beginTriangle (const Mesh3d< T > &mesh)
 begining for triangle iterators
 
template<typename T >
IPSDK_FORCEINLINE Mesh3dTriangleConstIterator< Mesh3d< T > > endTriangle (const Mesh3d< T > &mesh)
 end for triangle iterators
 
template<typename T >
IPSDK_FORCEINLINE Mesh3dVertexVertexConstCirculator< Mesh3d< T > > beginVertexVertex (const Mesh3d< T > &mesh, const ipUInt32 startVertexIdx)
 
template<typename T >
IPSDK_FORCEINLINE Mesh3dVertexVertexConstCirculator< Mesh3d< T > > endVertexVertex ()
 
template<typename T >
IPSDK_FORCEINLINE Mesh3dVertexEdgeConstCirculator< Mesh3d< T > > beginVertexEdge (const Mesh3d< T > &mesh, const ipUInt32 startVertexIdx)
 
template<typename T >
IPSDK_FORCEINLINE Mesh3dVertexEdgeConstCirculator< Mesh3d< T > > endVertexEdge ()
 
template<typename T >
IPSDK_FORCEINLINE Mesh3dVertexTriangleConstCirculator< Mesh3d< T > > beginVertexTriangle (const Mesh3d< T > &mesh, ipUInt32 startVertexIdx)
 
template<typename T >
IPSDK_FORCEINLINE Mesh3dVertexTriangleConstCirculator< Mesh3d< T > > endVertexTriangle ()
 
template<typename T >
IPSDK_FORCEINLINE Mesh3dTriangleTriangleConstCirculator< Mesh3d< T > > beginTriangleTriangle (const Mesh3d< T > &mesh, ipUInt32 startTriangleIdx)
 
template<typename T >
IPSDK_FORCEINLINE Mesh3dTriangleTriangleConstCirculator< Mesh3d< T > > endTriangleTriangle ()
 
template<typename T >
IPSDKGEOMETRY_API BoolResult saveToStLAscii (const boost::filesystem::path &stlFile, const Mesh3d< T > &mesh, const std::string &solidName="")
 export the mesh definition to a StL ascii file More...
 
template<typename T >
IPSDKGEOMETRY_API BoolResult saveToStLBinary (const boost::filesystem::path &stlFile, const Mesh3d< T > &mesh)
 export the mesh definition to a StL binary file More...
 
IPSDKGEOMETRY_API void writeStLAsciiHeader (std::ostream &os, const std::string &solidName)
 function allowing to write stl ascii header into a stream
 
IPSDKGEOMETRY_API void writeStLAsciiFooter (std::ostream &os, const std::string &solidName)
 function allowing to write stl ascii footer into a stream
 
template<typename T >
IPSDKGEOMETRY_API void writeStLAscii (std::ostream &os, const Mesh3d< T > &mesh, const ipReal32 xOffset, const ipReal32 yOffset, const ipReal32 zOffset)
 function allowing to write stl ascii mesh data into a stream
 
IPSDKGEOMETRY_API void writeStLBinaryHeader (std::ostream &os, const ipUInt64 nbTriangles)
 function allowing to write stl binary header into a stream
 
template<typename T >
IPSDKGEOMETRY_API void writeStLBinary (std::ostream &os, const Mesh3d< T > &mesh, const ipReal32 xOffset, const ipReal32 yOffset, const ipReal32 zOffset)
 function allowing to write stl binary mesh data into a stream
 
template<typename T >
IPSDKGEOMETRY_API boost::shared_ptr< Mesh3d< T > > readFromStLFile (const boost::filesystem::path &stlFile)
 function allowing to read stl files and return a mesh3d
 
template<typename T >
IPSDKGEOMETRY_API boost::shared_ptr< Mesh3d< T > > readStLAscii (const boost::filesystem::path &stlFile)
 function allowing to read stl ascii data into a mesh3d
 
template<typename T >
IPSDKGEOMETRY_API boost::shared_ptr< Mesh3d< T > > readStLBinary (const boost::filesystem::path &stlFile)
 function allowing to read stl binary data into a mesh3d
 
ipBool stlFileHasASCIIFormat (const boost::filesystem::path &stlFile)
 
void removeDoubles (std::vector< ipReal32 > &vUniqueCoordsOut, std::vector< ipUInt32 > &vTrisOut, std::vector< CoordWithIndex > &vCoordsWithIndexInOut)
 
template<typename T >
IPSDKGEOMETRY_API bool compare (const Mesh3d< T > &mesh1, const Mesh3d< T > &mesh2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon())
 function allowing to compare mesh
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Mesh3d< T > &mesh)
 output operator on mesh
 
template<typename T >
IPSDKGEOMETRY_API BoolResult saveToStLAscii (const boost::filesystem::path &stlFile, const MeshWithHoles3d< T > &mesh, const ipBool bSaveHoles, const std::string &solidName="")
 export the mesh with holes definition to a StL ascii file More...
 
template<typename T >
IPSDKGEOMETRY_API BoolResult saveToStLBinary (const boost::filesystem::path &stlFile, const MeshWithHoles3d< T > &mesh, const ipBool bSaveHoles)
 export the mesh with holes definition to a StL binary file More...
 
template<typename T >
IPSDKGEOMETRY_API void writeStLAscii (std::ostream &os, const MeshWithHoles3d< T > &mesh, const ipBool bSaveHoles, const ipReal32 xOffset, const ipReal32 yOffset, const ipReal32 zOffset)
 function allowing to write stl ascii mesh with holes data into a stream
 
template<typename T >
IPSDKGEOMETRY_API void writeStLBinary (std::ostream &os, const MeshWithHoles3d< T > &mesh, const ipBool bSaveHoles, const ipReal32 xOffset, const ipReal32 yOffset, const ipReal32 zOffset)
 function allowing to write stl binary mesh with holes data into a stream
 
template<typename T >
IPSDKGEOMETRY_API bool compare (const MeshWithHoles3d< T > &mesh1, const MeshWithHoles3d< T > &mesh2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon())
 function allowing to compare mesh with holes
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const MeshWithHoles3d< T > &mesh)
 output operator on mesh with holes
 
IPSDKGEOMETRY_API bool compare (const Plan3d &plan1, const Plan3d &plan2, const ipReal64 epsilon=ipsdk::NumericLimits< ipReal64 >::sqrt_epsilon())
 function allowing to compare plans
 
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Plan3d &plan)
 output operator on plan
 
template<typename T >
IPSDKGEOMETRY_API ipReal64 normL2 (const Point3d< T > &pt)
 compute point norm
 
template<typename T >
IPSDKGEOMETRY_API ipReal64 normL2 (const Point3dData< T > &pt)
 
template<typename T >
IPSDKGEOMETRY_API ipReal64 distance (const Point3d< T > &pt1, const Point3d< T > &pt2)
 compute euclidian distance between two points
 
template<typename T >
IPSDKGEOMETRY_API ipReal64 distance (const Point3dData< T > &pt1, const Point3dData< T > &pt2)
 
template<typename T >
IPSDKGEOMETRY_API ipReal64 scalarProduct (const Point3d< T > &pt1, const Point3d< T > &pt2)
 compute points scalar product
 
template<typename T >
IPSDKGEOMETRY_API ipReal64 scalarProduct (const Point3dData< T > &pt1, const Point3dData< T > &pt2)
 
template<typename T >
IPSDKGEOMETRY_API Point3d< T > crossProduct (const Point3d< T > &pt1, const Point3d< T > &pt2)
 compute points cross product
 
template<typename T >
IPSDKGEOMETRY_API Point3dData< T > crossProduct (const Point3dData< T > &pt1, const Point3dData< T > &pt2)
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const PointCloud3d< T > &ptCloud)
 output operator on point cloud
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Segment3d< T > &segment)
 output operator on segment
 
IPSDKGEOMETRY_API BoolResult saveToStLAscii (const boost::filesystem::path &stlFile, const Shape3d &shape, const ipBool bSaveHoles, const std::string &solidName="")
 export the shape definition to a StL ascii file More...
 
IPSDKGEOMETRY_API BoolResult saveToStLBinary (const boost::filesystem::path &stlFile, const Shape3d &shape, const ipBool bSaveHoles)
 export the shape definition to a StL binary file More...
 
IPSDKGEOMETRY_API BoolResult saveToStLAscii (const boost::filesystem::path &stlFile, const Shape3dVector &shapeColl, const ipBool bSaveHoles, const std::string &solidName="")
 export the shape definition collection to a StL ascii file More...
 
IPSDKGEOMETRY_API BoolResult saveToStLBinary (const boost::filesystem::path &stlFile, const Shape3dVector &shapeColl, const ipBool bSaveHoles)
 export the shape definition collection to a StL binary file More...
 
IPSDKGEOMETRY_API bool compare (const Shape3d &shape1, const Shape3d &shape2, const Shape3dDataType epsilon=ipsdk::NumericLimits< Shape3dDataType >::sqrt_epsilon())
 function allowing to compare Shape3d
 
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Shape3d &shape)
 output operator on shape
 
template<typename T >
bool compare (const Sphere3d< T > &sphere1, const Sphere3d< T > &sphere2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon())
 function allowing to compare spheres with tolerance
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Sphere3d< T > &sphere)
 output operator on sphere
 
template<typename T >
bool compare (const Triangle3d< T > &triangle1, const Triangle3d< T > &triangle2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon())
 function allowing to compare triangles with tolerance
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Triangle3d< T > &triangle)
 output operator on triangle
 
IPSDKGEOMETRY_API ipReal64 distance (const Vector3d &v1, const Vector3d &v2)
 compute euclidian distance between two vectors
 
IPSDKGEOMETRY_API ipReal64 scalarProduct (const Vector3d &v1, const Vector3d &v2)
 compute vectors scalar product
 
IPSDKGEOMETRY_API Vector3d crossProduct (const Vector3d &v1, const Vector3d &v2)
 compute vectors cross product
 
IPSDKGEOMETRY_API bool compare (const Vector3d &vec1, const Vector3d &vec2, const ipReal64 epsilon=ipsdk::NumericLimits< ipReal64 >::sqrt_epsilon())
 function allowing to compare vectors More...
 
IPSDKGEOMETRY_API Vector3d operator* (const ipReal64 value, const Vector3d &vec)
 arithmetic operators on vector
 
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Vector3d &vec)
 output operator on vector
 
IPSDKGEOMETRY_API math::DataSet toDataSet (const std::vector< Line2d > &lineColl)
 function allowing to convert a line 2d collection to an estimation data set
 
IPSDKGEOMETRY_API const std::string & getIPSDKGeometryLoggerName ()
 Recovery of logger name associated to library.
 
IPSDKGEOMETRY_API log4cplus::Logger & getIPSDKGeometryLogger ()
 Recovery of logger associated to library.
 
IPSDKGEOMETRY_API const ipsdk::LogMessageManagergetIPSDKGeometryLogMessageManager ()
 Recovery of message manager associated to library.
 
IPSDKGEOMETRY_API ipsdk::ipReal64 shapeHuDistance (const ipsdk::geom::HuMoments2dO3 &huMoments1, const ipsdk::geom::HuMoments2dO3 &huMoments2, const eShapeHuDistanceType &distanceType)
 fonction computing the distance between two shapes More the distance has a low value, more the shapes are similar More...
 
IPSDKGEOMETRY_API ipsdk::ipReal64 shapeHuDistance (const Shape2d &shape1, const Shape2d &shape2, const eShapeHuDistanceType &distanceType, const ipsdk::ipBool bProcessHoles)
 
IPSDKGEOMETRY_API MatchShapeInfo matchShape (const Shape2dPtr shape, const std::vector< Shape2dPtr > &vShape2dColl, const eShapeHuDistanceType &distanceType, const ipsdk::ipBool bProcessHoles)
 fonction matching a shape with another shape contained in the collection vShape2dColl Returns the index of the shape in vShape2dColl giving the minimum distance and the minimum distance
 
IPSDKGEOMETRY_API ipsdk::ipUInt32 matchShape (const Shape2dPtr shape, const std::vector< Shape2dPtr > &vShape2dColl, const eShapeHuDistanceType &distanceType, const ipsdk::ipBool bProcessHoles, const ipsdk::ipReal64 threshold)
 fonction matching a shape with another shpae contained in the collection vShape2dColl Returns the index of the shape in vShape2dColl giving the minimum distance If the minimum distance is greater than the threshold, the resulting index equals the size of vShape2dColl
 
IPSDKGEOMETRY_API MatchShapesInfo matchShapes (const Shape2dPtr shape, const std::vector< Shape2dPtr > &vShape2dColl, const eShapeHuDistanceType &distanceType, const ipsdk::ipBool bProcessHoles)
 fonction computing the distances between a shape and all shapes in the collection vShape2dColl
 
IPSDKGEOMETRY_API void matchShapes (const Shape2dPtr shape, const std::vector< Shape2dPtr > &vShape2dColl, const eShapeHuDistanceType &distanceType, const ipsdk::ipBool bProcessHoles, UInt32Vector &vIdx, Real64Vector &vDistances)
 
IPSDKGEOMETRY_API UInt32Vector matchShapes (const Shape2dPtr shape, const std::vector< Shape2dPtr > &vShape2dColl, const eShapeHuDistanceType &distanceType, const ipsdk::ipBool bProcessHoles, const ipsdk::ipReal64 threshold)
 fonction computing the distances between a shape and all shapes in the collection vShape2dColl Returns the indices of the shapes in vShape2dColl for which the distance is lower than the threhsold More...
 
IPSDKGEOMETRY_API void matchShapes (const Shape2dPtr shape, const std::vector< Shape2dPtr > &vShape2dColl, const eShapeHuDistanceType &distanceType, const ipsdk::ipBool bProcessHoles, const ipsdk::ipReal64 threshold, UInt32Vector &vIdx)
 
IPSDKGEOMETRY_API ipReal64 extractDiameter (const Skeleton2d &skeleton, UInt64Vector &pathIdxColl)
 fonction allowing to compute skeleton diameter and its associated longest shortest path More...
 
IPSDKGEOMETRY_API ipReal64 computeLength (const Skeleton2d &skeleton, const eSkeletonEdgeCategory &skeletonEdgeCategory=eSkeletonEdgeCategory::eSEC_Branch)
 fonction allowing to compute full skeleton length (including only a given category of edges)
 
IPSDKGEOMETRY_API void computeEdgeLength (const Skeleton2d &skeleton, const eSkeletonEdgeCategory &skeletonEdgeCategory, Real64Vector &edgeLengthColl)
 fonction allowing to compute full skeleton length
 
IPSDKGEOMETRY_API void computeBranchThickness (const Skeleton2d &skeleton, BranchThicknessColl &branchThicknessColl)
 fonction allowing to compute skeleton branch thickness
 
IPSDKGEOMETRY_API void extractVertices (const Skeleton2d &skeleton, const eSkeletonVertexCategory &skeletonVertexCategory, UInt64Vector &verticesIdxColl)
 fonction allowing to retrieve subset of skeleton vertices associated to a given vertex category (output collection contains vertex indexes, not point indexes)
 
IPSDKGEOMETRY_API ipUInt64 countVertices (const Skeleton2d &skeleton, const eSkeletonVertexCategory &skeletonVertexCategory)
 fonction allowing to count number of skeleton vertices associated to a given vertex category
 
IPSDKGEOMETRY_API ipReal64 computeLength (const Skeleton2d &skeleton, const UInt64Vector &pathIdxColl)
 function allowing to compute total length of a path through skeleton vertices More...
 
IPSDKGEOMETRY_API ipReal64 computeTortuosity (const Skeleton2d &skeleton, const UInt64Vector &pathIdxColl)
 function allowing to compute tortuosity of a path through skeleton vertices More...
 
IPSDKGEOMETRY_API ipReal64 computeMeanCurvature (const Skeleton2d &skeleton, const UInt64Vector &pathIdxColl)
 function allowing to compute mean curvature of a path through skeleton vertices More...
 
IPSDKGEOMETRY_API Skeleton2dPtr removeCalibration (const Skeleton2d &skelIn, const GeometricCalibration &geomCalib)
 function allowing to remove the calibration from a skeleton to correctly apply other calculation (Diameter, etc.)
 
IPSDKGEOMETRY_API Skeleton2dPtr restoreCalibration (const Skeleton2d &skelIn, const GeometricCalibration &geomCalib)
 function allowing to restore the calibration from a skeleton after applying other calculation (Diameter, etc.)
 
template<typename T >
IPSDKGEOMETRY_API boost::shared_ptr< RTree< Point2dData< T > > > createPoint2dRTree (const std::vector< Point2dData< T > > &coll, const ipUInt32 startIdx=0)
 function allowing to create a point 2d based RTree object from point 2d collection
 
IPSDKGEOMETRY_API BBox2dRTreePtr createBBox2dRTree (const std::vector< BoundingBox2d< Shape2dDataType > > &coll, const ipUInt32 startIdx=0)
 function allowing to create a bounding box based RTree object from bounding box collection
 
IPSDKGEOMETRY_API Seg2dRTreePtr createSeg2dRTree (const Shape2d &shape2d, const ipBool bProcessHoles)
 function allowing to create a segment based RTree object from shape data
 
template<typename T >
IPSDKGEOMETRY_API boost::shared_ptr< RTree< Point3dData< T > > > createPoint3dRTree (const std::vector< Point3dData< T > > &coll, const ipUInt32 startIdx=0)
 function allowing to create a point 3d based RTree object from point 3d collection
 
IPSDKGEOMETRY_API BBox3dRTreePtr createBBox3dRTree (const std::vector< BoundingBox3d< Shape3dDataType > > &coll, const ipUInt32 startIdx=0)
 function allowing to create a bounding box based RTree object from bounding box collection
 
IPSDKGEOMETRY_API LTri3dRTreePtr createLTri3dRTree (const Shape3d &shape3d, const ipBool bProcessHoles)
 function allowing to create a lightweight triangle based RTree object from shape data
 
IPSDKGEOMETRY_API ipReal64 distance (const Seg2dRTree &seg2dRTree1, const Seg2dRTree &seg2dRTree2)
 function allowing to compute distance between two segment based RTree objects
 
IPSDKGEOMETRY_API ipReal64 distance (const LTri3dRTree &lTri3dRTree1, const LTri3dRTree &lTri3dRTree2)
 function allowing to compute distance between two lightweight triangle based RTree objects
 
IPSDKGEOMETRY_API ipReal64 contactLength (const Seg2dRTree &seg2dRTree1, const Seg2dRTree &seg2dRTree2, const ipReal64 contactDist, const eSegmentContactPolicy &contactPolicy, const ipReal32 segmentSubSamplingStep=0)
 function allowing to compute length of contact between a segment based RTree object and an other one More...
 
IPSDKGEOMETRY_API ipReal64 contactSurface (const LTri3dRTree &lTri3dRTree1, const LTri3dRTree &lTri3dRTree2, const ipReal64 contactDist)
 function allowing to compute surface of contact between a lightweight triangle based RTree object and an other one More...
 
 IPSDK_ENUMERATE_GEOMETRY_ENTITY_2D_TYPES ()
 
IPSDKGEOMETRY_API GeometryTransform2dPtr convert (const math::transform::BaseGeometricTransform2d &transform)
 function allowing to convert a geometric transformation into the object allowing to transform geometrical objects
 
IPSDKGEOMETRY_API bool apply (const BaseGeometryTransform2d &transform, BaseGeometryEntity2d &entity)
 function allowing to apply in situ a given transformation on an entity More...
 
IPSDKGEOMETRY_API bool applyAll (const BaseGeometryTransform2d &transform, GeometryEntity2dPtrColl &coll)
 function allowing to apply in situ a given transformation on a collection of entity More...
 
IPSDKGEOMETRY_API bool applyAll (const BaseGeometryTransform2d &transform, const GeometryEntity2dPtrColl &inputColl, GeometryEntity2dPtrColl &outputColl)
 function allowing to apply a given transformation on a collection of entity More...
 
 IPSDK_ENUMERATE_GEOMETRY_ENTITY_3D_TYPES ()
 
IPSDKGEOMETRY_API GeometryTransform3dPtr convert (const math::transform::BaseGeometricTransform3d &transform)
 function allowing to convert a geometric transformation into the object allowing to transform geometrical objects
 
IPSDKGEOMETRY_API bool apply (const BaseGeometryTransform3d &transform, BaseGeometryEntity3d &entity)
 function allowing to apply in situ a given transformation on an entity More...
 
IPSDKGEOMETRY_API bool applyAll (const BaseGeometryTransform3d &transform, GeometryEntity3dPtrColl &coll)
 function allowing to apply in situ a given transformation on a collection of entity More...
 
IPSDKGEOMETRY_API bool applyAll (const BaseGeometryTransform3d &transform, const GeometryEntity3dPtrColl &inputColl, GeometryEntity3dPtrColl &outputColl)
 function allowing to apply a given transformation on a collection of entity More...
 
template<typename T >
IPSDKGEOMETRY_API Circle2d< ipReal64computeMinEnclosingCircle (const std::vector< Point2dData< T > > &inputPtColl)
 
template<typename T >
IPSDKGEOMETRY_API Sphere3d< ipReal64computeMinEnclosingSphere (const std::vector< Point3dData< T > > &inputPtColl)
 
template<typename T >
bool isStrictlyInside (const Parabola2d &parabola, const Point2dData< T > &pt)
 function allowing to check whether a point is strictly inside parabola (point does not belongs to parabola)
 
template<>
IPSDKGEOMETRY_API bool isStrictlyInside (const Parabola2d &parabola, const Point2dData< ipReal64 > &pt)
 
template<typename T >
IPSDKGEOMETRY_API BoundingBox2d< T > intersection (const BoundingBox2d< T > &bBox0, const BoundingBox2d< T > &bBox1)
 compute bounding boxes intersection
 
template<typename T >
IPSDKGEOMETRY_API void intersection (const BoundingBox2d< T > &bBox0, const BoundingBox2d< T > &bBox1, BoundingBox2d< T > &resBBox)
 compute bounding boxes intersection
 
template<typename T >
IPSDKGEOMETRY_API BoundingBox2d< T > merge (const BoundingBox2d< T > &bBox0, const BoundingBox2d< T > &bBox1)
 compute bounding box including two bounding boxes
 
template<typename T >
IPSDKGEOMETRY_API void merge (const BoundingBox2d< T > &bBox0, const BoundingBox2d< T > &bBox1, BoundingBox2d< T > &resBBox)
 compute bounding box including two bounding boxes
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const BoundingBox2d< T > &boundingBox1, const BoundingBox2d< T > &boundingBox2)
 comparison operators for ipsdk::geom::BoundingBox2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const BoundingBox2d< T > &boundingBox1, const BoundingBox2d< T > &boundingBox2)
 comparison operators for ipsdk::geom::BoundingBox2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator< (const BoundingBox2d< T > &boundingBox1, const BoundingBox2d< T > &boundingBox2)
 comparison operators for ipsdk::geom::BoundingBox2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator> (const BoundingBox2d< T > &boundingBox1, const BoundingBox2d< T > &boundingBox2)
 comparison operators for ipsdk::geom::BoundingBox2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator<= (const BoundingBox2d< T > &boundingBox1, const BoundingBox2d< T > &boundingBox2)
 comparison operators for ipsdk::geom::BoundingBox2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator>= (const BoundingBox2d< T > &boundingBox1, const BoundingBox2d< T > &boundingBox2)
 comparison operators for ipsdk::geom::BoundingBox2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Circle2d< T > &circle1, const Circle2d< T > &circle2)
 comparison operators for ipsdk::geom::Circle2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Circle2d< T > &circle1, const Circle2d< T > &circle2)
 comparison operators for ipsdk::geom::Circle2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Ellipse2d< T > &ellipse1, const Ellipse2d< T > &ellipse2)
 comparison operators for ipsdk::geom::Ellipse2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Ellipse2d< T > &ellipse1, const Ellipse2d< T > &ellipse2)
 comparison operators for ipsdk::geom::Ellipse2d class
 
IPSDKGEOMETRY_API bool operator== (const Line2d &line1, const Line2d &line2)
 comparison operators for ipsdk::geom::Line2d class
 
IPSDKGEOMETRY_API bool operator!= (const Line2d &line1, const Line2d &line2)
 comparison operators for ipsdk::geom::Line2d class
 
IPSDKGEOMETRY_API bool operator== (const Parabola2d &parabola2d1, const Parabola2d &parabola2d2)
 comparison operators for ipsdk::geom::Parabola2d class
 
IPSDKGEOMETRY_API bool operator!= (const Parabola2d &parabola2d1, const Parabola2d &parabola2d2)
 comparison operators for ipsdk::geom::Parabola2d class
 
template<typename T >
IPSDKGEOMETRY_API ipReal64 normL2 (const Point2d< T > &pt)
 compute point norm
 
template<typename T >
IPSDKGEOMETRY_API ipReal64 normL2 (const Point2dData< T > &pt)
 compute point norm
 
template<typename T >
IPSDKGEOMETRY_API ipReal64 distance (const Point2d< T > &pt1, const Point2d< T > &pt2)
 compute euclidian distance between two points
 
template<typename T >
IPSDKGEOMETRY_API ipReal64 distance (const Point2dData< T > &pt1, const Point2dData< T > &pt2)
 compute euclidian distance between two points
 
template<typename T >
IPSDKGEOMETRY_API ipReal64 scalarProduct (const Point2d< T > &pt1, const Point2d< T > &pt2)
 compute points scalar product
 
template<typename T >
IPSDKGEOMETRY_API ipReal64 scalarProduct (const Point2dData< T > &pt1, const Point2dData< T > &pt2)
 compute points scalar product
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API Point2d< TOut > cast (const Point2d< TIn > &pt)
 conversion operators for ipsdk::geom::Point2d class
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API Point2dData< TOut > cast (const Point2dData< TIn > &pt)
 conversion operators for ipsdk::geom::Point2d class
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API Point2d< TOut > round (const Point2d< TIn > &pt)
 conversion operators for ipsdk::geom::Point2d class
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API Point2dData< TOut > round (const Point2dData< TIn > &pt)
 conversion operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API Vector2d convert (const Point2d< T > &pt)
 conversion operator for ipsdk::geom::Point2d and ipsdk::geom::Vector2d convertion
 
template<typename T >
IPSDKGEOMETRY_API Vector2d convert (const Point2dData< T > &pt)
 conversion operator for ipsdk::geom::Point2d and ipsdk::geom::Vector2d convertion
 
template<typename T >
IPSDKGEOMETRY_API void convert (const Point2d< T > &pt, Vector2d &vec)
 conversion operator for ipsdk::geom::Point2d and ipsdk::geom::Vector2d convertion
 
template<typename T >
IPSDKGEOMETRY_API void convert (const Point2dData< T > &pt, Vector2d &vec)
 conversion operator for ipsdk::geom::Point2d and ipsdk::geom::Vector2d convertion
 
template<typename T >
IPSDKGEOMETRY_API Point2dData< T > convert (const Vector2d &vec)
 conversion operator for ipsdk::geom::Point2d and ipsdk::geom::Vector2d convertion
 
template<typename T >
IPSDKGEOMETRY_API void convert (const Vector2d &vec, Point2d< T > &pt)
 conversion operator for ipsdk::geom::Point2d and ipsdk::geom::Vector2d convertion
 
template<typename T >
IPSDKGEOMETRY_API void convert (const Vector2d &vec, Point2dData< T > &pt)
 conversion operator for ipsdk::geom::Point2d and ipsdk::geom::Vector2d convertion
 
template<typename T >
IPSDKGEOMETRY_API bool compare (const Point2d< T > &pt1, const Point2d< T > &pt2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon())
 function allowing to compare points More...
 
template<typename T >
IPSDKGEOMETRY_API bool compare (const Point2dData< T > &pt1, const Point2dData< T > &pt2, const T epsilon=ipsdk::NumericLimits< T >::sqrt_epsilon())
 function allowing to compare points More...
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Point2d< T > &pt1, const Point2d< T > &pt2)
 comparison operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Point2d< T > &pt1, const Point2d< T > &pt2)
 comparison operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator< (const Point2d< T > &pt1, const Point2d< T > &pt2)
 comparison operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator> (const Point2d< T > &pt1, const Point2d< T > &pt2)
 comparison operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator<= (const Point2d< T > &pt1, const Point2d< T > &pt2)
 comparison operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator>= (const Point2d< T > &pt1, const Point2d< T > &pt2)
 comparison operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Point2dData< T > &pt1, const Point2dData< T > &pt2)
 comparison operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Point2dData< T > &pt1, const Point2dData< T > &pt2)
 comparison operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator< (const Point2dData< T > &pt1, const Point2dData< T > &pt2)
 comparison operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator> (const Point2dData< T > &pt1, const Point2dData< T > &pt2)
 comparison operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator<= (const Point2dData< T > &pt1, const Point2dData< T > &pt2)
 comparison operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator>= (const Point2dData< T > &pt1, const Point2dData< T > &pt2)
 comparison operators for ipsdk::geom::Point2d class
 
template<typename T >
IPSDKGEOMETRY_API Point2d< T > operator* (const ipReal64 value, const Point2d< T > &pt)
 arithmetic operators on point
 
template<typename T >
IPSDKGEOMETRY_API Point2dData< T > operator* (const ipReal64 value, const Point2dData< T > &pt)
 arithmetic operators on point
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Point2dData< T > &pt)
 output operator on point
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Point2d< T > &pt)
 output operator on point
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Polygon2d< T > &polygon1, const Polygon2d< T > &polygon2)
 comparison operators for ipsdk::geom::Polygon2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Polygon2d< T > &polygon1, const Polygon2d< T > &polygon2)
 comparison operators for ipsdk::geom::Polygon2d class
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API Polygon2d< TOut > cast (const Polygon2d< TIn > &inputPolygon)
 function allowing to cast a polygon data TIn type to TOut type
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API void cast (const Polygon2d< TIn > &inputPolygon, Polygon2d< TOut > &outputPolygon)
 function allowing to cast a polygon data TIn type to TOut type
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const PolygonWithHoles2d< T > &polygon1, const PolygonWithHoles2d< T > &polygon2)
 comparison operators for ipsdk::geom::PolygonWithHoles2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const PolygonWithHoles2d< T > &polygon1, const PolygonWithHoles2d< T > &polygon2)
 comparison operators for ipsdk::geom::PolygonWithHoles2d class
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API boost::shared_ptr< PolygonWithHoles2d< TOut > > cast (const PolygonWithHoles2d< TIn > &inputPolygon)
 function allowing to cast a polygon data TIn type to TOut type
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Rectangle2d< T > &rectangle1, const Rectangle2d< T > &rectangle2)
 comparison operators for ipsdk::geom::Rectangle2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Rectangle2d< T > &rectangle1, const Rectangle2d< T > &rectangle2)
 comparison operators for ipsdk::geom::Rectangle2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Segment2d< T > &segment1, const Segment2d< T > &segment2)
 comparison operators for ipsdk::geom::Segment2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Segment2d< T > &segment1, const Segment2d< T > &segment2)
 comparison operators for ipsdk::geom::Segment2d class
 
IPSDKGEOMETRY_API bool operator== (const Shape2d &shape1, const Shape2d &shape2)
 comparison operators for ipsdk::geom::Shape2d class
 
IPSDKGEOMETRY_API bool operator!= (const Shape2d &shape1, const Shape2d &shape2)
 comparison operators for ipsdk::geom::Shape2d class
 
IPSDKGEOMETRY_API bool operator== (const SkeletonVertex2d &skeletonVertex2d1, const SkeletonVertex2d &skeletonVertex2d2)
 comparison operators for ipsdk::geom::SkeletonVertex2d class
 
IPSDKGEOMETRY_API bool operator!= (const SkeletonVertex2d &skeletonVertex2d1, const SkeletonVertex2d &skeletonVertex2d2)
 comparison operators for ipsdk::geom::SkeletonVertex2d class
 
IPSDKGEOMETRY_API bool operator== (const Skeleton2d &skeleton2d1, const Skeleton2d &skeleton2d2)
 comparison operators for ipsdk::geom::Skeleton2d class
 
IPSDKGEOMETRY_API bool operator!= (const Skeleton2d &skeleton2d1, const Skeleton2d &skeleton2d2)
 comparison operators for ipsdk::geom::Skeleton2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Square2d< T > &square1, const Square2d< T > &square2)
 comparison operators for ipsdk::geom::Square2d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Square2d< T > &square1, const Square2d< T > &square2)
 comparison operators for ipsdk::geom::Square2d class
 
IPSDKGEOMETRY_API bool operator== (const Vector2d &v1, const Vector2d &v2)
 comparison operators for ipsdk::geom::Vector2d class
 
IPSDKGEOMETRY_API bool operator!= (const Vector2d &v1, const Vector2d &v2)
 comparison operators for ipsdk::geom::Vector2d class
 
IPSDKGEOMETRY_API bool operator< (const Vector2d &v1, const Vector2d &v2)
 comparison operators for ipsdk::geom::Vector2d class
 
IPSDKGEOMETRY_API bool operator> (const Vector2d &v1, const Vector2d &v2)
 comparison operators for ipsdk::geom::Vector2d class
 
IPSDKGEOMETRY_API bool operator<= (const Vector2d &v1, const Vector2d &v2)
 comparison operators for ipsdk::geom::Vector2d class
 
IPSDKGEOMETRY_API bool operator>= (const Vector2d &v1, const Vector2d &v2)
 comparison operators for ipsdk::geom::Vector2d class
 
template<typename T >
IPSDKGEOMETRY_API BoundingBox3d< T > intersection (const BoundingBox3d< T > &bBox0, const BoundingBox3d< T > &bBox1)
 compute bounding boxes intersection
 
template<typename T >
IPSDKGEOMETRY_API void intersection (const BoundingBox3d< T > &bBox0, const BoundingBox3d< T > &bBox1, BoundingBox3d< T > &resBBox)
 compute bounding boxes intersection
 
template<typename T >
IPSDKGEOMETRY_API BoundingBox3d< T > merge (const BoundingBox3d< T > &bBox0, const BoundingBox3d< T > &bBox1)
 compute bounding box including two bounding boxes
 
template<typename T >
IPSDKGEOMETRY_API void merge (const BoundingBox3d< T > &bBox0, const BoundingBox3d< T > &bBox1, BoundingBox3d< T > &resBBox)
 compute bounding box including two bounding boxes
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const BoundingBox3d< T > &boundingBox1, const BoundingBox3d< T > &boundingBox2)
 comparison operators for ipsdk::geom::BoundingBox3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const BoundingBox3d< T > &boundingBox1, const BoundingBox3d< T > &boundingBox2)
 comparison operators for ipsdk::geom::BoundingBox3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator< (const BoundingBox3d< T > &boundingBox1, const BoundingBox3d< T > &boundingBox2)
 comparison operators for ipsdk::geom::BoundingBox3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator> (const BoundingBox3d< T > &boundingBox1, const BoundingBox3d< T > &boundingBox2)
 comparison operators for ipsdk::geom::BoundingBox3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator<= (const BoundingBox3d< T > &boundingBox1, const BoundingBox3d< T > &boundingBox2)
 comparison operators for ipsdk::geom::BoundingBox3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator>= (const BoundingBox3d< T > &boundingBox1, const BoundingBox3d< T > &boundingBox2)
 comparison operators for ipsdk::geom::BoundingBox3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Cube3d< T > &cube1, const Cube3d< T > &cube2)
 comparison operators for ipsdk::geom::Cube3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Cube3d< T > &cube1, const Cube3d< T > &cube2)
 comparison operators for ipsdk::geom::Cube3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Cuboid3d< T > &cuboid1, const Cuboid3d< T > &cuboid2)
 comparison operators for ipsdk::geom::Cuboid3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Cuboid3d< T > &cuboid1, const Cuboid3d< T > &cuboid2)
 comparison operators for ipsdk::geom::Cuboid3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Ellipsoid3d< T > &ellipsoid1, const Ellipsoid3d< T > &ellipsoid2)
 comparison operators for ipsdk::geom::Ellipsoid3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Ellipsoid3d< T > &ellipsoid1, const Ellipsoid3d< T > &ellipsoid2)
 comparison operators for ipsdk::geom::Ellipsoid3d class
 
IPSDKGEOMETRY_API bool operator== (const Mesh3dHalfEdge &halfEdge1, const Mesh3dHalfEdge &halfEdge2)
 comparison operators for ipsdk::geom::Mesh3dHalfEdge structure
 
IPSDKGEOMETRY_API bool operator!= (const Mesh3dHalfEdge &halfEdge1, const Mesh3dHalfEdge &halfEdge2)
 comparison operators for ipsdk::geom::Mesh3dHalfEdge structure
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Mesh3d< T > &mesh1, const Mesh3d< T > &mesh2)
 comparison operators for ipsdk::geom::Mesh3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Mesh3d< T > &mesh1, const Mesh3d< T > &mesh2)
 comparison operators for ipsdk::geom::Mesh3d class
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API Mesh3d< TOut > cast (const Mesh3d< TIn > &inputMesh)
 function allowing to cast a mesh data TIn type to TOut type
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API void cast (const Mesh3d< TIn > &inputMesh, Mesh3d< TOut > &outputMesh)
 function allowing to cast a mesh data TIn type to TOut type
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const MeshWithHoles3d< T > &mesh1, const MeshWithHoles3d< T > &mesh2)
 comparison operators for ipsdk::geom::MeshWithHoles3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const MeshWithHoles3d< T > &mesh1, const MeshWithHoles3d< T > &mesh2)
 comparison operators for ipsdk::geom::MeshWithHoles3d class
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API boost::shared_ptr< MeshWithHoles3d< TOut > > cast (const MeshWithHoles3d< TIn > &inputMesh)
 function allowing to cast a mesh with holes data TIn type to TOut type
 
IPSDKGEOMETRY_API bool operator== (const Plan3d &plan1, const Plan3d &plan2)
 comparison operators for ipsdk::geom::Plan3d class
 
IPSDKGEOMETRY_API bool operator!= (const Plan3d &plan1, const Plan3d &plan2)
 comparison operators for ipsdk::geom::Plan3d class
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API Point3d< TOut > cast (const Point3d< TIn > &pt)
 conversion operators for ipsdk::geom::Point3d and ipsdk::geom::Point3dData
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API Point3dData< TOut > cast (const Point3dData< TIn > &pt)
 conversion operators for ipsdk::geom::Point3d and ipsdk::geom::Point3dData
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API Point3d< TOut > round (const Point3d< TIn > &pt)
 conversion operators for ipsdk::geom::Point3d and ipsdk::geom::Point3dData
 
template<typename TOut , typename TIn >
IPSDKGEOMETRY_API Point3dData< TOut > round (const Point3dData< TIn > &pt)
 conversion operators for ipsdk::geom::Point3d and ipsdk::geom::Point3dData
 
template<typename T >
IPSDKGEOMETRY_API Vector3d convert (const Point3d< T > &pt)
 conversion operators for ipsdk::geom::Point3d and ipsdk::geom::Vector3d convertion
 
template<typename T >
IPSDKGEOMETRY_API Vector3d convert (const Point3dData< T > &pt)
 conversion operators for ipsdk::geom::Point3d and ipsdk::geom::Vector3d convertion
 
template<typename T >
IPSDKGEOMETRY_API void convert (const Point3d< T > &pt, Vector3d &vec)
 conversion operators for ipsdk::geom::Point3d and ipsdk::geom::Vector3d convertion
 
template<typename T >
IPSDKGEOMETRY_API void convert (const Point3dData< T > &pt, Vector3d &vec)
 conversion operators for ipsdk::geom::Point3d and ipsdk::geom::Vector3d convertion
 
template<typename T >
IPSDKGEOMETRY_API Point3dData< T > convert (const Vector3d &vec)
 conversion operators for ipsdk::geom::Point3d and ipsdk::geom::Vector3d convertion
 
template<typename T >
IPSDKGEOMETRY_API void convert (const Vector3d &vec, Point3d< T > &pt)
 conversion operators for ipsdk::geom::Point3d and ipsdk::geom::Vector3d convertion
 
template<typename T >
IPSDKGEOMETRY_API void convert (const Vector3d &vec, Point3dData< T > &pt)
 conversion operators for ipsdk::geom::Point3d and ipsdk::geom::Vector3d convertion
 
template<typename T >
IPSDKGEOMETRY_API bool compare (const Point3d< T > &pt1, const Point3d< T > &pt2, const T epsilon=NumericLimits< T >::s_sqrt_eps)
 function allowing to compare points More...
 
template<typename T >
IPSDKGEOMETRY_API bool compare (const Point3dData< T > &pt1, const Point3dData< T > &pt2, const T epsilon=NumericLimits< T >::s_sqrt_eps)
 function allowing to compare points More...
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Point3d< T > &pt1, const Point3d< T > &pt2)
 comparison operators for ipsdk::geom::Point3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Point3d< T > &pt1, const Point3d< T > &pt2)
 comparison operators for ipsdk::geom::Point3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator< (const Point3d< T > &pt1, const Point3d< T > &pt2)
 comparison operators for ipsdk::geom::Point3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator> (const Point3d< T > &pt1, const Point3d< T > &pt2)
 comparison operators for ipsdk::geom::Point3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator<= (const Point3d< T > &pt1, const Point3d< T > &pt2)
 comparison operators for ipsdk::geom::Point3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator>= (const Point3d< T > &pt1, const Point3d< T > &pt2)
 comparison operators for ipsdk::geom::Point3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Point3dData< T > &pt1, const Point3dData< T > &pt2)
 comparison operators for ipsdk::geom::Point3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Point3dData< T > &pt1, const Point3dData< T > &pt2)
 comparison operators for ipsdk::geom::Point3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator< (const Point3dData< T > &pt1, const Point3dData< T > &pt2)
 comparison operators for ipsdk::geom::Point3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator> (const Point3dData< T > &pt1, const Point3dData< T > &pt2)
 comparison operators for ipsdk::geom::Point3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator<= (const Point3dData< T > &pt1, const Point3dData< T > &pt2)
 comparison operators for ipsdk::geom::Point3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator>= (const Point3dData< T > &pt1, const Point3dData< T > &pt2)
 comparison operators for ipsdk::geom::Point3d class
 
template<typename T >
IPSDKGEOMETRY_API Point3d< T > operator* (const ipReal64 value, const Point3d< T > &pt)
 arithmetic operators on point
 
template<typename T >
IPSDKGEOMETRY_API Point3dData< T > operator* (const ipReal64 value, const Point3dData< T > &pt)
 arithmetic operators on point
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Point3dData< T > &pt)
 output operator on point
 
template<typename T >
IPSDKGEOMETRY_API std::ostream & operator<< (std::ostream &os, const Point3d< T > &pt)
 output operator on point
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Segment3d< T > &segment1, const Segment3d< T > &segment2)
 comparison operators for ipsdk::geom::Segment3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Segment3d< T > &segment1, const Segment3d< T > &segment2)
 comparison operators for ipsdk::geom::Segment3d class
 
IPSDKGEOMETRY_API bool operator== (const Shape3d &shape1, const Shape3d &shape2)
 comparison operators for ipsdk::geom::Shape3d class
 
IPSDKGEOMETRY_API bool operator!= (const Shape3d &shape1, const Shape3d &shape2)
 comparison operators for ipsdk::geom::Shape3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Sphere3d< T > &sphere1, const Sphere3d< T > &sphere2)
 comparison operators for ipsdk::geom::Sphere3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Sphere3d< T > &sphere1, const Sphere3d< T > &sphere2)
 comparison operators for ipsdk::geom::Sphere3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator== (const Triangle3d< T > &triangle1, const Triangle3d< T > &triangle2)
 comparison operators for ipsdk::geom::Triangle3d class
 
template<typename T >
IPSDKGEOMETRY_API bool operator!= (const Triangle3d< T > &triangle1, const Triangle3d< T > &triangle2)
 comparison operators for ipsdk::geom::Triangle3d class
 
IPSDKGEOMETRY_API bool operator== (const Vector3d &v1, const Vector3d &v2)
 comparison operators for ipsdk::geom::Vector3d class
 
IPSDKGEOMETRY_API bool operator!= (const Vector3d &v1, const Vector3d &v2)
 comparison operators for ipsdk::geom::Vector3d class
 
IPSDKGEOMETRY_API bool operator< (const Vector3d &v1, const Vector3d &v2)
 comparison operators for ipsdk::geom::Vector3d class
 
IPSDKGEOMETRY_API bool operator> (const Vector3d &v1, const Vector3d &v2)
 comparison operators for ipsdk::geom::Vector3d class
 
IPSDKGEOMETRY_API bool operator<= (const Vector3d &v1, const Vector3d &v2)
 comparison operators for ipsdk::geom::Vector3d class
 
IPSDKGEOMETRY_API bool operator>= (const Vector3d &v1, const Vector3d &v2)
 comparison operators for ipsdk::geom::Vector3d class
 
template<typename T >
IPSDKGEOMETRY_API math::DataSet toDataSet (const std::vector< Point2d< T > > &ptColl)
 function allowing to convert a point collection to an estimation data set
 
template<typename T >
IPSDKGEOMETRY_API math::DataSet toDataSet (const std::vector< Point2dData< T > > &ptColl)
 function allowing to convert a point collection to an estimation data set
 
template<typename T >
IPSDKGEOMETRY_API math::DataSet toDataSet (const std::vector< Point2d< T > > &ptColl1, const std::vector< Point2d< T > > &ptColl2)
 function allowing to convert two point collections to an estimation data set More...
 
template<typename T >
IPSDKGEOMETRY_API math::DataSet toDataSet (const std::vector< Point2dData< T > > &ptColl1, const std::vector< Point2dData< T > > &ptColl2)
 function allowing to convert two point collections to an estimation data set More...
 
template<typename T >
IPSDKGEOMETRY_API math::DataSet toDataSet (const std::vector< Point3d< T > > &ptColl)
 function allowing to convert a point collection to an estimation data set
 
template<typename T >
IPSDKGEOMETRY_API math::DataSet toDataSet (const std::vector< Point3dData< T > > &ptColl)
 function allowing to convert a point collection to an estimation data set
 
template<typename T >
IPSDKGEOMETRY_API math::DataSet toDataSet (const std::vector< Point3d< T > > &ptColl1, const std::vector< Point3d< T > > &ptColl2)
 function allowing to convert two point collections to an estimation data set More...
 
template<typename T >
IPSDKGEOMETRY_API math::DataSet toDataSet (const std::vector< Point3dData< T > > &ptColl1, const std::vector< Point3dData< T > > &ptColl2)
 function allowing to convert two point collections to an estimation data set More...
 
IPSDKGEOMETRY_API GeometryEntity2dPtr apply (const BaseGeometryTransform2d &transform, const GeometryEntity2dConstPtr &pEntity)
 function allowing to apply a given transformation on an entity More...
 
IPSDKGEOMETRY_API GeometryEntity2dPtr apply (const math::transform::BaseGeometricTransform2d &transform, const GeometryEntity2dConstPtr &pEntity)
 function allowing to apply a given transformation on an entity More...
 
IPSDKGEOMETRY_API GeometryEntity2dPtrColl applyAll (const BaseGeometryTransform2d &transform, const GeometryEntity2dPtrColl &inputColl)
 function allowing to apply a given transformation on a collection of entity More...
 
IPSDKGEOMETRY_API GeometryEntity2dPtrColl applyAll (const math::transform::BaseGeometricTransform2d &transform, const GeometryEntity2dPtrColl &inputColl)
 function allowing to apply a given transformation on a collection of entity More...
 
IPSDKGEOMETRY_API GeometryEntity3dPtr apply (const math::transform::BaseGeometricTransform3d &transform, const GeometryEntity3dConstPtr &pEntity)
 function allowing to apply a given transformation on an entity More...
 
IPSDKGEOMETRY_API GeometryEntity3dPtr apply (const BaseGeometryTransform3d &transform, const GeometryEntity3dConstPtr &pEntity)
 function allowing to apply a given transformation on an entity More...
 
IPSDKGEOMETRY_API GeometryEntity3dPtrColl applyAll (const BaseGeometryTransform3d &transform, const GeometryEntity3dPtrColl &inputColl)
 function allowing to apply a given transformation on a collection of entity More...
 
IPSDKGEOMETRY_API GeometryEntity3dPtrColl applyAll (const math::transform::BaseGeometricTransform3d &transform, const GeometryEntity3dPtrColl &inputColl)
 function allowing to apply a given transformation on a collection of entity More...
 

Detailed Description

Namespace aggregating geometrical routines and classes.

Enumeration Type Documentation

◆ eEntity2dType

Enumerate describing entity 2d type.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eE2DT_Point 

Point.

eE2DT_Vector 

Vector.

eE2DT_BoundingBox 

BoundingBox.

eE2DT_PointCloud 

Point cloud.

eE2DT_Polygon 

Polygon.

eE2DT_PolygonWithHoles 

Polygon with holes.

eE2DT_Shape 

Shape.

eE2DT_Circle 

Circle.

eE2DT_Ellipse 

Ellipse.

eE2DT_Square 

Square.

eE2DT_Rectangle 

Rectangle.

eE2DT_Line 

Line.

eE2DT_Parabola 

Parabola.

eE2DT_Skeleton 

Polygon skeleton.

eE2DT_Segment 

Segment.

◆ eCoordinateSystem2dType

Enumerate describing coordinate system 2d type.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eCS2DT_Cartesian 

Cartesian coordinate system.

eCS2DT_Polar 

Polar coordinate system.

◆ ePolygon2dType

Enumerate describing polygon type.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eP2DT_Exterior 

Exterior polygon with clock wise point ordering.

eP2DT_Interior 

Interior polygon with counter clock wise point ordering.

◆ eSkeletonVertexCategory

Enumerate describing skeleton vertex type.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eSVC_Internal 

internal vertex (vertex without connection to leaf)

eSVC_Junction 

vertex connected at least to three other vertices

eSVC_Slab 

vertex connected exactly to two other vertices

eSVC_EndPoint 

vertex connected exactly to one other vertice

eSVC_All 

all vertices

◆ eSkeletonEdgeCategory

Enumerate describing skeleton edge type.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eSEC_Leaf 

leaf edge (edge connected to a polygon point)

eSEC_Branch 

branch edge (edge not connected to a polygon point)

eSEC_All 

all edges

◆ eEntity3dType

Enumerate describing entity 3d type.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eE3DT_Point 

Point.

eE3DT_Vector 

Vector.

eE3DT_BoundingBox 

BoundingBox.

eE3DT_PointCloud 

Point cloud.

eE3DT_Sphere 

Sphere.

eE3DT_Ellipsoid 

Ellipsoid.

eE3DT_Cube 

Cube.

eE3DT_Cuboid 

Cuboid.

eE3DT_Mesh 

Mesh.

eE3DT_MeshWithHoles 

Mesh.

eE3DT_Shape 

Shape.

eE3DT_Plan 

Plan.

eE3DT_Segment 

Segment.

eE3DT_Triangle 

Triangle.

◆ eCoordinateSystem3dType

Enumerate describing coordinate system 3d type.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eCS3DT_Cartesian 

Cartesian coordinate system.

eCS3DT_Spherical 

Spherical coordinate system.

◆ eMesh3dType

Enumerate describing mesh type.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eM3DT_Exterior 

Exterior mesh with clock wise point ordering.

eM3DT_Interior 

Interior mesh with counter clock wise point ordering.

◆ eEntityMessage

Enumerate describing messages.

Note
This enumerate is associated to a message map
See also
IPSDK_Message_Map
Enumerator
eCantAddRowIntersection 

Can't add row intersection with row range [d, d[ to existing row range [d, d[, ranges should not intersect.

eExteriorMeshNotInit 

Exterior mesh has not been initialized.

eHalfEdgeNotANewTriangle 

Half edge with index d cannot be associated to a new triangle.

eInvalidHalfEdgeIdx 

Half edge with index d is not valid given half edge collection size d.

eInvalidHalfEdgePair 

Starting points of half edges d and d are not linked by an half edge.

eInvalidPointIndex 

Invalid point index, out of bounds.

eInvalidShape2dRowIdx 

Invalid row index d for shape with starting row index d and ending row index d.

eInvalidShape3dY 

Invalid y index d for shape with starting y index d and ending y index d.

eInvalidShape3dZ 

Invalid z index d for shape with starting z index d and ending z index d.

eInvalidTriangleIdx 

Triangle with index d is not valid given triangle collection size d.

eInvalidVertexIdx 

Vertex with index d is not valid given vertex collection size d.

eMesh3dCantWriteFile 

Failed to write mesh 3d data to file s.

eMethodNotImplemented 

Method s is not implemented.

eNullInputSharedPointer 

Input shared pointer should not be null.

eParabolaSegmentNotFound 

Parabola segment starting with point d and ending with point d has not been found.

ePolygonMismatchWithSegment 

Polygon to set mismatch with segment already set polygon.

ePolygonSimplificationFailed 

Polygon simplification failed while processing shape 2d construction.

eShape2dAccessorInternalError 

Shape 2d constructor has encountered an interal error.

eShape2dAccessorNotInit 

Shape 2d constructor has not been initialized.

eShape3dAccessorNotInit 

Shape 3d constructor has not been initialized.

eShapesMergeRowMismatch 

Row index mismatch for shapes merge, main shape row index = d should be lower or equal to new shape row index = d.

eUnlinkedHalfEdges 

Half edges with indexes d and d should be linked.

◆ eCoordinateDimension

Enumerate describing coordinates dimension.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eCD_2d 

2d coordinates

◆ eEstimationMessage

Enumerate describing messages.

Note
This enumerate is associated to a message map
See also
IPSDK_Message_Map
Enumerator
eCircle2dCantEstimate 

Can't estimate circle 2d from cloud of points, insufficient matrix rank for estimation.

eCircle2dCostFunCantInit 

Can't initialize circle 2d cost function
s.

eEllipse2dCantEstimate 

Can't estimate ellipse 2d from cloud of points, insufficient matrix rank for estimation.

eEllipse2dEstimationNotAnEllipse 

Can't estimate ellipse 2d from cloud of points, estimation does not lead to an ellipse representation.

eEllipse2dParametersNotAnEllipse 

Ellipse radius should not be null.

eEllipsoid3dCantEstimate 

Can't estimate ellipsoid 3d from cloud of points, insufficient matrix rank for estimation.

eEllipsoid3dEstimationNotAnEllipse 

Can't estimate ellipsoid 3d from cloud of points, estimation does not lead to an ellipsoid representation.

eEllipsoid3dParametersNotAnEllipse 

Ellipsoid radius should not be null.

eHomography2dCantEstimate 

Invalid matrix rank d for homography 2d linear system while expecting at least d rank.

eHomography3dCantEstimate 

Invalid matrix rank d for homography 3d linear system while expecting at least d rank.

eIntersectionPoint2dUndefined 

Can't estimate intersection point 2d, this point is undefined.

eLine2dNoPriviledgedDirection 

Can't estimate line 2d from cloud of points, no priviledge direction among cloud.

ePlan3dNoPriviledgedDirection 

Can't estimate plan 3d from cloud of points, no priviledge direction among cloud.

ePointCollectionsSizeMismatch 

First collection of points size d mismatch with second one size d.

eRigidTransform2dCantEstimate 

Can't estimate rigid transformation 2d, insufficient matrix rank for estimation.

eRigidTransform3dCantEstimate 

Can't estimate rigid transformation 3d, insufficient matrix rank for estimation.

eTranslationTransform2dCantEstimate 

Can't estimate translation transformation 2d, insufficient matrix rank for estimation.

eTranslationTransform3dCantEstimate 

Can't estimate translation transformation 3d, insufficient matrix rank for estimation.

eSimilarityTransform2dCantEstimate 

Can't estimate similarity transformation 2d, insufficient matrix rank for estimation.

eSimilarityTransform3dCantEstimate 

Can't estimate similarity transformation 3d, insufficient matrix rank for estimation.

eSphere3dCantEstimate 

Can't estimate sphere 3d from cloud of points, insufficient matrix rank for estimation.

eSphere3dCostFunCantInit 

Can't initialize sphere 3d cost function
s.

◆ eIPSDKGeometryMessage

Enumerate describing messages.

Note
This enumerate is associated to a message map
See also
IPSDK_Message_Map

◆ eMeasure2dType

Enumerate describing geometry 2d measure type.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eM2DT_Perimeter 

Perimeter.

eM2DT_Area 

Area.

eM2DT_Moments 

Moments of order up to 3.

eM2DT_HuMoments 

Hu Moments of order up to 3.

◆ eShapeHuDistanceType

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eSDT_Type1 

Type 1 : Sum of absolute difference of the inverse values.

eSDT_Type2 

Type 2 : Sum of absolute difference.

eSDT_Type3 

Type 3 : maximum of the nomalized differences.

◆ eMeasure3dType

Enumerate describing geometry 3d measure type.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eM3DT_Area 

Area.

eM3DT_Volume 

Volume.

◆ eHoleMsrPolicy

Enumerate describing measurement hole policy.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eHMP_ProcessHoles 

Holes are taken into account.

eHMP_IgnoreHoles 

Holes are ignored.

◆ eMeasureMessage

Enumerator
eMeasureFailed 

Measure s failed for geometry entity s.

◆ eSegmentContactPolicy

Enumerate describing policy used to define if a segment belongs to elements in contact with a shape.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eSCP_SegCenter 

center of segment must be in contact with shape

eSCP_SegEnds 

the two ends of segment must be in contact with shape

eSCP_SegClosestPoint 

closest point on segment must be in contact with shape

◆ eToolsMessage

Enumerate describing messages.

Note
This enumerate is associated to a message map
See also
IPSDK_Message_Map
Enumerator
eContactPolicyNotSupported 

Segment contact policy s is not yet supported.

◆ eTransform2dType

Enumerate describing geometry 2d transform type.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eT2DT_Translation 

Translation.

eT2DT_Rotation 

Rotation.

eT2DT_Scale 

Scale.

eT2DT_AnisotropicScale 

Anisotropic scale.

eT2DT_RigidTransform 

Rigid transformation.

eT2DT_SimilarityTransform 

Similarity transformation.

eT2DT_HomographyTransform 

Homography transformation.

eT2DT_Centroid 

Centroid computation.

eT2DT_ConvexHull 

Convex Hull computation.

eT2DT_Envelope 

Envelope (bounding box) computation.

eT2DT_Simplify 

Geometry simplification computation.

eT2DT_MinEnclosingCircle 

minimum enclosing circle computation

◆ eTransform3dType

Enumerate describing geometry 3d transform type.

Note
This object is associated to a strong enumerate definition
See also
IPSDK_Enum
Enumerator
eT3DT_Translation 

Translation.

eT3DT_Rotation 

Rotation.

eT3DT_Scale 

Scale.

eT3DT_AnisotropicScale 

Anisotropic scale.

eT3DT_RigidTransform 

Rigid transformation.

eT3DT_SimilarityTransform 

Similarity transformation.

eT3DT_HomographyTransform 

Homography transformation.

eT3DT_Centroid 

Centroid computation.

eT3DT_ConvexHull 

Convex Hull computation.

eT3DT_Envelope 

Envelope (bounding box) computation.

eT3DT_Simplify 

Geometry simplification computation.

eT3DT_MinEnclosingSphere 

minimum enclosing sphere computation

◆ eTransformMessage

Enumerate describing messages.

Note
This enumerate is associated to a message map
See also
IPSDK_Message_Map
Enumerator
eCantTransformPoint2d 

Failed to apply s transformation on point 2d with coordinates {f, f}.

eCantTransformPoint3d 

Failed to apply s transformation on point 3d with coordinates {f, f, f}.

eSimplify2dEquivalenceIdxError 

Internal error while processing self intersection removal during simplification process : unable to build equivalence index table from polygonal approximation to input data.

eSimplify2dNearestPtError 

Internal error while processing self intersection removal during simplification process : unable to refine self intersecting segment for cross point {f, f}.

eTransformFailed 

Transform s failed for geometry entity s.

eUnsupportedGeometricTransform 

Input geometric transformation s is not yet supported for geometric entities transformation.

Function Documentation

◆ isContained() [1/2]

template<typename T >
IPSDKGEOMETRY_API bool ipsdk::geom::isContained ( const BoundingBox2d< T > &  bBoxInside,
const BoundingBox2d< T > &  bBoxOutside 
)

check whether a bounding boxe is contained by another (check whether bBoxInside is contained by bBoxOutside)

Note
No edge part can be shared by bounding boxes

◆ isContainedOrTouch() [1/2]

template<typename T >
IPSDKGEOMETRY_API bool ipsdk::geom::isContainedOrTouch ( const BoundingBox2d< T > &  bBoxInside,
const BoundingBox2d< T > &  bBoxOutside 
)

check whether a bounding boxe is contained by another (check whether bBoxInside is contained by bBoxOutside)

Note
Edge parts may be shared by bounding boxes

◆ compare() [1/8]

template<typename T >
IPSDKGEOMETRY_API bool ipsdk::geom::compare ( const BoundingBox2d< T > &  boundingBox1,
const BoundingBox2d< T > &  boundingBox2,
const T  epsilon = ipsdk::NumericLimits< T >::sqrt_epsilon() 
)

function allowing to compare bounding box

Note
Comparison is done on associated points

◆ computeArcLength()

IPSDKGEOMETRY_API ipReal64 ipsdk::geom::computeArcLength ( const Parabola2d parabola,
const Point2dData< ipReal64 > &  pt0,
const Point2dData< ipReal64 > &  pt1 
)

function allowing to compute arc length between two points on a parabola

Warning
signed distance from points to symmetry axis are used, no check are proceeded to ensure that points are on parabola
Returns
-1 in degenerate case

◆ sampleArc()

IPSDKGEOMETRY_API void ipsdk::geom::sampleArc ( const Parabola2d parabola,
const Point2dData< ipReal64 > &  pt0,
const Point2dData< ipReal64 > &  pt1,
const ipReal64 maxDist,
std::vector< Point2dData< ipReal64 > > &  sampleColl 
)

function allowing to sample a parabolic arc between two points

Warning
no check are proceeded to ensure that points are on parabola
input maximum distance used for approximation should be > 0

◆ compare() [2/8]

template<typename T >
IPSDKGEOMETRY_API bool ipsdk::geom::compare ( const Point2d< T > &  pt1,
const Point2d< T > &  pt2,
const T  epsilon = ipsdk::NumericLimits< T >::sqrt_epsilon() 
)

function allowing to compare points

Note
Comparison is done on norm of vector of difference (||pt2 - pt1|| <= epsilon ?)

◆ compare() [3/8]

template<typename T >
IPSDKGEOMETRY_API bool ipsdk::geom::compare ( const Point2dData< T > &  pt1,
const Point2dData< T > &  pt2,
const T  epsilon = ipsdk::NumericLimits< T >::sqrt_epsilon() 
)

function allowing to compare points

Note
Comparison is done on norm of vector of difference (||pt2 - pt1|| <= epsilon ?)

◆ fromString()

template<typename T >
IPSDKGEOMETRY_API void ipsdk::geom::fromString ( Polygon2d< T > &  polygon,
const std::string &  dataStr 
)

function allowing to extract polygon data from a string. Polygon points should have following form : x0 y0, x1 y1, x2 y2 We automatically add closing point at end (ie we add point at x0 y0)

◆ getNbPolygons() [1/2]

IPSDKGEOMETRY_API ipUInt32 ipsdk::geom::getNbPolygons ( const Shape2d shape2d)

function allowing to compute number of polygons into shape polygon with holes collection (this is the number of polygons regardless there type : exterior or interior)

◆ getNbPolygons() [2/2]

IPSDKGEOMETRY_API ipUInt32 ipsdk::geom::getNbPolygons ( const Shape2dVector shape2dVector)

function allowing to compute number of polygons into collection of shape

◆ getPolygonMaxNbPoints() [1/2]

IPSDKGEOMETRY_API ipUInt32 ipsdk::geom::getPolygonMaxNbPoints ( const Shape2d shape2d)

function allowing to compute maximum number of points for polygons into shape polygon with holes collection (this is the maximum for all polygons regardless there type : exterior or interior)

◆ getPolygonMaxNbPoints() [2/2]

IPSDKGEOMETRY_API ipUInt32 ipsdk::geom::getPolygonMaxNbPoints ( const Shape2dVector shape2dVector)

function allowing to compute maximum number of points for polygons into a shape collection

◆ writeToCsv() [1/2]

IPSDKGEOMETRY_API bool ipsdk::geom::writeToCsv ( const boost::filesystem::path &  filePath,
const Shape2d shape2d 
)

function allowing to write polygons of a shape into a csv file

Returns
false in case of failure

◆ writeToCsv() [2/2]

IPSDKGEOMETRY_API bool ipsdk::geom::writeToCsv ( const boost::filesystem::path &  filePath,
const Shape2dVector shape2dVector 
)

function allowing to write polygons of a collection of shapes into a csv file

Returns
false in case of failure

◆ compare() [4/8]

IPSDKGEOMETRY_API bool ipsdk::geom::compare ( const Vector2d vec1,
const Vector2d vec2,
const ipReal64  epsilon = ipsdk::NumericLimitsipReal64 >::sqrt_epsilon() 
)

function allowing to compare vectors

Note
Comparison is done on norm of vector of difference (||vec2 - vec1|| > epsilon ?)

◆ isContained() [2/2]

template<typename T >
IPSDKGEOMETRY_API bool ipsdk::geom::isContained ( const BoundingBox3d< T > &  bBoxInside,
const BoundingBox3d< T > &  bBoxOutside 
)

check whether a bounding boxe is contained by another (check whether bBoxInside is contained by bBoxOutside)

Note
No edge part can be shared by bounding boxes

◆ isContainedOrTouch() [2/2]

template<typename T >
IPSDKGEOMETRY_API bool ipsdk::geom::isContainedOrTouch ( const BoundingBox3d< T > &  bBoxInside,
const BoundingBox3d< T > &  bBoxOutside 
)

check whether a bounding boxe is contained by another (check whether bBoxInside is contained by bBoxOutside)

Note
Edge parts may be shared by bounding boxes

◆ compare() [5/8]

template<typename T >
IPSDKGEOMETRY_API bool ipsdk::geom::compare ( const BoundingBox3d< T > &  boundingBox1,
const BoundingBox3d< T > &  boundingBox2,
const T  epsilon = ipsdk::NumericLimits< T >::sqrt_epsilon() 
)

function allowing to compare bounding box

Note
Comparison is done on associated points

◆ saveToStLAscii() [1/4]

template<typename T >
IPSDKGEOMETRY_API BoolResult ipsdk::geom::saveToStLAscii ( const boost::filesystem::path &  stlFile,
const Mesh3d< T > &  mesh,
const std::string &  solidName = "" 
)

export the mesh definition to a StL ascii file

Note
in a StL file, all vertices positions coordinates must be strictly greater than 0. If this is not the case, all vertices coordinates will be automatically translated such that minimum coordinates value along each axis will be greater or equal to 1.
Returns
false on failure

◆ saveToStLBinary() [1/4]

template<typename T >
IPSDKGEOMETRY_API BoolResult ipsdk::geom::saveToStLBinary ( const boost::filesystem::path &  stlFile,
const Mesh3d< T > &  mesh 
)

export the mesh definition to a StL binary file

Note
in a StL file, all vertices positions coordinates must be strictly greater than 0. If this is not the case, all vertices coordinates will be automatically translated such that minimum coordinates value along each axis will be greater or equal to 1.
Returns
false on failure

◆ saveToStLAscii() [2/4]

template<typename T >
IPSDKGEOMETRY_API BoolResult ipsdk::geom::saveToStLAscii ( const boost::filesystem::path &  stlFile,
const MeshWithHoles3d< T > &  mesh,
const ipBool  bSaveHoles,
const std::string &  solidName = "" 
)

export the mesh with holes definition to a StL ascii file

Note
in a StL file, all vertices positions coordinates must be strictly greater than 0. If this is not the case, all vertices coordinates will be automatically translated such that minimum coordinates value along each axis will be greater or equal to 1.
Returns
false on failure

◆ saveToStLBinary() [2/4]

template<typename T >
IPSDKGEOMETRY_API BoolResult ipsdk::geom::saveToStLBinary ( const boost::filesystem::path &  stlFile,
const MeshWithHoles3d< T > &  mesh,
const ipBool  bSaveHoles 
)

export the mesh with holes definition to a StL binary file

Note
in a StL file, all vertices positions coordinates must be strictly greater than 0. If this is not the case, all vertices coordinates will be automatically translated such that minimum coordinates value along each axis will be greater or equal to 1.
Returns
false on failure

◆ compare() [6/8]

template<typename T >
IPSDKGEOMETRY_API bool ipsdk::geom::compare ( const Point3d< T > &  pt1,
const Point3d< T > &  pt2,
const T  epsilon = NumericLimits< T >::s_sqrt_eps 
)

function allowing to compare points

Note
Comparison is done on norm of vector of difference (||pt2 - pt1|| > epsilon ?)

◆ compare() [7/8]

template<typename T >
IPSDKGEOMETRY_API bool ipsdk::geom::compare ( const Point3dData< T > &  pt1,
const Point3dData< T > &  pt2,
const T  epsilon = NumericLimits< T >::s_sqrt_eps 
)

function allowing to compare points

Note
Comparison is done on norm of vector of difference (||pt2 - pt1|| > epsilon ?)

◆ saveToStLAscii() [3/4]

IPSDKGEOMETRY_API BoolResult ipsdk::geom::saveToStLAscii ( const boost::filesystem::path &  stlFile,
const Shape3d shape,
const ipBool  bSaveHoles,
const std::string &  solidName = "" 
)

export the shape definition to a StL ascii file

Note
in a StL file, all vertices positions coordinates must be strictly greater than 0. If this is not the case, all vertices coordinates will be automatically translated such that minimum coordinates value along each axis will be greater or equal to 1.
Returns
false on failure

◆ saveToStLBinary() [3/4]

IPSDKGEOMETRY_API BoolResult ipsdk::geom::saveToStLBinary ( const boost::filesystem::path &  stlFile,
const Shape3d shape,
const ipBool  bSaveHoles 
)

export the shape definition to a StL binary file

Note
in a StL file, all vertices positions coordinates must be strictly greater than 0. If this is not the case, all vertices coordinates will be automatically translated such that minimum coordinates value along each axis will be greater or equal to 1.
Returns
false on failure

◆ saveToStLAscii() [4/4]

IPSDKGEOMETRY_API BoolResult ipsdk::geom::saveToStLAscii ( const boost::filesystem::path &  stlFile,
const Shape3dVector shapeColl,
const ipBool  bSaveHoles,
const std::string &  solidName = "" 
)

export the shape definition collection to a StL ascii file

Note
in a StL file, all vertices positions coordinates must be strictly greater than 0. If this is not the case, all vertices coordinates will be automatically translated such that minimum coordinates value along each axis will be greater or equal to 1.
Returns
false on failure

◆ saveToStLBinary() [4/4]

IPSDKGEOMETRY_API BoolResult ipsdk::geom::saveToStLBinary ( const boost::filesystem::path &  stlFile,
const Shape3dVector shapeColl,
const ipBool  bSaveHoles 
)

export the shape definition collection to a StL binary file

Note
in a StL file, all vertices positions coordinates must be strictly greater than 0. If this is not the case, all vertices coordinates will be automatically translated such that minimum coordinates value along each axis will be greater or equal to 1.
Returns
false on failure

◆ compare() [8/8]

IPSDKGEOMETRY_API bool ipsdk::geom::compare ( const Vector3d vec1,
const Vector3d vec2,
const ipReal64  epsilon = ipsdk::NumericLimitsipReal64 >::sqrt_epsilon() 
)

function allowing to compare vectors

Note
Comparison is done on norm of vector of difference (||vec2 - vec1|| > epsilon ?)

◆ shapeHuDistance()

IPSDKGEOMETRY_API ipsdk::ipReal64 ipsdk::geom::shapeHuDistance ( const ipsdk::geom::HuMoments2dO3 huMoments1,
const ipsdk::geom::HuMoments2dO3 huMoments2,
const eShapeHuDistanceType distanceType 
)

fonction computing the distance between two shapes More the distance has a low value, more the shapes are similar

See also
http://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html

◆ matchShapes()

IPSDKGEOMETRY_API UInt32Vector ipsdk::geom::matchShapes ( const Shape2dPtr  shape,
const std::vector< Shape2dPtr > &  vShape2dColl,
const eShapeHuDistanceType distanceType,
const ipsdk::ipBool  bProcessHoles,
const ipsdk::ipReal64  threshold 
)

fonction computing the distances between a shape and all shapes in the collection vShape2dColl Returns the indices of the shapes in vShape2dColl for which the distance is lower than the threhsold

Note
The result can be an empty vector

◆ extractDiameter()

IPSDKGEOMETRY_API ipReal64 ipsdk::geom::extractDiameter ( const Skeleton2d skeleton,
UInt64Vector pathIdxColl 
)

fonction allowing to compute skeleton diameter and its associated longest shortest path

See also
https://en.wikipedia.org/wiki/Distance_(graph_theory)

◆ computeLength()

IPSDKGEOMETRY_API ipReal64 ipsdk::geom::computeLength ( const Skeleton2d skeleton,
const UInt64Vector pathIdxColl 
)

function allowing to compute total length of a path through skeleton vertices

Exceptions
ipsdk::geom::IPSDKGeometryExceptionif collection contains points with indexes out of bound for skeleton points collection

◆ computeTortuosity()

IPSDKGEOMETRY_API ipReal64 ipsdk::geom::computeTortuosity ( const Skeleton2d skeleton,
const UInt64Vector pathIdxColl 
)

function allowing to compute tortuosity of a path through skeleton vertices

Tortuosity is defined as $\tau=\frac{L}{C}$ with $L$ the length of path and $C$ the distance between the ends of path

See also
https://en.wikipedia.org/wiki/Tortuosity
Exceptions
ipsdk::geom::IPSDKGeometryExceptionif collection contains points with indexes out of bound for skeleton points collection

◆ computeMeanCurvature()

IPSDKGEOMETRY_API ipReal64 ipsdk::geom::computeMeanCurvature ( const Skeleton2d skeleton,
const UInt64Vector pathIdxColl 
)

function allowing to compute mean curvature of a path through skeleton vertices

Exceptions
ipsdk::geom::IPSDKGeometryExceptionif collection contains points with indexes out of bound for skeleton points collection

◆ contactLength()

IPSDKGEOMETRY_API ipReal64 ipsdk::geom::contactLength ( const Seg2dRTree seg2dRTree1,
const Seg2dRTree seg2dRTree2,
const ipReal64  contactDist,
const eSegmentContactPolicy contactPolicy,
const ipReal32  segmentSubSamplingStep = 0 
)

function allowing to compute length of contact between a segment based RTree object and an other one

We agregate whole lenght of segments (or sub segments in case of subsampling) belonging to seg2dRTree1 in contact with seg2dRTree2. A segment seg(p0, p1) is considered as in contact with seg2dRTree2 if :

  • distance(center(seg), seg2dRTree2) <= contactDist if contactPolicy == ipsdk::geom::eSegmentContactPolicy::eSCP_SegCenter
  • max(distance(p0, seg2dRTree2), distance(p1, seg2dRTree2)) <= contactDist if contactPolicy == ipsdk::geom::eSegmentContactPolicy::eSCP_SegEnds
  • distance(seg, seg2dRTree2) <= contactDist if contactPolicy == ipsdk::geom::eSegmentContactPolicy::eSCP_SegClosestPoint

If segmentSubSamplingStep > 0, we sub sample segments which allows to increase precision of computations

Note
note that contact length of seg2dRTree1 -> seg2dRTree2 may differs from seg2dRTree2 -> seg2dRTree1.

◆ contactSurface()

IPSDKGEOMETRY_API ipReal64 ipsdk::geom::contactSurface ( const LTri3dRTree lTri3dRTree1,
const LTri3dRTree lTri3dRTree2,
const ipReal64  contactDist 
)

function allowing to compute surface of contact between a lightweight triangle based RTree object and an other one

We agregate whole surface of triangle belonging to lTri3dRTree1 in contact with lTri3dRTree2. A lightweight triangle tri(barycenter1, area1) is considered as in contact with lTri3dRTree2 if :

  • distance(barycenter1, lTri3dRTree2) <= contactDist, in this case we add area1 to global surface of contact
Note
note that contact surface of lTri3dRTree1 -> lTri3dRTree2 may differs from lTri3dRTree2 -> lTri3dRTree1.

◆ apply() [1/6]

IPSDKGEOMETRY_API bool ipsdk::geom::apply ( const BaseGeometryTransform2d transform,
BaseGeometryEntity2d entity 
)

function allowing to apply in situ a given transformation on an entity

Returns
false in case of failure

◆ apply() [2/6]

IPSDKGEOMETRY_API GeometryEntity2dPtr ipsdk::geom::apply ( const BaseGeometryTransform2d transform,
const GeometryEntity2dConstPtr pEntity 
)

function allowing to apply a given transformation on an entity

Returns
a null pointer in case of failure

◆ apply() [3/6]

IPSDKGEOMETRY_API GeometryEntity2dPtr ipsdk::geom::apply ( const math::transform::BaseGeometricTransform2d transform,
const GeometryEntity2dConstPtr pEntity 
)

function allowing to apply a given transformation on an entity

Returns
a null pointer in case of failure

◆ applyAll() [1/8]

IPSDKGEOMETRY_API bool ipsdk::geom::applyAll ( const BaseGeometryTransform2d transform,
GeometryEntity2dPtrColl coll 
)

function allowing to apply in situ a given transformation on a collection of entity

Returns
false in case of failure

◆ applyAll() [2/8]

IPSDKGEOMETRY_API bool ipsdk::geom::applyAll ( const BaseGeometryTransform2d transform,
const GeometryEntity2dPtrColl inputColl,
GeometryEntity2dPtrColl outputColl 
)

function allowing to apply a given transformation on a collection of entity

Returns
false in case of failure

◆ applyAll() [3/8]

IPSDKGEOMETRY_API GeometryEntity2dPtrColl ipsdk::geom::applyAll ( const BaseGeometryTransform2d transform,
const GeometryEntity2dPtrColl inputColl 
)

function allowing to apply a given transformation on a collection of entity

Exceptions
ipsdk::geom::IPSDKGeometryExceptionin case of failure

◆ applyAll() [4/8]

IPSDKGEOMETRY_API GeometryEntity2dPtrColl ipsdk::geom::applyAll ( const math::transform::BaseGeometricTransform2d transform,
const GeometryEntity2dPtrColl inputColl 
)

function allowing to apply a given transformation on a collection of entity

Exceptions
ipsdk::geom::IPSDKGeometryExceptionin case of failure

◆ apply() [4/6]

IPSDKGEOMETRY_API bool ipsdk::geom::apply ( const BaseGeometryTransform3d transform,
BaseGeometryEntity3d entity 
)

function allowing to apply in situ a given transformation on an entity

Returns
false in case of failure

◆ apply() [5/6]

IPSDKGEOMETRY_API GeometryEntity3dPtr ipsdk::geom::apply ( const math::transform::BaseGeometricTransform3d transform,
const GeometryEntity3dConstPtr pEntity 
)

function allowing to apply a given transformation on an entity

Returns
a null pointer in case of failure

◆ apply() [6/6]

IPSDKGEOMETRY_API GeometryEntity3dPtr ipsdk::geom::apply ( const BaseGeometryTransform3d transform,
const GeometryEntity3dConstPtr pEntity 
)

function allowing to apply a given transformation on an entity

Returns
a null pointer in case of failure

◆ applyAll() [5/8]

IPSDKGEOMETRY_API bool ipsdk::geom::applyAll ( const BaseGeometryTransform3d transform,
GeometryEntity3dPtrColl coll 
)

function allowing to apply in situ a given transformation on a collection of entity

Returns
false in case of failure

◆ applyAll() [6/8]

IPSDKGEOMETRY_API bool ipsdk::geom::applyAll ( const BaseGeometryTransform3d transform,
const GeometryEntity3dPtrColl inputColl,
GeometryEntity3dPtrColl outputColl 
)

function allowing to apply a given transformation on a collection of entity

Returns
false in case of failure

◆ applyAll() [7/8]

IPSDKGEOMETRY_API GeometryEntity3dPtrColl ipsdk::geom::applyAll ( const BaseGeometryTransform3d transform,
const GeometryEntity3dPtrColl inputColl 
)

function allowing to apply a given transformation on a collection of entity

Exceptions
ipsdk::geom::IPSDKGeometryExceptionin case of failure

◆ applyAll() [8/8]

IPSDKGEOMETRY_API GeometryEntity3dPtrColl ipsdk::geom::applyAll ( const math::transform::BaseGeometricTransform3d transform,
const GeometryEntity3dPtrColl inputColl 
)

function allowing to apply a given transformation on a collection of entity

Exceptions
ipsdk::geom::IPSDKGeometryExceptionin case of failure

◆ computeMinEnclosingCircle()

template<typename T >
IPSDKGEOMETRY_API Circle2d<ipReal64> ipsdk::geom::computeMinEnclosingCircle ( const std::vector< Point2dData< T > > &  inputPtColl)

function allowing to compute a the minimum enclosing circle given a collection of 2d points

◆ computeMinEnclosingSphere()

template<typename T >
IPSDKGEOMETRY_API Sphere3d<ipReal64> ipsdk::geom::computeMinEnclosingSphere ( const std::vector< Point3dData< T > > &  inputPtColl)

function allowing to compute a the minimum enclosing sphere given a collection of 3d points