Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.media.j3d
Class Texture2D

    java.lang.Object
      javax.media.j3d.SceneGraphObject
          javax.media.j3d.NodeComponent
              javax.media.j3d.Texture
                  javax.media.j3d.Texture2D

    public class Texture2D

extends Texture

Texture2D is a subclass of Texture class. It extends Texture class by adding a constructor and a mutator method for setting a 2D texture image.

Each Texture2D object has the following properties:

- Magnification filter - the magnification filter function. Used when the pixel being rendered maps to an area less than or equal to one texel. In addition to the magnification filter functions defined in the base Texture class, the following values are supported:

- LINEAR_DETAIL - performs linear sampling in both the base level texture image and the detail texture image, and combines the two texture values according to the detail texture mode.

- LINEAR_DETAIL_RGB - performs linear detail for the rgb components only. The alpha component is computed using BASE_LEVEL_LINEAR filter.

- LINEAR_DETAIL_ALPHA - performs linear detail for the alpha component only. The rgb components are computed using BASE_LEVEL_LINEAR filter.

- Detail Texture Image - Detail texture image to be used when the texture magnification filter mode specifies LINEAR_DETAIL, LINEAR_DETAIL_ALPHA, or LINEAR_DETAIL_RGB; if the detail texture images is null, then the texture magnification filter mode will fall back to BASE_LEVEL_LINEAR.

- Detail Texture Mode - specifies how the texture image is combined with the detail image. The detail texture modes are as follows:

- DETAIL_ADD

T' = Ttexture + DetailFunc(LOD) * (2 * Tdetail - 1)

- DETAIL_MODULATE

T' = Ttexture * (1 + DetailFunc(LOD) * (2 * Tdetail - 1))

where Ttexture is the texture value computed from the base level texture image, and Tdetail is the texture value computed from the detail texture image.

- Detail Texture Function - specifies the function of level-of-detail used in combining the detail texture with the base level texture of this object.

- Detail Texture Level - specifies the number of levels that separate the base level image of this texture object and the detail texture image. This value is used in the linear filter calculation of the detail texture image. Note, detail texture will only be applied to the level 0 of the texture image. Hence, for detail texture to work, base level has to be set to 0.

See Also:
  `Canvas3D.queryProperties()`

Field Summary
`static int` | `ALLOW_DETAIL_TEXTURE_READ` Specifies that this Texture object allows reading its detail texture information (e.g., detail texture image, detail texture mode, detail texture function, detail texture function points count, detail texture level)
`static int` | `DETAIL_ADD` Adds the detail texture image to the level 0 image of this texture object
`static int` | `DETAIL_MODULATE` Modulates the detail texture image with the level 0 image of this texture object
`static int` | `LINEAR_DETAIL` Performs linear sampling in both the base level texture image and the detail texture image, and combines the two texture values according to the detail texture mode.
`static int` | `LINEAR_DETAIL_ALPHA` Performs linear detail for the alpha component only.
`static int` | `LINEAR_DETAIL_RGB` Performs linear detail for the rgb components only.

Fields inherited from class javax.media.j3d.Texture
`ALLOW_ANISOTROPIC_FILTER_READ, ALLOW_BOUNDARY_COLOR_READ, ALLOW_BOUNDARY_MODE_READ, ALLOW_ENABLE_READ, ALLOW_ENABLE_WRITE, ALLOW_FILTER_READ, ALLOW_FILTER4_READ, ALLOW_FORMAT_READ, ALLOW_IMAGE_READ, ALLOW_IMAGE_WRITE, ALLOW_LOD_RANGE_READ, ALLOW_LOD_RANGE_WRITE, ALLOW_MIPMAP_MODE_READ, ALLOW_SHARPEN_TEXTURE_READ, ALLOW_SIZE_READ, ALPHA, ANISOTROPIC_NONE, ANISOTROPIC_SINGLE_VALUE, BASE_LEVEL, BASE_LEVEL_LINEAR, BASE_LEVEL_POINT, CLAMP, CLAMP_TO_BOUNDARY, CLAMP_TO_EDGE, FASTEST, FILTER4, INTENSITY, LINEAR_SHARPEN, LINEAR_SHARPEN_ALPHA, LINEAR_SHARPEN_RGB, LUMINANCE, LUMINANCE_ALPHA, MULTI_LEVEL_LINEAR, MULTI_LEVEL_MIPMAP, MULTI_LEVEL_POINT, NICEST, RGB, RGBA, WRAP`

