1
0
Fork 0

Lots of updates to get back in sync with changes made over in .../Src/

This commit is contained in:
curt 1998-01-27 18:36:53 +00:00
parent 91d6c58aec
commit f389ae86de
6 changed files with 225 additions and 204 deletions

View file

@ -31,12 +31,12 @@
#include "assemtris.h"
#include "../../Src/Include/constants.h"
#include "../../Src/Include/types.h"
#include "../../Src/Math/fg_geodesy.h"
#include "../../Src/Math/mat3.h"
#include "../../Src/Math/polar.h"
#include "../../Src/Scenery/tileutils.h"
#include <Include/fg_constants.h>
#include <Include/fg_types.h>
#include <Math/fg_geodesy.h>
#include <Math/mat3.h>
#include <Math/polar.h>
#include <Scenery/bucketutils.h>
int nodecount = 0;
@ -44,9 +44,9 @@ int nodecount = 0;
float nodes[MAX_NODES][3];
struct bucket my_index;
struct bucket ne_index, nw_index, sw_index, se_index;
struct bucket north_index, south_index, east_index, west_index;
struct fgBUCKET my_index;
struct fgBUCKET ne_index, nw_index, sw_index, se_index;
struct fgBUCKET north_index, south_index, east_index, west_index;
/* return the file base name ( foo/bar/file.ext = file.ext ) */
@ -108,26 +108,26 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
long int index;
if ( strcmp(ext, ".sw") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.sw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&west_index, scene_path);
index = gen_index(&west_index);
fgBucketGenBasePath(&west_index, scene_path);
index = fgBucketGenIndex(&west_index);
sprintf(file, "%s/%s/%ld.1.se", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&sw_index, scene_path);
index = gen_index(&sw_index);
fgBucketGenBasePath(&sw_index, scene_path);
index = fgBucketGenIndex(&sw_index);
sprintf(file, "%s/%s/%ld.1.ne", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&south_index, scene_path);
index = gen_index(&south_index);
fgBucketGenBasePath(&south_index, scene_path);
index = fgBucketGenIndex(&south_index);
sprintf(file, "%s/%s/%ld.1.nw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -135,26 +135,26 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".se") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.se", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&east_index, scene_path);
index = gen_index(&east_index);
fgBucketGenBasePath(&east_index, scene_path);
index = fgBucketGenIndex(&east_index);
sprintf(file, "%s/%s/%ld.1.sw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&se_index, scene_path);
index = gen_index(&se_index);
fgBucketGenBasePath(&se_index, scene_path);
index = fgBucketGenIndex(&se_index);
sprintf(file, "%s/%s/%ld.1.nw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&south_index, scene_path);
index = gen_index(&south_index);
fgBucketGenBasePath(&south_index, scene_path);
index = fgBucketGenIndex(&south_index);
sprintf(file, "%s/%s/%ld.1.ne", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -162,26 +162,26 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".ne") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.ne", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&east_index, scene_path);
index = gen_index(&east_index);
fgBucketGenBasePath(&east_index, scene_path);
index = fgBucketGenIndex(&east_index);
sprintf(file, "%s/%s/%ld.1.nw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&ne_index, scene_path);
index = gen_index(&ne_index);
fgBucketGenBasePath(&ne_index, scene_path);
index = fgBucketGenIndex(&ne_index);
sprintf(file, "%s/%s/%ld.1.sw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&north_index, scene_path);
index = gen_index(&north_index);
fgBucketGenBasePath(&north_index, scene_path);
index = fgBucketGenIndex(&north_index);
sprintf(file, "%s/%s/%ld.1.se", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -189,26 +189,26 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".nw") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.nw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&west_index, scene_path);
index = gen_index(&west_index);
fgBucketGenBasePath(&west_index, scene_path);
index = fgBucketGenIndex(&west_index);
sprintf(file, "%s/%s/%ld.1.ne", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&nw_index, scene_path);
index = gen_index(&nw_index);
fgBucketGenBasePath(&nw_index, scene_path);
index = fgBucketGenIndex(&nw_index);
sprintf(file, "%s/%s/%ld.1.se", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&north_index, scene_path);
index = gen_index(&north_index);
fgBucketGenBasePath(&north_index, scene_path);
index = fgBucketGenIndex(&north_index);
sprintf(file, "%s/%s/%ld.1.sw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -216,14 +216,14 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".south") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.south", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&south_index, scene_path);
index = gen_index(&south_index);
fgBucketGenBasePath(&south_index, scene_path);
index = fgBucketGenIndex(&south_index);
sprintf(file, "%s/%s/%ld.1.north", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -231,14 +231,14 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".north") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.north", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&north_index, scene_path);
index = gen_index(&north_index);
fgBucketGenBasePath(&north_index, scene_path);
index = fgBucketGenIndex(&north_index);
sprintf(file, "%s/%s/%ld.1.south", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -246,14 +246,14 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".west") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.west", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&west_index, scene_path);
index = gen_index(&west_index);
fgBucketGenBasePath(&west_index, scene_path);
index = fgBucketGenIndex(&west_index);
sprintf(file, "%s/%s/%ld.1.east", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -261,14 +261,14 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".east") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.east", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&east_index, scene_path);
index = gen_index(&east_index);
fgBucketGenBasePath(&east_index, scene_path);
index = fgBucketGenIndex(&east_index);
sprintf(file, "%s/%s/%ld.1.west", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -276,8 +276,8 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".body") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.body", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -421,20 +421,20 @@ int main(int argc, char **argv) {
}
tmp_index = atoi(temp);
printf("%ld\n", tmp_index);
parse_index(tmp_index, &my_index);
fgBucketParseIndex(tmp_index, &my_index);
printf("bucket = %d %d %d %d\n",
my_index.lon, my_index.lat, my_index.x, my_index.y);
/* generate the indexes of the neighbors */
offset_bucket(&my_index, &ne_index, 1, 1);
offset_bucket(&my_index, &nw_index, -1, 1);
offset_bucket(&my_index, &se_index, 1, -1);
offset_bucket(&my_index, &sw_index, -1, -1);
fgBucketOffset(&my_index, &ne_index, 1, 1);
fgBucketOffset(&my_index, &nw_index, -1, 1);
fgBucketOffset(&my_index, &se_index, 1, -1);
fgBucketOffset(&my_index, &sw_index, -1, -1);
offset_bucket(&my_index, &north_index, 0, 1);
offset_bucket(&my_index, &south_index, 0, -1);
offset_bucket(&my_index, &east_index, 1, 0);
offset_bucket(&my_index, &west_index, -1, 0);
fgBucketOffset(&my_index, &north_index, 0, 1);
fgBucketOffset(&my_index, &south_index, 0, -1);
fgBucketOffset(&my_index, &east_index, 1, 0);
fgBucketOffset(&my_index, &west_index, -1, 0);
/*
printf("Corner indexes = %ld %ld %ld %ld\n",
@ -454,11 +454,14 @@ int main(int argc, char **argv) {
/* $Log$
/* Revision 1.2 1998/01/15 21:33:36 curt
/* Assembling triangles and building a new .node file with the proper shared
/* vertices now works. Now we just have to use the shared normals and we'll
/* be all set.
/* Revision 1.3 1998/01/27 18:37:00 curt
/* Lots of updates to get back in sync with changes made over in .../Src/
/*
* Revision 1.2 1998/01/15 21:33:36 curt
* Assembling triangles and building a new .node file with the proper shared
* vertices now works. Now we just have to use the shared normals and we'll
* be all set.
*
* Revision 1.1 1998/01/15 02:45:26 curt
* Initial revision.
*

View file

@ -34,12 +34,12 @@
#include "splittris.h"
#include "../../Src/Include/constants.h"
#include "../../Src/Include/types.h"
#include "../../Src/Math/fg_geodesy.h"
#include "../../Src/Math/mat3.h"
#include "../../Src/Math/polar.h"
#include "../../Src/Scenery/tileutils.h"
#include <Include/fg_constants.h>
#include <Include/fg_types.h>
#include <Math/fg_geodesy.h>
#include <Math/mat3.h>
#include <Math/polar.h>
#include <Scenery/bucketutils.h>
int nodecount, tricount;
@ -51,8 +51,8 @@ int new_tris[MAX_TRIS][3];
struct fgCartesianPoint nodes_cart[MAX_NODES];
struct bucket ne_index, nw_index, sw_index, se_index;
struct bucket north_index, south_index, east_index, west_index;
struct fgBUCKET ne_index, nw_index, sw_index, se_index;
struct fgBUCKET north_index, south_index, east_index, west_index;
/* convert a geodetic point lon(arcsec), lat(arcsec), elev(meter) to
* a cartesian point */
@ -260,20 +260,20 @@ int shared_object_exists(char *basepath, char *ext) {
long int index;
if ( strcmp(ext, ".sw") == 0 ) {
gen_base_path(&west_index, scene_path);
index = gen_index(&west_index);
fgBucketGenBasePath(&west_index, scene_path);
index = fgBucketGenIndex(&west_index);
sprintf(file, "%s/%s/%ld.1.se", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&sw_index, scene_path);
index = gen_index(&sw_index);
fgBucketGenBasePath(&sw_index, scene_path);
index = fgBucketGenIndex(&sw_index);
sprintf(file, "%s/%s/%ld.1.ne", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&south_index, scene_path);
index = gen_index(&south_index);
fgBucketGenBasePath(&south_index, scene_path);
index = fgBucketGenIndex(&south_index);
sprintf(file, "%s/%s/%ld.1.nw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -281,20 +281,20 @@ int shared_object_exists(char *basepath, char *ext) {
}
if ( strcmp(ext, ".se") == 0 ) {
gen_base_path(&east_index, scene_path);
index = gen_index(&east_index);
fgBucketGenBasePath(&east_index, scene_path);
index = fgBucketGenIndex(&east_index);
sprintf(file, "%s/%s/%ld.1.sw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&se_index, scene_path);
index = gen_index(&se_index);
fgBucketGenBasePath(&se_index, scene_path);
index = fgBucketGenIndex(&se_index);
sprintf(file, "%s/%s/%ld.1.nw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&south_index, scene_path);
index = gen_index(&south_index);
fgBucketGenBasePath(&south_index, scene_path);
index = fgBucketGenIndex(&south_index);
sprintf(file, "%s/%s/%ld.1.ne", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -302,20 +302,20 @@ int shared_object_exists(char *basepath, char *ext) {
}
if ( strcmp(ext, ".ne") == 0 ) {
gen_base_path(&east_index, scene_path);
index = gen_index(&east_index);
fgBucketGenBasePath(&east_index, scene_path);
index = fgBucketGenIndex(&east_index);
sprintf(file, "%s/%s/%ld.1.nw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&ne_index, scene_path);
index = gen_index(&ne_index);
fgBucketGenBasePath(&ne_index, scene_path);
index = fgBucketGenIndex(&ne_index);
sprintf(file, "%s/%s/%ld.1.sw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&north_index, scene_path);
index = gen_index(&north_index);
fgBucketGenBasePath(&north_index, scene_path);
index = fgBucketGenIndex(&north_index);
sprintf(file, "%s/%s/%ld.1.se", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -323,20 +323,20 @@ int shared_object_exists(char *basepath, char *ext) {
}
if ( strcmp(ext, ".nw") == 0 ) {
gen_base_path(&west_index, scene_path);
index = gen_index(&west_index);
fgBucketGenBasePath(&west_index, scene_path);
index = fgBucketGenIndex(&west_index);
sprintf(file, "%s/%s/%ld.1.ne", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&nw_index, scene_path);
index = gen_index(&nw_index);
fgBucketGenBasePath(&nw_index, scene_path);
index = fgBucketGenIndex(&nw_index);
sprintf(file, "%s/%s/%ld.1.se", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&north_index, scene_path);
index = gen_index(&north_index);
fgBucketGenBasePath(&north_index, scene_path);
index = fgBucketGenIndex(&north_index);
sprintf(file, "%s/%s/%ld.1.sw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -344,8 +344,8 @@ int shared_object_exists(char *basepath, char *ext) {
}
if ( strcmp(ext, ".south") == 0 ) {
gen_base_path(&south_index, scene_path);
index = gen_index(&south_index);
fgBucketGenBasePath(&south_index, scene_path);
index = fgBucketGenIndex(&south_index);
sprintf(file, "%s/%s/%ld.1.north", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -353,8 +353,8 @@ int shared_object_exists(char *basepath, char *ext) {
}
if ( strcmp(ext, ".north") == 0 ) {
gen_base_path(&north_index, scene_path);
index = gen_index(&north_index);
fgBucketGenBasePath(&north_index, scene_path);
index = fgBucketGenIndex(&north_index);
sprintf(file, "%s/%s/%ld.1.south", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -362,8 +362,8 @@ int shared_object_exists(char *basepath, char *ext) {
}
if ( strcmp(ext, ".west") == 0 ) {
gen_base_path(&west_index, scene_path);
index = gen_index(&west_index);
fgBucketGenBasePath(&west_index, scene_path);
index = fgBucketGenIndex(&west_index);
sprintf(file, "%s/%s/%ld.1.east", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -371,8 +371,8 @@ int shared_object_exists(char *basepath, char *ext) {
}
if ( strcmp(ext, ".east") == 0 ) {
gen_base_path(&east_index, scene_path);
index = gen_index(&east_index);
fgBucketGenBasePath(&east_index, scene_path);
index = fgBucketGenIndex(&east_index);
sprintf(file, "%s/%s/%ld.1.west", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -557,7 +557,7 @@ void dump_obj(char *basename, char *basepath) {
int main(int argc, char **argv) {
char basename[256], basepath[256], temp[256];
struct bucket p;
struct fgBUCKET p;
long int index;
int len;
@ -577,19 +577,19 @@ int main(int argc, char **argv) {
}
index = atoi(temp);
printf("%ld\n", index);
parse_index(index, &p);
fgBucketParseIndex(index, &p);
printf("bucket = %d %d %d %d\n", p.lon, p.lat, p.x, p.y);
/* generate the indexes of the neighbors */
offset_bucket(&p, &ne_index, 1, 1);
offset_bucket(&p, &nw_index, -1, 1);
offset_bucket(&p, &se_index, 1, -1);
offset_bucket(&p, &sw_index, -1, -1);
fgBucketOffset(&p, &ne_index, 1, 1);
fgBucketOffset(&p, &nw_index, -1, 1);
fgBucketOffset(&p, &se_index, 1, -1);
fgBucketOffset(&p, &sw_index, -1, -1);
offset_bucket(&p, &north_index, 0, 1);
offset_bucket(&p, &south_index, 0, -1);
offset_bucket(&p, &east_index, 1, 0);
offset_bucket(&p, &west_index, -1, 0);
fgBucketOffset(&p, &north_index, 0, 1);
fgBucketOffset(&p, &south_index, 0, -1);
fgBucketOffset(&p, &east_index, 1, 0);
fgBucketOffset(&p, &west_index, -1, 0);
/*
printf("Corner indexes = %ld %ld %ld %ld\n",
@ -609,9 +609,12 @@ int main(int argc, char **argv) {
/* $Log$
/* Revision 1.2 1998/01/14 15:54:43 curt
/* Initial revision completed.
/* Revision 1.3 1998/01/27 18:37:04 curt
/* Lots of updates to get back in sync with changes made over in .../Src/
/*
* Revision 1.2 1998/01/14 15:54:43 curt
* Initial revision completed.
*
* Revision 1.1 1998/01/14 02:11:31 curt
* Initial revision.
*

View file

@ -59,15 +59,15 @@ clean:
source-tar: clean
(cd ..; \
tar cvzf demtools-$(VERSION).tar.gz Tools/Makefile Tools/README \
Tools/TODO Tools/make.inc Tools/AssemTris Tools/Dem2node \
tar cvzf demtools-$(FG_VERSION).tar.gz Tools/Makefile Tools/README \
Tools/Todo Tools/make.inc Tools/AssemTris Tools/Dem2node \
Tools/FixNode Tools/FixObj Tools/SplitTris Tools/Stripe_u \
Tools/Tri2obj Tools/Triangle)
source-zip: clean
(cd ..; \
zip -r demtools-$(VERSION).zip Tools/Makefile Tools/README \
Tools/TODO Tools/make.inc Tools/AssemTris Tools/Dem2node \
zip -r demtools-$(FG_VERSION).zip Tools/Makefile Tools/README \
Tools/Todo Tools/make.inc Tools/AssemTris Tools/Dem2node \
Tools/FixNode Tools/FixObj Tools/SplitTris Tools/Stripe_u \
Tools/Tri2obj Tools/Triangle)
@ -75,20 +75,23 @@ bin-tar: all
echo "need to fix this"
# cp GLUT/fg0 GLUT/runfg ..
# (cd ../..; \
# tar cvzf bin-$(VERSION).tar.gz FlightGear/fgtop FlightGear/fg0 \
# tar cvzf bin-$(FG_VERSION).tar.gz FlightGear/fgtop FlightGear/fg0 \
# FlightGear/runfg FlightGear/COPYING FlightGear/Docs FlightGear/Thanks)
bin-zip:
echo "need to fix this"
# cp GLUT/fg0.exe GLUT/runfg.bat GLUT/cygwin.dll ..
# (cd ../..; \
# zip -r bin-$(VERSION).zip FlightGear/fgtop FlightGear/fg0.exe \
# zip -r bin-$(FG_VERSION).zip FlightGear/fgtop FlightGear/fg0.exe \
# FlightGear/runfg.bat FlightGear/cygwin.dll FlightGear/COPYING \
# FlightGear/Docs FlightGear/Thanks)
#---------------------------------------------------------------------------
# $Log$
# Revision 1.7 1998/01/27 18:36:53 curt
# Lots of updates to get back in sync with changes made over in .../Src/
#
# Revision 1.6 1998/01/21 02:55:42 curt
# Incorporated new make system from Bob Kuehne <rpk@sgi.com>.
#

View file

@ -9,15 +9,20 @@
1/14/98 - Reassemble triangles using only body, shared corners, and
shared edges.
1/19/98 - Retro-fit tri2obj to use shared normals rather than regenerating
normals for shared vertices.
--------------------------------------------------------------------------
| Todo
--------------------------------------------------------------------------
1/15/98 - Retro-fit tri2obj to use shared normals rather than regenerating
normals for shared vertices.
1/12/98 - Try reversing cw-wound strips rather than calling glFrontFace()
in the display list.
1/21/98 - Generate an elevation quad tree.
1/12/98 - Generate a face adjacency matrix
1/21/98 - Remove internal shared edges and corners that are not needed
after an area is generated.

View file

@ -189,7 +189,7 @@ if ( $do_assemtris ) {
foreach $file ( @FILES ) {
chop($file);
if ( $file =~ m/\.1\.body$/ ) {
$file =~ s/\.body$//; # strip off the ".node"
$file =~ s/\.body$//; # strip off the ".body"
$command = "./AssemTris/assemtris $subdir/$file";
print "Running '$command'\n";
@ -199,6 +199,7 @@ if ( $do_assemtris ) {
}
close(OUT);
}
unlink("$subdir/$file.body");
}
}
@ -328,6 +329,9 @@ if ( $do_fixobj ) {
#---------------------------------------------------------------------------
# $Log$
# Revision 1.9 1998/01/27 18:36:54 curt
# Lots of updates to get back in sync with changes made over in .../Src/
#
# Revision 1.8 1998/01/21 17:59:05 curt
# Uncomment lines to remove several intermediate files.
#

View file

@ -32,12 +32,12 @@
#include "tri2obj.h"
#include "../../Src/Include/constants.h"
#include "../../Src/Include/types.h"
#include "../../Src/Math/fg_geodesy.h"
#include "../../Src/Math/mat3.h"
#include "../../Src/Math/polar.h"
#include "../../Src/Scenery/tileutils.h"
#include <Include/fg_constants.h>
#include <Include/fg_types.h>
#include <Math/fg_geodesy.h>
#include <Math/mat3.h>
#include <Math/polar.h>
#include <Scenery/bucketutils.h>
int nodecount, tricount;
@ -48,9 +48,9 @@ int new_tris[MAX_TRIS][3];
float normals[MAX_NODES][3];
struct bucket my_index;
struct bucket ne_index, nw_index, sw_index, se_index;
struct bucket north_index, south_index, east_index, west_index;
struct fgBUCKET my_index;
struct fgBUCKET ne_index, nw_index, sw_index, se_index;
struct fgBUCKET north_index, south_index, east_index, west_index;
/* convert a geodetic point lon(arcsec), lat(arcsec), elev(meter) to
* a cartesian point */
@ -177,26 +177,26 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
long int index;
if ( strcmp(ext, ".sw") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.sw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&west_index, scene_path);
index = gen_index(&west_index);
fgBucketGenBasePath(&west_index, scene_path);
index = fgBucketGenIndex(&west_index);
sprintf(file, "%s/%s/%ld.1.se", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&sw_index, scene_path);
index = gen_index(&sw_index);
fgBucketGenBasePath(&sw_index, scene_path);
index = fgBucketGenIndex(&sw_index);
sprintf(file, "%s/%s/%ld.1.ne", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&south_index, scene_path);
index = gen_index(&south_index);
fgBucketGenBasePath(&south_index, scene_path);
index = fgBucketGenIndex(&south_index);
sprintf(file, "%s/%s/%ld.1.nw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -204,26 +204,26 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".se") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.se", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&east_index, scene_path);
index = gen_index(&east_index);
fgBucketGenBasePath(&east_index, scene_path);
index = fgBucketGenIndex(&east_index);
sprintf(file, "%s/%s/%ld.1.sw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&se_index, scene_path);
index = gen_index(&se_index);
fgBucketGenBasePath(&se_index, scene_path);
index = fgBucketGenIndex(&se_index);
sprintf(file, "%s/%s/%ld.1.nw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&south_index, scene_path);
index = gen_index(&south_index);
fgBucketGenBasePath(&south_index, scene_path);
index = fgBucketGenIndex(&south_index);
sprintf(file, "%s/%s/%ld.1.ne", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -231,26 +231,26 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".ne") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.ne", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&east_index, scene_path);
index = gen_index(&east_index);
fgBucketGenBasePath(&east_index, scene_path);
index = fgBucketGenIndex(&east_index);
sprintf(file, "%s/%s/%ld.1.nw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&ne_index, scene_path);
index = gen_index(&ne_index);
fgBucketGenBasePath(&ne_index, scene_path);
index = fgBucketGenIndex(&ne_index);
sprintf(file, "%s/%s/%ld.1.sw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&north_index, scene_path);
index = gen_index(&north_index);
fgBucketGenBasePath(&north_index, scene_path);
index = fgBucketGenIndex(&north_index);
sprintf(file, "%s/%s/%ld.1.se", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -258,26 +258,26 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".nw") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.nw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&west_index, scene_path);
index = gen_index(&west_index);
fgBucketGenBasePath(&west_index, scene_path);
index = fgBucketGenIndex(&west_index);
sprintf(file, "%s/%s/%ld.1.ne", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&nw_index, scene_path);
index = gen_index(&nw_index);
fgBucketGenBasePath(&nw_index, scene_path);
index = fgBucketGenIndex(&nw_index);
sprintf(file, "%s/%s/%ld.1.se", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&north_index, scene_path);
index = gen_index(&north_index);
fgBucketGenBasePath(&north_index, scene_path);
index = fgBucketGenIndex(&north_index);
sprintf(file, "%s/%s/%ld.1.sw", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -285,14 +285,14 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".south") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.south", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&south_index, scene_path);
index = gen_index(&south_index);
fgBucketGenBasePath(&south_index, scene_path);
index = fgBucketGenIndex(&south_index);
sprintf(file, "%s/%s/%ld.1.north", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -300,14 +300,14 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".north") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.north", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&north_index, scene_path);
index = gen_index(&north_index);
fgBucketGenBasePath(&north_index, scene_path);
index = fgBucketGenIndex(&north_index);
sprintf(file, "%s/%s/%ld.1.south", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -315,14 +315,14 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".west") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.west", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&west_index, scene_path);
index = gen_index(&west_index);
fgBucketGenBasePath(&west_index, scene_path);
index = fgBucketGenIndex(&west_index);
sprintf(file, "%s/%s/%ld.1.east", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -330,14 +330,14 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".east") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.east", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
}
gen_base_path(&east_index, scene_path);
index = gen_index(&east_index);
fgBucketGenBasePath(&east_index, scene_path);
index = fgBucketGenIndex(&east_index);
sprintf(file, "%s/%s/%ld.1.west", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -345,8 +345,8 @@ int shared_object_exists(char *basepath, char *ext, char *file) {
}
if ( strcmp(ext, ".body") == 0 ) {
gen_base_path(&my_index, scene_path);
index = gen_index(&my_index);
fgBucketGenBasePath(&my_index, scene_path);
index = fgBucketGenIndex(&my_index);
sprintf(file, "%s/%s/%ld.1.body", basepath, scene_path, index);
if ( file_exists(file) ) {
return(1);
@ -612,20 +612,20 @@ int main(int argc, char **argv) {
}
tmp_index = atoi(temp);
printf("%ld\n", tmp_index);
parse_index(tmp_index, &my_index);
fgBucketParseIndex(tmp_index, &my_index);
printf("bucket = %d %d %d %d\n",
my_index.lon, my_index.lat, my_index.x, my_index.y);
/* generate the indexes of the neighbors */
offset_bucket(&my_index, &ne_index, 1, 1);
offset_bucket(&my_index, &nw_index, -1, 1);
offset_bucket(&my_index, &se_index, 1, -1);
offset_bucket(&my_index, &sw_index, -1, -1);
fgBucketOffset(&my_index, &ne_index, 1, 1);
fgBucketOffset(&my_index, &nw_index, -1, 1);
fgBucketOffset(&my_index, &se_index, 1, -1);
fgBucketOffset(&my_index, &sw_index, -1, -1);
offset_bucket(&my_index, &north_index, 0, 1);
offset_bucket(&my_index, &south_index, 0, -1);
offset_bucket(&my_index, &east_index, 1, 0);
offset_bucket(&my_index, &west_index, -1, 0);
fgBucketOffset(&my_index, &north_index, 0, 1);
fgBucketOffset(&my_index, &south_index, 0, -1);
fgBucketOffset(&my_index, &east_index, 1, 0);
fgBucketOffset(&my_index, &west_index, -1, 0);
/* load the input data files */
triload(basename, basepath);
@ -638,9 +638,12 @@ int main(int argc, char **argv) {
/* $Log$
/* Revision 1.8 1998/01/17 01:25:39 curt
/* Added support for shared normals.
/* Revision 1.9 1998/01/27 18:37:04 curt
/* Lots of updates to get back in sync with changes made over in .../Src/
/*
* Revision 1.8 1998/01/17 01:25:39 curt
* Added support for shared normals.
*
* Revision 1.7 1998/01/12 02:42:00 curt
* Average up to five triangles per vertex instead of three.
*