Aviatrix3D
2.1.0

org.j3d.aviatrix3d
Class ByteTextureComponent3D

java.lang.Object
  extended by org.j3d.aviatrix3d.SceneGraphObject
      extended by org.j3d.aviatrix3d.NodeComponent
          extended by org.j3d.aviatrix3d.TextureComponent
              extended by org.j3d.aviatrix3d.TextureComponent3D
                  extended by org.j3d.aviatrix3d.ByteTextureComponent3D
All Implemented Interfaces:
TextureSource

public class ByteTextureComponent3D
extends TextureComponent3D

A texture component that wraps a 3D image described as a collection of bytes.

Byte array format
Images are presented in terms of bytes. Per pixel format is described by the format parameter that can be found on the various method calls. Bytes are laid down in a single contiguous array for 3D images in the format of width, height, depth. That is, all the bytes for the first row of the first image, then the second row of the first image, etc until the first depth layer is complete (depth 0), then the second image starts etc. Unless the video hardware supports non-power-of-2 textures, the width and height must be powers of 2 and the depth must be an even number.

Version:
$Revision: 1.15 $
Author:
Justin Couch

Field Summary
 
Fields inherited from class org.j3d.aviatrix3d.TextureComponent3D
depth, height
 
Fields inherited from class org.j3d.aviatrix3d.TextureComponent
copyBuffer, data, format, invertY, numLevels, size, type, TYPE_BYTE, TYPE_INT, width
 
Fields inherited from class org.j3d.aviatrix3d.NodeComponent
lastParent, liveCount, parentList
 
Fields inherited from class org.j3d.aviatrix3d.SceneGraphObject
alive, LISTENER_SET_TIMING_ERR_PROP, updateHandler
 
Fields inherited from interface org.j3d.aviatrix3d.TextureSource
FORMAT_BGR, FORMAT_BGRA, FORMAT_INTENSITY_ALPHA, FORMAT_LUMINANCE_ALPHA, FORMAT_RGB, FORMAT_RGBA, FORMAT_SINGLE_COMPONENT
 
Constructor Summary
ByteTextureComponent3D()
          Constructs an image with default values.
ByteTextureComponent3D(boolean yUp)
          Constructs an image with default values.
ByteTextureComponent3D(int format, int width, int height, int depth, byte[] srcPixels)
          Constructs an 3D texture component using the specified format, width, height and a single (BASE_LEVEL) mip-map image.
ByteTextureComponent3D(int format, int width, int height, int depth, byte[][] srcPixels, int numLevels)
          Constructs an 3D texture component using the specified format, width, height and one or more mip-map levels.
ByteTextureComponent3D(int format, int width, int height, int depth, byte[][] srcPixels, int numLevels, boolean yUp)
          Constructs an Image3D using the specified format, width, height and rendered image.
 
Method Summary
 void clearLocalData()
          Clear local data stored in this node.
protected  java.nio.ByteBuffer convertImage(int level)
          Convenience method to convert a buffered image into a NIO array of the corresponding type.
 int getDepth()
          Get the current depth of the image component.
 void updateSubImage(int destX, int destY, int destZ, int width, int height, int depth, int level, byte[] img)
          Update a sub-section of the image data with the new pixel values.
 
Methods inherited from class org.j3d.aviatrix3d.TextureComponent3D
getHeight
 
Methods inherited from class org.j3d.aviatrix3d.TextureComponent
addUpdateListener, bytesPerPixel, checkCopyBufferSize, clearData, getData, getFormat, getNumLevels, getWidth, isYUp, removeUpdateListener, sendTextureUpdate
 
Methods inherited from class org.j3d.aviatrix3d.NodeComponent
addParent, getParents, numParents, removeParent
 
Methods inherited from class org.j3d.aviatrix3d.SceneGraphObject
checkForCyclicChild, checkForCyclicParent, dataChanged, getAppUpdateWriteTimingMessage, getBoundsWriteTimingMessage, getDataWriteTimingMessage, getUserData, isLive, setLive, setUpdateHandler, setUserData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ByteTextureComponent3D

public ByteTextureComponent3D()
Constructs an image with default values.


ByteTextureComponent3D

public ByteTextureComponent3D(boolean yUp)
Constructs an image with default values.

Parameters:
yUp - Change the image aroud the Y axis if needed

ByteTextureComponent3D

public ByteTextureComponent3D(int format,
                              int width,
                              int height,
                              int depth,
                              byte[] srcPixels)
Constructs an 3D texture component using the specified format, width, height and a single (BASE_LEVEL) mip-map image.

Parameters:
format - The image format. RGB, RGBA currently
width - The width of the image
height - The height of the image
srcPixels - The image data. See class header for format info.
Throws:
java.lang.IllegalArgumentException - Formats don't match

ByteTextureComponent3D

public ByteTextureComponent3D(int format,
                              int width,
                              int height,
                              int depth,
                              byte[][] srcPixels,
                              int numLevels)
Constructs an 3D texture component using the specified format, width, height and one or more mip-map levels.

Parameters:
format - The image format. RGB, RGBA currently
width - The width of the image
height - The height of the image
srcPixels - The image data
Throws:
java.lang.IllegalArgumentException - Formats don't match

ByteTextureComponent3D

public ByteTextureComponent3D(int format,
                              int width,
                              int height,
                              int depth,
                              byte[][] srcPixels,
                              int numLevels,
                              boolean yUp)
Constructs an Image3D using the specified format, width, height and rendered image.

Parameters:
format - The image format. RGB, RGBA currently
width - The width of the image
height - The height of the image
srcPixels - The image data
yUp - Change the image aroud the Y axis if needed
Throws:
java.lang.IllegalArgumentException - Formats don't match
Method Detail

updateSubImage

public void updateSubImage(int destX,
                           int destY,
                           int destZ,
                           int width,
                           int height,
                           int depth,
                           int level,
                           byte[] img)
                    throws InvalidWriteTimingException
Update a sub-section of the image data with the new pixel values. Not implemented yet.

Parameters:
destX - The starting X offset in the existing image space
destY - The starting Y offset in the existing image space
destZ - The starting Z offset in the existing image space
width - The width of the section to replace
height - The height of the section to replace
depth - The height of the section to replace
level - The mipmap level to update
img - The image to take data from
Throws:
InvalidWriteTimingException - An attempt was made to write outside of the NodeUpdateListener data changed callback method

getDepth

public int getDepth()
Get the current depth of the image component.

Overrides:
getDepth in class TextureComponent3D
Returns:
A value >= 0

clearLocalData

public void clearLocalData()
Clear local data stored in this node. Only data needed for OpenGL calls will be retained;

Specified by:
clearLocalData in class TextureComponent

convertImage

protected java.nio.ByteBuffer convertImage(int level)
Convenience method to convert a buffered image into a NIO array of the corresponding type. Images typically need to be swapped when doing this by the Y axis is in the opposite direction to the one used by OpenGL.

Specified by:
convertImage in class TextureComponent
Parameters:
level - Which image level needs to be converted
Returns:
an appropriate array type - either IntBuffer or ByteBuffer

Aviatrix3D
2.1.0

Latest Info from http://aviatrix3d.j3d.org/
Copyright © 2003 - 2009 j3d.org