Constructor Summary
`Texture2D()` Constructs a texture object using default values.
`Texture2D(int mipMapMode, int format, int width, int height)` Constructs an empty Texture2D object with specified mipmapMode format, width and height.
`Texture2D(int mipMapMode, int format, int width, int height, int boundaryWidth)` Constructs an empty Texture2D object with specified mipMapMode, format, width, height, and boundaryWidth.

Method Summary
`NodeComponent` | `cloneNodeComponent()` Deprecated. replaced with cloneNodeComponent(boolean forceDuplicate)
`void` | `duplicateNodeComponent(NodeComponent originalNodeComponent)` Deprecated. replaced with duplicateNodeComponent( NodeComponent originalNodeComponent, boolean forceDuplicate)
`ImageComponent2D` | `getDetailImage()` Retrieves the detail texture image for this texture object.
`void` | `getDetailTextureFunc(float[] lod, float[] pts)` Copies the array of detail texture LOD function points into the specified arrays.
`void` | `getDetailTextureFunc(Point2f[] pts)` Copies the array of detail texture LOD function points including the lod values and the corresponding function values into the specified array.
`int` | `getDetailTextureFuncPointsCount()` Gets the number of points in the detail texture LOD function for this texture object.
`int` | `getDetailTextureLevel()` Retrieves the detail texture level for this texture object.
`int` | `getDetailTextureMode()` Retrieves the detail texture mode for this texture object.
`void` | `setDetailImage(ImageComponent2D detailTexture)` Sets the detail texture image for this texture object.
`void` | `setDetailTextureFunc(float[] lod, float[] pts)` sets the detail texture LOD function for this texture object.
`void` | `setDetailTextureFunc(Point2f[] pts)` sets the detail texture LOD function for this texture object.
`void` | `setDetailTextureLevel(int level)` Sets the detail texture level for this texture object.
`void` | `setDetailTextureMode(int mode)` Sets the detail texture mode for this texture object.
`void` | `setMagFilter(int magFilter)` Sets the magnification filter function.

Methods inherited from class javax.media.j3d.Texture
`getAnisotropicFilterDegree, getAnisotropicFilterMode, getBaseLevel, getBoundaryColor, getBoundaryModeS, getBoundaryModeT, getBoundaryWidth, getEnable, getFilter4Func, getFilter4FuncPointsCount, getFormat, getHeight, getImage, getImages, getLodOffset, getMagFilter, getMaximumLevel, getMaximumLOD, getMinFilter, getMinimumLOD, getMipMapMode, getSharpenTextureFunc, getSharpenTextureFunc, getSharpenTextureFuncPointsCount, getWidth, numMipMapLevels, setAnisotropicFilterDegree, setAnisotropicFilterMode, setBaseLevel, setBoundaryColor, setBoundaryColor, setBoundaryModeS, setBoundaryModeT, setEnable, setFilter4Func, setImage, setImages, setLodOffset, setLodOffset, setMaximumLevel, setMaximumLOD, setMinFilter, setMinimumLOD, setMipMapMode, setSharpenTextureFunc, setSharpenTextureFunc`

Methods inherited from class javax.media.j3d.NodeComponent
`cloneNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree`

Methods inherited from class javax.media.j3d.SceneGraphObject
`clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setUserData, updateNodeReferences`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### ALLOW_DETAIL_TEXTURE_READ

    public static final int ALLOW_DETAIL_TEXTURE_READ

  Specifies that this Texture object allows reading its detail texture information (e.g., detail texture image, detail texture mode, detail texture function, detail texture function points count, detail texture level)

  Since:
    Java 3D 1.3
  See Also:
    Constant Field Values

### LINEAR_DETAIL

    public static final int LINEAR_DETAIL

  Performs linear sampling in both the base level texture image and the detail texture image, and combines the two texture values according to the detail texture mode.

  Since:
    Java 3D 1.3
  See Also:
    `setMagFilter(int)`, Constant Field Values

### LINEAR_DETAIL_RGB

    public static final int LINEAR_DETAIL_RGB

  Performs linear detail for the rgb components only. The alpha component is computed using BASE_LEVEL_LINEAR filter.

  Since:
    Java 3D 1.3
  See Also:
    `setMagFilter(int)`, Constant Field Values

### LINEAR_DETAIL_ALPHA

    public static final int LINEAR_DETAIL_ALPHA

  Performs linear detail for the alpha component only. The rgb components are computed using BASE_LEVEL_LINEAR filter.

  Since:
    Java 3D 1.3
  See Also:
    `setMagFilter(int)`, Constant Field Values

