package org.freehep.j3d; // Java3D import javax.media.j3d.Shape3D; import javax.vecmath.Point3d; import com.sun.j3d.utils.geometry.GeometryInfo; import com.sun.j3d.utils.geometry.NormalGenerator; /** General Solid. * @version 1.0.0 * @author <a href="mailto:Julius.Hrivnac@cern.ch">J.Hrivnac</a> */ public abstract class Solid extends Shape3D { /** Adds geometry from <code>GeometryInfo.QUAD_ARRAY</code> * coordinates. */ protected GeometryInfo addCoordinates(Point3d[] coordinates) { GeometryInfo geometryInfo = new GeometryInfo(GeometryInfo.QUAD_ARRAY); geometryInfo.setCoordinates(coordinates); _normalGenerator.generateNormals(geometryInfo); if (_first) { setGeometry(geometryInfo.getGeometryArray()); _first = false; } else { addGeometry(geometryInfo.getGeometryArray()); } return geometryInfo; } private boolean _first = true; private static NormalGenerator _normalGenerator = new NormalGenerator(); }