--- /dev/null
+#---------------------------------------------------------------------------
+# Makefile
+#
+# Written by Curtis Olson, started May 1997.
+#
+# Copyright (C) 1997 Curtis L. Olson - curt@infoplane.com
+#
+# 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$
+# (Log is kept at end of this file)
+#---------------------------------------------------------------------------
+
+
+TARGET=libslew.a
+
+CFILES = slew.c
+OFILES = $(CFILES:.c=.o)
+
+CC = gcc
+CFLAGS = -g -Wall
+# CFLAGS = -O2 -Wall
+
+AR = ar
+
+INCLUDES =
+
+LIBS =
+
+
+#---------------------------------------------------------------------------
+# Primary Targets
+#---------------------------------------------------------------------------
+
+$(TARGET): $(OFILES)
+ $(AR) rv $(TARGET) $(OFILES)
+
+all: $(TARGET)
+
+clean:
+ rm -f *.o $(TARGET) *~ core
+
+
+#---------------------------------------------------------------------------
+# Secondary Targets
+#---------------------------------------------------------------------------
+
+slew.o: slew.c slew.h ../../aircraft/aircraft.h ../../controls/controls.h
+ $(CC) $(CFLAGS) $(INCLUDES) -c slew.c
+
+
+#---------------------------------------------------------------------------
+# $Log$
+# Revision 1.1 1997/05/29 02:29:42 curt
+# Moved to their own directory.
+#
+# Revision 1.2 1997/05/23 15:40:36 curt
+# Added GNU copyright headers.
+#
+# Revision 1.1 1997/05/16 16:04:44 curt
+# Initial revision.
+#
--- /dev/null
+/**************************************************************************
+ * slew.c -- the "slew" flight model
+ *
+ * Written by Curtis Olson, started May 1997.
+ *
+ * Copyright (C) 1997 Curtis L. Olson - curt@infoplane.com
+ *
+ * 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$
+ * (Log is kept at end of this file)
+ **************************************************************************/
+
+
+#include <math.h>
+
+#include "slew.h"
+#include "../flight.h"
+#include "../../aircraft/aircraft.h"
+#include "../../controls/controls.h"
+
+
+#ifndef PI2
+#define PI2 (M_PI + M_PI)
+#endif
+
+
+/* reset flight params to a specific position */
+void fgSlewInit(double pos_x, double pos_y, double pos_z, double heading) {
+ struct flight_params *f;
+
+ f = ¤t_aircraft.flight;
+
+ f->pos_x = pos_x;
+ f->pos_y = pos_y;
+ f->pos_z = pos_z;
+
+ f->vel_x = 0.0;
+ f->vel_y = 0.0;
+ f->vel_z = 0.0;
+
+ f->Phi = 0.0;
+ f->Theta = 0.0;
+ f->Psi = 0.0;
+
+ f->vel_Phi = 0.0;
+ f->vel_Theta = 0.0;
+ f->vel_Psi = 0.0;
+
+ f->Psi = heading;
+}
+
+
+/* update position based on inputs, positions, velocities, etc. */
+void fgSlewUpdate() {
+ struct flight_params *f;
+ struct control_params *c;
+
+ f = ¤t_aircraft.flight;
+ c = ¤t_aircraft.controls;
+
+ f->Psi += c->aileron;
+ if ( f->Psi > PI2 ) {
+ f->Psi -= PI2;
+ } else if ( f->Psi < 0 ) {
+ f->Psi += PI2;
+ }
+
+ f->vel_x = -c->elev;
+
+ f->pos_x = f->pos_x + (cos(f->Psi) * f->vel_x);
+ f->pos_y = f->pos_y + (sin(f->Psi) * f->vel_x);
+}
+
+
+/* $Log$
+/* Revision 1.1 1997/05/29 02:29:42 curt
+/* Moved to their own directory.
+/*
+ * Revision 1.2 1997/05/23 15:40:37 curt
+ * Added GNU copyright headers.
+ *
+ * Revision 1.1 1997/05/16 16:04:45 curt
+ * Initial revision.
+ *
+ */
--- /dev/null
+/**************************************************************************
+ * slew.h -- the "slew" flight model
+ *
+ * Written by Curtis Olson, started May 1997.
+ *
+ * Copyright (C) 1997 Curtis L. Olson - curt@infoplane.com
+ *
+ * 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$
+ * (Log is kept at end of this file)
+ **************************************************************************/
+
+
+#ifndef SLEW_H
+#define SLEW_H
+
+
+/* reset flight params to a specific position */
+void fgSlewInit(double pos_x, double pos_y, double pos_z, double heading);
+
+/* update position based on inputs, positions, velocities, etc. */
+void fgSlewUpdate();
+
+
+#endif SLEW_H
+
+
+/* $Log$
+/* Revision 1.1 1997/05/29 02:29:43 curt
+/* Moved to their own directory.
+/*
+ * Revision 1.2 1997/05/23 15:40:38 curt
+ * Added GNU copyright headers.
+ *
+ * Revision 1.1 1997/05/16 16:04:46 curt
+ * Initial revision.
+ *
+ */