/*****************************************************************************
-** This is part of the CTSim program
-** Copyright (C) 1983-2000 Kevin Rosenberg
-**
-** $Id: ct.h,v 1.8 2000/06/07 02:30:27 kevin Exp $
-** $Log: ct.h,v $
-** Revision 1.8 2000/06/07 02:30:27 kevin
-** Added C++ image files
-**
-** Revision 1.7 2000/06/07 00:59:38 kevin
-** added imagefiles
-**
-** Revision 1.6 2000/05/24 22:48:17 kevin
-** First functional version of SDF library for X-window
+** FILE IDENTIFICATION
**
-** Revision 1.5 2000/05/11 01:04:44 kevin
-** Added Microsoft Windows compatibility
+** Name: ct.h
+** Purpose: Master header file for CTSim
+** Programmer: Kevin Rosenberg
+** Date Started: Aug 1984
**
-** Revision 1.4 2000/05/03 19:51:41 kevin
-** function renaming for phantoms and phantom elements
-**
-** Revision 1.3 2000/04/30 19:17:35 kevin
-** Set up include files for conditional SGP
-**
-** Revision 1.2 2000/04/28 14:14:16 kevin
-** *** empty log message ***
+** This is part of the CTSim program
+** Copyright (C) 1983-2000 Kevin Rosenberg
**
+** $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
#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
-#include "g2.h"
+extern "C" {
+#include "g2.h"
+}
#ifdef HAVE_X11
+extern "C" {
#include "g2_X11.h"
+}
#endif
#endif
#ifdef HAVE_STDIO_H
#include <stdint.h> /* Standard ints on Linux */
#endif
-#ifdef MPI_CT
-#include "mpi.h"
+#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 "kstddef.h"
-#include "kmath.h"
-#include "sdf.h"
-#include "ir.h"
-#include "keyboard.h"
-#include "cio.h"
+#include "ctsupport.h"
+#include "fnetorderstream.h"
#ifdef HAVE_SGP
#include "ezplot.h"
#include "sgp.h"
#endif
-#ifdef __cplusplus
- #include <iostream>
- #include <string>
+#include "array2d.h"
+#include "fnetorderstream.h"
+#include "imagefile.h"
+#include "phantom.h"
+#include "scanner.h"
+#include "backprojectors.h"
+#include "filter.h"
+#include "projections.h"
- using namespace std;
+//----------------------------------------------------------------------//
+// 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);
- #include "array2d.h"
- #include "imagefile.h"
-#endif
#endif