GEOS  3.3.3
HCoordinate.h
1 /**********************************************************************
2  * $Id: HCoordinate.h 3338 2011-05-10 09:50:44Z strk $
3  *
4  * GEOS - Geometry Engine Open Source
5  * http://geos.refractions.net
6  *
7  * Copyright (C) 2011 Sandro Santilli <strk@keybit.net>
8  * Copyright (C) 2005-2006 Refractions Research Inc.
9  * Copyright (C) 2001-2002 Vivid Solutions Inc.
10  *
11  * This is free software; you can redistribute and/or modify it under
12  * the terms of the GNU Lesser General Public Licence as published
13  * by the Free Software Foundation.
14  * See the COPYING file for more information.
15  *
16  **********************************************************************
17  *
18  * Last port: algorithm/HCoordinate.java r386 (JTS-1.12+)
19  *
20  **********************************************************************/
21 
22 #ifndef GEOS_ALGORITHM_HCOORDINATE_H
23 #define GEOS_ALGORITHM_HCOORDINATE_H
24 
25 #include <geos/export.h>
26 #include <iosfwd>
27 
28 // Forward declarations
29 namespace geos {
30  namespace geom {
31  class Coordinate;
32  }
33 }
34 
35 namespace geos {
36 namespace algorithm { // geos::algorithm
37 
38 
45 class GEOS_DLL HCoordinate {
46 
47 public:
48 
49  friend std::ostream& operator<< (std::ostream& o, const HCoordinate& c);
50 
61  static void intersection(const geom::Coordinate &p1,
62  const geom::Coordinate &p2,
63  const geom::Coordinate &q1,
64  const geom::Coordinate &q2,
65  geom::Coordinate &ret);
66 
67  double x,y,w;
68 
69  HCoordinate();
70 
71  HCoordinate(double _x, double _y, double _w);
72 
73  HCoordinate(const geom::Coordinate& p);
74 
83  HCoordinate(const geom::Coordinate& p1, const geom::Coordinate& p2);
84 
85  HCoordinate(const geom::Coordinate& p1, const geom::Coordinate& p2,
86  const geom::Coordinate& q1, const geom::Coordinate& q2);
87 
88  HCoordinate(const HCoordinate &p1, const HCoordinate &p2);
89 
90  double getX() const;
91 
92  double getY() const;
93 
94  void getCoordinate(geom::Coordinate &ret) const;
95 
96 };
97 
98 std::ostream& operator<< (std::ostream& o, const HCoordinate& c);
99 
100 } // namespace geos::algorithm
101 } // namespace geos
102 
103 #endif // GEOS_ALGORITHM_HCOORDINATE_H
104