01: /*
02: * This file is part of the GeOxygene project source files.
03: *
04: * GeOxygene aims at providing an open framework which implements OGC/ISO specifications for
05: * the development and deployment of geographic (GIS) applications. It is a open source
06: * contribution of the COGIT laboratory at the Institut Géographique National (the French
07: * National Mapping Agency).
08: *
09: * See: http://oxygene-project.sourceforge.net
10: *
11: * Copyright (C) 2005 Institut Géographique National
12: *
13: * This library is free software; you can redistribute it and/or modify it under the terms
14: * of the GNU Lesser General Public License as published by the Free Software Foundation;
15: * either version 2.1 of the License, or any later version.
16: *
17: * This library is distributed in the hope that it will be useful, but WITHOUT ANY
18: * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
19: * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
20: *
21: * You should have received a copy of the GNU Lesser General Public License along with
22: * this library (see file LICENSE if present); if not, write to the Free Software
23: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24: *
25: */
26:
27: package fr.ign.cogit.geoxygene.util.algo;
28:
29: import fr.ign.cogit.geoxygene.spatial.geomroot.GM_Object;
30:
31: /**
32: *
33: * @author Thierry Badard, Arnaud Braun & Christophe Pele
34: * @version 1.0
35: *
36: */
37:
38: public interface GeomAlgorithms {
39:
40: public GM_Object centroid(GM_Object geom);
41:
42: public GM_Object convexHull(GM_Object geOxyGeom);
43:
44: public GM_Object buffer(GM_Object geOxyGeom, double distance);
45:
46: public GM_Object buffer10(GM_Object geOxyGeom);
47:
48: public GM_Object difference(GM_Object geOxyGeom1,
49: GM_Object geOxyGeom2);
50:
51: public GM_Object intersection(GM_Object geOxyGeom1,
52: GM_Object geOxyGeom2);
53:
54: public GM_Object union(GM_Object geOxyGeom1, GM_Object geOxyGeom2);
55:
56: public GM_Object symDifference(GM_Object geOxyGeom1,
57: GM_Object geOxyGeom2);
58:
59: public boolean contains(GM_Object geOxyGeom1, GM_Object geOxyGeom2);
60:
61: public boolean intersects(GM_Object geOxyGeom1, GM_Object geOxyGeom2);
62:
63: public double distance(GM_Object geOxyGeom1, GM_Object geOxyGeom2);
64:
65: public double length(GM_Object geOxyGeom1);
66:
67: public double area(GM_Object geOxyGeom1);
68:
69: public boolean equals(GM_Object geOxyGeom1, GM_Object geOxyGeom2);
70:
71: // public GM_Envelope envelope(GM_Object geOxyGeom) ;
72: // public boolean isValid(GM_Object geOxyGeom) ;
73: // public GM_Object translate(GM_Object geom, double tx, double ty, double tz) ;
74: // DirectPositionList coordinates(GM_Object geOxyGeom1) ;
75: // GM_Object boundary(GM_Object geOxyGeom1) ;
76: // boolean equals(GM_Object geOxyGeom1, GM_Object geOxyGeom2) ;
77: // boolean equalsExact(GM_Object geOxyGeom1, GM_Object geOxyGeom2) ;
78: // boolean crosses(GM_Object geOxyGeom1, GM_Object geOxyGeom2) ;
79: // boolean disjoint(GM_Object geOxyGeom1, GM_Object geOxyGeom2) ;
80: // boolean within(GM_Object geOxyGeom1, GM_Object geOxyGeom2) ;
81: // boolean overlaps(GM_Object geOxyGeom1, GM_Object geOxyGeom2) ;
82: // boolean touches(GM_Object geOxyGeom1, GM_Object geOxyGeom2) ;
83: // boolean isEmpty(GM_Object geOxyGeom) ;
84: // boolean isSimple(GM_Object geOxyGeom) ;
85: // int dimension(GM_Object geOxyGeom) ;
86: // int numPoints(GM_Object geOxyGeom) ;
87:
88: }
|