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