OpenLexocad  28.0
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
OpenLxApp
Definition: ActiveScript.h:10
OpenLxApp::Curve::Curve
Curve(void)=default
Vec.h
OpenLxApp::Curve
A curve can be envisioned as the path of a point moving in its coordinate space. (Definition from ISO...
Definition: Curve.h:28
Geom::Vec
Defines a non-persistent vector in 3D space.
Definition: Vec.h:41
PROXY_HEADER_ABSTRACT
#define PROXY_HEADER_ABSTRACT(_openlexocadclass_, _corelexocadclass_, _type_)
Definition: Globals.h:137
OpenLxApp::Curve::d0
void d0(double u, Geom::Pnt &p) const
OpenLxApp::Curve::translate
void translate(const Geom::Vec &v)
OpenLxApp::Curve::lastParameter
double lastParameter() const
OpenLxApp::Curve::transform
void transform(const Geom::Trsf &t)
Geom::Pnt
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:44
OpenLxApp::Curve::getWire
std::shared_ptr< Topo::Wire const > getWire() const
OpenLxApp::Curve::d1
void d1(double u, Geom::Pnt &p, Geom::Vec &v1) const
OpenLxApp::Curve::transformedParameter
double transformedParameter(double U, const Geom::Trsf &t) const
OpenLxApp::Curve::firstParameter
double firstParameter() const
Pnt.h
OpenLxApp::Geometry
Super-class of all Geometries (aka GeometricRepresentationItems)
Definition: Geometry.h:24
Topo
Definition: DbgInfo.h:17
Geom::Trsf
Definition: Trsf.h:58
OpenLxApp::Curve::~Curve
virtual ~Curve(void)
Geometry.h
OpenLxApp::Curve::value
Geom::Pnt value(double U) const
OpenLxApp::Curve::reverse
void reverse()
OpenLxApp::Curve::d2
void d2(double u, Geom::Pnt &p, Geom::Vec &v1, Geom::Vec &v2) const