r117: *** empty log message ***
[ctsim.git] / include / ct.h
index e7f29e9f63f19a801bd74e8cbd0b7d2ab72f69dd..ead95ad7381edd02fa98a2a25b8122ca912c974a 100644 (file)
@@ -1,12 +1,15 @@
 /*****************************************************************************
+** FILE IDENTIFICATION
+**
+**   Name:          ct.h
+**   Purpose:       Master header file for CTSim
+**   Programmer:    Kevin Rosenberg
+**   Date Started:  Aug 1984
+**
 **  This is part of the CTSim program
 **  Copyright (C) 1983-2000 Kevin Rosenberg
 **
-**  $Id: ct.h,v 1.2 2000/04/28 14:14:16 kevin Exp $
-**  $Log: ct.h,v $
-**  Revision 1.2  2000/04/28 14:14:16  kevin
-**  *** empty log message ***
-**
+**  $Id: ct.h,v 1.21 2000/06/22 10:17:28 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
 **  along with this program; if not, write to the Free Software
 **  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 ******************************************************************************/
-/*---------------------------------------------------------------------*/
-/*                 HEADER FILE FOR TOMOGRAPY SYSTEM                   */
-/*---------------------------------------------------------------------*/
 
 #ifndef CT_H
 #define CT_H
 
+#ifdef _WIN32
+  typedef long off_t;
+  #define HAVE_STRING_H 1
+  #include <fcntl.h>
+  #define snprintf _snprintf
+  #define vsnprintf _vsnprintf
+  #define strcasecmp stricmp
+  #define strncasecmp strnicmp
+#endif
+
 #ifdef HAVE_CONFIG_H
-#include <config.h>
+  #include <config.h>
 #endif
 #ifdef HAVE_PNG
-#include "png.h"
+  #include "png.h"
+#endif
+#ifdef HAVE_G2_H
+extern "C" { 
+#include "g2.h" 
+}
+#ifdef HAVE_X11
+extern "C" {
+#include "g2_X11.h"
+}
+#endif
 #endif
 #ifdef HAVE_STDIO_H
 #include <stdio.h>
@@ -43,7 +63,9 @@
 #ifdef HAVE_STDDEF_H
 #include <stddef.h>
 #endif
+#ifdef HAVE_STDLIB_H
 #include <stdlib.h>
+#endif
 #ifdef HAVE_STDARG_H
 #include <stdarg.h>
 #endif
 #ifdef HAVE_SETJMP_H
 #include <setjmp.h>
 #endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>          /* for htonl on FreeBSD */
+#endif
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>         /* for htonl on Linux/Solaris */
+#endif
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>           /* for htonl on Solaris */
+#endif
+#ifdef HAVE_STDINT_H
+#include <stdint.h>             /* Standard ints on Linux */
+#endif
+
+#include <fstream>
+#include <iostream>
+#include <sstream>
+#include <string>
+#include <iterator>
+#include <algorithm>
+#include <exception>
+#include <stdexcept>
+#include <memory>
+
+using namespace std;
+
+#ifdef HAVE_MPI
+#include "mpi++.h"
+#include "mpiworld.h"
+#endif
+
+#include "ctsupport.h"
+#include "fnetorderstream.h"
 
-#ifdef MPI_CT
-#include "mpi.h"
+#ifdef HAVE_SGP
+  #include "ezplot.h"
+  #include "sgp.h"
 #endif
 
-#include "kstddef.h"
-#include "kmath.h"
-#include "sgp.h"
-#include "sdf.h"
-#include "ir.h"
-#include "keyboard.h"
-#include "cio.h"
-#include "ezplot.h"
+#include "array2d.h"
+#include "fnetorderstream.h"
+#include "imagefile.h"
+#include "phantom.h"
+#include "scanner.h"
+#include "backprojectors.h"
+#include "filter.h"
+#include "projections.h"
+
+//----------------------------------------------------------------------//
+//                             USER SYMBOLS                            //
+//----------------------------------------------------------------------//
+
+// Trace levels
+static const char O_TRACE_NONE_STR[]=     "none";
+static const char O_TRACE_TEXT_STR[]=     "text";
+static const char O_TRACE_PHM_STR[]=      "phm";
+static const char O_TRACE_RAYS_STR[]=     "rays";
+static const char O_TRACE_PLOT_STR[]=     "plot";
+static const char O_TRACE_CLIPPING_STR[]= "clipping";
+
+enum {
+  TRACE_NONE,          /* No tracing */
+  TRACE_TEXT,          /* Minimal status */
+  TRACE_PHM,           /* Show phantom */
+  TRACE_RAYS,          /* Show all rays */
+  TRACE_PLOT,          /* Plot raysums */
+  TRACE_CLIPPING       /* Plot clipping */
+};
+
+
+/*************************************************************************
+ *  FUNCTION DECLARATIONS
+ ************************************************************************/
+
+// dialogs.cpp 
+bool phm_add_pelem_kb (Phantom& phm);
+const Phantom& phm_select (Phantom& phm);
+int interpolation_select (void);
+int filter_select (double *filter_param);
+
+// options.cpp 
+int opt_set_trace(const char *optarg);
+
+// imagefile.cpp 
+void image_filter_response (ImageFile& im, const char* const domainName, double bw, const char* const filterName, double filt_param, const int opt_trace);
+int image_display (const ImageFile& im);
+int image_display_scale (const ImageFile& im, const int scale, const double pmin, const double pmax);
+
 
 #endif