From 0fe37e9c318904715493dc9c894f658c43e6178e Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Mon, 19 Jun 2000 18:49:00 +0000 Subject: [PATCH] r108: merged files --- include/cio.h | 65 ------------- include/{kstddef.h => ctsupport.h} | 144 ++++++++++++++++++++++++++++- include/keyboard.h | 50 ---------- include/kmath.h | 112 ---------------------- 4 files changed, 139 insertions(+), 232 deletions(-) delete mode 100644 include/cio.h rename include/{kstddef.h => ctsupport.h} (54%) delete mode 100644 include/keyboard.h delete mode 100644 include/kmath.h diff --git a/include/cio.h b/include/cio.h deleted file mode 100644 index 4e83202..0000000 --- a/include/cio.h +++ /dev/null @@ -1,65 +0,0 @@ -/***************************************************************************** -** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg -** -** $Id: cio.h,v 1.9 2000/06/13 16:20:31 kevin Exp $ -** -** This program is free software; you can redistribute it and/or modify -** it under the terms of the GNU General Public License (version 2) as -** published by the Free Software Foundation. -** -** 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -******************************************************************************/ -#ifndef __CIO_H -#define __CIO_H - - -#define C_BLACK 0 /* color codes */ -#define C_BLUE 1 -#define C_GREEN 2 -#define C_CYAN 3 -#define C_RED 4 -#define C_MAGENTA 5 -#define C_BROWN 6 -#define C_WHITE 7 -#define C_GREY 8 -#define C_LTBLUE 9 -#define C_LTGREEN 10 -#define C_LTCYAN 11 -#define C_LTRED 12 -#define C_LTMAGENTA 13 -#define C_YELLOW 14 -#define C_LTWHITE 15 - -/*----------------------------------------------------------------------*/ - -/* screen character codes */ - -#define SC_BKSP 8 -#define SC_TAB 9 -#define SC_BLANK ' ' - - -/* audio.cpp */ -void cio_beep(void); -void cio_tone(double freq, double length); - -/* crtput.cpp */ -void cio_put_c(int c); -void cio_put_cc(int c, int count); -void cio_put_str(const char *str); - -/* kbget.cpp */ -unsigned int cio_kb_getc(void); -void cio_kb_ungetc(unsigned int c); -char *cio_kb_gets(char *str, int maxlen); -unsigned int cio_kb_waitc(const char *astr, int beep); - -#endif diff --git a/include/kstddef.h b/include/ctsupport.h similarity index 54% rename from include/kstddef.h rename to include/ctsupport.h index 75cde29..708d161 100644 --- a/include/kstddef.h +++ b/include/ctsupport.h @@ -1,15 +1,15 @@ /***************************************************************************** ** FILE IDENTIFICATION ** -** File Name: kstddef.h +** File Name: ctsupport.h ** Author: Kevin Rosenberg -** Purpose: Header file containing KRL standard C definitions +** Purpose: Header file for CT support library ** Date Started: Dec. 83 ** ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: kstddef.h,v 1.18 2000/06/19 18:18:13 kevin Exp $ +** $Id: ctsupport.h,v 1.1 2000/06/19 18:49:00 kevin Exp $ ** ** ** This program is free software; you can redistribute it and/or modify @@ -26,8 +26,8 @@ ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ -#ifndef STDDEF_H -#define STDDEF_H +#ifndef CTSUPPORT_H +#define CTSUPPORT_H #ifdef HAVE_CONFIG_H #include "config.h" @@ -185,4 +185,138 @@ char *td_str_cdate(DATE *d); char *td_month_name(int n); char *td_day_name(int n); + +// Math Section + +#include + +#define PI 3.14159265358979323846 +#define HALFPI 1.57079632679489661923 /* PI divided by 2 */ +#define QUARTPI 0.78539816339744830962 /* PI divided by 4 */ +#define I_PI 0.31830988618379067154 /* Inverse of PI */ +#define I_PID2 0.63661977236758134308 /* Inverse of PID2 */ + +#define TWOPI 6.28318530717958647692 +#define SQRT2 1.414213562373095049 + +#define F_EPSILON 1.0E-6 +#define D_EPSILON 1.0E-10 + +#define ASSUMEDZERO 1E-10 + +typedef double GRFMTX_2D[3][3]; +typedef double GRFMTX_3D[4][4]; + +inline double +convertDegreesToRadians (double x) +{ return (x * (PI/180.)); } + +inline double +convertRadiansToDegrees (double x) +{ return (x*(180./PI)); } + +template +inline T nearest (double x) +{ return (x > 0 ? static_cast(x+0.5) : static_cast(x-0.5)); } + +template +inline T clamp (T value, T lowerBounds, T upperBounds) +{ return (value >= upperBounds ? upperBounds : (value <= lowerBounds ? lowerBounds : value )); } + +template +inline T lineLength (T x1, T y1, T x2, T y2) +{ return static_cast( sqrt ((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)) ); } + +template +inline void minmax_array (const T* array, const int n, T& min, T& max) +{ + max = min = array[0]; + + for (int i = 1; i < n; i++) + if (array[i] < min) + min = array[i]; + else if (array[i] > max) + max = array[i]; +} + + +////////////////////////////////////////////////////////////// +// FUNTION DECLARATIONS +////////////////////////////////////////////////////////////// + +// clip.cpp +int clip_rect(double& x1, double& y1, double& x2, double& y2, const double rect[4]); +int clip_segment(double& x1, double& y1, double& x2, double& y2, const double u, const double v); +int clip_sector(double& x1, double& y1, double& x2, double& y2, const double u, const double v); +int clip_circle(double& x1, double& y1, double& x2, double& y2, const double cx, const double cy, const double radius, double t1, double t2); +int clip_triangle(double& x1, double& y1, double& x2, double& y2, const double u, const double v, const int clip_xaxis); + +// norm_ang.cpp +double norm_ang (double theta); + +// xform.cpp +void indent_mtx2(GRFMTX_2D m); +void xlat_mtx2(GRFMTX_2D m, const double x, const double y); +void scale_mtx2(GRFMTX_2D m, const double sx, const double sy); +void rot_mtx2(GRFMTX_2D m, const double theta); +void mult_mtx2(GRFMTX_2D m1, GRFMTX_2D m2, GRFMTX_2D result); +void xform_mtx2(GRFMTX_2D m, double& x, double& y); +void rotate2d(double x[], double y[], int pts, double angle); +void xlat2d(double x[], double y[], int pts, double xoffset, double yoffset); +void scale2d(double x[], double y[], int pts, double xfact, double yfact); + +// simpson.cpp +double integrateSimpson (const double xmin, const double xmax, const double *y, const int np); + + +// Console I/O Section + +#define C_BLACK 0 /* color codes */ +#define C_BLUE 1 +#define C_GREEN 2 +#define C_CYAN 3 +#define C_RED 4 +#define C_MAGENTA 5 +#define C_BROWN 6 +#define C_WHITE 7 +#define C_GREY 8 +#define C_LTBLUE 9 +#define C_LTGREEN 10 +#define C_LTCYAN 11 +#define C_LTRED 12 +#define C_LTMAGENTA 13 +#define C_YELLOW 14 +#define C_LTWHITE 15 + +/*----------------------------------------------------------------------*/ + +/* screen character codes */ + +#define SC_BKSP 8 +#define SC_TAB 9 +#define SC_BLANK ' ' + + +/* audio.cpp */ +void cio_beep(void); +void cio_tone(double freq, double length); + +/* crtput.cpp */ +void cio_put_c(int c); +void cio_put_cc(int c, int count); +void cio_put_str(const char *str); + +/* kbget.cpp */ +unsigned int cio_kb_getc(void); +void cio_kb_ungetc(unsigned int c); +char *cio_kb_gets(char *str, int maxlen); +unsigned int cio_kb_waitc(const char *astr, int beep); + +// Keyboard Section + +#define KEY_BKSP 8 +#define KEY_TAB 9 +#define KEY_RETURN 13 +#define KEY_ESCAPE 27 + #endif diff --git a/include/keyboard.h b/include/keyboard.h deleted file mode 100644 index 5025e57..0000000 --- a/include/keyboard.h +++ /dev/null @@ -1,50 +0,0 @@ -/***************************************************************************** -** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg -** -** $Id: keyboard.h,v 1.3 2000/04/30 19:17:35 kevin Exp $ -** $Log: keyboard.h,v $ -** Revision 1.3 2000/04/30 19:17:35 kevin -** Set up include files for conditional INTERACTIVE_GRAPHICS -** -** Revision 1.2 2000/04/28 14:14:16 kevin -** *** empty log message *** -** -** -** This program is free software; you can redistribute it and/or modify -** it under the terms of the GNU General Public License (version 2) as -** published by the Free Software Foundation. -** -** 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -******************************************************************************/ -/****************************************************************************** - * - * FILE IDENTIFICATION - * - * File Name: KEYBOARD.H - * Author: Kevin Rosenberg - * Purpose: Header file for IBM-PC keyboard definitions - * Date Started: Jan 85 - * - * DESCRIPTION - * - * MODIFICATION LOG - * - *****************************************************************************/ - -#ifndef KEYBOARD_H -#define KEYBOARD_H - -#define KEY_BKSP 8 -#define KEY_TAB 9 -#define KEY_RETURN 13 -#define KEY_ESCAPE 27 - -#endif diff --git a/include/kmath.h b/include/kmath.h deleted file mode 100644 index e4c577b..0000000 --- a/include/kmath.h +++ /dev/null @@ -1,112 +0,0 @@ -/***************************************************************************** -** FILE IDENTIFICATION -** -** Name: kmath.h -** Purpose: Header file containing definitions for numerical app -** Programmer: Kevin Rosenberg -** Date Started: Nov 84 -** -** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg -** -** $Id: kmath.h,v 1.16 2000/06/19 15:48:23 kevin Exp $ -** -** This program is free software; you can redistribute it and/or modify -** it under the terms of the GNU General Public License (version 2) as -** published by the Free Software Foundation. -** -** 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -******************************************************************************/ - -#ifndef _H_kmath -#define _H_kmath - -#include -#include - -#define PI 3.14159265358979323846 -#define HALFPI 1.57079632679489661923 /* PI divided by 2 */ -#define QUARTPI 0.78539816339744830962 /* PI divided by 4 */ -#define I_PI 0.31830988618379067154 /* Inverse of PI */ -#define I_PID2 0.63661977236758134308 /* Inverse of PID2 */ - -#define TWOPI 6.28318530717958647692 -#define SQRT2 1.414213562373095049 - -#define F_EPSILON 1.0E-6 -#define D_EPSILON 1.0E-10 - -#define ASSUMEDZERO 1E-10 - -typedef double GRFMTX_2D[3][3]; -typedef double GRFMTX_3D[4][4]; - -inline double -convertDegreesToRadians (double x) -{ return (x * (PI/180.)); } - -inline double -convertRadiansToDegrees (double x) -{ return (x*(180./PI)); } - -template -inline T nearest (double x) -{ return (x > 0 ? static_cast(x+0.5) : static_cast(x-0.5)); } - -template -inline T clamp (T value, T lowerBounds, T upperBounds) -{ return (value >= upperBounds ? upperBounds : (value <= lowerBounds ? lowerBounds : value )); } - -template -inline T lineLength (T x1, T y1, T x2, T y2) -{ return static_cast( sqrt ((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1)) ); } - -template -inline void minmax_array (const T* array, const int n, T& min, T& max) -{ - max = min = array[0]; - - for (int i = 1; i < n; i++) - if (array[i] < min) - min = array[i]; - else if (array[i] > max) - max = array[i]; -} - - -////////////////////////////////////////////////////////////// -// FUNTION DECLARATIONS -////////////////////////////////////////////////////////////// - -// clip.cpp -int clip_rect(double& x1, double& y1, double& x2, double& y2, const double rect[4]); -int clip_segment(double& x1, double& y1, double& x2, double& y2, const double u, const double v); -int clip_sector(double& x1, double& y1, double& x2, double& y2, const double u, const double v); -int clip_circle(double& x1, double& y1, double& x2, double& y2, const double cx, const double cy, const double radius, double t1, double t2); -int clip_triangle(double& x1, double& y1, double& x2, double& y2, const double u, const double v, const int clip_xaxis); - -// norm_ang.cpp -double norm_ang (double theta); - -// xform.cpp -void indent_mtx2(GRFMTX_2D m); -void xlat_mtx2(GRFMTX_2D m, const double x, const double y); -void scale_mtx2(GRFMTX_2D m, const double sx, const double sy); -void rot_mtx2(GRFMTX_2D m, const double theta); -void mult_mtx2(GRFMTX_2D m1, GRFMTX_2D m2, GRFMTX_2D result); -void xform_mtx2(GRFMTX_2D m, double& x, double& y); -void rotate2d(double x[], double y[], int pts, double angle); -void xlat2d(double x[], double y[], int pts, double xoffset, double yoffset); -void scale2d(double x[], double y[], int pts, double xfact, double yfact); - -// simpson.cpp -double integrateSimpson (const double xmin, const double xmax, const double *y, const int np); - -#endif -- 2.34.1