CodeForge QQ客服 CodeForge 400电话 客服电话 4006316121
首页 » 源代码 » 喷泉元代码 » gltools.h

gltools.h ( 文件浏览 )

文件源自:喷泉元代码
  • 吾问无为谓 发布于2014-04-19
  • 浏览次数:6
  • 下载次数:0
  • 下载需 1 积分
  • 侵权举报
			// GLTools.h
// OpenGL SuperBible
// Copyright 1998 - 2003 Richard S. Wright Jr..
// Code by Richard S. Wright Jr.
// All Macros prefixed with GLT_, all functions prefixed with glt... This
// should avoid most namespace problems
// Some of these functions allocate memory. Use CRT functions to free
// Report bugs to rwright@starstonesoftware.com

#ifndef __GLTOOLS__LIBRARY
#define __GLTOOLS__LIBRARY
//#define GL_BGRA_EXT
//#define GL_BGR_EXT
// Windows
#ifdef WIN32
#include <windows.h>
#include <winnt.h>
#include <gl/gl.h>
#include <gl/glu.h>
#elif defined __APPLE__
#include <Carbon/Carbon.h>
#include <OpenGL/gl.h>
#include <OpenGL/glu.h>
#include <OpenGL/glext.h>
#include <sys/time.h>
#else
// Assuming Linux
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
#include <GL/glext.h>
#include <sys/time.h>
#endif

// Universal includes
#include <math.h>



///////////////////////////////////////////////////////
// Useful constants
#define GLT_PI	3.14159265358979323846
#define GLT_PI_DIV_180 0.017453292519943296
#define GLT_INV_PI_DIV_180 57.2957795130823229

///////////////////////////////////////////////////////////////////////////////
// Useful shortcuts and macros
// Radians are king... but we need a way to swap back and forth
#define gltDegToRad(x)	((x)*GLT_PI_DIV_180)
#define gltRadToDeg(x)	((x)*GLT_INV_PI_DIV_180)


///////////////////////////////////////////////////////
// Some data types
typedef GLfloat GLTVector2[2];      // Two component floating point vector
typedef GLfloat GLTVector3[3];      // Three component floating point vector
typedef GLfloat GLTVector4[4];      // Four component floating point vector
typedef GLfloat GLTMatrix[16];      // A column major 4x4 matrix of type GLfloat

typedef struct{
                     // The Frame of reference container
    GLTVector3 vLocation;
    GLTVector3 vUp;
    GLTVector3 vForward;
    
} GLTFrame;

typedef struct 			    // High resolution timer
    {

    #ifdef WIN32
    LARGE_INTEGER m_LastCount;
    #elif defined __APPLE__
    struct timeval last;
    #endif
    
} GLTStopwatch;

    
///////////////////////////////////////////////////////
// Macros for big/little endian happiness
#define BYTE_SWAP(x)    x = ((x) >> 8) + ((x) << 8)


///////////////////////////////////////////////////////////////////////////////
//         THE LIBRARY....
///////////////////////////////////////////////////////////////////////////////

// vector functions in VectorMath.c
void gltAddVectors(const GLTVector3 vFirst, const GLTVector3 vSecond, GLTVector3 vResult);
void gltSubtractVectors(const GLTVector3 vFirst, const GLTVector3 vSecond, GLTVector3 vResult);
void gltScaleVector(GLTVector3 vVector, const GLfloat fScale);
GLfloat gltGetVectorLengthSqrd(const GLTVector3 vVector);
GLfloat gltGetVectorLength(const GLTVector3 vVector);
void gltNormalizeVector(GLTVector3 vNormal);
void gltGetNormalVector(const GLTVector3 vP1, const GLTVector3 vP2, const GLTVector3 vP3, GLTVector3 vNormal);
void gltCopyVector(const GLTVector3 vSource, GLTVector3 vDest);
GLfloat gltVectorDotProduct(const GLTVector3 u, const GLTVector3 v);
void gltVectorCrossProduct(const GLTVector3 vU, const GLTVector3 vV, GLTVector3 vResult);
void gltTransformPoint(const GLTVector3 vSrcPoint, const GLTMatrix mMatrix, GLTVector3 vPointOut);
void gltRotateVector(const GLTVector3 vSrcVector, const GLTMatrix mMatrix, GLTVector3 vPointOut);
void gltGetPlaneEquation(GLTVector3 vPoint1, GLTVector3 vPoint2, GLTVector3 vPoint3, GLTVector3 vPlane);
GLfloat gltDistanceToPlane(GLTVector3 vPoint, GLTVector4 vPlane);


