GEOS: BasicSegmentString.h Source File

GEOS 3.3.8

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

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 //
61 BasicSegmentString(geom::CoordinateSequence *newPts,
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
100 geom::CoordinateSequence *pts;
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