//
-// getapt.cxx -- generate airport scenery from the given definition file
+// genapt.cxx -- generate airport scenery from the given definition file
//
// Written by Curtis Olson, started September 1998.
//
using namespace std;
#endif
-#include <Debug/fg_debug.h>
+#ifdef __BORLANDC__
+# define exception c_exception
+#endif
+#include <math.h>
+
+#include <Debug/logstream.hxx>
// #include <Include/fg_types.h>
#include <Math/fg_geodesy.hxx>
#include <Math/mat3.h>
typedef container::const_iterator const_iterator;
-/*
-// Calculate distance between to Point3D's
-static double calc_dist(const Point3D& p1, const Point3D& p2) {
- double x, y, z;
- x = p1.x() - p2.x();
- y = p1.y() - p2.y();
- z = p1.z() - p2.z();
- return sqrt(x*x + y*y + z*z);
-}
-*/
-
-
#define FG_APT_BASE_TEX_CONSTANT 2000.0
// Calculate texture coordinates for a given point.
max_dist = 0.0;
- cout << "generating airport base for size = " << perimeter.size() << "\n";
+ FG_LOG( FG_TERRAIN, FG_INFO,
+ "generating airport base for size = " << perimeter.size() );
fragment.init();
fragment.tile_ptr = t;
// find airport base material in the properties list
if ( ! material_mgr.find( APT_BASE_MATERIAL, fragment.material_ptr )) {
- fgPrintf( FG_TERRAIN, FG_ALERT,
- "Ack! unknown material name = %s in fgAptGenerat()\n",
- APT_BASE_MATERIAL );
+ FG_LOG( FG_TERRAIN, FG_ALERT,
+ "Ack! unknown material name = " << APT_BASE_MATERIAL
+ << " in fgAptGenerat()" );
}
- printf(" tile center = %.2f %.2f %.2f\n",
- t->center.x(), t->center.y(), t->center.z() );
- printf(" airport center = %.2f %.2f %.2f\n",
- average.x(), average.y(), average.z());
+ FG_LOG( FG_TERRAIN, FG_INFO,
+ " tile center = "
+ << t->center.x() << " " << t->center.y() << " " << t->center.z() );
+ FG_LOG( FG_TERRAIN, FG_INFO,
+ " airport center = "
+ << average.x() << " " << average.y() << " " << average.z() );
fragment.center = average;
normal[0] = average.x();
i = 1;
tex = calc_tex_coords( t->nodes[i], t->center );
- dist = distance3D(average, cart);
+ dist = cart.distance3Dsquared(average);
if ( dist > max_dist ) {
max_dist = dist;
}
fragment.add_face(center_num, i - 1, i);
tex = calc_tex_coords( t->nodes[i], t->center );
- dist = distance3D(average, cart);
+ dist = cart.distance3Dsquared(average);
if ( dist > max_dist ) {
max_dist = dist;
}
xglEnd();
xglEndList();
- fragment.bounding_radius = max_dist;
+ fragment.bounding_radius = sqrt(max_dist);
fragment.display_list = display_list;
t->fragment_list.push_back(fragment);
apt_id = "";
// read in each line of the file
- in.eat_comments();
+ in >> skipcomment;
while ( ! in.eof() )
{
- in.stream() >> token;
+ in >> token;
if ( token == "a" ) {
// airport info record (start of airport)
gen_base(average, perimeter, tile);
}
- cout << "Reading airport record\n";
- in.stream() >> apt_id;
+ FG_LOG( FG_TERRAIN, FG_INFO, "Reading airport record" );
+ in >> apt_id;
apt_name = "";
i = 1;
avex = avey = avez = 0.0;
while ( in.get(c) && c != '\n' ) {
apt_name += c;
}
- cout << "\tID = " + apt_id + " Name = " + apt_name + "\n";
+ FG_LOG( FG_TERRAIN, FG_INFO,
+ "\tID = " << apt_id << " Name = " << apt_name );
} else if ( token == "p" ) {
// airport area bounding polygon coordinate. These
// specify a convex hull that should already have been cut
// out of the base terrain. The points are given in
// counter clockwise order and are specified in lon/lat
// degrees.
- in.stream() >> p;
+ in >> p;
avex += tile->nodes[i][0];
avey += tile->nodes[i][1];
avez += tile->nodes[i][2];
while ( in.get(c) && c != '\n' );
}
- // airports.insert(a);
- in.eat_comments();
+ in >> skipcomment;
}
if ( apt_id != "" ) {
// $Log$
+// Revision 1.12 1999/02/01 21:08:33 curt
+// Optimizations from Norman Vine.
+//
+// Revision 1.11 1998/11/23 21:48:09 curt
+// Borland portability tweaks.
+//
+// Revision 1.10 1998/11/07 19:07:06 curt
+// Enable release builds using the --without-logging option to the configure
+// script. Also a couple log message cleanups, plus some C to C++ comment
+// conversion.
+//
+// Revision 1.9 1998/11/06 21:17:32 curt
+// Converted to new logstream debugging facility. This allows release
+// builds with no messages at all (and no performance impact) by using
+// the -DFG_NDEBUG flag.
+//
+// Revision 1.8 1998/11/06 14:46:59 curt
+// Changes to track Bernie's updates to fgstream.
+//
+// Revision 1.7 1998/10/20 18:26:06 curt
+// Updates to point3d.hxx
+//
// Revision 1.6 1998/10/18 01:17:16 curt
// Point3D tweaks.
//
// Revision 1.1 1998/09/14 02:14:01 curt
// Initial revision of genapt.[ch]xx for generating airport scenery.
//
-//
-