I'm trying to animate a texture but am getting the following exception in my attempt 
to do so:
Exception occurred during Behavior execution:
javax.media.j3d.CapabilityNotSetException: ImageComponent2D: no capability to set image

First off, I don't know how to set this capability if I'm using the TextureLoader 
class, since there are no methods that I know of in the ImageComponent2D class.

Secondly, I don't know why I'm even getting this exception since I'm not calling the 
set method in the ImageComponent2D class (see code below).  The exception is occuring 
from the line:
m_imageComponent.updateData(this,0, 0,  m_width, m_height);
in the processStimulus method.

Lastly, am I even going about this in the right way to animate a texture?

Thanks,

Jason

Here are some samples of code.

TextureLoader textLoad = new TextureLoader(image, TextureLoader.BY_REFERENCE ,new 
java.awt.Container());
ImageComponent2D textImage = textLoad.getImage();
Texture2D texture = new Texture2D(Texture2D.BASE_LEVEL,
                                            Texture.RGB,
                                            textImage.getWidth(),
                                            textImage.getHeight());
texture.setImage(0, textImage);

...

m_textureBehavior = new TextureBehavior();
m_textureBehavior.setSchedulingBounds(BoundingSphere());
textImage.updateData(m_textureBehavior,0,0,textImage.getWidth(),textImage.getHeight());
contentBranch.addChild(m_textureBehavior);

public class TextureBehavior extends Behavior implements ImageComponent2D.Updater{
    private WakeupOnElapsedFrames wFrame = new WakeupOnElapsedFrames(0);
    private WakeupCriterion[] warray = { wFrame};
    private WakeupCondition w = new WakeupOr(warray);

    private ImageComponent2D m_imageComponent = null;
    private int m_width=0;
    private int m_height=0;
    /** Creates a new instance of TextureInterpolator */
    public TextureBehavior() {
    }
    public void initialize() {
        wakeupOn(w);
    }
    public void updateData(ImageComponent2D imageComponent, int x, int y, int width, 
int height)
    {
        if(m_imageComponent == null )
        {
            m_imageComponent = imageComponent;
        }
        m_width = width;
        m_height = height;

        System.out.println("Called");


    }
    public void processStimulus(Enumeration criteria) {
        WakeupCriterion genericEvt;

        while (criteria.hasMoreElements()) {
            genericEvt = (WakeupCriterion) criteria.nextElement();
            if (genericEvt instanceof WakeupOnElapsedFrames) {
                if(m_imageComponent!= null )
                {
                   m_imageComponent.updateData(this,0, 0,  m_width, m_height);
                }
            }
        }
        wakeupOn(w);
    }

}

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to