### DETAIL_ADD

    public static final int DETAIL_ADD

  Adds the detail texture image to the level 0 image of this texture object

  Since:
    Java 3D 1.3
  See Also:
    `setDetailTextureMode(int)`, Constant Field Values

### DETAIL_MODULATE

    public static final int DETAIL_MODULATE

  Modulates the detail texture image with the level 0 image of this texture object

  Since:
    Java 3D 1.3
  See Also:
    `setDetailTextureMode(int)`, Constant Field Values

Constructor Detail

### Texture2D

    public Texture2D()

  Constructs a texture object using default values. The default values are as follows:
  detail texture image: null
  detail texture mode: DETAIL_MODULATE
  detail texture func: null
  detail texture level: 2

  Note that the default constructor creates a texture object with a width and height of 0 and is, therefore, not useful.

### Texture2D

    public Texture2D(int mipMapMode,
                     int format,
                     int width,
                     int height)

  Constructs an empty Texture2D object with specified mipmapMode format, width and height. Image at base level must be set by the application using 'setImage' method. If mipmapMode is set to MULTI_LEVEL_MIPMAP, images for base level through maximum level must be set.

  Parameters:
    `mipMapMode` - type of mipmap for this Texture: One of BASE_LEVEL, MULTI_LEVEL_MIPMAP.
    `format` - data format of Textures saved in this object. One of INTENSITY, LUMINANCE, ALPHA, LUMINANCE_ALPHA, RGB, RGBA.
    `width` - width of image at level 0. Must be power of 2.
    `height` - height of image at level 0. Must be power of 2.
  Throws:
    `java.lang.IllegalArgumentException` - if width or height are NOT power of 2 OR invalid format/mipmapMode is specified.

### Texture2D

    public Texture2D(int mipMapMode,
                     int format,
                     int width,
                     int height,
                     int boundaryWidth)

  Constructs an empty Texture2D object with specified mipMapMode, format, width, height, and boundaryWidth. Defaults are used for all other parameters. If `mipMapMode` is set to `BASE_LEVEL`, then the image at level 0 must be set by the application (using either the `setImage` or `setImages` method). If `mipMapMode` is set to `MULTI_LEVEL_MIPMAP`, then images for levels Base Level through Maximum Level must be set.

  Parameters:
    `mipMapMode` - type of mipmap for this Texture: one of BASE_LEVEL, MULTI_LEVEL_MIPMAP
    `format` - data format of Textures saved in this object. One of INTENSITY, LUMINANCE, ALPHA, LUMINANCE_ALPHA, RGB, RGBA
    `width` - width of image at level 0. Must be power of 2. This does not include the width of the boundary.
    `height` - height of image at level 0. Must be power of 2. This does not include the width of the boundary.
    `boundaryWidth` - width of the boundary.
  Throws:
    `java.lang.IllegalArgumentException` - if width or height are not a power of 2, if an invalid format or mipMapMode is specified, or if the boundaryWidth < 0
  Since:
    Java 3D 1.3

Method Detail

### setMagFilter

    public void setMagFilter(int magFilter)

  Sets the magnification filter function. This function is used when the pixel being rendered maps to an area less than or equal to one texel.

  Overrides:
    `setMagFilter` in class `Texture`
  Parameters:
    `magFilter` - the magnification filter, one of: FASTEST, NICEST, BASE_LEVEL_POINT, BASE_LEVEL_LINEAR, LINEAR_DETAIL, LINEAR_DETAIL_RGB, LINEAR_DETAIL_ALPHA, LINEAR_SHARPEN, LINEAR_SHARPEN_RGB, LINEAR_SHARPEN_ALPHA, or FILTER4.
  Throws:
    `RestrictedAccessException` - if the method is called when this object is part of live or compiled scene graph.
    `java.lang.IllegalArgumentException` - if `minFilter` is a value other than `FASTEST`, `NICEST`, `BASE_LEVEL_POINT`, `BASE_LEVEL_LINEAR`, `LINEAR_DETAIL`, `LINEAR_DETAIL_RGB`, `LINEAR_DETAIL_ALPHA`, `LINEAR_SHARPEN`, `LINEAR_SHARPEN_RGB`, `LINEAR_SHARPEN_ALPHA`, or `FILTER4`.
  Since:
    Java 3D 1.3
  See Also:
    `Canvas3D.queryProperties()`

### setDetailImage

    public void setDetailImage(ImageComponent2D detailTexture)

  Sets the detail texture image for this texture object.

  Parameters:
    `detailTexture` - ImageComponent2D object containing the detail texture image.
  Throws:
    `RestrictedAccessException` - if the method is called when this object is part of live or compiled scene graph.
  Since:
    Java 3D 1.3
  See Also:
    `Canvas3D.queryProperties()`

