57 template <
typename InputIterator>
58 std::pair<Eigen::Vector3d, double>
getNewellPlane(InputIterator pnts_begin,
59 InputIterator pnts_end);
70 template <
class T_POINT>
72 const std::vector<T_POINT*>& pnts);
76 template <
class T_POINT>
78 const std::vector<T_POINT>& pnts);
110 template <
typename InputIterator>
111 void rotatePoints(Eigen::Matrix3d
const& rot_mat, InputIterator pnts_begin,
112 InputIterator pnts_end);
119 template <
typename P>
120 void rotatePoints(Eigen::Matrix3d
const& rot_mat, std::vector<P*>
const& pnts);
139 template <
typename InputIterator1,
typename InputIterator2>
141 InputIterator1 p_pnts_end,
142 InputIterator2 r_pnts_begin,
143 InputIterator2 r_pnts_end);
154 Polyline::SegmentIterator& seg_it0,
155 Polyline::SegmentIterator& seg_it1,
156 Point& intersection_pnt);
164 bool parallel(Eigen::Vector3d v, Eigen::Vector3d w);
187 LineSegment
const& ab, LineSegment
const& cd);
206 std::vector<Polyline*> & plys);
220 Eigen::Vector3d& plane_normal);
229 std::vector<LineSegment>& sub_segments);
Definition of the Polygon class.
Orientation getOrientationFast(MathLib::Point3d const &p0, MathLib::Point3d const &p1, MathLib::Point3d const &p2)
GeoLib::Polygon rotatePolygonToXY(GeoLib::Polygon const &polygon_in, Eigen::Vector3d &plane_normal)
Eigen::Matrix3d compute3DRotationMatrixToX(Eigen::Vector3d const &v)
bool lineSegmentsIntersect(const GeoLib::Polyline *ply, GeoLib::Polyline::SegmentIterator &seg_it0, GeoLib::Polyline::SegmentIterator &seg_it1, GeoLib::Point &intersection_pnt)
void computeAndInsertAllIntersectionPoints(GeoLib::PointVec &pnt_vec, std::vector< GeoLib::Polyline * > &plys)
void rotatePoints(Eigen::Matrix3d const &rot_mat, InputIterator pnts_begin, InputIterator pnts_end)
bool parallel(Eigen::Vector3d v, Eigen::Vector3d w)
Eigen::Matrix3d computeRotationMatrixToXY(Eigen::Vector3d const &n)
Eigen::Matrix3d rotatePointsToXY(InputIterator1 p_pnts_begin, InputIterator1 p_pnts_end, InputIterator2 r_pnts_begin, InputIterator2 r_pnts_end)
void sortSegments(MathLib::Point3d const &seg_beg_pnt, std::vector< GeoLib::LineSegment > &sub_segments)
std::vector< MathLib::Point3d > lineSegmentIntersect2d(GeoLib::LineSegment const &ab, GeoLib::LineSegment const &cd)
std::unique_ptr< GeoLib::Point > triangleLineIntersection(MathLib::Point3d const &a, MathLib::Point3d const &b, MathLib::Point3d const &c, MathLib::Point3d const &p, MathLib::Point3d const &q)
std::pair< Eigen::Vector3d, double > getNewellPlane(InputIterator pnts_begin, InputIterator pnts_end)
Eigen::Matrix3d compute2DRotationMatrixToX(Eigen::Vector3d const &v)
bool lineSegmentIntersect(GeoLib::LineSegment const &s0, GeoLib::LineSegment const &s1, GeoLib::Point &s)
Orientation getOrientation(MathLib::Point3d const &p0, MathLib::Point3d const &p1, MathLib::Point3d const &p2)
TemplateElement< PointRule1 > Point