]> git.mxchange.org Git - simgear.git/commitdiff
MacOS portability improvements.
authorcurt <curt>
Tue, 27 Apr 1999 15:54:39 +0000 (15:54 +0000)
committercurt <curt>
Tue, 27 Apr 1999 15:54:39 +0000 (15:54 +0000)
Lib/Bucket/Makefile.am
Lib/Bucket/newbucket.cxx
Lib/Bucket/newbucket.hxx
Lib/Debug/logstream.hxx
Lib/Math/interpolater.cxx
Lib/Math/mat3.h
Lib/Math/point3d.hxx

index 87f83785a1c225241f24e46f35f22633fdeee186..dedde377897fbdde1c5998d3343b585bee1e9630 100644 (file)
@@ -6,6 +6,8 @@ bin_PROGRAMS = testbucket
 
 testbucket_SOURCES = testbucket.cxx
 
-testbucket_LDADD = $(top_builddir)/Lib/Bucket/libBucket.a
+testbucket_LDADD = \
+       $(top_builddir)/Lib/Bucket/libBucket.a \
+       $(top_builddir)/Lib/Misc/libMisc.a
 
-INCLUDES += -I$(top_builddir)
+INCLUDES += -I$(top_builddir) -I$(top_builddir)/Lib
index af95b4abc9a97023fca6483e39522c59c4c71a44..fc41418a3b3632d0132f102852a3fb7daf0a9fed 100644 (file)
@@ -28,6 +28,8 @@
 #endif
 
 
+#include <Misc/fgpath.hxx>
+
 #include "newbucket.hxx"
 
 
