| 13 |
|
|
| 14 |
|
static double m4tmp[4][4]; /* for efficiency */ |
| 15 |
|
|
| 16 |
+ |
#ifdef BSD |
| 17 |
|
#define copymat4(m4a,m4b) bcopy((char *)m4b,(char *)m4a,sizeof(m4tmp)) |
| 18 |
+ |
#else |
| 19 |
+ |
#define copymat4(m4a,m4b) (void)memcpy((char *)m4a,(char *)m4b,sizeof(m4tmp)) |
| 20 |
+ |
extern char *memcpy(); |
| 21 |
+ |
#endif |
| 22 |
|
|
| 23 |
|
|
| 24 |
|
setident4(m4) |
| 56 |
|
register double v3b[3]; |
| 57 |
|
register double m4[4][4]; |
| 58 |
|
{ |
| 59 |
< |
register int i; |
| 60 |
< |
|
| 61 |
< |
for (i = 0; i < 3; i++) |
| 57 |
< |
m4tmp[0][i] = v3b[0]*m4[0][i] + |
| 58 |
< |
v3b[1]*m4[1][i] + |
| 59 |
< |
v3b[2]*m4[2][i]; |
| 59 |
> |
m4tmp[0][0] = v3b[0]*m4[0][0] + v3b[1]*m4[1][0] + v3b[2]*m4[2][0]; |
| 60 |
> |
m4tmp[0][1] = v3b[0]*m4[0][1] + v3b[1]*m4[1][1] + v3b[2]*m4[2][1]; |
| 61 |
> |
m4tmp[0][2] = v3b[0]*m4[0][2] + v3b[1]*m4[1][2] + v3b[2]*m4[2][2]; |
| 62 |
|
|
| 63 |
|
v3a[0] = m4tmp[0][0]; |
| 64 |
|
v3a[1] = m4tmp[0][1]; |