1 /*****************************************************************************
5 ** Purpose: Master header file for CTSim
6 ** Programmer: Kevin Rosenberg
7 ** Date Started: Aug 1984
9 ** This is part of the CTSim program
10 ** Copyright (C) 1983-2000 Kevin Rosenberg
12 ** $Id: ct.h,v 1.21 2000/06/22 10:17:28 kevin Exp $
14 ** This program is free software; you can redistribute it and/or modify
15 ** it under the terms of the GNU General Public License (version 2) as
16 ** published by the Free Software Foundation.
18 ** This program is distributed in the hope that it will be useful,
19 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
20 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 ** GNU General Public License for more details.
23 ** You should have received a copy of the GNU General Public License
24 ** along with this program; if not, write to the Free Software
25 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
26 ******************************************************************************/
33 #define HAVE_STRING_H 1
35 #define snprintf _snprintf
36 #define vsnprintf _vsnprintf
37 #define strcasecmp stricmp
38 #define strncasecmp strnicmp
72 #ifdef HAVE_SYS_TYPES_H
73 #include <sys/types.h>
75 #ifdef HAVE_SYS_STAT_H
84 #ifdef HAVE_SYS_FCNTL_H
85 #include <sys/fcntl.h>
90 #if defined(HAVE_GETOPT_H) || defined(HAVE_GETOPT_LONG)
99 #ifdef HAVE_SYS_PARAM_H
100 #include <sys/param.h> /* for htonl on FreeBSD */
102 #ifdef HAVE_NETINET_IN_H
103 #include <netinet/in.h> /* for htonl on Linux/Solaris */
105 #ifdef HAVE_INTTYPES_H
106 #include <inttypes.h> /* for htonl on Solaris */
109 #include <stdint.h> /* Standard ints on Linux */
126 #include "mpiworld.h"
129 #include "ctsupport.h"
130 #include "fnetorderstream.h"
138 #include "fnetorderstream.h"
139 #include "imagefile.h"
142 #include "backprojectors.h"
144 #include "projections.h"
146 //----------------------------------------------------------------------//
148 //----------------------------------------------------------------------//
151 static const char O_TRACE_NONE_STR[]= "none";
152 static const char O_TRACE_TEXT_STR[]= "text";
153 static const char O_TRACE_PHM_STR[]= "phm";
154 static const char O_TRACE_RAYS_STR[]= "rays";
155 static const char O_TRACE_PLOT_STR[]= "plot";
156 static const char O_TRACE_CLIPPING_STR[]= "clipping";
159 TRACE_NONE, /* No tracing */
160 TRACE_TEXT, /* Minimal status */
161 TRACE_PHM, /* Show phantom */
162 TRACE_RAYS, /* Show all rays */
163 TRACE_PLOT, /* Plot raysums */
164 TRACE_CLIPPING /* Plot clipping */
168 /*************************************************************************
169 * FUNCTION DECLARATIONS
170 ************************************************************************/
173 bool phm_add_pelem_kb (Phantom& phm);
174 const Phantom& phm_select (Phantom& phm);
175 int interpolation_select (void);
176 int filter_select (double *filter_param);
179 int opt_set_trace(const char *optarg);
182 void image_filter_response (ImageFile& im, const char* const domainName, double bw, const char* const filterName, double filt_param, const int opt_trace);
183 int image_display (const ImageFile& im);
184 int image_display_scale (const ImageFile& im, const int scale, const double pmin, const double pmax);