From 8dcf08c965ee6386f6fa1a0d8871906fa7faf989 Mon Sep 17 00:00:00 2001 From: curt Date: Wed, 14 May 2003 19:22:24 +0000 Subject: [PATCH] Moved some of the low level scene graph construction code over to simgear. --- src/Main/Makefile.am | 6 +- src/Objects/Makefile.am | 4 +- src/Objects/apt_signs.cxx | 167 ---------- src/Objects/apt_signs.hxx | 54 ---- src/Objects/obj.cxx | 229 ++------------ src/Objects/obj.hxx | 12 - src/Objects/pt_lights.cxx | 619 -------------------------------------- src/Objects/pt_lights.hxx | 107 ------- src/Scenery/tileentry.cxx | 2 +- 9 files changed, 27 insertions(+), 1173 deletions(-) delete mode 100644 src/Objects/apt_signs.cxx delete mode 100644 src/Objects/apt_signs.hxx delete mode 100644 src/Objects/pt_lights.cxx delete mode 100644 src/Objects/pt_lights.hxx diff --git a/src/Main/Makefile.am b/src/Main/Makefile.am index 2bbcca2d6..272ff1396 100644 --- a/src/Main/Makefile.am +++ b/src/Main/Makefile.am @@ -88,9 +88,9 @@ fgfs_LDADD = \ $(top_builddir)/src/Systems/libSystems.a \ $(top_builddir)/src/Time/libTime.a \ $(WEATHER_LIBS) \ - -lsgroute -lsgsky -lsgephem -lsgmaterial -lsgmodel -lsgtiming -lsgio \ - -lsgscreen -lsgmath -lsgbucket -lsgprops -lsgdebug -lsgmagvar -lsgmisc \ - -lsgxml -lsgsound -lsgserial \ + -lsgroute -lsgsky -lsgephem -lsgmaterial -lsgtgdb -lsgmodel -lsgtiming \ + -lsgio -lsgscreen -lsgmath -lsgbucket -lsgprops -lsgdebug -lsgmagvar \ + -lsgmisc -lsgxml -lsgsound -lsgserial \ $(THREAD_LIBS) \ -lplibpu -lplibfnt -lplibjs -lplibnet -lplibssg -lplibsg -lplibul \ $(PSL_LIBS) \ diff --git a/src/Objects/Makefile.am b/src/Objects/Makefile.am index 046aab037..ed1279c14 100644 --- a/src/Objects/Makefile.am +++ b/src/Objects/Makefile.am @@ -1,8 +1,6 @@ noinst_LIBRARIES = libObjects.a libObjects_a_SOURCES = \ - apt_signs.cxx apt_signs.hxx \ - obj.cxx obj.hxx \ - pt_lights.cxx pt_lights.hxx + obj.cxx obj.hxx INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/src diff --git a/src/Objects/apt_signs.cxx b/src/Objects/apt_signs.cxx deleted file mode 100644 index cf842a857..000000000 --- a/src/Objects/apt_signs.cxx +++ /dev/null @@ -1,167 +0,0 @@ -// apt_signs.cxx -- build airport signs on the fly -// -// Written by Curtis Olson, started July 2001. -// -// Copyright (C) 2001 Curtis L. Olson - curt@flightgear.org -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License as -// published by the Free Software Foundation; either version 2 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -// -// $Id$ - - -#include -#include - -#include "apt_signs.hxx" -#include "obj.hxx" - - -ssgBranch *gen_taxi_sign( SGMaterialLib *matlib, - const string path, const string content ) -{ - // for demo purposes we assume each element (letter) is 1x1 meter. - // Sign is placed 0.25 meters above the ground - - ssgBranch *object = new ssgBranch(); - object->setName( (char *)content.c_str() ); - - double offset = content.length() / 2.0; - - for ( unsigned int i = 0; i < content.length(); ++i ) { - string material; - - char item = content[i]; - if ( item == '<' ) { - material = "ArrowL.rgb"; - } else if ( item == '>' ) { - material = "ArrowR.rgb"; - } else if ( item >= 'A' && item <= 'Z' ) { - material = "Letter"; - material += item; - material += ".rgb"; - } else if ( item >= 'a' && item <= 'z' ) { - int tmp = item - 'a'; - char c = 'A' + tmp; - material = "Black"; - material += c; - material += ".rgb"; - } else { - SG_LOG( SG_TERRAIN, SG_ALERT, - "Unknown taxi sign code = '" << item << "' !!!!" ); - return NULL; - } - - point_list nodes; nodes.clear(); - point_list normals; normals.clear(); - point_list texcoords; texcoords.clear(); - int_list vertex_index; vertex_index.clear(); - int_list normal_index; normal_index.clear(); - int_list tex_index; tex_index.clear(); - - nodes.push_back( Point3D( -offset + i, 0, 0.25 ) ); - nodes.push_back( Point3D( -offset + i + 1, 0, 0.25 ) ); - nodes.push_back( Point3D( -offset + i, 0, 1.25 ) ); - nodes.push_back( Point3D( -offset + i + 1, 0, 1.25 ) ); - - normals.push_back( Point3D( 0, -1, 0 ) ); - - texcoords.push_back( Point3D( 0, 0, 0 ) ); - texcoords.push_back( Point3D( 1, 0, 0 ) ); - texcoords.push_back( Point3D( 0, 1, 0 ) ); - texcoords.push_back( Point3D( 1, 1, 0 ) ); - - vertex_index.push_back( 0 ); - vertex_index.push_back( 1 ); - vertex_index.push_back( 2 ); - vertex_index.push_back( 3 ); - - normal_index.push_back( 0 ); - normal_index.push_back( 0 ); - normal_index.push_back( 0 ); - normal_index.push_back( 0 ); - - tex_index.push_back( 0 ); - tex_index.push_back( 1 ); - tex_index.push_back( 2 ); - tex_index.push_back( 3 ); - - ssgLeaf *leaf = gen_leaf( path, GL_TRIANGLE_STRIP, matlib, material, - nodes, normals, texcoords, - vertex_index, normal_index, tex_index, - false, NULL ); - - object->addKid( leaf ); - } - - return object; -} - - -ssgBranch *gen_runway_sign( SGMaterialLib *matlib, - const string path, const string name ) -{ - // for demo purposes we assume each element (letter) is 1x1 meter. - // Sign is placed 0.25 meters above the ground - - ssgBranch *object = new ssgBranch(); - object->setName( (char *)name.c_str() ); - - double width = name.length() / 3.0; - - string material = name + ".rgb"; - - point_list nodes; nodes.clear(); - point_list normals; normals.clear(); - point_list texcoords; texcoords.clear(); - int_list vertex_index; vertex_index.clear(); - int_list normal_index; normal_index.clear(); - int_list tex_index; tex_index.clear(); - - nodes.push_back( Point3D( -width, 0, 0.25 ) ); - nodes.push_back( Point3D( width + 1, 0, 0.25 ) ); - nodes.push_back( Point3D( -width, 0, 1.25 ) ); - nodes.push_back( Point3D( width + 1, 0, 1.25 ) ); - - normals.push_back( Point3D( 0, -1, 0 ) ); - - texcoords.push_back( Point3D( 0, 0, 0 ) ); - texcoords.push_back( Point3D( 1, 0, 0 ) ); - texcoords.push_back( Point3D( 0, 1, 0 ) ); - texcoords.push_back( Point3D( 1, 1, 0 ) ); - - vertex_index.push_back( 0 ); - vertex_index.push_back( 1 ); - vertex_index.push_back( 2 ); - vertex_index.push_back( 3 ); - - normal_index.push_back( 0 ); - normal_index.push_back( 0 ); - normal_index.push_back( 0 ); - normal_index.push_back( 0 ); - - tex_index.push_back( 0 ); - tex_index.push_back( 1 ); - tex_index.push_back( 2 ); - tex_index.push_back( 3 ); - - ssgLeaf *leaf = gen_leaf( path, GL_TRIANGLE_STRIP, matlib, material, - nodes, normals, texcoords, - vertex_index, normal_index, tex_index, - false, NULL ); - - object->addKid( leaf ); - - return object; -} diff --git a/src/Objects/apt_signs.hxx b/src/Objects/apt_signs.hxx deleted file mode 100644 index edd96dfb1..000000000 --- a/src/Objects/apt_signs.hxx +++ /dev/null @@ -1,54 +0,0 @@ -// apt_signs.hxx -- build airport signs on the fly -// -// Written by Curtis Olson, started July 2001. -// -// Copyright (C) 2001 Curtis L. Olson - curt@flightgear.org -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License as -// published by the Free Software Foundation; either version 2 of the -// License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -// -// $Id$ - - -#ifndef _APT_SIGNS_HXX -#define _APT_SIGNS_HXX - - -#ifndef __cplusplus -# error This library requires C++ -#endif - - -#include - -#include STL_STRING - -#include // plib include - -class SGMaterialLib; // forward declaration - -SG_USING_STD(string); - - -// Generate a taxi sign -ssgBranch *gen_taxi_sign( SGMaterialLib *matlib, - const string path, const string content ); - - -// Generate a runway sign -ssgBranch *gen_runway_sign( SGMaterialLib *matlib, - const string path, const string name ); - - -#endif // _APT_SIGNS_HXX diff --git a/src/Objects/obj.cxx b/src/Objects/obj.cxx index 0beeb9eb3..09fab77b7 100644 --- a/src/Objects/obj.cxx +++ b/src/Objects/obj.cxx @@ -54,12 +54,14 @@ #include #include #include +#include +#include #include
#include
#include