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

GIS编程

开发平台:

Visual C++

  1. /* Copyright (c) Mark J. Kilgard, 1998.  */
  2. /* This program is freely distributable without licensing fees
  3.    and is provided without guarantee or warrantee expressed or
  4.    implied. This program is -not- in the public domain. */
  5. #include <GL/glsmap.h>
  6. #include <stdlib.h>
  7. #include "glsmapint.h"
  8. static SphereMapMesh *
  9. createSphereMapMesh(void)
  10. {
  11. SphereMapMesh *mesh;
  12. mesh = (SphereMapMesh*) malloc(sizeof(SphereMapMesh));
  13. mesh->steps = 8;
  14. mesh->rings = 3;
  15. mesh->edgeExtend = 1;
  16. mesh->face = NULL;
  17. mesh->back = NULL;
  18. mesh->refcnt = 0;
  19. return mesh;
  20. }
  21. static void
  22. refSphereMapMesh(SphereMapMesh *mesh)
  23. {
  24. mesh->refcnt++;
  25. }
  26. SphereMap *
  27. smapCreateSphereMap(SphereMap *shareSmap)
  28. {
  29. SphereMap *smap;
  30. int i;
  31. smap = (SphereMap*) malloc(sizeof(SphereMap));
  32. if (shareSmap) {
  33. smap->mesh = shareSmap->mesh;
  34. } else {
  35. smap->mesh = createSphereMapMesh();
  36. }
  37. refSphereMapMesh(smap->mesh);
  38. /* Default texture objects. */
  39. smap->smapTexObj = 1001;
  40. for (i=0; i<6; i++) {
  41. smap->viewTexObjs[i] = i+1002;
  42. }
  43. smap->viewTexObj = 1008;
  44. /* Default texture dimensions 64x64 */
  45. smap->viewTexDim = 64;
  46. smap->smapTexDim = 64;
  47. /* Default origin at lower left. */
  48. smap->viewOrigin[X] = 0;
  49. smap->viewOrigin[Y] = 0;
  50. smap->smapOrigin[X] = 0;
  51. smap->smapOrigin[Y] = 0;
  52.         /* Flags. */
  53.         smap->flags = (SphereMapFlags) 0;
  54. /* Default eye vector. */
  55. smap->eye[X] = 0.0;
  56. smap->eye[Y] = 0.0;
  57. smap->eye[Z] = -10.0;
  58. /* Default up vector. */
  59. smap->up[X] = 0.0;
  60. smap->up[Y] = 0.1;
  61. smap->up[Z] = 0.0;
  62. /* Default object location vector. */
  63. smap->obj[X] = 0.0;
  64. smap->obj[Y] = 0.0;
  65. smap->obj[Z] = 0.0;
  66. /* Default near and far clip planes. */
  67. smap->viewNear = 0.1;
  68. smap->viewFar = 20.0;
  69. smap->positionLights = NULL;
  70. smap->drawView = NULL;
  71. smap->context = NULL;
  72. return smap;
  73. }