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 fr.ign.cogit.geoxygene.spatial.coordgeom.DirectPosition;
030: import fr.ign.cogit.geoxygene.spatial.coordgeom.DirectPositionList;
031:
032: /**
033: * Classe pour un objet géométrique constitué de un point, et seulement un.
034: *
035: * @author Thierry Badard & Arnaud Braun
036: *
037: * 19.02.2007 : correction de bug constructeur à partir d'une DirectPosition
038: *
039: * @version 1.1
040: *
041: */
042:
043: public class GM_Point extends GM_Primitive {
044:
045: /** DirectPosition du point (DirectPosition étant la classe stockant les coordonnées). */
046: protected DirectPosition position;
047:
048: /** Renvoie le DirectPosition du point. */
049: public DirectPosition getPosition() {
050: return this .position;
051: }
052:
053: /** Affecte un DirectPosition au point. Le DirectPosition et le GM_Point doivent avoir la même dimension.
054: * @param pos DirectPosition : coordonnées du point */
055: public void setPosition(DirectPosition pos) {
056: position = pos;
057: }
058:
059: /** NON IMPLEMENTE (renvoie null).
060: * Direction entre self et le GM_Point passé en paramètre, en suivant une courbe qui dépend du sytème de coordonnées (courbe géodésique par exemple).
061: * Le bearing retourné est un vecteur.
062: */
063: /* public Bearing bearing(GM_Point toPoint) {
064: return null;
065: }
066: */
067: /** NON IMPLEMENTE (renvoie null).
068: * Direction entre self et le DirectPosition passé en paramètre, en suivant une courbe qui dépend du sytème de coordonnées (courbe géodésique par exemple).
069: * Le bearing retourné est un vecteur.
070: */
071: /* public Bearing bearing(DirectPosition toPoint) {
072: return null;
073: }
074: */
075:
076: /** Constructeur par défaut. */
077: public GM_Point() {
078: position = new DirectPosition();
079: }
080:
081: /** Constructeur à partir de coordonnées.
082: * @param pos DirectPosition : coordonnées du point */
083: public GM_Point(DirectPosition pos) {
084: position = new DirectPosition(pos.getCoordinate());
085: }
086:
087: /** Affiche les coordonnées du point (2D et 3D). */
088: /*public String toString () {
089: if (position != null) return getPosition().toString();
090: else return "GM_Point : geometrie vide";
091: } */
092:
093: /** Renvoie la liste des coordonnées, qui est constituée d'un seul DirectPosition. */
094: public DirectPositionList coord() {
095: DirectPositionList dpl = new DirectPositionList();
096: if (position != null)
097: dpl.add(position);
098: return dpl;
099: }
100:
101: }
|