From 7a2e20caac9db6f789a7b3fab344b9758af45335 Mon Sep 17 00:00:00 2001
From: Harvey Harrison <harvey.harrison@gmail.com>
Date: Sun, 19 Apr 2015 21:02:06 -0700
Subject: j3dcore: flatten the directory structure a bit

Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com>
---
 src/javax/media/j3d/CompressedGeometryHeader.java | 256 ++++++++++++++++++++++
 1 file changed, 256 insertions(+)
 create mode 100644 src/javax/media/j3d/CompressedGeometryHeader.java

(limited to 'src/javax/media/j3d/CompressedGeometryHeader.java')

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                  + "  " ;
+    }
+}
-- 
cgit v1.2.3