pike.git / lib / modules / GLU.pmod

version» Context lines:

pike.git/lib/modules/GLU.pmod:1:   /* -  * $Id: GLU.pmod,v 1.8 2000/09/28 03:38:25 hubbe Exp $ +  * $Id: GLU.pmod,v 1.9 2001/11/19 16:21:12 nilsson Exp $    *    * GL Utilities module.    */      #pike __REAL_VERSION__      #if constant(GL.glGet)   import GL;   import Math;      #ifndef M_PI   #define M_PI 3.1415926536   #endif - #define EPS 0.00001 +     -  + //! @fixme + //! Document this function.   void gluLookAt(float|object eye,float|object center,float|object up,    float ... old_api)   {    Matrix x,y,z;    float mag;       if (!objectp(eye))    {    eye=Matrix( ({eye,center,up }) );    center=Matrix( old_api[..2] );
pike.git/lib/modules/GLU.pmod:47:    @(y->vect()), 0.0,    @(z->vect()), 0.0,    0.0, 0.0, 0.0, 1.0 })/4)*({});       glMultMatrix( m );       /* Translate Eye to Origin */    glTranslate( ((array)(-1*eye))[0] );   }    + //! @fixme + //! Document this function.   void gluOrtho2D(float left, float right,    float bottom, float top)   {    glOrtho( left, right, bottom, top, -1.0, 1.0 );   }    -  + //! @fixme + //! Document this function.   void gluPerspective(float fovy, float aspect,    float zNear, float zFar)   {    float xmin, xmax, ymin, ymax;       ymax = zNear * tan( fovy * M_PI / 360.0 );    ymin = -ymax;       xmin = ymin * aspect;    xmax = ymax * aspect;       glFrustum( xmin, xmax, ymin, ymax, zNear, zFar );   }    -  + //! @fixme + //! Document this function.   void gluPickMatrix(float x, float y,    float width, float height,    array(int) viewport)   {    array(float) m=allocate(16);    float sx, sy;    float tx, ty;       sx = viewport[2] / width;    sy = viewport[3] / height;
pike.git/lib/modules/GLU.pmod:91:   #define M(row,col) m[col*4+row]    M(0,0) = sx; M(0,1) = 0.0; M(0,2) = 0.0; M(0,3) = tx;    M(1,0) = 0.0; M(1,1) = sy; M(1,2) = 0.0; M(1,3) = ty;    M(2,0) = 0.0; M(2,1) = 0.0; M(2,2) = 1.0; M(2,3) = 0.0;    M(3,0) = 0.0; M(3,1) = 0.0; M(3,2) = 0.0; M(3,3) = 1.0;   #undef M       glMultMatrix( m );   }    -  + //! @fixme + //! Document this function.   static void transform_point(array(float) out, array(float)m,    array(float) in)   {   #define M(row,col) m[col*4+row]    out[0] = M(0,0) * in[0] + M(0,1) * in[1] + M(0,2) * in[2] + M(0,3) * in[3];    out[1] = M(1,0) * in[0] + M(1,1) * in[1] + M(1,2) * in[2] + M(1,3) * in[3];    out[2] = M(2,0) * in[0] + M(2,1) * in[1] + M(2,2) * in[2] + M(2,3) * in[3];    out[3] = M(3,0) * in[0] + M(3,1) * in[1] + M(3,2) * in[2] + M(3,3) * in[3];   #undef M   }    -  + //! @fixme + //! Document this function.   array(float) gluProject(float objx, float objy,    float objz, array(float) model,    array(float) proj, array(int) viewport)      {    array(float) in=allocate(4),out=allocate(4);       in[0]=objx; in[1]=objy; in[2]=objz; in[3]=1.0;    transform_point(out,model,in);    transform_point(in,proj,out);