Edit

kc3-lang/ftgl/demo/tb.h

Branch :

  • Show log

    Commit

  • Author : henry
    Date : 2002-02-16 05:42:47
    Hash : 3922d728
    Message : Added EXTERN "C"

  • demo/tb.h
  • /* 
     *  Simple trackball-like motion adapted (ripped off) from projtex.c
     *  (written by David Yu and David Blythe).  See the SIGGRAPH '96
     *  Advanced OpenGL course notes.
     *
     *
     *  Usage:
     *  
     *  o  call tbInit() in before any other tb call
     *  o  call tbReshape() from the reshape callback
     *  o  call tbMatrix() to get the trackball matrix rotation
     *  o  call tbStartMotion() to begin trackball movememt
     *  o  call tbStopMotion() to stop trackball movememt
     *  o  call tbMotion() from the motion callback
     *  o  call tbAnimate(GL_TRUE) if you want the trackball to continue 
     *     spinning after the mouse button has been released
     *  o  call tbAnimate(GL_FALSE) if you want the trackball to stop 
     *     spinning after the mouse button has been released
     *
     *  Typical setup:
     *
     *
        void
        init(void)
        {
          tbInit(GLUT_MIDDLE_BUTTON);
          tbAnimate(GL_TRUE);
          . . .
        }
    
        void
        reshape(int width, int height)
        {
          tbReshape(width, height);
          . . .
        }
    
        void
        display(void)
        {
          glPushMatrix();
    
          tbMatrix();
          . . . draw the scene . . .
    
          glPopMatrix();
        }
    
        void
        mouse(int button, int state, int x, int y)
        {
          tbMouse(button, state, x, y);
          . . .
        }
    
        void
        motion(int x, int y)
        {
          tbMotion(x, y);
          . . .
        }
    
        int
        main(int argc, char** argv)
        {
          . . .
          init();
          glutReshapeFunc(reshape);
          glutDisplayFunc(display);
          glutMouseFunc(mouse);
          glutMotionFunc(motion);
          . . .
        }
     *
     * */
    
    
    /* functions */
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    void
    tbInit(GLuint button);
    
    void
    tbMatrix(void);
    
    void
    tbReshape(int width, int height);
    
    void
    tbMouse(int button, int state, int x, int y);
    
    void
    tbMotion(int x, int y);
    
    void
    tbAnimate(GLboolean animate);
    
    #ifdef __cplusplus
    }
    #endif