File Coverage

/usr/local/lib/perl5/site_perl/5.26.1/x86_64-linux/XS/libgeos.x/i/geos/noding/Noder.h
Criterion Covered Total %
statement 1 2 50.0
branch 0 2 0.0
condition n/a
subroutine n/a
pod n/a
total 1 4 25.0


line stmt bran cond sub pod time code
1             /**********************************************************************
2             *
3             * GEOS - Geometry Engine Open Source
4             * http://geos.osgeo.org
5             *
6             * Copyright (C) 2006 Refractions Research Inc.
7             *
8             * This is free software; you can redistribute and/or modify it under
9             * the terms of the GNU Lesser General Public Licence as published
10             * by the Free Software Foundation.
11             * See the COPYING file for more information.
12             *
13             **********************************************************************/
14              
15             #ifndef GEOS_NODING_NODER_H
16             #define GEOS_NODING_NODER_H
17              
18             #include
19              
20             #include
21             #include
22              
23             #include
24              
25             // Forward declarations
26             namespace geos {
27             namespace noding {
28             class SegmentString;
29             }
30             }
31              
32             namespace geos {
33             namespace noding { // geos.noding
34              
35              
36             /** \brief
37             * Computes all intersections between segments in a set of SegmentString.
38             *
39             * Intersections found are represented as {@link SegmentNode}s and added to the
40             * {@link SegmentString}s in which they occur.
41             * As a final step in the noding a new set of segment strings split
42             * at the nodes may be returned.
43             *
44             * Last port: noding/Noder.java rev. 1.8 (JTS-1.7)
45             *
46             * TODO: this was really an interface, we should avoid making it a Base class
47             *
48             */
49             class GEOS_DLL Noder {
50             public:
51             /** \brief
52             * Computes the noding for a collection of {@link SegmentString}s.
53             *
54             * Some Noders may add all these nodes to the input SegmentStrings;
55             * others may only add some or none at all.
56             *
57             * @param segStrings a collection of {@link SegmentString}s to node
58             */
59             virtual void computeNodes(std::vector* segStrings)=0;
60              
61             /** \brief
62             * Returns a {@link Collection} of fully noded {@link SegmentStrings}.
63             * The SegmentStrings have the same context as their parent.
64             *
65             * @return a newly allocated std::vector of const SegmentStrings.
66             * Caller is responsible to delete container and elements.
67             */
68             virtual std::vector* getNodedSubstrings() const=0;
69              
70 0 0         virtual ~Noder() {}
71              
72             protected:
73 4           Noder(){}
74             };
75              
76             } // namespace geos.noding
77             } // namespace geos
78              
79             //#ifdef GEOS_INLINE
80             //# include "geos/noding/Noder.inl"
81             //#endif
82              
83             #endif // GEOS_NODING_NODER_H
84