Bien lo explicare sin incluir mucho codigo, ya que mi fallo puede ser una estupidez de comprension.
Tengo un Branch con 6 shapes de Quads, formando un cubo de tamaño 1 con centro en O.
por cada shape (o lado del cubo) {
xshape.setBounds(new BoundingBox(esquina2, esquina4));
//la razon por la que uso los puntos 2 y 4 es porque son los que se doblan sobre -3, y por tanto ocupan mas espacio en el boundingbox
Behavior behavior = new PlaneBehavior(xshape);
mybranch.addChild(behavior);
}
Bien el cubo perfecto, el branch perfecto, todo lo que quiero hacer me funciona bien, pero parece que el behavior se extende desde -5 a 5 en las 3 dimensiones, en otras palabras, es demasiado grande. No encuentro el fallo.
gracias de antemano, si necesitan mas codigo pidanmelo, pero ya he revisado los 4 puntos de cada shape una y otra vez, ademas se dibuja bien, son fijos y son la referencia de todo lo que hago.
Tengo un Branch con 6 shapes de Quads, formando un cubo de tamaño 1 con centro en O.
por cada shape (o lado del cubo) {
xshape.setBounds(new BoundingBox(esquina2, esquina4));
//la razon por la que uso los puntos 2 y 4 es porque son los que se doblan sobre -3, y por tanto ocupan mas espacio en el boundingbox
Behavior behavior = new PlaneBehavior(xshape);
mybranch.addChild(behavior);
}
Código (java) [Seleccionar]
public class PlaneBehavior extends Behavior {
public final WakeupOr planeCriterions = new WakeupOr(new WakeupCriterion[]{
new WakeupOnAWTEvent(MouseEvent.MOUSE_ENTERED),
new WakeupOnAWTEvent(MouseEvent.MOUSE_MOVED),
new WakeupOnAWTEvent(MouseEvent.MOUSE_PRESSED),
new WakeupOnAWTEvent(MouseEvent.MOUSE_DRAGGED),
new WakeupOnAWTEvent(MouseEvent.MOUSE_RELEASED),
new WakeupOnAWTEvent(MouseEvent.MOUSE_CLICKED),
new WakeupOnAWTEvent(MouseEvent.MOUSE_EXITED),
new WakeupOnAWTEvent(MouseEvent.MOUSE_WHEEL),
});
private KShape3D plane;
public PlaneBehavior(KShape3D plane) {
this.plane = plane;
this.setSchedulingBounds(plane.getBounds());
}
@Override
public void initialize() {
this.wakeupOn(planeCriterions);
}
@Override
public void processStimulus(Enumeration enu) {
while (enu.hasMoreElements()) {
System.out.println(plane.name+" "+enu.nextElement());
}
this.wakeupOn(planeCriterions);
}
}
Bien el cubo perfecto, el branch perfecto, todo lo que quiero hacer me funciona bien, pero parece que el behavior se extende desde -5 a 5 en las 3 dimensiones, en otras palabras, es demasiado grande. No encuentro el fallo.
gracias de antemano, si necesitan mas codigo pidanmelo, pero ya he revisado los 4 puntos de cada shape una y otra vez, ademas se dibuja bien, son fijos y son la referencia de todo lo que hago.