Author Topic: Kollisionen/Translationen ohne Rendering  (Read 4328 times)

Offline engineer

  • byte
  • *
  • Posts: 2
    • View Profile
Kollisionen/Translationen ohne Rendering
« on: November 02, 2008, 03:06:50 pm »
Hi Egon,

ich versuche Kollisionen(world) Modell von jPCT ohne irgendwelchen Renderingverfahren zu nutzen, aber die Objekte(Object3D) lassen sich nicht Translieren

Bsp.:
Code: [Select]
World world = new World();

Object3D obj = Primitives.getCube(1.0f);
world.addObject(obj);

//world.buildAllObjects();

SimpleVector dir = new SimpleVector(1.0f, 0.0f, 0.0f);
boolean run = true;
while(run)
{
SimpleVector shift = obj.checkForCollisionSpherical(dir, 1.0f);
obj.translate(shift);

System.out.println("shift  " + shift);
System.out.println("origin " + obj.getOrigin());
System.out.println();
}

die Ausgabe lautet:

...
shift  (1.0,0.0,0.0)
origin (0.0,0.0,0.0)

shift  (1.0,0.0,0.0)
origin (0.0,0.0,0.0)
...

-> Objekt bewegt sich nicht

Mein Endziel wäre die "Kollisionen" und das "Rendering" komplett zu trennen, z.B. Kollisionen laufen auf einer Maschine und Rendering auf einer anderen.

Wo ist der Fehler bei mir? Ist es überhaupt möglich?

Offline EgonOlsen

  • Administrator
  • quad
  • *****
  • Posts: 11745
    • View Profile
    • http://www.jpct.net
Re: Kollisionen/Translationen ohne Rendering
« Reply #1 on: November 02, 2008, 03:10:43 pm »
Das ist problemlos möglich. Dein Fehler ist, dass getOrigin() nicht die Translation berücksichtigt. Wenn du das willst, musst getTranslation() benutzen. getOrigin() liefert quasi nur den Offset in die Welt, eine Art zusätzliche Defaulttranslation des Objektes, welche beim Erzeugen eines Objektes immer (0,0,0) ist.

Offline engineer

  • byte
  • *
  • Posts: 2
    • View Profile
Re: Kollisionen/Translationen ohne Rendering
« Reply #2 on: November 02, 2008, 04:40:48 pm »
Jetzt funktioniert es wie ich es mir vorgeschielt habe, genauso wie zuvor, aber jetzt kann ich nachvollziehen, dass es das richtige tut! ;D
Vielen Dank für schnelle Hilfe!