| 29 |
|
{ |
| 30 |
|
FVECT delta; |
| 31 |
|
|
| 32 |
< |
delta[0] = p2[0] - p1[0]; |
| 33 |
< |
delta[1] = p2[1] - p1[1]; |
| 34 |
< |
delta[2] = p2[2] - p1[2]; |
| 32 |
> |
VSUB(delta, p2, p1); |
| 33 |
|
|
| 34 |
|
return(DOT(delta, delta)); |
| 35 |
|
} |
| 85 |
|
const FVECT v2 |
| 86 |
|
) |
| 87 |
|
{ |
| 88 |
< |
vres[0] = v1[1]*v2[2] - v1[2]*v2[1]; |
| 91 |
< |
vres[1] = v1[2]*v2[0] - v1[0]*v2[2]; |
| 92 |
< |
vres[2] = v1[0]*v2[1] - v1[1]*v2[0]; |
| 88 |
> |
VCROSS(vres, v1, v2); |
| 89 |
|
} |
| 90 |
|
|
| 91 |
|
|
| 97 |
|
double f |
| 98 |
|
) |
| 99 |
|
{ |
| 100 |
< |
vres[0] = v0[0] + f*v1[0]; |
| 105 |
< |
vres[1] = v0[1] + f*v1[1]; |
| 106 |
< |
vres[2] = v0[2] + f*v1[2]; |
| 100 |
> |
VSUM(vres, v0, v1, f); |
| 101 |
|
} |
| 102 |
|
|
| 103 |
|
|
| 174 |
|
cost = cos(theta); |
| 175 |
|
sint = sin(theta); |
| 176 |
|
normprod = DOT(vorig, vnorm)*(1.-cost); |
| 177 |
< |
fcross(vperp, vnorm, vorig); |
| 177 |
> |
VCROSS(vperp, vnorm, vorig); |
| 178 |
|
for (i = 0; i < 3; i++) |
| 179 |
|
vres[i] = vorig[i]*cost + vnorm[i]*normprod + vperp[i]*sint; |
| 180 |
|
} |