Aleph-w  1.5a.2
Biblioteca general de algoritmos y estructuras de datos
 Todo Clases Archivos Funciones Variables 'typedefs' Enumeraciones Amigas Grupos Páginas
segment.H
1 # ifndef SEGMENT_H
2 # define SEGMENT_H
3 
4 # include "point.H"
5 # include "points_utils.H"
6 
7 class Segment
8 {
9 
10  const Point * a;
11  const Point * b;
12 
13 public:
14 
15  Segment() : a(NULL), b(NULL)
16  {
17  /* empty */
18  }
19 
20  Segment(const Point * __a, const Point * __b) : a(__a), b(__b)
21  {
22  /* empty */
23  }
24 
25  Segment(const Point & __a, const Point & __b) : a(&__a), b(&__b)
26  {
27  /* empty */
28  }
29 
30  ~Segment()
31  {
32  /* empty */
33  }
34 
35  const bool operator == (const Segment & segment) const
36  {
37  return ((*a == *segment.a and *b == *segment.b) or
38  (*a == *segment.b and *b == *segment.a));
39  }
40 
41  /* Verifica si el segmento intersecta otro segmento */
42  const bool intersect(const Segment & segment) const
43  {
44  return intersectp(*a, *b, *segment.a, *segment.b);
45  }
46 
47  const Point * get_a() { return a ;} //Retorna el punto 'a' del segmento
48 
49  const Point * get_b() { return b; } //Retorna el punto 'b' del segmento
50 
51 
52  /* Recibe la coordenada 'y' de una linea horizontal y devuelve */
53  /* el punto de interseccion con el segmento */
54  Point horiz_line_inter(const Geom_Number & __y)
55  {
56 
57  Geom_Number intersection_x;
58  float m;
59 
60  m = (float)(a->get_y() - b->get_y()) / (float)(a->get_x() - b->get_x());
61 
62  intersection_x = (Geom_Number)((__y - b->get_y())/m + b->get_x());
63 
64  Point intersection_point(intersection_x,__y);
65 
66  return intersection_point;
67  }
68 
69  /* Retorna el punto mas alto entre a y b */
70  const Point * highest_point()
71  {
72 
73  if (a->get_y() > b->get_y())
74  return a;
75  else
76  return b;
77  }
78 
79  /* Retorna el punto mas bajo entre a y b */
80  const Point * lowest_point()
81  {
82  if (a->get_y() < b->get_y())
83  return a;
84  else
85  return b;
86  }
87 };
88 
89 # endif // SEGMENT_H
Definition: point.H:87
const Geom_Number & get_y() const
retorna el valor de la coordenada y
Definition: point.H:166
const Point & lowest_point() const
Retorna el punto del segmento más al sur.
Definition: point.H:419
const Geom_Number & get_x() const
retorna el valor de la coordenada x
Definition: point.H:161
Definition: point.H:378
const Point & highest_point() const
Retorna el punto del segmento más al norte.
Definition: point.H:413

Leandro Rabindranath León