Foro de elhacker.net

Programación => Java => Mensaje iniciado por: MidBifroid en 22 Agosto 2013, 19:11 pm



Título: Atascado con Behavior y Bounds
Publicado por: MidBifroid en 22 Agosto 2013, 19:11 pm
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
  1. public class PlaneBehavior extends Behavior {
  2.     public final WakeupOr planeCriterions = new WakeupOr(new WakeupCriterion[]{
  3.          new WakeupOnAWTEvent(MouseEvent.MOUSE_ENTERED),
  4.          new WakeupOnAWTEvent(MouseEvent.MOUSE_MOVED),
  5.          new WakeupOnAWTEvent(MouseEvent.MOUSE_PRESSED),
  6.          new WakeupOnAWTEvent(MouseEvent.MOUSE_DRAGGED),
  7.          new WakeupOnAWTEvent(MouseEvent.MOUSE_RELEASED),
  8.          new WakeupOnAWTEvent(MouseEvent.MOUSE_CLICKED),
  9.          new WakeupOnAWTEvent(MouseEvent.MOUSE_EXITED),
  10.          new WakeupOnAWTEvent(MouseEvent.MOUSE_WHEEL),
  11.      });
  12.  
  13.     private KShape3D plane;
  14.  
  15.     public PlaneBehavior(KShape3D plane) {
  16.          this.plane = plane;
  17.          this.setSchedulingBounds(plane.getBounds());
  18.     }
  19.  
  20.     @Override
  21.     public void initialize() {
  22.          this.wakeupOn(planeCriterions);
  23.     }
  24.  
  25.     @Override
  26.     public void processStimulus(Enumeration enu) {
  27.          while (enu.hasMoreElements()) {
  28.               System.out.println(plane.name+" "+enu.nextElement());
  29.           }
  30.          this.wakeupOn(planeCriterions);
  31.      }
  32.  
  33. }
  34.  

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.


Título: Re: Atascado con Behavior y Bounds
Publicado por: MidBifroid en 23 Agosto 2013, 13:52 pm
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?


Título: Re: Atascado con Behavior y Bounds
Publicado por: trolleoatodos en 24 Agosto 2013, 23:43 pm
¿lo solucionastes?