⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compressedgeometrydata.java

📁 JAVA3D矩陈的相关类
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	//	// Using TriangleArray output is currently the fastest, given the	// strip sizes observed from various compressed geometry objects, but	// produces about twice as many vertices.  TriangleStripArray produces	// the same number of Shape3D objects as TriangleArray using 1/2	// to 2/3 of the vertices, with only a marginal performance penalty.	//	return decompressor.toTriangleStripArrays(cgr);    }    /**     * Retrieves the data access mode for this CompressedGeometryData object.     *      * @return <code>true</code> if the data access mode for this     * CompressedGeometryData object is by-reference;     * <code>false</code> if the data access mode is by-copying.     */    public boolean isByReference() {	return this.retained.isByReference();    }    /**     * Gets the compressed geometry data reference.     *     * @return the current compressed geometry data reference.     *     * @exception IllegalStateException if the data access mode for this     * object is not by-reference.     */    public byte[] getCompressedGeometryRef() {	if (!isByReference()) {	    throw new IllegalStateException(                    J3dUtilsI18N.getString("CompressedGeometry8"));        }	return this.retained.getReference();    }    /**     * Gets the compressed geometry data buffer reference, which is     * always null since NIO buffers are not supported for     * CompressedGeometryData objects.     *      * @return null     */    public J3DBuffer getCompressedGeometryBuffer() {        return null;    }    /**     * The Header class is a data container for the header information,     * used in conjunction with a CompressedGeometryData 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.     *     * @since Java 3D 1.5     */    public static class Header 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         * CompressedGeometryData constructor. <p>         *         * If the CompressedGeometryData 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 CompressedGeometryData 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.         */        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.         */        public Point3d upperBound = null;        /**         * Creates a new Header object used for the         * creation of a CompressedGeometryData 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 CompressedGeometryData         */        public Header() {        }        /**         * Package-scoped method to copy current Header object         * to the passed-in Header object.         *         * @param hdr the Header object into which to copy the         * current Header.         */        void copy(Header 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         * Header object.         *         * @return a String describing contents of the compressed geometry header         */        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                  + "  ";        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -