Example usage for javax.media.j3d ImageComponent ALLOW_IMAGE_READ

List of usage examples for javax.media.j3d ImageComponent ALLOW_IMAGE_READ

Introduction

In this page you can find the example usage for javax.media.j3d ImageComponent ALLOW_IMAGE_READ.

Prototype

int ALLOW_IMAGE_READ

To view the source code for javax.media.j3d ImageComponent ALLOW_IMAGE_READ.

Click Source Link

Document

Specifies that this ImageComponent object allows reading its image component information.

Usage

From source file:RasterTest.java

public RasterTest() {
    // create the image to be rendered using a Raster
    BufferedImage bufferedImage = new BufferedImage(128, 128, BufferedImage.TYPE_INT_RGB);
    ImageComponent2D imageComponent2D = new ImageComponent2D(ImageComponent2D.FORMAT_RGB, bufferedImage);
    imageComponent2D.setCapability(ImageComponent.ALLOW_IMAGE_READ);
    imageComponent2D.setCapability(ImageComponent.ALLOW_SIZE_READ);

    // create the depth component to store the 3D depth values
    DepthComponentInt depthComponent = new DepthComponentInt(m_kWidth, m_kHeight);
    depthComponent.setCapability(DepthComponent.ALLOW_DATA_READ);

    // create the Raster for the image
    m_RenderRaster = new Raster(new Point3f(0.0f, 0.0f, 0.0f), Raster.RASTER_COLOR, 0, 0,
            bufferedImage.getWidth(), bufferedImage.getHeight(), imageComponent2D, null);

    m_RenderRaster.setCapability(Raster.ALLOW_IMAGE_WRITE);
    m_RenderRaster.setCapability(Raster.ALLOW_SIZE_READ);

    // create the Raster for the depth components
    m_DepthRaster = new Raster(new Point3f(0.0f, 0.0f, 0.0f), Raster.RASTER_DEPTH, 0, 0, m_kWidth, m_kHeight,
            null, depthComponent);/*from  w  w w. ja  va2 s . c  o  m*/

    initJava3d();
}

From source file:HiResCoordTest.java

private Shape3D createLabel(String szText, float x, float y, float z) {
    BufferedImage bufferedImage = new BufferedImage(50, 20, BufferedImage.TYPE_INT_RGB);
    Graphics g = bufferedImage.getGraphics();
    g.setColor(Color.white);// w  ww .j a v a2s.  c o  m
    g.drawString(szText, 10, 10);

    ImageComponent2D imageComponent2D = new ImageComponent2D(ImageComponent2D.FORMAT_RGB, bufferedImage);
    imageComponent2D.setCapability(ImageComponent.ALLOW_IMAGE_READ);
    imageComponent2D.setCapability(ImageComponent.ALLOW_SIZE_READ);

    // create the Raster for the image
    javax.media.j3d.Raster renderRaster = new javax.media.j3d.Raster(new Point3f(x, y, z),
            javax.media.j3d.Raster.RASTER_COLOR, 0, 0, bufferedImage.getWidth(), bufferedImage.getHeight(),
            imageComponent2D, null);

    return new Shape3D(renderRaster);
}

From source file:TextureByReference.java

public AnimateTexturesBehavior(Texture2D texP, java.net.URL[] fnames, Appearance appP,
        TextureByReference applet) {//w  w  w . j av  a 2s.  co m
    int size = fnames.length;
    images = new ImageComponent2D[size];
    BufferedImage bImage;
    TextureLoader loader;
    for (int i = 0; i < size; i++) {
        loader = new TextureLoader(fnames[i], TextureLoader.BY_REFERENCE | TextureLoader.Y_UP, applet);
        images[i] = loader.getImage();
        bImage = images[i].getImage();

        // convert the image to TYPE_4BYTE_ABGR
        currentType = BufferedImage.TYPE_4BYTE_ABGR;
        bImage = ImageOps.convertImage(bImage, currentType);
        // flip the image
        flip = true;
        ImageOps.flipImage(bImage);

        // set the image on the ImageComponent to the new one
        images[i].set(bImage);

        images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
        images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
    }
    texture = texP;
    current = 0;
    max = size;
    wakeupC = new WakeupOnElapsedFrames(20);
    appearance = appP;
}

From source file:TextureByReference.java

public void setFlipImages(boolean b) {
    // double check that flipping is necessary
    if (b != flip) {
        BufferedImage bImage;/*from  w w w . j a v  a 2 s . co  m*/

        // these are the same for all images so get info once
        int format = images[0].getFormat();
        boolean byRef = images[0].isByReference();
        boolean yUp = images[0].isYUp();

        // flip all the images
        // have to new ImageComponents because can't set the image at
        // runtime
        for (int i = 0; i < images.length; i++) {
            bImage = images[i].getImage();
            ImageOps.flipImage(bImage);
            // if we are byRef and the bImage type does not match
            // currentType
            // we need to convert it. If we are not byRef we will
            // save converting until it is changed to byRef
            if (byRef && bImage.getType() != currentType) {
                if (currentType != BufferedImage.TYPE_CUSTOM) {
                    bImage = ImageOps.convertImage(bImage, currentType);
                } else if (customType == this.TYPE_CUSTOM_RGBA) {
                    bImage = ImageOps.convertToCustomRGBA(bImage);
                } else {
                    bImage = ImageOps.convertToCustomRGB(bImage);
                }
            }
            images[i] = new ImageComponent2D(format, bImage, byRef, yUp);
            images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
            images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
        }

        // set flip to new value
        flip = b;
    }
}

From source file:TextureByReference.java

public void setYUp(boolean b) {
    // double check that changing yUp is necessary
    if (b != images[0].isYUp()) {

        // these are the same for all images so get info once
        int format = images[0].getFormat();
        boolean byRef = images[0].isByReference();

        // reset yUp on all the images -- have to new ImageComponents
        // because
        // cannot change the value at runtime
        for (int i = 0; i < images.length; i++) {
            // if we are byRef and the bImage type does not match
            // currentType
            // we need to convert it. If we are not byRef we will
            // save converting until it is changed to byRef
            BufferedImage bImage = images[i].getImage();
            if (byRef && bImage.getType() != currentType) {
                //     bImage = ImageOps.convertImage(bImage, currentType);
                if (currentType != BufferedImage.TYPE_CUSTOM) {
                    bImage = ImageOps.convertImage(bImage, currentType);
                } else if (customType == this.TYPE_CUSTOM_RGBA) {
                    bImage = ImageOps.convertToCustomRGBA(bImage);
                } else {
                    bImage = ImageOps.convertToCustomRGB(bImage);
                }// ww w  .ja v a 2s .c o m
            }
            images[i] = new ImageComponent2D(format, bImage, byRef, b);
            images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
            images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
        }
    }
}

From source file:TextureByReference.java

public void setByReference(boolean b) {
    // double check that changing is necessary
    if (b != images[0].isByReference()) {

        // these are the same for all images so get info once
        int format = images[0].getFormat();
        boolean yUp = images[0].isYUp();

        // reset yUp on all the images
        // have to new ImageComponents because cannot set value
        for (int i = 0; i < images.length; i++) {
            // if the bImage type does not match currentType and we are
            // setting
            // to byRef we need to convert it
            BufferedImage bImage = images[i].getImage();
            if (bImage.getType() != currentType && b) {
                //     bImage = ImageOps.convertImage(bImage, currentType);
                if (currentType != BufferedImage.TYPE_CUSTOM) {
                    bImage = ImageOps.convertImage(bImage, currentType);
                } else if (customType == this.TYPE_CUSTOM_RGBA) {
                    bImage = ImageOps.convertToCustomRGBA(bImage);
                } else {
                    bImage = ImageOps.convertToCustomRGB(bImage);
                }/* w w w . j  a  v a 2  s  . c o  m*/
            }
            images[i] = new ImageComponent2D(format, bImage, b, yUp);
            images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
            images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
        }
    }
}

From source file:TextureByReference.java

public void setImageType(int newType) {
    currentType = newType;/* w ww. j  a v a  2s.c  om*/

    // only need to change the images if we are byRef otherwise will change
    // them when we chnage to byRef
    if (images[0].isByReference() == true) {
        // this information is the same for all
        int format = images[0].getFormat();
        boolean yUp = images[0].isYUp();
        boolean byRef = true;
        for (int i = 0; i < images.length; i++) {
            BufferedImage bImage = images[i].getImage();
            bImage = ImageOps.convertImage(bImage, currentType);
            images[i] = new ImageComponent2D(format, bImage, byRef, yUp);
            images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
            images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
        }
    }
}

From source file:TextureByReference.java

public void setImageTypeCustomRGBA() {
    currentType = BufferedImage.TYPE_CUSTOM;
    customType = this.TYPE_CUSTOM_RGBA;

    // only need to change images if we are byRef otherwise will change
    // them when we change to byRef
    if (images[0].isByReference()) {
        // this information is the same for all
        int format = images[0].getFormat();
        boolean yUp = images[0].isYUp();
        boolean byRef = true;
        for (int i = 0; i < images.length; i++) {
            BufferedImage bImage = images[i].getImage();
            bImage = ImageOps.convertToCustomRGBA(bImage);
            images[i] = new ImageComponent2D(format, bImage, byRef, yUp);
            images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
            images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
        }/*from   w  w w  .j  a  va 2 s .  c om*/
    }
}

From source file:TextureByReference.java

public void setImageTypeCustomRGB() {
    currentType = BufferedImage.TYPE_CUSTOM;
    customType = this.TYPE_CUSTOM_RGB;

    // only need to change images if we are byRef otherwise will change
    // them when we change to byRef
    if (images[0].isByReference()) {
        // this information is the same for all
        int format = images[0].getFormat();
        boolean yUp = images[0].isYUp();
        boolean byRef = true;
        for (int i = 0; i < images.length; i++) {
            BufferedImage bImage = images[i].getImage();
            bImage = ImageOps.convertToCustomRGB(bImage);
            images[i] = new ImageComponent2D(format, bImage, byRef, yUp);
            images[i].setCapability(ImageComponent.ALLOW_IMAGE_READ);
            images[i].setCapability(ImageComponent.ALLOW_FORMAT_READ);
        }// www  .  j a  va2 s . c  om
    }
}