Init
This commit is contained in:
100
exchange/exchangesource/Viewer/trackball.h
Normal file
100
exchange/exchangesource/Viewer/trackball.h
Normal file
@@ -0,0 +1,100 @@
|
||||
/***********************************************************************************************************************
|
||||
*
|
||||
* Copyright (c) 2010 - 2022 by Tech Soft 3D, Inc.
|
||||
* The information contained herein is confidential and proprietary to Tech Soft 3D, Inc., and considered a trade secret
|
||||
* as defined under civil and criminal statutes. Tech Soft 3D shall pursue its civil and criminal remedies in the event
|
||||
* of unauthorized use or misappropriation of its trade secrets. Use of this information by anyone other than authorized
|
||||
* employees of Tech Soft 3D, Inc. is granted only under a written non-disclosure agreement, expressly prescribing the
|
||||
* scope and manner of such use.
|
||||
*
|
||||
***********************************************************************************************************************/
|
||||
|
||||
/*
|
||||
* 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 gltbInit() in before any other gltb call
|
||||
* o call gltbReshape() from the reshape callback
|
||||
* o call gltbMatrix() to get the trackball matrix rotation
|
||||
* o call gltbStartMotion() to begin trackball movememt
|
||||
* o call gltbStopMotion() to stop trackball movememt
|
||||
* o call gltbMotion() from the motion callback
|
||||
* o call gltbAnimate(GL_TRUE) if you want the trackball to continue
|
||||
* spinning after the mouse button has been released
|
||||
* o call gltbAnimate(GL_FALSE) if you want the trackball to stop
|
||||
* spinning after the mouse button has been released
|
||||
*
|
||||
* Typical setup:
|
||||
*
|
||||
*
|
||||
void
|
||||
init(void)
|
||||
{
|
||||
gltbInit(GLUT_MIDDLE_BUTTON);
|
||||
gltbAnimate(GL_TRUE);
|
||||
. . .
|
||||
}
|
||||
|
||||
void
|
||||
reshape(int width, int height)
|
||||
{
|
||||
gltbReshape(width, height);
|
||||
. . .
|
||||
}
|
||||
|
||||
void
|
||||
display(void)
|
||||
{
|
||||
glPushMatrix();
|
||||
|
||||
gltbMatrix();
|
||||
. . . draw the scene . . .
|
||||
|
||||
glPopMatrix();
|
||||
}
|
||||
|
||||
void
|
||||
mouse(int button, int state, int x, int y)
|
||||
{
|
||||
gltbMouse(button, state, x, y);
|
||||
. . .
|
||||
}
|
||||
|
||||
void
|
||||
motion(int x, int y)
|
||||
{
|
||||
gltbMotion(x, y);
|
||||
. . .
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char** argv)
|
||||
{
|
||||
. . .
|
||||
init();
|
||||
glutReshapeFunc(reshape);
|
||||
glutDisplayFunc(display);
|
||||
glutMouseFunc(mouse);
|
||||
glutMotionFunc(motion);
|
||||
. . .
|
||||
}
|
||||
***/
|
||||
|
||||
|
||||
/* functions */
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user