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

📄 imagecomponent3d.java

📁 JAVA3D矩陈的相关类
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    /**     * Retrieves one of the images from this ImageComponent3D object.  If the     * data access mode is not by-reference, then a copy of the image     * is made.  If the data access mode is by-reference, then the     * reference is returned.     *     * @param index the index of the image to retrieve.     * The index must be less than the depth of this ImageComponent3D object.     *     * @return either a new RenderedImage object created from the data     * in this image component, or the RenderedImage object referenced     * by this image component.     *     * @exception CapabilityNotSetException if appropriate capability is     * not set and this object is part of live or compiled scene graph     *     * @exception IllegalStateException if the image class is not one of:     * ImageClass.BUFFERED_IMAGE or ImageClass.RENDERED_IMAGE.     *     * @since Java 3D 1.2     */    public RenderedImage getRenderedImage(int index) {        if (isLiveOrCompiled())            if(!this.getCapability(ImageComponent.ALLOW_IMAGE_READ))             throw new CapabilityNotSetException(J3dI18N.getString("ImageComponent3D3"));	return ((ImageComponent3DRetained)this.retained).getImage(index);    }    /**     * Retrieves one of the images from this ImageComponent3D object.  If the     * data access mode is not by-reference, then a copy of the image     * is made.  If the data access mode is by-reference, then the     * reference is returned.     *     * @param index the index of the image to retrieve.     * The index must be less than the depth of this ImageComponent3D object.     *     * @return either a new NioImageBuffer object created from the data     * in this image component, or the NioImageBuffer object referenced     * by this image component.     *     * @exception CapabilityNotSetException if appropriate capability is     * not set and this object is part of live or compiled scene graph     *     * @exception IllegalStateException if the image class is not     * ImageClass.NIO_IMAGE_BUFFER.     *     * @exception UnsupportedOperationException this method is not supported     * for Java 3D 1.5.     *     * @since Java 3D 1.5     */    public NioImageBuffer getNioImage(int index) { 	throw new UnsupportedOperationException();    }    /**     * Modifies a contiguous subregion of a particular slice of     * image of this ImageComponent3D object.     * Block of data of dimension (width * height)     * starting at the offset (srcX, srcY) of the specified     * RenderedImage object will be copied into the particular slice of     * image component     * starting at the offset (dstX, dstY) of this ImageComponent3D object.     * The specified RenderedImage object must be of the same format as     * the current format of this object.     * This method can only be used if the data access mode is     * by-copy. If it is by-reference, see updateData().     *     * @param index index of the image to be modified.     * The index must be less than the depth of this ImageComponent3D object.     * @param image RenderedImage object containing the subimage.     * @param width width of the subregion.     * @param height height of the subregion.     * @param srcX starting X offset of the subregion in the specified image.     * @param srcY starting Y offset of the subregion in the specified image.     * @param dstX startin X offset of the subregion in the image     * component of this object.     * @param dstY starting Y offset of the subregion in the image     * component of this object.     *     * @exception CapabilityNotSetException if appropriate capability is     * not set and this object is part of live or compiled scene graph     *     * @exception IllegalStateException if the data access mode is     * <code>BY_REFERENCE</code>.     *     * @exception IllegalArgumentException if <code>width</code> or     * <code>height</code> of     * the subregion exceeds the dimension of the image in this object.     *     * @exception IllegalArgumentException if <code>dstX</code> < 0, or     * (<code>dstX</code> + <code>width</code>) > width of this object, or     * <code>dstY</code> < 0, or     * (<code>dstY</code> + <code>height</code>) > height of this object.     *     * @exception IllegalArgumentException if <code>srcX</code> < 0, or     * (<code>srcX</code> + <code>width</code>) > width of the RenderedImage     * object containing the subimage, or     * <code>srcY</code> < 0, or     * (<code>srcY</code> + <code>height</code>) > height of the     * RenderedImage object containing the subimage.     *     * @exception IllegalArgumentException if the specified RenderedImage     * is not compatible with the existing RenderedImage.      *     * @exception IllegalStateException if the image class is not one of:     * ImageClass.BUFFERED_IMAGE or ImageClass.RENDERED_IMAGE.     *     * @since Java 3D 1.3     */    public void setSubImage(int index, RenderedImage image,				int width, int height,                                int srcX, int srcY, int dstX, int dstY) {        if (isLiveOrCompiled() &&                !this.getCapability(ALLOW_IMAGE_WRITE)) {            throw new CapabilityNotSetException(                                J3dI18N.getString("ImageComponent3D5"));        }        if (((ImageComponent3DRetained)this.retained).isByReference()) {            throw new IllegalStateException(                                J3dI18N.getString("ImageComponent3D8"));        }        int w = ((ImageComponent3DRetained)this.retained).getWidth();        int h = ((ImageComponent3DRetained)this.retained).getHeight();        if ((srcX < 0) || (srcY < 0) ||                ((srcX + width) > w) || ((srcY + height) > h) ||            (dstX < 0) || (dstY < 0) ||                ((dstX + width) > w) || ((dstY + height) > h)) {            throw new IllegalArgumentException(                                J3dI18N.getString("ImageComponent3D7"));        }        ((ImageComponent3DRetained)this.retained).setSubImage(                        index, image, width, height, srcX, srcY, dstX, dstY);    }    /**     * Updates a particular slice of image data that is accessed by reference.     * This method calls the updateData method of the specified     * ImageComponent3D.Updater object to synchronize updates to the     * image data that is referenced by this ImageComponent3D object.     * Applications that wish to modify such data must perform all     * updates via this method.     * <p>     * The data to be modified has to be within the boundary of the     * subregion     * specified by the offset (x, y) and the dimension (width*height).     * It is illegal to modify data outside this boundary. If any     * referenced data is modified outside the updateData method, or     * any data outside the specified boundary is modified, the     * results are undefined.     * <p>     * @param updater object whose updateData callback method will be     * called to update the data referenced by this ImageComponent3D object.     * @param index index of the image to be modified.     * The index must be less than the depth of this ImageComponent3D object.     * @param x starting X offset of the subregion.     * @param y starting Y offset of the subregion.     * @param width width of the subregion.     * @param height height of the subregion.     *     * @exception CapabilityNotSetException if appropriate capability is     * not set and this object is part of live or compiled scene graph     * @exception IllegalStateException if the data access mode is     * <code>BY_COPY</code>.     * @exception IllegalArgumentException if <code>width</code> or     * <code>height</code> of     * the subregion exceeds the dimension of the image in this object.     * @exception IllegalArgumentException if <code>x</code> < 0, or     * (<code>x</code> + <code>width</code>) > width of this object, or     * <code>y</code> < 0, or     * (<code>y</code> + <code>height</code>) > height of this object.     * @exception ArrayIndexOutOfBoundsException if <code>index</code> > the     * depth of this object.     *     * @since Java 3D 1.3     */    public void updateData(Updater updater, int index,			   int x, int y,			   int width, int height) {        if (isLiveOrCompiled() &&                !this.getCapability(ALLOW_IMAGE_WRITE)) {            throw new CapabilityNotSetException(                                J3dI18N.getString("ImageComponent3D5"));        }        if (!((ImageComponent3DRetained)this.retained).isByReference()) {            throw new IllegalStateException(                                J3dI18N.getString("ImageComponent3D6"));        }        int w = ((ImageComponent3DRetained)this.retained).getWidth();        int h = ((ImageComponent3DRetained)this.retained).getHeight();        if ((x < 0) || (y < 0) || ((x + width) > w) || ((y + height) > h)) {            throw new IllegalArgumentException(                                J3dI18N.getString("ImageComponent3D7"));        }        ((ImageComponent3DRetained)this.retained).updateData(                                updater, index, x, y, width, height);    }    /**     * Creates a retained mode ImageComponent3DRetained object that this     * ImageComponent3D component object will point to.     */    void createRetained() {        this.retained = new ImageComponent3DRetained();        this.retained.setSource(this);    }      /**     * @deprecated replaced with cloneNodeComponent(boolean forceDuplicate)     */    public NodeComponent cloneNodeComponent() {	ImageComponent3DRetained rt = (ImageComponent3DRetained) retained;	ImageComponent3D img = new ImageComponent3D(rt.getFormat(),						    rt.width,						    rt.height,						    rt.depth);	// XXXX : replace by this to duplicate other attributes	/*	ImageComponent3D img = new ImageComponent3D(rt.format,	                                            rt.width,						    rt.height,						    rt.depth,						    rt.byReference,						    rt.yUp);	 */	img.duplicateNodeComponent(this);	return img;    }         /**     * Copies all node information from <code>originalNodeComponent</code> into     * the current node.  This method is called from the     * <code>duplicateNode</code> method. This routine does     * the actual duplication of all "local data" (any data defined in     * this object).      *     * @param originalNodeComponent the original node to duplicate.     * @param forceDuplicate when set to <code>true</code>, causes the     *  <code>duplicateOnCloneTree</code> flag to be ignored.  When     *  <code>false</code>, the value of each node's     *  <code>duplicateOnCloneTree</code> variable determines whether     *  NodeComponent data is duplicated or copied.     *     * @see Node#cloneTree     * @see NodeComponent#setDuplicateOnCloneTree     */    void duplicateAttributes(NodeComponent originalNodeComponent, 			     boolean forceDuplicate) {       super.duplicateAttributes(originalNodeComponent, forceDuplicate);      // TODO : Handle NioImageBuffer if its supported.      RenderedImage imgs[] = ((ImageComponent3DRetained)			      originalNodeComponent.retained).getImage();      if (imgs != null) {	  ImageComponent3DRetained rt = (ImageComponent3DRetained) retained;	  for (int i=rt.depth-1; i>=0; i--) {	      if (imgs[i] != null) {		  rt.set(i, imgs[i]);	      }	  }      }    }    /**     * The ImageComponent3D.Updater interface is used in updating image data     * that is accessed by reference from a live or compiled ImageComponent     * object.  Applications that wish to modify such data must define a     * class that implements this interface.  An instance of that class is     * then passed to the <code>updateData</code> method of the     * ImageComponent object to be modified.     *     * @since Java 3D 1.3     */    public static interface Updater {	/**	 * Updates image data that is accessed by reference.	 * This method is called by the updateData method of an	 * ImageComponent object to effect	 * safe updates to image data that	 * is referenced by that object.  Applications that wish to modify	 * such data must implement this method and perform all updates	 * within it.	 * <br>	 * NOTE: Applications should <i>not</i> call this method directly.	 *	 * @param imageComponent the ImageComponent object being updated.	 * @param index index of the image to be modified.	 * @param x starting X offset of the subregion.	 * @param y starting Y offset of the subregion.	 * @param width width of the subregion.	 * @param height height of the subregion.	 *	 * @see ImageComponent3D#updateData	 */	public void updateData(ImageComponent3D imageComponent,			       int index,			       int x, int y,			       int width, int height);    }}

⌨️ 快捷键说明

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