make IK compile on Mac OSX
This commit is contained in:
@@ -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] )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user