make IK compile on Mac OSX

This commit is contained in:
Erwin Coumans
2016-07-24 23:50:18 -07:00
parent 75e86051c2
commit 53fa57bdc4
9 changed files with 14 additions and 230 deletions

View File

@@ -69,75 +69,6 @@ static int zorder[] = {
#define LENFRAC 0.10
#define BASEFRAC 1.10
void Axes( float length )
{
int i, j; /* counters */
float fact; /* character scale factor */
float base; /* character start location */
glBegin( GL_LINE_STRIP );
glVertex3f( length, 0., 0. );
glVertex3f( 0., 0., 0. );
glVertex3f( 0., length, 0. );
glEnd();
glBegin( GL_LINE_STRIP );
glVertex3f( 0., 0., 0. );
glVertex3f( 0., 0., length );
glEnd();
fact = LENFRAC * length;
base = BASEFRAC * length;
glBegin( GL_LINE_STRIP );
for( i = 0; i < 4; i++ )
{
j = xorder[i];
if( j < 0 )
{
glEnd();
glBegin( GL_LINE_STRIP );
j = -j;
}
j--;
glVertex3f( base + fact*xx[j], fact*xy[j], 0.0 );
}
glEnd();
glBegin( GL_LINE_STRIP );
for( i = 0; i < 5; i++ )
{
j = yorder[i];
if( j < 0 )
{
glEnd();
glBegin( GL_LINE_STRIP );
j = -j;
}
j--;
glVertex3f( fact*yx[j], base + fact*yy[j], 0.0 );
}
glEnd();
glBegin( GL_LINE_STRIP );
for( i = 0; i < 6; i++ )
{
j = zorder[i];
if( j < 0 )
{
glEnd();
glBegin( GL_LINE_STRIP );
j = -j;
}
j--;
glVertex3f( 0.0, fact*zy[j], base + fact*zx[j] );
}
glEnd();
}
/****************************************************************
Arrow
@@ -164,138 +95,14 @@ static float azz[3] = { 0., 0., 1. };
/* function declarations: */
void Arrow( float tail[3], float head[3] );
void Arrow( const VectorR3& tail, const VectorR3& head );
void cross( float [3], float [3], float [3] );
float dot( float [3], float [3] );
float unit( float [3], float [3] );
void Arrow( const VectorR3& tail, const VectorR3& head )
{
float t[3];
float h[3];
tail.Dump( t );
head.Dump( h );
Arrow( t, h );
}
void Arrow( float tail[3], float head[3] )
{
float u[3], v[3], w[3]; /* arrow coordinate system */
float d; /* wing distance */
float x, y, z; /* point to plot */
float mag; /* magnitude of major direction */
float f; /* fabs of magnitude */
int axis; /* which axis is the major */
/* set w direction in u-v-w coordinate system: */
w[0] = head[0] - tail[0];
w[1] = head[1] - tail[1];
w[2] = head[2] - tail[2];
/* determine major direction: */
axis = X;
mag = fabs( w[0] );
if( (f=fabs(w[1])) > mag )
{
axis = Y;
mag = f;
}
if( (f=fabs(w[2])) > mag )
{
axis = Z;
mag = f;
}
/* set size of wings and turn w into a unit vector: */
d = WINGS * unit( w, w );
/* draw the shaft of the arrow: */
glBegin( GL_LINE_STRIP );
glVertex3fv( tail );
glVertex3fv( head );
glEnd();
/* draw two sets of wings in the non-major directions: */
if( axis != X )
{
cross( w, axx, v );
(void) unit( v, v );
cross( v, w, u );
x = head[0] + d * ( u[0] - w[0] );
y = head[1] + d * ( u[1] - w[1] );
z = head[2] + d * ( u[2] - w[2] );
glBegin( GL_LINE_STRIP );
glVertex3fv( head );
glVertex3f( x, y, z );
glEnd();
x = head[0] + d * ( -u[0] - w[0] );
y = head[1] + d * ( -u[1] - w[1] );
z = head[2] + d * ( -u[2] - w[2] );
glBegin( GL_LINE_STRIP );
glVertex3fv( head );
glVertex3f( x, y, z );
glEnd();
}
if( axis != Y )
{
cross( w, ayy, v );
(void) unit( v, v );
cross( v, w, u );
x = head[0] + d * ( u[0] - w[0] );
y = head[1] + d * ( u[1] - w[1] );
z = head[2] + d * ( u[2] - w[2] );
glBegin( GL_LINE_STRIP );
glVertex3fv( head );
glVertex3f( x, y, z );
glEnd();
x = head[0] + d * ( -u[0] - w[0] );
y = head[1] + d * ( -u[1] - w[1] );
z = head[2] + d * ( -u[2] - w[2] );
glBegin( GL_LINE_STRIP );
glVertex3fv( head );
glVertex3f( x, y, z );
glEnd();
}
if( axis != Z )
{
cross( w, azz, v );
(void) unit( v, v );
cross( v, w, u );
x = head[0] + d * ( u[0] - w[0] );
y = head[1] + d * ( u[1] - w[1] );
z = head[2] + d * ( u[2] - w[2] );
glBegin( GL_LINE_STRIP );
glVertex3fv( head );
glVertex3f( x, y, z );
glEnd();
x = head[0] + d * ( -u[0] - w[0] );
y = head[1] + d * ( -u[1] - w[1] );
z = head[2] + d * ( -u[2] - w[2] );
glBegin( GL_LINE_STRIP );
glVertex3fv( head );
glVertex3f( x, y, z );
glEnd();
}
/* done: */
}
float dot( float v1[3], float v2[3] )
{