From 2a81fc27f76404a0d5ec0b5ca809a655f8538c94 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Thu, 4 May 2000 04:25:55 +0000 Subject: [PATCH] r36: Renamed phantom and phantom-element functions/variables --- include/ir.h | 87 +++++++++++++++++++++++++++++----------------------- 1 file changed, 49 insertions(+), 38 deletions(-) diff --git a/include/ir.h b/include/ir.h index 7a3ab95..b7c6496 100644 --- a/include/ir.h +++ b/include/ir.h @@ -2,8 +2,11 @@ ** This is part of the CTSim program ** Copyright (C) 1983-2000 Kevin Rosenberg ** -** $Id: ir.h,v 1.7 2000/05/03 19:51:41 kevin Exp $ +** $Id: ir.h,v 1.8 2000/05/04 04:25:55 kevin Exp $ ** $Log: ir.h,v $ +** Revision 1.8 2000/05/04 04:25:55 kevin +** Renamed phantom and phantom-element functions/variables +** ** Revision 1.7 2000/05/03 19:51:41 kevin ** function renaming for phantoms and phantom elements ** @@ -116,9 +119,9 @@ struct phmelem_st { typedef struct phmelem_st PHMELEM; struct phm_st { /* Phantom structure */ - PHMELEM *objlist; /* phmelem list */ + PHMELEM *phmelem_list; /* phmelem linked-list */ int type; - int n_pelem; /* number of phmelems in phantom */ + int n_pelm; /* number of phmelems in phantom */ double xmin, xmax, ymin, ymax; /* extent of phmelems in phmelem coordinates */ double radius; /* " " */ }; @@ -205,9 +208,9 @@ typedef struct raysum_st RAYSUM; #define O_SEGMENT 5 /* Codes for Coordinate Types */ -/* Defines coords for inside_obj() */ +/* Defines coords for pelm_is_point_inside() */ -#define OBJ_COORD -1 /* Normalized Phmelem Coordinates */ +#define PELM_COORD -1 /* Normalized Phmelem Coordinates */ #define PHM_COORD -2 /* User's PHANTOM Coordinates */ /* Codes for Filter types */ @@ -307,17 +310,17 @@ typedef struct raysum_st RAYSUM; #define O_BPROJ_DIFF2_STR "diff2" #define O_BPROJ_IDIFF2_STR "idiff2" -#define RS_TRACE_ROW_TITLE 1 -#define RS_TRACE_ROW_TITLE2 2 -#define RS_TRACE_ROW_PHANT_ID 4 -#define RS_TRACE_ROW_CHROMATIC 7 -#define RS_TRACE_ROW_SCATTER 8 -#define RS_TRACE_ROW_PHOT_STAT 9 -#define RS_TRACE_ROW_NDET 12 -#define RS_TRACE_ROW_NVIEW 13 -#define RS_TRACE_ROW_SAMPLES 14 -#define RS_TRACE_ROW_CURR_VIEW 17 -#define RS_TRACE_ROW_ATTEN 18 +#define RAYSUM_TRACE_ROW_TITLE 1 +#define RAYSUM_TRACE_ROW_TITLE2 2 +#define RAYSUM_TRACE_ROW_PHANT_ID 4 +#define RAYSUM_TRACE_ROW_CHROMATIC 7 +#define RAYSUM_TRACE_ROW_SCATTER 8 +#define RAYSUM_TRACE_ROW_PHOT_STAT 9 +#define RAYSUM_TRACE_ROW_NDET 12 +#define RAYSUM_TRACE_ROW_NVIEW 13 +#define RAYSUM_TRACE_ROW_SAMPLES 14 +#define RAYSUM_TRACE_ROW_CURR_VIEW 17 +#define RAYSUM_TRACE_ROW_ATTEN 18 /*----------------------------------------------------------------------*/ @@ -390,6 +393,7 @@ int main(const int argc, char * const argv[]); /* bspline.c */ int bspline(int samples, int zoom_factor, int spline_order, double input[], double output[]); + /* convolve.c */ double convolve(const double f1[], const double f2[], const double dx, const int n, const int np, const int func_type); double convolve_both(const double f1[], const double f2[], const double dx, const int n, const int np); @@ -397,24 +401,28 @@ 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); int circle_pts(double theta); + /* dialogs.c */ -int phm_add_pelem_kb(PHANTOM *phm); +int phm_add_pelm_kb(PHANTOM *phm); PHANTOM *phm_select(void); int interpolation_select(void); int filter_select(double *filter_param); + /* filter.c */ double *filter_generate(int filt_type, double bw, double xmin, double xmax, int n, double param, int domain, int numint); double filter_spatial_response_calc(int filt_type, double x, double bw, double param, int n); double filter_spatial_response_analytic(int filt_type, double x, double bw, double param); double filter_frequency_response(int filt_type, double u, double bw, double param); double sinc(double x, double mult); -double abscos_int(double u, double w); +double integral_abscos(double u, double w); + /* image.c */ IMAGE *image_create(const char *fname, const int nx, const int ny); int image_clear(IMAGE *im); int image_save(IMAGE *im); IMAGE *image_load(const char *fname); void image_filter_response(IMAGE *im, int domain, double bw, int filt_type, double filt_param, int opt_trace); + /* options.c */ int opt_set_trace(const char *optarg, const char *program); const char *name_of_phantom(const int phmid); @@ -427,16 +435,17 @@ int opt_set_filter_domain(const char *optarg, const char *program); const char *name_of_filter_domain(const int domain); int opt_set_backproj(const char *optarg, const char *program); const char *name_of_backproj(const int backproj); + /* phm.c */ PHANTOM *phm_create(const int phmid); PHANTOM *phm_create_from_file(const char *fname); PHANTOM *phm_init(void); -int phm_add_pelem_file(PHANTOM *phm, const char *fname); -void phm_add_pelem (PHANTOM *phm, const int type, const double cx, const double cy, +int phm_add_pelm_file(PHANTOM *phm, const char *fname); +void phm_add_pelm (PHANTOM *phm, const int type, const double cx, const double cy, const double u, const double v, const double rot, const double atten); -int pelem_make_points(PHMELEM *obj); -void pelem_make_xform (PHMELEM *obj); -PHMELEM *pelem_alloc(void); +int pelm_make_points(PHMELEM *obj); +void pelm_make_xform (PHMELEM *obj); +PHMELEM *pelm_alloc(void); void calc_arc(double x[], double y[], const int pts, const double xcent, const double ycent, const double r, const double start, const double stop); void calc_ellipse(double x[], double y[], const int pts, const double u, const double v); @@ -445,27 +454,29 @@ void phm_print(PHANTOM *phm); void phm_show(const PHANTOM *phm); void phm_draw(const PHANTOM *phm); #endif + /* phm2image.c */ void phm_to_image(const PHANTOM *phm, IMAGE *im, const int col_start, const int col_count, const int nsample, const int trace); -int inside_obj(const PHMELEM *obj, double x, double y, const int coord_type); +int pelm_is_point_inside(const PHMELEM *obj, double x, double y, const int coord_type); + /* phmstd.c */ -void herm_head(PHANTOM *phm); -void row_head(PHANTOM *phm); -void row_bord_head(PHANTOM *phm); -/* ray.c */ +void phm_std_herman (PHANTOM *phm); +void phm_std_rowland (PHANTOM *phm); +void phm_std_rowland_bordered (PHANTOM *phm); + +/* raycollect.c */ +int raysum_collect(RAYSUM *rs, const DETECTOR *det, const PHANTOM *phm, const int start_view, const int trace, const int unit_pulse); +void rayview(const PHANTOM *phm, DETARRAY *darray, const DETECTOR *det, const double xd1, const double yd1, const double xd2, const double yd2, const double xs1, const double ys1, const double xs2, const double ys2, const int unit_pulse); +double phm_ray_attenuation (const PHANTOM *phm, const double x1, const double y1, const double x2, const double y2); +double pelm_ray_attenuation (const PHMELEM *obj, const double x1, const double y1, const double x2, const double y2); +int pelm_clip_line (const PHMELEM *obj, double *x1, double *y1, double *x2, double *y2); +void raysum_trace_show_param (const char *label, const char *fmt, int row, int color, ...); + +/* scanner.c */ DETECTOR *detect_create(const PHANTOM *phm, int ndet, int nview, int nsample, const double rot_anglen); void detect_free(DETECTOR *det); -double calc_rsum(const PHANTOM *phm, const double x1, const double y1, const double x2, const double y2); -double calc_objsum(const PHMELEM *obj, const double x1, const double y1, const double x2, const double y2); -int clipobj(const PHMELEM *obj, double *x1, double *y1, double *x2, double *y2); -/* raycollect.c */ -int raysum_collect(RAYSUM *rs, const DETECTOR *det, const PHANTOM *phm, const int start_view, - const int trace, const int unit_pulse); -void rayview(const PHANTOM *phm, DETARRAY *darray, const DETECTOR *det, - const double xd1, const double yd1, const double xd2, const double yd2, - const double xs1, const double ys1, const double xs2, const double ys2, const int unit_pulse); -void rs_trace_showprm (const char *label, const char *fmt, int row, int color, ...); + /* rayio.c */ RAYSUM *raysum_create(const char *fname, const int nview, const int ndet); RAYSUM *raysum_create_from_det(const char *fname, const DETECTOR *det); -- 2.34.1