OpenLexocad  28.0
Geometry.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (c) 2008 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 
23 #pragma once
24 #include <Precision.hxx>
25 #include <Handle_Geom_CartesianPoint.hxx>
26 #include <Handle_Geom_BezierCurve.hxx>
27 #include <Handle_Geom_BSplineCurve.hxx>
28 #include <Handle_Geom_Circle.hxx>
29 #include <Handle_Geom_Ellipse.hxx>
30 #include <Handle_Geom_Hyperbola.hxx>
31 #include <Handle_Geom_Parabola.hxx>
32 #include <Handle_Geom_Line.hxx>
33 #include <Handle_Geom_OffsetCurve.hxx>
34 #include <Handle_Geom_TrimmedCurve.hxx>
35 #include <Handle_Geom_Surface.hxx>
36 #include <Handle_Geom_BezierSurface.hxx>
37 #include <Handle_Geom_BSplineSurface.hxx>
38 #include <Handle_Geom_CylindricalSurface.hxx>
39 #include <Handle_Geom_ConicalSurface.hxx>
40 #include <Handle_Geom_SphericalSurface.hxx>
41 #include <Handle_Geom_ToroidalSurface.hxx>
42 #include <Handle_Geom_Plane.hxx>
43 #include <Handle_Geom_OffsetSurface.hxx>
44 #include <Handle_GeomPlate_Surface.hxx>
45 #include <Handle_Geom_RectangularTrimmedSurface.hxx>
46 #include <Handle_Geom_SurfaceOfRevolution.hxx>
47 #include <Handle_Geom_SurfaceOfLinearExtrusion.hxx>
48 
49 #include <TopoDS_Shape.hxx>
50 #include <Base/Persistence.h>
51 #include <Base/Vector3D.h>
52 
53 #include <boost/uuid/uuid.hpp>
54 #include <list>
55 
56 class Adaptor3d_Curve;
57 class GeomPlate_BuildPlateSurface;
58 class Plate_Plate;
59 
60 namespace Base
61 {
62 class Placement;
63 class Matrix4D;
64 }
65 
66 namespace Geom {
67 class Lin;
68 class Pnt;
69 class Circ;
70 class GeometryExtension;
71 
72 class LX_GEOM_EXPORT Geometry: public Base::Persistence
73 {
75 public:
76  virtual ~Geometry();
77 
78  virtual TopoDS_Shape toShape() const = 0;
79  virtual const Handle(Geom_Geometry)& handle() const = 0;
80  // Persistence implementer ---------------------
81 
82  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
83  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
87  virtual Geometry *copy(void) const = 0;
94  Geometry *clone(void) const;
96  boost::uuids::uuid getTag() const;
97 
98  std::vector<std::weak_ptr<const GeometryExtension>> getExtensions() const;
99 
100  bool hasExtension(Base::Type type) const;
101  bool hasExtension(std::string name) const;
102  std::weak_ptr<const GeometryExtension> getExtension(Base::Type type) const;
103  std::weak_ptr<const GeometryExtension> getExtension(std::string name) const;
104  std::weak_ptr<GeometryExtension> getExtension(Base::Type type);
105  std::weak_ptr<GeometryExtension> getExtension(std::string name);
106  void setExtension(std::unique_ptr<GeometryExtension> &&geo);
108  void deleteExtension(std::string name);
109 
110  void mirror(const Base::Vector3d& point);
111  void mirror(const Base::Vector3d& point, const Base::Vector3d& dir);
112  void rotate(const Base::Placement& plm);
113  void scale(const Base::Vector3d& vec, double scale);
114  void transform(const Base::Matrix4D& mat);
115  void translate(const Base::Vector3d& vec);
116 
117 protected:
119  void createNewTag();
121  void assignTag(const Geom::Geometry *);
122 
123  void copyNonTag(const Geom::Geometry *);
124 
125 protected:
127 
128 protected:
129  boost::uuids::uuid tag;
130  std::vector<std::shared_ptr<GeometryExtension>> extensions;
131 
132 private:
133  Geometry(const Geometry&);
134  Geometry& operator = (const Geometry&);
135 };
136 
137 class LX_GEOM_EXPORT GeomPoint : public Geometry
138 {
140 public:
142  GeomPoint(const Handle(Geom_CartesianPoint)&);
144  GeomPoint(const Geom::Pnt& aPnt);
145  virtual ~GeomPoint();
146  virtual Geometry *copy(void) const;
147  virtual TopoDS_Shape toShape() const;
148 
149  // Persistence implementer ---------------------
150 
151  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
152  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
153  // Base implementer ----------------------------
154 
155 
156  const Handle(Geom_Geometry)& handle() const;
157  void setHandle(const Handle(Geom_CartesianPoint)&);
158 
160  void setPoint(const Base::Vector3d&);
161 
162 private:
163  Handle(Geom_CartesianPoint) myPoint;
164 };
165 
166 class GeomBSplineCurve;
167 class LX_GEOM_EXPORT GeomCurve : public Geometry
168 {
170 public:
172  virtual ~GeomCurve();
173 
174  TopoDS_Shape toShape() const;
181  GeomBSplineCurve* toBSpline(double first, double last) const;
187  virtual GeomBSplineCurve* toNurbs(double first, double last) const;
188  bool tangent(double u, gp_Dir&) const;
189  bool tangent(double u, Base::Vector3d& dir) const;
193  bool closestParameter(const Base::Vector3d& point, double &u) const;
194  bool closestParameterToBasisCurve(const Base::Vector3d& point, double &u) const;
195  double getFirstParameter() const;
196  double getLastParameter() const;
197  double curvatureAt(double u) const;
198  double length(double u, double v) const;
199  bool normalAt(double u, Base::Vector3d& dir) const;
201  std::vector<std::pair<Base::Vector3d, Base::Vector3d>>& points,
202  double tol = ::Precision::Confusion()) const;
203 
204  void reverse(void);
205 
206 protected:
207  static bool intersect(const Handle(Geom_Curve) c, const Handle(Geom_Curve) c2,
208  std::vector<std::pair<Base::Vector3d, Base::Vector3d>>& points,
209  double tol = ::Precision::Confusion());
210 };
211 
212 class LX_GEOM_EXPORT GeomBoundedCurve : public GeomCurve
213 {
215 public:
217  virtual ~GeomBoundedCurve();
218 
219  // Geometry helper
220  virtual Base::Vector3d getStartPoint() const;
221  virtual Base::Vector3d getEndPoint() const;
222 };
223 
224 class LX_GEOM_EXPORT GeomBezierCurve : public GeomBoundedCurve
225 {
227 public:
229  GeomBezierCurve(const Handle(Geom_BezierCurve)&);
230  GeomBezierCurve(const std::vector<Base::Vector3d>&, const std::vector<double>&);
231  virtual ~GeomBezierCurve();
232  virtual Geometry *copy(void) const;
233  std::vector<Base::Vector3d> getPoles() const;
234  std::vector<double> getWeights() const;
235 
236  // Persistence implementer ---------------------
237  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
238  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
239  // Base implementer ----------------------------
240 
241 
242  void setHandle(const Handle(Geom_BezierCurve)&);
243  const Handle(Geom_Geometry)& handle() const;
244 
245 private:
246  Handle(Geom_BezierCurve) myCurve;
247 };
248 
249 class LX_GEOM_EXPORT GeomBSplineCurve : public GeomBoundedCurve
250 {
252 public:
254  GeomBSplineCurve(const Handle(Geom_BSplineCurve)&);
255 
256  GeomBSplineCurve( const std::vector<Base::Vector3d>& poles, const std::vector<double>& weights,
257  const std::vector<double>& knots, const std::vector<int>& multiplicities,
258  int degree, bool periodic=false, bool checkrational = true);
259 
260  virtual ~GeomBSplineCurve();
261  virtual Geometry *copy(void) const;
262 
266  void interpolate(const std::vector<gp_Pnt>&, const std::vector<gp_Vec>&);
271  void getCardinalSplineTangents(const std::vector<gp_Pnt>&,
272  const std::vector<double>&,
273  std::vector<gp_Vec>&) const;
279  void getCardinalSplineTangents(const std::vector<gp_Pnt>&, double,
280  std::vector<gp_Vec>&) const;
281 
282  int countPoles() const;
283  int countKnots() const;
284  void setPole(int index, const Base::Vector3d&, double weight=-1);
285  void setPoles(const std::vector<Base::Vector3d>& poles, const std::vector<double>& weights);
286  void setPoles(const std::vector<Base::Vector3d>& poles);
287  void setWeights(const std::vector<double>& weights);
288  void setKnot(int index, const double val, int mult=-1);
289  void setKnots(const std::vector<double>& knots);
290  void setKnots(const std::vector<double>& knots, const std::vector<int>& multiplicities);
291  std::vector<Base::Vector3d> getPoles() const;
292  std::vector<double> getWeights() const;
293  std::vector<double> getKnots() const;
294  std::vector<int> getMultiplicities() const;
295  int getMultiplicity(int index) const;
296  int getDegree() const;
297  bool isPeriodic() const;
298  bool isRational() const;
299  bool join(const Handle(Geom_BSplineCurve)&);
300  void makeC1Continuous(double, double);
301  std::list<Geometry*> toBiArcs(double tolerance) const;
302 
303  void increaseDegree(int degree);
304  bool approximate(double tol3d, int maxSegments, int maxDegree, int continuity);
305 
306  void increaseMultiplicity(int index, int multiplicity);
307  bool removeKnot(int index, int multiplicity, double tolerance = ::Precision::PConfusion());
308 
309  // Persistence implementer ---------------------
310 
311  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
312  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
313  // Base implementer ----------------------------
314 
315 
316  void setHandle(const Handle(Geom_BSplineCurve)&);
317  const Handle(Geom_Geometry)& handle() const;
318 
319 private:
320  void createArcs(double tolerance, std::list<Geometry*>& new_spans,
321  const gp_Pnt &p_start, const gp_Vec &v_start,
322  double t_start, double t_end, gp_Pnt &p_end, gp_Vec &v_end) const;
323  bool calculateBiArcPoints(const gp_Pnt& p0, gp_Vec v_start,
324  const gp_Pnt& p4, gp_Vec v_end,
325  gp_Pnt& p1, gp_Pnt& p2, gp_Pnt& p3) const;
326 private:
327  Handle(Geom_BSplineCurve) myCurve;
328 };
329 
330 class LX_GEOM_EXPORT GeomConic : public GeomCurve
331 {
333 
334 protected:
336 
337 public:
338  virtual ~GeomConic();
339  virtual Geometry *copy(void) const = 0;
340 
347  void setLocation(const Base::Vector3d& Center);
352  void setCenter(const Base::Vector3d& Center);
353  double getAngleXU(void) const;
354  void setAngleXU(double angle);
355  bool isReversed() const;
356  const Handle(Geom_Geometry)& handle() const = 0;
357 };
358 
359 class LX_GEOM_EXPORT GeomTrimmedCurve : public GeomBoundedCurve
360 {
362 public:
364  GeomTrimmedCurve(const Handle(Geom_TrimmedCurve)&);
365  virtual ~GeomTrimmedCurve();
366  virtual Geometry *copy(void) const;
367 
368  // Persistence implementer ---------------------
369 
370  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
371  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
372  // Base implementer ----------------------------
373 
374 
375  void setHandle(const Handle(Geom_TrimmedCurve)&);
376  const Handle(Geom_Geometry)& handle() const;
377 
379  std::vector<std::pair<Base::Vector3d, Base::Vector3d>>& points,
380  double tol = ::Precision::Confusion()) const;
381 
382  virtual void getRange(double& u, double& v) const;
383  virtual void setRange(double u, double v);
384 
385 protected:
386  Handle(Geom_TrimmedCurve) myCurve;
387 };
388 
389 
390 
391 class LX_GEOM_EXPORT GeomArcOfConic : public GeomTrimmedCurve
392 {
394 
395 protected:
397 
398 public:
399  virtual ~GeomArcOfConic();
400  virtual Geometry *copy(void) const = 0;
401 
402  Base::Vector3d getStartPoint(bool emulateCCWXY) const;
403  Base::Vector3d getEndPoint(bool emulateCCWXY) const;
404 
405  inline virtual Base::Vector3d getStartPoint() const {return getStartPoint(false);}
406  inline virtual Base::Vector3d getEndPoint() const {return getEndPoint(false);}
413  void setLocation(const Base::Vector3d& Center);
418  void setCenter(const Base::Vector3d& Center);
419 
420  virtual void getRange(double& u, double& v, bool emulateCCWXY) const = 0;
421  virtual void setRange(double u, double v, bool emulateCCWXY) = 0;
422 
423  inline virtual void getRange(double& u, double& v) const { getRange(u,v,false);}
424  inline virtual void setRange(double u, double v) { setRange(u,v,false);}
425 
426  bool isReversed() const;
427  double getAngleXU(void) const;
428  void setAngleXU(double angle);
429 
431  void setXAxisDir(const Base::Vector3d& newdir);
432  const Handle(Geom_Geometry)& handle() const = 0;
433 };
434 
435 class LX_GEOM_EXPORT GeomCircle : public GeomConic
436 {
438 public:
440  GeomCircle(const Handle(Geom_Circle)&);
441  virtual ~GeomCircle();
442  virtual Geometry *copy(void) const;
443 
444  double getRadius(void) const;
445  void setRadius(double Radius);
446 
447  // Persistence implementer ---------------------
448 
449  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
450  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
451  // Base implementer ----------------------------
452 
453  virtual GeomBSplineCurve* toNurbs(double first, double last) const;
454 
455  const Handle(Geom_Geometry)& handle() const;
456 
457  void setHandle(const Handle(Geom_Circle)&);
458 
459 private:
460  Handle(Geom_Circle) myCurve;
461 };
462 
463 class LX_GEOM_EXPORT GeomArcOfCircle : public GeomArcOfConic
464 {
466 public:
468  GeomArcOfCircle(const Handle(Geom_Circle)&);
469  GeomArcOfCircle(const Geom::Circ& aCirc, double aParam1, double aParam2);
470  virtual ~GeomArcOfCircle();
471  virtual Geometry *copy(void) const;
472 
473  double getRadius(void) const;
474  void setRadius(double Radius);
475 
476  virtual void getRange(double& u, double& v, bool emulateCCWXY) const;
477  virtual void setRange(double u, double v, bool emulateCCWXY);
478 
479  // Persistence implementer ---------------------
480 
481  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
482  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
483  // Base implementer ----------------------------
484 
485  virtual GeomBSplineCurve* toNurbs(double first, double last) const;
486 
487  void setHandle(const Handle(Geom_TrimmedCurve)&);
488  void setHandle(const Handle(Geom_Circle)&);
489  const Handle(Geom_Geometry)& handle() const;
490 
491 };
492 
493 class LX_GEOM_EXPORT GeomEllipse : public GeomConic
494 {
496 public:
498  GeomEllipse(const Handle(Geom_Ellipse)&);
499  virtual ~GeomEllipse();
500  virtual Geometry *copy(void) const;
501 
502  double getMajorRadius(void) const;
503  void setMajorRadius(double Radius);
504  double getMinorRadius(void) const;
505  void setMinorRadius(double Radius);
508 
509  // Persistence implementer ---------------------
510 
511  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
512  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
513  // Base implementer ----------------------------
514 
515  virtual GeomBSplineCurve* toNurbs(double first, double last) const;
516 
517  void setHandle(const Handle(Geom_Ellipse) &e);
518  const Handle(Geom_Geometry)& handle() const;
519 
520 private:
521  Handle(Geom_Ellipse) myCurve;
522 };
523 
524 class LX_GEOM_EXPORT GeomArcOfEllipse : public GeomArcOfConic
525 {
527 public:
529  GeomArcOfEllipse(const Handle(Geom_Ellipse)&);
530  virtual ~GeomArcOfEllipse();
531  virtual Geometry *copy(void) const;
532 
533  double getMajorRadius(void) const;
534  void setMajorRadius(double Radius);
535  double getMinorRadius(void) const;
536  void setMinorRadius(double Radius);
539 
540  virtual void getRange(double& u, double& v, bool emulateCCWXY) const;
541  virtual void setRange(double u, double v, bool emulateCCWXY);
542 
543  // Persistence implementer ---------------------
544 
545  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
546  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
547  // Base implementer ----------------------------
548 
549  virtual GeomBSplineCurve* toNurbs(double first, double last) const;
550 
551  void setHandle(const Handle(Geom_TrimmedCurve)&);
552  void setHandle(const Handle(Geom_Ellipse)&);
553  const Handle(Geom_Geometry)& handle() const;
554 };
555 
556 
557 class LX_GEOM_EXPORT GeomHyperbola : public GeomConic
558 {
560 public:
562  GeomHyperbola(const Handle(Geom_Hyperbola)&);
563  virtual ~GeomHyperbola();
564  virtual Geometry *copy(void) const;
565 
566  double getMajorRadius(void) const;
567  void setMajorRadius(double Radius);
568  double getMinorRadius(void) const;
569  void setMinorRadius(double Radius);
570 
571  // Persistence implementer ---------------------
572 
573  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
574  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
575  // Base implementer ----------------------------
576 
577  virtual GeomBSplineCurve* toNurbs(double first, double last) const;
578 
579  const Handle(Geom_Geometry)& handle() const;
580  void setHandle(const Handle(Geom_Hyperbola)&);
581 
582 private:
583  Handle(Geom_Hyperbola) myCurve;
584 };
585 
586 class LX_GEOM_EXPORT GeomArcOfHyperbola : public GeomArcOfConic
587 {
589 public:
591  GeomArcOfHyperbola(const Handle(Geom_Hyperbola)&);
593  virtual Geometry *copy(void) const;
594 
595  double getMajorRadius(void) const;
596  void setMajorRadius(double Radius);
597  double getMinorRadius(void) const;
598  void setMinorRadius(double Radius);
601 
602  virtual void getRange(double& u, double& v, bool emulateCCWXY) const;
603  virtual void setRange(double u, double v, bool emulateCCWXY);
604 
605  // Persistence implementer ---------------------
606 
607  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
608  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
609  // Base implementer ----------------------------
610 
611  virtual GeomBSplineCurve* toNurbs(double first, double last) const;
612 
613  void setHandle(const Handle(Geom_TrimmedCurve)&);
614  void setHandle(const Handle(Geom_Hyperbola)&);
615  const Handle(Geom_Geometry)& handle() const;
616 };
617 
618 class LX_GEOM_EXPORT GeomParabola : public GeomConic
619 {
621 public:
623  GeomParabola(const Handle(Geom_Parabola)&);
624  virtual ~GeomParabola();
625  virtual Geometry *copy(void) const;
626 
627  double getFocal(void) const;
628  void setFocal(double length);
629 
630  // Persistence implementer ---------------------
631 
632  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
633  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
634  // Base implementer ----------------------------
635 
636  virtual GeomBSplineCurve* toNurbs(double first, double last) const;
637 
638  const Handle(Geom_Geometry)& handle() const;
639  void setHandle(const Handle(Geom_Parabola)&);
640 
641 private:
642  Handle(Geom_Parabola) myCurve;
643 };
644 
645 class LX_GEOM_EXPORT GeomArcOfParabola : public GeomArcOfConic
646 {
648 public:
650  GeomArcOfParabola(const Handle(Geom_Parabola)&);
652  virtual Geometry *copy(void) const;
653 
654  double getFocal(void) const;
655  void setFocal(double length);
656 
658 
659  virtual void getRange(double& u, double& v, bool emulateCCWXY) const;
660  virtual void setRange(double u, double v, bool emulateCCWXY);
661 
662  // Persistence implementer ---------------------
663 
664  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
665  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
666  // Base implementer ----------------------------
667 
668  virtual GeomBSplineCurve* toNurbs(double first, double last) const;
669 
670  void setHandle(const Handle(Geom_TrimmedCurve)&);
671  void setHandle(const Handle(Geom_Parabola)&);
672  const Handle(Geom_Geometry)& handle() const;
673 };
674 
675 class LX_GEOM_EXPORT GeomLine : public GeomCurve
676 {
678 public:
680  GeomLine(const Handle(Geom_Line)&);
682  virtual ~GeomLine();
683  virtual Geometry *copy(void) const;
684 
685  void setLine(const Base::Vector3d& Pos, const Base::Vector3d& Dir);
686  Base::Vector3d getPos(void) const;
687  Base::Vector3d getDir(void) const;
688 
689  // Persistence implementer ---------------------
690 
691  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
692  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
693  // Base implementer ----------------------------
694 
695 
696  const Handle(Geom_Geometry)& handle() const;
697  void setHandle(const Handle(Geom_Line)&);
698 
699 private:
700  Handle(Geom_Line) myCurve;
701 };
702 
703 class LX_GEOM_EXPORT GeomLineSegment : public GeomTrimmedCurve
704 {
706 public:
708  GeomLineSegment(const Handle(Geom_Line)& l);
709  GeomLineSegment(const Geom::Lin& aLin, double aParam1, double aParam2);
710  virtual ~GeomLineSegment();
711  virtual Geometry *copy(void) const;
712 
715 
716  void setPoints(const Base::Vector3d& p1,
717  const Base::Vector3d& p2);
718 
719  // Persistence implementer ---------------------
720 
721  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
722  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
723  // Base implementer ----------------------------
724 
725 
726  void setHandle(const Handle(Geom_TrimmedCurve)&);
727  void setHandle(const Handle(Geom_Line)&);
728  const Handle(Geom_Geometry)& handle() const;
729 
730 };
731 
732 class LX_GEOM_EXPORT GeomOffsetCurve : public GeomCurve
733 {
735 public:
737  GeomOffsetCurve(const Handle(Geom_Curve)&, double, const gp_Dir&);
738  GeomOffsetCurve(const Handle(Geom_Curve)&, double, Base::Vector3d&);
739  GeomOffsetCurve(const Handle(Geom_OffsetCurve)&);
740  virtual ~GeomOffsetCurve();
741  virtual Geometry *copy(void) const;
742 
743  // Persistence implementer ---------------------
744 
745  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
746  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
747  // Base implementer ----------------------------
748 
749 
750  void setHandle(const Handle(Geom_OffsetCurve)& c);
751  const Handle(Geom_Geometry)& handle() const;
752 
753 private:
754  Handle(Geom_OffsetCurve) myCurve;
755 };
756 
757 class LX_GEOM_EXPORT GeomSurface : public Geometry
758 {
760 public:
761  enum Curvature {
765  Gaussian
766  };
767 
769  virtual ~GeomSurface();
770 
771  TopoDS_Shape toShape() const;
772  bool tangentU(double u, double v, gp_Dir& dirU) const;
773  bool tangentV(double u, double v, gp_Dir& dirV) const;
774  bool normal(double u, double v, gp_Dir& dir) const;
775 
778  bool isUmbillic(double u, double v) const;
779  double curvature(double u, double v, Curvature) const;
780  void curvatureDirections(double u, double v, gp_Dir& maxD, gp_Dir& minD) const;
782 };
783 
784 class LX_GEOM_EXPORT GeomBezierSurface : public GeomSurface
785 {
787 public:
789  GeomBezierSurface(const Handle(Geom_BezierSurface)&);
791  virtual Geometry *copy(void) const;
792 
793  // Persistence implementer ---------------------
794 
795  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
796  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
797  // Base implementer ----------------------------
798 
799 
800  void setHandle(const Handle(Geom_BezierSurface)& b);
801  const Handle(Geom_Geometry)& handle() const;
802 
803 private:
804  Handle(Geom_BezierSurface) mySurface;
805 };
806 
807 class LX_GEOM_EXPORT GeomBSplineSurface : public GeomSurface
808 {
810 public:
812  GeomBSplineSurface(const Handle(Geom_BSplineSurface)&);
814  virtual Geometry *copy(void) const;
815 
816  // Persistence implementer ---------------------
817 
818  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
819  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
820  // Base implementer ----------------------------
821 
822 
823  void setHandle(const Handle(Geom_BSplineSurface)&);
824  const Handle(Geom_Geometry)& handle() const;
825 
826 private:
827  Handle(Geom_BSplineSurface) mySurface;
828 };
829 
830 class LX_GEOM_EXPORT GeomCylinder : public GeomSurface
831 {
833 public:
835  GeomCylinder(const Handle(Geom_CylindricalSurface)&);
836  virtual ~GeomCylinder();
837  virtual Geometry *copy(void) const;
838 
839  // Persistence implementer ---------------------
840 
841  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
842  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
843  // Base implementer ----------------------------
844 
845 
846  void setHandle(const Handle(Geom_CylindricalSurface)&);
847  const Handle(Geom_Geometry)& handle() const;
848 
849 private:
850  Handle(Geom_CylindricalSurface) mySurface;
851 };
852 
853 class LX_GEOM_EXPORT GeomCone : public GeomSurface
854 {
856 public:
858  GeomCone(const Handle(Geom_ConicalSurface)&);
859  virtual ~GeomCone();
860  virtual Geometry *copy(void) const;
861 
862  // Persistence implementer ---------------------
863 
864  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
865  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
866  // Base implementer ----------------------------
867 
868 
869  void setHandle(const Handle(Geom_ConicalSurface)&);
870  const Handle(Geom_Geometry)& handle() const;
871 
872 private:
873  Handle(Geom_ConicalSurface) mySurface;
874 };
875 
876 class LX_GEOM_EXPORT GeomSphere : public GeomSurface
877 {
879 public:
881  GeomSphere(const Handle(Geom_SphericalSurface)&);
882  virtual ~GeomSphere();
883  virtual Geometry *copy(void) const;
884 
885  // Persistence implementer ---------------------
886 
887  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
888  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
889  // Base implementer ----------------------------
890 
891 
892  void setHandle(const Handle(Geom_SphericalSurface)&);
893  const Handle(Geom_Geometry)& handle() const;
894 
895 private:
896  Handle(Geom_SphericalSurface) mySurface;
897 };
898 
899 class LX_GEOM_EXPORT GeomToroid : public GeomSurface
900 {
902 public:
904  GeomToroid(const Handle(Geom_ToroidalSurface)&);
905  virtual ~GeomToroid();
906  virtual Geometry *copy(void) const;
907 
908  // Persistence implementer ---------------------
909 
910  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
911  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
912  // Base implementer ----------------------------
913 
914 
915  void setHandle(const Handle(Geom_ToroidalSurface)&);
916  const Handle(Geom_Geometry)& handle() const;
917 
918 private:
919  Handle(Geom_ToroidalSurface) mySurface;
920 };
921 
922 class LX_GEOM_EXPORT GeomPlane : public GeomSurface
923 {
925 public:
927  GeomPlane(const Handle(Geom_Plane)&);
928  virtual ~GeomPlane();
929  virtual Geometry *copy(void) const;
930 
931  // Persistence implementer ---------------------
932 
933  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
934  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
935  // Base implementer ----------------------------
936 
937 
938  void setHandle(const Handle(Geom_Plane)&);
939  const Handle(Geom_Geometry)& handle() const;
940 
941 private:
942  Handle(Geom_Plane) mySurface;
943 };
944 
945 class LX_GEOM_EXPORT GeomOffsetSurface : public GeomSurface
946 {
948 public:
950  GeomOffsetSurface(const Handle(Geom_Surface)&, double);
951  GeomOffsetSurface(const Handle(Geom_OffsetSurface)&);
953  virtual Geometry *copy(void) const;
954 
955  // Persistence implementer ---------------------
956 
957  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
958  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
959  // Base implementer ----------------------------
960 
961 
962  void setHandle(const Handle(Geom_OffsetSurface)& s);
963  const Handle(Geom_Geometry)& handle() const;
964 
965 private:
966  Handle(Geom_OffsetSurface) mySurface;
967 };
968 
969 class LX_GEOM_EXPORT GeomPlateSurface : public GeomSurface
970 {
972 public:
974  GeomPlateSurface(const Handle(Geom_Surface)&, const Plate_Plate&);
975  GeomPlateSurface(const GeomPlate_BuildPlateSurface&);
976  GeomPlateSurface(const Handle(GeomPlate_Surface)&);
977  virtual ~GeomPlateSurface();
978  virtual Geometry *copy(void) const;
979 
980  // Persistence implementer ---------------------
981 
982  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
983  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
984  // Base implementer ----------------------------
985 
986 
987  void setHandle(const Handle(GeomPlate_Surface)& s);
988  const Handle(Geom_Geometry)& handle() const;
989 
990 private:
991  Handle(GeomPlate_Surface) mySurface;
992 };
993 
994 class LX_GEOM_EXPORT GeomTrimmedSurface : public GeomSurface
995 {
997 public:
999  GeomTrimmedSurface(const Handle(Geom_RectangularTrimmedSurface)&);
1001  virtual Geometry *copy(void) const;
1002 
1003  // Persistence implementer ---------------------
1004 
1005  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
1006  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
1007  // Base implementer ----------------------------
1008 
1009 
1010  void setHandle(const Handle(Geom_RectangularTrimmedSurface)& s);
1011  const Handle(Geom_Geometry)& handle() const;
1012 
1013 private:
1014  Handle(Geom_RectangularTrimmedSurface) mySurface;
1015 };
1016 
1017 class LX_GEOM_EXPORT GeomSurfaceOfRevolution : public GeomSurface
1018 {
1020 public:
1022  GeomSurfaceOfRevolution(const Handle(Geom_Curve)&, const gp_Ax1&);
1023  GeomSurfaceOfRevolution(const Handle(Geom_SurfaceOfRevolution)&);
1025  virtual Geometry *copy(void) const;
1026 
1027  // Persistence implementer ---------------------
1028 
1029  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
1030  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
1031  // Base implementer ----------------------------
1032 
1033 
1034  void setHandle(const Handle(Geom_SurfaceOfRevolution)& c);
1035  const Handle(Geom_Geometry)& handle() const;
1036 
1037 private:
1038  Handle(Geom_SurfaceOfRevolution) mySurface;
1039 };
1040 
1041 class LX_GEOM_EXPORT GeomSurfaceOfExtrusion : public GeomSurface
1042 {
1044 public:
1046  GeomSurfaceOfExtrusion(const Handle(Geom_Curve)&, const gp_Dir&);
1047  GeomSurfaceOfExtrusion(const Handle(Geom_SurfaceOfLinearExtrusion)&);
1049  virtual Geometry *copy(void) const;
1050 
1051  // Persistence implementer ---------------------
1052 
1053  virtual void save(Base::AbstractWriter& /*writer*/, Base::PersistenceVersion& /*save_version*/) override;
1054  virtual void restore(Base::AbstractXMLReader& /*reader*/, Base::PersistenceVersion& /*version*/) override;
1055  // Base implementer ----------------------------
1056 
1057 
1058  void setHandle(const Handle(Geom_SurfaceOfLinearExtrusion)& c);
1059  const Handle(Geom_Geometry)& handle() const;
1060 
1061 private:
1062  Handle(Geom_SurfaceOfLinearExtrusion) mySurface;
1063 };
1064 
1065 
1066 // Helper functions for fillet tools
1067  LX_GEOM_EXPORT
1069  const Base::Vector3d &orig2, const Base::Vector3d &dir2,
1070  Base::Vector3d &point);
1071  LX_GEOM_EXPORT
1072 bool find2DLinesIntersection(const GeomLineSegment *lineSeg1, const GeomLineSegment *lineSeg2,
1073  Base::Vector3d &point);
1074  LX_GEOM_EXPORT
1075 bool findFilletCenter(const GeomLineSegment *lineSeg1, const GeomLineSegment *lineSeg2, double radius,
1076  Base::Vector3d &center);
1077  LX_GEOM_EXPORT
1078 bool findFilletCenter(const GeomLineSegment *lineSeg1, const GeomLineSegment *lineSeg2, double radius,
1079  const Base::Vector3d& refPnt1, const Base::Vector3d& refPnt2,
1080  Base::Vector3d &center);
1081  LX_GEOM_EXPORT
1082 double suggestFilletRadius(const GeomLineSegment *lineSeg1, const GeomLineSegment *lineSeg2,
1083  const Base::Vector3d &refPnt1, const Base::Vector3d &refPnt2);
1084  LX_GEOM_EXPORT
1086  const Base::Vector3d &center, double radius);
1087  LX_GEOM_EXPORT
1088 std::unique_ptr<GeomSurface> makeFromSurface(const Handle(Geom_Surface)&);
1089 
1090  LX_GEOM_EXPORT
1091 std::unique_ptr<GeomCurve> makeFromCurve(const Handle(Geom_Curve)&);
1092 
1093  LX_GEOM_EXPORT
1094 std::unique_ptr<GeomCurve> makeFromTrimmedCurve(const Handle(Geom_Curve)&, double f, double l);
1095 
1096  LX_GEOM_EXPORT
1097 std::unique_ptr<GeomCurve> makeFromCurveAdaptor(const Adaptor3d_Curve&);
1098 }
Geom::GeomPoint::setHandle
void setHandle(const Handle(Geom_CartesianPoint)&)
Geom::GeomArcOfParabola::~GeomArcOfParabola
virtual ~GeomArcOfParabola()
Geom::GeomArcOfConic::getXAxisDir
Base::Vector3d getXAxisDir() const
Geom::GeomArcOfCircle::setHandle
void setHandle(const Handle(Geom_Circle)&)
Geom::GeomArcOfParabola::GeomArcOfParabola
GeomArcOfParabola()
Base::Type
Definition: Type.h:51
Geom::GeomPlateSurface::setHandle
void setHandle(const Handle(GeomPlate_Surface)&s)
Geom::GeomTrimmedCurve
Definition: Geometry.h:360
Geom::GeomArcOfHyperbola::~GeomArcOfHyperbola
virtual ~GeomArcOfHyperbola()
Geom::GeomBezierCurve::setHandle
void setHandle(const Handle(Geom_BezierCurve)&)
Geom::GeomArcOfHyperbola::setMajorAxisDir
void setMajorAxisDir(Base::Vector3d newdir)
Geom::GeomBSplineCurve::setPoles
void setPoles(const std::vector< Base::Vector3d > &poles)
Geom::GeomCurve::~GeomCurve
virtual ~GeomCurve()
Geom::GeomTrimmedSurface::copy
virtual Geometry * copy(void) const
Geom::GeomLine::GeomLine
GeomLine(const Base::Vector3d &Pos, const Base::Vector3d &Dir)
Geom::GeomCurve::toShape
TopoDS_Shape toShape() const
Geom::GeomArcOfHyperbola::setRange
virtual void setRange(double u, double v, bool emulateCCWXY)
Geom::GeomArcOfEllipse::getRange
virtual void getRange(double &u, double &v, bool emulateCCWXY) const
Geom::GeomTrimmedCurve::setHandle
void setHandle(const Handle(Geom_TrimmedCurve)&)
Geom::GeomArcOfParabola::getFocal
double getFocal(void) const
Geom::GeomArcOfConic::getCenter
Base::Vector3d getCenter(void) const
getCenter
Geom::GeomSphere::GeomSphere
GeomSphere(const Handle(Geom_SphericalSurface)&)
Geom::GeomCone::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomPlateSurface::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomBSplineCurve::setKnots
void setKnots(const std::vector< double > &knots, const std::vector< int > &multiplicities)
Geom::GeomBezierCurve::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomTrimmedCurve::GeomTrimmedCurve
GeomTrimmedCurve()
Geom::GeomEllipse
Definition: Geometry.h:494
Geom::GeomBezierSurface::GeomBezierSurface
GeomBezierSurface()
Geom::GeomArcOfEllipse::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomCircle::~GeomCircle
virtual ~GeomCircle()
Geom::GeomToroid::GeomToroid
GeomToroid(const Handle(Geom_ToroidalSurface)&)
Geom::GeomEllipse::GeomEllipse
GeomEllipse(const Handle(Geom_Ellipse)&)
Geom::GeomBezierSurface::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomArcOfHyperbola::getMajorRadius
double getMajorRadius(void) const
Geom::GeomArcOfConic::getAngleXU
double getAngleXU(void) const
Geom::GeomArcOfConic::~GeomArcOfConic
virtual ~GeomArcOfConic()
Geom::GeomLine::~GeomLine
virtual ~GeomLine()
Geom::GeomTrimmedSurface::GeomTrimmedSurface
GeomTrimmedSurface(const Handle(Geom_RectangularTrimmedSurface)&)
Geom::GeomTrimmedSurface
Definition: Geometry.h:995
Geom::GeomArcOfParabola::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::GeomParabola::setHandle
void setHandle(const Handle(Geom_Parabola)&)
Geom::GeomBSplineCurve::GeomBSplineCurve
GeomBSplineCurve(const std::vector< Base::Vector3d > &poles, const std::vector< double > &weights, const std::vector< double > &knots, const std::vector< int > &multiplicities, int degree, bool periodic=false, bool checkrational=true)
Geom::GeomLine::GeomLine
GeomLine()
Geom::GeomToroid::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomSurface::isUmbillic
bool isUmbillic(double u, double v) const
Geom::GeomBSplineSurface::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::GeomOffsetSurface::GeomOffsetSurface
GeomOffsetSurface(const Handle(Geom_OffsetSurface)&)
Geom::GeomBSplineCurve::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::GeomHyperbola::getMajorRadius
double getMajorRadius(void) const
Geom::GeomCircle::copy
virtual Geometry * copy(void) const
Geom::GeomTrimmedCurve::GeomTrimmedCurve
GeomTrimmedCurve(const Handle(Geom_TrimmedCurve)&)
Geom::GeomArcOfCircle::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::GeomBSplineCurve::increaseMultiplicity
void increaseMultiplicity(int index, int multiplicity)
Geom::GeomLineSegment::setHandle
void setHandle(const Handle(Geom_TrimmedCurve)&)
Geom::GeomArcOfCircle::setRadius
void setRadius(double Radius)
Geom::GeomPlane::GeomPlane
GeomPlane()
Geom::GeomOffsetCurve
Definition: Geometry.h:733
Geom::GeomCylinder::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomSurface::tangentU
bool tangentU(double u, double v, gp_Dir &dirU) const
Geom::GeomSurface::Curvature
Curvature
Definition: Geometry.h:761
Geom::GeomBezierCurve::GeomBezierCurve
GeomBezierCurve()
Geom::GeomEllipse::setMajorAxisDir
void setMajorAxisDir(Base::Vector3d newdir)
Geom::Lin
Definition: Lin.h:49
Geom::GeomParabola::copy
virtual Geometry * copy(void) const
Geom::GeomParabola::GeomParabola
GeomParabola()
Base::Placement
Definition: Placement.h:56
Geom::GeomArcOfHyperbola::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomOffsetCurve::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::GeomEllipse::copy
virtual Geometry * copy(void) const
Geom::GeomCone::setHandle
void setHandle(const Handle(Geom_ConicalSurface)&)
Geom::GeomArcOfEllipse::getMajorRadius
double getMajorRadius(void) const
Geom::GeomPoint::~GeomPoint
virtual ~GeomPoint()
Geom::GeomOffsetCurve::copy
virtual Geometry * copy(void) const
Geom::GeomArcOfCircle::getRange
virtual void getRange(double &u, double &v, bool emulateCCWXY) const
Geom::Geometry
Definition: Geometry.h:73
Geom::GeomOffsetSurface::setHandle
void setHandle(const Handle(Geom_OffsetSurface)&s)
Geom::Geometry::deleteExtension
void deleteExtension(std::string name)
Geom::GeomBoundedCurve::getEndPoint
virtual Base::Vector3d getEndPoint() const
Geom::GeomCurve::closestParameterToBasisCurve
bool closestParameterToBasisCurve(const Base::Vector3d &point, double &u) const
Geom::GeomTrimmedCurve::intersectBasisCurves
bool intersectBasisCurves(const GeomTrimmedCurve *c, std::vector< std::pair< Base::Vector3d, Base::Vector3d >> &points, double tol=::Precision::Confusion()) const
Geom::GeomConic::setLocation
void setLocation(const Base::Vector3d &Center)
Geom::GeomLineSegment::~GeomLineSegment
virtual ~GeomLineSegment()
Geom::GeomLineSegment::setPoints
void setPoints(const Base::Vector3d &p1, const Base::Vector3d &p2)
Geom::GeomBezierCurve
Definition: Geometry.h:225
Geom::GeomLineSegment::getEndPoint
Base::Vector3d getEndPoint() const
Geom::GeomCylinder::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::GeomPoint
Definition: Geometry.h:138
Geom::GeomSurfaceOfExtrusion::GeomSurfaceOfExtrusion
GeomSurfaceOfExtrusion(const Handle(Geom_SurfaceOfLinearExtrusion)&)
Geom::GeomPoint::setPoint
void setPoint(const Base::Vector3d &)
Geom::GeomSurfaceOfExtrusion::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomPlateSurface::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomArcOfConic::getRange
virtual void getRange(double &u, double &v) const
Definition: Geometry.h:423
Geom::GeomHyperbola::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomSphere::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomSurfaceOfRevolution
Definition: Geometry.h:1018
Geom::GeomSurfaceOfRevolution::GeomSurfaceOfRevolution
GeomSurfaceOfRevolution(const Handle(Geom_Curve)&, const gp_Ax1 &)
Geom::GeomBSplineCurve::getMultiplicities
std::vector< int > getMultiplicities() const
Geom::GeomArcOfConic::setCenter
void setCenter(const Base::Vector3d &Center)
setCenter
Geom::GeomArcOfCircle::Handle
const Handle(Geom_Geometry) &handle() const
Base::Persistence
Persistence class and root of the type system.
Definition: Persistence.h:22
Geom::GeomPoint::GeomPoint
GeomPoint()
Geom::Geometry::mirror
void mirror(const Base::Vector3d &point, const Base::Vector3d &dir)
Geom::GeomBSplineCurve::copy
virtual Geometry * copy(void) const
Geom::GeomCurve::firstDerivativeAtParameter
Base::Vector3d firstDerivativeAtParameter(double u) const
Geom::GeomSphere
Definition: Geometry.h:877
Geom::GeomPlane::GeomPlane
GeomPlane(const Handle(Geom_Plane)&)
Geom::GeomSurfaceOfRevolution::~GeomSurfaceOfRevolution
virtual ~GeomSurfaceOfRevolution()
Geom::GeomPlane::Handle
const Handle(Geom_Geometry) &handle() const
Geom::Geometry::rotate
void rotate(const Base::Placement &plm)
Geom::GeomSurfaceOfRevolution::copy
virtual Geometry * copy(void) const
Geom::GeomSphere::setHandle
void setHandle(const Handle(Geom_SphericalSurface)&)
Geom::GeomEllipse::getMajorRadius
double getMajorRadius(void) const
Geom::GeomConic::Handle
const Handle(Geom_Geometry) &handle() const =0
Geom::GeomToroid
Definition: Geometry.h:900
Geom::GeomEllipse::setMinorRadius
void setMinorRadius(double Radius)
Geom::GeomHyperbola::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomOffsetCurve::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomTrimmedSurface::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::GeomCone::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::GeomTrimmedSurface::~GeomTrimmedSurface
virtual ~GeomTrimmedSurface()
Geom::GeomTrimmedCurve::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::GeomBSplineCurve::getWeights
std::vector< double > getWeights() const
Geom::GeomLine::GeomLine
GeomLine(const Handle(Geom_Line)&)
Geom::GeomPoint::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::GeomBezierCurve::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomLineSegment::GeomLineSegment
GeomLineSegment()
Geom::findFilletCenter
LX_GEOM_EXPORT bool findFilletCenter(const GeomLineSegment *lineSeg1, const GeomLineSegment *lineSeg2, double radius, Base::Vector3d &center)
Geom::GeomSurface::tangentV
bool tangentV(double u, double v, gp_Dir &dirV) const
Geom::GeomBoundedCurve::GeomBoundedCurve
GeomBoundedCurve()
Geom::Geometry::getExtension
std::weak_ptr< GeometryExtension > getExtension(std::string name)
Geom::GeomPlane::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomArcOfConic::setRange
virtual void setRange(double u, double v, bool emulateCCWXY)=0
Geom::Geometry::getTag
boost::uuids::uuid getTag() const
returns the tag of the geometry object
Geom::GeomHyperbola::setHandle
void setHandle(const Handle(Geom_Hyperbola)&)
Geom::GeomArcOfParabola::copy
virtual Geometry * copy(void) const
Geom::GeomArcOfEllipse::setRange
virtual void setRange(double u, double v, bool emulateCCWXY)
Geom::GeomPlateSurface::~GeomPlateSurface
virtual ~GeomPlateSurface()
Geom::GeomTrimmedCurve::getRange
virtual void getRange(double &u, double &v) const
Geom::GeomCurve::length
double length(double u, double v) const
Geom::GeomArcOfEllipse::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::GeomArcOfHyperbola::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomArcOfConic::setXAxisDir
void setXAxisDir(const Base::Vector3d &newdir)
Geom::GeomBSplineSurface::GeomBSplineSurface
GeomBSplineSurface()
Geom::GeomCylinder::GeomCylinder
GeomCylinder()
Geom::GeomArcOfEllipse::GeomArcOfEllipse
GeomArcOfEllipse()
Geom::GeomBezierCurve::copy
virtual Geometry * copy(void) const
Geom::GeomConic::setAngleXU
void setAngleXU(double angle)
Geom::GeomSphere::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomParabola::getFocal
double getFocal(void) const
Geom::GeomSphere::~GeomSphere
virtual ~GeomSphere()
Geom::GeomArcOfCircle::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomBoundedCurve::getStartPoint
virtual Base::Vector3d getStartPoint() const
Geom::GeomCone
Definition: Geometry.h:854
Geom::GeomPoint::getPoint
Base::Vector3d getPoint(void) const
Geom::GeomConic::GeomConic
GeomConic()
Geom::GeomTrimmedSurface::Handle
const Handle(Geom_Geometry) &handle() const
Geom::Geometry::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::GeomArcOfHyperbola::GeomArcOfHyperbola
GeomArcOfHyperbola(const Handle(Geom_Hyperbola)&)
Geom::GeomBSplineSurface::~GeomBSplineSurface
virtual ~GeomBSplineSurface()
Geom::GeomCurve::GeomCurve
GeomCurve()
Geom::Geometry::~Geometry
virtual ~Geometry()
Geom::GeomCone::copy
virtual Geometry * copy(void) const
Geom::GeomPoint::GeomPoint
GeomPoint(const Handle(Geom_CartesianPoint)&)
Geom::GeomOffsetCurve::GeomOffsetCurve
GeomOffsetCurve(const Handle(Geom_Curve)&, double, const gp_Dir &)
Geom::GeomLineSegment
Definition: Geometry.h:704
Geom::GeomArcOfParabola
Definition: Geometry.h:646
Geom::GeomArcOfEllipse::setMajorAxisDir
void setMajorAxisDir(Base::Vector3d newdir)
Geom::GeomBSplineCurve::getMultiplicity
int getMultiplicity(int index) const
Geom::GeomParabola
Definition: Geometry.h:619
Geom::GeomBSplineSurface::copy
virtual Geometry * copy(void) const
Geom::GeomLineSegment::GeomLineSegment
GeomLineSegment(const Handle(Geom_Line)&l)
Geom::GeomArcOfConic::getRange
virtual void getRange(double &u, double &v, bool emulateCCWXY) const =0
Geom::GeomPlateSurface::GeomPlateSurface
GeomPlateSurface(const Handle(Geom_Surface)&, const Plate_Plate &)
Geom::GeomPlateSurface::GeomPlateSurface
GeomPlateSurface(const GeomPlate_BuildPlateSurface &)
Geom::GeomArcOfHyperbola::toNurbs
virtual GeomBSplineCurve * toNurbs(double first, double last) const
Geom::GeomCircle::GeomCircle
GeomCircle()
Geom::Dir
Definition: Dir.h:45
Geom::GeomArcOfCircle::GeomArcOfCircle
GeomArcOfCircle(const Geom::Circ &aCirc, double aParam1, double aParam2)
Geom::GeomToroid::copy
virtual Geometry * copy(void) const
Geom::GeomArcOfCircle::setHandle
void setHandle(const Handle(Geom_TrimmedCurve)&)
Geom::GeomTrimmedCurve::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomBSplineCurve::isPeriodic
bool isPeriodic() const
Geom::GeomArcOfConic
Definition: Geometry.h:392
Geom::Geometry::scale
void scale(const Base::Vector3d &vec, double scale)
Geom::GeomCylinder::~GeomCylinder
virtual ~GeomCylinder()
Geom::GeomBSplineSurface
Definition: Geometry.h:808
Geom::GeomBSplineCurve::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomArcOfEllipse::setHandle
void setHandle(const Handle(Geom_TrimmedCurve)&)
Geom::Geometry::copy
virtual Geometry * copy(void) const =0
Geom::GeomSurface::curvatureDirections
void curvatureDirections(double u, double v, gp_Dir &maxD, gp_Dir &minD) const
Geom::GeomCone::GeomCone
GeomCone(const Handle(Geom_ConicalSurface)&)
Geom::GeomHyperbola::setMinorRadius
void setMinorRadius(double Radius)
Geom::GeomLine::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomConic::getAngleXU
double getAngleXU(void) const
Geom::GeomArcOfHyperbola
Definition: Geometry.h:587
Geom::GeomArcOfHyperbola::getRange
virtual void getRange(double &u, double &v, bool emulateCCWXY) const
Geom::GeomHyperbola
Definition: Geometry.h:558
Geom::GeomBSplineCurve::getKnots
std::vector< double > getKnots() const
Geom::GeomLineSegment::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomParabola::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomTrimmedCurve::copy
virtual Geometry * copy(void) const
Geom::GeomCurve::secondDerivativeAtParameter
Base::Vector3d secondDerivativeAtParameter(double u) const
Geom::GeomLine::setLine
void setLine(const Base::Vector3d &Pos, const Base::Vector3d &Dir)
Geom::GeomCurve::getFirstParameter
double getFirstParameter() const
Geom::GeomArcOfCircle::~GeomArcOfCircle
virtual ~GeomArcOfCircle()
Geom::GeomSurfaceOfExtrusion::setHandle
void setHandle(const Handle(Geom_SurfaceOfLinearExtrusion)&c)
Geom::GeomBSplineSurface::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomSurfaceOfRevolution::setHandle
void setHandle(const Handle(Geom_SurfaceOfRevolution)&c)
Geom::GeomSurfaceOfRevolution::Handle
const Handle(Geom_Geometry) &handle() const
Geom::makeFromTrimmedCurve
LX_GEOM_EXPORT std::unique_ptr< GeomCurve > makeFromTrimmedCurve(const Handle(Geom_Curve)&, double f, double l)
Geom::GeomBSplineCurve::makeC1Continuous
void makeC1Continuous(double, double)
Geom::GeomArcOfParabola::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomArcOfConic::setLocation
void setLocation(const Base::Vector3d &Center)
Geom::GeomCurve
Definition: Geometry.h:168
Geom::GeomConic::isReversed
bool isReversed() const
Base::PersistenceVersion
Definition: Persistence.h:13
Persistence.h
Geom::GeomTrimmedSurface::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomCurve::tangent
bool tangent(double u, Base::Vector3d &dir) const
Geom::GeomParabola::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomLine::copy
virtual Geometry * copy(void) const
Geom::GeomArcOfParabola::toNurbs
virtual GeomBSplineCurve * toNurbs(double first, double last) const
Geom::GeomCurve::tangent
bool tangent(double u, gp_Dir &) const
Geom::Geometry::Handle
virtual const Handle(Geom_Geometry) &handle() const =0
Geom::GeomCurve::normalAt
bool normalAt(double u, Base::Vector3d &dir) const
Geom::GeomCurve::toNurbs
virtual GeomBSplineCurve * toNurbs(double first, double last) const
Geom::Circ
Definition: Circ.h:56
Geom::GeomHyperbola::~GeomHyperbola
virtual ~GeomHyperbola()
Geom::GeomOffsetCurve::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomBSplineSurface::setHandle
void setHandle(const Handle(Geom_BSplineSurface)&)
Geom::GeomArcOfConic::setAngleXU
void setAngleXU(double angle)
Geom::Geometry::extensions
std::vector< std::shared_ptr< GeometryExtension > > extensions
Definition: Geometry.h:130
Geom::GeomBSplineCurve::setKnots
void setKnots(const std::vector< double > &knots)
Geom::createFilletGeometry
LX_GEOM_EXPORT GeomArcOfCircle * createFilletGeometry(const GeomLineSegment *lineSeg1, const GeomLineSegment *lineSeg2, const Base::Vector3d &center, double radius)
Geom::GeomBSplineSurface::GeomBSplineSurface
GeomBSplineSurface(const Handle(Geom_BSplineSurface)&)
Geom::GeomArcOfCircle::GeomArcOfCircle
GeomArcOfCircle()
Geom::GeomOffsetSurface
Definition: Geometry.h:946
Geom::GeomSurfaceOfExtrusion::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomSurfaceOfExtrusion::~GeomSurfaceOfExtrusion
virtual ~GeomSurfaceOfExtrusion()
Geom::GeomBSplineCurve::setHandle
void setHandle(const Handle(Geom_BSplineCurve)&)
Geom::Geometry::copyNonTag
void copyNonTag(const Geom::Geometry *)
Geom::GeomSphere::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::GeomSurface::Maximum
@ Maximum
Definition: Geometry.h:762
Geom::Geometry::toShape
virtual TopoDS_Shape toShape() const =0
Geom::GeomArcOfParabola::getFocus
Base::Vector3d getFocus(void) const
Geom::GeomHyperbola::toNurbs
virtual GeomBSplineCurve * toNurbs(double first, double last) const
Geom::GeomBezierCurve::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::GeomArcOfConic::GeomArcOfConic
GeomArcOfConic()
Geom::GeomArcOfParabola::setHandle
void setHandle(const Handle(Geom_TrimmedCurve)&)
Geom::GeomTrimmedCurve::~GeomTrimmedCurve
virtual ~GeomTrimmedCurve()
Geom::GeomArcOfConic::getStartPoint
virtual Base::Vector3d getStartPoint() const
Definition: Geometry.h:405
Geom::Pnt
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:44
Geom::GeomPlateSurface::GeomPlateSurface
GeomPlateSurface(const Handle(GeomPlate_Surface)&)
Geom::GeomArcOfHyperbola::setMajorRadius
void setMajorRadius(double Radius)
Geom::GeomPlane::copy
virtual Geometry * copy(void) const
Geom::GeomLine::setHandle
void setHandle(const Handle(Geom_Line)&)
Base::Vector3< double >
Geom::GeomSurfaceOfExtrusion
Definition: Geometry.h:1042
Geom::GeomSphere::copy
virtual Geometry * copy(void) const
Geom::GeomToroid::~GeomToroid
virtual ~GeomToroid()
Geom::GeomPlane
Definition: Geometry.h:923
Geom::GeomBSplineCurve::getCardinalSplineTangents
void getCardinalSplineTangents(const std::vector< gp_Pnt > &, double, std::vector< gp_Vec > &) const
Geom::GeomBSplineCurve::getDegree
int getDegree() const
Base::AbstractWriter
Definition: Writer.h:13
Geom::GeomPlateSurface::copy
virtual Geometry * copy(void) const
Geom::Geometry::hasExtension
bool hasExtension(std::string name) const
Geom::GeomBSplineCurve::~GeomBSplineCurve
virtual ~GeomBSplineCurve()
Geom::GeomOffsetSurface::~GeomOffsetSurface
virtual ~GeomOffsetSurface()
Geom::GeomCircle::setRadius
void setRadius(double Radius)
Geom::GeomEllipse::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::GeomLineSegment::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::GeomEllipse::getMajorAxisDir
Base::Vector3d getMajorAxisDir() const
Geom::GeomArcOfEllipse
Definition: Geometry.h:525
Geom::GeomLineSegment::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomArcOfHyperbola::setMinorRadius
void setMinorRadius(double Radius)
Geom::GeomArcOfCircle::copy
virtual Geometry * copy(void) const
Geom::GeomArcOfHyperbola::getMinorRadius
double getMinorRadius(void) const
Geom::GeomSurface::Minimum
@ Minimum
Definition: Geometry.h:763
Geom::GeomPoint::copy
virtual Geometry * copy(void) const
Geom::GeomSurfaceOfExtrusion::copy
virtual Geometry * copy(void) const
Geom::GeomOffsetCurve::GeomOffsetCurve
GeomOffsetCurve(const Handle(Geom_Curve)&, double, Base::Vector3d &)
Geom::GeomCylinder::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomArcOfCircle::toNurbs
virtual GeomBSplineCurve * toNurbs(double first, double last) const
Base::AbstractXMLReader
Definition: AbstractXMLReader.h:7
Geom::GeomToroid::Handle
const Handle(Geom_Geometry) &handle() const
Geom::find2DLinesIntersection
LX_GEOM_EXPORT bool find2DLinesIntersection(const Base::Vector3d &orig1, const Base::Vector3d &dir1, const Base::Vector3d &orig2, const Base::Vector3d &dir2, Base::Vector3d &point)
Geom::GeomArcOfHyperbola::setHandle
void setHandle(const Handle(Geom_TrimmedCurve)&)
Geom::GeomArcOfConic::getEndPoint
virtual Base::Vector3d getEndPoint() const
Definition: Geometry.h:406
Geom::GeomArcOfParabola::setRange
virtual void setRange(double u, double v, bool emulateCCWXY)
Geom::GeomCurve::toBSpline
GeomBSplineCurve * toBSpline(double first, double last) const
toBSpline Converts the curve to a B-spline
Geom::Geometry::getExtension
std::weak_ptr< GeometryExtension > getExtension(Base::Type type)
Geom::GeomOffsetSurface::GeomOffsetSurface
GeomOffsetSurface(const Handle(Geom_Surface)&, double)
Geom::GeomBezierSurface::copy
virtual Geometry * copy(void) const
Geom::GeomOffsetCurve::~GeomOffsetCurve
virtual ~GeomOffsetCurve()
Geom::GeomEllipse::setMajorRadius
void setMajorRadius(double Radius)
Geom::GeomArcOfConic::copy
virtual Geometry * copy(void) const =0
Geom::GeomLineSegment::copy
virtual Geometry * copy(void) const
Geom::GeomOffsetCurve::GeomOffsetCurve
GeomOffsetCurve(const Handle(Geom_OffsetCurve)&)
Geom::GeomBSplineCurve::setKnot
void setKnot(int index, const double val, int mult=-1)
Geom::GeomSurface::normal
bool normal(double u, double v, gp_Dir &dir) const
Geom::GeomEllipse::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomSurfaceOfRevolution::GeomSurfaceOfRevolution
GeomSurfaceOfRevolution()
Geom::GeomLineSegment::getStartPoint
Base::Vector3d getStartPoint() const
Geom::suggestFilletRadius
LX_GEOM_EXPORT double suggestFilletRadius(const GeomLineSegment *lineSeg1, const GeomLineSegment *lineSeg2, const Base::Vector3d &refPnt1, const Base::Vector3d &refPnt2)
Geom::GeomBSplineCurve::join
bool join(const Handle(Geom_BSplineCurve)&)
Geom::GeomBoundedCurve
Definition: Geometry.h:213
Geom::Geometry::clone
Geometry * clone(void) const
Geom::GeomBezierSurface::~GeomBezierSurface
virtual ~GeomBezierSurface()
Geom::GeomArcOfEllipse::getMajorAxisDir
Base::Vector3d getMajorAxisDir() const
Geom::GeomArcOfHyperbola::GeomArcOfHyperbola
GeomArcOfHyperbola()
Geom::GeomHyperbola::copy
virtual Geometry * copy(void) const
Geom::GeomConic::copy
virtual Geometry * copy(void) const =0
Geom::GeomSurface::toShape
TopoDS_Shape toShape() const
Geom::GeomArcOfEllipse::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomCurve::intersect
static bool intersect(const Handle(Geom_Curve) c, const Handle(Geom_Curve) c2, std::vector< std::pair< Base::Vector3d, Base::Vector3d >> &points, double tol=::Precision::Confusion())
Geom::GeomArcOfEllipse::getMinorRadius
double getMinorRadius(void) const
Geom::Geometry::assignTag
void assignTag(const Geom::Geometry *)
copies the tag from the geometry passed as a parameter to this object
Geom::GeomBSplineCurve
Definition: Geometry.h:250
Geom::GeomSurface::curvature
double curvature(double u, double v, Curvature) const
Geom::GeomBezierSurface::setHandle
void setHandle(const Handle(Geom_BezierSurface)&b)
Geom::GeomBSplineCurve::interpolate
void interpolate(const std::vector< gp_Pnt > &, const std::vector< gp_Vec > &)
Geom::GeomSurface::Mean
@ Mean
Definition: Geometry.h:764
Geom::GeomBSplineCurve::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomCone::GeomCone
GeomCone()
Geom::GeomBezierSurface::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomOffsetSurface::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomHyperbola::GeomHyperbola
GeomHyperbola()
Geom::GeomSurface::GeomSurface
GeomSurface()
Geom::GeomArcOfEllipse::setMinorRadius
void setMinorRadius(double Radius)
Geom::GeomSurfaceOfRevolution::GeomSurfaceOfRevolution
GeomSurfaceOfRevolution(const Handle(Geom_SurfaceOfRevolution)&)
Geom::Geometry::mirror
void mirror(const Base::Vector3d &point)
Geom::GeomCircle::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::GeomLine::getDir
Base::Vector3d getDir(void) const
Geom::GeomBSplineCurve::getPoles
std::vector< Base::Vector3d > getPoles() const
Geom::GeomOffsetSurface::GeomOffsetSurface
GeomOffsetSurface()
Geom::GeomBezierCurve::GeomBezierCurve
GeomBezierCurve(const std::vector< Base::Vector3d > &, const std::vector< double > &)
Geom::GeomArcOfEllipse::~GeomArcOfEllipse
virtual ~GeomArcOfEllipse()
Geom::GeomArcOfHyperbola::copy
virtual Geometry * copy(void) const
Geom::Geometry::hasExtension
bool hasExtension(Base::Type type) const
Geom::GeomCylinder
Definition: Geometry.h:831
Geom::GeomHyperbola::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::GeomBSplineCurve::countKnots
int countKnots() const
Geom::Geometry::getExtension
std::weak_ptr< const GeometryExtension > getExtension(std::string name) const
Geom::GeomPoint::GeomPoint
GeomPoint(const Geom::Pnt &aPnt)
Geom::GeomParabola::toNurbs
virtual GeomBSplineCurve * toNurbs(double first, double last) const
Geom::GeomCircle::toNurbs
virtual GeomBSplineCurve * toNurbs(double first, double last) const
Geom::GeomArcOfCircle::setRange
virtual void setRange(double u, double v, bool emulateCCWXY)
Geom::GeomArcOfParabola::Handle
const Handle(Geom_Geometry) &handle() const
Geom::makeFromSurface
LX_GEOM_EXPORT std::unique_ptr< GeomSurface > makeFromSurface(const Handle(Geom_Surface)&)
Geom::Geometry::getExtensions
std::vector< std::weak_ptr< const GeometryExtension > > getExtensions() const
Geom::GeomCircle::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomConic
Definition: Geometry.h:331
Geom::GeomSurface::~GeomSurface
virtual ~GeomSurface()
Geom::GeomArcOfConic::Handle
const Handle(Geom_Geometry) &handle() const =0
Geom::Geometry::getExtension
std::weak_ptr< const GeometryExtension > getExtension(Base::Type type) const
Geom::GeomArcOfConic::isReversed
bool isReversed() const
Geom::GeomBSplineCurve::approximate
bool approximate(double tol3d, int maxSegments, int maxDegree, int continuity)
Geom::GeomBSplineCurve::getCardinalSplineTangents
void getCardinalSplineTangents(const std::vector< gp_Pnt > &, const std::vector< double > &, std::vector< gp_Vec > &) const
Geom::GeomSurfaceOfExtrusion::GeomSurfaceOfExtrusion
GeomSurfaceOfExtrusion(const Handle(Geom_Curve)&, const gp_Dir &)
Geom::GeomSurfaceOfRevolution::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::GeomBSplineCurve::setPole
void setPole(int index, const Base::Vector3d &, double weight=-1)
Geom::GeomBSplineCurve::setPoles
void setPoles(const std::vector< Base::Vector3d > &poles, const std::vector< double > &weights)
Geom::GeomArcOfConic::setRange
virtual void setRange(double u, double v)
Definition: Geometry.h:424
Geom::GeomCylinder::setHandle
void setHandle(const Handle(Geom_CylindricalSurface)&)
Geom::GeomBSplineCurve::setWeights
void setWeights(const std::vector< double > &weights)
Geom::GeomBSplineCurve::GeomBSplineCurve
GeomBSplineCurve()
Geom::GeomPlane::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::GeomLineSegment::GeomLineSegment
GeomLineSegment(const Geom::Lin &aLin, double aParam1, double aParam2)
Geom::GeomCurve::pointAtParameter
Base::Vector3d pointAtParameter(double u) const
Geom::GeomBezierSurface::GeomBezierSurface
GeomBezierSurface(const Handle(Geom_BezierSurface)&)
Geom::GeomLine
Definition: Geometry.h:676
Geom::GeomCircle::setHandle
void setHandle(const Handle(Geom_Circle)&)
Geom::GeomArcOfCircle::GeomArcOfCircle
GeomArcOfCircle(const Handle(Geom_Circle)&)
Geom::GeomBezierCurve::GeomBezierCurve
GeomBezierCurve(const Handle(Geom_BezierCurve)&)
Geom::GeomArcOfHyperbola::getMajorAxisDir
Base::Vector3d getMajorAxisDir() const
Geom::GeomArcOfConic::getLocation
Base::Vector3d getLocation(void) const
Geom::GeomOffsetSurface::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::GeomBezierCurve::getPoles
std::vector< Base::Vector3d > getPoles() const
Geom::GeomConic::~GeomConic
virtual ~GeomConic()
Geom::GeomTrimmedCurve::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomEllipse::toNurbs
virtual GeomBSplineCurve * toNurbs(double first, double last) const
Geom::GeomBezierCurve::~GeomBezierCurve
virtual ~GeomBezierCurve()
Geom::GeomCurve::intersect
bool intersect(GeomCurve *c, std::vector< std::pair< Base::Vector3d, Base::Vector3d >> &points, double tol=::Precision::Confusion()) const
Geom::GeomCurve::closestParameter
bool closestParameter(const Base::Vector3d &point, double &u) const
Vector3D.h
Geom::GeomLineSegment::setHandle
void setHandle(const Handle(Geom_Line)&)
Geom::GeomCircle
Definition: Geometry.h:436
Geom::Geometry::transform
void transform(const Base::Matrix4D &mat)
Geom::GeomBSplineCurve::GeomBSplineCurve
GeomBSplineCurve(const Handle(Geom_BSplineCurve)&)
Geom::GeomPlateSurface::GeomPlateSurface
GeomPlateSurface()
Geom::GeomBSplineCurve::toBiArcs
std::list< Geometry * > toBiArcs(double tolerance) const
Geom::GeomArcOfEllipse::copy
virtual Geometry * copy(void) const
Geom::GeomBezierSurface::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::GeomCurve::curvatureAt
double curvatureAt(double u) const
Geom::GeomOffsetCurve::GeomOffsetCurve
GeomOffsetCurve()
Geom::GeomCurve::reverse
void reverse(void)
Geom::GeomConic::setCenter
void setCenter(const Base::Vector3d &Center)
setCenter
Geom::GeomCurve::getLastParameter
double getLastParameter() const
Geom::GeomSphere::GeomSphere
GeomSphere()
Geom::GeomCircle::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Base::Matrix4D
Definition: Matrix.h:55
Geom::GeomPlateSurface
Definition: Geometry.h:970
Geom::GeomEllipse::~GeomEllipse
virtual ~GeomEllipse()
Geom::GeomArcOfCircle
Definition: Geometry.h:464
Geom::GeomArcOfConic::getEndPoint
Base::Vector3d getEndPoint(bool emulateCCWXY) const
Geom::Geometry::Geometry
Geometry()
Geom::GeomPlane::~GeomPlane
virtual ~GeomPlane()
Geom::GeomArcOfHyperbola::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::Geometry::translate
void translate(const Base::Vector3d &vec)
Geom::GeomEllipse::setHandle
void setHandle(const Handle(Geom_Ellipse) &e)
Geom::GeomBSplineSurface::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::Geometry::deleteExtension
void deleteExtension(Base::Type type)
Geom::Geometry::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomTrimmedSurface::setHandle
void setHandle(const Handle(Geom_RectangularTrimmedSurface)&s)
Geom::Geometry::tag
boost::uuids::uuid tag
Definition: Geometry.h:129
Geom::GeomPoint::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomToroid::setHandle
void setHandle(const Handle(Geom_ToroidalSurface)&)
Geom::GeomArcOfEllipse::setHandle
void setHandle(const Handle(Geom_Ellipse)&)
Geom::GeomSurface
Definition: Geometry.h:758
Geom::GeomTrimmedSurface::GeomTrimmedSurface
GeomTrimmedSurface()
Geom::GeomParabola::~GeomParabola
virtual ~GeomParabola()
Geom::GeomSurfaceOfExtrusion::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::makeFromCurve
LX_GEOM_EXPORT std::unique_ptr< GeomCurve > makeFromCurve(const Handle(Geom_Curve)&)
Geom::GeomArcOfEllipse::setMajorRadius
void setMajorRadius(double Radius)
Geom::GeomToroid::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::GeomPoint::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomArcOfParabola::getRange
virtual void getRange(double &u, double &v, bool emulateCCWXY) const
Geom::GeomBSplineCurve::isRational
bool isRational() const
Geom::GeomOffsetCurve::setHandle
void setHandle(const Handle(Geom_OffsetCurve)&c)
Geom::Geometry::setExtension
void setExtension(std::unique_ptr< GeometryExtension > &&geo)
Geom::GeomBezierSurface
Definition: Geometry.h:785
Geom::GeomBezierCurve::getWeights
std::vector< double > getWeights() const
Geom::GeomEllipse::GeomEllipse
GeomEllipse()
Geom::GeomOffsetSurface::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomPoint::GeomPoint
GeomPoint(const Base::Vector3d &)
Geom::GeomSurfaceOfExtrusion::GeomSurfaceOfExtrusion
GeomSurfaceOfExtrusion()
Geom::GeomParabola::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.
TYPESYSTEM_HEADER
#define TYPESYSTEM_HEADER()
define for subclassing Base::BaseClass
Definition: Base.h:12
Geom::GeomParabola::GeomParabola
GeomParabola(const Handle(Geom_Parabola)&)
Geom::GeomCone::~GeomCone
virtual ~GeomCone()
Geom::GeomBSplineCurve::increaseDegree
void increaseDegree(int degree)
Geom::GeomCircle::GeomCircle
GeomCircle(const Handle(Geom_Circle)&)
Geom::GeomArcOfEllipse::toNurbs
virtual GeomBSplineCurve * toNurbs(double first, double last) const
Geom::GeomPlateSurface::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::GeomArcOfHyperbola::setHandle
void setHandle(const Handle(Geom_Hyperbola)&)
Geom::GeomParabola::setFocal
void setFocal(double length)
Geom::GeomArcOfParabola::setHandle
void setHandle(const Handle(Geom_Parabola)&)
Geom::GeomBoundedCurve::~GeomBoundedCurve
virtual ~GeomBoundedCurve()
Geom::GeomBSplineCurve::countPoles
int countPoles() const
Geom::GeomArcOfEllipse::GeomArcOfEllipse
GeomArcOfEllipse(const Handle(Geom_Ellipse)&)
Geom::GeomTrimmedCurve::Handle
Handle(Geom_TrimmedCurve) myCurve
Geom::GeomCylinder::copy
virtual Geometry * copy(void) const
Geom::GeomToroid::GeomToroid
GeomToroid()
Geom::GeomHyperbola::getMinorRadius
double getMinorRadius(void) const
Geom::GeomEllipse::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomConic::getCenter
Base::Vector3d getCenter(void) const
getCenter
Geom::GeomEllipse::getMinorRadius
double getMinorRadius(void) const
Geom::GeomCircle::getRadius
double getRadius(void) const
Geom::GeomLine::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomBSplineCurve::removeKnot
bool removeKnot(int index, int multiplicity, double tolerance=::Precision::PConfusion())
Geom::GeomArcOfParabola::setFocal
void setFocal(double length)
Geom::GeomArcOfParabola::GeomArcOfParabola
GeomArcOfParabola(const Handle(Geom_Parabola)&)
Geom::GeomOffsetSurface::copy
virtual Geometry * copy(void) const
Geom::Geometry::createNewTag
void createNewTag()
create a new tag for the geometry object
Geom::GeomArcOfCircle::getRadius
double getRadius(void) const
Geom::GeomCylinder::GeomCylinder
GeomCylinder(const Handle(Geom_CylindricalSurface)&)
Geom::GeomConic::getLocation
Base::Vector3d getLocation(void) const
Geom::GeomTrimmedCurve::setRange
virtual void setRange(double u, double v)
Geom::GeomPoint::toShape
virtual TopoDS_Shape toShape() const
Geom::GeomHyperbola::GeomHyperbola
GeomHyperbola(const Handle(Geom_Hyperbola)&)
Geom::GeomSurfaceOfRevolution::restore
virtual void restore(Base::AbstractXMLReader &, Base::PersistenceVersion &) override
This method is used to restore properties from an XML document.
Geom::GeomHyperbola::setMajorRadius
void setMajorRadius(double Radius)
Base
Definition: AbstractXMLReader.h:5
Geom
Definition: PropertyContainer.h:33
Geom::GeomLine::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::GeomCone::Handle
const Handle(Geom_Geometry) &handle() const
Geom::GeomArcOfConic::getStartPoint
Base::Vector3d getStartPoint(bool emulateCCWXY) const
Geom::GeomPlane::setHandle
void setHandle(const Handle(Geom_Plane)&)
Geom::GeomLine::getPos
Base::Vector3d getPos(void) const
Geom::makeFromCurveAdaptor
LX_GEOM_EXPORT std::unique_ptr< GeomCurve > makeFromCurveAdaptor(const Adaptor3d_Curve &)