OGS
AnalyticalGeometry.h File Reference

Detailed Description

Definition of analytical geometry functions.

Author
Thomas Fischer
Date
2010-03-17

Definition in file AnalyticalGeometry.h.

#include <memory>
#include "Polygon.h"
#include "AnalyticalGeometry-impl.h"
Include dependency graph for AnalyticalGeometry.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  GeoLib
 

Enumerations

enum  GeoLib::Orientation { GeoLib::CW = -1 , GeoLib::COLLINEAR = 0 , GeoLib::CCW = 1 }
 

Functions

Orientation GeoLib::getOrientation (MathLib::Point3d const &p0, MathLib::Point3d const &p1, MathLib::Point3d const &p2)
 
Orientation GeoLib::getOrientationFast (MathLib::Point3d const &p0, MathLib::Point3d const &p1, MathLib::Point3d const &p2)
 
template<typename InputIterator >
std::pair< Eigen::Vector3d, double > GeoLib::getNewellPlane (InputIterator pnts_begin, InputIterator pnts_end)
 
template<class T_POINT >
std::pair< Eigen::Vector3d, double > GeoLib::getNewellPlane (const std::vector< T_POINT * > &pnts)
 
template<class T_POINT >
std::pair< Eigen::Vector3d, double > GeoLib::getNewellPlane (const std::vector< T_POINT > &pnts)
 
Eigen::Matrix3d GeoLib::compute2DRotationMatrixToX (Eigen::Vector3d const &v)
 
Eigen::Matrix3d GeoLib::compute3DRotationMatrixToX (Eigen::Vector3d const &v)
 
Eigen::Matrix3d GeoLib::computeRotationMatrixToXY (Eigen::Vector3d const &n)
 
template<typename InputIterator >
void GeoLib::rotatePoints (Eigen::Matrix3d const &rot_mat, InputIterator pnts_begin, InputIterator pnts_end)
 
template<typename P >
void GeoLib::rotatePoints (Eigen::Matrix3d const &rot_mat, std::vector< P * > const &pnts)
 
Eigen::Matrix3d GeoLib::rotatePointsToXY (std::vector< Point * > &pnts)
 
template<typename InputIterator1 , typename InputIterator2 >
Eigen::Matrix3d GeoLib::rotatePointsToXY (InputIterator1 p_pnts_begin, InputIterator1 p_pnts_end, InputIterator2 r_pnts_begin, InputIterator2 r_pnts_end)
 
bool GeoLib::lineSegmentsIntersect (const GeoLib::Polyline *ply, GeoLib::Polyline::SegmentIterator &seg_it0, GeoLib::Polyline::SegmentIterator &seg_it1, GeoLib::Point &intersection_pnt)
 
bool GeoLib::parallel (Eigen::Vector3d v, Eigen::Vector3d w)
 
bool GeoLib::lineSegmentIntersect (GeoLib::LineSegment const &s0, GeoLib::LineSegment const &s1, GeoLib::Point &s)
 
std::vector< MathLib::Point3dGeoLib::lineSegmentIntersect2d (GeoLib::LineSegment const &ab, GeoLib::LineSegment const &cd)
 
std::unique_ptr< GeoLib::PointGeoLib::triangleLineIntersection (MathLib::Point3d const &a, MathLib::Point3d const &b, MathLib::Point3d const &c, MathLib::Point3d const &p, MathLib::Point3d const &q)
 
void GeoLib::computeAndInsertAllIntersectionPoints (PointVec &pnt_vec, std::vector< Polyline * > &plys)
 
std::tuple< std::vector< GeoLib::Point * >, Eigen::Vector3d > GeoLib::rotatePolygonPointsToXY (GeoLib::Polygon const &polygon_in)
 
void GeoLib::sortSegments (MathLib::Point3d const &seg_beg_pnt, std::vector< LineSegment > &sub_segments)