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