- procedure TOpenglwindow.RotateVectorCPU(wx,wy,wz:single;var x1,x2,x3:Tvector);
- var tx1,tx2,tx3:Tvector;
- begin
- tx1[0]:=1*x1[0]+0*x2[0]+0*x3[0];
- tx1[1]:=1*x1[1]+0*x2[1]+0*x3[1];
- tx1[2]:=1*x1[2]+0*x2[2]+0*x3[2];
- tx2[0]:=0*x1[0]+cos(degtorad(wx))*x2[0]-sin(degtorad(wx))*x3[0];
- tx2[1]:=0*x1[1]+cos(degtorad(wx))*x2[1]-sin(degtorad(wx))*x3[1];
- tx2[2]:=0*x1[2]+cos(degtorad(wx))*x2[2]-sin(degtorad(wx))*x3[2];
- tx3[0]:=0*x1[0]+sin(degtorad(wx))*x2[0]+cos(degtorad(wx))*x3[0];
- tx3[1]:=0*x1[1]+sin(degtorad(wx))*x2[1]+cos(degtorad(wx))*x3[1];
- tx3[2]:=0*x1[2]+sin(degtorad(wx))*x2[2]+cos(degtorad(wx))*x3[2];
- x1[0]:=cos(degtorad(wy))*tx1[0]+0*tx2[0]-sin(degtorad(wy))*tx3[0];
- x1[1]:=cos(degtorad(wy))*tx1[1]+0*tx2[1]-sin(degtorad(wy))*tx3[1];
- x1[2]:=cos(degtorad(wy))*tx1[2]+0*tx2[2]-sin(degtorad(wy))*tx3[2];
- x2[0]:=0*tx1[0]+1*tx2[0]+0*tx3[0];
- x2[1]:=0*tx1[1]+1*tx2[1]+0*tx3[1];
- x2[2]:=0*tx1[2]+1*tx2[2]+0*tx3[2];
- x3[0]:=sin(degtorad(wy))*tx1[0]+0*tx2[0]+cos(degtorad(wy))*tx3[0];
- x3[1]:=sin(degtorad(wy))*tx1[1]+0*tx2[1]+cos(degtorad(wy))*tx3[1];
- x3[2]:=sin(degtorad(wy))*tx1[2]+0*tx2[2]+cos(degtorad(wy))*tx3[2];
- tx1[0]:=cos(degtorad(wz))*x1[0]-sin(degtorad(wz))*x2[0]+0*x3[0];
- tx1[1]:=cos(degtorad(wz))*x1[1]-sin(degtorad(wz))*x2[1]+0*x3[1];
- tx1[2]:=cos(degtorad(wz))*x1[2]-sin(degtorad(wz))*x2[2]+0*x3[2];
- tx2[0]:=sin(degtorad(wz))*x1[0]+cos(degtorad(wz))*x2[0]+0*x3[0];
- tx2[1]:=sin(degtorad(wz))*x1[1]+cos(degtorad(wz))*x2[1]+0*x3[1];
- tx2[2]:=sin(degtorad(wz))*x1[2]+cos(degtorad(wz))*x2[2]+0*x3[2];
- tx3[0]:=0*x1[0]+0*x2[0]+1*x3[0];
- tx3[1]:=0*x1[1]+0*x2[1]+1*x3[1];
- tx3[2]:=0*x1[2]+0*x2[2]+1*x3[2];
- x1[0]:=tx1[0];
- x1[1]:=tx1[1];
- x1[2]:=tx1[2];
- x2[0]:=tx2[0];
- x2[1]:=tx2[1];
- x2[2]:=tx2[2];
- x3[0]:=tx3[0];
- x3[1]:=tx3[1];
- x3[2]:=tx3[2];
- end;