mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
28 lines
732 B
C++
28 lines
732 B
C++
//---------------------------------------------------------------------------
|
|
|
|
#include <vcl.h>
|
|
#pragma hdrstop
|
|
|
|
#include "float3d.h"
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
#pragma package(smart_init)
|
|
|
|
void __fastcall float4x4::Quaternion(float4 *q)
|
|
{//konwersja kwaternionu obrotu na macierz obrotu
|
|
float xx=q->x*q->x,yy=q->y*q->y,zz=q->z*q->z;
|
|
float xy=q->x*q->y,xz=q->x*q->z,yz=q->y*q->z;
|
|
float wx=q->w*q->x,wy=q->w*q->y,wz=q->w*q->z;
|
|
e[ 0]=1.0f-yy-yy-zz-zz;
|
|
e[ 1]=xy+xy+wz+wz;
|
|
e[ 2]=xz+xz-wy-wy;
|
|
e[ 4]=xy+xy-wz-wz;
|
|
e[ 5]=1.0f-xx-xx-zz-zz;
|
|
e[ 6]=yz+yz+wx+wx;
|
|
e[ 8]=xz+xz+wy+wy;
|
|
e[ 9]=yz+yz-wx-wx;
|
|
e[10]=1.0f-xx-xx-yy-yy;
|
|
//czwartej kolumny i czwartego wiersza nie ruszamy
|
|
};
|