//////////////////////////////////////////
// Other matrix functions in matrixmath.c
void gltLoadIdentityMatrix(GLTMatrix m);
void gltMultiplyMatrix(const GLTMatrix m1, const GLTMatrix m2, GLTMatrix mProduct );
void gltRotationMatrix(float angle, float x, float y, float z, GLTMatrix mMatrix);
void gltTranslationMatrix(GLfloat x, GLfloat y, GLfloat z, GLTMatrix mTranslate);
void gltScalingMatrix(GLfloat x, GLfloat y, GLfloat 
...
...
(完整源码请下载查看)
			
...
展开> <收缩

下载源码到电脑,阅读使用更方便

1 积分

快速下载
还剩0行未阅读,继续阅读
云测速

源码文件列表

温馨提示: 点击源码文件名可预览文件内容哦 ^_^
...
名称 大小 修改日期
11.pro581.00 B17-04-14|10:34
11.pro.user20.44 kB18-04-14|14:23
02app2.jpg74.27 kB20-12-13|22:08
044w1.bmp2.34 MB20-12-13|22:06
044w2.bmp117.24 kB20-12-13|22:08
05le2.jpg208.74 kB20-12-13|22:08
apple.3DS29.46 kB20-12-13|22:08
apple.jpg42.50 kB20-12-13|22:08
background.tga192.04 kB29-03-11|21:29
bl.jpg60.20 kB20-12-13|22:08
bl20120807.jpg509.63 kB20-12-13|22:08
bl20120808.jpg288.16 kB20-12-13|22:08
bolo.3DS122.90 kB20-12-13|22:08
bl.jpg60.20 kB20-12-13|22:08
bl20120807.jpg509.63 kB20-12-13|22:08
bl20120808.jpg288.16 kB20-12-13|22:08
bolo.3DS122.90 kB20-12-13|22:08
b菠萝.max1.16 MB20-12-13|22:09
left_bolo.3DS15.86 kB20-12-13|22:08
MAXFILES.TXT169.00 B20-12-13|22:08
right_bolo.3DS112.62 kB20-12-13|22:08
b菠萝.max1.16 MB20-12-13|22:08
FACE.3DS25.21 kB20-12-13|22:08
FACE.BMP96.73 kB20-12-13|22:08
halflemo.jpg223.82 kB20-12-13|22:08
helfapple.jpg25.74 kB20-12-13|22:08
left_bolo.3DS15.86 kB20-12-13|22:08
left_half_lemon.3DS83.98 kB20-12-13|22:08
left_half_melo.3DS16.50 kB20-12-13|22:08
left_half_melo.max280.00 kB20-12-13|22:08
MAXFILES.TXT169.00 B20-12-13|22:08
melo.3DS25.21 kB20-12-13|22:08
nimeng.3DS169.28 kB20-12-13|22:08
nimeng.JPG534.01 kB20-12-13|22:08
park.3ds970.81 kB13-04-14|11:06
right_bolo.3DS112.62 kB20-12-13|22:08
right_half_lemon.3DS83.98 kB20-12-13|22:08
right_half_melo.3DS16.37 kB20-12-13|22:08
XIGUA.BMP329.57 kB20-12-13|22:08
xigua.max196.00 kB20-12-13|22:08
hamigua.3DS108.64 kB20-12-13|22:08
hamigua.jpg107.20 kB20-12-13|22:08
hmg.jpg49.13 kB20-12-13|22:08
MAXFILES.TXT166.00 B20-12-13|22:08
____2.JPG3.84 MB20-12-13|22:09
哈密瓜.max1.04 MB20-12-13|22:09
3DS.cpp20.58 kB20-12-13|22:08
3DS.H4.00 kB20-12-13|22:08
admovie.jpg0.00 B25-03-11|16:51
background.tga768.39 kB16-04-14|20:54
11.exe903.92 kB18-04-14|14:55
3DS.o104.83 kB15-04-14|17:20
FruitObject.o138.40 kB17-04-14|09:16
ParkModel.o138.33 kB17-04-14|10:59
penquan.o141.24 kB18-04-14|14:55
FruitObject.cpp4.28 kB20-12-13|22:08
FruitObject.h630.00 B20-12-13|22:08
glext.h295.63 kB09-02-04|02:42
gltools.h5.86 kB13-04-14|11:37
glut.h20.94 kB07-11-03|14:57
ground.TGA2.32 MB30-03-11|00:25
ground1.TGA192.04 kB08-04-11|00:44
ground11.TGA192.04 kB30-03-11|00:34
GROUND2.TGA192.02 kB01-03-11|15:56
loadtga.cpp3.83 kB13-04-14|11:45
main.cpp6.43 kB10-04-14|11:33
Makefile5.82 kB17-04-14|10:59
Makefile.Debug5.24 kB17-04-14|10:59
Makefile.Release5.30 kB17-04-14|10:59
openglsb.h716.00 B09-03-11|14:00
ParkModel.cpp4.26 kB17-04-14|10:37
ParkModel.h666.00 B17-04-14|10:37
PARTICLE.TGA3.02 kB01-03-11|15:55
penquan.cpp22.92 kB18-04-14|14:55
main.cpp23.60 kB10-04-14|19:22
text.pro306.00 B10-04-14|19:09
text.pro.user20.64 kB10-04-14|19:38
Makefile5.73 kB10-04-14|19:10
Makefile.Debug4.65 kB10-04-14|19:10
Makefile.Release4.69 kB10-04-14|19:10
wglext.h26.46 kB09-02-04|01:12
雨中漫步.mp31.60 MB16-07-08|15:42
loadtga.o3.49 kB11-04-14|14:21
main.o105.20 kB10-04-14|11:27
penquan.o142.16 kB11-04-14|16:09
Makefile5.68 kB11-04-14|16:52
Makefile.Debug4.88 kB11-04-14|16:52
Makefile.Release4.92 kB11-04-14|16:52
b菠萝0.00 B19-04-14|09:46
哈密瓜0.00 B19-04-14|09:46
debug0.00 B11-04-14|16:12
release0.00 B10-04-14|19:10
3dmodel0.00 B19-04-14|09:46
debug0.00 B19-04-14|09:46
release0.00 B12-04-14|00:44
text0.00 B19-04-14|09:46
text-build-desktop-Qt_4_7_3__4_7_3____0.00 B19-04-14|09:46
debug0.00 B19-04-14|09:46
release0.00 B10-04-14|10:39
110.00 B19-04-14|09:46
11-build-desktop-Qt_4_7_3__4_7_3____0.00 B19-04-14|09:46
penquan0.00 B19-04-14|09:46
云测速

gltools.h (12.85 MB)

需要 1 积分
您持有 积分

CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了 了解更多

您的积分不足

支付宝优惠套餐快速获取 30 积分

订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。

更多付款方式:网银PayPal

上传代码,免费获取

您本次下载所消耗的积分将转交上传作者。

同一源码,30天内重复下载,只扣除一次积分。

登录 CodeForge

还没有CodeForge账号? 立即注册
关注微博
联系客服

Switch to the English version?

Yes
CodeForge 英文版
No
CodeForge 中文版

完善个人资料,获价值¥30元积分奖励!

^_^"呃 ...

Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧
好的