javax.media.j3d

## Class Texture

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

- Direct Known Subclasses:
    Texture2D, Texture3D, TextureCubeMap

      public abstract class Texture
      extends NodeComponent

  The Texture object is a component object of an Appearance object that defines the texture properties used when texture mapping is enabled. The Texture object is an abstract class and all texture objects must be created as either a Texture2D object or a Texture3D object.

  Each Texture object has the following properties:

  - Boundary color - the texture boundary color. The texture boundary color is used when the boundaryModeS and boundaryModeT parameters are set to CLAMP or CLAMP_TO_BOUNDARY and if the texture boundary is not specified.

  - Boundary Width - the texture boundary width, which must be 0 or 1. If the texture boundary width is 1, then all images for all mipmap levels will include a border. The actual texture image for level 0, for example, will be of dimension (width + 2*boundaryWidth) * (height + 2*boundaryWidth). The boundary texels will be used when linear filtering is to be applied.

  - Boundary ModeS and Boundary ModeT - the boundary mode for the S and T coordinates, respectively. The boundary modes are as follows:

  - CLAMP - clamps texture coordinates to be in the range [0,1]. Texture boundary texels or the constant boundary color if boundary width is 0 will be used for U,V values that fall outside this range.

  - WRAP - repeats the texture by wrapping texture coordinates that are outside the range [0,1]. Only the fractional portion of the texture coordinates is used. The integer portion is discarded

  - CLAMP_TO_EDGE - clamps texture coordinates such that filtering will not sample a texture boundary texel. Texels at the edge of the texture will be used instead.

  - CLAMP_TO_BOUNDARY - clamps texture coordinates such that filtering will sample only texture boundary texels, that is, it will never get some samples from the boundary and some from the edge. This will ensure clean unfiltered boundaries. If the texture does not have a boundary, that is the boundary width is equal to 0, then the constant boundary color will be used.
  - Image - an image or an array of images for all the mipmap levels. If only one image is provided, the MIPmap mode must be set to BASE_LEVEL.

  - Magnification filter - the magnification filter function. Used when the pixel being rendered maps to an area less than or equal to one texel. The magnification filter functions are as follows:

  - FASTEST - uses the fastest available method for processing geometry.

  - NICEST - uses the nicest available method for processing geometry.

  - BASE_LEVEL_POINT - selects the nearest texel in the base level texture image.

  - BASE_LEVEL_LINEAR - performs a bilinear interpolation on the four nearest texels in the base level texture image. The texture value T' is computed as follows:

  i0 = trunc(u - 0.5)

  j0 = trunc(v - 0.5)

  i1 = i0 + 1

  j1 = j0 + 1

  a = frac(u - 0.5)

  b = frac(v - 0.5)

  T' = (1-a)*(1-b)*Ti0j0 + a*(1-b)*Ti1j0 + (1-a)*b*Ti0j1 + a*b*Ti1j1

  - LINEAR_SHARPEN - sharpens the resulting image by extrapolating from the base level plus one image to the base level image of this texture object.

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

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

  - FILTER4 - applies an application-supplied weight function on the nearest 4x4 texels in the base level texture image. The texture value T' is computed as follows:

  i1 = trunc(u - 0.5) | i2 = i1 + 1 | i3 = i2 + 1 | i0 = i1 - 1
  j1 = trunc(v - 0.5) | j3 = j2 + 1 | j2 = j1 + 1 | j0 = j1 - 1
  a = frac(u - 0.5)
  b = frac(v - 0.5)

  f(x) : filter4 function where 0<=x<=2

  T' = f(1+a) * f(1+b) * Ti0j0 + f(a) * f(1+b) * Ti1j0 + f(1-a) * f(1+b) * Ti2j0 + f(2-a) * f(1+b) * Ti3j0 +
  f(1+a) * f(b) * Ti0j1 + f(a) * f(b) * Ti1j1 + f(1-a) * f(b) * Ti2j1 + f(2-a) * f(b) * Ti3j1 +
  f(1+a) * f(1-b) * Ti0j2 + f(a) * f(1-b) * Ti1j2 + f(1-a) * f(1-b) * Ti2j2 + f(2-a) * f(1-b) * Ti3j2 +
  f(1+a) * f(2-b) * Ti0j3 + f(a) * f(2-b) * Ti1j3 + f(1-a) * f(2-b) * Ti2j3 + f(2-a) * f(2-b) * Ti3j3

  - Minification filter - the minification filter function. Used when the pixel being rendered maps to an area greater than one texel. The minifaction filter functions are as follows:

  - FASTEST - uses the fastest available method for processing geometry.

  - NICEST - uses the nicest available method for processing geometry.

  - BASE_LEVEL_POINT - selects the nearest level in the base level texture map.

  - BASE_LEVEL_LINEAR - performs a bilinear interpolation on the four nearest texels in the base level texture map.

  - MULTI_LEVEL_POINT - selects the nearest texel in the nearest mipmap.

  - MULTI_LEVEL_LINEAR - performs trilinear interpolation of texels between four texels each from the two nearest mipmap levels.

  - FILTER4 - applies an application-supplied weight function on the nearest 4x4 texels in the base level texture image.

  - MIPmap mode - the mode used for texture mapping for this object. The mode is one of the following:

  - BASE_LEVEL - indicates that this Texture object only has a base-level image. If multiple levels are needed, they will be implicitly computed.

  - MULTI_LEVEL_MIPMAP - indicates that this Texture object has multiple images. If MIPmap mode is set to MULTI_LEVEL_MIPMAP, images for Base Level through Max Level must be set.

  - Format - the data format. The format is one of the following:

  - INTENSITY - the texture image contains only texture values.

  - LUMINANCE - the texture image contains only luminance values.

  - ALPHA - the texture image contains only alpha values.

  - LUMINANCE_ALPHA - the texture image contains both luminance and alpha values.

  - RGB - the texture image contains red, green, and blue values.

  - RGBA - the texture image contains red, green, blue, and alpha values.

  - Base Level - specifies the mipmap level to be used when filter specifies BASE_LEVEL_POINT or BASE_LEVEL_LINEAR.

  - Maximum Level - specifies the maximum level of image that needs to be defined for this texture to be valid. Note, for this texture to be valid, images for Base Level through Maximum Level have to be defined.

  - Minimum LOD - specifies the minimum of the LOD range. LOD smaller than this value will be clamped to this value.

  - Maximum LOD - specifies the maximum of the LOD range. LOD larger than this value will be clamped to this value.

  - LOD offset - specifies the offset to be used in the LOD calculation to compensate for under or over sampled texture images.
  - Anisotropic Mode - defines how anisotropic filter is applied for this texture object. The anisotropic modes are as follows:

  - ANISOTROPIC_NONE - no anisotropic filtering.

  - ANISOTROPIC_SINGLE_VALUE - applies the degree of anisotropic filter in both the minification and magnification filters.

  - Anisotropic Filter Degree - controls the degree of anisotropy. This property applies to both minification and magnification filtering. If it is equal to 1.0, then an isotropic filtering as specified in the minification or magnification filter will be used. If it is greater than 1.0, and the anisotropic mode is equal to ANISOTROPIC_SINGLE_VALUE, then the degree of anisotropy will also be applied in the filtering.

  - Sharpen Texture Function - specifies the function of level-of-detail used in combining the texture value computed from the base level image and the texture value computed from the base level plus one image. The final texture value is computed as follows:

  T' = ((1 + SharpenFunc(LOD)) * TBaseLevel) - (SharpenFunc(LOD) * TBaseLevel+1)

  - Filter4 Function - specifies the function to be applied to the nearest 4x4 texels. This property includes samples of the filter function f(x), 0<=x<=2. The number of function values supplied has to be equal to 2m + 1 for some integer value of m greater than or equal to 4.

  Note that as of Java 3D 1.5, the texture width and height are no longer required to be an exact power of two. However, not all graphics devices supports non-power-of-two textures. If non-power-of-two texture mapping is unsupported on a particular Canvas3D, textures with a width or height that are not an exact power of two are ignored for that canvas.

  See Also:
    `Canvas3D.queryProperties()`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `ALLOW_ANISOTROPIC_FILTER_READ` Specifies that this Texture object allows reading its anistropic filter information (e.g., anisotropic mode, anisotropic filter)
    `static int` | `ALLOW_BOUNDARY_COLOR_READ` Specifies that this Texture object allows reading its boundary color information.
    `static int` | `ALLOW_BOUNDARY_MODE_READ` Specifies that this Texture object allows reading its boundary mode information.
    `static int` | `ALLOW_ENABLE_READ` Specifies that this Texture object allows reading its enable flag.
    `static int` | `ALLOW_ENABLE_WRITE` Specifies that this Texture object allows writing its enable flag.
    `static int` | `ALLOW_FILTER_READ` Specifies that this Texture object allows reading its filter information.
    `static int` | `ALLOW_FILTER4_READ` Specifies that this Texture object allows reading its filter4 function information.
    `static int` | `ALLOW_FORMAT_READ` Specifies that this Texture object allows reading its format information.
    `static int` | `ALLOW_IMAGE_READ` Specifies that this Texture object allows reading its image component information.
    `static int` | `ALLOW_IMAGE_WRITE` Specifies that this Texture object allows writing its image component information.
    `static int` | `ALLOW_LOD_RANGE_READ` Specifies that this Texture object allows reading its LOD range information (e.g., base level, maximum level, minimum lod, maximum lod, lod offset)
    `static int` | `ALLOW_LOD_RANGE_WRITE` Specifies that this Texture object allows writing its LOD range information (e.g., base level, maximum level, minimum lod, maximum lod, lod offset)
    `static int` | `ALLOW_MIPMAP_MODE_READ` Specifies that this Texture object allows reading its mipmap mode information.
    `static int` | `ALLOW_SHARPEN_TEXTURE_READ` Specifies that this Texture object allows reading its sharpen texture function information.
    `static int` | `ALLOW_SIZE_READ` Specifies that this Texture object allows reading its size information (e.g., width, height, number of mipmap levels, boundary width).
    `static int` | `ALPHA` Specifies Texture contains only Alpha values.
    `static int` | `ANISOTROPIC_NONE` No anisotropic filter.
    `static int` | `ANISOTROPIC_SINGLE_VALUE` Uses the degree of anisotropy in both the minification and magnification filters.
    `static int` | `BASE_LEVEL` Indicates that Texture object only has one level.
    `static int` | `BASE_LEVEL_LINEAR` Performs bilinear interpolation on the four nearest texels in level 0 texture map.
    `static int` | `BASE_LEVEL_POINT` Select the nearest texel in level 0 texture map.
    `static int` | `CLAMP` Clamps texture coordinates to be in the range [0, 1].
    `static int` | `CLAMP_TO_BOUNDARY` Clamps texture coordinates such that filtering will sample only texture boundary texels.
    `static int` | `CLAMP_TO_EDGE` Clamps texture coordinates such that filtering will not sample a texture boundary texel.
    `static int` | `FASTEST` Uses the fastest available method for processing geometry.
    `static int` | `FILTER4` Applies an application-supplied weight function on the nearest 4x4 texels in the base level texture image.
    `static int` | `INTENSITY` Specifies Texture contains only Intensity values.
    `static int` | `LINEAR_SHARPEN` Sharpens the resulting image by extrapolating from the base level plus one image to the base level image of this texture object.
    `static int` | `LINEAR_SHARPEN_ALPHA` Performs linear sharpen filter for the alpha component only.
    `static int` | `LINEAR_SHARPEN_RGB` Performs linear sharpen filter for the rgb components only.
    `static int` | `LUMINANCE` Specifies Texture contains only luminance values.
    `static int` | `LUMINANCE_ALPHA` Specifies Texture contains Luminance and Alpha values.
    `static int` | `MULTI_LEVEL_LINEAR` Performs tri-linear interpolation of texels between four texels each from two nearest mipmap levels.
    `static int` | `MULTI_LEVEL_MIPMAP` Indicates that this Texture object has multiple images, one for each mipmap level.
    `static int` | `MULTI_LEVEL_POINT` Selects the nearest texel in the nearest mipmap.
    `static int` | `NICEST` Uses the nicest available method for processing geometry.
    `static int` | `RGB` Specifies Texture contains Red, Green and Blue color values.
    `static int` | `RGBA` Specifies Texture contains Red, Green, Blue color values and Alpha value.
    `static int` | `WRAP` Repeats the texture by wrapping texture coordinates that are outside the range [0,1].

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Texture()` Constructs a Texture object with default parameters.
    `Texture(int mipMapMode, int format, int width, int height)` Constructs an empty Texture object with specified mipMapMode, format, width and height.
    `Texture(int mipMapMode, int format, int width, int height, int boundaryWidth)` Constructs an empty Texture object with specified mipMapMode, format, width, height, and boundaryWidth.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `float` | `getAnisotropicFilterDegree()` Retrieves the anisotropic filter degree for this texture object.
    `int` | `getAnisotropicFilterMode()` Retrieves the anisotropic filter mode for this texture object.
    `int` | `getBaseLevel()` Retrieves the base level for this texture object.
    `void` | `getBoundaryColor(Color4f boundaryColor)` Retrieves the texture boundary color for this texture object.
    `int` | `getBoundaryModeS()` Retrieves the boundary mode for the S coordinate.
    `int` | `getBoundaryModeT()` Retrieves the boundary mode for the T coordinate.
    `int` | `getBoundaryWidth()` Retrieves the width of the boundary of this Texture object.
    `boolean` | `getEnable()` Retrieves the state of the texture enable flag.
    `void` | `getFilter4Func(float[] weights)` Copies the array of filter4 function values into the specified array.
    `int` | `getFilter4FuncPointsCount()` Retrieves the number of filter4 function values for this texture object.
    `int` | `getFormat()` Retrieves the format of this Texture object.
    `int` | `getHeight()` Retrieves the height of this Texture object.
    `ImageComponent` | `getImage(int level)` Retrieves the image for a specified mipmap level.
    `ImageComponent[]` | `getImages()` Retrieves the array of images for all mipmap levels.
    `void` | `getLodOffset(Tuple3f offset)` Retrieves the LOD offset for this texture object.
    `int` | `getMagFilter()` Retrieves the magnification filter.
    `int` | `getMaximumLevel()` Retrieves the maximum level for this texture object.
    `float` | `getMaximumLOD()` Retrieves the maximum level-of-detail for this texture object.
    `int` | `getMinFilter()` Retrieves the minification filter.
    `float` | `getMinimumLOD()` Retrieves the minimum level-of-detail for this texture object.
    `int` | `getMipMapMode()` Retrieves current mipmap mode.
    `void` | `getSharpenTextureFunc(float[] lod, float[] pts)` Copies the array of sharpen texture LOD function points into the specified arrays.
    `void` | `getSharpenTextureFunc(Point2f[] pts)` Copies the array of sharpen texture LOD function points including the lod values and the corresponding function values into the specified array.
    `int` | `getSharpenTextureFuncPointsCount()` Gets the number of points in the sharpen texture LOD function for this texture object.
    `int` | `getWidth()` Retrieves the width of this Texture object.
    `int` | `numMipMapLevels()` Retrieves the number of mipmap levels needed for this Texture object.
    `void` | `setAnisotropicFilterDegree(float degree)` Specifies the degree of anisotropy to be used when the anisotropic filter mode specifies ANISOTROPIC_SINGLE_VALUE.
    `void` | `setAnisotropicFilterMode(int mode)` Specifies the anisotropic filter mode for this texture object.
    `void` | `setBaseLevel(int baseLevel)` Specifies the base level for this texture object.
    `void` | `setBoundaryColor(Color4f boundaryColor)` Sets the texture boundary color for this texture object.
    `void` | `setBoundaryColor(float r, float g, float b, float a)` Sets the texture boundary color for this texture object.
    `void` | `setBoundaryModeS(int boundaryModeS)` Sets the boundary mode for the S coordinate in this texture object.
    `void` | `setBoundaryModeT(int boundaryModeT)` Sets the boundary mode for the T coordinate in this texture object.
    `void` | `setEnable(boolean state)` Enables or disables texture mapping for this appearance component object.
    `void` | `setFilter4Func(float[] weights)` sets the filter4 function for this texture object.
    `void` | `setImage(int level, ImageComponent image)` Sets the image for a specified mipmap level.
    `void` | `setImages(ImageComponent[] images)` Sets the array of images for all mipmap levels.
    `void` | `setLodOffset(float s, float t, float r)` Specifies the LOD offset for this texture object.
    `void` | `setLodOffset(Tuple3f offset)` Specifies the LOD offset for this texture object.
    `void` | `setMagFilter(int magFilter)` Sets the magnification filter function.
    `void` | `setMaximumLevel(int maximumLevel)` Specifies the maximum level for this texture object.
    `void` | `setMaximumLOD(float maximumLod)` Specifies the maximum level-of-detail for this texture object.
    `void` | `setMinFilter(int minFilter)` Sets the minification filter function.
    `void` | `setMinimumLOD(float minimumLod)` Specifies the minimum level-of-detail for this texture object.
    `void` | `setMipMapMode(int mipMapMode)` Sets mipmap mode for texture mapping for this texture object.
    `void` | `setSharpenTextureFunc(float[] lod, float[] pts)` sets the sharpen texture LOD function for this texture object.
    `void` | `setSharpenTextureFunc(Point2f[] pts)` sets the sharpen texture LOD function for this texture object.

    - ### Methods inherited from class javax.media.j3d.NodeComponent

      `cloneNodeComponent, cloneNodeComponent, duplicateNodeComponent, duplicateNodeComponent, getDuplicateOnCloneTree, setDuplicateOnCloneTree`

    - ### Methods inherited from class javax.media.j3d.SceneGraphObject

      `clearCapability, clearCapabilityIsFrequent, duplicateSceneGraphObject, getCapability, getCapabilityIsFrequent, getName, getUserData, isCompiled, isLive, setCapability, setCapabilityIsFrequent, setName, setUserData, toString, updateNodeReferences`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### ALLOW_ENABLE_READ

          public static final int ALLOW_ENABLE_READ

      Specifies that this Texture object allows reading its enable flag.
      See Also:
        Constant Field Values

    - #### ALLOW_ENABLE_WRITE

          public static final int ALLOW_ENABLE_WRITE

      Specifies that this Texture object allows writing its enable flag.
      See Also:
        Constant Field Values

    - #### ALLOW_BOUNDARY_MODE_READ

          public static final int ALLOW_BOUNDARY_MODE_READ

      Specifies that this Texture object allows reading its boundary mode information.
      See Also:
        Constant Field Values

    - #### ALLOW_FILTER_READ

          public static final int ALLOW_FILTER_READ

      Specifies that this Texture object allows reading its filter information.
      See Also:
        Constant Field Values

    - #### ALLOW_IMAGE_READ

          public static final int ALLOW_IMAGE_READ

      Specifies that this Texture object allows reading its image component information.
      See Also:
        Constant Field Values

    - #### ALLOW_IMAGE_WRITE

          public static final int ALLOW_IMAGE_WRITE

      Specifies that this Texture object allows writing its image component information.
      Since:
        Java 3D 1.2
      See Also:
        Constant Field Values

    - #### ALLOW_FORMAT_READ

          public static final int ALLOW_FORMAT_READ

      Specifies that this Texture object allows reading its format information.
      Since:
        Java 3D 1.2
      See Also:
        Constant Field Values

    - #### ALLOW_SIZE_READ

          public static final int ALLOW_SIZE_READ

      Specifies that this Texture object allows reading its size information (e.g., width, height, number of mipmap levels, boundary width).
      Since:
        Java 3D 1.2
      See Also:
        Constant Field Values

    - #### ALLOW_MIPMAP_MODE_READ

          public static final int ALLOW_MIPMAP_MODE_READ

      Specifies that this Texture object allows reading its mipmap mode information.
      See Also:
        Constant Field Values

    - #### ALLOW_BOUNDARY_COLOR_READ

          public static final int ALLOW_BOUNDARY_COLOR_READ

      Specifies that this Texture object allows reading its boundary color information.
      See Also:
        Constant Field Values

    - #### ALLOW_LOD_RANGE_READ

          public static final int ALLOW_LOD_RANGE_READ

      Specifies that this Texture object allows reading its LOD range information (e.g., base level, maximum level, minimum lod, maximum lod, lod offset)
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_LOD_RANGE_WRITE

          public static final int ALLOW_LOD_RANGE_WRITE

      Specifies that this Texture object allows writing its LOD range information (e.g., base level, maximum level, minimum lod, maximum lod, lod offset)
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_ANISOTROPIC_FILTER_READ

          public static final int ALLOW_ANISOTROPIC_FILTER_READ

      Specifies that this Texture object allows reading its anistropic filter information (e.g., anisotropic mode, anisotropic filter)
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_SHARPEN_TEXTURE_READ

          public static final int ALLOW_SHARPEN_TEXTURE_READ

      Specifies that this Texture object allows reading its sharpen texture function information.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### ALLOW_FILTER4_READ

          public static final int ALLOW_FILTER4_READ

      Specifies that this Texture object allows reading its filter4 function information.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### FASTEST

          public static final int FASTEST

      Uses the fastest available method for processing geometry. This value can be used as a parameter to setMinFilter and setMagFilter.
      See Also:
        `setMinFilter(int)`, `setMagFilter(int)`, Constant Field Values

    - #### NICEST

          public static final int NICEST

      Uses the nicest available method for processing geometry. This value can be used as a parameter to setMinFilter and setMagFilter.
      See Also:
        `setMinFilter(int)`, `setMagFilter(int)`, Constant Field Values

    - #### BASE_LEVEL_POINT

          public static final int BASE_LEVEL_POINT

      Select the nearest texel in level 0 texture map. Maps to NEAREST.
      See Also:
        `setMinFilter(int)`, `setMagFilter(int)`, Constant Field Values

    - #### BASE_LEVEL_LINEAR

          public static final int BASE_LEVEL_LINEAR

      Performs bilinear interpolation on the four nearest texels in level 0 texture map. Maps to LINEAR.
      See Also:
        `setMinFilter(int)`, `setMagFilter(int)`, Constant Field Values

    - #### MULTI_LEVEL_POINT

          public static final int MULTI_LEVEL_POINT

      Selects the nearest texel in the nearest mipmap. Maps to NEAREST_MIPMAP_NEAREST.
      See Also:
        `setMinFilter(int)`, Constant Field Values

    - #### MULTI_LEVEL_LINEAR

          public static final int MULTI_LEVEL_LINEAR

      Performs tri-linear interpolation of texels between four texels each from two nearest mipmap levels. Maps to LINEAR_MIPMAP_LINEAR, but an implementation can fall back to LINEAR_MIPMAP_NEAREST or NEAREST_MIPMAP_LINEAR.
      See Also:
        `setMinFilter(int)`, Constant Field Values

    - #### LINEAR_SHARPEN

          public static final int LINEAR_SHARPEN

      Sharpens the resulting image by extrapolating from the base level plus one image to the base level image of this texture object.
      Since:
        Java 3D 1.3
      See Also:
        `setMagFilter(int)`, Constant Field Values

    - #### LINEAR_SHARPEN_RGB

          public static final int LINEAR_SHARPEN_RGB

      Performs linear sharpen filter 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_SHARPEN_ALPHA

          public static final int LINEAR_SHARPEN_ALPHA

      Performs linear sharpen filter 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

    - #### FILTER4

          public static final int FILTER4

      Applies an application-supplied weight function on the nearest 4x4 texels in the base level texture image.
      Since:
        Java 3D 1.3
      See Also:
        `setMinFilter(int)`, `setMagFilter(int)`, Constant Field Values

    - #### CLAMP

          public static final int CLAMP

      Clamps texture coordinates to be in the range [0, 1]. Texture boundary texels or the constant boundary color if boundary width is 0 will be used for U,V values that fall outside this range.
      See Also:
        Constant Field Values

    - #### WRAP

          public static final int WRAP

      Repeats the texture by wrapping texture coordinates that are outside the range [0,1]. Only the fractional portion of the texture coordinates is used; the integer portion is discarded.
      See Also:
        Constant Field Values

    - #### CLAMP_TO_EDGE

          public static final int CLAMP_TO_EDGE

      Clamps texture coordinates such that filtering will not sample a texture boundary texel. Texels at the edge of the texture will be used instead.
      Since:
        Java 3D 1.3
      See Also:
        Constant Field Values

    - #### CLAMP_TO_BOUNDARY

          public static final int CLAMP_TO_BOUNDARY

      Clamps texture coordinates such that filtering will sample only texture boundary texels. If the texture does not have a boundary, that is the boundary width is equal to 0, then the constant boundary color will be used.

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

- #### BASE_LEVEL

      public static final int BASE_LEVEL

  Indicates that Texture object only has one level. If multiple levels are needed, they will be implicitly computed.
  See Also:
    Constant Field Values

- #### MULTI_LEVEL_MIPMAP

      public static final int MULTI_LEVEL_MIPMAP

  Indicates that this Texture object has multiple images, one for each mipmap level. In this mode, there are `log2(max(width,height))+1` separate images.
  See Also:
    Constant Field Values

- #### INTENSITY

      public static final int INTENSITY

  Specifies Texture contains only Intensity values.
  See Also:
    Constant Field Values

- #### LUMINANCE

      public static final int LUMINANCE

  Specifies Texture contains only luminance values.
  See Also:
    Constant Field Values

- #### ALPHA

      public static final int ALPHA

  Specifies Texture contains only Alpha values.
  See Also:
    Constant Field Values

- #### LUMINANCE_ALPHA

      public static final int LUMINANCE_ALPHA

  Specifies Texture contains Luminance and Alpha values.
  See Also:
    Constant Field Values

- #### RGB

      public static final int RGB

  Specifies Texture contains Red, Green and Blue color values.
  See Also:
    Constant Field Values

- #### RGBA

      public static final int RGBA

  Specifies Texture contains Red, Green, Blue color values and Alpha value.
  See Also:
    Constant Field Values

- #### ANISOTROPIC_NONE

      public static final int ANISOTROPIC_NONE

  No anisotropic filter.
  Since:
    Java 3D 1.3
  See Also:
    `setAnisotropicFilterMode(int)`, Constant Field Values

- #### ANISOTROPIC_SINGLE_VALUE

      public static final int ANISOTROPIC_SINGLE_VALUE

  Uses the degree of anisotropy in both the minification and magnification filters.
  Since:
    Java 3D 1.3
  See Also:
    `setAnisotropicFilterMode(int)`, Constant Field Values

- ### Constructor Detail

  - #### Texture

        public Texture()

    Constructs a Texture object with default parameters. The default values are as follows:
    enable flag : true
    width : 0
    height : 0
    mipmap mode : BASE_LEVEL
    format : RGB
    boundary mode S : WRAP
    boundary mode T : WRAP
    min filter : BASE_LEVEL_POINT
    mag filter : BASE_LEVEL_POINT
    boundary color : black (0,0,0,0)
    boundary width : 0
    array of images : null
    baseLevel : 0
    maximumLevel : `log2(max(width,height))`
    minimumLOD : -1000.0
    maximumLOD : 1000.0
    lod offset : (0, 0, 0)
    anisotropic mode : ANISOTROPIC_NONE
    anisotropic filter : 1.0
    sharpen texture func: null
    filter4 func: null

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

  - #### Texture

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

    Constructs an empty Texture object with specified mipMapMode, format, width and height. 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. Note that a texture with a non-power-of-two width or height will only be rendered on a graphics device that supports non-power-of-two textures.
    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.
      `height` - height of image at level 0.
    Throws:
      `java.lang.IllegalArgumentException` - if width or height are not greater than 0, or if an invalid format or mipMapMode is specified.

  - #### Texture

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

    Constructs an empty Texture 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. Note that a texture with a non-power-of-two width or height will only be rendered on a graphics device that supports non-power-of-two textures.
    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. This does not include the width of the boundary.
      `height` - height of image at level 0. This does not include the width of the boundary.
      `boundaryWidth` - width of the boundary, which must be 0 or 1.
    Throws:
      `java.lang.IllegalArgumentException` - if width or height are not greater than 0, if an invalid format or mipMapMode is specified, or if the boundaryWidth is < 0 or > 1
    Since:
      Java 3D 1.3

- ### Method Detail

  - #### setBoundaryModeS

        public void setBoundaryModeS(int boundaryModeS)

    Sets the boundary mode for the S coordinate in this texture object.
    Parameters:
      `boundaryModeS` - the boundary mode for the S coordinate. One of: CLAMP, WRAP, CLAMP_TO_EDGE, or CLAMP_TO_BOUNDARY.
    Throws:
      `RestrictedAccessException` - if the method is called when this object is part of live or compiled scene graph.
      `java.lang.IllegalArgumentException` - if `boundaryModeS` is a value other than `CLAMP`, `WRAP`, `CLAMP_TO_EDGE`, or `CLAMP_TO_BOUNDARY`.

  - #### getBoundaryModeS

        public int getBoundaryModeS()

    Retrieves the boundary mode for the S coordinate.
    Returns:
      the current boundary mode for the S coordinate.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

  - #### setBoundaryModeT

        public void setBoundaryModeT(int boundaryModeT)

    Sets the boundary mode for the T coordinate in this texture object.
    Parameters:
      `boundaryModeT` - the boundary mode for the T coordinate. One of: CLAMP, WRAP, CLAMP_TO_EDGE, or CLAMP_TO_BOUNDARY.
    Throws:
      `RestrictedAccessException` - if the method is called when this object is part of live or compiled scene graph.
      `java.lang.IllegalArgumentException` - if `boundaryModeT` is a value other than `CLAMP`, `WRAP`, `CLAMP_TO_EDGE`, or `CLAMP_TO_BOUNDARY`.

  - #### getBoundaryModeT

        public int getBoundaryModeT()

    Retrieves the boundary mode for the T coordinate.
    Returns:
      the current boundary mode for the T coordinate.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

  - #### setMinFilter

        public void setMinFilter(int minFilter)

    Sets the minification filter function. This function is used when the pixel being rendered maps to an area greater than one texel.
    Parameters:
      `minFilter` - the minification filter. One of: FASTEST, NICEST, BASE_LEVEL_POINT, BASE_LEVEL_LINEAR, MULTI_LEVEL_POINT, MULTI_LEVEL_LINEAR, 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`, `MULTI_LEVEL_POINT`, `MULTI_LEVEL_LINEAR`, or `FILTER4`.
    See Also:
      `Canvas3D.queryProperties()`

  - #### getMinFilter

        public int getMinFilter()

    Retrieves the minification filter.
    Returns:
      the current minification filter function.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

  - #### 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.
    Parameters:
      `magFilter` - the magnification filter, one of: FASTEST, NICEST, BASE_LEVEL_POINT, BASE_LEVEL_LINEAR, 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 `magFilter` is a value other than `FASTEST`, `NICEST`, `BASE_LEVEL_POINT`, `BASE_LEVEL_LINEAR`, `LINEAR_SHARPEN`, `LINEAR_SHARPEN_RGB`, `LINEAR_SHARPEN_ALPHA`, or `FILTER4`.
    See Also:
      `Canvas3D.queryProperties()`

  - #### getMagFilter

        public int getMagFilter()

    Retrieves the magnification filter.
    Returns:
      the current magnification filter function.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

  - #### setImage

        public void setImage(int level,
                    ImageComponent image)

    Sets the image for a specified mipmap level. Note that the image size must be the correct size for the specified mipmap level. The image size of the base level image, that is level 0, must be the same size in each dimension (width, height, depth) as this texture, excluding the border, if any. Each successive mipmap level must be 1/2 the size of the previous level, such that `size[n] = floor(size[n-1]/2)`, exluding the border.
    Parameters:
      `level` - mipmap level to set: 0 is the base level
      `image` - ImageComponent object containing the texture image for the specified mipmap level
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      `java.lang.IllegalArgumentException` - if an ImageComponent3D is used in a Texture2D object or if an ImageComponent2D is used in a Texture3D object.
      `java.lang.IllegalArgumentException` - if the image being set at this level is not the correct size for this level.
      `IllegalSharingException` - if this Texture is live and the specified image is being used by a Canvas3D as an off-screen buffer.
      `IllegalSharingException` - if this Texture is being used by an immediate mode context and the specified image is being used by a Canvas3D as an off-screen buffer.

  - #### getImage

        public ImageComponent getImage(int level)

    Retrieves the image for a specified mipmap level.
    Parameters:
      `level` - mipmap level to get: 0 is the base level
    Returns:
      the ImageComponent object containing the texture image at the specified mipmap level.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

  - #### setImages

        public void setImages(ImageComponent[] images)

    Sets the array of images for all mipmap levels. Note that the image size of the base level image, `images[0]`, must be the same size in each dimension (width, height, depth) as this texture, excluding the border, if any. Each successive mipmap level must be 1/2 the size of the previous level, such that `size[n] = floor(size[n-1]/2)`, exluding the border.
    Parameters:
      `images` - array of ImageComponent objects containing the texture images for all mipmap levels
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      `java.lang.IllegalArgumentException` - if an ImageComponent3D is used in a Texture2D object or if an ImageComponent2D is used in a Texture3D object.
      `java.lang.IllegalArgumentException` - if `images.length` is not equal to the total number of mipmap levels.
      `java.lang.IllegalArgumentException` - if the size of each dimension of the image at a given level in the `images` array is not the correct size.
      `IllegalSharingException` - if this Texture is live and any of the specified images are being used by a Canvas3D as an off-screen buffer.
      `IllegalSharingException` - if this Texture is being used by an immediate mode context and any of the specified images are being used by a Canvas3D as an off-screen buffer.
    Since:
      Java 3D 1.2

  - #### getImages

        public ImageComponent[] getImages()

    Retrieves the array of images for all mipmap levels.
    Returns:
      the array of ImageComponent objects for this Texture.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    Since:
      Java 3D 1.2

  - #### getFormat

        public int getFormat()

    Retrieves the format of this Texture object.
    Returns:
      the format of this Texture object.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    Since:
      Java 3D 1.2

  - #### getWidth

        public int getWidth()

    Retrieves the width of this Texture object.
    Returns:
      the width of this Texture object.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    Since:
      Java 3D 1.2

  - #### getHeight

        public int getHeight()

    Retrieves the height of this Texture object.
    Returns:
      the height of this Texture object.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    Since:
      Java 3D 1.2

  - #### getBoundaryWidth

        public int getBoundaryWidth()

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

  - #### numMipMapLevels

        public int numMipMapLevels()

    Retrieves the number of mipmap levels needed for this Texture object.
    Returns:
      (maximum Level - base Level + 1) if `mipMapMode` is `MULTI_LEVEL_MIPMAP`; otherwise it returns 1.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    Since:
      Java 3D 1.2

  - #### setMipMapMode

        public void setMipMapMode(int mipMapMode)

    Sets mipmap mode for texture mapping for this texture object.
    Parameters:
      `mipMapMode` - the new mipmap mode for this object. One of: BASE_LEVEL or MULTI_LEVEL_MIPMAP.
    Throws:
      `RestrictedAccessException` - if the method is called when this object is part of live or compiled scene graph.
      `java.lang.IllegalArgumentException` - if `mipMapMode` is a value other than `BASE_LEVEL` or `MULTI_LEVEL_MIPMAP`.

  - #### getMipMapMode

        public int getMipMapMode()

    Retrieves current mipmap mode.
    Returns:
      current mipmap mode of this texture object.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

  - #### setEnable

        public void setEnable(boolean state)

    Enables or disables texture mapping for this appearance component object.
    Parameters:
      `state` - true or false to enable or disable texture mapping
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

  - #### getEnable

        public boolean getEnable()

    Retrieves the state of the texture enable flag.
    Returns:
      true if texture mapping is enabled, false if texture mapping is disabled
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

  - #### setBoundaryColor

        public void setBoundaryColor(Color4f boundaryColor)

    Sets the texture boundary color for this texture object. The texture boundary color is used when boundaryModeS or boundaryModeT is set to CLAMP or CLAMP_TO_BOUNDARY and if texture boundary is not specified.
    Parameters:
      `boundaryColor` - the new texture boundary color.
    Throws:
      `RestrictedAccessException` - if the method is called when this object is part of live or compiled scene graph.

  - #### setBoundaryColor

        public void setBoundaryColor(float r,
                            float g,
                            float b,
                            float a)

    Sets the texture boundary color for this texture object. The texture boundary color is used when boundaryModeS or boundaryModeT is set to CLAMP or CLAMP_TO_BOUNDARY and if texture boundary is not specified.
    Parameters:
      `r` - the red component of the color.
      `g` - the green component of the color.
      `b` - the blue component of the color.
      `a` - the alpha component of the color.
    Throws:
      `RestrictedAccessException` - if the method is called when this object is part of live or compiled scene graph.

  - #### getBoundaryColor

        public void getBoundaryColor(Color4f boundaryColor)

    Retrieves the texture boundary color for this texture object.
    Parameters:
      `boundaryColor` - the vector that will receive the current texture boundary color.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph

  - #### setBaseLevel

        public void setBaseLevel(int baseLevel)

    Specifies the base level for this texture object.
    Parameters:
      `baseLevel` - index of the lowest defined mipmap level.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      `java.lang.IllegalArgumentException` - if specified baseLevel < 0, or if baseLevel > maximumLevel
    Since:
      Java 3D 1.3
    See Also:
      `Canvas3D.queryProperties()`

  - #### getBaseLevel

        public int getBaseLevel()

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

  - #### setMaximumLevel

        public void setMaximumLevel(int maximumLevel)

    Specifies the maximum level for this texture object.
    Parameters:
      `maximumLevel` - index of the highest defined mipmap level.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      `java.lang.IllegalArgumentException` - if specified maximumLevel < baseLevel, or if maximumLevel > `log2(max(width,height))`
      `java.lang.IllegalArgumentException` - if mipMipMapMode is equal to BASE_LEVEL and maximumLevel is not equal to zero.
    Since:
      Java 3D 1.3
    See Also:
      `Canvas3D.queryProperties()`

  - #### getMaximumLevel

        public int getMaximumLevel()

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

  - #### setMinimumLOD

        public void setMinimumLOD(float minimumLod)

    Specifies the minimum level-of-detail for this texture object.
    Parameters:
      `minimumLod` - the minimum level-of-detail.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      `java.lang.IllegalArgumentException` - if specified lod > maximum lod
    Since:
      Java 3D 1.3
    See Also:
      `Canvas3D.queryProperties()`

  - #### getMinimumLOD

        public float getMinimumLOD()

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

  - #### setMaximumLOD

        public void setMaximumLOD(float maximumLod)

    Specifies the maximum level-of-detail for this texture object.
    Parameters:
      `maximumLod` - the maximum level-of-detail.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
      `java.lang.IllegalArgumentException` - if specified lod < minimum lod
    Since:
      Java 3D 1.3
    See Also:
      `Canvas3D.queryProperties()`

  - #### getMaximumLOD

        public float getMaximumLOD()

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

  - #### setLodOffset

        public void setLodOffset(float s,
                        float t,
                        float r)

    Specifies the LOD offset for this texture object.
    Parameters:
      `s` - the s component of the LOD offset
      `t` - the t component of the LOD offset
      `r` - the r component of the LOD offset
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    Since:
      Java 3D 1.3
    See Also:
      `Canvas3D.queryProperties()`

  - #### setLodOffset

        public void setLodOffset(Tuple3f offset)

    Specifies the LOD offset for this texture object.
    Parameters:
      `offset` - the LOD offset
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    Since:
      Java 3D 1.3
    See Also:
      `Canvas3D.queryProperties()`

  - #### getLodOffset

        public void getLodOffset(Tuple3f offset)

    Retrieves the LOD offset for this texture object.
    Parameters:
      `offset` - the vector that will receive the current LOD offset.
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    Since:
      Java 3D 1.3

  - #### setAnisotropicFilterMode

        public void setAnisotropicFilterMode(int mode)

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

  - #### getAnisotropicFilterMode

        public int getAnisotropicFilterMode()

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

  - #### setAnisotropicFilterDegree

        public void setAnisotropicFilterDegree(float degree)

    Specifies the degree of anisotropy to be used when the anisotropic filter mode specifies ANISOTROPIC_SINGLE_VALUE.
    Parameters:
      `degree` - degree of anisotropy
    Throws:
      `RestrictedAccessException` - if the method is called when this object is part of live or compiled scene graph.
      `java.lang.IllegalArgumentException` - if `degree` < 1.0 or `degree` > the maximum degree of anisotropy.
    Since:
      Java 3D 1.3
    See Also:
      `Canvas3D.queryProperties()`

  - #### getAnisotropicFilterDegree

        public float getAnisotropicFilterDegree()

    Retrieves the anisotropic filter degree for this texture object.
    Returns:
      the current degree of anisotropy of this texture object
    Throws:
      `CapabilityNotSetException` - if appropriate capability is not set and this object is part of live or compiled scene graph
    Since:
      Java 3D 1.3

  - #### setSharpenTextureFunc

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

    sets the sharpen 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()`

  - #### setSharpenTextureFunc

        public void setSharpenTextureFunc(Point2f[] pts)

    sets the sharpen 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()`

  - #### getSharpenTextureFuncPointsCount

        public int getSharpenTextureFuncPointsCount()

    Gets the number of points in the sharpen texture LOD function for this texture object.
    Returns:
      the number of points in the sharpen 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

  - #### getSharpenTextureFunc

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

    Copies the array of sharpen 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

  - #### getSharpenTextureFunc

        public void getSharpenTextureFunc(Point2f[] pts)

    Copies the array of sharpen 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 sharpen 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

  - #### setFilter4Func

        public void setFilter4Func(float[] weights)

    sets the filter4 function for this texture object.
    Parameters:
      `weights` - array containing samples of the filter4 function.
    Throws:
      `java.lang.IllegalArgumentException` - if the length of `weight` < 4
      `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()`

  - #### getFilter4FuncPointsCount

        public int getFilter4FuncPointsCount()

    Retrieves the number of filter4 function values for this texture object.
    Returns:
      the number of filter4 function 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

  - #### getFilter4Func

        public void getFilter4Func(float[] weights)

    Copies the array of filter4 function values into the specified array. The array must be large enough to hold all the values.
    Parameters:
      `weights` - the array to receive the function 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

Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms.