Main MRPT website > C++ reference for MRPT 1.5.7
Classes | Functions
geometry.cpp File Reference
#include "base-precomp.h"
#include <mrpt/math/geometry.h>
#include <mrpt/math/CPolygon.h>
#include <mrpt/math/CSparseMatrixTemplate.h>
#include <mrpt/math/CMatrixTemplateNumeric.h>
#include <mrpt/math/data_utils.h>
#include <mrpt/math/ops_containers.h>
#include <mrpt/poses/CPoint2D.h>
#include <mrpt/poses/CPose2D.h>
#include <mrpt/math/lightweight_geom_data.h>
Include dependency graph for geometry.cpp:

Go to the source code of this file.

Classes

struct  T2ListsOfSegments
 
struct  TCommonRegion
 
struct  TTempIntersection
 
struct  TSegmentWithLine
 
struct  MatchingVertex
 
class  FCreatePolygon
 
class  FUnprojectPolygon2D
 

Functions

template<class T2D , class U2D , class T3D , class U3D >
bool intersectInCommonPlane (const T3D &o1, const U3D &o2, const mrpt::math::TPlane &p, mrpt::math::TObject3D &obj)
 
bool intersectInCommonLine (const mrpt::math::TSegment3D &s1, const mrpt::math::TSegment3D &s2, const mrpt::math::TLine3D &lin, mrpt::math::TObject3D &obj)
 
bool intersectInCommonLine (const TSegment2D &s1, const TSegment2D &s2, const TLine2D &lin, TObject2D &obj)
 
void unsafeProjectPoint (const TPoint3D &point, const CPose3D &pose, TPoint2D &newPoint)
 
void unsafeProjectPolygon (const TPolygon3D &poly, const CPose3D &pose, TPolygon2D &newPoly)
 
bool intersect (const TPolygonWithPlane &p1, const TLine3D &l2, double &d, double bestKnown)
 
bool intersect (const TPolygonWithPlane &p1, const TPolygonWithPlane &p2, TObject3D &obj)
 
void createFromPoseAndAxis (const CPose3D &p, TLine3D &r, size_t axis)
 
bool intersect (const TSegmentWithLine &s1, const TSegmentWithLine &s2, TObject2D &obj)
 
void getSegmentsWithLine (const TPolygon2D &poly, vector< TSegmentWithLine > &segs)
 
char fromObject (const TObject2D &obj)
 
bool intersectAux (const TPolygon3D &p1, const TPlane &pl1, const TPolygon3D &p2, const TPlane &pl2, TObject3D &obj)
 
bool compatibleBounds (const TPoint3D &min1, const TPoint3D &max1, const TPoint3D &min2, const TPoint3D &max2)
 
void getPlanes (const std::vector< TPolygon3D > &polys, std::vector< TPlane > &planes)
 
void getMinAndMaxBounds (const std::vector< TPolygon3D > &v1, std::vector< TPoint3D > &minP, std::vector< TPoint3D > &maxP)
 
void createPlaneFromPoseAndAxis (const CPose3D &pose, TPlane &plane, size_t axis)
 
template<class T >
size_t getIndexOfMin (const T &e1, const T &e2, const T &e3)
 
template<class T >
size_t getIndexOfMax (const T &e1, const T &e2, const T &e3)
 
bool firstOrNonPresent (size_t i, const std::vector< MatchingVertex > &v)
 
bool depthFirstSearch (const CSparseMatrixTemplate< unsigned char > &mat, std::vector< std::vector< MatchingVertex > > &res, std::vector< bool > &used, size_t searching, unsigned char mask, std::vector< MatchingVertex > &current)
 
void depthFirstSearch (const CSparseMatrixTemplate< unsigned char > &mat, std::vector< std::vector< MatchingVertex > > &res, std::vector< bool > &used)
 
bool intersect (const TLine2D &l1, const TSegmentWithLine &s2, TObject2D &obj)
 
bool intersect (const TSegmentWithLine &s1, const TLine2D &l2, TObject2D &obj)
 

Function Documentation

◆ compatibleBounds()

bool compatibleBounds ( const TPoint3D min1,
const TPoint3D max1,
const TPoint3D min2,
const TPoint3D max2 
)

Definition at line 1326 of file geometry.cpp.

Referenced by mrpt::math::intersect().

◆ createFromPoseAndAxis()

void createFromPoseAndAxis ( const CPose3D p,
TLine3D r,
size_t  axis 
)

◆ createPlaneFromPoseAndAxis()

void createPlaneFromPoseAndAxis ( const CPose3D pose,
TPlane plane,
size_t  axis 
)

◆ depthFirstSearch() [1/2]

