/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2006-2008, Open Source Geospatial Foundation (OSGeo)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotools.geometry.iso.primitive;
import java.util.ArrayList;
import java.util.Set;
import org.opengis.geometry.DirectPosition;
import org.opengis.geometry.Envelope;
import org.opengis.geometry.complex.Complex;
import org.opengis.geometry.primitive.Shell;
import org.opengis.geometry.primitive.SolidBoundary;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
/**
* The boundary of Solids shall be represented as SolidBoundary.
*
* @author Jackson Roehrig & Sanjay Jena
*
*
* @source $URL$
*/
public class SolidBoundaryImpl extends PrimitiveBoundaryImpl implements
SolidBoundary {
private static final long serialVersionUID = 113485181749545137L;
/**
* SolidBoundaries are similar to SurfaceBoundaries. In normal 3-dimensional
* Euclidean space, one shell is distinguished as the exterior. In the more
* general case, this is not always possible.
*
* SolidBoundary::exterior[0,1] : Shell; SolidBoundary::interior[0..n] :
* Shell;
*
* NOTE An alternative use of solids with no external shell would be to
* define "complements" of finite solids. These infinite solids would have
* only interior boundaries. If this standard is extended to 4D Euclidean
* space, or if 3D compact manifolds are used (probably not in geographic
* information), then other examples of bounded solids without exterior
* boundaries are possible.
*/
private ShellImpl exterior = null;
private ArrayList interior = null; /* ArrayList of Shell */
/**
* @param crs
*/
public SolidBoundaryImpl(CoordinateReferenceSystem crs) {
super(crs);
// TODO Auto-generated constructor stub
}
@Override
public Set<Complex> createBoundary() {
// TODO Auto-generated method stub
return null;
}
@Override
public SolidBoundaryImpl clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return null;
}
public Shell getExterior() {
// TODO Auto-generated method stub
return null;
}
public Shell[] getInteriors() {
// TODO Auto-generated method stub
return null;
}
public boolean isSimple() {
// TODO Auto-generated method stub
return false;
}
/**
* @param point
* @return 3
*
*/
@Override
public int getDimension(DirectPosition point) {
return point.getDimension();
}
@Override
public Envelope getEnvelope() {
// TODO Auto-generated method stub
return null;
}
@Override
public DirectPosition getRepresentativePoint() {
// TODO Auto-generated method stub
return null;
}
}