@@ -36,12 +38,8 @@ string FGBucket::gen_base_path() const {
     // long int index;
     int top_lon, top_lat, main_lon, main_lat;
     char hem, pole;
-    char path[256];
-
-    // index = gen_index();
+    char raw_path[256];
 
-    path[0] = '\0';
-       
     top_lon = lon / 10;
     main_lon = lon;
     if ( (lon < 0) && (top_lon * 10 != lon) ) {
@@ -74,11 +72,13 @@ string FGBucket::gen_base_path() const {
        main_lat *= -1;
     }
 
-    sprintf(path, "%c%03d%c%02d/%c%03d%c%02d", 
-           hem, top_lon, pole, top_lat,
+    sprintf(raw_path, "%c%03d%c%02d/%c%03d%c%02d", 
+           hem, top_lon, pole, top_lat, 
            hem, main_lon, pole, main_lat);
 
-    return path;
+    FGPath path( raw_path );
+
+    return path.get_path();
 }
 
 
index 101ef7ae3e28261db86fbe066597cd0781ae7d38..624ccb7d61a3cea77b366f1ff8a72bdaa62da706 100644 (file)
@@ -44,6 +44,11 @@ FG_USING_STD(string);
 FG_USING_STD(ostream);
 #endif
 
+#ifdef __MWERKS__
+#include <math.h>
+#include <stdio.h>
+#endif
+
 #include <Include/fg_constants.h>
 
 
@@ -81,6 +86,7 @@ public:
 
     // Set the bucket params for the specified lat and lon
     void set_bucket( double dlon, double dlat );
+    void make_bad ( void );
 
     // Generate the unique scenery tile index for this bucket
     long int gen_index();
@@ -209,6 +215,7 @@ inline FGBucket::FGBucket(const double dlon, const double dlat) {
     set_bucket(dlon, dlat);
 }
 
+
 // create an impossible bucket if false
 inline FGBucket::FGBucket(const bool is_good) {
     set_bucket(0.0, 0.0);
@@ -296,6 +303,13 @@ inline double FGBucket::get_height() const {
 }
 
 
+// create an impossible bucket
+inline void FGBucket::make_bad( void ) {
+    set_bucket(0.0, 0.0);
+       lon = -1000;
+}
+    
+
 // offset a bucket struct by the specified tile units in the X & Y
 // direction
 FGBucket fgBucketOffset( double dlon, double dlat, int x, int y );
index 306193abb31566f33a5111b0f71eb442793de386..5d3983f52f32b869cc6a801101d3d61933128750 100644 (file)
@@ -47,6 +47,10 @@ FG_USING_STD(cerr);
 FG_USING_STD(endl);
 #endif
 
+#ifdef __MWERKS__
+FG_USING_STD(iostream);
+#endif
+
 //
 // TODO:
 //
@@ -204,6 +208,8 @@ fglog()
 
 #ifdef FG_NDEBUG
 # define FG_LOG(C,P,M)
+#elif defined( __MWERKS__ )
+# define FG_LOG(C,P,M) ::fglog() << ::loglevel(C,P) << M << std::endl
 #else
 # define FG_LOG(C,P,M) fglog() << loglevel(C,P) << M << endl
 #endif
index 11b8d10f135f21d5bb59db6d8f490db6be05dcc6..f36d579e0ded5b40d10fe532f04709ce0d29bf42 100644 (file)
 
 #include <Include/compiler.h>
 
+#ifdef __MWERKS__
+#include <stdlib.h> // for exit()
+#endif
+
 #include STL_STRING
 
 #include <Debug/logstream.hxx>
@@ -47,7 +51,7 @@ fgINTERPTABLE::fgINTERPTABLE( const string& file ) {
 
     size = 0;
     in >> skipcomment;
-    while ( ! in.eof() ){
+    while ( in ) {
        if ( size < MAX_TABLE_SIZE ) {
            in >> table[size][0] >> table[size][1];
            size++;
index cb8a0d33b888e26624949189c20e74b1d5fcf3d5..f60df04c3c43025921d7fa9d213ad0c0779e7ee0 100644 (file)
@@ -37,16 +37,6 @@ extern "C" {
 
 #define USE_XTRA_MAT3_INLINES
 
-/* ------------------------------  Types  --------------------------------- */
-
-typedef double MAT3mat[4][4];          /* 4x4 matrix                    */
-typedef double MAT3vec[3];             /* Vector                        */
-typedef double MAT3hvec[4];             /* Vector with homogeneous coord */
-
-/* ------------------------------  Macros  -------------------------------- */
-
-extern MAT3mat identityMatrix;
-
 #if defined(i386)
 #define USE_X86_ASM
 #endif
@@ -69,9 +59,18 @@ static __inline int FloatToInt(float f)
    return r;
 }
 #else
-#define FloatToInt(F) ((int) (F))
+#define FloatToInt(F) ((int) ((F) < 0.0f ? (F)-0.5f : (F)+0.5f))
 #endif
 
+/* ------------------------------  Types  --------------------------------- */
+
+typedef double MAT3mat[4][4];          /* 4x4 matrix                    */
+typedef double MAT3vec[3];             /* Vector                        */
+typedef double MAT3hvec[4];             /* Vector with homogeneous coord */
+
+/* ------------------------------  Macros  -------------------------------- */
+
+extern MAT3mat identityMatrix;
 
 /* Tests if a number is within EPSILON of zero */
 #define MAT3_IS_ZERO(N)        ((N) < MAT3_EPSILON && (N) > -MAT3_EPSILON)
index 83f8de04e62d32f6949d8eb8c9d77995f7363c47..d677de8de37488b161e6d73ff1a572c78d0754d9 100644 (file)
@@ -29,7 +29,7 @@
 # error This library requires C++
 #endif                                   
 
-#include "Include/compiler.h"
+#include <Include/compiler.h>
 
 #ifdef FG_MATH_EXCEPTION_CLASH
 # define exception c_exception
@@ -50,11 +50,12 @@ FG_USING_STD(ostream);
 FG_USING_STD(istream);
 #endif
 
-// -rp- assert.h is buggy under MWCWP3, as multiple #include undef assert !
+// -dw- someone seems to have forgotten this...
 #ifdef __MWERKS__
-#  define assert(x)
+FG_USING_STD(std);
 #endif
 
+
 const double fgPoint3_Epsilon = 0.0000001;
 
 enum {PX, PY, PZ};                 // axes