X-Git-Url: http://git.kpe.io/?p=ctsim.git;a=blobdiff_plain;f=libctsupport%2Fclip.cpp;h=dac3de1e9d8ce88b6201e0f945e90ddb67e441bd;hp=4aa6f019a50291392e874af8efce63aff1e1fba6;hb=8a7697ce57b56cdc43698cd1241ad98d49f9b5ac;hpb=99dd1d6ed10db1f669a5fe6af71225a50fc0ddfb diff --git a/libctsupport/clip.cpp b/libctsupport/clip.cpp index 4aa6f01..dac3de1 100644 --- a/libctsupport/clip.cpp +++ b/libctsupport/clip.cpp @@ -12,9 +12,9 @@ ** the SNARK size of the object (u,v) ** ** This is part of the CTSim program -** Copyright (C) 1983-2000 Kevin Rosenberg +** Copyright (c) 1983-2001 Kevin Rosenberg ** -** $Id: clip.cpp,v 1.1 2000/06/19 02:58:08 kevin Exp $ +** $Id$ ** ** 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 @@ -30,8 +30,7 @@ ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ******************************************************************************/ -#include "kstddef.h" -#include "kmath.h" +#include "ctsupport.h" /* NAME @@ -43,7 +42,7 @@ * double u,v Dimensions of segment */ -int +bool clip_segment (double& x1, double& y1, double& x2, double& y2, const double u, const double v) { double xc1 = x1 * u; @@ -89,7 +88,7 @@ clip_segment (double& x1, double& y1, double& x2, double& y2, const double u, co * double u,v Size of sector */ -int +bool clip_sector (double& x1, double& y1, double& x2, double& y2, const double u, const double v) { double xc1 = x1 * u; @@ -125,7 +124,7 @@ clip_sector (double& x1, double& y1, double& x2, double& y2, const double u, con * double t1,t2 Starting & stopping angles of clipping */ -int +bool clip_circle (double& x1, double& y1, double& x2, double& y2, const double cx, const double cy, const double radius, double t1, double t2) { double xc1 = x1; @@ -152,8 +151,8 @@ clip_circle (double& x1, double& y1, double& x2, double& y2, const double cx, co xform_mtx2 (rotmtx, ccx, ccy); t1 += theta; // rotate start and stop angles t2 += theta; - t1 = norm_ang (t1); - t2 = norm_ang (t2); + t1 = normalizeAngle (t1); + t2 = normalizeAngle (t2); if (xc2 < -D_EPSILON || fabs(yc2) > F_EPSILON) { sys_error (ERR_SEVERE, "Internal error in clip_circle\n x1=%6.2f, y1=%6.2f, x2=%6.2f, y2=%6.2f, xc2=%6.2f, yc2=%6.2f, theta=%6.2f", x1, y1, x2, y2, xc2, yc2, theta); @@ -242,7 +241,7 @@ clip_circle (double& x1, double& y1, double& x2, double& y2, const double cx, co static int tcode (const double x, const double y, const double m, const double b, const int clip_xaxis); -int +bool clip_triangle (double& x1, double& y1, double& x2, double& y2, const double u, const double v, const int clip_xaxis) { double m = v / u; // slope of triangle lines @@ -251,10 +250,8 @@ clip_triangle (double& x1, double& y1, double& x2, double& y2, const double u, c int c1 = tcode (x1, y1, m, b, clip_xaxis); int c2 = tcode (x2, y2, m, b, clip_xaxis); -#ifdef DEBUG - crt_set_cpos (1,1); - printf ("x1:%6.2f y1:%6.2f code1:%2d x2:%6.2f y2:%6.2f code2:%2d", - x1, y1, c1, x2, y2, c2); +#if 0 + printf ("x1:%6.2f y1:%6.2f code1:%2d x2:%6.2f y2:%6.2f code2:%2d\n", x1, y1, c1, x2, y2, c2); #endif while ( c1 || c2 ) { if ( c1 & c2 ) { @@ -294,9 +291,8 @@ clip_triangle (double& x1, double& y1, double& x2, double& y2, const double u, c } else { x2=x; y2=y; c2=tcode (x2,y2,m,b,clip_xaxis); } -#ifdef DEBUG - crt_set_cpos (1,1); - printf ("x1:%6.2f y1:%6.2f code1:%2d x2:%6.2f y2:%6.2f code2:%2d", x1, y1, c1, x2, y2, c2); +#if 0 + printf ("x1:%6.2f y1:%6.2f code1:%2d x2:%6.2f y2:%6.2f code2:%2d\n", x1, y1, c1, x2, y2, c2); #endif } @@ -334,7 +330,7 @@ tcode (const double x, const double y, const double m, const double b, const int static int rectcode (double x, double y, const double rect[4]); -int +bool clip_rect (double& x1, double& y1, double& x2, double& y2, const double rect[4]) { double x = 0, y = 0;