[ODE] Körper teilen



  • Hallo zusammen

    Ich arbeite grade mit der physik engine ODE und OpenGL. Ich hatte mir vorgenommen 3D Körper (Quader) bei bestimmten Kontakten zu teilen (brechen in mehrere Stücke auseinnander).

    Leider ist das wohl komplizierter als ich dachte, da in ode sowas wohl nicht implementiert ist. Also hab ich mir gedacht das ich den Körper teile, indem ich ihn durch (erstmal) zwei kleinere körper ersetzte, mit gleicher Rotation und den entsprechenden Positionen.

    So, mein Problem ist nun das ich nicht weiß wie ich die "kleinen" Körperteile richtig Positionieren soll.
    Die Rotation übernehm ich einfach vom Hauptkörper, aber wie kann ich nun die Positionen berechnen damit die Teile genau auf dem Körper (bzw da wo der Körper vorherwar) liegen und diesen abdecken.

    Vielleicht hat sich ja jemand schonmal mit ähnlichen Sachen befasst und kann mir einen Tipp geben 🙂

    Edit:
    Also im Prinzip bräuchte ich (und den quader in zwei zu teilen), zwei Punkte von ihm und zwar den im 1/4 und 3/4 seiner länge (beide mittig im quader), diese dann aber natürlich in der weltmatrix.
    Mit diesen Punkten und der Rotation die ich schon habe, könnte ich dann zwei quader mit halber orginallänge zeichnen. Dadurch hätte ich den Ausgangsquader abgedeckt.
    Nur wie krieg ich diese Punkte aus der Weltmatix ?



  • In dem Du sie speicherst 🙂

    class Koerper
    {
    private:
      GLint position_x;
      GLint position_y;
      GLint position_z;
      GLuint laenge;
      .
      .
      .
    
    public:
      GLint GetPositionX() const
      {
        return position_x;
      }
    
      .
      .
      .
    };
    

    Gruss,
    DeSoVoDaMu


Anmelden zum Antworten