### getDetailImage

    public ImageComponent2D getDetailImage()

  Retrieves the detail texture image for this texture object.

  Returns:
    ImageComponent2D object containing the detail texture image.
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
  Since:
    Java 3D 1.3

### setDetailTextureMode

    public void setDetailTextureMode(int mode)

  Sets the detail texture mode for this texture object.

  Parameters:
    `mode` - detail texture mode. One of: DETAIL_ADD or DETAIL_MODULATE
  Throws:
    `java.lang.IllegalArgumentException` - if `mode` is a value other than `DETAIL_ADD`, or `DETAIL_MODULATE`
    `RestrictedAccessException` - if the method is called when this object is part of live or compiled scene graph.
  Since:
    Java 3D 1.3
  See Also:
    `Canvas3D.queryProperties()`

### getDetailTextureMode

    public int getDetailTextureMode()

  Retrieves the detail texture mode for this texture object.

  Returns:
    the detail texture mode.
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
  Since:
    Java 3D 1.3

### setDetailTextureLevel

    public void setDetailTextureLevel(int level)

  Sets the detail texture level for this texture object.

  Parameters:
    `level` - the detail texture level.
  Throws:
    `java.lang.IllegalArgumentException` - if `level` < 0
    `RestrictedAccessException` - if the method is called when this object is part of live or compiled scene graph.
  Since:
    Java 3D 1.3
  See Also:
    `Canvas3D.queryProperties()`

### getDetailTextureLevel

    public int getDetailTextureLevel()

  Retrieves the detail texture level for this texture object.

  Returns:
    the detail texture level.
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
  Since:
    Java 3D 1.3

### setDetailTextureFunc

    public void setDetailTextureFunc(float[] lod,
                                     float[] pts)

  sets the detail texture LOD function for this texture object.

  Parameters:
    `lod` - array containing the level-of-detail values.
    `pts` - array containing the function values for the corresponding level-of-detail values.
  Throws:
    `java.lang.IllegalStateException` - if the length of `lod` does not match the length of `pts`
    `RestrictedAccessException` - if the method is called when this object is part of live or compiled scene graph.
  Since:
    Java 3D 1.3
  See Also:
    `Canvas3D.queryProperties()`

### setDetailTextureFunc

    public void setDetailTextureFunc(Point2f[] pts)

  sets the detail texture LOD function for this texture object. The Point2f x,y values are defined as follows: x is the lod value, y is the corresponding function value.

  Parameters:
    `pts` - array of Point2f containing the lod as well as the corresponding function value.
  Throws:
    `RestrictedAccessException` - if the method is called when this object is part of live or compiled scene graph.
  Since:
    Java 3D 1.3
  See Also:
    `Canvas3D.queryProperties()`

### getDetailTextureFuncPointsCount

    public int getDetailTextureFuncPointsCount()

  Gets the number of points in the detail texture LOD function for this texture object.

  Returns:
    the number of points in the detail texture LOD function.
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
  Since:
    Java 3D 1.3

### getDetailTextureFunc

    public void getDetailTextureFunc(float[] lod,
                                     float[] pts)

  Copies the array of detail texture LOD function points into the specified arrays. The arrays must be large enough to hold all the points.

  Parameters:
    `lod` - the array to receive the level-of-detail values.
    `pts` - the array to receive the function values for the corresponding level-of-detail values.
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
  Since:
    Java 3D 1.3

### getDetailTextureFunc

    public void getDetailTextureFunc(Point2f[] pts)

  Copies the array of detail texture LOD function points including the lod values and the corresponding function values into the specified array. The array must be large enough to hold all the points. The individual array elements must be allocated by the caller as well.

  Parameters:
    `pts` - the array to receive the detail texture LOD function points
  Throws:
    `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
  Since:
    Java 3D 1.3

### cloneNodeComponent

    public NodeComponent cloneNodeComponent()

  Deprecated. replaced with cloneNodeComponent(boolean forceDuplicate)

  Overrides:
    `cloneNodeComponent` in class `NodeComponent`

### duplicateNodeComponent

    public void duplicateNodeComponent(NodeComponent originalNodeComponent)

  Deprecated. replaced with duplicateNodeComponent( NodeComponent originalNodeComponent, boolean forceDuplicate)

  NOTE: Applications should not call this method directly. It should only be called by the cloneNode method.

  Overrides:
    `duplicateNodeComponent` in class `NodeComponent`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD