Atascado con Behavior y Bounds

Iniciado por MidBifroid, 22 Agosto 2013, 19:11 PM

0 Miembros y 1 Visitante están viendo este tema.

MidBifroid

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);
}

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.

MidBifroid

bueno por lo visto es normal que ocurra esto ya que los eventos de mouse dependen del canvas3d por completo y no del shape/group

tambien probé usar boundingleaf y java tiene un bug nullpointerexception con esto

¿Alquien sabe donde o como puedo informarme sobre los behaviors para saber cuando el raton está apuntando a un objeto?

trolleoatodos