*
* A spherical version of the Realtime Optimally-Adapting Meshes (ROAM)
* algorithm is use for drawing the surface of the planet. ROAM provide a
- * continuous level-of-detail mesh of the planet which is used by #GisOpenGL
- * when drawing surface textures for GisTiles.
+ * continuous level-of-detail mesh of the planet which is used by #GritsOpenGL
+ * when drawing surface textures for GritsTiles.
*
* This implementation of the ROAM algorithm is based on an octahedron as the
* base model.
#include <GL/glu.h>
#include "gpqueue.h"
-#include "gis-util.h"
+#include "grits-util.h"
#include "roam.h"
/*
// triangle->split->lat, l->lat);
/* Update normal */
- double pa[3];
- double pb[3];
- pa[0] = triangle->p.l->x - triangle->p.m->x;
- pa[1] = triangle->p.l->y - triangle->p.m->y;
- pa[2] = triangle->p.l->z - triangle->p.m->z;
-
- pb[0] = triangle->p.r->x - triangle->p.m->x;
- pb[1] = triangle->p.r->y - triangle->p.m->y;
- pb[2] = triangle->p.r->z - triangle->p.m->z;
-
- triangle->norm[0] = pa[1] * pb[2] - pa[2] * pb[1];
- triangle->norm[1] = pa[2] * pb[0] - pa[0] * pb[2];
- triangle->norm[2] = pa[0] * pb[1] - pa[1] * pb[0];
-
- double total = sqrt(triangle->norm[0] * triangle->norm[0] +
- triangle->norm[1] * triangle->norm[1] +
- triangle->norm[2] * triangle->norm[2]);
-
- triangle->norm[0] /= total;
- triangle->norm[1] /= total;
- triangle->norm[2] /= total;
+ crossd3((gdouble*)triangle->p.l,
+ (gdouble*)triangle->p.m,
+ (gdouble*)triangle->p.r, triangle->norm);
+ normd(triangle->norm);
/* Store bounding box, for get_intersect */
RoamPoint *p[] = {l,m,r};