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.spatial.coordgeom;
28:
29: import fr.ign.cogit.geoxygene.spatial.geomprim.GM_Curve;
30:
31: /**
32: * Segment homogène d'une GM_Curve. Classe mère abstraite.
33: * <P> Modification de la norme : cette classe hérite de GM_Curve. Du coup on a fait sauter le lien d'implémentation de GM_GenericCurve.
34: * Un GM_CurveSegment sera une GM_Curve composée d'un et d'un seul segment qui sera lui-même.
35: * Les méthodes addSegment, removeSegment, etc... seront interdites.
36: *
37: * @author Thierry Badard & Arnaud Braun
38: * @version 1.0
39: *
40: */
41:
42: abstract public class GM_CurveSegment extends GM_Curve
43: /*implements GM_GenericCurve*/{
44:
45: //////////////////////////////////////////////////////////////////////////////////
46: // Attributs /////////////////////////////////////////////////////////////////////
47: //////////////////////////////////////////////////////////////////////////////////
48: /** Mécanisme d'interpolation, selon une liste de codes. Vaut "linear" par défaut.
49: * <P> La liste de codes est la suivante :
50: * {linear, geodesic, circularArc3Points, circularArc2PointsWithBulge, elliptical, clothoid,
51: * conic, polynomialSpline, cubicSpline, rationalSpline}. */
52: protected String interpolation = "linear";
53:
54: /** Renvoie l'attribut interpolation. */
55: public String getInterpolation() {
56: return this .interpolation;
57: }
58:
59: /** Type de continuité entre un segment et son prédecesseur (ignoré pour le premier segment).
60: * Pour des polylignes on aura une continuité C0. */
61: protected int numDerivativesAtStart = 0;
62:
63: /** Renvoie l'attribut numDerivativesAtStart. */
64: public int getNumDerivativesAtStart() {
65: return this .numDerivativesAtStart;
66: }
67:
68: /** Type de continuité entre un segment et son successeur (ignoré pour le dernier segment).
69: * Pour des polylignes on aura une continuité C0. */
70: protected int numDerivativeAtEnd = 0;
71:
72: /** Renvoie l'attribut numDerivativeAtEnd. */
73: public int getNumDerivativeAtEnd() {
74: return this .numDerivativeAtEnd;
75: }
76:
77: /** Type de continuité garantie à l'intérieur de la courbe.
78: * Pour des polylignes on aura une continuité C0. */
79: protected int numDerivativeInterior = 0;
80:
81: /** Renvoie l'attribut numDerivativeInterior. */
82: public int getNumDerivativeInterior() {
83: return this .numDerivativeInterior;
84: }
85:
86: //////////////////////////////////////////////////////////////////////////////////
87: // Méthodes (abstaites, implémentée dans les sous-classes)////////////////////////
88: //////////////////////////////////////////////////////////////////////////////////
89: /** Renvoie un GM_CurveSegment de sens opposé. Méthode abstraite implémentée dans les sous-classes. */
90: abstract public GM_CurveSegment reverse();
91:
92: }
|