- //vars
- KugelPos : TVector3f;
- Rotvel : TVector3f; // Der Bewegungsvektor, der nach der LETZTEN KOLLISION errechnet wurde
- // Wird später noch wenn es möglich ist so verändert, dass die
- // Normale der Ebene, mit der Kollidiert wurde, mit einbezogen wird.
- Rotmatrix : TMatrix; // Rotationsmatrix der Kugel für "ruckelfreies" Rollen
- //========================
- //Kugel Rotation
- //========================
- var
- v: TVector3f;
- //======
- v := VectorCrossProduct(Rotvel,Vector(0,1,0));
- Normalize(v);
- glPushMatrix;
- glLoadIdentity;
- glRotatef(-VectorLength(Rotvel), v.X, v.Y, v.Z); // Matrix Rotieren
- glMultMatrixf(@Rotmatrix);
- glGetFloatv(FromMatrix, Pointer(Matrix)); // Die veränderte matrix abspeichern
- glPopMatrix;
- //========================
- //Rendering
- //========================
- glTranslateVect(KugelPos);
- glMultMatrixf(@Rotmatrix);
- << Draw >>