OpenLexocad  28.0
Geometry2d.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (c) 2016 Werner Mayer <wmayer[at]users.sourceforge.net> *
3  * *
4  * This file is part of the FreeCAD CAx development system. *
5  * *
6  * This library is free software; you can redistribute it and/or *
7  * modify it under the terms of the GNU Library General Public *
8  * License as published by the Free Software Foundation; either *
9  * version 2 of the License, or (at your option) any later version. *
10  * *
11  * This library is distributed in the hope that it will be useful, *
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
14  * GNU Library General Public License for more details. *
15  * *
16  * You should have received a copy of the GNU Library General Public *
17  * License along with this library; see the file COPYING.LIB. If not, *
18  * write to the Free Software Foundation, Inc., 59 Temple Place, *
19  * Suite 330, Boston, MA 02111-1307, USA *
20  * *
21  ***************************************************************************/
22 #pragma once
23 
24 #include <Handle_Geom2d_CartesianPoint.hxx>
25 #include <Handle_Geom2d_BezierCurve.hxx>
26 #include <Handle_Geom2d_BSplineCurve.hxx>
27 #include <Handle_Geom2d_Circle.hxx>
28 #include <Handle_Geom2d_Ellipse.hxx>
29 #include <Handle_Geom2d_Hyperbola.hxx>
30 #include <Handle_Geom2d_Parabola.hxx>
31 #include <Handle_Geom2d_Line.hxx>
32 #include <Handle_Geom2d_OffsetCurve.hxx>
33 #include <Handle_Geom2d_TrimmedCurve.hxx>
34 #include <TopoDS_shape.hxx>
35 
36 #include <Base/Persistence.h>
37 #include <Base/Tools2D.h>
38 
39 class Adaptor2d_Curve2d;
40 
41 namespace Geom {
42 
43 class LX_GEOM_EXPORT Geometry2d : public Base::Persistence
44 {
46 public:
47  virtual ~Geometry2d();
48 
49  virtual TopoDS_Shape toShape() const = 0;
50  virtual const Handle(Geom2d_Geometry)& handle() const = 0;
51  // Persistence implementer ---------------------
52 
53  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
54  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
56  virtual Geometry2d *clone(void) const = 0;
57 
58 protected:
60 
61 private:
62  Geometry2d(const Geometry2d&);
63  Geometry2d& operator = (const Geometry2d&);
64 };
65 
66 class LX_GEOM_EXPORT Geom2dPoint : public Geometry2d
67 {
69 public:
71  Geom2dPoint(const Handle(Geom2d_CartesianPoint)&);
73  virtual ~Geom2dPoint();
74  virtual Geometry2d *clone(void) const;
75  virtual TopoDS_Shape toShape() const;
76 
77  // Persistence implementer ---------------------
78 
79  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
80  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
81  // Base implementer ----------------------------
82 
83 
84  const Handle(Geom2d_Geometry)& handle() const;
85 
87  void setPoint(const Base::Vector2d&);
88 
89 private:
90  Handle(Geom2d_CartesianPoint) myPoint;
91 };
92 
93 class LX_GEOM_EXPORT Geom2dCurve : public Geometry2d
94 {
96 public:
98  virtual ~Geom2dCurve();
99 
100  virtual TopoDS_Shape toShape() const;
101  bool tangent(double u, gp_Dir2d&) const;
105  bool normal(double u, gp_Dir2d& dir) const;
106  bool closestParameter(const Base::Vector2d& point, double &u) const;
107  bool closestParameterToBasicCurve(const Base::Vector2d& point, double &u) const;
108 };
109 
110 class LX_GEOM_EXPORT Geom2dBezierCurve : public Geom2dCurve
111 {
113 public:
115  Geom2dBezierCurve(const Handle(Geom2d_BezierCurve)&);
117  virtual Geometry2d *clone(void) const;
118 
119  // Persistence implementer ---------------------
120 
121  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
122  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
123  // Base implementer ----------------------------
124 
125 
126  void setHandle(const Handle(Geom2d_BezierCurve)&);
127  const Handle(Geom2d_Geometry)& handle() const;
128 
129 private:
130  Handle(Geom2d_BezierCurve) myCurve;
131 };
132 
133 class LX_GEOM_EXPORT Geom2dBSplineCurve : public Geom2dCurve
134 {
136 public:
138  Geom2dBSplineCurve(const Handle(Geom2d_BSplineCurve)&);
140  virtual Geometry2d *clone(void) const;
141 
145  void interpolate(const std::vector<gp_Pnt2d>&, const std::vector<gp_Vec2d>&);
150  void getCardinalSplineTangents(const std::vector<gp_Pnt2d>&,
151  const std::vector<double>&,
152  std::vector<gp_Vec2d>&) const;
158  void getCardinalSplineTangents(const std::vector<gp_Pnt2d>&, double,
159  std::vector<gp_Vec2d>&) const;
160 
161  int countPoles() const;
162  void setPole(int index, const Base::Vector2d&, double weight=-1);
163  std::vector<Base::Vector2d> getPoles() const;
164  bool join(const Handle(Geom2d_BSplineCurve)&);
165  void makeC1Continuous(double);
166  std::list<Geometry2d*> toBiArcs(double tolerance) const;
167 
168  // Persistence implementer ---------------------
169 
170  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
171  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
172  // Base implementer ----------------------------
173 
174 
175  void setHandle(const Handle(Geom2d_BSplineCurve)&);
176  const Handle(Geom2d_Geometry)& handle() const;
177 
178 private:
179  void createArcs(double tolerance, std::list<Geometry2d*>& new_spans,
180  const gp_Pnt2d &p_start, const gp_Vec2d &v_start,
181  double t_start, double t_end, gp_Pnt2d &p_end, gp_Vec2d &v_end) const;
182  bool calculateBiArcPoints(const gp_Pnt2d& p0, gp_Vec2d v_start,
183  const gp_Pnt2d& p4, gp_Vec2d v_end,
184  gp_Pnt2d& p1, gp_Pnt2d& p2, gp_Pnt2d& p3) const;
185 private:
186  Handle(Geom2d_BSplineCurve) myCurve;
187 };
188 
189 class LX_GEOM_EXPORT Geom2dConic : public Geom2dCurve
190 {
192 protected:
194 
195 public:
196  virtual ~Geom2dConic();
197  virtual Geometry2d *clone(void) const = 0;
198 
200  void setLocation(const Base::Vector2d& Center);
201  bool isReversed() const;
202  const Handle(Geom2d_Geometry)& handle() const = 0;
203 
204 protected:
205  void SaveAxis(Base::AbstractWriter& writer, const gp_Ax22d&) const;
206  void RestoreAxis(Base::AbstractXMLReader& reader, gp_Ax22d&);
207 };
208 
209 class LX_GEOM_EXPORT Geom2dArcOfConic : public Geom2dCurve
210 {
212 protected:
214 
215 public:
216  virtual ~Geom2dArcOfConic();
217  virtual Geometry2d *clone(void) const = 0;
218 
220  void setLocation(const Base::Vector2d& Center);
221  bool isReversed() const;
222 
225 
226  void getRange(double& u, double& v) const;
227  void setRange(double u, double v);
228  const Handle(Geom2d_Geometry)& handle() const = 0;
229 
230 protected:
231  void SaveAxis(Base::AbstractWriter& writer, const gp_Ax22d&, double u, double v) const;
232  void RestoreAxis(Base::AbstractXMLReader& reader, gp_Ax22d&, double& u, double& v);
233 };
234 
235 class LX_GEOM_EXPORT Geom2dCircle : public Geom2dConic
236 {
238 public:
240  Geom2dCircle(const Handle(Geom2d_Circle)&);
241  virtual ~Geom2dCircle();
242  virtual Geometry2d *clone(void) const;
243 
244  double getRadius(void) const;
245  void setRadius(double Radius);
246 
247  // Persistence implementer ---------------------
248 
249  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
250  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
251  // Base implementer ----------------------------
252 
253 
254  const Handle(Geom2d_Geometry)& handle() const;
255 
256 private:
257  Handle(Geom2d_Circle) myCurve;
258 };
259 
260 class LX_GEOM_EXPORT Geom2dArcOfCircle : public Geom2dArcOfConic
261 {
263 public:
265  Geom2dArcOfCircle(const Handle(Geom2d_Circle)&);
267  virtual Geometry2d *clone(void) const;
268 
269  double getRadius(void) const;
270  void setRadius(double Radius);
271 
272  // Persistence implementer ---------------------
273 
274  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
275  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
276  // Base implementer ----------------------------
277 
278 
279  void setHandle(const Handle(Geom2d_TrimmedCurve)&);
280  const Handle(Geom2d_Geometry)& handle() const;
281 
282 private:
283  Handle(Geom2d_TrimmedCurve) myCurve;
284 };
285 
286 class LX_GEOM_EXPORT Geom2dEllipse : public Geom2dConic
287 {
289 public:
291  Geom2dEllipse(const Handle(Geom2d_Ellipse)&);
292  virtual ~Geom2dEllipse();
293  virtual Geometry2d *clone(void) const;
294 
295  double getMajorRadius(void) const;
296  void setMajorRadius(double Radius);
297  double getMinorRadius(void) const;
298  void setMinorRadius(double Radius);
301 
302  // Persistence implementer ---------------------
303 
304  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
305  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
306  // Base implementer ----------------------------
307 
308 
309  void setHandle(const Handle(Geom2d_Ellipse) &e);
310  const Handle(Geom2d_Geometry)& handle() const;
311 
312 private:
313  Handle(Geom2d_Ellipse) myCurve;
314 };
315 
316 class LX_GEOM_EXPORT Geom2dArcOfEllipse : public Geom2dArcOfConic
317 {
319 public:
321  Geom2dArcOfEllipse(const Handle(Geom2d_Ellipse)&);
323  virtual Geometry2d *clone(void) const;
324 
325  double getMajorRadius(void) const;
326  void setMajorRadius(double Radius);
327  double getMinorRadius(void) const;
328  void setMinorRadius(double Radius);
331 
332  // Persistence implementer ---------------------
333 
334  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
335  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
336  // Base implementer ----------------------------
337 
338 
339  void setHandle(const Handle(Geom2d_TrimmedCurve)&);
340  const Handle(Geom2d_Geometry)& handle() const;
341 
342 private:
343  Handle(Geom2d_TrimmedCurve) myCurve;
344 };
345 
346 class LX_GEOM_EXPORT Geom2dHyperbola : public Geom2dConic
347 {
349 public:
351  Geom2dHyperbola(const Handle(Geom2d_Hyperbola)&);
352  virtual ~Geom2dHyperbola();
353  virtual Geometry2d *clone(void) const;
354 
355  double getMajorRadius(void) const;
356  void setMajorRadius(double Radius);
357  double getMinorRadius(void) const;
358  void setMinorRadius(double Radius);
359 
360  // Persistence implementer ---------------------
361 
362  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
363  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
364  // Base implementer ----------------------------
365 
366 
367  const Handle(Geom2d_Geometry)& handle() const;
368 
369 private:
370  Handle(Geom2d_Hyperbola) myCurve;
371 };
372 
373 class LX_GEOM_EXPORT Geom2dArcOfHyperbola : public Geom2dArcOfConic
374 {
376 public:
378  Geom2dArcOfHyperbola(const Handle(Geom2d_Hyperbola)&);
380  virtual Geometry2d *clone(void) const;
381 
382  double getMajorRadius(void) const;
383  void setMajorRadius(double Radius);
384  double getMinorRadius(void) const;
385  void setMinorRadius(double Radius);
386 
387  // Persistence implementer ---------------------
388 
389  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
390  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
391  // Base implementer ----------------------------
392 
393 
394  void setHandle(const Handle(Geom2d_TrimmedCurve)&);
395  const Handle(Geom2d_Geometry)& handle() const;
396 
397 private:
398  Handle(Geom2d_TrimmedCurve) myCurve;
399 };
400 
401 class LX_GEOM_EXPORT Geom2dParabola : public Geom2dConic
402 {
404 public:
406  Geom2dParabola(const Handle(Geom2d_Parabola)&);
407  virtual ~Geom2dParabola();
408  virtual Geometry2d *clone(void) const;
409 
410  double getFocal(void) const;
411  void setFocal(double length);
412 
413  // Persistence implementer ---------------------
414 
415  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
416  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
417  // Base implementer ----------------------------
418 
419 
420  const Handle(Geom2d_Geometry)& handle() const;
421 
422 private:
423  Handle(Geom2d_Parabola) myCurve;
424 };
425 
426 class LX_GEOM_EXPORT Geom2dArcOfParabola : public Geom2dArcOfConic
427 {
429 public:
431  Geom2dArcOfParabola(const Handle(Geom2d_Parabola)&);
433  virtual Geometry2d *clone(void) const;
434 
435  double getFocal(void) const;
436  void setFocal(double length);
437 
438  // Persistence implementer ---------------------
439 
440  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
441  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
442  // Base implementer ----------------------------
443 
444 
445  void setHandle(const Handle(Geom2d_TrimmedCurve)&);
446  const Handle(Geom2d_Geometry)& handle() const;
447 
448 private:
449  Handle(Geom2d_TrimmedCurve) myCurve;
450 };
451 
452 class LX_GEOM_EXPORT Geom2dLine : public Geom2dCurve
453 {
455 public:
457  Geom2dLine(const Handle(Geom2d_Line)&);
459  virtual ~Geom2dLine();
460  virtual Geometry2d *clone(void) const;
461 
462  void setLine(const Base::Vector2d& Pos, const Base::Vector2d& Dir);
463  Base::Vector2d getPos(void) const;
464  Base::Vector2d getDir(void) const;
465 
466  // Persistence implementer ---------------------
467 
468  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
469  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
470  // Base implementer ----------------------------
471 
472 
473  const Handle(Geom2d_Geometry)& handle() const;
474 
475 private:
476  Handle(Geom2d_Line) myCurve;
477 };
478 
479 class LX_GEOM_EXPORT Geom2dLineSegment : public Geom2dCurve
480 {
482 public:
485  virtual Geometry2d *clone(void) const;
486 
489 
490  void setPoints(const Base::Vector2d& p1,
491  const Base::Vector2d& p2);
492 
493  // Persistence implementer ---------------------
494 
495  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
496  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
497  // Base implementer ----------------------------
498 
499 
500  void setHandle(const Handle(Geom2d_TrimmedCurve)&);
501  const Handle(Geom2d_Geometry)& handle() const;
502 
503 private:
504  Handle(Geom2d_TrimmedCurve) myCurve;
505 };
506 
507 class LX_GEOM_EXPORT Geom2dOffsetCurve : public Geom2dCurve
508 {
510 public:
512  Geom2dOffsetCurve(const Handle(Geom2d_Curve)&, double);
513  Geom2dOffsetCurve(const Handle(Geom2d_OffsetCurve)&);
515  virtual Geometry2d *clone(void) const;
516 
517  // Persistence implementer ---------------------
518 
519  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
520  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
521  // Base implementer ----------------------------
522 
523 
524  void setHandle(const Handle(Geom2d_OffsetCurve)& c);
525  const Handle(Geom2d_Geometry)& handle() const;
526 
527 private:
528  Handle(Geom2d_OffsetCurve) myCurve;
529 };
530 
531 class LX_GEOM_EXPORT Geom2dTrimmedCurve : public Geom2dCurve
532 {
534 public:
536  Geom2dTrimmedCurve(const Handle(Geom2d_TrimmedCurve)&);
538  virtual Geometry2d *clone(void) const;
539 
540  // Persistence implementer ---------------------
541 
542  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
543  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
544  // Base implementer ----------------------------
545 
546 
547  void setHandle(const Handle(Geom2d_TrimmedCurve)&);
548  const Handle(Geom2d_Geometry)& handle() const;
549 
550 private:
551  Handle(Geom2d_TrimmedCurve) myCurve;
552 };
553 
554 std::unique_ptr<Geom2dCurve> makeFromCurve2d(Handle(Geom2d_Curve));
555 std::unique_ptr<Geom2dCurve> makeFromTrimmedCurve2d(const Handle(Geom2d_Curve)&, double f, double l);
556 std::unique_ptr<Geom2dCurve> makeFromCurveAdaptor2d(const Adaptor2d_Curve2d&);
557 
558 }
Geom::Geom2dBSplineCurve::getCardinalSplineTangents
void getCardinalSplineTangents(const std::vector< gp_Pnt2d > &, const std::vector< double > &, std::vector< gp_Vec2d > &) const
Geom::Geom2dBSplineCurve::countPoles
int countPoles() const
Geom::Geom2dBSplineCurve::join
bool join(const Handle(Geom2d_BSplineCurve)&)
Geom::Geometry2d::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dCurve
Definition: Geometry2d.h:94
Geom::Geom2dCurve::secondDerivativeAtParameter
Base::Vector2d secondDerivativeAtParameter(double u) const
Geom::Geom2dBSplineCurve::setPole
void setPole(int index, const Base::Vector2d &, double weight=-1)
Geom::Geom2dHyperbola::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dOffsetCurve::setHandle
void setHandle(const Handle(Geom2d_OffsetCurve)&c)
Geom::Geometry2d::clone
virtual Geometry2d * clone(void) const =0
returns a cloned object
Geom::Geom2dArcOfConic::getStartPoint
Base::Vector2d getStartPoint() const
Geom::Geom2dArcOfHyperbola::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dPoint::~Geom2dPoint
virtual ~Geom2dPoint()
Geom::Geometry2d
Definition: Geometry2d.h:44
Geom::Geom2dArcOfEllipse::getMinorRadius
double getMinorRadius(void) const
Geom::Geom2dArcOfEllipse::~Geom2dArcOfEllipse
virtual ~Geom2dArcOfEllipse()
Geom::Geom2dArcOfCircle::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dEllipse::Geom2dEllipse
Geom2dEllipse()
Geom::Geom2dPoint::setPoint
void setPoint(const Base::Vector2d &)
Geom::Geom2dArcOfCircle::getRadius
double getRadius(void) const
Geom::Geom2dCurve::closestParameterToBasicCurve
bool closestParameterToBasicCurve(const Base::Vector2d &point, double &u) const
Geom::Geom2dParabola::getFocal
double getFocal(void) const
Geom::Geom2dCircle::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dBezierCurve::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geometry2d::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dCircle::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dConic::isReversed
bool isReversed() const
Geom::Geom2dOffsetCurve::Geom2dOffsetCurve
Geom2dOffsetCurve(const Handle(Geom2d_Curve)&, double)
Geom::Geom2dArcOfEllipse::setMinorRadius
void setMinorRadius(double Radius)
Geom::Geom2dPoint::Geom2dPoint
Geom2dPoint(const Handle(Geom2d_CartesianPoint)&)
Geom::Geom2dParabola
Definition: Geometry2d.h:402
Geom::Geom2dCircle::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dBezierCurve::Geom2dBezierCurve
Geom2dBezierCurve(const Handle(Geom2d_BezierCurve)&)
Geom::Geom2dArcOfConic::getRange
void getRange(double &u, double &v) const
Geom::Geom2dBezierCurve::setHandle
void setHandle(const Handle(Geom2d_BezierCurve)&)
Geom::Geom2dBSplineCurve::getPoles
std::vector< Base::Vector2d > getPoles() const
Geom::Geom2dArcOfConic::Handle
const Handle(Geom2d_Geometry) &handle() const =0
Geom::Geom2dEllipse::setMajorAxisDir
void setMajorAxisDir(Base::Vector2d newdir)
Geom::Geometry2d::Handle
virtual const Handle(Geom2d_Geometry) &handle() const =0
Geom::Geom2dArcOfHyperbola::Geom2dArcOfHyperbola
Geom2dArcOfHyperbola()
Geom::Geom2dLine
Definition: Geometry2d.h:453
Geom::Geom2dArcOfHyperbola::getMajorRadius
double getMajorRadius(void) const
Geom::Geom2dParabola::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dHyperbola::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dBSplineCurve::getCardinalSplineTangents
void getCardinalSplineTangents(const std::vector< gp_Pnt2d > &, double, std::vector< gp_Vec2d > &) const
Geom::Geom2dHyperbola::setMajorRadius
void setMajorRadius(double Radius)
Geom::Geom2dHyperbola::getMinorRadius
double getMinorRadius(void) const
Geom::Geom2dPoint::toShape
virtual TopoDS_Shape toShape() const
Geom::Geom2dArcOfConic::clone
virtual Geometry2d * clone(void) const =0
returns a cloned object
Geom::Geom2dPoint
Definition: Geometry2d.h:67
Geom::Geom2dPoint::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Base::Persistence
Persistence class and root of the type system.
Definition: Persistence.h:22
Geom::Geom2dBSplineCurve::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dArcOfEllipse::setMajorAxisDir
void setMajorAxisDir(Base::Vector2d newdir)
Geom::makeFromCurve2d
std::unique_ptr< Geom2dCurve > makeFromCurve2d(Handle(Geom2d_Curve))
Geom::Geom2dArcOfParabola::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dHyperbola::setMinorRadius
void setMinorRadius(double Radius)
Geom::Geom2dArcOfEllipse::Geom2dArcOfEllipse
Geom2dArcOfEllipse()
Geom::Geom2dArcOfConic
Definition: Geometry2d.h:210
Geom::Geom2dArcOfCircle::setHandle
void setHandle(const Handle(Geom2d_TrimmedCurve)&)
Geom::Geom2dArcOfEllipse::Geom2dArcOfEllipse
Geom2dArcOfEllipse(const Handle(Geom2d_Ellipse)&)
Geom::Geom2dEllipse::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dBSplineCurve::makeC1Continuous
void makeC1Continuous(double)
Geom::Geom2dBezierCurve::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dBSplineCurve::toBiArcs
std::list< Geometry2d * > toBiArcs(double tolerance) const
Geom::Geom2dLineSegment::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dArcOfConic::setLocation
void setLocation(const Base::Vector2d &Center)
Geom::Geom2dLine::Geom2dLine
Geom2dLine(const Handle(Geom2d_Line)&)
Geom::Geom2dConic::getLocation
Base::Vector2d getLocation(void) const
Geom::Geom2dLineSegment::getStartPoint
Base::Vector2d getStartPoint() const
Geom::Geom2dCircle::~Geom2dCircle
virtual ~Geom2dCircle()
Geom::Geom2dBSplineCurve::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dLine::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dParabola::setFocal
void setFocal(double length)
Geom::Geom2dCurve::Geom2dCurve
Geom2dCurve()
Geom::Geom2dPoint::getPoint
Base::Vector2d getPoint(void) const
Geom::Geom2dArcOfEllipse::getMajorRadius
double getMajorRadius(void) const
Geom::Geom2dArcOfParabola::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dCurve::normal
bool normal(double u, gp_Dir2d &dir) const
Geom::Geom2dArcOfCircle::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dLine::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dCurve::~Geom2dCurve
virtual ~Geom2dCurve()
Geom::Geom2dArcOfCircle
Definition: Geometry2d.h:261
Geom::Dir
Definition: Dir.h:45
Geom::Geom2dTrimmedCurve::~Geom2dTrimmedCurve
virtual ~Geom2dTrimmedCurve()
Tools2D.h
Geom::Geom2dPoint::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dConic::SaveAxis
void SaveAxis(Base::AbstractWriter &writer, const gp_Ax22d &) const
Geom::Geom2dLineSegment::~Geom2dLineSegment
virtual ~Geom2dLineSegment()
Geom::Geom2dOffsetCurve::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dParabola::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dCircle
Definition: Geometry2d.h:236
Geom::Geom2dOffsetCurve::Geom2dOffsetCurve
Geom2dOffsetCurve(const Handle(Geom2d_OffsetCurve)&)
Geom::Geom2dBezierCurve::~Geom2dBezierCurve
virtual ~Geom2dBezierCurve()
Geom::Geom2dLineSegment::setPoints
void setPoints(const Base::Vector2d &p1, const Base::Vector2d &p2)
Base::PersistenceVersion
Definition: Persistence.h:13
Persistence.h
Geom::Geom2dLine::getDir
Base::Vector2d getDir(void) const
Geom::Geom2dBezierCurve
Definition: Geometry2d.h:111
Geom::Geom2dArcOfCircle::Geom2dArcOfCircle
Geom2dArcOfCircle(const Handle(Geom2d_Circle)&)
Base::Vector2d
Definition: Tools2D.h:60
Geom::Geom2dArcOfCircle::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dArcOfEllipse::getMajorAxisDir
Base::Vector2d getMajorAxisDir() const
Geom::Geom2dConic::Handle
const Handle(Geom2d_Geometry) &handle() const =0
Geom::Geom2dTrimmedCurve::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dBSplineCurve::interpolate
void interpolate(const std::vector< gp_Pnt2d > &, const std::vector< gp_Vec2d > &)
Geom::Geom2dTrimmedCurve::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dConic::RestoreAxis
void RestoreAxis(Base::AbstractXMLReader &reader, gp_Ax22d &)
Geom::Geom2dPoint::Geom2dPoint
Geom2dPoint(const Base::Vector2d &)
Geom::Geom2dArcOfEllipse::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::makeFromTrimmedCurve2d
std::unique_ptr< Geom2dCurve > makeFromTrimmedCurve2d(const Handle(Geom2d_Curve)&, double f, double l)
Geom::Geom2dArcOfConic::SaveAxis
void SaveAxis(Base::AbstractWriter &writer, const gp_Ax22d &, double u, double v) const
Geom::Geometry2d::toShape
virtual TopoDS_Shape toShape() const =0
Geom::Geom2dEllipse
Definition: Geometry2d.h:287
Geom::Geom2dConic
Definition: Geometry2d.h:190
Geom::Geom2dConic::clone
virtual Geometry2d * clone(void) const =0
returns a cloned object
Geom::Geom2dArcOfHyperbola::~Geom2dArcOfHyperbola
virtual ~Geom2dArcOfHyperbola()
Geom::Geom2dArcOfCircle::~Geom2dArcOfCircle
virtual ~Geom2dArcOfCircle()
Geom::Geom2dLineSegment::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dEllipse::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dArcOfEllipse::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Base::AbstractWriter
Definition: Writer.h:13
Geom::Geom2dLine::~Geom2dLine
virtual ~Geom2dLine()
Geom::Geom2dHyperbola::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dArcOfHyperbola
Definition: Geometry2d.h:374
Geom::Geom2dCircle::getRadius
double getRadius(void) const
Geom::Geom2dEllipse::Geom2dEllipse
Geom2dEllipse(const Handle(Geom2d_Ellipse)&)
Geom::Geom2dParabola::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dTrimmedCurve::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dCurve::tangent
bool tangent(double u, gp_Dir2d &) const
Geom::Geom2dHyperbola::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dBSplineCurve::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dCurve::pointAtParameter
Base::Vector2d pointAtParameter(double u) const
Geom::Geom2dArcOfParabola::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dArcOfConic::setRange
void setRange(double u, double v)
Geom::Geom2dLineSegment::getEndPoint
Base::Vector2d getEndPoint() const
Geom::Geom2dArcOfHyperbola::getMinorRadius
double getMinorRadius(void) const
Base::AbstractXMLReader
Definition: AbstractXMLReader.h:7
Geom::Geom2dCircle::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dCircle::setRadius
void setRadius(double Radius)
Geom::Geom2dArcOfHyperbola::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dArcOfParabola::Geom2dArcOfParabola
Geom2dArcOfParabola()
Geom::Geom2dParabola::Geom2dParabola
Geom2dParabola(const Handle(Geom2d_Parabola)&)
Geom::Geom2dConic::~Geom2dConic
virtual ~Geom2dConic()
Geom::Geom2dConic::setLocation
void setLocation(const Base::Vector2d &Center)
Geom::Geom2dArcOfConic::getEndPoint
Base::Vector2d getEndPoint() const
Geom::Geom2dConic::Geom2dConic
Geom2dConic()
Geom::Geom2dHyperbola
Definition: Geometry2d.h:347
Geom::Geom2dEllipse::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dEllipse::getMajorAxisDir
Base::Vector2d getMajorAxisDir() const
Geom::Geom2dArcOfParabola
Definition: Geometry2d.h:427
Geom::Geom2dOffsetCurve::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dLineSegment
Definition: Geometry2d.h:480
Geom::Geom2dLine::setLine
void setLine(const Base::Vector2d &Pos, const Base::Vector2d &Dir)
Geom::makeFromCurveAdaptor2d
std::unique_ptr< Geom2dCurve > makeFromCurveAdaptor2d(const Adaptor2d_Curve2d &)
Geom::Geom2dTrimmedCurve::setHandle
void setHandle(const Handle(Geom2d_TrimmedCurve)&)
Geom::Geom2dOffsetCurve::~Geom2dOffsetCurve
virtual ~Geom2dOffsetCurve()
Geom::Geom2dHyperbola::getMajorRadius
double getMajorRadius(void) const
Geom::Geom2dLine::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dArcOfCircle::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dTrimmedCurve
Definition: Geometry2d.h:532
Geom::Geom2dLine::getPos
Base::Vector2d getPos(void) const
Geom::Geom2dArcOfConic::~Geom2dArcOfConic
virtual ~Geom2dArcOfConic()
Geom::Geom2dTrimmedCurve::Geom2dTrimmedCurve
Geom2dTrimmedCurve()
Geom::Geom2dBezierCurve::Geom2dBezierCurve
Geom2dBezierCurve()
Geom::Geom2dArcOfParabola::Geom2dArcOfParabola
Geom2dArcOfParabola(const Handle(Geom2d_Parabola)&)
Geom::Geom2dEllipse::setMinorRadius
void setMinorRadius(double Radius)
Geom::Geom2dArcOfConic::isReversed
bool isReversed() const
Geom::Geom2dCurve::firstDerivativeAtParameter
Base::Vector2d firstDerivativeAtParameter(double u) const
Geom::Geom2dHyperbola::Geom2dHyperbola
Geom2dHyperbola()
Geom::Geom2dArcOfHyperbola::setMinorRadius
void setMinorRadius(double Radius)
Geom::Geom2dPoint::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dBezierCurve::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dBSplineCurve
Definition: Geometry2d.h:134
Geom::Geom2dArcOfParabola::setFocal
void setFocal(double length)
Geom::Geom2dArcOfHyperbola::Geom2dArcOfHyperbola
Geom2dArcOfHyperbola(const Handle(Geom2d_Hyperbola)&)
Geom::Geom2dArcOfParabola::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dCurve::closestParameter
bool closestParameter(const Base::Vector2d &point, double &u) const
Geom::Geom2dArcOfEllipse::setHandle
void setHandle(const Handle(Geom2d_TrimmedCurve)&)
Geom::Geom2dLine::Geom2dLine
Geom2dLine()
Geom::Geom2dArcOfEllipse
Definition: Geometry2d.h:317
Geom::Geom2dBSplineCurve::~Geom2dBSplineCurve
virtual ~Geom2dBSplineCurve()
Geom::Geom2dEllipse::getMinorRadius
double getMinorRadius(void) const
Geom::Geom2dArcOfHyperbola::setHandle
void setHandle(const Handle(Geom2d_TrimmedCurve)&)
Geom::Geom2dParabola::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dOffsetCurve::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dEllipse::setHandle
void setHandle(const Handle(Geom2d_Ellipse) &e)
Geom::Geom2dLineSegment::Geom2dLineSegment
Geom2dLineSegment()
Geom::Geom2dOffsetCurve::Geom2dOffsetCurve
Geom2dOffsetCurve()
Geom::Geom2dEllipse::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dBezierCurve::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dArcOfCircle::Geom2dArcOfCircle
Geom2dArcOfCircle()
Geom::Geom2dCircle::Geom2dCircle
Geom2dCircle(const Handle(Geom2d_Circle)&)
Geom::Geom2dCircle::Geom2dCircle
Geom2dCircle()
Geom::Geom2dArcOfConic::RestoreAxis
void RestoreAxis(Base::AbstractXMLReader &reader, gp_Ax22d &, double &u, double &v)
Geom::Geom2dHyperbola::~Geom2dHyperbola
virtual ~Geom2dHyperbola()
Geom::Geom2dArcOfEllipse::setMajorRadius
void setMajorRadius(double Radius)
Geom::Geom2dLineSegment::setHandle
void setHandle(const Handle(Geom2d_TrimmedCurve)&)
Geom::Geom2dArcOfParabola::setHandle
void setHandle(const Handle(Geom2d_TrimmedCurve)&)
Geom::Geom2dArcOfCircle::setRadius
void setRadius(double Radius)
Geom::Geom2dEllipse::getMajorRadius
double getMajorRadius(void) const
Geom::Geom2dBSplineCurve::Geom2dBSplineCurve
Geom2dBSplineCurve(const Handle(Geom2d_BSplineCurve)&)
Geom::Geometry2d::Geometry2d
Geometry2d()
Geom::Geom2dBSplineCurve::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dHyperbola::Geom2dHyperbola
Geom2dHyperbola(const Handle(Geom2d_Hyperbola)&)
Geom::Geom2dArcOfHyperbola::setMajorRadius
void setMajorRadius(double Radius)
Geom::Geom2dEllipse::~Geom2dEllipse
virtual ~Geom2dEllipse()
Geom::Geom2dEllipse::setMajorRadius
void setMajorRadius(double Radius)
Geom::Geom2dPoint::Geom2dPoint
Geom2dPoint()
Geom::Geom2dBSplineCurve::Geom2dBSplineCurve
Geom2dBSplineCurve()
Geom::Geom2dLineSegment::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dArcOfConic::getLocation
Base::Vector2d getLocation(void) const
Geom::Geom2dArcOfHyperbola::save
virtual void save(Base::AbstractWriter &, Base::PersistenceVersion &) override
This method is used to save properties or very small amounts of data to an XML document.
Geom::Geom2dArcOfHyperbola::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dCurve::toShape
virtual TopoDS_Shape toShape() const
Geom::Geom2dArcOfConic::Geom2dArcOfConic
Geom2dArcOfConic()
Geom::Geom2dOffsetCurve
Definition: Geometry2d.h:508
Geom::Geometry2d::~Geometry2d
virtual ~Geometry2d()
Geom::Geom2dParabola::~Geom2dParabola
virtual ~Geom2dParabola()
TYPESYSTEM_HEADER
#define TYPESYSTEM_HEADER()
define for subclassing Base::BaseClass
Definition: Base.h:12
Geom::Geom2dLine::Geom2dLine
Geom2dLine(const Base::Vector2d &Pos, const Base::Vector2d &Dir)
Geom::Geom2dArcOfEllipse::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dPoint::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dOffsetCurve::clone
virtual Geometry2d * clone(void) const
returns a cloned object
Geom::Geom2dArcOfParabola::~Geom2dArcOfParabola
virtual ~Geom2dArcOfParabola()
Geom::Geom2dParabola::Geom2dParabola
Geom2dParabola()
Geom::Geom2dLine::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dTrimmedCurve::Geom2dTrimmedCurve
Geom2dTrimmedCurve(const Handle(Geom2d_TrimmedCurve)&)
Geom::Geom2dLineSegment::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dArcOfEllipse::Handle
const Handle(Geom2d_Geometry) &handle() const
Geom::Geom2dArcOfParabola::getFocal
double getFocal(void) const
Geom
Definition: PropertyContainer.h:33
Geom::Geom2dTrimmedCurve::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geom2dBSplineCurve::setHandle
void setHandle(const Handle(Geom2d_BSplineCurve)&)