OpenLexocad  27.0
AbstractConstraint.h
Go to the documentation of this file.
1 #pragma once
2 
3 
4 #include <Geom/Dir.h>
5 #include <Geom/Pnt.h>
6 #include <Geom/Pnt2d.h>
7 #include <Geom/Trsf.h>
8 #include <Geom/geom_defines.h>
9 
10 #include <list>
11 
12 namespace Geom
13 {
14 class AbstractPoint2dConstraint;
15 class AbstractPointConstraint;
16 
17 
19 {
20 public:
23 };
24 
26 {
27 public:
30 
31  virtual void setPoint(const Geom::Pnt& pnt) = 0;
32  virtual void setPointAndDir(const Geom::Pnt& pnt, const Geom::Dir& dir) = 0;
33  virtual const Geom::Pnt& getSolution() const = 0;
34  virtual bool hasSolution() const = 0;
35 
36  virtual const std::list<Geom::AbstractPointConstraint*>& getConstraints() const = 0;
37  virtual void addPointConstraint(Geom::AbstractPointConstraint* constraint) = 0;
38  virtual void removeAllConstraints(bool deleting = true) = 0;
39 };
40 
42 {
43 public:
46 
47  virtual void setPoint2d(const Geom::Pnt2d& pnt) = 0;
48  virtual const Geom::Pnt2d& getSolution() const = 0;
49  virtual bool hasSolution() const = 0;
50 
51  virtual const std::list<Geom::AbstractPoint2dConstraint*>& getConstraints() const = 0;
52  virtual void addPoint2dConstraint(Geom::AbstractPoint2dConstraint* constraint) = 0;
53  virtual void removeAllConstraints(bool deleting = true) = 0;
54 };
55 
58 {
59 public:
61  virtual ~AbstractPointConstraint(void) {}
62 
63  virtual void setPoint(const Geom::Pnt& pnt) = 0;
64  virtual void setPointAndDir(const Geom::Pnt& pnt, const Geom::Dir& dir) = 0;
65  virtual void setTransformation(const Geom::Trsf& t) = 0;
67  virtual const Geom::Pnt& getConstraintPoint() const = 0;
68  virtual bool hasPoint() const = 0;
69  virtual AbstractPointConstraint* clone() = 0;
70 };
71 
74 {
75 public:
77  virtual ~AbstractPoint2dConstraint(void) {}
78 
79  virtual void setPoint2d(const Geom::Pnt2d& pnt) = 0;
80  virtual void setTransformation(const Geom::Trsf2d& t) = 0;
82  virtual const Geom::Pnt2d& getConstraintPoint2d() const = 0;
83  virtual bool hasPoint() const = 0;
84  virtual AbstractPoint2dConstraint* clone() = 0;
85 };
86 
87 } // namespace Geom
AbstractConstraintSolver()
Definition: AbstractConstraint.h:21
Definition: Rotation.h:5
Definition: AbstractConstraint.h:18
virtual ~AbstractPointConstraint(void)
Definition: AbstractConstraint.h:61
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:42
virtual ~AbstractPoint2dConstraintSolver()
Definition: AbstractConstraint.h:45
AbstractPointConstraint(void)
Definition: AbstractConstraint.h:60
#define GEOM_EXPORT
Definition: geom_defines.h:8
Definition: Trsf.h:58
Definition: Dir.h:46
Definition: AbstractConstraint.h:25
Base class of all point constraints.
Definition: AbstractConstraint.h:57
AbstractPoint2dConstraint(void)
Definition: AbstractConstraint.h:76
virtual ~AbstractPoint2dConstraint(void)
Definition: AbstractConstraint.h:77
Definition: Trsf2d.h:46
virtual ~AbstractConstraintSolver()
Definition: AbstractConstraint.h:22
Base class of all 2d point constraints.
Definition: AbstractConstraint.h:73
AbstractPoint2dConstraintSolver()
Definition: AbstractConstraint.h:44
AbstractPointConstraintSolver()
Definition: AbstractConstraint.h:28
Defines a non-persistent 2D cartesian point.
Definition: Pnt2d.h:33
virtual ~AbstractPointConstraintSolver()
Definition: AbstractConstraint.h:29
Definition: AbstractConstraint.h:41