OpenLexocad  28.0
GeomTools.h
Go to the documentation of this file.
1 #pragma once
2 #include <Geom/ToolResults.h>
3 #include <Geom/Trsf.h>
4 #include <Geom/Vec.h>
5 #include <Geom/Dir2d.h> // for Dir2d
6 #include <Geom/Pnt2d.h> // for Pnt2d
7 namespace Geom { class Ax22d; }
8 namespace Geom { class Ax2d; }
9 namespace Geom { class Bnd_Box; }
10 namespace Geom { class Circ; }
11 namespace Geom { class GTrsf; }
12 namespace Geom { class Vec2d; }
13 namespace Geom { class XY; }
14 
15 namespace Geom
16 {
18 {
23 };
24 
25 class LX_GEOM_EXPORT GeomTools
26 {
27 public:
28  GeomTools(void);
29  ~GeomTools(void);
30 
32  static Geom::Pln makePlaneFrom3Points(const Geom::Pnt& p1, const Geom::Pnt& p2, const Geom::Pnt& p3, Geom::Ax2& coordSystem);
34  static Geom::Lin makeLineFrom2Points(const Geom::Pnt& p1, const Geom::Pnt& p2);
35 
37  static Geom::Pnt projectPointOnPlane(const Geom::Pnt& p, const Geom::Pln& plane);
38  static Geom::Pnt projectPointOnPlane(const Geom::Pnt& p, const Geom::Pln& plane, double& U, double& V);
39  static bool isPointOnPlane(const Geom::Pnt& p, const Geom::Pln& plane, double tolerance = 1E-06);
40 
42  static Geom::Pnt projectPointOnLine(const Geom::Pnt& p, const Geom::Lin& line);
43  static Geom::Pnt projectPointOnLine(const Geom::Pnt& p, const Geom::Lin& line, double& U);
44 
46  static Geom::Pnt projectPointOnCircle(const Geom::Pnt& p, const Geom::Circ& circle);
47 
49  static Geom::Pnt midpoint(const Geom::Pnt& p1, const Geom::Pnt& p2);
50  static Geom::Pnt2d midpoint(const Geom::Pnt2d& p1, const Geom::Pnt2d& p2);
51 
52  static double getAngleWithPlane(const Geom::Vec& v, const Geom::Pln& plane);
53  static double getAngleBetweenVectors(const Geom::Vec& v1, const Geom::Vec& v2);
54  static void angleBetween(const Geom::Vec& v1, const Geom::Vec& v2, Geom::Vec& axis, double& angle);
55 
56  struct AngleParams
57  {
66  };
67  struct Angle3Points
68  {
73  };
75 
77  static Geom::Ax2 makeAxisPlacementFrom2Points(const Geom::Pnt& p1, const Geom::Pnt& p2, double& xLength, double& angleXYPlane);
78  static double getDistanceBetween2Points(const Geom::Pnt& p1, const Geom::Pnt& p2);
79  static Geom::Pnt findClosestPointToPoints(const Geom::Pnt& pnt, const std::vector<Geom::Pnt>& pnts);
80 
81  static bool isEqual(double v1, double v2, double tolerance = 1E-06);
82  static bool isEqual(const Geom::XYZ& v1, const Geom::XYZ& v2, double tolerance = 1E-06);
83  static bool isEqual(const Geom::Pnt& p1, const Geom::Pnt& p2, double tolerance = 1E-06);
84  static bool isEqual(const Geom::Vec& v1, const Geom::Vec& v2, double tolerance = 1E-06);
85  static bool isEqual(const Geom::Dir& d1, const Geom::Dir& d2, double tolerance = 1E-06);
86  static bool isEqual(const Geom::XY& p1, const Geom::XY& p2, double tolerance = 1E-06);
87  static bool isEqual(const Geom::Pnt2d& p1, const Geom::Pnt2d& p2, double tolerance = 1E-06);
88  static bool isEqual(const Geom::Vec2d& p1, const Geom::Vec2d& p2, double tolerance = 1E-06);
89  static bool isEqual(const Geom::Dir2d& p1, const Geom::Dir2d& p2, double tolerance = 1E-06);
90  static bool isEqual(const Geom::Ax1& a1, const Geom::Ax1& a2, double tolerance = 1E-06);
91  static bool isEqual(const Geom::Ax2& a1, const Geom::Ax2& a2, double tolerance = 1E-06);
92  static bool isEqual(const Geom::Ax2d& a1, const Geom::Ax2d& a2, double tolerance = 1E-06);
93  static bool isEqual(const Geom::Ax3& a1, const Geom::Ax3& a2, double tolerance = 1E-06);
94  static bool isEqual(const Geom::Trsf& t1, const Geom::Trsf& t2, double tolerance = 1E-06);
95  static bool isEqual(const Geom::Ax22d& a1, const Geom::Ax22d& a2, double tolerance = 1E-06);
96  static bool isEqual(const Geom::GTrsf& t1, const Geom::GTrsf& t2, double tolerance = 1E-06);
97  static bool isEqual(const Geom::Pln& p1, const Geom::Pln& p2, double tolerance = 1E-06);
98  static bool isEqual(const Geom::Bnd_Box& b1, const Geom::Bnd_Box& b2, double tolerance = 1E-06);
99 
100  static bool intersectLineWithLine(const Geom::Lin& lin1, const Geom::Lin& lin2, Geom::Pnt& intersectPnt, double tolerance = 1E-06);
101  static bool intersectDirWithDir(const Geom::Dir& dir1,
102  const Geom::Pnt& pnt1,
103  const Geom::Dir& dir2,
104  const Geom::Pnt& pnt2,
105  Geom::Pnt& intersection);
106  static Geom::Pnt intersectLineWithPlane(const Geom::Lin& lin, const Geom::Pln& plane);
107  static bool intersectLineWithPlane(const Geom::Lin& lin, const Geom::Pln& plane, Geom::Pnt& intersection); // no exception version
108  static bool intersectBBoxWithPlane(const Geom::Bnd_Box& box, const Geom::Pln& plane);
109  static bool intersectLineWithBoundedRect(const Geom::Lin& lin, const Geom::Pnt& rectPoint1, const Geom::Pnt& rectPoint2, Geom::Pnt& result);
110  static bool intersectPlaneWithPlane(const Geom::Pln& plnA, const Geom::Pln& plnB, Geom::Lin& line, double tolerance = 1e-6);
111  static bool intersectLineWithBBox(const Geom::Lin& lin, const Geom::Bnd_Box& bbox, Geom::Pnt& pnear, Geom::Pnt& pfar, double epsilon = 0.0);
112  static bool makePlaneFrom2Lines(const Geom::Lin& lin1, const Geom::Lin& lin2, Geom::Pln& plane);
113  static bool makeCircleFrom3Points(const Geom::Pnt& p1, const Geom::Pnt& p2, const Geom::Pnt& p3, Geom::Circ& circle);
115  const Geom::Lin& lin2,
116  double radius,
117  std::vector<Geom::Circ>& circles,
118  std::vector<Geom::Pnt>& pnt1,
119  std::vector<Geom::Pnt>& pnt2,
120  std::vector<double>& paramOnLin1,
121  std::vector<double>& paramOnLin2,
122  std::vector<double>& paramOnCirclesFromLin1,
123  std::vector<double>& paramOnCirclesFromLin2,
126  double tolerance = 1E-06);
128  const Geom::Lin& lin2,
129  const Geom::Lin& lin3,
130  std::vector<Geom::Circ>& circles,
131  std::vector<Geom::Pnt>& pnt1,
132  std::vector<Geom::Pnt>& pnt2,
133  std::vector<double>& paramOnLin1,
134  std::vector<double>& paramOnLin2,
135  std::vector<double>& paramOnCirclesFromLin1,
136  std::vector<double>& paramOnCirclesFromLin2,
139  double tolerance = 1E-06);
141  const Geom::Pnt& thruPnt,
142  const Geom::Lin& line,
143  Geom::Lin& solution,
144  Geom::Pnt& point,
145  double& paramOnLine,
146  double& paramOnSolution);
147  static bool make2DLines_Tangent2Circles(const Geom::Circ& circle1,
148  const Geom::Circ& circle2,
149  std::vector<Geom::Lin>& lines,
150  std::vector<Geom::Pnt>& tangentPoints1,
151  std::vector<Geom::Pnt>& tangentPoints2);
152  static bool make2DLines_TangentCirclePoint(const Geom::Circ& circle,
153  const Geom::Pnt& point,
154  std::vector<Geom::Lin>& lines,
155  std::vector<Geom::Pnt>& tangentPoints);
156  static bool makeLines_BisLineLine(const Geom::Lin l1, const Geom::Lin l2, std::vector<Geom::Lin>& result);
157  static bool make2DCircles_RadiusPointPoint(double radius, const Geom::Pnt& point1, const Geom::Pnt& point2, std::vector<Geom::Circ>& result);
158  static bool makeCircles_RadiusLinePoint(double radius, const Geom::Lin& line, const Geom::Pnt& point, std::vector<Geom::Circ>& result);
159  static bool makeCircles_RadiusCirclePoint(double radius, const Geom::Circ& circle, const Geom::Pnt& point, std::vector<Geom::Circ>& result);
160  static bool makeCircles_RadiusLineLine(double radius, const Geom::Lin& line1, const Geom::Lin& line2, std::vector<Geom::Circ>& result);
161  static bool makeCircles_RadiusLineCircle(double radius, const Geom::Lin& line, const Geom::Circ& circle, std::vector<Geom::Circ>& result);
162  static bool makeCircles_RadiusCircleCircle(double radius, const Geom::Circ& circle1, const Geom::Circ& circle2, std::vector<Geom::Circ>& result);
163  static double calculateAngleFrom3Points(const Geom::Pnt& first, const Geom::Pnt& center, const Geom::Pnt& second, const Geom::Vec& refVec);
164  static double getSignedDistanceFromPointToPlane(const Geom::Pnt& p, const Geom::Pln& plane);
165  static double convertRadianToDegree(double radValue);
166  static double convertDegreeToRadian(double degValue);
167  static double convertPercentToRadian(double percentValue);
168  static double convertRadianToPercent(double radValue);
171  static void getAnglesFromPosition(const Geom::Ax2& position, double& rotx, double& roty, double& rotz);
172  static bool pointsOnSamePlane(const std::vector<Geom::Pnt>& inVector, Geom::Pln& outPlane);
173  static bool pointsAreCollinear(const std::vector<Geom::Pnt>& inVector);
174  static void debugOccTransform(const Geom::GTrsf& transform, const std::string& msg = "");
175  static void debugOccTransform(const Geom::Trsf& transform, const std::string& msg = "");
176  static bool getUnitCylinderLineIntersection(const Geom::Pnt& lineStart,
177  const Geom::Pnt& lineEnd,
178  Geom::Pnt& isectFront,
179  Geom::Pnt& isectBack);
180  static bool getCylinderLineIntersection(Geom::Ax2& cylinder_ax,
181  const double& cylinder_radius,
182  const Geom::Pnt& lineStart,
183  const Geom::Pnt& lineEnd,
184  Geom::Pnt& isectFront,
185  Geom::Pnt& isectBack);
186  static Geom::Vec getClosestAxis(const Geom::Vec& vec);
187  static int gcd(int a, int b);
188  static void circumscribeSphereAroundBox(Geom::Bnd_Box box, Geom::Vec& center, double& radius);
189  static bool getIntersectionWithTriangle(const Geom::Pnt& p1,
190  const Geom::Pnt& p2,
191  const Geom::Pnt& p3,
192  const Geom::Pnt& pickedPnt,
193  Geom::Pnt& intersection);
195  Geom::Vec direction,
196  float aspectRatio,
197  double heightAngle,
198  Geom::Vec& position,
199  Geom::Vec& center);
200  static Geom::Pnt lineValue(const double& u, const Geom::Ax1& ax1);
201  static bool computeComplemetaryAngle(const Geom::Pnt& P1, const Geom::Pnt& S, const Geom::Pnt& P2, double& radians);
202  static bool computeClothoidMaxR(const double& radians, const double& TG, double& R);
203  static Geom::Trsf computeTrsfFromAx2(const Geom::Ax2& worldAxis);
204  static bool isConvexPolyon(const std::vector<Geom::Pnt>& inVector);
205  static bool isConvexPolyon(const std::vector<int>& inModel, const std::vector<Geom::Pnt>& inVector);
206  static bool rayTriangleIntersect(const Geom::Vec& orig,
207  const Geom::Vec& dir,
208  const Geom::Vec& v0,
209  const Geom::Vec& v1,
210  const Geom::Vec& v2,
211  float& t,
212  float& u,
213  float& v);
214  static bool centroid(Geom::Pnt& ret_centroid, std::vector<Geom::Pnt>& pnts);
215  static bool testRayThruTriangle(const Geom::Pnt& P1,
216  const Geom::Pnt& P2,
217  const Geom::Pnt& P3,
218  const Geom::Dir& normal,
219  const Geom::Lin& ray,
220  Geom::Pnt& PIP);
221 
233 };
234 
235 } // namespace Geom
Geom::GT_ProjectPointOnLine2_Result
Struct holding the return values from GeomTools::projectPointOnLine2(). Returns ok=true if the operat...
Definition: ToolResults.h:92
Geom::GeomTools::~GeomTools
~GeomTools(void)
Geom::GeomTools::get3AnglePoints
static Angle3Points get3AnglePoints(AngleParams ap)
Geom::GeomTools::intersectLineWithPlane
static Geom::Pnt intersectLineWithPlane(const Geom::Lin &lin, const Geom::Pln &plane)
Geom::GeomTools::angleBetween
static void angleBetween(const Geom::Vec &v1, const Geom::Vec &v2, Geom::Vec &axis, double &angle)
Geom::Bnd_Box
Definition: Bnd_Box.h:67
Vec.h
Geom::GeomTools::convertRadianToPercent
static double convertRadianToPercent(double radValue)
Trsf.h
Geom::GeomTools::calculatePositionToViewBoundingBoxForDefaultView
static void calculatePositionToViewBoundingBoxForDefaultView(Geom::Bnd_Box bbox, Geom::Vec direction, float aspectRatio, double heightAngle, Geom::Vec &position, Geom::Vec &center)
Geom::GeomTools::isEqual
static bool isEqual(double v1, double v2, double tolerance=1E-06)
Geom::GeomTools::AngleParams::e1p2
Geom::Pnt e1p2
Definition: GeomTools.h:59
Geom::GeomTools::pointsOnSamePlane
static bool pointsOnSamePlane(const std::vector< Geom::Pnt > &inVector, Geom::Pln &outPlane)
Geom::GeomTools::AngleParams::e2p2
Geom::Pnt e2p2
Definition: GeomTools.h:61
Geom::ENCLOSED
@ ENCLOSED
Definition: GeomTools.h:20
Geom::GeomTools
Definition: GeomTools.h:26
Base::transform
void transform(Container container, OutputIt out, BinaryFunction function)
Definition: Algorithms.h:30
Geom::GeomTools::AngleParams::e1p1
Geom::Pnt e1p1
Definition: GeomTools.h:58
Geom::GeomTools::computeComplemetaryAngle
static bool computeComplemetaryAngle(const Geom::Pnt &P1, const Geom::Pnt &S, const Geom::Pnt &P2, double &radians)
Geom::GeomTools::isEqual
static bool isEqual(const Geom::GTrsf &t1, const Geom::GTrsf &t2, double tolerance=1E-06)
Geom::GeomTools::AngleParams::secondViewerMode
bool secondViewerMode
Definition: GeomTools.h:65
Geom::GeomTools::computeClothoidMaxR
static bool computeClothoidMaxR(const double &radians, const double &TG, double &R)
Geom::GeomTools::getIntersectionWithTriangle
static bool getIntersectionWithTriangle(const Geom::Pnt &p1, const Geom::Pnt &p2, const Geom::Pnt &p3, const Geom::Pnt &pickedPnt, Geom::Pnt &intersection)
Geom::Ax3
Definition: Ax3.h:68
Geom::GeomTools::getClosestAxis
static Geom::Vec getClosestAxis(const Geom::Vec &vec)
Geom::GeomTools::getSignedDistanceFromPointToPlane
static double getSignedDistanceFromPointToPlane(const Geom::Pnt &p, const Geom::Pln &plane)
Geom::GeomTools::projectPointOnPlane1
static GT_ProjectPointOnPlane1_Result projectPointOnPlane1(const Geom::Pnt &p, const Geom::Pln &plane)
Geom::Lin
Definition: Lin.h:49
Geom::GT_MakeLineFrom2Points1_Result
Struct holding the return values from GeomTools::makeLineFrom2Points1(). Returns ok=true if the opera...
Definition: ToolResults.h:34
Geom::GeomTools::findClosestPointToPoints
static Geom::Pnt findClosestPointToPoints(const Geom::Pnt &pnt, const std::vector< Geom::Pnt > &pnts)
Geom::GeomTools::getCylinderLineIntersection
static bool getCylinderLineIntersection(Geom::Ax2 &cylinder_ax, const double &cylinder_radius, const Geom::Pnt &lineStart, const Geom::Pnt &lineEnd, Geom::Pnt &isectFront, Geom::Pnt &isectBack)
Geom::Vec
Defines a non-persistent vector in 3D space.
Definition: Vec.h:41
Geom::GeomTools::makeAxisPlacementFrom2Points
static Geom::Ax2 makeAxisPlacementFrom2Points(const Geom::Pnt &p1, const Geom::Pnt &p2, double &xLength, double &angleXYPlane)
Throws Base::ConstructionError if points are identical fails.
Geom::GeomTools::projectPointOnPlane
static Geom::Pnt projectPointOnPlane(const Geom::Pnt &p, const Geom::Pln &plane)
Throws Base::FailedNotDone if projection fails.
Geom::GeomTools::makeAxisPlacementFrom2Points
static GT_MakeAxisPlacementFrom2Points_Result makeAxisPlacementFrom2Points(const Geom::Pnt &p1, const Geom::Pnt &p2)
Geom::GeomTools::debugOccTransform
static void debugOccTransform(const Geom::Trsf &transform, const std::string &msg="")
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Pnt &p1, const Geom::Pnt &p2, double tolerance=1E-06)
Geom::GeomTools::convertPercentToRadian
static double convertPercentToRadian(double percentValue)
Geom::GeomTools::midpoint
static Geom::Pnt midpoint(const Geom::Pnt &p1, const Geom::Pnt &p2)
Never throws.
Geom::GeomTools::Angle3Points::pointsFound
bool pointsFound
Definition: GeomTools.h:72
Geom::GeomTools::isConvexPolyon
static bool isConvexPolyon(const std::vector< int > &inModel, const std::vector< Geom::Pnt > &inVector)
Geom::GeomTools::projectPointOnCircle
static Geom::Pnt projectPointOnCircle(const Geom::Pnt &p, const Geom::Circ &circle)
Throws Base::FailedNotDone if projection fails.
Geom::GeomTools::makeLineFrom2Points
static Geom::Lin makeLineFrom2Points(const Geom::Pnt &p1, const Geom::Pnt &p2)
Throws Base::ConstructionError if construction fails.
Geom::GeomTools::getAngleWithPlane
static double getAngleWithPlane(const Geom::Vec &v, const Geom::Pln &plane)
Geom::GeomTools::getDistanceBetween2Points
static double getDistanceBetween2Points(const Geom::Pnt &p1, const Geom::Pnt &p2)
Geom::GeomTools::Angle3Points::apexPoint
Geom::Pnt apexPoint
Definition: GeomTools.h:71
Geom::GeomTools::make2DLines_TangentCirclePoint
static bool make2DLines_TangentCirclePoint(const Geom::Circ &circle, const Geom::Pnt &point, std::vector< Geom::Lin > &lines, std::vector< Geom::Pnt > &tangentPoints)
Geom::GeomTools::makeLinePerpendicularToLineThroughPoint
static bool makeLinePerpendicularToLineThroughPoint(const Geom::Pln &plane, const Geom::Pnt &thruPnt, const Geom::Lin &line, Geom::Lin &solution, Geom::Pnt &point, double &paramOnLine, double &paramOnSolution)
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Ax2d &a1, const Geom::Ax2d &a2, double tolerance=1E-06)
Geom::GeomTools::projectPointOnPlane
static Geom::Pnt projectPointOnPlane(const Geom::Pnt &p, const Geom::Pln &plane, double &U, double &V)
Dir2d.h
Geom::GeomTools::testRayThruTriangle
static bool testRayThruTriangle(const Geom::Pnt &P1, const Geom::Pnt &P2, const Geom::Pnt &P3, const Geom::Dir &normal, const Geom::Lin &ray, Geom::Pnt &PIP)
Geom::GeomTools::isConvexPolyon
static bool isConvexPolyon(const std::vector< Geom::Pnt > &inVector)
Geom::Ax1
Definition: Ax1.h:50
Geom::GeomTools::getAnglesFromPosition
static void getAnglesFromPosition(const Geom::Ax2 &position, double &rotx, double &roty, double &rotz)
Geom::XYZ
Definition: XYZ.h:44
Geom::GeomTools::GeomTools
GeomTools(void)
Geom::GeomTools::Angle3Points::startPoint
Geom::Pnt startPoint
Definition: GeomTools.h:69
Geom::GeomTools::rayTriangleIntersect
static bool rayTriangleIntersect(const Geom::Vec &orig, const Geom::Vec &dir, const Geom::Vec &v0, const Geom::Vec &v1, const Geom::Vec &v2, float &t, float &u, float &v)
Geom::GeomTools::lineValue
static Geom::Pnt lineValue(const double &u, const Geom::Ax1 &ax1)
Geom::XY
Definition: XY.h:34
Geom::Dir
Definition: Dir.h:45
Geom::GeomTools::intersectLineWithLine
static bool intersectLineWithLine(const Geom::Lin &lin1, const Geom::Lin &lin2, Geom::Pnt &intersectPnt, double tolerance=1E-06)
Geom::GeomTools::debugOccTransform
static void debugOccTransform(const Geom::GTrsf &transform, const std::string &msg="")
Geom::GeomTools::intersectDirWithDir
static bool intersectDirWithDir(const Geom::Dir &dir1, const Geom::Pnt &pnt1, const Geom::Dir &dir2, const Geom::Pnt &pnt2, Geom::Pnt &intersection)
Geom::GeomTools::projectPointOnCircle1
static GT_ProjectPointOnCircle1_Result projectPointOnCircle1(const Geom::Pnt &p, const Geom::Circ &circle)
Geom::GTrsf
Definition: GTrsf.h:49
Geom::GeomTools::makeCirclesFrom2TangentsAndCenterOnLine
static bool makeCirclesFrom2TangentsAndCenterOnLine(const Geom::Lin &lin1, const Geom::Lin &lin2, const Geom::Lin &lin3, std::vector< Geom::Circ > &circles, std::vector< Geom::Pnt > &pnt1, std::vector< Geom::Pnt > &pnt2, std::vector< double > &paramOnLin1, std::vector< double > &paramOnLin2, std::vector< double > &paramOnCirclesFromLin1, std::vector< double > &paramOnCirclesFromLin2, Geom::Qualifier qualif1=Geom::UNQUALIFIED, Geom::Qualifier qualif2=Geom::UNQUALIFIED, double tolerance=1E-06)
Geom::Pln
Definition: Pln.h:52
Geom::GeomTools::circumscribeSphereAroundBox
static void circumscribeSphereAroundBox(Geom::Bnd_Box box, Geom::Vec &center, double &radius)
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Dir2d &p1, const Geom::Dir2d &p2, double tolerance=1E-06)
Geom::GeomTools::isEqual
static bool isEqual(const Geom::XY &p1, const Geom::XY &p2, double tolerance=1E-06)
Geom::Dir2d
Definition: Dir2d.h:42
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Ax3 &a1, const Geom::Ax3 &a2, double tolerance=1E-06)
Geom::Circ
Definition: Circ.h:56
Geom::GeomTools::make2DCircles_RadiusPointPoint
static bool make2DCircles_RadiusPointPoint(double radius, const Geom::Pnt &point1, const Geom::Pnt &point2, std::vector< Geom::Circ > &result)
Geom::GeomTools::makeCircles_RadiusCircleCircle
static bool makeCircles_RadiusCircleCircle(double radius, const Geom::Circ &circle1, const Geom::Circ &circle2, std::vector< Geom::Circ > &result)
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Pnt2d &p1, const Geom::Pnt2d &p2, double tolerance=1E-06)
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Ax1 &a1, const Geom::Ax1 &a2, double tolerance=1E-06)
Geom::Pnt
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:44
Geom::UNQUALIFIED
@ UNQUALIFIED
Definition: GeomTools.h:22
Geom::Ax2
Definition: Ax2.h:66
Geom::GeomTools::projectPointOnLine
static Geom::Pnt projectPointOnLine(const Geom::Pnt &p, const Geom::Lin &line)
Throws Base::FailedNotDone if projection fails.
Geom::GeomTools::Angle3Points
Definition: GeomTools.h:68
Geom::GeomTools::makeCircleFrom3Points
static bool makeCircleFrom3Points(const Geom::Pnt &p1, const Geom::Pnt &p2, const Geom::Pnt &p3, Geom::Circ &circle)
Geom::GeomTools::AngleParams::pntOnEdge2
Geom::Pnt pntOnEdge2
Definition: GeomTools.h:63
Geom::GT_ProjectPointOnPlane1_Result
Struct holding the return values from GeomTools::projectPointOnPlane1(). Returns ok=true if the opera...
Definition: ToolResults.h:48
Geom::GeomTools::convertRadianToDegree
static double convertRadianToDegree(double radValue)
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Vec2d &p1, const Geom::Vec2d &p2, double tolerance=1E-06)
Geom::GT_ProjectPointOnPlane2_Result
Struct holding the return values from GeomTools::projectPointOnPlane2(). Returns ok=true if the opera...
Definition: ToolResults.h:62
Geom::GeomTools::centroid
static bool centroid(Geom::Pnt &ret_centroid, std::vector< Geom::Pnt > &pnts)
Geom::GeomTools::convertDegreeToRadian
static double convertDegreeToRadian(double degValue)
Geom::GeomTools::AngleParams
Definition: GeomTools.h:57
Geom::GeomTools::intersectBBoxWithPlane
static bool intersectBBoxWithPlane(const Geom::Bnd_Box &box, const Geom::Pln &plane)
Geom::Vec2d
Defines a non-persistent vector in 2D space.
Definition: Vec2d.h:33
Geom::ENCLOSING
@ ENCLOSING
Definition: GeomTools.h:19
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Ax22d &a1, const Geom::Ax22d &a2, double tolerance=1E-06)
Geom::GeomTools::projectPointOnPlane2
static GT_ProjectPointOnPlane2_Result projectPointOnPlane2(const Geom::Pnt &p, const Geom::Pln &plane)
Geom::GeomTools::getCoordinatesFromNormalizedRelativeToBndBox
static Geom::Pnt getCoordinatesFromNormalizedRelativeToBndBox(const Geom::Bnd_Box &box, const Geom::Pnt &p)
Geom::GeomTools::makeCirclesFrom2TangentsAndRadius
static bool makeCirclesFrom2TangentsAndRadius(const Geom::Lin &lin1, const Geom::Lin &lin2, double radius, std::vector< Geom::Circ > &circles, std::vector< Geom::Pnt > &pnt1, std::vector< Geom::Pnt > &pnt2, std::vector< double > &paramOnLin1, std::vector< double > &paramOnLin2, std::vector< double > &paramOnCirclesFromLin1, std::vector< double > &paramOnCirclesFromLin2, Geom::Qualifier qualif1=Geom::UNQUALIFIED, Geom::Qualifier qualif2=Geom::UNQUALIFIED, double tolerance=1E-06)
Pnt2d.h
Geom::Ax2d
Definition: Ax2d.h:51
Geom::GeomTools::make2DLines_Tangent2Circles
static bool make2DLines_Tangent2Circles(const Geom::Circ &circle1, const Geom::Circ &circle2, std::vector< Geom::Lin > &lines, std::vector< Geom::Pnt > &tangentPoints1, std::vector< Geom::Pnt > &tangentPoints2)
Geom::GeomTools::getNormalizedCoordinatesRelativeToBndBox
static Geom::Pnt getNormalizedCoordinatesRelativeToBndBox(const Geom::Bnd_Box &box, const Geom::Pnt &p)
Geom::GeomTools::getAngleBetweenVectors
static double getAngleBetweenVectors(const Geom::Vec &v1, const Geom::Vec &v2)
Geom::OUTSIDE
@ OUTSIDE
Definition: GeomTools.h:21
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Pln &p1, const Geom::Pln &p2, double tolerance=1E-06)
Geom::Qualifier
Qualifier
Definition: GeomTools.h:18
Geom::GeomTools::getUnitCylinderLineIntersection
static bool getUnitCylinderLineIntersection(const Geom::Pnt &lineStart, const Geom::Pnt &lineEnd, Geom::Pnt &isectFront, Geom::Pnt &isectBack)
Geom::GeomTools::gcd
static int gcd(int a, int b)
Geom::GeomTools::makeCircles_RadiusCirclePoint
static bool makeCircles_RadiusCirclePoint(double radius, const Geom::Circ &circle, const Geom::Pnt &point, std::vector< Geom::Circ > &result)
Geom::GT_ProjectPointOnCircle1_Result
Struct holding the return values from GeomTools::projectPointOnCircle1(). Returns ok=true if the oper...
Definition: ToolResults.h:107
Geom::GeomTools::AngleParams::plane
Geom::Pln plane
Definition: GeomTools.h:64
Geom::GeomTools::projectPointOnLine1
static GT_ProjectPointOnLine1_Result projectPointOnLine1(const Geom::Pnt &p, const Geom::Lin &line)
Geom::GeomTools::Angle3Points::endPoint
Geom::Pnt endPoint
Definition: GeomTools.h:70
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Dir &d1, const Geom::Dir &d2, double tolerance=1E-06)
Geom::GeomTools::computeTrsfFromAx2
static Geom::Trsf computeTrsfFromAx2(const Geom::Ax2 &worldAxis)
Geom::GeomTools::isEqual
static bool isEqual(const Geom::XYZ &v1, const Geom::XYZ &v2, double tolerance=1E-06)
Geom::GeomTools::intersectPlaneWithPlane
static bool intersectPlaneWithPlane(const Geom::Pln &plnA, const Geom::Pln &plnB, Geom::Lin &line, double tolerance=1e-6)
Geom::GeomTools::makeCircles_RadiusLineLine
static bool makeCircles_RadiusLineLine(double radius, const Geom::Lin &line1, const Geom::Lin &line2, std::vector< Geom::Circ > &result)
Geom::GT_ProjectPointOnLine1_Result
Struct holding the return values from GeomTools::projectPointOnLine1(). Returns ok=true if the operat...
Definition: ToolResults.h:78
Geom::Ax22d
Definition: Ax22d.h:51
Geom::GeomTools::AngleParams::e2p1
Geom::Pnt e2p1
Definition: GeomTools.h:60
Geom::GeomTools::makePlaneFrom2Lines
static bool makePlaneFrom2Lines(const Geom::Lin &lin1, const Geom::Lin &lin2, Geom::Pln &plane)
Geom::GT_MakeAxisPlacementFrom2Points_Result
Struct holding the return values from GeomTools::makeAxisPlacementFrom2Points(). Returns ok=true if t...
Definition: ToolResults.h:121
Geom::GeomTools::calculateAngleFrom3Points
static double calculateAngleFrom3Points(const Geom::Pnt &first, const Geom::Pnt &center, const Geom::Pnt &second, const Geom::Vec &refVec)
Geom::GT_MakePlaneFrom3Points_Result
Struct holding the return values from GeomTools::makePlaneFrom3Points(). Returns ok=true if the opera...
Definition: ToolResults.h:19
Geom::Trsf
Definition: Trsf.h:58
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Trsf &t1, const Geom::Trsf &t2, double tolerance=1E-06)
Geom::Pnt2d
Defines a non-persistent 2D cartesian point.
Definition: Pnt2d.h:34
Geom::GeomTools::makePlaneFrom3Points
static Geom::Pln makePlaneFrom3Points(const Geom::Pnt &p1, const Geom::Pnt &p2, const Geom::Pnt &p3, Geom::Ax2 &coordSystem)
Throws Base::ConstructionError if construction fails.
Geom::GeomTools::midpoint
static Geom::Pnt2d midpoint(const Geom::Pnt2d &p1, const Geom::Pnt2d &p2)
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Vec &v1, const Geom::Vec &v2, double tolerance=1E-06)
Geom::GeomTools::makeLines_BisLineLine
static bool makeLines_BisLineLine(const Geom::Lin l1, const Geom::Lin l2, std::vector< Geom::Lin > &result)
Geom::GeomTools::makeLineFrom2Points1
static GT_MakeLineFrom2Points1_Result makeLineFrom2Points1(const Geom::Pnt &p1, const Geom::Pnt &p2)
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Ax2 &a1, const Geom::Ax2 &a2, double tolerance=1E-06)
Geom::GeomTools::AngleParams::pntOnEdge1
Geom::Pnt pntOnEdge1
Definition: GeomTools.h:62
Geom::GeomTools::pointsAreCollinear
static bool pointsAreCollinear(const std::vector< Geom::Pnt > &inVector)
Geom::GeomTools::isPointOnPlane
static bool isPointOnPlane(const Geom::Pnt &p, const Geom::Pln &plane, double tolerance=1E-06)
ToolResults.h
Geom::GeomTools::projectPointOnLine2
static GT_ProjectPointOnLine2_Result projectPointOnLine2(const Geom::Pnt &p, const Geom::Lin &line)
Geom::GeomTools::makePlaneFrom3Points
static GT_MakePlaneFrom3Points_Result makePlaneFrom3Points(const Geom::Pnt &p1, const Geom::Pnt &p2, const Geom::Pnt &p3)
Geom::GeomTools::intersectLineWithBBox
static bool intersectLineWithBBox(const Geom::Lin &lin, const Geom::Bnd_Box &bbox, Geom::Pnt &pnear, Geom::Pnt &pfar, double epsilon=0.0)
Geom::GeomTools::makeCircles_RadiusLineCircle
static bool makeCircles_RadiusLineCircle(double radius, const Geom::Lin &line, const Geom::Circ &circle, std::vector< Geom::Circ > &result)
Geom::GeomTools::intersectLineWithPlane
static bool intersectLineWithPlane(const Geom::Lin &lin, const Geom::Pln &plane, Geom::Pnt &intersection)
Geom::GeomTools::makeCircles_RadiusLinePoint
static bool makeCircles_RadiusLinePoint(double radius, const Geom::Lin &line, const Geom::Pnt &point, std::vector< Geom::Circ > &result)
Geom
Definition: PropertyContainer.h:33
Geom::GeomTools::projectPointOnLine
static Geom::Pnt projectPointOnLine(const Geom::Pnt &p, const Geom::Lin &line, double &U)
Geom::GeomTools::intersectLineWithBoundedRect
static bool intersectLineWithBoundedRect(const Geom::Lin &lin, const Geom::Pnt &rectPoint1, const Geom::Pnt &rectPoint2, Geom::Pnt &result)
Geom::GeomTools::isEqual
static bool isEqual(const Geom::Bnd_Box &b1, const Geom::Bnd_Box &b2, double tolerance=1E-06)