bool depthFirstSearch ( const CSparseMatrixTemplate< unsigned char > &  mat,
std::vector< std::vector< MatchingVertex > > &  res,
std::vector< bool > &  used,
size_t  searching,
unsigned char  mask,
std::vector< MatchingVertex > &  current 
)

◆ depthFirstSearch() [2/2]

void depthFirstSearch ( const CSparseMatrixTemplate< unsigned char > &  mat,
std::vector< std::vector< MatchingVertex > > &  res,
std::vector< bool > &  used 
)

Definition at line 1775 of file geometry.cpp.

References depthFirstSearch().

◆ firstOrNonPresent()

bool firstOrNonPresent ( size_t  i,
const std::vector< MatchingVertex > &  v 
)
inline

Definition at line 1745 of file geometry.cpp.

Referenced by depthFirstSearch().

◆ fromObject()

char fromObject ( const TObject2D obj)
inline

◆ getIndexOfMax()

template<class T >
size_t getIndexOfMax ( const T &  e1,
const T &  e2,
const T &  e3 
)
inline

Definition at line 1685 of file geometry.cpp.

Referenced by mrpt::math::getRegressionLine().

◆ getIndexOfMin()

template<class T >
size_t getIndexOfMin ( const T &  e1,
const T &  e2,
const T &  e3 
)
inline

Definition at line 1680 of file geometry.cpp.

Referenced by mrpt::math::getRegressionPlane().

◆ getMinAndMaxBounds()

void getMinAndMaxBounds ( const std::vector< TPolygon3D > &  v1,
std::vector< TPoint3D > &  minP,
std::vector< TPoint3D > &  maxP 
)

Definition at line 1351 of file geometry.cpp.

References mrpt::math::getPrismBounds().

Referenced by mrpt::math::intersect().

◆ getPlanes()

void getPlanes ( const std::vector< TPolygon3D > &  polys,
std::vector< TPlane > &  planes 
)
inline

Definition at line 1344 of file geometry.cpp.

References mrpt::math::getRegressionPlane().

Referenced by mrpt::math::intersect().

◆ getSegmentsWithLine()

void getSegmentsWithLine ( const TPolygon2D poly,
vector< TSegmentWithLine > &  segs 
)

Definition at line 1193 of file geometry.cpp.

Referenced by mrpt::math::intersect().

◆ intersect() [1/5]

bool intersect ( const TPolygonWithPlane p1,
const TLine3D l2,
double &  d,
double  bestKnown 
)

◆ intersect() [2/5]

bool intersect ( const TPolygonWithPlane p1,
const TPolygonWithPlane p2,
TObject3D obj 
)

◆ intersect() [3/5]

bool intersect ( const TSegmentWithLine s1,
const TSegmentWithLine s2,
TObject2D obj 
)

◆ intersect() [4/5]

bool intersect ( const TLine2D l1,
const TSegmentWithLine s2,
TObject2D obj 
)

◆ intersect() [5/5]

bool intersect ( const TSegmentWithLine s1,
const TLine2D l2,
TObject2D obj 
)
inline

Definition at line 1850 of file geometry.cpp.

References mrpt::math::intersect().

◆ intersectAux()

bool intersectAux ( const TPolygon3D p1,
const TPlane pl1,
const TPolygon3D p2,
const TPlane pl2,
TObject3D obj 
)

◆ intersectInCommonLine() [1/2]

bool intersectInCommonLine ( const mrpt::math::TSegment3D s1,
const mrpt::math::TSegment3D s2,
const mrpt::math::TLine3D lin,
mrpt::math::TObject3D obj 
)

◆ intersectInCommonLine() [2/2]

bool intersectInCommonLine ( const TSegment2D s1,
const TSegment2D s2,
const TLine2D lin,
TObject2D obj 
)

Definition at line 477 of file geometry.cpp.

References mrpt::math::TLine2D::coefs, and mrpt::math::geometryEpsilon.

◆ intersectInCommonPlane()

template<class T2D , class U2D , class T3D , class U3D >
bool intersectInCommonPlane ( const T3D &  o1,
const U3D &  o2,
const mrpt::math::TPlane p,
mrpt::math::TObject3D obj 
)

◆ unsafeProjectPoint()

void unsafeProjectPoint ( const TPoint3D point,
const CPose3D pose,
TPoint2D newPoint 
)
inline

◆ unsafeProjectPolygon()

void unsafeProjectPolygon ( const TPolygon3D poly,
const CPose3D pose,
TPolygon2D newPoly 
)

Definition at line 497 of file geometry.cpp.

References unsafeProjectPoint().

Referenced by intersect(), and mrpt::math::TPolygonWithPlane::TPolygonWithPlane().




Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019