GEOS  3.3.3
BasicSegmentString.h
1 /**********************************************************************
2  * $Id: BasicSegmentString.h 3255 2011-03-01 17:56:10Z mloskot $
3  *
4  * GEOS - Geometry Engine Open Source
5  * http://geos.refractions.net
6  *
7  * Copyright (C) 2009 Sandro Santilli <strk@keybit.net>
8  *
9  * This is free software; you can redistribute and/or modify it under
10  * the terms of the GNU Lesser General Public Licence as published
11  * by the Free Software Foundation.
12  * See the COPYING file for more information.
13  *
14  **********************************************************************
15  *
16  * Last port: noding/BasicSegmentString.java rev. 1.1 (JTS-1.9)
17  *
18  **********************************************************************/
19 
20 #ifndef GEOS_NODING_BASICSEGMENTSTRING_H
21 #define GEOS_NODING_BASICSEGMENTSTRING_H
22 
23 #include <geos/export.h>
24 #include <geos/noding/SegmentString.h> // for inheritance
25 #include <geos/geom/CoordinateSequence.h> // for inlines (size())
26 
27 #include <geos/inline.h>
28 
29 #include <vector>
30 
31 // Forward declarations
32 namespace geos {
33  namespace algorithm {
34  //class LineIntersector;
35  }
36 }
37 
38 namespace geos {
39 namespace noding { // geos.noding
40 
51 class GEOS_DLL BasicSegmentString : public SegmentString {
52 
53 public:
54 
56  //
62  const void* newContext)
63  :
64  SegmentString(newContext),
65  pts(newPts)
66  {}
67 
68  virtual ~BasicSegmentString()
69  {}
70 
72  virtual unsigned int size() const
73  {
74  return pts->size();
75  }
76 
78  virtual const geom::Coordinate& getCoordinate(unsigned int i) const;
79 
81  virtual geom::CoordinateSequence* getCoordinates() const;
82 
84  virtual bool isClosed() const;
85 
87  virtual std::ostream& print(std::ostream& os) const;
88 
96  int getSegmentOctant(unsigned int index) const;
97 
98 private:
99 
101 
102 };
103 
104 } // namespace geos.noding
105 } // namespace geos
106 
107 #ifdef GEOS_INLINE
108 # include "geos/noding/SegmentString.inl"
109 #endif
110 
111 #endif // ndef GEOS_NODING_BASICSEGMENTSTRING_H
112