01: /*
02: * GeoTools - OpenSource mapping toolkit
03: * http://geotools.org
04: * (C) 2004-2006, GeoTools Project Managment Committee (PMC)
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation;
09: * version 2.1 of the License.
10: *
11: * This library is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: *
16: * Created on 31-dic-2004
17: */
18: package org.geotools.geometry.jts.coordinatesequence;
19:
20: import com.vividsolutions.jts.geom.CoordinateSequence;
21:
22: /**
23: * A Builder for JTS CoordinateSequences.
24: *
25: * @author wolf
26: *
27: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/main/src/main/java/org/geotools/geometry/jts/coordinatesequence/CSBuilder.java $
28: */
29: public interface CSBuilder {
30: /**
31: * Starts the building of a new coordinate sequence
32: * @param size - the number of coordinates in the coordinate sequence
33: * @param dimensions - the dimension of the coordinates in the coordinate sequence,
34: * may be ignored if the coordinate sequence does not support variabile dimensions
35: */
36: public void start(int size, int dimensions);
37:
38: /**
39: * Stops the coordinate sequence building and returns the result
40: */
41: public CoordinateSequence end();
42:
43: /**
44: * Sets and ordinate in the specified coordinate
45: * @param value
46: * @param ordinateIndex
47: * @param coordinateIndex
48: */
49: public void setOrdinate(double value, int ordinateIndex,
50: int coordinateIndex);
51:
52: /**
53: * Utility method that allows to set an ordinate in an already built coordinate sequence
54: * Needed because the CoordinateSequence interface does not expose it
55: * @param sequence
56: * @param value
57: * @param ordinateIndex
58: * @param coordinateIndex
59: */
60: public void setOrdinate(CoordinateSequence sequence, double value,
61: int ordinateIndex, int coordinateIndex);
62:
63: /**
64: * Gets an ordinate in the specified coordinate
65: *
66: * @param ordinateIndex
67: * @param coordinateIndex
68: */
69: public double getOrdinate(int ordinateIndex, int coordinateIndex);
70:
71: /**
72: * Returns the size of the coordinate sequence we are building, -1 if there is none
73: */
74: public int getSize();
75:
76: /**
77: * Returns the dimension of the coordinate sequence we are building, -1 if there is none
78: */
79: public int getDimension();
80: }
|