diff options
author | Harvey Harrison <[email protected]> | 2015-04-19 21:02:06 -0700 |
---|---|---|
committer | Harvey Harrison <[email protected]> | 2015-04-19 21:02:06 -0700 |
commit | 7a2e20caac9db6f789a7b3fab344b9758af45335 (patch) | |
tree | b5236ff2570178de356eab569225108948eb4d30 /src/javax/media/j3d/CompressedGeometryHeader.java | |
parent | f76ce302c4bb2a9f03bbee571ec5d05c29633023 (diff) |
j3dcore: flatten the directory structure a bit
Signed-off-by: Harvey Harrison <[email protected]>
Diffstat (limited to 'src/javax/media/j3d/CompressedGeometryHeader.java')
-rw-r--r-- | src/javax/media/j3d/CompressedGeometryHeader.java | 256 |
1 files changed, 256 insertions, 0 deletions
diff --git a/src/javax/media/j3d/CompressedGeometryHeader.java b/src/javax/media/j3d/CompressedGeometryHeader.java new file mode 100644 index 0000000..33b1742 --- /dev/null +++ b/src/javax/media/j3d/CompressedGeometryHeader.java @@ -0,0 +1,256 @@ +/* + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * This code 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 General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + * + */ + +package javax.media.j3d; + +import javax.vecmath.Point3d; + +/** + * The CompressedGeometrHeader object is used in conjunction with + * the CompressedGeometry object. The CompressedGeometrHeader object + * contains information specific to the compressed geometry stored in + * CompressedGeometry NodeComponent object. This information + * is used to aid the decompression of the compressed geometry. + * <P> + * All instance data is declared public and no get or set methods are + * provided. + * + * @see CompressedGeometry + * + * @deprecated As of Java 3D version 1.4. + */ +public class CompressedGeometryHeader extends Object { + + /** + * bufferType: compressed geometry is made up of individual points. + */ + public static final int POINT_BUFFER = 0 ; + + /** + * bufferType: compressed geometry is made up of line segments. + */ + public static final int LINE_BUFFER = 1 ; + + /** + * bufferType: compressed geometry is made up of triangles. + */ + public static final int TRIANGLE_BUFFER = 2 ; + + // Valid values for the bufferDataPresent field. + + /** + * bufferDataPresent: bit indicating that normal information is + * bundled with the vertices in the compressed geometry buffer. + */ + public static final int NORMAL_IN_BUFFER = 1 ; + + /** + * bufferDataPresent: bit indicating that RGB color information is + * bundled with the vertices in the compressed geometry buffer. + */ + public static final int COLOR_IN_BUFFER = 2 ; + + /** + * bufferDataPresent: bit indicating that alpha information is + * bundled with the vertices in the compressed geometry buffer. + */ + public static final int ALPHA_IN_BUFFER = 4 ; + + /** + * The major version number for the compressed geometry format that + * was used to compress the geometry. + * If the version number of compressed geometry is incompatible + * with the supported version of compressed geometry in the + * current version of Java 3D, the compressed geometry obejct will + * not be rendered. + * + * @see Canvas3D#queryProperties + */ + public int majorVersionNumber ; + + /** + * The minor version number for the compressed geometry format that + * was used to compress the geometry. + * If the version number of compressed geometry is incompatible + * with the supported version of compressed geometry in the + * current version of Java 3D, the compressed geometry obejct will + * not be rendered. + * + * @see Canvas3D#queryProperties + */ + public int minorVersionNumber ; + + /** + * The minor-minor version number for the compressed geometry format + * that was used to compress the geometry. + * If the version number of compressed geometry is incompatible + * with the supported version of compressed geometry in the + * current version of Java 3D, the compressed geometry obejct will + * not be rendered. + * + * @see Canvas3D#queryProperties + */ + public int minorMinorVersionNumber ; + + /** + * Describes the type of data in the compressed geometry buffer. + * Only one type may be present in any given compressed geometry + * buffer. + */ + public int bufferType ; + + /** + * Contains bits indicating what data is bundled with the vertices in the + * compressed geometry buffer. If this data is not present (e.g. color) + * then this info will be inherited from the Appearance node. + */ + public int bufferDataPresent ; + + /** + * Size of the compressed geometry in bytes. + */ + public int size ; + + /** + * Offset in bytes of the start of the compressed geometry from the + * beginning of the compressed geometry byte array passed to the + * CompressedGeometry constructor. <p> + * + * If the CompressedGeometry is created with reference access semantics, + * then this allow external compressors or file readers to embed several + * blocks of compressed geometry in a single large byte array, possibly + * interspersed with metadata that is not specific to Java 3D, without + * having to copy each block to a separate byte array. <p> + * + * If the CompressedGeometry is created with copy access semantics, then + * <code>size</code> bytes of compressed geometry data are copied from the + * offset indicated by <code>start</code> instead of copying the entire + * byte array. The getCompressedGeometry() method will return only the + * bytes used to construct the object, and the getCompressedGeometryHeader() + * method will return a header with the <code>start</code> field set to 0. + */ + public int start ; + + /** + * A point that defines the lower bound of the <i>x</i>, + * <i>y</i>, and <i>z</i> components for all positions in the + * compressed geometry buffer. If null, a lower bound of + * (-1,-1,-1) is assumed. Java 3D will use this information to + * construct a bounding box around compressed geometry objects + * that are used in nodes for which the auto compute bounds flag + * is true. The default value for this point is null. + * + * @since Java 3D 1.2 + */ + public Point3d lowerBound = null ; + + /** + * A point that defines the upper bound of the <i>x</i>, + * <i>y</i>, and <i>z</i> components for all positions in the + * compressed geometry buffer. If null, an upper bound of (1,1,1) + * is assumed. Java 3D will use this information to construct a + * bounding box around compressed geometry objects that are used + * in nodes for which the auto compute bounds flag is true. The + * default value for this point is null. + * + * @since Java 3D 1.2 + */ + public Point3d upperBound = null ; + + /** + * Creates a new CompressedGeometryHeader object used for the + * creation of a CompressedGeometry NodeComponent object. + * All instance data is declared public and no get or set methods are + * provided. All values are set to 0 by default and must be filled + * in by the application. + * + * @see CompressedGeometry + */ + public CompressedGeometryHeader() { + } + + /** + * Package-scoped method to copy current CompressedGeometryHeader object + * to the passed-in CompressedGeometryHeader object. + * + * @param hdr the CompressedGeometryHeader object into which to copy the + * current CompressedGeometryHeader. + */ + void copy(CompressedGeometryHeader hdr) { + hdr.majorVersionNumber = this.majorVersionNumber ; + hdr.minorVersionNumber = this.minorVersionNumber ; + hdr.minorMinorVersionNumber = this.minorMinorVersionNumber ; + hdr.bufferType = this.bufferType ; + hdr.bufferDataPresent = this.bufferDataPresent ; + hdr.size = this.size ; + hdr.start = this.start ; + hdr.lowerBound = this.lowerBound ; + hdr.upperBound = this.upperBound ; + } + + /** + * Returns a String describing the contents of the + * CompressedGeometryHeader object. + * + * @return a String describing contents of the compressed geometry header + */ + @Override + public String toString() { + String type = "UNKNOWN" ; + switch (bufferType) { + case POINT_BUFFER: type = "POINT_BUFFER" ; break ; + case LINE_BUFFER: type = "LINE_BUFFER" ; break ; + case TRIANGLE_BUFFER: type = "TRIANGLE_BUFFER" ; break ; + } + + String data = "" ; + if ((bufferDataPresent & NORMAL_IN_BUFFER) != 0) + data = data + "NORMALS " ; + if ((bufferDataPresent & COLOR_IN_BUFFER) != 0) + data = data + "COLORS " ; + if ((bufferDataPresent & ALPHA_IN_BUFFER) != 0) + data = data + "ALPHA " ; + + String lbound = "null" ; + if (lowerBound != null) + lbound = lowerBound.toString() ; + + String ubound = "null" ; + if (upperBound != null) + ubound = upperBound.toString() ; + + return + "majorVersionNumber: " + majorVersionNumber + " " + + "minorVersionNumber: " + minorVersionNumber + " " + + "minorMinorVersionNumber: " + minorMinorVersionNumber + "\n" + + "bufferType: " + type + " " + + "bufferDataPresent: " + data + "\n" + + "size: " + size + " " + + "start: " + start + "\n" + + "lower bound: " + lbound + "\n" + + "upper bound: " + ubound + " " ; + } +} |