001: /*
002: * This file is part of the GeOxygene project source files.
003: *
004: * GeOxygene aims at providing an open framework which implements OGC/ISO specifications for
005: * the development and deployment of geographic (GIS) applications. It is a open source
006: * contribution of the COGIT laboratory at the Institut Géographique National (the French
007: * National Mapping Agency).
008: *
009: * See: http://oxygene-project.sourceforge.net
010: *
011: * Copyright (C) 2005 Institut Géographique National
012: *
013: * This library is free software; you can redistribute it and/or modify it under the terms
014: * of the GNU Lesser General Public License as published by the Free Software Foundation;
015: * either version 2.1 of the License, or any later version.
016: *
017: * This library is distributed in the hope that it will be useful, but WITHOUT ANY
018: * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
019: * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
020: *
021: * You should have received a copy of the GNU Lesser General Public License along with
022: * this library (see file LICENSE if present); if not, write to the Free Software
023: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
024: *
025: */
026:
027: package fr.ign.cogit.geoxygene.spatial.geomprim;
028:
029: import java.util.ArrayList;
030: import java.util.List;
031:
032: /** NON UTILISE.
033: * Représente la frontière d'un GM_Solid.
034: * Un GM_SolidBoundary est constitué de 0 ou 1 shell extérieur et d'une liste de shells intérieurs
035: * pour éventuellement représenter les solides à trous.
036: * (le cas de 0 shell extérieur est prévu par le modèle mais je n'ai pas compris pourquoi).
037: * <P> A revoir : redéfinir les constructeurs, et tester.
038: *
039: * @author Thierry Badard & Arnaud Braun
040: * @version 1.0
041: *
042: */
043:
044: class GM_SolidBoundary extends GM_PrimitiveBoundary {
045:
046: //////////////////////////////////////////////////////////////////////////////////
047: // Attribut "exterior" et accesseurs /////////////////////////////////////////////
048: //////////////////////////////////////////////////////////////////////////////////
049: /** Shell extérieur. */
050: protected GM_Shell exterior;
051:
052: /** Renvoie le shell extérieur. */
053: public GM_Shell getExterior() {
054: return this .exterior;
055: }
056:
057: /** Affecte un shell extérieur. */
058: protected void setExterior(GM_Shell value) {
059: this .exterior = value;
060: }
061:
062: /** Renvoie 1 si un shell extérieur a été affecté, 0 sinon. */
063: public int sizeExterior() {
064: if (this .exterior == null)
065: return 0;
066: else
067: return 1;
068: }
069:
070: //////////////////////////////////////////////////////////////////////////////////
071: // Attribut "interior" et accesseurs /////////////////////////////////////////////
072: //////////////////////////////////////////////////////////////////////////////////
073: /** Liste des shells intérieurs. */
074: protected List interior = new ArrayList();
075:
076: /** Renvoie la liste des shells intérieurs */
077: public List getInterior() {
078: return this .interior;
079: }
080:
081: /** Renvoie le shell intérieur de rang i. */
082: public GM_Shell getInterior(int i) {
083: return (GM_Shell) this .interior.get(i);
084: }
085:
086: /** Affecte une valeur au shell intérieur de rang i. */
087: protected void setInterior(int i, GM_Shell value) {
088: this .interior.set(i, value);
089: }
090:
091: /** Ajoute un shell intérieur en fin de liste. */
092: protected void addInterior(GM_Shell value) {
093: this .interior.add(value);
094: }
095:
096: /** Ajoute un shell intérieur au rang i. */
097: protected void addInterior(int i, GM_Shell value) {
098: this .interior.add(i, value);
099: }
100:
101: /** Efface le shell intérieur de valeur "value". */
102: protected void removeInterior(GM_Shell value) {
103: this .interior.remove(value);
104: }
105:
106: /** Efface le shell intérieur de rang i. */
107: protected void removeInterior(int i) {
108: this .interior.remove(i);
109: }
110:
111: /** Renvoie le nombre de shells intérieurs. */
112: public int sizeInterior() {
113: return this .interior.size();
114: }
115:
116: /////////////////////////////////////////////////////////////////////////////////////////
117: // Constructeurs ////////////////////////////////////////////////////////////////////////
118: /////////////////////////////////////////////////////////////////////////////////////////
119:
120: // a faire
121: }
|