OpenLexocad  27.1
Curve.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Geom/Pnt.h>
4 #include <Geom/Vec.h>
5 #include <OpenLxApp/Geometry.h>
6 
7 namespace Part
8 {
9 class Curve;
10 }
11 
12 namespace Topo
13 {
14 class Wire;
15 }
16 
17 namespace OpenLxApp
18 {
27 class LX_OPENLXAPP_EXPORT Curve : public Geometry
28 {
29  PROXY_HEADER_ABSTRACT(Curve, Part::Curve, IFCCURVE)
30 
31 public:
32  std::shared_ptr<Topo::Wire const> getWire() const;
33 
34  void translate(const Geom::Vec& v);
35  void transform(const Geom::Trsf& t);
36  void reverse();
37 
38  double firstParameter() const;
39  double lastParameter() const;
40 
41  void d0(double u, Geom::Pnt& p) const;
42  void d1(double u, Geom::Pnt& p, Geom::Vec& v1) const;
43  void d2(double u, Geom::Pnt& p, Geom::Vec& v1, Geom::Vec& v2) const;
44  Geom::Pnt value(double U) const;
45  double transformedParameter(double U, const Geom::Trsf& t) const;
46 
47  virtual ~Curve(void);
48 
49 protected:
50  Curve(void) = default;
51 };
52 } // namespace OpenLxApp
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:43
void transform(Container container, OutputIt out, BinaryFunction function)
Definition: Algorithms.h:29
Super-class of all Geometries (aka GeometricRepresentationItems)
Definition: Geometry.h:23
#define PROXY_HEADER_ABSTRACT(_openlexocadclass_, _corelexocadclass_, _type_)
Definition: Globals.h:137
Definition: Trsf.h:57
Definition: ActiveScript.h:7
Definition: Variant.h:55
Defines a non-persistent vector in 3D space.
Definition: Vec.h:44
A curve can be envisioned as the path of a point moving in its coordinate space. (Definition from ISO...
Definition: Curve.h:27