001 002/* 003 * Copyright (C) 2010 Archie L. Cobbs. All rights reserved. 004 * 005 * $Id$ 006 */ 007 008package org.dellroad.jibxbindings.pidf.lo.gml; 009 010import java.net.URI; 011 012/** 013 * GML ellipsoid. 014 */ 015public class Ellipsoid extends Solid { 016 017 private double[] center; 018 private Measure semiMajorAxis; 019 private Measure semiMinorAxis; 020 private Measure verticalAxis; 021 private Measure orientation; 022 023 public Ellipsoid() { 024 } 025 026 public Ellipsoid(String gid, URI srsName, int srsDimension, 027 double[] center, Measure semiMajorAxis, Measure semiMinorAxis, Measure verticalAxis, Measure orientation) { 028 super(gid, srsName, srsDimension); 029 this.setCenter(center); 030 this.setSemiMajorAxis(semiMajorAxis); 031 this.setSemiMinorAxis(semiMinorAxis); 032 this.setVerticalAxis(verticalAxis); 033 this.setOrientation(orientation); 034 } 035 036 /** 037 * The center of the ellipsoid. 038 */ 039 public double[] getCenter() { 040 return this.center; 041 } 042 public void setCenter(double[] center) { 043 this.center = center; 044 } 045 046 /** 047 * The ellipsoid's {@code <gs:semiMajorAxis>}. 048 */ 049 public Measure getSemiMajorAxis() { 050 return this.semiMajorAxis; 051 } 052 public void setSemiMajorAxis(Measure semiMajorAxis) { 053 this.semiMajorAxis = semiMajorAxis; 054 } 055 056 /** 057 * The ellipsoid's {@code <gs:semiMinorAxis>}. 058 */ 059 public Measure getSemiMinorAxis() { 060 return this.semiMinorAxis; 061 } 062 public void setSemiMinorAxis(Measure semiMinorAxis) { 063 this.semiMinorAxis = semiMinorAxis; 064 } 065 066 /** 067 * The ellipsoid's {@code <gs:verticalAxis>}. 068 */ 069 public Measure getVerticalAxis() { 070 return this.verticalAxis; 071 } 072 public void setVerticalAxis(Measure verticalAxis) { 073 this.verticalAxis = verticalAxis; 074 } 075 076 /** 077 * The ellipsoid's {@code <gs:orientation>}. 078 */ 079 public Measure getOrientation() { 080 return this.orientation; 081 } 082 public void setOrientation(Measure orientation) { 083 this.orientation = orientation; 084 } 085 086 @Override 087 public void visit(GMLObjectSwitch gmlObjectSwitch) { 088 gmlObjectSwitch.caseEllipsoid(this); 089 } 090 091// Cloneable 092 093 @Override 094 public Ellipsoid clone() { 095 final Ellipsoid clone = (Ellipsoid)super.clone(); 096 clone.center = this.center != null ? this.center.clone() : null; 097 clone.semiMajorAxis = this.semiMajorAxis != null ? this.semiMajorAxis.clone() : null; 098 clone.semiMinorAxis = this.semiMinorAxis != null ? this.semiMinorAxis.clone() : null; 099 clone.verticalAxis = this.verticalAxis != null ? this.verticalAxis.clone() : null; 100 clone.orientation = this.orientation != null ? this.orientation.clone() : null; 101 return clone; 102 } 103} 104