]> git.mxchange.org Git - simgear.git/commitdiff
Working on redoing internal coordinate systems & scenery transformations.
authorcurt <curt>
Thu, 31 Jul 1997 22:52:27 +0000 (22:52 +0000)
committercurt <curt>
Thu, 31 Jul 1997 22:52:27 +0000 (22:52 +0000)
Math/Makefile
Math/depend
Math/polar.c
Math/polar.h

index 1eb41076217f3e2ef67691ad7d51e481d700b292..05451fcfdc30c1528a0a768d2f83bdf1e4bfd64b 100644 (file)
@@ -26,7 +26,8 @@
 
 TARGET = libMath.a
 
-CFILES = MAT3geom.c MAT3inv.c MAT3mat.c MAT3vec.c fg_random.c polar.c
+CFILES = MAT3geom.c MAT3inv.c MAT3mat.c MAT3vec.c fg_geodesy.c fg_random.c \
+        polar.c
 OFILES = $(CFILES:.c=.o)
 
 
@@ -68,6 +69,9 @@ MAT3mat.o:
 MAT3vec.o:
        $(CC) $(CFLAGS) -c $< -o $@
 
+fg_geodesy.o:
+       $(CC) $(CFLAGS) -c fg_geodesy.c -o $@
+
 fg_random.o:
        $(CC) $(CFLAGS) -c fg_random.c -o $@
 
@@ -77,6 +81,9 @@ polar.o:
 
 #---------------------------------------------------------------------------
 # $Log$
+# Revision 1.12  1997/07/31 22:52:27  curt
+# Working on redoing internal coordinate systems & scenery transformations.
+#
 # Revision 1.11  1997/07/30 16:04:08  curt
 # Moved random routines from Utils/ to Math/
 #
index 8e14d515c68b2d0ed85afa33dc722595907f929c..73d6b3731ab75b371a72a596acea55202036767e 100644 (file)
@@ -2,5 +2,7 @@ MAT3geom.o: MAT3geom.c mat3defs.h mat3.h
 MAT3inv.o: MAT3inv.c mat3defs.h mat3.h
 MAT3mat.o: MAT3mat.c mat3defs.h mat3.h
 MAT3vec.o: MAT3vec.c mat3.h
+fg_geodesy.o: fg_geodesy.c fg_geodesy.h ../constants.h
 fg_random.o: fg_random.c fg_random.h
+geotest.o: geotest.c ../constants.h fg_geodesy.h
 polar.o: polar.c polar.h ../types.h ../constants.h
index cbbed7494c69f2f83c4b3603b3e95e939d46f2fe..bcd9928a6267dc8fc24f9e8d159659f6ba475cd6 100644 (file)
 static double st, ct, sp, cp;
 
 
-/* Convert a geodetic coordinate to a cartesian coordinat on the unit
- * circle, scaled by the radius of the earth in meters.  Ignores Altitude,
- * since this is just for translating points around on the surface. */
-struct fgCartesianPoint fgGeodetic2Cartesian(double lon, double lat) {
+/* Convert a polar coordinate to a cartesian coordinate.  Lon and Lat
+ * must be specified in radians.  The FG convention is for distances
+ * to be specified in meters */
+struct fgCartesianPoint fgPolarToCart(double lon, double lat, double radius) {
     struct fgCartesianPoint pnew;
 
-    pnew.x = cos(lon) * cos(lat) * EARTH_RAD;
-    pnew.y = sin(lon) * cos(lat) * EARTH_RAD;
-    pnew.z = sin(lat) * EARTH_RAD;
+    pnew.x = cos(lon) * cos(lat) * radius;
+    pnew.y = sin(lon) * cos(lat) * radius;
+    pnew.z = sin(lat) * radius;
 
     return(pnew);
 }
@@ -101,6 +101,9 @@ struct fgCartesianPoint fgRotateCartesianPoint(struct fgCartesianPoint p) {
 
 
 /* $Log$
-/* Revision 1.1  1997/07/07 21:02:36  curt
-/* Initial revision.
-/* */
+/* Revision 1.2  1997/07/31 22:52:27  curt
+/* Working on redoing internal coordinate systems & scenery transformations.
+/*
+ * Revision 1.1  1997/07/07 21:02:36  curt
+ * Initial revision.
+ * */
index 158d8353623950177b827a6afc42b964a3e5532e..5e80571647b672407ce386960840db782711231a 100644 (file)
 #include "../types.h"
 
 
-/* Convert a geodetic coordinate to a cartesian coordinat on the unit
- * circle, scaled by the radius of the earth in meters.  Ignores Altitude,
- * since this is just for translating points around on the surface. */
-struct fgCartesianPoint fgGeodetic2Cartesian(double lon, double lat);
+/* Convert a polar coordinate to a cartesian coordinate.  Lon and Lat
+ * must be specified in radians.  The FG convention is for distances
+ * to be specified in meters */
+struct fgCartesianPoint fgPolarToCart(double lon, double lat, double radius);
+
 
 /* Precalculate as much as possible so we can do a batch of transforms
  * through the same angles, will rotates a cartesian point about the
@@ -52,6 +53,7 @@ struct fgCartesianPoint fgGeodetic2Cartesian(double lon, double lat);
  */
 void fgRotateBatchInit(double Theta, double Phi);
 
+
 /* Rotates a cartesian point about the center of the earth by Theta
  * (longitude axis) and Phi (latitude axis) */
 struct fgCartesianPoint fgRotateCartesianPoint(struct fgCartesianPoint p);
@@ -61,9 +63,12 @@ struct fgCartesianPoint fgRotateCartesianPoint(struct fgCartesianPoint p);
 
 
 /* $Log$
-/* Revision 1.2  1997/07/23 21:52:21  curt
-/* Put comments around the text after an #endif for increased portability.
+/* Revision 1.3  1997/07/31 22:52:28  curt
+/* Working on redoing internal coordinate systems & scenery transformations.
 /*
+ * Revision 1.2  1997/07/23 21:52:21  curt
+ * Put comments around the text after an #endif for increased portability.
+ *
  * Revision 1.1  1997/07/07 21:02:37  curt
  * Initial revision.
  *