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)
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 $@
#---------------------------------------------------------------------------
# $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/
#
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
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);
}
/* $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.
+ * */
#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
*/
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);
/* $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.
*