Revision: 34080 http://brlcad.svn.sourceforge.net/brlcad/?rev=34080&view=rev Author: ralith Date: 2009-03-26 06:37:24 +0000 (Thu, 26 Mar 2009)
Log Message: ----------- Removed another redundant vecmath.h from burst, replacing uses with vmath.h macros. Modified Paths: -------------- brlcad/trunk/src/burst/Makefile.am brlcad/trunk/src/burst/grid.c brlcad/trunk/src/burst/paint.c brlcad/trunk/src/burst/plot.c brlcad/trunk/src/burst/prnt.c Removed Paths: ------------- brlcad/trunk/src/burst/vecmath.h Modified: brlcad/trunk/src/burst/Makefile.am =================================================================== --- brlcad/trunk/src/burst/Makefile.am 2009-03-26 05:39:16 UTC (rev 34079) +++ brlcad/trunk/src/burst/Makefile.am 2009-03-26 06:37:24 UTC (rev 34080) @@ -33,8 +33,7 @@ Hm.h \ Mm.h \ Sc.h \ - trie.h \ - vecmath.h + trie.h EXTRA_DIST = burst.format Modified: brlcad/trunk/src/burst/grid.c =================================================================== --- brlcad/trunk/src/burst/grid.c 2009-03-26 05:39:16 UTC (rev 34079) +++ brlcad/trunk/src/burst/grid.c 2009-03-26 06:37:24 UTC (rev 34080) @@ -37,12 +37,19 @@ #include "fb.h" #include "plot3.h" -#include "./vecmath.h" #include "./ascii.h" #include "./extern.h" #define DEBUG_GRID 0 #define DEBUG_SHOT 1 +#ifndef EPSILON +#define EPSILON 0.000001 +#endif +#define FABS(a) ((a) > 0 ? (a) : -(a)) +#define AproxEq(a,b,e) (FABS((a)-(b)) < (e)) +#define AproxEqVec(A,B,e) ( AproxEq((A)[X], (B)[X], (e)) && \ + AproxEq((A)[Y], (B)[Y], (e)) && \ + AproxEq((A)[Z], (B)[Z], (e)) ) /* local communication with multitasking process */ static int currshot; /* current shot index */ @@ -152,7 +159,7 @@ { boolean status = 1; noverlaps = 0; - CopyVec(ag.a_ray.r_dir, viewdir); /* XXX -- could be done up in + VMOVE(ag.a_ray.r_dir, viewdir); /* XXX -- could be done up in gridModel() */ for (; ! userinterrupt; view_pix(&ag)) { @@ -594,7 +601,7 @@ if (bp == PT_NULL && bdist > 0.0) { bp = pp; /* register exterior burst */ - CopyVec(burstnorm, exitnorm); + VMOVE(burstnorm, exitnorm); } /* If there is a void, output 01 air as space. */ @@ -610,7 +617,7 @@ { /* Bursting on armor/void (ouchh). */ bp = pp; - CopyVec(burstnorm, exitnorm); + VMOVE(burstnorm, exitnorm); } prntSeg(ap, pp, OUTSIDE_AIR, entrynorm, exitnorm, pp == bp); @@ -632,7 +639,7 @@ ) { bp = pp; /* register interior burst */ - CopyVec(burstnorm, exitnorm); + VMOVE(burstnorm, exitnorm); } prntSeg(ap, pp, nregp->reg_aircode, entrynorm, exitnorm, pp == bp); @@ -750,7 +757,7 @@ ap->a_ray.r_dir); } else /* Interior burst point: no fuzing offset. */ - CopyVec(burstpt, bp->pt_outhit->hit_point); + VMOVE(burstpt, bp->pt_outhit->hit_point); /* Only generate burst rays if nspallrays is greater then zero. */ @@ -797,8 +804,8 @@ boolean ret = 1; totalct++; /* Dot product of ray direction with normal *should* be negative. */ - f = Dot(rayp->r_dir, normvec); - if (NearZero(f)) + f = VDOT(rayp->r_dir, normvec); + if (NEAR_ZERO(f, EPSILON)) { #ifdef DEBUG brst_log("chkEntryNorm: near 90 degree obliquity.\n"); @@ -828,7 +835,7 @@ pp->pt_inhit->hit_point[Z]); brst_log("\t%d of %d normals flipped.\n", flipct, totalct); #endif - ScaleVec(normvec, -1.0); + VSCALE(normvec, normvec, -1.0); ret = 0; } return ret; @@ -848,8 +855,8 @@ boolean ret = 1; totalct++; /* Dot product of ray direction with normal *should* be positive. */ - f = Dot(rayp->r_dir, normvec); - if (NearZero(f)) + f = VDOT(rayp->r_dir, normvec); + if (NEAR_ZERO(f, EPSILON)) { #ifdef DEBUG brst_log("chkExitNorm: near 90 degree obliquity.\n"); @@ -879,7 +886,7 @@ pp->pt_outhit->hit_point[Z]); brst_log("\t%d of %d normals flipped.\n", flipct, totalct); #endif - ScaleVec(normvec, -1.0); + VSCALE(normvec, normvec, -1.0); ret = 0; } return ret; @@ -1001,14 +1008,14 @@ } } else /* Single shot specified. */ - CopyVec(vec, fire); + VMOVE(vec, fire); if (TSTBIT(firemode, FM_3DIM)) { fastf_t hitpoint[3]; /* Project 3-d hit-point back into grid space. */ - CopyVec(hitpoint, vec); - vec[X] = Dot(gridhor, hitpoint); - vec[Y] = Dot(gridver, hitpoint); + VMOVE(hitpoint, vec); + vec[X] = VDOT(gridhor, hitpoint); + vec[Y] = VDOT(gridver, hitpoint); } ap->a_x = vec[X] / cellsz; ap->a_y = vec[Y] / cellsz; @@ -1043,10 +1050,10 @@ } /* Compute cell horizontal and vertical vectors relative to grid origin. */ - Scale2Vec(gridhor, scalecx, gridxinc); - Scale2Vec(gridver, scalecy, gridyinc); - Add2Vec(gridsoff, gridyinc, ap->a_ray.r_pt); - AddVec(ap->a_ray.r_pt, gridxinc); + VSCALE(gridxinc, gridhor, scalecx); + VSCALE(gridyinc, gridver, scalecy); + VADD2( ap->a_ray.r_pt,gridsoff, gridyinc); + VADD2(ap->a_ray.r_pt, ap->a_ray.r_pt, gridxinc); return 1; } @@ -1108,9 +1115,9 @@ brst_log("gridInit: canting warhead\n"); #endif cantwarhead = 1; - Scale2Vec(gridhor, negsinyaw, xdeltavec); - Scale2Vec(gridver, sinpitch, ydeltavec); - Add2Vec(xdeltavec, ydeltavec, cantdelta); + VSCALE(xdeltavec, gridhor, negsinyaw); + VSCALE(ydeltavec, gridver, sinpitch); + VADD2( cantdelta,xdeltavec, ydeltavec); } /* unit vector from origin of model toward eye */ @@ -1133,18 +1140,18 @@ if (groundburst) { /* extend grid to include ground platform */ - modelmax[X] = Max(rtip->mdl_max[X], grndfr); - modelmin[X] = Min(rtip->mdl_min[X], -grndbk); - modelmax[Y] = Max(rtip->mdl_max[Y], grndlf); - modelmin[Y] = Min(rtip->mdl_min[Y], -grndrt); + modelmax[X] = FMAX(rtip->mdl_max[X], grndfr); + modelmin[X] = FMIN(rtip->mdl_min[X], -grndbk); + modelmax[Y] = FMAX(rtip->mdl_max[Y], grndlf); + modelmin[Y] = FMIN(rtip->mdl_min[Y], -grndrt); modelmax[Z] = rtip->mdl_max[Z]; - modelmin[Z] = Min(rtip->mdl_min[Z], -grndht); + modelmin[Z] = FMIN(rtip->mdl_min[Z], -grndht); } else { /* size grid by model RPP */ - CopyVec(modelmin, rtip->mdl_min); - CopyVec(modelmax, rtip->mdl_max); + VMOVE(modelmin, rtip->mdl_min); + VMOVE(modelmax, rtip->mdl_max); } /* Calculate extent of grid. */ gridrt = max( gridhor[X] * modelmax[X], @@ -1265,13 +1272,13 @@ /* determine largest grid dimension for frame buffer display */ gridwidth = gridxfin - gridxorg + 1; gridheight = gridyfin - gridyorg + 1; - gridsz = Max(gridwidth, gridheight); + gridsz = FMAX(gridwidth, gridheight); /* vector to grid origin from model origin */ - Scale2Vec(viewdir, standoff, gridsoff); + VSCALE(gridsoff, viewdir, standoff); /* direction of grid rays */ - ScaleVec(viewdir, -1.0); + VSCALE(viewdir, viewdir, -1.0); prntTimer("grid"); notify(NULL, NOTIFY_DELETE); @@ -1364,7 +1371,7 @@ break; currshot++; prntFiringCoords(a.a_uvec); - CopyVec(a.a_ray.r_dir, viewdir); + VMOVE(a.a_ray.r_dir, viewdir); a.a_level = 0; /* initialize recursion level */ plotGrid(a.a_ray.r_pt); if (rt_shootray(&a) == -1 && fatalerror) @@ -1403,7 +1410,7 @@ fastf_t surfnorm[3]; { Colors *colorp; - fastf_t intensity = -Dot(viewdir, surfnorm); + fastf_t intensity = -VDOT(viewdir, surfnorm); if (intensity < 0.0) intensity = -intensity; @@ -1420,7 +1427,7 @@ ap->a_color[RED] = ap->a_color[GRN] = ap->a_color[BLU] = 1.0; - ScaleVec(ap->a_color, intensity); + VSCALE(ap->a_color, ap->a_color, intensity); ap->a_cumlen = hitp->hit_dist; } @@ -1434,7 +1441,7 @@ max(a, b) fastf_t a, b; { - return Max(a, b); + return FMAX(a, b); } /* @@ -1447,7 +1454,7 @@ min(a, b) fastf_t a, b; { - return Min(a, b); + return FMIN(a, b); } /* @@ -1612,7 +1619,7 @@ fastf_t sinphi = sin(phi); fastf_t gammaval, gammainc, gammalast; int m; - sinphi = Abs(sinphi); + sinphi = FABS(sinphi); m = (TWO_PI * sinphi)/delta + 1; gammainc = TWO_PI / m; gammalast = TWO_PI-gammainc+EPSILON; @@ -1658,8 +1665,8 @@ axis. */ if (cantwarhead) { - AddVec(a_burst.a_ray.r_dir, cantdelta); - V_Length(a_burst.a_ray.r_dir, 1.0); + VADD2(a_burst.a_ray.r_dir, a_burst.a_ray.r_dir, cantdelta); + VUNITIZE(a_burst.a_ray.r_dir) } /* If a deflected cone is specified (the default) the spall cone axis is half way between the main penetrator axis and exit @@ -1667,10 +1674,10 @@ */ if (deflectcone) { - AddVec(a_burst.a_ray.r_dir, normal); - V_Length(a_burst.a_ray.r_dir, 1.0); + VADD2(a_burst.a_ray.r_dir, a_burst.a_ray.r_dir, normal); + VUNITIZE(a_burst.a_ray.r_dir) } - CopyVec(a_burst.a_ray.r_pt, bpt); + VMOVE(a_burst.a_ray.r_pt, bpt); comphi = 0.0; /* Initialize global for concurrent access. */ @@ -1702,7 +1709,7 @@ if (done) break; sinphi = sin(phi); - sinphi = Abs(sinphi); + sinphi = FABS(sinphi); m = (TWO_PI * sinphi)/delta + 1; gammainc = TWO_PI / m; gammalast = TWO_PI - gammainc + EPSILON; @@ -1763,18 +1770,18 @@ || AproxEqVec(dvec, negzaxis, VEC_TOL) ) { - CopyVec(evec, xaxis); + VMOVE(evec, xaxis); } else { - CrossProd(dvec, zaxis, evec); + VCROSS(evec, dvec, zaxis); } - CrossProd(evec, dvec, fvec); - Scale2Vec(dvec, cosphi, cosdphi); + VCROSS(fvec, evec, dvec); + VSCALE(cosdphi,dvec, cosphi); ssgaphi = singamma * sinphi; csgaphi = cosgamma * sinphi; VJOIN2(s_rdir, cosdphi, ssgaphi, evec, csgaphi, fvec); - V_Length(s_rdir, 1.0); /* unitize */ + VUNITIZE(s_rdir); return; } Modified: brlcad/trunk/src/burst/paint.c =================================================================== --- brlcad/trunk/src/burst/paint.c 2009-03-26 05:39:16 UTC (rev 34079) +++ brlcad/trunk/src/burst/paint.c 2009-03-26 06:37:24 UTC (rev 34080) @@ -33,7 +33,6 @@ #include "raytrace.h" #include "fb.h" -#include "./vecmath.h" #include "./extern.h" @@ -191,8 +190,8 @@ CenterCell( x ); /* center of cell */ CenterCell( y ); celldist = ap->a_cumlen/cellsz * zoom; - x = roundToInt( x + Dot( ap->a_ray.r_dir, gridhor ) * celldist ); - y = roundToInt( y + Dot( ap->a_ray.r_dir, gridver ) * celldist ); + x = roundToInt( x + VDOT( ap->a_ray.r_dir, gridhor ) * celldist ); + y = roundToInt( y + VDOT( ap->a_ray.r_dir, gridver ) * celldist ); bu_semaphore_acquire( RT_SEM_STATS ); err = fb_write( fbiop, x, y, pixel, 1 ); bu_semaphore_release( RT_SEM_STATS ); Modified: brlcad/trunk/src/burst/plot.c =================================================================== --- brlcad/trunk/src/burst/plot.c 2009-03-26 05:39:16 UTC (rev 34079) +++ brlcad/trunk/src/burst/plot.c 2009-03-26 06:37:24 UTC (rev 34080) @@ -34,7 +34,6 @@ #include "raytrace.h" #include "plot3.h" -#include "./vecmath.h" #include "./burst.h" #include "./extern.h" Modified: brlcad/trunk/src/burst/prnt.c =================================================================== --- brlcad/trunk/src/burst/prnt.c 2009-03-26 05:39:16 UTC (rev 34079) +++ brlcad/trunk/src/burst/prnt.c 2009-03-26 06:37:24 UTC (rev 34080) @@ -40,7 +40,6 @@ #include "./Sc.h" #include "./ascii.h" -#include "./vecmath.h" #include "./extern.h" @@ -48,6 +47,9 @@ #define PHANTOM_ARMOR 111 +#define FABS(a) ((a) > 0 ? (a) : -(a)) +#define AproxEq(a,b,e) (FABS((a)-(b)) < (e)) + static fastf_t getNormThickness(); int @@ -88,8 +90,8 @@ { brst_log("Couldn't compute thickness or exit point %s.\n", "along normal direction"); - V_Print("\tpnt", ap->a_ray.r_pt, brst_log); - V_Print("\tdir", ap->a_ray.r_dir, brst_log); + brst_log("\tpnt\t<%12.6f,%12.6f,%12.6f>\n", ap->a_ray.r_pt, brst_log); + brst_log("\tdir\t<%12.6f,%12.6f,%12.6f>\n", ap->a_ray.r_dir, brst_log); ap->a_rbeam = 0.0; return 0; } @@ -267,9 +269,9 @@ fastf_t vec[3]; /* Transform burst point (model coordinate system) into the shotline coordinate system. */ - vec[Y] = Dot(gridhor, bpt); /* Y' */ - vec[Z] = Dot(gridver, bpt); /* Z' */ - vec[X] = -Dot(shotdir, bpt); /* X' - shotdir is reverse of X' */ + vec[Y] = VDOT(gridhor, bpt); /* Y' */ + vec[Z] = VDOT(gridver, bpt); /* Z' */ + vec[X] = -VDOT(shotdir, bpt); /* X' - shotdir is reverse of X' */ if ( outfile[0] != NUL && fprintf(outfp, @@ -381,10 +383,10 @@ fastf_t sinfbangle; /* sine of fall back angle */ /* This *should* give negative of desired result. */ - icosobliquity = Dot(ap->a_ray.r_dir, entrynorm); + icosobliquity = VDOT(ap->a_ray.r_dir, entrynorm); icosobliquity = -icosobliquity; - ocosobliquity = Dot(ap->a_ray.r_dir, exitnorm); + ocosobliquity = VDOT(ap->a_ray.r_dir, exitnorm); if (NEAR_ZERO(exitnorm[Y], VDIVIDE_TOL) && NEAR_ZERO(exitnorm[X], VDIVIDE_TOL)) rotangle = 0.0; @@ -397,7 +399,7 @@ } /* Compute sine of fallback angle. NB: the Air Force measures the fallback angle from the horizontal (X-Y) plane. */ - sinfbangle = Dot(exitnorm, zaxis); + sinfbangle = VDOT(exitnorm, zaxis); los = (cpp->pt_outhit->hit_dist-cpp->pt_inhit->hit_dist)*unitconv; #ifdef VDEBUG @@ -492,13 +494,13 @@ fastf_t sinelev; /* sine of ray elevation */ if (outfile[0] == NUL) return; - cosxr = -Dot(shotdir, raydir); /* shotdir is reverse of X' */ - cosyr = Dot(gridhor, raydir); + cosxr = -VDOT(shotdir, raydir); /* shotdir is reverse of X' */ + cosyr = VDOT(gridhor, raydir); if (NEAR_ZERO(cosyr, VDIVIDE_TOL) && NEAR_ZERO(cosxr, VDIVIDE_TOL)) azim = 0.0; else azim = atan2(cosyr, cosxr); - sinelev = Dot(gridver, raydir); + sinelev = VDOT(gridver, raydir); if ( fprintf(outfp, "%c %8.3f %8.3f %6u\n", PB_RAY_HEADER, @@ -559,7 +561,7 @@ /* calculate cosine of obliquity angle */ - cosobliquity = Dot(ap->a_ray.r_dir, entrynorm); + cosobliquity = VDOT(ap->a_ray.r_dir, entrynorm); cosobliquity = -cosobliquity; #if DEBUG if (cosobliquity - COS_TOL > 1.0) @@ -654,8 +656,8 @@ a_thick.a_level++; a_thick.a_user = regp->reg_regionid; a_thick.a_purpose = "normal thickness"; - CopyVec(a_thick.a_ray.r_pt, ihitp->hit_point); - Scale2Vec(normvec, -1.0, a_thick.a_ray.r_dir); + VMOVE(a_thick.a_ray.r_pt, ihitp->hit_point); + VSCALE( a_thick.a_ray.r_dir,normvec, -1.0); if (rt_shootray(&a_thick) == -1 && fatalerror) { /* Fatal error in application routine. */ Deleted: brlcad/trunk/src/burst/vecmath.h =================================================================== --- brlcad/trunk/src/burst/vecmath.h 2009-03-26 05:39:16 UTC (rev 34079) +++ brlcad/trunk/src/burst/vecmath.h 2009-03-26 06:37:24 UTC (rev 34080) @@ -1,125 +0,0 @@ -/* V E C M A T H . H - * BRL-CAD - * - * Copyright (c) 2004-2009 United States Government as represented by - * the U.S. Army Research Laboratory. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * version 2.1 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this file; see the file named COPYING for more - * information. - * - */ -/** @file vecmath.h - * Author: Gary S. Moss - */ - -#include "common.h" -#include <math.h> - -#ifndef Abs -# define Abs( a ) ((a) > 0 ? (a) : -(a)) -#endif - -#define AbsDotProd( A, B ) (Abs( Dot( A, B ) )) -#define AddVec( A, B ) { (A)[X] += (B)[X]; \ - (A)[Y] += (B)[Y]; \ - (A)[Z] += (B)[Z]; } -#define Add2Vec( A, B, C ) { (C)[X] = (A)[X]+(B)[X]; \ - (C)[Y] = (A)[Y]+(B)[Y]; \ - (C)[Z] = (A)[Z]+(B)[Z]; } -#define AproxEq( a, b, e ) (Abs( (a)-(b) ) < (e)) -#define AproxEqVec( A, B, e ) ( AproxEq((A)[X], (B)[X], (e)) && \ - AproxEq((A)[Y], (B)[Y], (e)) && \ - AproxEq((A)[Z], (B)[Z], (e)) ) -#define CopyVec( A, B ) { (A)[X] = (B)[X]; \ - (A)[Y] = (B)[Y]; \ - (A)[Z] = (B)[Z]; } -#define CrossProd( A, B, C ) { (C)[X] = (A)[Y]*(B)[Z]-(A)[Z]*(B)[Y]; \ - (C)[Y] = (A)[Z]*(B)[X]-(A)[X]*(B)[Z]; \ - (C)[Z] = (A)[X]*(B)[Y]-(A)[Y]*(B)[X]; } -#define DEGRAD 57.2957795130823208767981548141051703324054724665642 - -/* degrees per radian */ -#define DiffVec( A, B ) { (A)[X] -= (B)[X]; \ - (A)[Y] -= (B)[Y]; \ - (A)[Z] -= (B)[Z]; } -#define Diff2Vec( A, B, C ) { (C)[X] = (A)[X]-(B)[X]; \ - (C)[Y] = (A)[Y]-(B)[Y]; \ - (C)[Z] = (A)[Z]-(B)[Z]; } -#define Dist3d( A, B ) (sqrt( Sqr((A)[X]-(B)[X])+\ - Sqr((A)[Y]-(B)[Y])+\ - Sqr((A)[Z]-(B)[Z]))\ - ) -#define DivideVec( A, S ) { (A)[X] /= (S); \ - (A)[Y] /= (S); \ - (A)[Z] /= (S); } -#define Dot( A, B ) ((A)[X]*(B)[X]+(A)[Y]*(B)[Y]+(A)[Z]*(B)[Z]) -#ifndef EPSILON -#define EPSILON 0.000001 -#endif -#define Expand_Vec_Int( V ) (int)(V)[X], (int)(V)[Y], (int)(V)[Z] -#define LOG10E 0.43429448190325182765112891891660508229439700580367 -/* log of e to the base 10 */ -#define Mag( A ) sqrt( AbsDotProd(A, A) ) -#define Mag3(a1, a2, a3) (sqrt(Sqr(a1)+Sqr(a2)+Sqr(a3))) -#ifndef Min -#define Min( a, b ) ((a) < (b) ? (a) : (b)) -#define Max( a, b ) ((a) > (b) ? (a) : (b)) -#endif -#define MinMax( m, M, a ) { m = Min( m, a ); M = Max( M, a ); } -#define MinMaxVec( A, B, C ) { (A)[X] = Min( (A)[X], (C)[X] ); \ - (A)[Y] = Min( (A)[Y], (C)[Y] ); \ - (A)[Z] = Min( (A)[Z], (C)[Z] ); \ - (B)[X] = Max( (B)[X], (C)[X] ); \ - (B)[Y] = Max( (B)[Y], (C)[Y] ); \ - (B)[Z] = Max( (B)[Z], (C)[Z] ); } -#define NearZero( a ) ((a) < EPSILON && (a) > -EPSILON) -#define NonZeroVec( V ) (!NearZero((V)[X]) || !NearZero((V)[Y])|| !NearZero((V)[Z])) -#ifndef PI -#define PI 3.14159265358979323846264338327950288419716939937511 -#endif -/* ratio of circumf. to diam. */ -#define RelDist3d( A, B ) (Sqr((A)[X]-(B)[X])+\ - Sqr((A)[Y]-(B)[Y])+\ - Sqr((A)[Z]-(B)[Z])) -#define ScaleVec( A, s ) { (A)[X] *= (s); \ - (A)[Y] *= (s); \ - (A)[Z] *= (s); } -#define Scale2Vec( A, s, B ) { (B)[X] = (A)[X] * (s); \ - (B)[Y] = (A)[Y] * (s); \ - (B)[Z] = (A)[Z] * (s); } -#define Sqr(a) ((a)*(a)) -#define TWO_PI 6.28318530717958647692528676655900576839433879875022 -/* Scale vector 'a' to have magnitude 'l'. */ -#define V_Length( a, l ) { \ - double f, m; \ - m = Mag(a); \ - if (NEAR_ZERO(m, VDIVIDE_TOL)) \ - brst_log( "Magnitude is zero!\n" ); \ - else { \ - f = (l)/m; \ - (a)[X] *= f; (a)[Y] *= f; (a)[Z] *= f; \ - } \ -} - -#define V_Print(a, b, func) \ - func( "%s\t<%12.6f,%12.6f,%12.6f>\n", a, (b)[0], (b)[1], (b)[2] ) - -/* - * Local Variables: - * mode: C - * tab-width: 8 - * indent-tabs-mode: t - * c-file-style: "stroustrup" - * End: - * ex: shiftwidth=4 tabstop=8 - */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ _______________________________________________ BRL-CAD Source Commits mailing list brlcad-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/brlcad-commits