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

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 "glsmapint.h"
  7. void
  8. __smapDrawSphereMapMeshSide(SphereMapMesh *mesh, int side)
  9. {
  10. INITFACE(mesh);
  11. int i, j;
  12. for (i=0; i<mesh->steps-1; i++) {
  13. glBegin(GL_QUAD_STRIP);
  14. for (j=0; j<mesh->steps; j++) {
  15. glTexCoord2fv (FACEst(side,i,j));
  16. glVertex2fv   (FACExy(side,i,j));
  17. glTexCoord2fv (FACEst(side,i+1,j));
  18. glVertex2fv   (FACExy(side,i+1,j));
  19. }
  20. glEnd();
  21. }
  22. }
  23. /* Back face specially rendered for its singularity! */
  24. void
  25. __smapDrawSphereMapMeshBack(SphereMapMesh *mesh)
  26. {
  27. INITBACK(mesh);
  28. int side, i, j;
  29. for (side=0; side<4; side++) {
  30. for (j=0; j<mesh->rings-1+mesh->edgeExtend; j++) {
  31. glBegin(GL_QUAD_STRIP);
  32. for (i=0; i<mesh->steps; i++) {
  33. glTexCoord2fv (BACKst(side,j,i));
  34. glVertex2fv   (BACKxy(side,j,i));
  35. glTexCoord2fv (BACKst(side,j+1,i));
  36. glVertex2fv   (BACKxy(side,j+1,i));
  37. }
  38. glEnd();
  39. }
  40. }
  41. }