/*
* 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.complex;
import java.util.List;
import java.util.Set;
import org.geotools.geometry.iso.coordinate.DirectPositionImpl;
import org.geotools.geometry.iso.primitive.CurveImpl;
import org.geotools.geometry.iso.primitive.SolidImpl;
import org.opengis.geometry.Boundary;
import org.opengis.geometry.DirectPosition;
import org.opengis.geometry.Envelope;
import org.opengis.geometry.complex.Complex;
/**
* A CompositeSolid (Figure 30) shall be a Complex with all the geometric
* properties of a solid. Essentially, a composite solid is a set of solids that
* join in pairs on common boundary surfaces to form a single solid.
*
* @author Jackson Roehrig & Sanjay Jena
*
*
*
*
* @source $URL$
*/
public class CompositeSolidImpl extends CompositeImpl<SolidImpl> {
private static final long serialVersionUID = -1998244006251493858L;
/**
* The association role Composition::generator associates this
* CompositeSolid to the primitive Solids in its generating set, that is,
* the solids that form the core of this complex. CompositeSolid::generator :
* Set<Solid>
*
* NOTE To get a full representation of the elements in the Complex, the
* Surfaces, Curves and Points on the boundary of the generator set if
* Solids would have to be added to the generator list.
*
* The Solids generators will be passed through the super constructor and
* saved in the element ArrayList of the according Complex
* @param generator
*/
public CompositeSolidImpl(List<CurveImpl> generator) {
super(generator);
}
/**
* The method <code>dimension</code> returns the inherent dimension of
* this Object, which is less than or equal to the coordinate dimension. The
* dimension of a collection of geometric objects is the largest dimension
* of any of its pieces. Points are 0-dimensional, curves are 1-dimensional,
* surfaces are 2-dimensional, and solids are 3-dimensional. Locally, the
* dimension of a geometric object at a point is the dimension of a local
* neighborhood of the point - that is the dimension of any coordinate
* neighborhood of the point. Dimension is unambiguously defined only for
* DirectPositions interior to this Object. If the passed DirectPosition2D
* is NULL, then the method returns the largest possible dimension for any
* DirectPosition2D in this Object.
*
* @param point
* a <code>DirectPosition2D</code> value
* @return an <code>int</code> value
*/
public int dimension(@SuppressWarnings("unused")
final DirectPositionImpl point) {
return 3;
}
@Override
public Class getGeneratorClass() {
return CompositeSolidImpl.class;
}
@Override
public Set<Complex> createBoundary() {
// TODO Auto-generated method stub
return null;
}
@Override
public CompositeSolidImpl clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return null;
}
public boolean isSimple() {
// TODO Auto-generated method stub
return false;
}
public List getGenerators() {
// TODO Auto-generated method stub
return null;
}
@Override
public Boundary getBoundary() {
// TODO Auto-generated method stub
return null;
}
@Override
public int getDimension(DirectPosition point) {
// TODO Auto-generated method stub
return 0;
}
@Override
public Envelope getEnvelope() {
// TODO Auto-generated method stub
return null;
}
@Override
public DirectPosition getRepresentativePoint() {
// TODO Auto-generated method stub
return null;
}
}