X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=libctsim%2Fdialogs.cpp;fp=libctsim%2Fdialogs.cpp;h=0000000000000000000000000000000000000000;hb=4114001db83630028afd31d215df560f8d682b22;hp=e73f6e1382be1fe154d0c858417e64393c2281c3;hpb=ee0105d74fec9d6bfd236e22e9e1d315e46c568e;p=ctsim.git diff --git a/libctsim/dialogs.cpp b/libctsim/dialogs.cpp deleted file mode 100644 index e73f6e1..0000000 --- a/libctsim/dialogs.cpp +++ /dev/null @@ -1,222 +0,0 @@ -/***************************************************************************** -** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg -** -** $Id: dialogs.cpp,v 1.2 2000/06/22 10:42:39 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 -******************************************************************************/ - -#include "ct.h" - -/************************************************************************* - * 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); - - -/* NAME - * phm_add_pelem_kb Let user specify pelem, and add it to the pic - * - * SYNOPSIS - * phm_add_pelem_kb (phm) - * Phantom& pic PHANTOM that we are to add pelem to - * - * RETURNS - * true if user added an pelem to PHANTOM - * false if user decided not to add an pelem to the PHANTOM - */ - -bool -phm_add_pelem_kb (Phantom& phm) -{ - int retval = false; - - do { - int pelemtype; - - crt_clrline (1); - crt_clrline (2); - crt_set_cpos (1, 2); - crt_put_str ("1 = Rectangle, 2 = Triangle, 3 = Ellipse, 4 = Sector, 5 = Segment"); - crt_set_cpos (1, 1); - crt_put_str ("Enter pelem type (1-5, 0 = no pelem) -- "); - scanf ("%d", &pelemtype); - crt_clrline (1); - crt_clrline (2); - - if (pelemtype < 1) { - retval = false; - } else { - double cx, cy, u, v, rot, dens; - - retval = true; - crt_set_cpos (1, 1); - crt_put_str ("Enter pelem specs (cx, cy, u, v, rot, density) -- "); - scanf ("%lf %lf %lf %lf %lf %lf %*c", &cx, &cy, &u, &v, &rot, &dens); - crt_clrline (1); - phm.addPelem (phm, pelemtype, cx, cy, u, v, rot, dens); - } - } while (retval == true); - - return (true); -} - -const Phantom& phm_select (Phantom& phm) -{ - string fname; - int phmnum; - - printf ("Which phantom do you want to compile into pixels:\n"); - printf (" 1 - Herman head phantom\n"); - printf (" 2 - Rowland head phantom\n"); - printf (" 3 - \n"); - printf (" 4 - Rowland head phantom (Bordered)\n"); - printf (" 6 - A Filter\n"); - printf (" 7 - Unit pulse\n"); - printf (" 8 - Enter PHANTOM from file\n"); - printf (" 9 - Enter PHANTOM from keyboard\n"); - printf ("Enter the number corresponding to your choice: "); - scanf ("%d%*c", &phmnum); - - switch (phmnum) { - case 1: - phm.std_herman (); - break; - case 2: - phm.std_rowland (); - break; - case 4: - phm.std_rowland_bordered (); - break; - case 6: - phm.setComposition (P_FILTER); - break; - case 7: - phm.setComposition (P_UNIT_PULSE); - phm.addPelem (1, 0., 0., 100., 100., 0., 0.); /* outline */ - phm.addPelem (3, 0., 0., 1., 1., 0., 1.); /* pulse */ - break; - case 8: - printf ("Enter name of file: "); - scanf ("%s %*c", fname); - phm.setComposition (P_PELEMS); - if (phm.createFromFile (fname) == false) - cerr << "File " << fname << " doesn't contain valid Phantom declaration" << endl; - break; - case 9: - crt_clrscrn (); - phm_add_pelem_kb (phm); - crt_clrscrn (); - break; - default: - sys_error (ERR_FATAL, "Illegal Phantom number %d\n", phmnum); - break; - } - - return (phm); -} - -/* NAME - * interpolation_select Let user select an interpolation method - * - * SYNOPSIS - * interpolation_type = interpolation_select() - * int interpolation_type Method of interpolation to use - */ - -int interpolation_select (void) -{ - bool got_it = false; - - do { - int interp_type; - - printf ("What interpolation method do you want to use:\n"); - printf (" %2d - Nearest neighbor\n", I_NEAREST); - printf (" %2d - Linear\n", I_LINEAR); - printf (" %2d - B-Spline\n", I_BSPLINE); - printf ("Enter number corresponding to desired method: "); - scanf ("%d", &interp_type); - printf ("\n"); - - if (interp_name_of (interp_type) == NULL) { - cout << endl; - cio_beep (); - } else - got_it = true; - - } while (! got_it); - - return (interp_type); -} - - -/* NAME - * filter_select Let user select a filter - * - * SYNOPSIS - * filter_type = filt_select (filt_param) - * int filt_type Type of filter to use - * double *filt_param Returns parameter to filter - * Currently, only used with Hamming filters - */ - -int -filter_select (double *filt_param) -{ - bool got_it = false; - - do { - int filt_type; - - printf ("Which filter would you like to use:\n"); - printf (" %2d - Bandlimiting\n", FILTER_BANDLIMIT); - printf (" %2d - Sinc\n", FILTER_SINC); - printf (" %2d - Hamming\n", FILTER_G_HAMMING); - printf (" %2d - Cosine\n", FILTER_COSINE); - printf (" %2d - Triangle\n", FILTER_TRIANGLE); - printf (" %2d - Abs * Bandlimit\n", FILTER_ABS_BANDLIMIT); - printf (" %2d - Abs * Sinc\n", FILTER_ABS_SINC); - printf (" %2d - Abs * Hamming \n", FILTER_ABS_G_HAMMING); - printf (" %2d - Abs * Cosine\n", FILTER_ABS_COSINE); - printf (" %2d - Shepp-Logan\n", FILTER_SHEPP); - printf ("Enter number corresponding to desired filter: "); - scanf ("%d", &filt_type); - - if (filter_name_of (filt_type) == NULL) { - printf ("\n"); - cio_beep (); - } else - got_it = true; - - } while (! got_it); - - if (filt_type == FILTER_G_HAMMING || filt_type == FILTER_ABS_G_HAMMING) { - cout << "Enter alpha (0-1): " << flush; - cin >> *filt_param; - } else - *filt_param = 0.0; - - return (filt_type); -} - - - -