home *** CD-ROM | disk | FTP | other *** search
-
- /* Copyright (c) Mark J. Kilgard, 1998. */
-
- /* This program is freely distributable without licensing fees
- and is provided without guarantee or warrantee expressed or
- implied. This program is -not- in the public domain. */
-
- #include <GL/glsmap.h>
- #include <stdlib.h>
-
- #include "glsmapint.h"
-
- static SphereMapMesh *
- createSphereMapMesh(void)
- {
- SphereMapMesh *mesh;
-
- mesh = (SphereMapMesh*) malloc(sizeof(SphereMapMesh));
-
- mesh->steps = 8;
- mesh->rings = 3;
- mesh->edgeExtend = 1;
-
- mesh->face = NULL;
- mesh->back = NULL;
-
- mesh->refcnt = 0;
-
- return mesh;
- }
-
- static void
- refSphereMapMesh(SphereMapMesh *mesh)
- {
- mesh->refcnt++;
- }
-
- SphereMap *
- smapCreateSphereMap(SphereMap *shareSmap)
- {
- SphereMap *smap;
- int i;
-
- smap = (SphereMap*) malloc(sizeof(SphereMap));
-
- if (shareSmap) {
- smap->mesh = shareSmap->mesh;
- } else {
- smap->mesh = createSphereMapMesh();
- }
- refSphereMapMesh(smap->mesh);
-
- /* Default texture objects. */
- smap->smapTexObj = 1001;
- for (i=0; i<6; i++) {
- smap->viewTexObjs[i] = i+1002;
- }
- smap->viewTexObj = 1008;
-
- /* Default texture dimensions 64x64 */
- smap->viewTexDim = 64;
- smap->smapTexDim = 64;
-
- /* Default origin at lower left. */
- smap->viewOrigin[X] = 0;
- smap->viewOrigin[Y] = 0;
- smap->smapOrigin[X] = 0;
- smap->smapOrigin[Y] = 0;
-
- /* Flags. */
- smap->flags = (SphereMapFlags) 0;
-
- /* Default eye vector. */
- smap->eye[X] = 0.0;
- smap->eye[Y] = 0.0;
- smap->eye[Z] = -10.0;
-
- /* Default up vector. */
- smap->up[X] = 0.0;
- smap->up[Y] = 0.1;
- smap->up[Z] = 0.0;
-
- /* Default object location vector. */
- smap->obj[X] = 0.0;
- smap->obj[Y] = 0.0;
- smap->obj[Z] = 0.0;
-
- /* Default near and far clip planes. */
- smap->viewNear = 0.1;
- smap->viewFar = 20.0;
-
- smap->positionLights = NULL;
- smap->drawView = NULL;
-
- smap->context = NULL;
-
- return smap;
- }
-