codac  1.5.7
codac_ThickEdge.h
1 
11 #ifndef __CODAC_THICKEDGE_H__
12 #define __CODAC_THICKEDGE_H__
13 
14 #include "codac_Vector.h"
15 #include "codac_Interval.h"
16 #include "codac_IntervalVector.h"
17 #include "codac_BoolInterval.h"
18 #include "codac_ThickPoint.h"
19 
20 namespace codac
21 {
22  class ThickEdge
23  {
24  public:
25 
28 
29  ThickEdge(const ThickPoint& p1, const ThickPoint& p2);
30  ThickEdge(const Vector& p1, const Vector& p2);
31  const ThickEdge& operator=(const ThickEdge& e);
32 
36 
37  const ThickPoint& p1() const;
38  const ThickPoint& p2() const;
39  const Interval length() const;
40  const IntervalVector box() const;
41 
45 
46  const BoolInterval is_horizontal() const;
47  const BoolInterval is_vertical() const;
48  const BoolInterval is_degenerated() const;
49  bool does_not_exist() const;
50  const BoolInterval contains(const ThickPoint& p) const;
51  bool operator==(const ThickEdge& e) const;
52  bool operator!=(const ThickEdge& e) const;
53 
57 
58  const IntervalVector operator&(const IntervalVector& x) const;
59  const ThickPoint operator&(const ThickEdge& e) const;
60  static const ThickPoint proj_intersection(const ThickEdge& e1, const ThickEdge& e2);
61 
65 
66  friend std::ostream& operator<<(std::ostream& str, const ThickEdge& e);
67 
71 
72  static const BoolInterval parallel(const ThickEdge& e1, const ThickEdge& e2);
73  static void push(const IntervalVector& box, std::vector<ThickEdge>& v_edges);
74 
76 
77 
78  protected:
79 
80  ThickPoint m_pts[2];
81  };
82 }
83 
84 #endif
FixPoint of a separator The fixpoint of a separator is computed by calling the "::"separate function ...
Definition: codac_capd_helpers.h:9
const IntervalMatrix operator&(const IntervalMatrix &x, const IntervalMatrix &y)