
/******************chaptrail**********************************/
void whereis3f(float xx, float yy, float zz, float *there){
   /* there = U'*(X-m) = affinv*X */
   xx -= aff[12] ; yy -= aff[13]; zz -= aff[14];
   there[0]=aff[0]*xx + aff[1]*yy + aff[2]*zz;
   there[1]=aff[4]*xx + aff[5]*yy + aff[6]*zz;
   there[2]=aff[8]*xx + aff[9]*yy + aff[10]*zz;
}
void maketrail(void){
    float right = tiewidth, left= -tiewidth;
    if(trailtie==maxtie)trailtie=0;
    whereis3f( right,0,0, trail[2*trailtie]);
    whereis3f(left, 0,0, trail[2*trailtie+1]);
    trailtie++;
}
void writetrail(void){
    int ii,jj ;
    FOR(ii,0,trailtie){
    FOR(jj,0,3)printf(" %.2g ", trail[2*ii][jj]);
    printf("\n");
    FOR(jj,0,3)printf(" %.2g ", trail[2*ii +1][jj]);
    printf("\n");
    }
    trailwryte=0;
}
void drawtrail(void){
    int ii;
    glColor3f(1.0,0.8,0.0);
    /* glBegin(GL_LINE_STRIP); */
    glBegin(GL_LINES);
    FOR(ii,0,trailtie-1){
    glVertex3f(trail[2*ii][0],  trail[2*ii][1],trail[2*ii][2]);
    glVertex3f(trail[2*ii+1][0],  trail[2*ii+1][1],trail[2*ii+1][2]);
    }
    glEnd();

}

/******************chaptrail**********************************/

