if (B[1].z>=Hranica.z1)and(B[1].z<Hranica.z2) and
(B[1].x>-Hranica.x)and(B[1].x<Hranica.x) and
(B[1].y>-Hranica.y)and(B[1].y<Hranica.y) then begin
for i:=1 to 8 do begin
V.x:=B[i].x-Stred.x;
V.y:=B[i].y-Stred.y;
V.z:=B[i].z-Stred.z;
procedure TKocka.Otoc(uhol:integer; os:TOs);
var S:Body;
i:integer;
begin (* z koncovych bodov uhlopriecky vypocita stred kocky (stred otacania) *)
S.x:=B[1].x + (B[8].x - B[1].x) div 2;
S.y:=B[1].y + (B[8].y - B[1].y) div 2;
S.z:=B[1].z + (B[8].z - B[1].z) div 2;
(* podla zadanej osi otoci 4 hlavne body kocky *)
case os of
x : for i:=1 to 4 do Rot2D(B[i].z, B[i].y, S.z, S.y, uhol);
y : for i:=1 to 4 do Rot2D(B[i].x, B[i].z, S.x, S.z, uhol);
z : for i:=1 to 4 do Rot2D(B[i].x, B[i].y, S.x, S.y, uhol);
end;
(* zo 4 hlavnych bodov vypocita smerove vektory *)
Vx.x:=B[2].x - B[1].x;
Vx.y:=B[2].y - B[1].y;
Vx.z:=B[2].z - B[1].z;