package net.hvidtfeldts.meshia.engine3d;
import javax.media.opengl.GL2ES2;
import net.hvidtfeldts.utils.EventSource.Event;
import net.hvidtfeldts.utils.EventSource.EventListener;
public interface Object3D {
void init(GL2ES2 gl);
void draw(GL2ES2 gl);
boolean isVisible();
void setVisible(boolean value);
void addEventListener(EventListener<? super Object3DEvent> listener);
void removeEventListener(EventListener<? super Object3DEvent> listener);
class Object3DEvent implements Event {
private final Object3D object3D;
Object3DEvent(Object3D object3D) {
this.object3D = object3D;
}
public Object3D getObject3D() {
return object3D;
}
};
class Object3DVisibleChangedEvent extends Object3DEvent {
Object3DVisibleChangedEvent(Object3D object3d) {
super(object3d);
}
};
}