glsmap.h
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:5k
源码类别:

GIS编程

开发平台:

Visual C++

  1. #ifndef __glsmap_h__
  2. #define __glsmap_h__
  3. /* Copyright (c) Mark J. Kilgard, 1998.  */
  4. /* This program is freely distributable without licensing fees
  5.    and is provided without guarantee or warrantee expressed or
  6.    implied. This program is -not- in the public domain. */
  7. #if defined(_WIN32)
  8. /* Try hard to avoid including <windows.h> to avoid name space pollution,
  9.    but Win32's <GL/gl.h> needs APIENTRY and WINGDIAPI defined properly. */
  10. # if 0
  11. #  define  WIN32_LEAN_AND_MEAN
  12. #  include <windows.h>
  13. # else
  14.    /* XXX This is from Win32's <windef.h> */
  15. #  ifndef APIENTRY
  16. #   if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)
  17. #    define APIENTRY    __stdcall
  18. #   else
  19. #    define APIENTRY
  20. #   endif
  21. #  endif
  22. #  ifndef CALLBACK
  23.     /* XXX This is from Win32's <winnt.h> */
  24. #   if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS)
  25. #    define CALLBACK __stdcall
  26. #   else
  27. #    define CALLBACK
  28. #   endif
  29. #  endif
  30.    /* XXX This is from Win32's <wingdi.h> and <winnt.h> */
  31. #  ifndef WINGDIAPI
  32. #   define WINGDIAPI __declspec(dllimport)
  33. #  endif
  34.    /* XXX This is from Win32's <ctype.h> */
  35. #  ifndef _WCHAR_T_DEFINED
  36. typedef unsigned short wchar_t;
  37. #   define _WCHAR_T_DEFINED
  38. #  endif
  39. # endif
  40. #pragma warning (disable:4244) /* Disable bogus conversion warnings. */
  41. #pragma warning (disable:4305)  /* VC++ 5.0 version of above warning. */
  42. #endif /* _WIN32 */
  43. #include <GL/gl.h>
  44. #ifdef __cplusplus
  45. extern "C" {
  46. #endif
  47. typedef enum {
  48.         SMAP_CLEAR_SMAP_TEXTURE = 0x1,
  49.         SMAP_GENERATE_VIEW_MIPMAPS = 0x2,
  50.         SMAP_GENERATE_SMAP_MIPMAPS = 0x4,
  51.         SMAP_GENERATE_MIPMAPS = 0x6  /* both of above */
  52. } SphereMapFlags;
  53. /* Cube view enumerants. */
  54. enum {
  55. SMAP_FRONT = 0,
  56. SMAP_TOP = 1,
  57. SMAP_BOTTOM = 2,
  58. SMAP_LEFT = 3,
  59. SMAP_RIGHT = 4,
  60. SMAP_BACK = 5
  61. };
  62. typedef struct _SphereMap SphereMap;
  63. extern SphereMap *smapCreateSphereMap(SphereMap *shareSmap);
  64. extern void smapDestroySphereMap(SphereMap *smap);
  65. extern void smapConfigureSphereMapMesh(SphereMap *smap, int steps, int rings, int edgeExtend);
  66. extern void smapSetSphereMapTexObj(SphereMap *smap, GLuint texobj);
  67. extern void smapSetViewTexObj(SphereMap *smap, GLuint texobj);
  68. extern void smapSetViewTexObjs(SphereMap *smap, GLuint texobjs[6]);
  69. extern void smapGetSphereMapTexObj(SphereMap *smap, GLuint *texobj);
  70. extern void smapGetViewTexObj(SphereMap *smap, GLuint *texobj);
  71. extern void smapGetViewTexObjs(SphereMap *smap, GLuint texobjs[6]);
  72. extern void smapSetFlags(SphereMap *smap, SphereMapFlags flags);
  73. extern void smapGetFlags(SphereMap *smap, SphereMapFlags *flags);
  74. extern void smapSetViewOrigin(SphereMap *smap, GLint x, GLint y);
  75. extern void smapSetSphereMapOrigin(SphereMap *smap, GLint x, GLint y);
  76. extern void smapGetViewOrigin(SphereMap *smap, GLint *x, GLint *y);
  77. extern void smapGetSphereMapOrigin(SphereMap *smap, GLint *x, GLint *y);
  78. extern void smapSetEye(SphereMap *smap, GLfloat eyex, GLfloat eyey, GLfloat eyez);
  79. extern void smapSetEyeVector(SphereMap *smap, GLfloat *eye);
  80. extern void smapSetUp(SphereMap *smap, GLfloat upx, GLfloat upy, GLfloat upz);
  81. extern void smapSetUpVector(SphereMap *smap, GLfloat *up);
  82. extern void smapSetObject(SphereMap *smap, GLfloat objx, GLfloat objy, GLfloat objz);
  83. extern void smapSetObjectVector(SphereMap *smap, GLfloat *obj);
  84. extern void smapGetEye(SphereMap *smap, GLfloat *eyex, GLfloat *eyey, GLfloat *eyez);
  85. extern void smapGetEyeVector(SphereMap *smap, GLfloat *eye);
  86. extern void smapGetUp(SphereMap *smap, GLfloat *upx, GLfloat *upy, GLfloat *upz);
  87. extern void smapGetUpVector(SphereMap *smap, GLfloat *up);
  88. extern void smapGetObject(SphereMap *smap, GLfloat *objx, GLfloat *objy, GLfloat *objz);
  89. extern void smapGetObjectVector(SphereMap *smap, GLfloat *obj);
  90. extern void smapSetNearFar(SphereMap *smap, GLfloat viewNear, GLfloat viewFar);
  91. extern void smapGetNearFar(SphereMap *smap, GLfloat *viewNear, GLfloat *viewFar);
  92. extern void smapSetSphereMapTexDim(SphereMap *smap, GLsizei texdim);
  93. extern void smapSetViewTexDim(SphereMap *smap, GLsizei texdim);
  94. extern void smapGetSphereMapTexDim(SphereMap *smap, GLsizei *texdim);
  95. extern void smapGetViewTexDim(SphereMap *smap, GLsizei *texdim);
  96. extern void smapSetContextData(SphereMap *smap, void *context);
  97. extern void smapGetContextData(SphereMap *smap, void **context);
  98. extern void smapSetPositionLightsFunc(SphereMap *smap, void (*positionLights)(int view, void *context));
  99. extern void smapSetDrawViewFunc(SphereMap *smap, void (*drawView)(int view, void *context));
  100. extern void smapGetPositionLightsFunc(SphereMap *smap, void (**positionLights)(int view, void *context));
  101. extern void smapGetDrawViewFunc(SphereMap *smap, void (**drawView)(int view, void *context));
  102. extern void smapGenViewTex(SphereMap *smap, int view);
  103. extern void smapGenViewTexs(SphereMap *smap);
  104. extern void smapGenSphereMapFromViewTexs(SphereMap *smap);
  105. extern void smapGenSphereMap(SphereMap *smap);
  106. extern void smapGenSphereMapWithOneViewTex(SphereMap *smap);
  107. extern int smapRvecToSt(float rvec[3], float st[2]);
  108. extern void smapStToRvec(float *st, float *rvec);
  109. #ifdef __cplusplus
  110. }
  111. #endif
  112. #endif /* __glsmap_h__ */