Compare commits
10
Commits
gedplugins
..
gct
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4e4c445990 | ||
|
|
e433f9c813 | ||
|
|
eed3824da3 | ||
|
|
a4825a42a4 | ||
|
|
2dad082dea | ||
|
|
5b69f1dda0 | ||
|
|
fbf50e1856 | ||
|
|
b2b969911c | ||
|
|
ba87641d27 | ||
|
|
ee88483336 |
@@ -37,7 +37,7 @@ contributor credits are organized into the following general
|
||||
categories depending on the level and type of involvement:
|
||||
|
||||
* Mathematical, Algorithmic, and Geometric Support
|
||||
* Documentation, Artwork, and Website Contributors
|
||||
* Documentation and Website Contributors
|
||||
* Code Contributors
|
||||
* Special Thanks
|
||||
|
||||
@@ -268,8 +268,8 @@ Weaver, Stephanie 'Rain' **
|
||||
ARL Student Hire / Bridgewater College
|
||||
|
||||
|
||||
DOCUMENTATION, ARTWORK, AND WEBSITE CONTRIBUTORS
|
||||
------------------------------------------------
|
||||
DOCUMENTATION AND WEBSITE CONTRIBUTORS
|
||||
--------------------------------------
|
||||
|
||||
Weaver, Earl P.
|
||||
1980
|
||||
@@ -279,7 +279,6 @@ Schueler, Betty J.
|
||||
|
||||
Edwards, Eric
|
||||
SURVICE Engineering, Inc.
|
||||
Open Source (Doc Camp)
|
||||
|
||||
Kregel, Dwayne
|
||||
SURVICE Engineering, Inc.
|
||||
@@ -335,60 +334,6 @@ Perez, Alex
|
||||
2012 November
|
||||
Open Source (GCI)
|
||||
|
||||
Singh, Harmanpreet
|
||||
nicknames harmanpreet
|
||||
2013 October
|
||||
Open Source (Doc Camp)
|
||||
|
||||
Kamga, Isaac
|
||||
nicknames Izak, iiizzzaaakkk
|
||||
2013 October
|
||||
Open Source (Doc Camp)
|
||||
|
||||
Check, Nyah
|
||||
nicknames Ch3ck
|
||||
2013 October
|
||||
Open Source (Doc Camp)
|
||||
|
||||
Scott Nesbitt
|
||||
2013 October
|
||||
Open Source (Doc Camp)
|
||||
|
||||
Wood, David
|
||||
2013 November
|
||||
Open Source (GCI)
|
||||
|
||||
Agarwal, Yatharth
|
||||
2013 November
|
||||
Open Source (GCI)
|
||||
|
||||
McDonald, Rob
|
||||
2013 November
|
||||
Open Source
|
||||
|
||||
Tannous, Marc
|
||||
2014 December
|
||||
Open Source (GCI)
|
||||
|
||||
Chiplunkar, Shardul
|
||||
nicknames microchip, shardulc
|
||||
2014 December
|
||||
Open Source (GCI)
|
||||
|
||||
Juvekar, Mandar
|
||||
nicknames mandarj
|
||||
2014 December
|
||||
Open Source (GCI)
|
||||
|
||||
Sofat, Hitesh
|
||||
nicknames sofat
|
||||
2015 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Sieu, Jeff
|
||||
2017 December
|
||||
Open Source (GCI)
|
||||
|
||||
|
||||
CODE CONTRIBUTIONS
|
||||
------------------
|
||||
@@ -517,9 +462,7 @@ nicknames mjgillich mgillich
|
||||
U.S. Army Research Laboratory
|
||||
|
||||
Howard, Doug
|
||||
nicknames dhoward
|
||||
SURVICE Engineering, Inc.
|
||||
2006 April
|
||||
|
||||
Silva, Prasad Prometheus
|
||||
nicknames prasad_silva
|
||||
@@ -573,7 +516,7 @@ nicknames homovulgaris, madant
|
||||
Open Source (GSoC)
|
||||
|
||||
Saunders, Benjamin
|
||||
nicknames Ralith, ralith
|
||||
nicknames Ralith
|
||||
2008 July
|
||||
Open Source
|
||||
|
||||
@@ -613,10 +556,6 @@ Jain, Sachin
|
||||
2011 April
|
||||
Open Source
|
||||
|
||||
Gerstner, Nick
|
||||
2011 May
|
||||
SURVICE Engineering, Inc.
|
||||
|
||||
Easterbrook, Zach
|
||||
nicknames lainiwakurax
|
||||
2011 July
|
||||
@@ -721,11 +660,6 @@ Govindjee, Arjun
|
||||
2012 December
|
||||
Open Source (GCI)
|
||||
|
||||
Ramirez, Daniel
|
||||
nicknames javamonn
|
||||
2012 December
|
||||
Open Source (GCI)
|
||||
|
||||
Nagy, Csaba
|
||||
nicknames ncsaba
|
||||
2013 April
|
||||
@@ -752,12 +686,12 @@ nicknames avneetkhalsa
|
||||
Open Source (GSoC)
|
||||
|
||||
Daga, Mohit
|
||||
nicknames zero_level, mohitdaga
|
||||
nicknames zero_level
|
||||
2013 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Kamga, Isaac
|
||||
nicknames Izak, iiizzzaaakkk
|
||||
nicknames Izak
|
||||
2013 July
|
||||
Open Source (GSoC)
|
||||
|
||||
@@ -786,7 +720,6 @@ Schulte, Johannes
|
||||
Open Source (GCI)
|
||||
|
||||
Amidon, Peter
|
||||
nicknames peter-sa, Andromeda Galaxy
|
||||
2013 November
|
||||
Open Source (GCI)
|
||||
|
||||
@@ -803,7 +736,7 @@ nicknames huskmate13
|
||||
2014 January
|
||||
Open Source
|
||||
|
||||
Granroth, Gustave
|
||||
Gustave Granroth
|
||||
2014 May
|
||||
Open Source
|
||||
|
||||
@@ -820,89 +753,6 @@ nicknames klinger4077
|
||||
2014 July
|
||||
ARL Student Hire / University of Maryland College Park
|
||||
|
||||
Mirea, Ștefan-Gabriel
|
||||
2014 October
|
||||
Open Source
|
||||
|
||||
Krishna
|
||||
2015 January
|
||||
Open Source (GCI)
|
||||
|
||||
Konrad, Djimeli
|
||||
2015 February
|
||||
Open Source
|
||||
|
||||
Alexandre da Silva Costa, Vasco
|
||||
nicknames vasco_costa
|
||||
2015 April
|
||||
Open Source (GSoC)
|
||||
|
||||
Thakkar, Kalpit
|
||||
nicknames dracarys983
|
||||
2015 May
|
||||
Open Source (GSoC)
|
||||
|
||||
Ilinca, Andrei
|
||||
nicknames andrei_il
|
||||
2015 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Sofat, Hitesh
|
||||
nicknames sofat
|
||||
2015 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Hollister, Brad
|
||||
nicknames bhollister
|
||||
2015 July
|
||||
Open Source (GSoC)
|
||||
|
||||
Hanji, Param
|
||||
2016 March
|
||||
Open Source (GSoC)
|
||||
|
||||
Wu, Bojian
|
||||
2016 June
|
||||
Open Source (GSoC)
|
||||
|
||||
Bagavathy, Rakshika
|
||||
nicknames tandoorichick
|
||||
2016 October
|
||||
Open Source (GSoC)
|
||||
|
||||
Gao, Tianyue
|
||||
2016 December
|
||||
Open Source (GCI)
|
||||
|
||||
Rathore, Shubham
|
||||
nicknames gabbar1947
|
||||
2017 April
|
||||
Open Source
|
||||
|
||||
nicknames Rakete1111
|
||||
2017 November
|
||||
Open Source
|
||||
|
||||
Narayan, Saran
|
||||
nicknames sharannyn
|
||||
2018 April
|
||||
Open Source (GSoC)
|
||||
|
||||
Shinde, Chetan
|
||||
nicknames chetanshinde911
|
||||
2019 April
|
||||
Open Source (GSoC)
|
||||
|
||||
Haydar, Ali
|
||||
nicknames lois221
|
||||
2019 May
|
||||
Open Source (GSoC)
|
||||
|
||||
Vaidya, Sahil
|
||||
nicknames sahilvaidya99
|
||||
2020 April
|
||||
ARL Student Hire / University of Texas at Austin
|
||||
|
||||
|
||||
SPECIAL THANKS
|
||||
--------------
|
||||
@@ -1034,7 +884,7 @@ Thomas, Balbir
|
||||
Open Source
|
||||
|
||||
Remenak, Daniel T.
|
||||
nicknames DTRemenak, Erroneous, dtremenak
|
||||
nicknames DTRemenak, Erroneous
|
||||
2005 July
|
||||
California Institute of Technology
|
||||
Open Source
|
||||
@@ -1194,29 +1044,6 @@ nicknames dhyams
|
||||
2014 February
|
||||
Open Source
|
||||
|
||||
Reddy, Raj
|
||||
nicknames raj12lnm
|
||||
2014 May
|
||||
Open Source
|
||||
|
||||
Malhotra, Shivoam
|
||||
nicknames shiv05
|
||||
2015 March
|
||||
Open Source
|
||||
|
||||
Chepkwony, Benson
|
||||
nicknames bchepkwny
|
||||
2015 December
|
||||
Open Source
|
||||
|
||||
Sagarwal
|
||||
2017 January
|
||||
Open Source (GCI)
|
||||
|
||||
Liu, Jeffrey
|
||||
2019 December
|
||||
Open Source (GCI)
|
||||
|
||||
|
||||
CORPORATE AND ORGANIZATION SUPPORT
|
||||
----------------------------------
|
||||
|
||||
@@ -15,178 +15,28 @@ on-going issues.
|
||||
Recent Bugs
|
||||
-----------
|
||||
|
||||
* dbupgrade -r produces an invalid rhc with the default v5 rhc produced
|
||||
by MGED with "make rhc rhc"
|
||||
|
||||
* apparently all four BRL-CAD Tutorial Series volumes are missing from
|
||||
our bibliography...
|
||||
|
||||
* Tessellating an ETO with a normal tolerance results in stack
|
||||
smashing due to bad logic in recursive algorithm: set norm 2;
|
||||
facetize my.eto my.bot;. Observed infinite recursion in both
|
||||
make_ellipse4() in eto.c and (after adding max recursion test) in
|
||||
paint_face() in manif.c:190
|
||||
|
||||
* bot_dump -o file.obj is possibly generating invalid OBJ files.
|
||||
tested on two different pieces of software including xcode and cura,
|
||||
both failed to read our obj files where stl worked.
|
||||
|
||||
* mater -d information stored in the .g file doesn't survive a
|
||||
garbage collection operation.
|
||||
|
||||
|
||||
* fix checker.sh script and/or overlap GUI so that the latter will
|
||||
read the resulting overlap pairings file from the prior.
|
||||
alternatively, need to be able to run overlap check on server
|
||||
without GUI, so could implement an overlaps file output option to be
|
||||
run via mged -c.
|
||||
|
||||
* running 'put' on geometry that is already displayed results in a NaN
|
||||
view (at least View and Eye_pos parameters are non) despite geometry
|
||||
still being displayed. this causes 'rt' to fly into an infinite
|
||||
loop, presumably trying to increment rays from the eye position.
|
||||
|
||||
* icv dpix support is not cross-platform (it writes out native, reads
|
||||
in assuming same encoding). regression tests fail on big endian.
|
||||
|
||||
* creating an object with a slashes in the name (e.g., cp foo foo/R)
|
||||
results in an object that cannot be deleted/renamed. bad behavior
|
||||
presumably extends to any name with path separators.
|
||||
|
||||
* mirror command rejects brep solids and turns faces inside-out when
|
||||
mirroring a comb with brep solids below it.
|
||||
|
||||
* rtsil command works if do what usage says and redirect output to
|
||||
file, but mentions .pix when data is actually .bw; and using the -o
|
||||
option results in a black image. it is also inconsistent, writing a
|
||||
black silhouette on a white background, instead of black on white
|
||||
and missing background color options.
|
||||
|
||||
* make sph sph
|
||||
clone -i 1 -t 1000 0 0 -n 100 sph
|
||||
kill sph
|
||||
g line sph*
|
||||
clone -i 1 -t 0 1000 0 -n 100 line
|
||||
kill line
|
||||
g square line*
|
||||
clone -i 1 -t 0 0 1000 -n 100 square
|
||||
... never returns ...
|
||||
|
||||
This should be merely 1M spheres, but something chokes. Could be
|
||||
somewhere in the Tk layer. Maybe somewhere in the db layer. Maybe
|
||||
something is corrupted by clone when it
|
||||
|
||||
* If we draw any form, then trace it using rt, then change of database
|
||||
(by clicking file>open and selecting another database), badness
|
||||
ensues. One report has quitting the rt window causing a segfault.
|
||||
Another (confirmed) hung mged (stuck/inf loop).
|
||||
|
||||
* annotation bugs:
|
||||
in sph1.s sph 0 0 0 10
|
||||
in ann1.s annot 0 0 0 test1 10 10 3 1
|
||||
in ann2.s annot 30 30 30 test2 40 40 3 1
|
||||
# ann2.s's label looks wrong, points at origin?
|
||||
in ann3.s annot 0 0 0 1 10 10 3 1
|
||||
# using numbers for a label results in no label
|
||||
|
||||
* make eto eto
|
||||
tol norm 1
|
||||
facetize eto.bot eto
|
||||
[crashes due to excessive recursion]
|
||||
|
||||
* crash in rt_bot_xform() due to a bot being marked as having face
|
||||
normals, but didn't. bot probably written wrong via conversion
|
||||
to/from obj or asc. found importing teapot.
|
||||
|
||||
* rtedge with perspective is wrong. it fills in nearly entire faces,
|
||||
vertically in particular. it's worse on small sized renders, and
|
||||
gets better the larger the render size (indicating there's some
|
||||
neighbor distance coming into play that is not affected by
|
||||
max_dist). eoes not happen in non-perspective ray-traces.
|
||||
|
||||
* a character is (still) sometimes captured by the cursor box. steps
|
||||
to reproduce:
|
||||
1) write a word on the mged command prompt ("e.g. hello")
|
||||
2) select the word to end of line with mouse
|
||||
3) paste the word (e.g., middle mouse) and press enter
|
||||
4) type "hello" again and press enter
|
||||
|
||||
you should now see an "o" in the yellow cursor box. sometimes
|
||||
you'll see the "o" after step 3. running "clear" resets the cursor.
|
||||
|
||||
* get_regions tcl command doesn't respond well to situations where
|
||||
child object names in combs have dashes (the "-" character) in
|
||||
names. It tries to interpret the dash as an argument delimiter.
|
||||
Looks like this may be only in situations where the "-" is the
|
||||
lead character and on Windows? Been hard to reproduce...
|
||||
|
||||
* dsp does not facetize correctly with zero elevation areas in the
|
||||
data - need robustness improvements
|
||||
|
||||
* dsp primitives specifying data using Windows style file paths
|
||||
don't work.
|
||||
|
||||
* attempting to create a dsp using a binary object caused a crash on
|
||||
Linux - need to figure out if this was caused by feeding it the wrong
|
||||
kind of binary object or some other error...
|
||||
|
||||
* screengrab on windows does not work
|
||||
|
||||
* Recursive submodel predictably goes infinite, need stack-based
|
||||
db_walk_tree(): mged> in submodel submodel submodel grid test.g
|
||||
|
||||
* running rt -s20 -F file.pix ... does not result in an 20x20 image
|
||||
being written out. it ends up being 512x512.
|
||||
|
||||
* running rt -C255/0/0 -o file.pix ... does not result in the
|
||||
background color getting used. It does work with -F file.pix, going
|
||||
through libfb instead of libicv.
|
||||
|
||||
* ogl display manager and framebuffer are creating windows with
|
||||
transparent backgrounds (the glClear color is not being drawn) on
|
||||
Linux. Presumably a driver-related issue, alpha channel, or expose
|
||||
event issue. Inspecting further, it may be related to environments
|
||||
where shmget() fails (or is requested via /dev/oglp) and we get
|
||||
private memory -- looks like private memory is not initialized
|
||||
(observed on Mac 10.6, Windows, and Ubuntu Linux using 7.26).
|
||||
|
||||
* pixdiff on Windows is reporting no differences with a pair of files
|
||||
that pixcmp can see differences in.
|
||||
|
||||
* fblabel seems quite busted, at least talking to a /dev/X fbserv, in
|
||||
that it only draws the first character and eventually displays
|
||||
rem_read() failures when run in -d debug mode.
|
||||
|
||||
* rtedge doesn't refresh a /dev/X fbserv (presumably double-buffered)
|
||||
after doing an overlay render. it does draw, though, as confirmed
|
||||
by a forced fb-fb refresh.
|
||||
|
||||
* pixborder doesn't account for an edge case where the right edge of
|
||||
an image is expected to be colored (except for one pixel on the top
|
||||
edge). Example:
|
||||
|
||||
pixborder -b "255 0 0" -t "255 255 255" < pix/moss.pix | pix-fb
|
||||
|
||||
* report that attempting to change units on a read-only file in MGED
|
||||
will not change the units in the file but changes them in MGED,
|
||||
resulting in problems with nirt missing geometry it shouldn't miss.
|
||||
|
||||
* typing 'comb -f -r assembly_name' shuts down mged with the error:
|
||||
ERROR: bad pointer 0000000000B4CA50: s/b bu_external(x768dbbd0), was bu_vls(x89333bbb), file ..\..\..\brlcad_src\src\libbu\parse.c, line 2443"
|
||||
And on the mged command line:
|
||||
rt_db_cvt_to_external5 expecting non-NULL name parameter
|
||||
wdb_export((null)): solid export failure
|
||||
|
||||
* report of mged command history not working with the down arrow key
|
||||
in 7.25.0 (on Windows, unknown on other platforms). Up arrow works
|
||||
fine.
|
||||
|
||||
* wgl framebuffer is not lingering on windows (regardless of using
|
||||
wgll or default) when it should
|
||||
|
||||
* sh_text.c: texture mapping crashes (in txt_render() near line 318)
|
||||
if you specify image dimensions larger than the texture file. it
|
||||
gets back a mapped file, but indexes directly based on the provided
|
||||
sizes without bounds checking.
|
||||
|
||||
* count_non_union_ops() in g-iges crashes with simple conversion case
|
||||
|
||||
* gqa bypasses rt_dirbuild() so it never sets rt_bot_mintie nor uses
|
||||
TIE when the environment variable is set.
|
||||
|
||||
* nirt -e "xyz val val val" doesn't work due to the space after the -e
|
||||
and how the nirt/rt commands parse quoted args.
|
||||
|
||||
* probably related, there is a big parsing difference between nirt
|
||||
with "xyz 1.0 2.0 3.0; dir 0 -1 0;" and "xyz 1. 2. 3. ; dir 0 -1
|
||||
0;". note the intentional space. problem observed is that center
|
||||
point ended up being "0.0 2.0 0.0" with there clearly being a
|
||||
parsing error depending on where the semicolon was positioned.
|
||||
|
||||
* calling "attr set obj key value" should always result in key getting
|
||||
set to value, no matter what, as it is the lowest-level attribute
|
||||
management interface and what the command (correctly) documents.
|
||||
@@ -199,6 +49,14 @@ Recent Bugs
|
||||
* report of g-iges crashing (on Windows) when exporting a 1.2MB BoT
|
||||
mesh (presumably imported via stl-g). worked for smaller models.
|
||||
|
||||
* ogl display manager and framebuffer are creating windows with
|
||||
transparent backgrounds (the glClear color is not being drawn) on
|
||||
Linux. Presumably a driver-related issue, alpha channel, or expose
|
||||
event issue. Inspecting further, it may be related to environments
|
||||
where shmget() fails (or is requested via /dev/oglp) and we get
|
||||
private memory -- looks like private memory is not initialized
|
||||
(observed on Mac 10.6).
|
||||
|
||||
* autoview [scale] isn't updating the wireframe when opening a
|
||||
database, drawing geometry, then running autoview. the status bar
|
||||
shows the scale change, but the graphics window remains unaffected
|
||||
@@ -236,6 +94,11 @@ Recent Bugs
|
||||
* idents command is reporting a bogus region count in the region
|
||||
output table listing (first column).
|
||||
|
||||
* yacc 1.9 will not output a header if a path is given to the -o
|
||||
option. yacc should be run from the binary directory instead of the
|
||||
source directory so that the command may be simply yacc -d -o
|
||||
points_parse.c ${CMAKE_SOURCE_DIRECTORY}/points_parse.y
|
||||
|
||||
* src/librt/primitives/bot/g_bot_include.c:rt_bot_bbox() routine isn't
|
||||
calculating the bbox correctly
|
||||
|
||||
@@ -269,8 +132,8 @@ Recent Bugs
|
||||
* bu_log() with a width specifier does not align like printf().
|
||||
Example: bu_log("%24s", str);
|
||||
|
||||
* report that "keep" sometimes results in a .g file with unknown units;
|
||||
dbconcat also is reported to set the units to unknown if concatting
|
||||
* report that keep sometimes results in a .g file with unknown units
|
||||
dbconcat also is reported to set the units to unknown if concating
|
||||
a file with unknown units.
|
||||
|
||||
* infinite loop in rt_find_backing_dist() raytracing a BoT (without
|
||||
@@ -346,6 +209,9 @@ Recent Bugs
|
||||
sub-1sec fps, Z/B after rotating wireframe but before update
|
||||
finishes drawing.
|
||||
|
||||
* rtedge help shows redirection to a file working, but it does not
|
||||
seem to work (zero-file results).
|
||||
|
||||
* report of rt aborting randomly on 64-bit with camo shader.
|
||||
|
||||
* mged raytrace fails with simple "raytrace failed" message when using
|
||||
@@ -366,12 +232,12 @@ Recent Bugs
|
||||
|
||||
* hyp tessellation routine creates bot that does not raytrace
|
||||
|
||||
* hyp used in a boolean with other objects (even unions) does not
|
||||
raytrace
|
||||
|
||||
* if you attach a display manager in tk-mged, kill the window, then
|
||||
quit, mged crashes on exit.
|
||||
|
||||
* CMD-b and CMD-f navigates the mged command window text widget on Mac
|
||||
and trivially causes problems with the cursor and text injection.
|
||||
|
||||
* mged segfaults when drawing lots of solids at once (e.g. draw *.s)
|
||||
|
||||
* mged command mode doesn't display the output of multiple
|
||||
@@ -407,6 +273,11 @@ Recent Bugs
|
||||
display manager window. mged classic mode, where there is no
|
||||
parent window, exhibits the bad rotate behavior immediately.
|
||||
|
||||
* rtedge fills in nearly entire faces of an object when executing on a
|
||||
model that is in perspective mode. Effects really bad on small sized
|
||||
renders, and gets better the larger the render size. Does not happen
|
||||
in non-perspective ray-traces.
|
||||
|
||||
* infinite light sources close to objects result in unexpected/bad
|
||||
light behavior. example is a 1m sph light about 5m from a box about
|
||||
1k x 1k x 1k in size. setting make each light be red, green, and
|
||||
@@ -451,10 +322,9 @@ Recent Bugs
|
||||
|
||||
* File->Export seems to not work on Windows
|
||||
|
||||
* xpush fails to properly create a hierarchy killing existing objects
|
||||
resulting in dangling references. This may have been fixed by
|
||||
r69256, but a model that exposes the issue has to be tested to be
|
||||
sure.
|
||||
* xpush fails to properly create a hierarchy leaving some as top-level
|
||||
objects and killing other existing objects resulting in dangling
|
||||
references.
|
||||
|
||||
* mged on Mac OS X will crash on an X11 call if compiled against
|
||||
system Tcl/Tk (at least on 10.4 linking against 8.4), see TODO
|
||||
@@ -531,6 +401,8 @@ Recent Bugs
|
||||
* overlap tool in mged encourages very inefficient CSG operations
|
||||
(e.g. a simple bolt with an entire hull armor subtracted)
|
||||
|
||||
* a character is (still) sometimes captured by the cursor box
|
||||
|
||||
* permute (in mged) requires apply or save before 'new' vertex values
|
||||
will function properly as keypoints.
|
||||
|
||||
@@ -571,6 +443,13 @@ Recent Bugs
|
||||
* triangulation of some pipe in toyjeep.g fails (rather reliably) on
|
||||
some given bend. fails in nmg_triangulate model().
|
||||
|
||||
* tgc reports one hit errors though hit point has 0,0,0 direction
|
||||
implying that maybe the point was supposedly deleted.
|
||||
|
||||
* rtedge is not respecting the -c"set" options. needs to give some
|
||||
indication that they were parsed too since it ignores unrecognized
|
||||
values apparently.
|
||||
|
||||
* fbhelp sends some of the output to stdout and some to stderr...
|
||||
|
||||
* debugbu 2 immediately reports a bu_vls_free() error.. apparently
|
||||
|
||||
@@ -2,243 +2,148 @@
|
||||
BRL-CAD Interface Change Policy
|
||||
===============================
|
||||
|
||||
This policy describes formal rules for changing an interface that
|
||||
potentially impacts developers or users. The scope is limited to
|
||||
public interfaces including developer application programming
|
||||
interfaces (APIs), user application command-line interfaces (CLIs),
|
||||
and graphical user interfaces (GUIs). The policy aims to balance
|
||||
developer agility with interface stability.
|
||||
Included below are details of BRL-CAD public interface changes that
|
||||
potentially impact external developers and users. Public interfaces
|
||||
include developer application programming interface (API) calls as
|
||||
well as user application command-line interface (CLI) and graphical
|
||||
user interface (GUI) behaviors. Changes are characterized as:
|
||||
|
||||
1) those affecting a new interface,
|
||||
2) being minimally impacting, or
|
||||
3) requiring adherence to deprecation policy.
|
||||
|
||||
This policy is intentionally designed to balance developer agility,
|
||||
helping accelerate development, with interface stability, helping
|
||||
preserve application developer and user investments.
|
||||
|
||||
All changes to BRL-CAD are expected to conform to this change policy.
|
||||
Changes MUST either be:
|
||||
|
||||
A) MINIMALLY IMPACTING, or
|
||||
B) FORMALLY DEPRECATED.
|
||||
|
||||
NEW INTERFACE
|
||||
-------------
|
||||
|
||||
Changes to interfaces that have been recently introduced are often
|
||||
subject to further change and should not yet be relied upon by
|
||||
application developers or users until they stabilize. They are
|
||||
allowed to change from release to release and are not subject to
|
||||
change policy restrictions until they have been included in at least
|
||||
TWO releases without any change.
|
||||
|
||||
|
||||
MINIMALLY IMPACTING
|
||||
-------------------
|
||||
|
||||
Changes deemed "minimally impacting" can be made at any time. For a
|
||||
change to be considered as such, its effect must be strictly limited.
|
||||
Most are itemized under MINIMALLY IMPACTING CHANGES. They MUST be:
|
||||
If a change to an interface has a suitable and completely equivalent
|
||||
alternative, the change is deemed to be "minimally impacting" and can
|
||||
be made during any release. Examples of such changes include renaming
|
||||
an interface, reordering parameters, adding optional parameters,
|
||||
adding additional parameters for previously implicit behavior, and
|
||||
removing unused parameters.
|
||||
|
||||
A.1) a relatively new interface
|
||||
|
||||
Interfaces introduced recently are often subject to rapid
|
||||
development change. New interfaces are not subject to formal
|
||||
deprecation rules until they have been included in at least
|
||||
TWO releases without change.
|
||||
|
||||
A.2) an appreciably broken interface
|
||||
|
||||
Interfaces that have been unusable for at least TWO releases
|
||||
may be fixed, changed, or removed without notice. A broken
|
||||
interface is one that does not perform its intended function
|
||||
and does not have secondary utility.
|
||||
|
||||
A.3) an elementary change
|
||||
|
||||
Simple changes that are trivially accommodated without
|
||||
conditional logic or manual inspection can be made at will.
|
||||
It includes mechanical changes that can be automatically
|
||||
updated by a single static regular expression substitution.
|
||||
|
||||
Examples include renaming, reordering parameters, adding
|
||||
optional parameters, eliminating a duplicate equivalent
|
||||
interface, adding parameters for implicit behavior, and
|
||||
removing unused parameters.
|
||||
Generally, the impact can usually be considered minimally impacting if
|
||||
a static regular expression search-and-replace is all that is needed
|
||||
to update calling code, and no manual intervention is required.
|
||||
|
||||
|
||||
FORMALLY DEPRECATED
|
||||
-------------------
|
||||
DEPRECATION POLICY
|
||||
------------------
|
||||
|
||||
Changes not minimally impacting must follow formal deprecation
|
||||
process. This defers significant changes to major release points or
|
||||
requires public notification in advance. Changes are documented in
|
||||
this file first as DEPRECATED CHANGES then later as OBSOLETED CHANGES.
|
||||
An interface may be changed:
|
||||
If a change will intentionally alter, replace, or remove functionality
|
||||
that has been documented and published in at least TWO releases, it
|
||||
should mut first be announced as DEPRECATED. Otherwise, changes to
|
||||
interfaces that have not been publicly announced or are not publicly
|
||||
documented for at least two releases may be changed without notice.
|
||||
|
||||
B.1) during a major release (e.g. from 7.*.* to 8.*.*)
|
||||
The general practice is that public interface changes may go from
|
||||
deprecated to obsolete, whereby previous behavior is removed or
|
||||
changed, during one of the following events:
|
||||
|
||||
Any change may be made without notice. Major version number
|
||||
releases imply intrinsic incompatibility or interface change.
|
||||
a) during a major release (e.g. going from 7.*.* to 8.*.*)
|
||||
|
||||
B.2) during a minor release (e.g., from 7.26.* to 7.28.*)
|
||||
b) during a minor release provided the change was publicly announced
|
||||
as deprecated beforehand AND sufficient deprecation warning was
|
||||
given via i) TWO minor releases included the deprecation notice,
|
||||
and ii) at least THREE months (90 days) have passed since the
|
||||
deprecation was announced
|
||||
|
||||
The interface must be publicly deprecated beforehand with
|
||||
advance notice given in at least TWO minor releases and after
|
||||
at least 90 days elapsed since initial release announcement.
|
||||
c) during any release provided there still exists an EQUIVALENT
|
||||
alternative interface that does not impose an undue burden on users
|
||||
or developers (see "MINIMALLY IMPACTING")
|
||||
|
||||
Public interfaces scheduled for change should be noted in this file
|
||||
and visibly marked in the source code. This marking may be the
|
||||
DEPRECATED keyword on function declarations, #warning "DEPRECATED ..."
|
||||
pre-processor statements, @DEPRECATED source code comments, and
|
||||
combinations thereof.
|
||||
Public interfaces scheduled for removal should be visibly marked as
|
||||
deprecated during compilation with the DEPRECATED keyword on function
|
||||
declarations, with #warning "DEPRECATED ..." pre-processor statements,
|
||||
and with @DEPRECATED in source code comments. Where users are not
|
||||
adversely affected, a run-time DEPRECATION statement may be printed.
|
||||
|
||||
Where usage is not adversely affected, a run-time statement may be
|
||||
displayed (typically "DEPRECATION WARNING: ..."). All call references
|
||||
and documentation should be updated prior to obsoleting.
|
||||
Whenever published functionality is finally removed, move its entry
|
||||
from the DEPRECATED section below to the OBSOLETE section for the
|
||||
version in which it was removed. Make sure the entry retains a
|
||||
reference to the version in which the item was marked as deprecated.
|
||||
|
||||
|
||||
EXAMPLES
|
||||
--------
|
||||
|
||||
Example #1: rt_shootray() removal
|
||||
Example #1: Say we decided during 7.50.3 development to remove
|
||||
rt_shootray() from the API without a replacement. That does NOT
|
||||
qualify as "minimally impacting" because there's no replacement and
|
||||
rt_shootray() has been published and documented in more than two
|
||||
releases. We'd annotate the deprecation in the CHANGES file, mark the
|
||||
function as DEPRECATED in the API header, and post the 7.50.4 release.
|
||||
The soonest that function could be removed would be in the 7.54.0
|
||||
release during 7.53 development. It could NOT be removed in 7.54.2
|
||||
since it's a patch version, prior to the 7.54 release line, nor even
|
||||
during 7.54.0 if less than 90 days had passed since 7.50.6 was posted.
|
||||
|
||||
It's decided during 7.50.3 development to remove the rt_shootray()
|
||||
function. That does NOT qualify as "minimally impacting" because
|
||||
there's no equivalent replacement and rt_shootray() has been published
|
||||
and documented in more than two releases. The function gets listed as
|
||||
DEPRECATED in the CHANGES file, marked as DEPRECATED in the API
|
||||
header, and is published via the 7.50.4 release.
|
||||
|
||||
The soonest that function could be removed / obsoleted would be in
|
||||
7.54.0 during 7.53.* development provided more than 90 days had passed
|
||||
since the initial announcement. It could NOT be removed in 7.54.2 as
|
||||
that's a patch version, prior to 7.54, nor during 7.54.0 if less than
|
||||
90 days had passed since 7.50.6 was posted.
|
||||
|
||||
Example #2: bu_log() mod
|
||||
|
||||
It's decided during 7.48.1 development to modify bu_log() by adding an
|
||||
additional optional enum parameter denoting a message type, e.g.,
|
||||
bu_log(INFO, ...). This change is considered "minimally impacting"
|
||||
because it can be characterized by a simple regular expression (e.g.,
|
||||
"s/bu_log\(/bu_log(INFO, /g)" and calling codes are trivially
|
||||
accommodated. All calls to bu_log() should be updated to the new form
|
||||
prior to change announcement.
|
||||
|
||||
The function could be changed at any time so long as it's documented
|
||||
under MINIMALLY IMPACTING CHANGES.
|
||||
Example #2: Say we decide during 7.48.0 development to modify bu_log()
|
||||
by adding a new additional enum parameter denoting a message type.
|
||||
This change is considered minimally impacting because it can be
|
||||
characterized by a simple regular expression (e.g.,
|
||||
s/bu_log(/bu_log(PRINT, /g). Updates to calling codes are considered
|
||||
trivial. The change would get documented in the CHANGES file and all
|
||||
calls that can be updated must be updated at that time.
|
||||
|
||||
|
||||
**********************************************************************
|
||||
*** DEPRECATED CHANGES ***
|
||||
**********************************************************************
|
||||
(reverse chronological order)
|
||||
**************
|
||||
* DEPRECATED *
|
||||
**************
|
||||
|
||||
The interfaces announced below are scheduled to significantly change
|
||||
or be removed. They are categorized by the release in which
|
||||
deprecation was first announced. If the interface change involved a
|
||||
removal or transition, both the original and new interface names are
|
||||
generally listed for reference.
|
||||
The items listed below are interfaces that are deprecated. They are
|
||||
categorized by the release in which the change was made. If the
|
||||
change involved a removal of a command or function, both the original
|
||||
and new names should be listed for reference.
|
||||
|
||||
Items marked with a "'" (single quote) are undocumented and may be
|
||||
removed at any time.
|
||||
|
||||
7.30
|
||||
----
|
||||
~/.density
|
||||
automatic reading of .density file in home directory
|
||||
materials need to be specified or imported [deprecated 7.28]
|
||||
|
||||
btclsh, bwish
|
||||
Emacs key binding emulation
|
||||
achieved by running btclsh in Emacs [deprecated 7.30]
|
||||
|
||||
include/bu/redblach.h
|
||||
All redblack related functions, structures and macros
|
||||
defined in libbu's redblack.h. Functions are:
|
||||
bu_rb_create, bu_rb_delete, bu_rb_diagnose_tree,
|
||||
bu_rb_summarize_tree, bu_rb_extreme, bu_rb_neighbor,
|
||||
bu_rb_curr, bu_rb_free, bu_rb_insert, bu_rb_is_uniq,
|
||||
bu_rb_set_uniqv, bu_rb_uniq_all_off, bu_rb_uniq_all_on,
|
||||
bu_rb_uniq_on, bu_rb_uniq_off, bu_rb_rank, bu_rb_select,
|
||||
bu_rb_search, bu_rb_walk
|
||||
Use C++ containers set/map from std [deprecated 7.30]
|
||||
|
||||
nirt
|
||||
Behavior available under the --old flag [deprecated 7.30]
|
||||
|
||||
7.28
|
||||
----
|
||||
include/bu/malloc.h
|
||||
bu_ck_malloc_ptr, bu_mem_barriercheck, bu_prmem
|
||||
replaced by modern memory analyzers [deprecated 7.28]
|
||||
|
||||
include/rt/mem.h
|
||||
rt_memprint [deprecated 7.28]
|
||||
|
||||
include/vmath.h
|
||||
VCOMB3, VCOMB3N, VJOIN4
|
||||
Removed as inconsistent and unused API [deprecated 7.28]
|
||||
|
||||
MGED commands
|
||||
?devel, ?lib, aproposdevel, aproposlib, %, animmate, db_glob,
|
||||
debugbu, debugdir, debuglib, debugmem, debugnmg, expand,
|
||||
loadtk, match, memprint, preview, regdebug, regdef, rmats, rrt,
|
||||
savekey, shaded_mode, sync
|
||||
Removed as part of distillation effort [deprecated 7.28]
|
||||
|
||||
libtermio, libcursor
|
||||
Public API scope reduction - any client code that needs
|
||||
to interact with the terminal at these levels should handle
|
||||
what is needed locally.
|
||||
|
||||
7.26
|
||||
----
|
||||
image tools
|
||||
alias-pix' : incorporating into icv
|
||||
asc2pix' : incorporating into icv
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
signal analysis tools
|
||||
a-d', d-a', bw-a', i-a', u-a' : incorporating into cv
|
||||
d-a', d-bw', d-f', d-i', d-u' : incorporating into cv
|
||||
a-d', bw-d', c-d', f-d', i-d', u-d' : incorporating into cv
|
||||
f-d', f-i', d-f', i-f', u-f', u-bw' : incorporating into cv
|
||||
d2-c', double-asc' : incorporating into cv
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
include/bu/ptbl.h
|
||||
BU_PTBL_BASEADDR, BU_PTBL_LASTADDR, BU_PTBL_END
|
||||
Removed as private implementation detail [deprecated 7.26
|
||||
include/bu/cmd.h
|
||||
remove struct bu_cmdhist and struct bu_cmdhist_obj [deprecated 7.26]
|
||||
BU_CMDHIST_NULL, BU_CMDHIST_OBJ_NULL, bu_cmdhist_histor, bu_cmdhist_add,
|
||||
bu_cmdhist_curr, bu_cmdhist_nest, bu_cmdhist_prev [deprecated 7.26]
|
||||
nirt
|
||||
-T - use LIBRT_BOT_MINTIE environment variable instead [deprecated 7.26]
|
||||
all global variables
|
||||
global variables are no longer considered published public API [deprecated 7.26]
|
||||
bn_mat_identity -> MAT_INIT_IDN or MAT_IDN() or NULL
|
||||
include/bn.h
|
||||
tp_setup, no longer needs to be public API [deprecated 7.26]
|
||||
bn_tcl_mat_print, removal of all tcl-specific API functions [deprecated 7.26]
|
||||
include/raytrace.h
|
||||
curve_to_tcl_list
|
||||
curve_to_tcl_list rt_tcl_parse_ray rt_tcl_pr_cutter
|
||||
rt_tcl_pr_hit rt_tcl_rt rt_tcl_import_from_path
|
||||
db_full_path_appendresult tcl_obj_to_int_array
|
||||
tcl_obj_to_fastf_array tcl_list_to_int_array
|
||||
tcl_list_to_fastf_array *_tcl_*, removal of all tcl-specific
|
||||
API functions [deprecated 7.26]
|
||||
include/rt/solid.h
|
||||
shouldn't be public API - this level of detail belongs inside the display
|
||||
manager [deprecated 7.26]
|
||||
include/ged/defines.h
|
||||
remove struct ged_drawable - shouldn't be public API [deprecated 7.26]
|
||||
remove freesolid from struct ged - exposes struct solid [deprecated 7.26]
|
||||
include/ged/view.h
|
||||
remove current forms of dl_erasePathFromDisplay and invent_solid - they
|
||||
expose the struct solid type [deprecated 7.26]
|
||||
include/tclcad.h
|
||||
tclcad_bn_mat_print tclcad_rt_parse_ray tclcad_rt_pr_cutter
|
||||
tclcad_rt_pr_hit tclcad_rt_rt tclcad_rt_import_from_path, removal of all
|
||||
tcl-specific API functions [deprecated 7.26]
|
||||
|
||||
pixcut, pixpaste
|
||||
copyright cleanup [deprecated 7.26]
|
||||
librt, fast4-g
|
||||
removal of CLINE entity support [deprecated 7.26]
|
||||
mged
|
||||
kill, killtree, killall, killrefs - replaced with rm command [deprecated 7.26]
|
||||
|
||||
rm comb obj1 obj2 comb1 ... -> new behavior: remove objects and empty combs from .g
|
||||
original functionality replaced with rm comb/obj* comb/comb1 ... syntax [deprecated 7.26]
|
||||
|
||||
expand -> replaced by search -name <pattern> (previous docs indicating matching of
|
||||
expand was regex were wrong - uses bu_fnmatch.) [deprecated 7.26]
|
||||
|
||||
pathlist, paths -> replaced by search [deprecated 7.26]
|
||||
|
||||
7.24
|
||||
----
|
||||
fbed, pp-fb
|
||||
removes termcap use, no known users [deprecated 7.24]
|
||||
include/raytrace librt
|
||||
db_full_path_list_add(), db_free_full_path_list() [deprecated 7.24]
|
||||
db_search_formplan(), db_search_freeplan(), db_search_full_paths() [deprecated 7.24]
|
||||
db_search_unique_objects(), struct db_full_path_list [deprecated 7.24]
|
||||
src/irprep
|
||||
all_sf, firpass, ir-X, irdisp, pictx, secpass, shapefact, showterm [deprecated 7.24]
|
||||
include/raytrace.h librt
|
||||
RT_DBHASH and RT_DBNHASH [deprecated 7.24]
|
||||
RT_DBHASH and RT_DBNHASH [deprecated 7.24]
|
||||
|
||||
7.22
|
||||
----
|
||||
@@ -246,6 +151,12 @@ include/raytrace.h librt
|
||||
nmg_model_break_e_on_v -> nmg_break_e_on_v [deprecation 7.22]
|
||||
RT_GET_TREE -> BU_GET [deprecation 7.22]
|
||||
RT_FREE_TREE -> BU_PUT [deprecation 7.22]
|
||||
include/bu.h
|
||||
bu_parse_mm() [deprecated 7.22]
|
||||
librtserver
|
||||
becoming stand-alone project, removes optional java dependency [deprecated 7.22]
|
||||
mged
|
||||
em, e_muves, l_muves, lm, read_muves, and t_muves MUVES-specific commands [deprecated 7.22]
|
||||
|
||||
7.20
|
||||
----
|
||||
@@ -261,6 +172,7 @@ GNU Autotools configure compatibility script
|
||||
./configure -> cmake . [deprecated 7.20]
|
||||
include/raytrace.h
|
||||
rt_load_attrs() -> rt_gettrees_and_attrs() or db5_import_attributs() [deprecated 7.20]
|
||||
db_regexp_match() -> !bu_fnmatch() [deprecated 7.20]
|
||||
|
||||
7.18
|
||||
----
|
||||
@@ -282,6 +194,8 @@ db.h
|
||||
rt_fastf_float() -> ntohf() [deprecated 7.18]
|
||||
rt_mat_dbmat() -> htonf() [deprecated 7.18]
|
||||
rt_dbmat_mat() -> ntohf() [deprecated 7.18]
|
||||
dbcp
|
||||
dbcp -> dd [deprecated 7.18]
|
||||
mged
|
||||
?(*) -> ? -(*) [deprecated 7.18]
|
||||
apropos(*) -> apropos -(*) [deprecated 7.18]
|
||||
@@ -350,120 +264,27 @@ include/raytrace.h
|
||||
struct hit.hit_normal -> RT_HIT_NORMAL [deprecated pre-7.0]
|
||||
|
||||
|
||||
**********************************************************************
|
||||
*** OBSOLETED CHANGES ***
|
||||
**********************************************************************
|
||||
(reverse chronological order)
|
||||
7.30.2
|
||||
------
|
||||
ray tracing tools
|
||||
lgt : functionally replaced by nirt
|
||||
rtcell', rtfrac', rtpp, rtrad', rtrange, rtray, rtregis
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
converter tools
|
||||
cy-g, euclid-g, euclid_format', euclid_unformat', g-euclid,
|
||||
g-euclid1', g-tankill, intaval-g.py, viewpoint-g : obsolete formats
|
||||
plot3-X, plot3-hpgl, plot3-tek : obsolete interface, see overlay command
|
||||
plot3debug, xyz-plot3 : see plot3-asc,asc-plot3
|
||||
bot-bldxf', bot_shell-vtk, g-nmg, nmg-bot, nmg-rib, nmg-sgp',
|
||||
poly-bot, rt_bot_faces, : primitive-specific converters
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
image tools
|
||||
cmap-fb, fb-cmap, fbcmrot : colormap support obsolete
|
||||
fbed, cell-fb : outside scope
|
||||
fbscanplot, polar-fb, bw-imp, pixinfo.sh : obsolete
|
||||
png_info : incorporating into icv
|
||||
pix-yuv', yuv-pix' : obsolete non-standard format
|
||||
texturescale : obsolete implementation
|
||||
pixcut, pixpaste : license, copyright cleanup
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
video & animation tools
|
||||
anim_*', fbanim, chan_add', chan_mult, chan_permute,
|
||||
pixflip-fb' : outside scope
|
||||
pixfields', pixfieldsep' : outside scope
|
||||
orbit.sh, rtwalk, scriptsort, script-tab', tabinterp, tabsup,
|
||||
azel, bary
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
infrared & shapefactor tools
|
||||
all_sf', if-X, ifdisp, pictx, showterm, firpass, secpass, shapefact
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
misc tools
|
||||
fix_polysolids' : obsolete primitive
|
||||
remapid : superseded by reid+remat
|
||||
buffer : unnecessary network/stream buffering tool
|
||||
hex : superseded by hexdump
|
||||
Removed as part of distillation effort [deprecated 7.26]
|
||||
fb-rle, rle-fb, bw-rle, pix-rle, rle-pix
|
||||
All tools focused specifically on the RLE image format. [deprecated 7.26]
|
||||
burst
|
||||
remove termlib-based interactive menu interface [deprecated 7.26]
|
||||
include/bu/hash.h
|
||||
bu_hash_tbl_find, bu_set_hash_value, bu_get_hash_value, bu_get_hash_key,
|
||||
bu_hash_tbl_add, bu_hash_tbl_print, bu_hash_tbl_free, bu_hash_tbl_first,
|
||||
bu_hash_tbl_next, bu_hash_tbl_traverse, public structs bu_hash_entry and
|
||||
bu_hash_tbl will be made private.
|
||||
Replaced with new API [deprecated 7.26]
|
||||
************
|
||||
* OBSOLETE *
|
||||
************
|
||||
|
||||
7.30.0
|
||||
------
|
||||
fbed, pp-fb
|
||||
removes termcap use, no known users [deprecated 7.24]
|
||||
src/irprep
|
||||
all_sf, firpass, ir-X, irdisp, pictx, secpass, shapefact, showterm [deprecated 7.24]
|
||||
include/raytrace librt
|
||||
db_full_path_list_add(), db_free_full_path_list() [deprecated 7.24]
|
||||
db_search_formplan(), db_search_freeplan(), db_search_full_paths() [deprecated 7.24]
|
||||
db_search_unique_objects(), struct db_full_path_list [deprecated 7.24]
|
||||
db_regexp_match() -> !bu_fnmatch() [deprecated 7.20]
|
||||
db_regexp_match_all() -> db_ls() [deprecated 7.26]
|
||||
mged
|
||||
em, e_muves, l_muves, lm, read_muves, and t_muves MUVES-specific commands [deprecated 7.22]
|
||||
include/bu.h
|
||||
bu_parse_mm() [deprecated 7.22]
|
||||
|
||||
7.28.0
|
||||
------
|
||||
rt -f framerate
|
||||
removed [minimally impacting]
|
||||
pixdsplit, rt -d
|
||||
removed, broken tool [minimally impacting]
|
||||
libmultispectral, rttherm, ssamp-bw, ssampview, ssampview.tcl
|
||||
removed, broken tools [minimally impacting]
|
||||
dem-g
|
||||
removed, superseded by gcv+GDAL [minimally impacting]
|
||||
Below are the interfaces that have followed deprecation policy and are
|
||||
now no longer a part of BRL-CAD.
|
||||
|
||||
7.26.0
|
||||
------
|
||||
dbcp
|
||||
dbcp -> dd [deprecated 7.18]
|
||||
pov (mged)
|
||||
removed, undocumented command with many alternatives [minimally impacting]
|
||||
polybinout (mged)
|
||||
removed, undocumented command, use plot [minimally impacting]
|
||||
pl (mged)
|
||||
removed, use plot [minimally impacting]
|
||||
conf.h
|
||||
removed - replaced with common.h [deprecated 7.0]
|
||||
UtahRLE image tools
|
||||
no longer installed by default with BRL-CAD - not used directly by
|
||||
BRL-CAD tools [minimally impacting]
|
||||
Tcl in libbu and libbn
|
||||
no longer utilize or require Tcl [dependency eliminated]
|
||||
Tcl/Tk man pages
|
||||
no longer installed by default with BRL-CAD when the bundled Tcl/Tk is used
|
||||
to build [minimally impacting]
|
||||
include/dg.h
|
||||
implementation detail no longer being exposed, use libged [deprecated 7.22]
|
||||
implementation detail no longer being exposed, use libged [deprecated 7.22]
|
||||
autogen.sh && configure
|
||||
GNU Autotools build system -> CMake build system [deprecated 7.20]
|
||||
Dunn camera and Canon printer tools
|
||||
dunncolor [deprecated 7.16]
|
||||
dunnsnap [deprecated 7.16]
|
||||
canonize [deprecated 7.16]
|
||||
dunncolor [ deprecated 7.16 ]
|
||||
dunnsnap [ deprecated 7.16 ]
|
||||
canonize [ deprecated 7.16 ]
|
||||
genptr_t/GENPTR_NULL
|
||||
genptr_t -> void* [deprecated 7.16]
|
||||
include/bu.h
|
||||
bu_argv0() -> bu_basename(bu_argv0_full_path(), NULL) [deprecated 7.16]
|
||||
bu_argv0() -> bu_basename(bu_argv0_full_path()); [deprecated 7.16]
|
||||
include/dm_color.h
|
||||
dm_color.h -> dm.h [deprecated 7.14]
|
||||
include/fb.h
|
||||
@@ -491,9 +312,9 @@ mged
|
||||
-n option -> -c option [deprecated 7.14]
|
||||
per_line [deprecated 7.14]
|
||||
SGI-specific tools
|
||||
pl-sgi -> pl-fb [deprecated 7.16]
|
||||
pl-sgi -> pl-fb [ deprecated 7.16 ]
|
||||
src/gtools
|
||||
g_diff, g_lint, g_qa, g_transfer -> gdiff, glint, gqa, gtransfer [deprecated 7.14]
|
||||
g_[toolname] -> g[toolname] [deprecated 7.14]
|
||||
src/librt/cmd.c
|
||||
rt_split_cmd() -> bu_argv_from_string() [deprecated 7.12]
|
||||
any-png.sh
|
||||
@@ -508,9 +329,6 @@ pixread.sh
|
||||
obsolete hardware [deprecated 7.16]
|
||||
sgisnap.sh
|
||||
obsolete hardware [deprecated 7.16]
|
||||
librtserver and Java Native Interface (JNI) bindings
|
||||
removed, unused and undocumented, modern approach would be to
|
||||
use a tool such as swig to generate bindings [minimally impacting]
|
||||
|
||||
7.24.2
|
||||
------
|
||||
@@ -673,27 +491,18 @@ include/[library].h (several)
|
||||
[library]_version -> [library]_version() [private]
|
||||
|
||||
|
||||
**********************************************************************
|
||||
*** MINIMALLY IMPACTING CHANGES ***
|
||||
**********************************************************************
|
||||
(forward chronological order)
|
||||
***********************************
|
||||
* MINIMALLY IMPACTING API CHANGES *
|
||||
***********************************
|
||||
|
||||
All minimally impacting changes are listed by release as regular
|
||||
expressions. Unless noted otherwise, expressions are shown using Perl
|
||||
syntax (i.e., the '(', ')', and '|' characters pertain to
|
||||
subexpression captures, escaping with '\' matches literally.
|
||||
Expressions should apply via:
|
||||
Included in following are various minimally impacting API changes that
|
||||
have been identified in chronological order. As expressions are not
|
||||
extensively tested, use with caution.
|
||||
|
||||
perl -0777 -pi -e 'EXPRESSION' FILE
|
||||
|
||||
To apply an expression to an entire source tree, the following pattern
|
||||
may work:
|
||||
|
||||
find . -type f -not -path "*.svn/*" -regex '.*\(c\|cpp\|cxx\|h\|hpp\)$' -exec perl -0777 -pi -e 'EXPRESSION' {} \;
|
||||
|
||||
find src \( -name '*.c' -or -name '*.cxx' -or -name '*.cpp' -or -name '*.h' -or -name '*.hxx' -or -name '*.hpp' -or -name '*.java' -or -name '*.f' -or -name '*.sh' -or -name '*.tcl' -or -name '*.tk' -or -name '*.itcl' -or -name '*.itk' -or -name '*.pl' -or -name '*.php' -or -name '*.inc' -or -name '*.mged' -or -name '*.y' -or -name '*.l' -or -name '*.yy' \) -not \( -name other -or -regex '.*/other/.*' -or -name tools -or -regex '.*/misc/tools/.*' -or -regex '.*/\.[^\.].*' -or -regex '.*~' -or -regex '.*/#.*' \)
|
||||
|
||||
Expressions are minimally tested, use with caution. Make a backup.
|
||||
Unless noted otherwise, expressions are shown using Perl syntax and
|
||||
may need adjustment (particularly quoting of '(', ')', and '|'
|
||||
characters) for other environments. Most expressions will apply with:
|
||||
perl -0777 -pi -e 'EXPRESSION' FILE
|
||||
|
||||
|
||||
6.0 (sed lines)
|
||||
@@ -1151,23 +960,23 @@ s/bu_count_path(.*)\);/bu_dir_list\1, NULL);/g
|
||||
made bu_dir_list() return the number of entries [7.21]
|
||||
s/bu_strcmpm\((.*),([^,]*)\)/bu_strcmp(\1)/g
|
||||
no use for label parameter, convert to bu_strcmp() [7.21]
|
||||
bu_set_realtime() [deprecated 7.22]
|
||||
bu_set_realtime() [deprecated 7.22]
|
||||
|
||||
7.24
|
||||
----
|
||||
s/bu_set_realtime\([[:space:]]\);//g
|
||||
didn't do anything [7.23]
|
||||
didn't do anything [7.23]
|
||||
s/.*bu_cpulimit_[sg]et\([[:space:]]\);//g
|
||||
didn't do anything [7.23]
|
||||
didn't do anything [7.23]
|
||||
s/rt_g\./RTG\./g
|
||||
renamed rt_g global to RTG so it doesn't match the struct name [7.24]
|
||||
renamed rt_g global to RTG so it doesn't match the struct name [7.24]
|
||||
s/rt_functab\[/OBJ\[/g
|
||||
renamed rt_functab global to OBJ so it doesn't match the struct name [7.24]
|
||||
renamed rt_functab global to OBJ so it doesn't match the struct name [7.24]
|
||||
s/redraw_vlist/draw/g
|
||||
removed redraw_vlist mged command, just call draw or refresh [7.24]
|
||||
removed redraw_vlist mged command, just call draw or refresh [7.24]
|
||||
s/RT_BADNUM/INVALID/g
|
||||
s/RT_BADVAL/VINVALID/g
|
||||
moved RT_BADNUM and RT_BADVEC to vmath.h as INVALID and VINVALID [7.24]
|
||||
moved RT_BADNUM and RT_BADVEC to vmath.h as INVALID and VINVALID [7.24]
|
||||
s/bu_create_hash_tbl/bu_hash_tbl_create/g
|
||||
s/bu_find_hash_entry/bu_hash_tbl_find/g
|
||||
s/bu_hash_add_entry/bu_hash_tbl_add/g
|
||||
@@ -1176,7 +985,7 @@ s/bu_hash_tbl_pr/bu_hash_tbl_print/g
|
||||
s/dm_applicationfocus\([[:space:]]*\);//g
|
||||
only useful in older os x versions, users can now do the same thing via XQuartz preferences [7.24]
|
||||
s/bu_vls_trunc2/bu_vls_trunc/g
|
||||
removed duplicitous function in favor of more general version [7.24]
|
||||
removed duplicitous function in favor of more general version [7.24]
|
||||
s/bn_pi/M_PI/g
|
||||
s/bn_twopi/M_2PI/g
|
||||
s/bn_halfpi/M_PI_2/g
|
||||
@@ -1188,342 +997,27 @@ s/bn_inv255/(1.0 \/ 255.0)/g
|
||||
s/bn_degtorad/DEG2RAD/g
|
||||
s/bn_radtodeg/RAD2DEG/g
|
||||
s/bn_sin_scale/(BN_SINTABSIZE \/ M_2PI)/g
|
||||
eliminated a number of libbn globals in favor of existing constants [7.24]
|
||||
eliminated a number of libbn globals in favor of existing constants [7.24]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])vfont-if\.h/\1bu\/vfont.h/g
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])cmd\.h/\1bu\/cmd.h/g
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])hist\.h/\1bu\/hist.h/g
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])magic\.h/\1bu\/magic.h/g
|
||||
library-specific public headers moved into a subdir [7.24]
|
||||
library-specific public headers moved into a subdir [7.24]
|
||||
s/([^_])([nh]to[hn][fd])/\1bu_cv_\2/g
|
||||
ntohf, ntohd, htonf, htond renamed with bu_cv_ prefix [7.24]
|
||||
ntohf, ntohd, htonf, htond renamed with bu_cv_ prefix [7.24]
|
||||
|
||||
7.26
|
||||
----
|
||||
s/bu_kill_parallel\([[:space:]]*\);//g
|
||||
didn't do anything unless called from forked process, use bu_terminate() [7.25]
|
||||
didn't do anything unless called from forked process, use bu_terminate() [7.25]
|
||||
s/bu_jmpbuf/bu_jmpbuf[0]/g
|
||||
s/bu_setjmp_valid/bu_setjmp_valid[0]/g
|
||||
can replace 0 with bu_parallel_id() to get thread-safe jumping [7.25]
|
||||
can replace 0 with bu_parallel_id() to get thread-safe jumping [7.25]
|
||||
s/bu_semaphore_reinit/bu_semaphore_init/g
|
||||
no longer need to manually reinitialize (or initialize) semaphores [7.25]
|
||||
no longer need to manually reinitialize (or initialize) semaphores [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])fbio\.h/\1bu\/fb.h/g
|
||||
fbio.h is now part of fb.h [7.25]
|
||||
fbio.h is now part of fb.h [7.25]
|
||||
s/UNION/'u'/g
|
||||
s/SUBTRACT/'-'/g
|
||||
s/INTERSECT/'+'/g
|
||||
old db.h db4 preprocessor symbols removed, use char or DB_OP_* [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])bselect\.h/\1bsocket.h/g
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])bin\.h/\1bnetwork.h/g
|
||||
rename bselect.h and bin.h public headers to be more declaratively named [7.25]
|
||||
s/db5_enc_len\[(.*)\]/DB5_ENC_LEN(\1)/g
|
||||
replaced db5_enc_len[] global array with DB5_ENC_LEN() macro [7.25]
|
||||
s/db_normalize/bu_normalize/g
|
||||
move the path normalization routine to libbu [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])bot\.h/\1rt\/primitives\/bot.h/g
|
||||
consolidate bot header contents [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])anim\.h/\1bn\/anim.h/g
|
||||
consolidate anim header contents [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])plot3\.h/\1bn.h/g
|
||||
plot3 implementation is in libbn, move header and replace plot3.h with bn.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])vectfont\.h/#define LAST -128\n\1bn\/vectfont.h/g
|
||||
consolidate vectfont.h files [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])spm\.h/\1bn\/spm.h/g
|
||||
move spm.h into bn subheader directory [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])dvec\.h/\1bn\/dvec.h/g
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])vector_fpu\.h/\1bn\/vector_fpu.h/g
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])vector_x86\.h/\1bn\/vector_x86.h/g
|
||||
move dvec.h and friends into bn subheader directory [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])db\.h/\1rt\/db4.h/g
|
||||
move db.h to rt/db4.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])db5\.h/\1rt\/db5.h/g
|
||||
move db5.h to rt/db5.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])mater\.h/\1raytrace.h/g
|
||||
merge mater.h with rt/mater.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])nurb\.h/#include "raytrace.h"\n\1rt\/nurb.h/g
|
||||
move nurb.h to rt/nurb.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])rtfunc\.h/#include "raytrace.h"\n\1rt\/func.h/g
|
||||
move rtfunc.h to rt/func.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])tol\.h/#include "bn.h"\n#include "raytrace.h"\n\1rt\/tol.h/g
|
||||
consolidate tol.h and rt/tol.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])tie\.h/\1rt\/tie.h/g
|
||||
move tie.h to rt/tie.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])solid\.h/#include "raytrace.h"\n\1rt\/solid.h/g
|
||||
move solid.h to rt/solid.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])shadework\.h/\1optical\/shadework.h/g
|
||||
move shadework.h to optical/shadework.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])shadefuncs\.h/\1optical.h/g
|
||||
move shadefuncs.h to optical/shadefuncs.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])light\.h/#include "bn.h"\n#include "raytrace.h"\n\1optical\/light.h/g
|
||||
move light.h to optical/light.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])plastic\.h/\1optical\/plastic.h/g
|
||||
move plastic.h to optical/plastic.h [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])rtgeom\.h/\1rt\/geom.h/g
|
||||
move rtgeom.h to rt/geom.h [7.25]
|
||||
s/rt_vlist_get_cmd_description/bn_vlist_get_cmd_description/g
|
||||
s/rt_ck_vlist/bn_ck_vlist/g
|
||||
s/rt_vlist_export/bn_vlist_export/g
|
||||
s/rt_vlblock_free/bn_vlblock_free/g
|
||||
s/rt_vlblock_find/bn_vlblock_find/g
|
||||
move vlist functions from librt to libbn [7.25]
|
||||
s/([[:space:],\(,"])bn_tcl/\1tclcad_bn/g
|
||||
s/([[:space:],\(,"])rt_tcl_rt/\1tclcad_rt/g
|
||||
s/([[:space:],\(,"])rt_tcl/\1tclcad_rt/g
|
||||
tcl library registrations moved to libtclcad [7.25]
|
||||
s/rt_grow_boolstack/rt_bool_growstack/g
|
||||
rename with consistent prefixes [7.25]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])obj\.h/\1dm\/bview.h/g
|
||||
s/GED_VIEW_OBJ_NULL/VIEW_OBJ_NULL/g
|
||||
move view_obj to dm/bview.h [7.25]
|
||||
s/BU_PTBL_CLEAR_I\((.*)\)/BU_PTBL_SET(\1, (long*)0)/g
|
||||
replace BU_PTBL_CLEAR_I into the BU_PTBL_SET command [7.25]
|
||||
s/BU_PTBL_END\(([^\)]*)\)/(\1)->end/g
|
||||
replace BU_PTBL_END with direct ptbl peek or BU_PTBL_LEN [7.25]
|
||||
s/bu_free_argv/bu_argv_free/g
|
||||
s/bu_dup_argv/bu_argv_dup/g
|
||||
s/bu_dupinsert_argv/bu_argv_dupinsert/g
|
||||
bu_*_argv -> bu_argv_* [7.25]
|
||||
s/bu_dir_list/bu_file_list/g
|
||||
bu_dir_list -> bu_file_list [7.25]
|
||||
s/BU_FNMATCH_NOMATCH/1/g
|
||||
don't use an explicit define for the non-matching case [7.25]
|
||||
s/bu_basename\(([^\)]*)\)/bu_basename(\1, NULL)/g
|
||||
pass NULL argument to get a dynamically allocated buffer back [7.25]
|
||||
|
||||
7.28
|
||||
----
|
||||
s/bu_free_array/bu_free_args/g
|
||||
fixed misleading name [7.26]
|
||||
s/(#[[:space:]]*include[[:space:]]+["<])bu\/rb\.h/\1bu\/redblack.h/g
|
||||
clearer header name [7.26]
|
||||
s/rt_plot_vlblock/bn_plot_vlblock/g
|
||||
s/rt_vlist_to_uplot/bn_vlist_to_uplot/g
|
||||
move vlist functions to libbn [7.26]
|
||||
s/rt_nurb_bezier/nmg_nurb_bezier/g
|
||||
s/rt_nurb_c_split/nmg_nurb_c_split/g
|
||||
s/rt_nurb_free_cnurb/nmg_nurb_free_cnurb/g
|
||||
s/rt_nurb_free_snurb/nmg_nurb_free_snurb/g
|
||||
s/rt_nurb_intersect/nmg_nurb_intersect/g
|
||||
s/rt_nurb_new_cnurb/nmg_nurb_new_cnurb/g
|
||||
s/rt_nurb_new_snurb/nmg_nurb_new_snurb/g
|
||||
s/rt_nurb_s_eval/nmg_nurb_s_eval/g
|
||||
s/rt_nurb_s_norm/nmg_nurb_s_norm/g
|
||||
s/rt_nurb_uv_hit/nmg_nurb_uv_hit/g
|
||||
s/rt_arc2d_to_cnurb/nmg_arc2d_to_cnurb/g
|
||||
s/rt_join_cnurbs/nmg_join_cnurbs/g
|
||||
s/rt_nurb_c_eval/nmg_nurb_c_eval/g
|
||||
s/rt_nurb_c_print/nmg_nurb_c_print/g
|
||||
s/rt_nurb_kvgen/nmg_nurb_kvgen/g
|
||||
s/rt_nurb_kvmerge/nmg_nurb_kvmerge/g
|
||||
s/rt_nurb_s_print/nmg_nurb_s_print/g
|
||||
s/rt_nurb_s_refine/nmg_nurb_s_refine/g
|
||||
s/rt_bez_check/nmg_bez_check/g
|
||||
s/rt_nurb_back_solve/nmg_nurb_back_solve/g
|
||||
s/rt_nurb_basis_eval/nmg_nurb_basis_eval/g
|
||||
s/rt_nurb_c_bound/nmg_nurb_c_bound/g
|
||||
s/rt_nurb_c_check/nmg_nurb_c_check/g
|
||||
s/rt_nurb_c_diff/nmg_nurb_c_diff/g
|
||||
s/rt_nurb_c_refine/nmg_nurb_c_refine/g
|
||||
s/rt_nurb_c_xsplit/nmg_nurb_c_xsplit/g
|
||||
s/rt_nurb_calc_oslo/nmg_nurb_calc_oslo/g
|
||||
s/rt_nurb_cinterp/nmg_nurb_cinterp/g
|
||||
s/rt_nurb_clean_cnurb/nmg_nurb_clean_cnurb/g
|
||||
s/rt_nurb_clip_srf/nmg_nurb_clip_srf/g
|
||||
s/rt_nurb_crv_copy/nmg_nurb_crv_copy/g
|
||||
s/rt_nurb_crv_flat/nmg_nurb_crv_flat/g
|
||||
s/rt_nurb_curvature/nmg_nurb_curvature/g
|
||||
s/rt_nurb_doolittle/nmg_nurb_doolittle/g
|
||||
s/rt_nurb_eval_crv/nmg_nurb_eval_crv/g
|
||||
s/rt_nurb_forw_solve/nmg_nurb_forw_solve/g
|
||||
s/rt_nurb_free_oslo/nmg_nurb_free_oslo/g
|
||||
s/rt_nurb_gen_knot_vector/nmg_nurb_gen_knot_vector/g
|
||||
s/rt_nurb_knot_index/nmg_nurb_knot_index/g
|
||||
s/rt_nurb_kvcheck/nmg_nurb_kvcheck/g
|
||||
s/rt_nurb_kvcopy/nmg_nurb_kvcopy/g
|
||||
s/rt_nurb_kvextract/nmg_nurb_kvextract/g
|
||||
s/rt_nurb_kvknot/nmg_nurb_kvknot/g
|
||||
s/rt_nurb_kvmult/nmg_nurb_kvmult/g
|
||||
s/rt_nurb_kvnorm/nmg_nurb_kvnorm/g
|
||||
s/rt_nurb_map_oslo/nmg_nurb_map_oslo/g
|
||||
s/rt_nurb_mesh_diff/nmg_nurb_mesh_diff/g
|
||||
s/rt_nurb_mk_poly/nmg_nurb_mk_poly/g
|
||||
s/rt_nurb_p_mat/nmg_nurb_p_mat/g
|
||||
s/rt_nurb_plot_cnurb/nmg_nurb_plot_cnurb/g
|
||||
s/rt_nurb_plot_snurb/nmg_nurb_plot_snurb/g
|
||||
s/rt_nurb_poly/nmg_nurb_poly/g
|
||||
s/rt_nurb_pr_crv/nmg_nurb_pr_crv/g
|
||||
s/rt_nurb_pr_kv/nmg_nurb_pr_kv/g
|
||||
s/rt_nurb_pr_mesh/nmg_nurb_pr_mesh/g
|
||||
s/rt_nurb_pr_oslo/nmg_nurb_pr_oslo/g
|
||||
s/rt_nurb_print_pt_type/nmg_nurb_print_pt_type/g
|
||||
s/rt_nurb_project_srf/nmg_nurb_project_srf/g
|
||||
s/rt_nurb_region_from_srf/nmg_nurb_region_from_srf/g
|
||||
s/rt_nurb_s_bound/nmg_nurb_s_bound/g
|
||||
s/rt_nurb_s_check/nmg_nurb_s_check/g
|
||||
s/rt_nurb_s_diff/nmg_nurb_s_diff/g
|
||||
s/rt_nurb_s_flat/nmg_nurb_s_flat/g
|
||||
s/rt_nurb_s_plot/nmg_nurb_s_plot/g
|
||||
s/rt_nurb_s_split/nmg_nurb_s_split/g
|
||||
s/rt_nurb_s_xsplit/nmg_nurb_s_xsplit/g
|
||||
s/rt_nurb_scopy/nmg_nurb_scopy/g
|
||||
s/rt_nurb_sinterp/nmg_nurb_sinterp/g
|
||||
s/rt_nurb_solve/nmg_nurb_solve/g
|
||||
s/rt_nurb_to_poly/nmg_nurb_to_poly/g
|
||||
rename old nurbs functions intertwined with nmg to use nmg prefix [7.27]
|
||||
s/RTG.NMG_debug/nmg_debug/g
|
||||
make nmg debug flag top level, like libbu's [7.27]
|
||||
s/BU_ASSERT(_[A-Z_]+)\(([^,]+|.*\(.*,.*\)),([^,]+|.*\(.*,.*\)),([^,]+|.*\(.*,.*\))\);/BU_ASSERT(\2\3\4);/g
|
||||
consolidated BU_ASSERT_PTR, BU_ASSERT_LONG, BU_ASSERT_SIZE_T, BU_ASSERT_SSIZE_T, BU_ASSERT_DOUBLE [7.27]
|
||||
s/BU_FLSTR/CPP_FILELINE/g
|
||||
symbol now owned by common.h, not specific to libbu [7.27]
|
||||
s/vert_root/bn_vert_tree/g
|
||||
s/create_vert_tree[[:space:]]*\(/bn_vert_tree_create\(/g
|
||||
s/create_vert_tree_w_norms[[:space:]]*\(/bn_vert_tree_create_w_norms\(/g
|
||||
s/free_vert_tree[[:space:]]*\(/bn_vert_tree_destroy\(/g
|
||||
s/Add_vert[[:space:]]*\(([^,]*,)([^,]*,)([^,]*,)([^,]*,)/bn_vert_tree_add\(\4\1\2\3/g
|
||||
s/Add_vert_and_norm[[:space:]]*\(([^,]*,)([^,]*,)([^,]*,)([^,]*,)([^,]*,)([^,]*,)([^,]*,)/bn_vert_tree_add_w_norm\(\7\1\2\3\4\5\6/g
|
||||
s/clean_vert_tree[[:space:]]*\(/bn_vert_tree_clean\(/g
|
||||
symbols renamed per convention with their library prefix [7.27]
|
||||
s/BU_DEBUG_MEM_CHECK/0/g
|
||||
s/DEBUG_MEM_FULL/0/g
|
||||
developer debugging symbols removed [7.27]
|
||||
s/bu_dirname\(/bu_path_dirname\(/g
|
||||
s/bu_basename\(/bu_path_basename\(/g
|
||||
s/bu_normalize\(/bu_path_normalize\(/g
|
||||
s/bu_argv_from_path\(/bu_path_to_argv\(/g
|
||||
renamed path functons with proper group label [7.27]
|
||||
s/bu_fnmatch\(/bu_path_match\(/g
|
||||
s/BU_FNMATCH_LEADING_DIR/0x0/g
|
||||
s/BU_FNMATCH_/BU_PATH_MATCH/g
|
||||
renamed for consistency, simplified [7.27]
|
||||
s/bu_path_canonicalize[[:space:]]*\(([^,]*)/bu_realpath(\1, NULL/g
|
||||
duplicate functionality consolidated to bu_realpath() [7.27]
|
||||
s/gqa(.*)-p/gqa\1-p ""/g
|
||||
gqa now takes a prefix for plot file output
|
||||
s/bu_same_file/bu_file_same/g
|
||||
s/bu_realpath/bu_file_realpath/g
|
||||
s/bu_suspend_interrupts/bu_interrupt_suspend/g
|
||||
s/bu_restore_interrupts/bu_interrupt_restore/g
|
||||
renamed for API consistency [7.27]
|
||||
s/bu_brlcad_data[[:space:]]*\(/bu_brlcad_root("share/"/g
|
||||
replaced by new BU API
|
||||
s/struct[[:space:]]*ged_run_rt/struct ged_subprocess/g
|
||||
|
||||
7.30
|
||||
----
|
||||
s/BU_DEBUG_MEM_LOG/0/g
|
||||
bu memory debugging API removed [7.29]
|
||||
s/ged_count_tops/ged_who_argc/g
|
||||
s/ged_build_tops/ged_who_argv/g
|
||||
functions renamed as they pertain to 'who' listings, not 'tops' [7.30]
|
||||
s/rt_tess_tol/bg_tess_tol/g
|
||||
s/RT_TESS_TOL_MAGIC/BG_TESS_TOL_MAGIC/g
|
||||
s/RT_TESS_TOL_INIT_ZERO/BG_TESS_TOL_INIT_ZERO/g
|
||||
s/RT_CK_TESS_TOL/BG_CK_TESS_TOL/g
|
||||
moved librt tolerances to libbg [7.30]
|
||||
s/DEBUG_PT_FU/DEBUG_PNT_FU/g
|
||||
s/DIST_PT2_PT2/DIST_PNT2_PNT2/g
|
||||
s/DIST_PT2_PT2_SQ/DIST_PNT2_PNT2_SQ/g
|
||||
s/DIST_PT_PLANE/DIST_PNT_PLANE/g
|
||||
s/DIST_PT_PT/DIST_PNT_PNT/g
|
||||
s/DIST_PT_PT_SQ/DIST_PNT_PNT_SQ/g
|
||||
s/V3PT_IN_RPP/V3PNT_IN_RPP/g
|
||||
s/V3PT_IN_RPP_TOL/V3PNT_IN_RPP_TOL/g
|
||||
s/V3PT_OUT_RPP_TOL/V3PNT_OUT_RPP_TOL/g
|
||||
s/WDB_METABALLPT_NULL/WDB_METABALL_PNT_NULL/g
|
||||
s/_ged_cm_lookat_pt/_ged_cm_lookat_pnt/g
|
||||
s/_ged_get_metaball_i_pt/_ged_get_metaball_i_pnt/g
|
||||
s/add_metaballpt/metaball_add_pnt/g
|
||||
s/add_pipept/pipe_add_pnt/g
|
||||
s/append_pipept/pipe_append_pnt/g
|
||||
s/bg_3d_polygon_mk_pts_planes/bg_3d_polygon_make_pnts_planes/g
|
||||
s/bg_pt_in_polygon/bg_pnt_in_polygon/g
|
||||
s/bn_3pts_collinear/bn_3pnts_collinear/g
|
||||
s/bn_3pts_distinct/bn_3pnts_distinct/g
|
||||
s/bn_dist_line3_pt3/bn_dist_line3_pnt3/g
|
||||
s/bn_dist_pt2_along_line2/bn_dist_pnt2_along_line2/g
|
||||
s/bn_dist_pt2_lseg2/bn_dist_pnt2_lseg2/g
|
||||
s/bn_dist_pt3_along_line3/bn_dist_pnt3_along_line3/g
|
||||
s/bn_dist_pt3_line3/bn_dist_pnt3_line3/g
|
||||
s/bn_dist_pt3_lseg3/bn_dist_pnt3_lseg3/g
|
||||
s/bn_dist_pt3_pt3/bn_dist_pnt3_pnt3/g
|
||||
s/bn_dist_pt_lseg/bn_dist_pnt_lseg/g
|
||||
s/bn_distsq_line3_pt3/bn_distsq_line3_pnt3/g
|
||||
s/bn_distsq_pt3_lseg3_v2/bn_distsq_pnt3_lseg3_v2/g
|
||||
s/bn_isect_pt2_lseg2/bn_isect_pnt2_lseg2/g
|
||||
s/bn_isect_pt_lseg/bn_isect_pnt_lseg/g
|
||||
s/bn_mat_scale_about_pt/bn_mat_scale_about_pnt/g
|
||||
s/bn_mat_xform_about_pt/bn_mat_xform_about_pnt/g
|
||||
s/bn_mk_plane_3pts/bn_make_plane_3pnts/g
|
||||
s/bn_mkpoint_3planes/bn_make_pnt_3planes/g
|
||||
s/bn_npts_distinct/bn_npnts_distinct/g
|
||||
s/bn_pt2_pt2_equal/bn_pnt2_pnt2_equal/g
|
||||
s/bn_pt3_pt3_equal/bn_pnt3_pnt3_equal/g
|
||||
s/bn_sph_pts/bn_sph_pnts/g
|
||||
s/bn_table_delete_sample_pts/bn_table_delete_sample_pnts/g
|
||||
s/del_pipept/pipe_del_pnt/g
|
||||
s/delete_metaballpt/metaball_delete_pnt/g
|
||||
s/delete_pipept/pipe_pnt_delete/g
|
||||
s/exported_pipept/exported_pipe_pnt/g
|
||||
s/find_arb_edge_nearest_pt/find_arb_edge_nearest_pnt/g
|
||||
s/find_botpt_nearest_pt/find_bot_pnt_nearest_pnt/g
|
||||
s/find_metaballpt_nearest_pt/find_metaball_pnt_nearest_pnt/g
|
||||
s/find_nearest_ars_pt/find_ars_nearest_pnt/g
|
||||
s/find_pipept_nearest_pt/find_pipe_pnt_nearest_pnt/g
|
||||
s/ged_add_metaballpt/ged_metaball_add_pnt/g
|
||||
s/ged_append_pipept/ged_pipe_append_pnt/g
|
||||
s/ged_delete_metaballpt/ged_metaball_delete_pnt/g
|
||||
s/ged_delete_pipept/ged_pipe_pnt_delete/g
|
||||
s/ged_find_arb_edge_nearest_pt/ged_find_arb_edge_nearest_pnt/g
|
||||
s/ged_find_botpt_nearest_pt/ged_find_bot_pnt_nearest_pnt/g
|
||||
s/ged_find_metaballpt_nearest_pt/ged_find_metaball_pnt_nearest_pnt/g
|
||||
s/ged_find_pipept_nearest_pt/ged_find_pipe_pnt_nearest_pnt/g
|
||||
s/ged_mat_scale_about_pt/ged_mat_scale_about_pnt/g
|
||||
s/ged_move_botpt/ged_bot_move_pnt/g
|
||||
s/ged_move_botpts/ged_bot_move_pnts/g
|
||||
s/ged_move_metaballpt/ged_metaball_move_pnt/g
|
||||
s/ged_move_pipept/ged_pipe_move_pnt/g
|
||||
s/ged_prepend_pipept/ged_pipe_prepend_pnt/g
|
||||
s/ins_pipept/pipe_ins_pnt/g
|
||||
s/jitter_start_pt/jitter_start_pnt/g
|
||||
s/kdtree_get_pt/kdtree_get_pnt/g
|
||||
s/mat_scale_about_pt/mat_scale_about_pnt/g
|
||||
s/metaballpt/metaball_pnt/g
|
||||
s/mk_add_pipe_pt/mk_add_pipe_pnt/g
|
||||
s/move_botpt/bot_move_pnt/g
|
||||
s/move_botpts/bot_move_pnts/g
|
||||
s/move_metaballpt/metaball_move_pnt/g
|
||||
s/move_pipept/pipe_move_pnt/g
|
||||
s/move_pipept/pipe_move_pnt/g
|
||||
s/nmg_class_pt_f/nmg_class_pnt_f/g
|
||||
s/nmg_class_pt_fu_except/nmg_class_pnt_fu_except/g
|
||||
s/nmg_class_pt_l/nmg_class_pnt_l/g
|
||||
s/nmg_class_pt_lu_except/nmg_class_pnt_lu_except/g
|
||||
s/nmg_class_pt_s/nmg_class_pnt_s/g
|
||||
s/nmg_classify_pt_loop/nmg_classify_pnt_loop/g
|
||||
s/nmg_find_pt_in_face/nmg_find_pnt_in_face/g
|
||||
s/nmg_find_pt_in_lu/nmg_find_pnt_in_lu/g
|
||||
s/nmg_find_pt_in_model/nmg_find_pnt_in_model/g
|
||||
s/nmg_find_pt_in_shell/nmg_find_pnt_in_shell/g
|
||||
s/nmg_get_interior_pt/nmg_get_interior_pnt/g
|
||||
s/nmg_move_edge_thru_pt/nmg_move_edge_thru_pnt/g
|
||||
s/nmg_nurb_print_pt_type/nmg_nurb_print_pnt_type/g
|
||||
s/pipept/pipe_pnt/g
|
||||
s/prepend_pipept/pipe_prepend_pnt/g
|
||||
s/rt_arb_add_pt/rt_arb_add_pnt/g
|
||||
s/rt_ell_16pts/rt_ell_16pnts/g
|
||||
s/rt_metaballpt_print/rt_metaball_pnt_print/g
|
||||
s/rt_pipept_print/rt_pipe_pnt_print/g
|
||||
s/rt_pr_pt/rt_pr_partition/g
|
||||
s/rt_pr_pt_vls/rt_pr_partition_vls/g
|
||||
s/rt_pt_node/rt_pnt_node/g
|
||||
s/rt_pt_sort/rt_pnt_sort/g
|
||||
s/rt_vls_metaballpt/rt_metaball_pnt_vls/g
|
||||
s/rt_vls_pipept/rt_pipe_pnt_vls/g
|
||||
s/split_pipept/pipe_split_pnt/g
|
||||
s/tclcad_bn_dist_pt2_lseg2/tclcad_bn_dist_pnt2_lseg2/g
|
||||
s/tclcad_bn_mat_xform_about_pt/tclcad_bn_mat_xform_about_pnt/g
|
||||
s/wdb_metaballpt/wdb_metaball_pnt/g
|
||||
s/wdb_pipept/wdb_pipe_pnt/g
|
||||
renamed points from pt to pnt for consistency [7.30]
|
||||
s/proe-brl/creo-brl/g
|
||||
replaced by newer creo plugin [7.30]
|
||||
old db.h db4 preprocessor symbols removed, use char or DB_OP_* [7.25]
|
||||
|
||||
+1168
-2086
File diff suppressed because it is too large
Load Diff
@@ -101,7 +101,7 @@ arranged. This includes an implicit assignment of copyright for any
|
||||
and all contributions being made. The following notice should be
|
||||
prominent in the BRL-CAD sources:
|
||||
|
||||
Copyright (c) 1984-2020 United States Government as represented by
|
||||
Copyright (c) 1984-2014 United States Government as represented by
|
||||
the U.S. Army Research Laboratory.
|
||||
|
||||
Contact
|
||||
|
||||
@@ -240,28 +240,22 @@ accuracy-oriented ray intersection, geometric analysis, and geometry
|
||||
representation library that supports a wide variety of geometric
|
||||
forms. Geometry can be grouped into combinations and regions using
|
||||
CSG boolean operations.
|
||||
Depends on: libbn libbu libregex libm (openNURBS)
|
||||
Depends on: libbn libbu libtcl libregex libm (openNURBS)
|
||||
|
||||
libbu: The BRL-CAD Utility library contains a wide variety of routines
|
||||
for memory allocation, threading, string handling, argument support,
|
||||
linked lists, and more.
|
||||
Depends on: (threading) (malloc)
|
||||
|
||||
libbg: The BRL-CAD Geometry library implements generic algorithms
|
||||
widely used in computational geometry, such as convex hull and
|
||||
triangle/triangle intersection calculations.
|
||||
Depends on: libbn libbu
|
||||
Depends on: libtcl (threading) (malloc)
|
||||
|
||||
libbn: The BRL-CAD Numerics library provides many floating-point math
|
||||
manipulation routines for vector and matrix math, a polynomial
|
||||
equation solver, noise functions, random number generators, complex
|
||||
number support, and more as well.
|
||||
Depends on: libbu libm
|
||||
Depends on: libbu libtcl libm
|
||||
|
||||
libbrep: The BRL-CAD Boundary Representation library implements
|
||||
routines needed for the manipulation and analysis of Non-Uniform
|
||||
Rational BSpline based boundary representations.
|
||||
Depends on: libbg libbn libbu OpenNURBS
|
||||
libcursor: The cursor library is a lightweight cursor manipulation
|
||||
library similar to curses but with less overhead.
|
||||
Depends on: termlib
|
||||
|
||||
libdm: The display manager library contains the logic for generalizing
|
||||
a drawable context. This includes the ability to output
|
||||
@@ -281,18 +275,43 @@ libfft: The Fast-Fourier Transform library is a signal processing
|
||||
library for performing FFTs or inverse FFTs efficiently.
|
||||
Depends on: libm
|
||||
|
||||
libmultispectral: The multispectral optics library is a separate
|
||||
compilation mode of the optics library where support for additional
|
||||
bands of energy are added. By providing a defined spectrum of energy,
|
||||
the raytrace library will produce different signal analyses for a
|
||||
given set of geometry.
|
||||
Depends on: librt libbn libbu libtcl
|
||||
|
||||
liboptical: The optical library is the basis for BRL-CAD's shaders.
|
||||
This includes shaders such as the Phong and Cook-Torrence lighting
|
||||
models, as well as various visual effects such as texturing, marble,
|
||||
wood graining, air, gravel, grass, clouds, fire, and more.
|
||||
Depends on: librt libbn libbu libtcl
|
||||
|
||||
liborle: The "old" run-length encoding library that will decode and
|
||||
encode University of Utah Raster Toolkit format Run-Length Encoded
|
||||
data.
|
||||
Depends on nothing
|
||||
|
||||
libpkg: The "Package" library is a network communications library that
|
||||
supports multiplexing and demultiplexing synchronous and asynchronous
|
||||
messages across stream connections. The library supports a
|
||||
client-server communication model.
|
||||
Depends on: libbu
|
||||
|
||||
librtserver: The ray-trace server library is a thin interface over
|
||||
librt that simplifies the process of applying individual ray
|
||||
intersection tests against a given set of geometry. The library
|
||||
supports communication with a BRL-CAD geometry repository and
|
||||
multithreaded ray dispatch.
|
||||
Depends on: librt libbn libbu libtcl
|
||||
Includes dependent libraries as part of this library
|
||||
|
||||
libsysv: The System 5 compatibility library exists to support legacy
|
||||
systems that lack functionality required by BRL-CAD. This library is
|
||||
deprecated and should generally not be used for new development.
|
||||
Depends on nothing
|
||||
|
||||
libtclcad: The Tcl-CAD library is a thin interface that assists in the
|
||||
binding of an image to a Tk graphics context.
|
||||
Depends on: libbn libbu libfb libtcl libtk
|
||||
@@ -398,30 +417,29 @@ SOURCE CODE LANGUAGES
|
||||
The vast majority of BRL-CAD is written in ANSI C with the intent to
|
||||
be strictly conformant to the C standard. A majority of the MGED
|
||||
geometry editor is written in a combination of C, Tcl/Tk, and Incr
|
||||
Tcl/Tk. The BRL-CAD Benchmark and utility scripts are written in what
|
||||
should be POSIX-compliant Bourne Shell Script. The build system uses
|
||||
the CMake build tool. An initial implementation of a BRL-CAD Geometry
|
||||
Server is written in PHP.
|
||||
Tcl/Tk. The BRL-CAD Benchmark, build system, and utility scripts are
|
||||
written in what should be POSIX-compliant Bourne Shell Script. An
|
||||
initial implementation of a BRL-CAD Geometry Server is written in PHP.
|
||||
|
||||
With release 7.28, BRL-CAD intends to conform strictly with the 2011
|
||||
ANSI/ISO standards for C and C++ language compilation
|
||||
(ISO/IEC 9899:2011, i.e. C11 and ISO/IEC 14882:2011, i.e. C++11).
|
||||
Support for use of necessary non-standard system facilities is
|
||||
handled by build system declarations and preprocessor defines driven
|
||||
by build configuration tests. The working feature set for normal
|
||||
development should be widely supported C++11 features and the subset
|
||||
of C11 that is also valid (and widely supported) C++11.
|
||||
With release 7.0, BRL-CAD has moved forward and worked toward making
|
||||
all of BRL-CAD C code conform strictly with the ANSI/ISO standard for
|
||||
C language compilation (ISO/IEC 9899:1990, i.e. c89). Support for
|
||||
older compilers and older K&R-based system facilities is being
|
||||
migrated to build system declarations, preprocessor defines, or being
|
||||
removed outright. It's okay to make modifications that assume
|
||||
compiler conformance with the ANSI C standard (c89).
|
||||
|
||||
C++ is used as an implementation language within libraries, but there
|
||||
are no public C++ APIs in use outside of OpenNURBS. For new work,
|
||||
public library APIs should expose only C function calls and data
|
||||
except in very specific cases (should be discussed with the
|
||||
development team ahead of time to get consensus on the necessity.)
|
||||
|
||||
There is a C++ interface to the core BRL-CAD libraries called MOOSE
|
||||
that is maintained in a separate repository. It is developed with
|
||||
separation in order to avoid mixing C++ semantics into existing APIs
|
||||
and to ensure clean separation of responsibilities and modularity.
|
||||
There is currently no C++ interface to the core BRL-CAD libraries.
|
||||
There are a few tools and enhancements to libraries that are
|
||||
implemented in C++ (the new BREP object type in librt, for example),
|
||||
but there are presently no C++ bindings available beyond experimental
|
||||
developments. While C++ as an implementation language of new tools
|
||||
and new library interfaces is not prohibited, the mixing of C++
|
||||
semantics and C++ code (including simple // style comments) in the
|
||||
existing C files is not allowed. As new interfaces are developed, new
|
||||
contributors become involved, and C++ code integration becomes more
|
||||
prevalent, the contributor guidelines will become reinforced with more
|
||||
details.
|
||||
|
||||
|
||||
CODING STYLE & STANDARDS
|
||||
@@ -507,15 +525,11 @@ system headers.
|
||||
|
||||
Language Compliance:
|
||||
|
||||
Features of C that conform to the ISO/IEC 9899:2011 C standard (C11)
|
||||
and the ISO/IEC 14882:2011 C++ standard (C++11) are generally the
|
||||
baseline for strict language conformance, with the caveat that
|
||||
features deprecated in subsequent standards or not widely/reliably
|
||||
implemented on OS/compiler platforms targeted by BRL-CAD should be
|
||||
avoided. When writing in C coders should keep their code within the
|
||||
subset of C shared by the C and C++ standards - while not currently
|
||||
strictly enforced, full C++ only build support is a long term project
|
||||
goal.
|
||||
Features of C that conform to the ISO/IEC 9899-1990 C standard (C90)
|
||||
are generally the baseline for strict language conformance. As
|
||||
BRL-CAD used to be K&R syntax conformant, there remains an on-going
|
||||
effort to ensure a full conversion to a standards compliant ISO C
|
||||
implementation.
|
||||
|
||||
Code Conventions:
|
||||
|
||||
@@ -541,7 +555,7 @@ math for portability and performance reasons. When floating point
|
||||
comparisons are necessary, use the NEAR_EQUAL and NEAR_ZERO macros
|
||||
with a specified tolerance or the EQUAL and ZERO macros where a
|
||||
tolerance is indeterminate (all the macros are available by including
|
||||
vmath.h). Examples:
|
||||
bn.h, part of libbn). Examples:
|
||||
|
||||
For known tolerances:
|
||||
|
||||
@@ -562,34 +576,25 @@ variables should be utilized instead of the standard C facility:
|
||||
bu_malloc() instead of malloc()
|
||||
bu_calloc() instead of calloc()
|
||||
bu_realloc() instead of realloc()
|
||||
bu_fgets() instead of fgets()
|
||||
bu_free() instead of free()
|
||||
|
||||
bu_log() instead of printf()
|
||||
bu_bomb() instead of abort()
|
||||
bu_exit() instead of printf()+exit()
|
||||
bu_snooze() instead of sleep(), usleep(), nanosleep()
|
||||
|
||||
bu_dirname() instead of dirname()
|
||||
bu_getopt() instead of getopt()
|
||||
bu_opterr instead of opterr
|
||||
bu_optind instead of optind
|
||||
bu_optopt instead of optopt
|
||||
bu_optarg instead of optarg
|
||||
|
||||
bu_file_delete() instead of unlink(), rmdir(), and remove()
|
||||
bu_path_basename() instead of basename()
|
||||
bu_path_dirname() instead of dirname()
|
||||
bu_path_match() instead of fnmatch()
|
||||
|
||||
bu_log() instead of printf()
|
||||
bu_fgets() instead of fgets()
|
||||
bu_sort() instead of qsort()
|
||||
|
||||
bu_strdup() instead of strdup()
|
||||
bu_strlcat() instead of strcat(), strncat(), and strlcat()
|
||||
bu_strlcpy() instead of strcpy(), strncpy(), and strlcpy()
|
||||
bu_strcmp() and BU_STR_EQUAL() instead of strcmp()
|
||||
bu_strcasecmp() and BU_STR_EQUIV() instead of stricmp()/strcasecmp()
|
||||
bu_strncmp() instead of strncmp()
|
||||
bu_strcasecmp() instead of strnicmp()/strncasecmp()
|
||||
bu_file_delete() instead of unlink(), rmdir(), and remove()
|
||||
bu_sort() instead of qsort()
|
||||
|
||||
Similarly, ANSI C functions are preferred over the BSD and POSIX
|
||||
interfaces. The following functions should be used:
|
||||
@@ -831,16 +836,19 @@ it better?" and add documentation accordingly.
|
||||
|
||||
All public library functions and most private or application functions
|
||||
should be appropriately documented using Doxygen/Javadoc style
|
||||
comments. This minimally means that you need to add an additional
|
||||
asterisk to a comment that precedes your functions. Public functions
|
||||
must be exported and imported using per-library macros that precede
|
||||
public symbol declarations (e.g., BU_EXPORT int func();). Example:
|
||||
comments. Without getting into the advanced details, this minimally
|
||||
means that you need to add an additional asterisk to a comment that
|
||||
precedes your functions:
|
||||
|
||||
/**
|
||||
* Computes the answer to the meaning of life, the universe, and
|
||||
* everything.
|
||||
*/
|
||||
MYLIB_EXPORT int mylib_function();
|
||||
int
|
||||
the_answer(void)
|
||||
{
|
||||
return 42;
|
||||
}
|
||||
|
||||
|
||||
TESTING & DEBUGGING
|
||||
@@ -873,10 +881,6 @@ Note that changes to publicly documented tools and library APIs must
|
||||
adhere to BRL-CAD's change policy. This means changes to any tests
|
||||
may require thoughtful deployment. See the CHANGES file for details.
|
||||
|
||||
These tests are run nightly on BRL-CAD's server to catch problems
|
||||
quickly - developers should be aware of the status of BRL-CAD's tests
|
||||
as seen at http://brlcad.org/CDash
|
||||
|
||||
To add new regression tests, look at regress/weight.sh for an
|
||||
integration test example and src/libbu/tests/bu_vls_vprintf.c for an
|
||||
API unit test example. See their corresponding CMakeLists.txt build
|
||||
@@ -977,11 +981,11 @@ granted after a contributor demonstrates strong competency with our
|
||||
developer guidelines and an existing developer with commit access
|
||||
vouches for the new developer.
|
||||
|
||||
If you would like to have commit access, do not ask for it. Getting
|
||||
involved with the other contributors and making patches will result in
|
||||
automatic consideration for commit access. That said, the following
|
||||
steps represent a minimum that needs to occur in order for commit
|
||||
access to be granted:
|
||||
If you would like to have commit access, there is no need to ask.
|
||||
Getting involved with the other contributors and making patches will
|
||||
result in automatic consideration for commit access. That said, the
|
||||
following steps represent a minimum that needs to occur in order for
|
||||
commit access to be granted:
|
||||
|
||||
1) Read this file completely.
|
||||
|
||||
@@ -991,7 +995,7 @@ access to be granted:
|
||||
|
||||
4) Create a SourceForge account, submit at least two patches that
|
||||
demonstrate competency with our coding style, apply flawlessly, and
|
||||
provide some significant improvement.
|
||||
provide some signficant improvement.
|
||||
|
||||
5) Get to know the other developers. One of them will need to vouch
|
||||
for your commit access.
|
||||
@@ -1077,7 +1081,10 @@ number follows a common convention where the three numbers represent:
|
||||
{MAJOR_VERSION}.{MINOR_VERSION}.{PATCH_VERSION}
|
||||
|
||||
All "development" builds use an odd number for the minor version. All
|
||||
"release" builds use an even number for the minor version.
|
||||
"release" builds use an even number for the minor version. Patched
|
||||
versions should include a release count:
|
||||
|
||||
{MAJOR_VERSION}.{MINOR_VERSION}.{PATCH_VERSION}[-{RELEASE_COUNT}]
|
||||
|
||||
The MAJOR_VERSION should only increment when it is deemed that a
|
||||
significant amount of major changes have accumulated, new features
|
||||
@@ -1099,13 +1106,9 @@ backwards incompatible in some manner should increment the patch
|
||||
version number.
|
||||
|
||||
If it becomes necessary to update a posted release, use and increment
|
||||
the AMEND_COUNT format outlined below. The first posted release is
|
||||
implicitly the "-0" release (e.g., 7.10.2 is implicitly 7.10.2-0) with
|
||||
subsequent updated releases incrementing the count (e.g., 7.10.2-1).
|
||||
See the "AMENDING A RELEASE" section below for guidelines on when a
|
||||
release should be amended in lieu of a new PATCH_VERSION release.
|
||||
|
||||
{MAJOR_VERSION}.{MINOR_VERSION}.{PATCH_VERSION}[-{AMEND_COUNT}]
|
||||
the RELEASE_COUNT. The first posted release is implicitly the "-0"
|
||||
release count (e.g., 7.10.2 is implicitly 7.10.2-0) with subsequent
|
||||
updated releases incrementing the count (e.g., 7.10.2-1).
|
||||
|
||||
|
||||
NAMING A SOURCE RELEASE
|
||||
@@ -1199,35 +1202,33 @@ necessary convention by a binary package management system. Examples:
|
||||
zip
|
||||
|
||||
|
||||
AMENDING A RELEASE
|
||||
PATCHING A RELEASE
|
||||
------------------
|
||||
|
||||
Should it become necessary to modify a release after it has been
|
||||
tagged, uploaded, and announced, a release amendment may be issued.
|
||||
Releases that are neither tagged, uploaded, or announced are subject
|
||||
to at-will change and re-tagging.
|
||||
|
||||
Amendments to source releases are expressed as a sequence of one or
|
||||
more patch files that are to be applied sequentially. Patch files may
|
||||
be descriptively named but must be incrementally numbered. The
|
||||
uploaded release notes and/or README file(s) should instruct users
|
||||
building from source to download and apply all available patch files
|
||||
in order.
|
||||
Should it become necessary to patch a release that has already been
|
||||
posted and announced, the mechanism is to post patch files for the
|
||||
source release and update the uploaded release notes README file.
|
||||
|
||||
Example: stop_rt_crashing-0.patch and fix_fbserv-1.patch
|
||||
|
||||
For binary builds, it's recommended to just "move on" and let issues
|
||||
It's expected that all patch files are independent and will be applied
|
||||
sequentially. They should be consistently and incrementally numbered.
|
||||
Users should be instructed in the release notes README to download and
|
||||
apply all available patch files.
|
||||
|
||||
For binary releases, it's recommended to just "move on" and let issues
|
||||
become resolved in the next release unless there's a critical security
|
||||
or data corruption issue involved. That said, binary releases may be
|
||||
re-posted with a modified name per the convention described in VERSION
|
||||
NUMBERS & COMPATIBILITY.
|
||||
or significant data corruption issue involved. If it becomes
|
||||
necessary to repost a release, use the RELEASE_COUNT file name
|
||||
convention described in VERSION NUMBERS & COMPATIBILITY.
|
||||
|
||||
Example: BRL-CAD-7.12.2.dmg is superseded by BRL-CAD-7.12.2-1.dmg
|
||||
|
||||
Older binary releases may be moved to the hidden attic folder, though
|
||||
not necessary or recommended except where critical vulnerabilities are
|
||||
involved. Releases are preserved for historic record and should never
|
||||
be deleted once announced.
|
||||
Patched binary releases may be moved to the hidden attic folder if
|
||||
critical, though not necessary or recommended. They are preserved for
|
||||
historic record and should never be deleted once announced. Releases
|
||||
not yet been announced may be updated within two days of being posted
|
||||
without involving a patch.
|
||||
|
||||
|
||||
MAKING A RELEASE
|
||||
@@ -1264,23 +1265,19 @@ Release steps are as follows:
|
||||
PREV=[[last_trunk_rev]]
|
||||
echo "PREV=$PREV"
|
||||
|
||||
svn co https://svn.code.sf.net/p/brlcad/code/brlcad/branches/RELEASE brlcad.RELEASE
|
||||
svn co svn://svn.code.sf.net/p/brlcad/code/brlcad/branches/RELEASE brlcad.RELEASE
|
||||
cd brlcad.RELEASE
|
||||
svn merge https://svn.code.sf.net/p/brlcad/code/brlcad/trunk@$PREV https://svn.code.sf.net/p/brlcad/code/brlcad/trunk@HEAD .
|
||||
|
||||
#####################################################################
|
||||
# 02: Test the merge.
|
||||
|
||||
# NON-AUTO: Confirm versioning in include/conf/.
|
||||
# BRLCAD_VERSION_AMEND may be defined during CMake for an
|
||||
# amendment build.
|
||||
|
||||
mkdir -p .build && cd .build
|
||||
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release && make
|
||||
|
||||
# NON-AUTO: Manually check rt, mged, and archer.
|
||||
# Manually check rt, mged, and archer.
|
||||
bin/rt # should report usage with correct library versions
|
||||
bin/mged -c test.g "make sph sph ; draw sph ; rt ; after 1000 ; l sph" # create, view and list info about a sphere
|
||||
bin/mged -c test.g "make sph sph ; rt" # pops up a sphere
|
||||
bin/mged # displays gui, run: opendb test.g ; draw sph ; rt
|
||||
bin/archer # displays gui, run: opendb test.g ; draw sph ; rt
|
||||
|
||||
@@ -1335,8 +1332,6 @@ Release steps are as follows:
|
||||
#####################################################################
|
||||
# 09: Sync RELEASE to STABLE branch:
|
||||
|
||||
# Update the NEWS release date for the current release to today's date
|
||||
|
||||
# NON-AUTO: Review the log and obtain the last merge revision
|
||||
# number from comments.
|
||||
svn log --stop-on-copy https://svn.code.sf.net/p/brlcad/code/brlcad/branches/STABLE | less
|
||||
@@ -1408,32 +1403,32 @@ Release steps are as follows:
|
||||
SFUSERNAME=`ls ~/.subversion/auth/svn.simple/* | xargs -n 1 grep -A4 sourceforge | tail -1`
|
||||
echo "SFUSERNAME=$SFUSERNAME MAJOR=$MAJOR MINOR=$MINOR PATCH=$PATCH"
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net create
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH"
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH"
|
||||
|
||||
# create binary dirs (as needed)
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH"
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH"
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH"
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH"
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH"
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH"
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH"
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH"
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH"
|
||||
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH"
|
||||
|
||||
# upload source dist and any binaries
|
||||
scp brlcad-$MAJOR.$MINOR.$PATCH* "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
|
||||
scp brlcad-$MAJOR.$MINOR.$PATCH* "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
|
||||
|
||||
# extract and upload release notes to source dir
|
||||
cat ../NEWS | tr '\n' '@' | perl -p -e "s/.*?(@---[[:space:]@-]*[0-9]{4}-[0-9]{2}-[0-9]{2}[[:space:]]*Release[[:space:]]*${MAJOR}\.${MINOR}\.${PATCH}[[:space:]@-]*.*?)@---.*/\1/" | tr '@' '\n' > README-${MAJOR}-${MINOR}-${PATCH}.txt
|
||||
cat ../NEWS | tr '\n' '@' | perl -pi -e "s/.*?(@---[[:space:]@-]*[0-9]{4}-[0-9]{2}-[0-9]{2}[[:space:]]*Release[[:space:]]*${MAJOR}\.${MINOR}\.${PATCH}[[:space:]@-]*.*?)@---.*/\1/" | tr '@' '\n' > README-${MAJOR}-${MINOR}-${PATCH}.txt
|
||||
echo "Release notes for $MAJOR.$MINOR.$PATCH" && echo "==="
|
||||
cat README-$MAJOR-$MINOR-$PATCH.txt && echo "==="
|
||||
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
|
||||
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
|
||||
|
||||
# NON-AUTO: Following the NAMING A BINARY RELEASE convention,
|
||||
# upload any release binaries and platform-specific release notes.
|
||||
|
||||
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH/."
|
||||
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH/."
|
||||
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH/."
|
||||
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH/."
|
||||
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH/."
|
||||
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH/."
|
||||
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH/."
|
||||
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH/."
|
||||
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH/."
|
||||
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH/."
|
||||
|
||||
# NON-AUTO: Be sure to mark binaries as default download, then
|
||||
# close shell session
|
||||
@@ -1463,9 +1458,6 @@ Release steps are as follows:
|
||||
Slackware maintainer
|
||||
http://slackbuilds.org/result/?search=brlcad
|
||||
|
||||
Fedora maintainer
|
||||
https://fedoraproject.org/wiki/User:Germano#Contact
|
||||
|
||||
#####################################################################
|
||||
# 18: Announce the new release.
|
||||
|
||||
@@ -1483,6 +1475,10 @@ audience. Always notify the following when a release is made:
|
||||
BRL-CAD SourceForge NEWS (authorized can submit)
|
||||
https://sourceforge.net/p/brlcad/news/new
|
||||
|
||||
Freshmeat (anyone can submit update)
|
||||
http://freecode.com/projects/BRL-CAD/
|
||||
short summary without news details (sentence format)
|
||||
|
||||
BRL-CAD on Facebook (authorized can submit)
|
||||
http://www.facebook.com/pages/BRL-CAD/387112738872
|
||||
short summary without news details (sentence format)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
The Installation Guide to BRL-CAD
|
||||
=================================
|
||||
|
||||
Please read this document if you are interested in installing BRL-CAD.
|
||||
|
||||
This document covers the basics of installing BRL-CAD from either a
|
||||
source or binary distribution. Please see the 'Reporting Problems'
|
||||
section if you run into any trouble installing BRL-CAD.
|
||||
@@ -52,32 +54,35 @@ below. The rest of this quick installation section is only relevant
|
||||
to source code distributions of BRL-CAD.
|
||||
|
||||
For the impatient or simplistic, the following steps should compile,
|
||||
test, and install an optimized BRL-CAD quickly into the
|
||||
/usr/brlcad/rel-VERSION directory if CMake is already installed:
|
||||
test, and install an optimized BRL-CAD quickly into the /usr/brlcad/rel-X.Y.Z
|
||||
directory if CMake is installed on your system:
|
||||
|
||||
tar -zxvf brlcad-VERSION.tar
|
||||
mkdir brlcad-VERSION/build
|
||||
cd brlcad-VERSION/build
|
||||
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
|
||||
make -j4
|
||||
make check
|
||||
make install
|
||||
gunzip brlcad-X.Y.Z.tar.gz
|
||||
tar -xvf brlcad-X.Y.Z.tar
|
||||
mkdir brlcad-build
|
||||
cd brlcad-build
|
||||
cmake ../brlcad-X.Y.Z -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
|
||||
make
|
||||
make benchmark
|
||||
make regress
|
||||
make install # as root, e.g. sudo make install
|
||||
|
||||
See the REPORTING PROBLEMS section of this document to report any
|
||||
problems or the INSTALLING FROM SOURCE section for more comprehensive
|
||||
If any of the listed steps fail, then something unexpected happened.
|
||||
See the REPORTING PROBLEMS section of this document to report the
|
||||
problem or the INSTALLING FROM SOURCE section for more comprehensive
|
||||
instructions.
|
||||
|
||||
Once installed, add /usr/brlcad/rel-VERSION/bin to your path, and you should be
|
||||
Once installed, add /usr/brlcad/rel-X.Y.Z/bin to your path, and you should be
|
||||
able to run any of the 400+ applications that constitute BRL-CAD. For
|
||||
example, to run the MGED solid modeler:
|
||||
|
||||
PATH=/usr/brlcad/rel-VERSION/bin:$PATH ; export PATH
|
||||
PATH=/usr/brlcad/rel-X.Y.Z/bin:$PATH ; export PATH
|
||||
mged
|
||||
|
||||
If you use tcsh or another C-shell based command shell, use this
|
||||
instead:
|
||||
|
||||
set path=( /usr/brlcad/rel-VERSION/bin $path ) ; rehash
|
||||
set path=( /usr/brlcad/rel-X.Y.Z/bin $path ) ; rehash
|
||||
mged
|
||||
|
||||
|
||||
@@ -123,10 +128,9 @@ always be loaded first, regardless of the presence of a "local" copy.
|
||||
Mac OS X Disk Mounting Image:
|
||||
|
||||
Mount the .dmg and run the Installer .pkg contained therein. This
|
||||
will install into /usr/brlcad/rel-X.Y.Z and will only require
|
||||
confirming that your environment is set up properly (i.e. add
|
||||
/usr/brlcad/rel-X.Y.Z/bin to your path) as described in the Quick
|
||||
Installation section.
|
||||
will install into /usr/brlcad/rel-X.Y.Z and will only require confirming that
|
||||
your environment is set up properly (i.e. add /usr/brlcad/rel-X.Y.Z/bin to your
|
||||
path) as described in the Quick Installation section.
|
||||
|
||||
|
||||
INSTALLING FROM SOURCE
|
||||
@@ -240,14 +244,6 @@ performance evaluation), enable BRLCAD_FLAGS_OPTIMIZATION:
|
||||
|
||||
-DBRLCAD_FLAGS_OPTIMIZATION=ON
|
||||
|
||||
Profile-guided optimization builds are possible via two-pass
|
||||
compilation. Compile with this flag set, run the benchmark suite,
|
||||
clean the build, and then compile again with this flag set. Supported
|
||||
compilers will utilize data from the first pass to guide optimization,
|
||||
typically resulting in a significant performance increase:
|
||||
|
||||
-DBRLCAD_PGO=ON
|
||||
|
||||
See the CONFIGURATION OPTIONS below for more details on all of the
|
||||
possible settings.
|
||||
|
||||
@@ -293,31 +289,19 @@ or on operating systems set up to use sudo:
|
||||
TESTING FUNCTIONALITY
|
||||
---------------------
|
||||
|
||||
The primary build target to validate a compilation of BRL-CAD is:
|
||||
|
||||
make check
|
||||
|
||||
That runs a trio of test sets including "benchmark", "regress", and
|
||||
"unit". The first set is a performance test that also validates
|
||||
whether ray tracing behavior is correct:
|
||||
To test BRL-CAD before installation, you can run the BRL-CAD benchmark.
|
||||
The benchmark will report if the results are correct, testing a
|
||||
majority of the core functionality of BRL-CAD in addition to testing
|
||||
your system's performance:
|
||||
|
||||
make benchmark
|
||||
|
||||
The second test set is our regression tests that run a host of
|
||||
rigorous integration tests and validate essential behavior:
|
||||
Note that the benchmark target will build ONLY the pieces required for
|
||||
the benchmark tests, unless a general make has already been performed.
|
||||
For more testing, you can run the regression test suite:
|
||||
|
||||
make regress
|
||||
|
||||
The third set runs unit tests that validate low-level behavior in
|
||||
BRL-CAD's core libraries:
|
||||
|
||||
make unit
|
||||
|
||||
Last but not least, one may simply run all available tests, though
|
||||
note that some tests will intentionally fail:
|
||||
|
||||
make test
|
||||
|
||||
|
||||
POST-INSTALLATION
|
||||
-----------------
|
||||
@@ -430,6 +414,28 @@ EXPERIMENTAL!
|
||||
Aliases: ENABLE_ALL_CXX
|
||||
|
||||
|
||||
--- ENABLE_POSIX_COMPLIANCE ---
|
||||
|
||||
Build with strict POSIX compliance checking. Defaults to OFF.
|
||||
|
||||
Causes compiler options to be set for strict compliance with the
|
||||
minimum C and C++ standards acceptable according to current BRL-CAD
|
||||
policy. The current minimum C standard is ??.
|
||||
There is no currently defined minimum C++ standard.
|
||||
|
||||
Aliases: ENABLE_POSIX
|
||||
|
||||
|
||||
--- ENABLE_STRICT_COMPILER_STANDARD_COMPLIANCE ---
|
||||
|
||||
Build with strict ISO C compliance checking. Defaults to OFF.
|
||||
|
||||
Causes C compiler options to be set for strict compliance with the
|
||||
appropriate ISO C standard.
|
||||
|
||||
Aliases: STRICT_ISO_C
|
||||
|
||||
|
||||
--- BRLCAD_EXTRADOCS ---
|
||||
|
||||
The core option that enables and disables building of BRL-CAD's
|
||||
@@ -530,6 +536,28 @@ first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
|
||||
Aliases: ENABLE_ZLIB, ENABLE_LIBZ
|
||||
|
||||
|
||||
--- BRLCAD_FREETYPE ---
|
||||
|
||||
Option for enabling and disabling compilation of the FreeType
|
||||
libraries provided with BRL-CAD's source code. Default is AUTO, responsive to
|
||||
the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
|
||||
version if BRLCAD_BUNDLED_LIBS is also AUTO.
|
||||
|
||||
Aliases: ENABLE_FREETYPE
|
||||
|
||||
|
||||
--- BRLCAD_TERMLIB ---
|
||||
|
||||
Option for enabling and disabling compilation of the termlib library
|
||||
provided with BRL-CAD's source distribution. Default is AUTO,
|
||||
responsive to the toplevel BRLCAD_BUNDLED_LIBS option and testing
|
||||
first for a system version if BRLCAD_BUNDLED_LIBS is also
|
||||
AUTO. (Except when building with Visual Studio, where it is
|
||||
disabled. Windows does not support the termlib API.)
|
||||
|
||||
Aliases: ENABLE_TERMLIB
|
||||
|
||||
|
||||
--- BRLCAD_PNG ---
|
||||
|
||||
Option for enabling and disabling compilation of the Portable Network
|
||||
@@ -541,16 +569,6 @@ AUTO.
|
||||
Aliases: ENABLE_PNG
|
||||
|
||||
|
||||
--- BRLCAD_NETPBM ---
|
||||
|
||||
Option for enabling and disabling compilation of the netpbm library
|
||||
provided with BRL-CAD's source code. Default is AUTO, responsive to
|
||||
the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
|
||||
version if BRLCAD_BUNDLED_LIBS is also AUTO.
|
||||
|
||||
Aliases: ENABLE_NETPBM
|
||||
|
||||
|
||||
--- BRLCAD_UTAHRLE ---
|
||||
|
||||
Option for enabling and disabling compilation of the Utah Raster
|
||||
@@ -638,6 +656,19 @@ BRLCAD_ENABLE_TK is OFF.
|
||||
Aliases: ENABLE_TKHTML
|
||||
|
||||
|
||||
--- BRLCAD_TKPNG ---
|
||||
|
||||
Option for enabling and disabling compilation of the tkpng PNG image
|
||||
viewing package provided with BRL-CAD's source distribution. Default
|
||||
is AUTO, auto-enabling if the BRLCAD_TCL option is set to BUNDLED and
|
||||
testing first for a system version if BRLCAD_TCL is set to AUTO or
|
||||
SYSTEM. If BRLCAD_TKPNG is set to BUNDLED, local copy is built even if
|
||||
a system version is present. This package will be disabled if
|
||||
BRLCAD_ENABLE_TK is OFF.
|
||||
|
||||
Aliases: ENABLE_TKPNG
|
||||
|
||||
|
||||
--- BRLCAD_TKTABLE ---
|
||||
|
||||
Option for enabling and disabling compilation of the Tktable graphical
|
||||
@@ -661,16 +692,6 @@ version if BRLCAD_BUNDLED_LIBS is also AUTO.
|
||||
Aliases: ENABLE_OPENNURBS
|
||||
|
||||
|
||||
--- BRLCAD_SPSR ---
|
||||
|
||||
Option for enabling and disabling compilation of the Screened Poisson
|
||||
Surface Reconstruction library provided with BRL-CAD's source code.
|
||||
Default is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option
|
||||
and testing first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
|
||||
|
||||
Aliases: ENABLE_SPSR
|
||||
|
||||
|
||||
--- BRLCAD_SC ---
|
||||
|
||||
Option for enabling and disabling compilation of the NIST Step Class
|
||||
@@ -713,26 +734,15 @@ AUTO.
|
||||
Aliases: ENABLE_GDIAM
|
||||
|
||||
|
||||
--- BRLCAD_PROJ4 ---
|
||||
--- BRLCAD_BULLET ---
|
||||
|
||||
Option for enabling and disabling compilation of the PROJ.4 geographic
|
||||
projection library provided with BRL-CAD's source code. Default
|
||||
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
|
||||
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
|
||||
AUTO.
|
||||
Option for enabling and disabling compilation of the Bullet Realtime
|
||||
Physics Simulation Libraries provided with BRL-CAD's source
|
||||
distribution. Default is AUTO, responsive to the toplevel
|
||||
BRLCAD_BUNDLED_LIBS option and testing first for a system version
|
||||
if BRLCAD_BUNDLED_LIBS is also AUTO.
|
||||
|
||||
Aliases: ENABLE_PROJ4
|
||||
|
||||
|
||||
--- BRLCAD_GDAL ---
|
||||
|
||||
Option for enabling and disabling compilation of the GDAL geographic
|
||||
library provided with BRL-CAD's source code. Default
|
||||
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
|
||||
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
|
||||
AUTO.
|
||||
|
||||
Aliases: ENABLE_GDAL
|
||||
Aliases: ENABLE_BULLET
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -9,444 +9,19 @@ first and are grouped by release. Each release also includes optional
|
||||
descriptive text that emphasizes or further describes significant
|
||||
changes made. See document footer for additional details.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 20XX-XX-XX Release 7.3X.X ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
* improved gdiff -F filtering option behavior - Cliff Yapp
|
||||
* improved gdiff command verbosity reporting options - Cliff Yapp
|
||||
* improved Combination Editor button behaviors in MGED - Sean Morrison
|
||||
* consistent usage taxonomy for ident-related commands - Sean Morrison
|
||||
* added units label to the Archer in-scene scale graphic - Cliff Yapp
|
||||
* improved output path sorting of search command - Cliff Yapp
|
||||
* added 3dm-g failure message about supported versions - Cliff Yapp
|
||||
* fixed bw-png writing corrupted png files on Windows - Sean Morrison
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2020-05-08 Release 7.30.8 ---
|
||||
--- 2014-XX-XX Release 7.26.XX ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
* added gchecker tool to generate MGED overlap inputs - Cliff Yapp
|
||||
* improved behavior of MGED overlap checker GUI - Nick Reed
|
||||
* fixed startup dimensions of overlap checker window - Nick Reed
|
||||
* fixed rtedge line drawing color when using -W flag - Cliff Yapp
|
||||
* added -F option to lint cmd to test specifc solid types - Cliff Yapp
|
||||
* added support to MGED for zooming with mouse wheel - Cliff Yapp
|
||||
* fixed solid editing wireframe drawing in MGED - Nick Reed
|
||||
* added .r suffixes to region names in 3dm-g conversion - Cliff Yapp
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2020-03-19 Release 7.30.6 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
* fixed transparent drawing in MGED - Nick Reed
|
||||
* fixed solid NURBS brep intersection testing - Cliff Yapp
|
||||
* removed extra blank line after commands in MGED GUI - Sean Morrison
|
||||
* added "plate" object type filter to search command - Cliff Yapp
|
||||
* fixed latent logging bug during facetize on Windows - Bob Parker
|
||||
* fixed bug closing rt framebuffer windows on Windows - Sean Morrison
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2019-12-05 Release 7.30.4 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
* enhanced attr list command to support reporting values - Cliff Yapp
|
||||
* updated FAA Generic Twin example FASTGEN model - Cliff Yapp
|
||||
* fixed handling of duplicate FASTGEN object names - Cliff Yapp
|
||||
* update gqa/rtweight man pages to reference mater -d - Cliff Yapp
|
||||
* overlay command accepts file patterns (e.g., *.plot) - Cliff Yapp
|
||||
* changed mged escape key binding to reset mouse mode - Sean Morrison
|
||||
* removed default xXyYzZ0 rate rotation key bindings - Sean Morrison
|
||||
* improved tessellation of nearly coplanar surfaces - John Anderson
|
||||
* fixed display of annotations on Windows - Daniel Roßberg
|
||||
* fixed rtedge and rtwizard occlusion object edge bug - Sean Morrison
|
||||
* rt* tools no longer force outputs to be read-only - Sean Morrison
|
||||
* fixed 'burst' crash when run without options - Sean Morrison
|
||||
* changed rtweight to not truncate long pathnames - Sean Morrison
|
||||
* added new ball bearing example geometry model - Sean Morrison
|
||||
* added new manual page for the clone command - Sean Morrison
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2019-04-03 Release 7.30.2 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
* fixed memory leak during obj-g and gcv import - Bojian Wu
|
||||
* added new manual page for the clone command - Sean Morrison
|
||||
* fixed crash calculating dsp bounding boxes - Sean Morrison
|
||||
* fixed Windows temporary file removal for MGED commands (red, etc.)
|
||||
- Cliff Yapp
|
||||
* fixed librt NURBS cache issues under high load conditions
|
||||
- Sean Morrison, Cliff Yapp
|
||||
* added a copy subcommand to MGED's attr command - Cliff Yapp
|
||||
* fixed a locking condition in MGED's rtcheck command - Cliff Yapp
|
||||
* added support for >=< prefixes for mater -d get options Cliff Yapp
|
||||
* fixed brlman lookup location of html manual pages - Cliff Yapp
|
||||
* fixed rt -t top-to-bottom parallel rendering option Sean Morrison
|
||||
* added a 'flip' normals command to MGED's brep command - Cliff Yapp
|
||||
* added rtweight support for in-.g density information - Cliff Yapp
|
||||
* improved usability of vol primitives w/ missing data - Sean Morrison
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2019-02-25 Release 7.30.0 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
This major release of BRL-CAD is the first release requiring
|
||||
compiler support for the C++11 language standard when building.
|
||||
(This change is not user visible, but will be significant to those
|
||||
using BRL-CAD in their own software development efforts.)
|
||||
|
||||
This release introduces a new "-d" option to the mater command,
|
||||
supporting direct embedding of .density file information in a
|
||||
.g database for use by commands such as gqa and rtweight.
|
||||
|
||||
Also present in this release are a fix for commands that work with
|
||||
multiple .g files and support for raytracing MGED scenes with large
|
||||
numbers of active objects.
|
||||
|
||||
A number of commands and tools previously listed as deprecated are
|
||||
removed in this release, including in particular MGED commands
|
||||
specific to MUVES.
|
||||
|
||||
* added rtweight -d option for specifying density file - Cliff Yapp
|
||||
* added material density management to "mater" command - Cliff Yapp
|
||||
* use full paths for OBJ objects in "bot dump" command - Cliff Yapp
|
||||
* added -v high precision option to MGED 'center' command - Cliff Yapp
|
||||
* fixed crash when using dbconcat and dup together in MGED
|
||||
- Cliff Yapp, Sean Morrison
|
||||
* renamed MGED "ps" command to "postscript" - Cliff Yapp
|
||||
* removed MGED commands em, e_muves, l_muves, lm, read_muves, t_muves
|
||||
- Cliff Yapp
|
||||
* removed deprecated irprep tools - Cliff Yapp
|
||||
* removed deprecated fbed and pp-fb framebuffer tools - Cliff Yapp
|
||||
* fixed rt support for specifying large object lists - Cliff Yapp
|
||||
* new 'gex' tool for low-level .g file exploration - Tom Browder
|
||||
* added support for command-line editing of metaballs - Sean Morrison
|
||||
* added manual page for the 'get' command - Cliff Yapp
|
||||
* improved speed of "bot chull" convex hull generation - Cliff Yapp
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2018-11-30 Release 7.28.2 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
This is a patch release, applying several logic fixes and build system
|
||||
corrections.
|
||||
|
||||
* fixed incorrect handling of NURBS near-miss points near edges
|
||||
- Cliff Yapp, Keith Bowman
|
||||
* fixed support for large files on 64-bit Windows - Cliff Yapp
|
||||
* fixed analyze command calculation of BoT volume - Keith Bowman
|
||||
* fixed problem merging .g files containing dsp data - Cliff Yapp
|
||||
* fixed infinite loop in OverlapTools GUI - Cliff Yapp
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2018-10-01 Release 7.28.0 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
This major release of BRL-CAD incorporates a new feature for caching
|
||||
of raytrace acceleration structures used when working with explicit
|
||||
boundary representation (BREP) Non-uniform Rational Basis Spline
|
||||
(NURBS) solids. This will result in significant improvements to
|
||||
run times when repeatedly raytracing BREP solids.
|
||||
|
||||
Support for terrain import has been significantly expanded with the
|
||||
addition of a new Geospatial Data Abstraction Library (GDAL) based
|
||||
importer to the gcv conversion tool. GDAL brings with it support for
|
||||
dozens of different terrain data formats.
|
||||
|
||||
Also new in this release are a greatly improved graphical geometry
|
||||
overlap resolving tool and support in the MGED search command for
|
||||
an "exec" option which will allow users to execute MGED commands
|
||||
on search results.
|
||||
|
||||
The MGED facetize command for generating polygonal geometry from
|
||||
BRL-CAD objects has received significant attention, including the
|
||||
incorporation of a "per-region" conversion mode, new conversion
|
||||
methodologies and usability enhancements.
|
||||
|
||||
* fixed crash mixing flat and full path MGED searches - Cliff Yapp
|
||||
* improved MGED ls command's help message - Cliff Yapp
|
||||
* added -exec option to MGED's search command - Peter Pronai
|
||||
* added new MGED 'lint' command for finding bad geometry - Cliff Yapp
|
||||
* improved lingering framebuffer CPU utilization - Sean Morrison
|
||||
* updated 'draw -S' option to work with shaded objects - Bob Parker
|
||||
* fixed numerous fb* command bugs w/ X11 framebuffers - Sean Morrison
|
||||
* extended fbpoint support to more varied framebuffers - Sean Morrison
|
||||
* improved gqa plot file handling and documentation - Sean Morrison
|
||||
* improved rt usage reporting with categorized options - Sean Morrison
|
||||
* removed rt -f framerate option for animating shaders - Sean Morrison
|
||||
* removed "pixd" support: rt -d option and pixdsplit - Sean Morrison
|
||||
* fixed fbserv timeout errors on some BSD platforms - Cezar Elnazli
|
||||
* fixed rtcheck bug handling reversed overlap pairs - Saran Narayan
|
||||
* new workflow GUI for detecting and fixing geometry overlap errors
|
||||
- Sean Morrison, Nick Reed, Saran Narayan
|
||||
* fixed gqa printing wrong grid size on no overlaps - Saran Narayan
|
||||
* fixed pix-png creating corrupt PNG files on Windows - Sean Morrison
|
||||
* added "check overlaps" menu option to Archer - Saran Narayan
|
||||
* improved 'idents' command portability - Daniel Ramirez, Cliff Yapp
|
||||
* changed remrt/rtsrv to no longer report overlaps - Sean Morrison
|
||||
* improved GUI of MGED's Overlap Tool - Saran Narayan
|
||||
* fixed geometry directory building bug in remrt/rtsrv - Sean Morrison
|
||||
* fixed gcv problem with full paths on Windows - Cliff Yapp
|
||||
* removed precision limitation in NIRT input parsing - Cliff Yapp
|
||||
* added new example geometry models: chess and die pieces - Jeff Sieu
|
||||
* new 'openid' command for listing available region IDs - Nick Reed
|
||||
* improved triangle mesh error detection for "bot check" command
|
||||
- Nick Reed, Cliff Yapp, Jon Engbert
|
||||
* fixed graphical mode initial page loading in brlman - Cliff Yapp
|
||||
* added gcv import support for 20+ terrain formats - Cliff Yapp
|
||||
* added 'bot_dump' command to MGED - Nick Reed
|
||||
* ported MGED 'screengrab' command to Windows - Nick Reed
|
||||
* removed spectral tracing: libmultispectral & rttherm - Cliff Yapp
|
||||
* sped up raytracing by 10% - Cezar Elnazli
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2017-09-22 Release 7.26.4 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
This is a patch release, primary focused on updates to the build
|
||||
system logic.
|
||||
|
||||
* upgraded libgdiam to version 1.0.3 - Cliff Yapp
|
||||
* fixed MGED bindings behavior for c, A, P, and S chars - Bob Parker
|
||||
* fixed gdiff usage statement - Sean Morrison
|
||||
* removed anim.txt, sun.txt, tube.txt and movie.txt - Cliff Yapp
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2017-06-10 Release 7.26.2 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Among a variety of bugs fixed, the patch corrects a critical error in
|
||||
BoT triangle mesh ray tracing. For improved performance, it also
|
||||
changes the default frame buffer display behavior to fully buffer ray
|
||||
tracing images instead of displaying them incrementally. A variety of
|
||||
MGED commands see improvements too with 'ls' now supporting listing
|
||||
objects by their on-disk size and the 'simulate' command applying
|
||||
forces on objects (e.g., gravity) with greater ease. Not yet
|
||||
complete, there is a new interface being developed for resolving
|
||||
overlaps more efficiently, currently under development and usability
|
||||
testing with select users. Lastly, a number of dependencies were
|
||||
upgraded, including Tcl/Tk, in order to patch security vulnerabilities
|
||||
and address portability issues.
|
||||
|
||||
* upgraded Tcl/Tk from 8.5.9 to 8.5.19 - Sean Morrison
|
||||
* fixed background color setting in MGED - Cliff Yapp
|
||||
* upgraded libpng to version 1.6.29 - Cliff Yapp
|
||||
* upgraded zlib to version 1.2.11 - Cliff Yapp
|
||||
* reduced 'shade_inputs' flipped normal reporting - Sean Morrison
|
||||
* numerous 'simulate' command enhancements and fixes - Jon Engbert
|
||||
* fixed rtweight .density file loading on Windows - Cliff Yapp
|
||||
* fixed dsp handling of invalid uniform binary objects - Sean Morrison
|
||||
* fixed brlman problem with viewing benchmark man page - Cliff Yapp
|
||||
* fixed name of dbfind man page (was listed as 'find') - Cliff Yapp
|
||||
* added -H option to ls for human readable size reporting - Cliff Yapp
|
||||
* added -S option to ls command for size based sorting - Cliff Yapp
|
||||
* improved 'loadview' command view script handling - Sean Morrison
|
||||
* fixed TIE raytracing for zero thickness BoTs - Cliff Yapp
|
||||
* added Wavefront OBJ File->Open GUI support in Archer - Cliff Yapp
|
||||
* fixed attr show error printing large attribute values - Cliff Yapp
|
||||
* fixed rt support for lights created prior to rel 6.0 - Sean Morrison
|
||||
* fixed infinite loop bug in when using shadow lights - Sean Morrison
|
||||
* removed man pages: erase_all, export_body, vrmgr, dall - Cliff Yapp
|
||||
* fixed MGED 'c' command crash when run with bad arguments - Nick Reed
|
||||
* added manual pages for the 'brlman' and 'man' commands - Cliff Yapp
|
||||
* improved gdiff default grid spacing and tolerancing - Cliff Yapp
|
||||
* updated brlman to support browsing all page categories - Cliff Yapp
|
||||
* added support for .rtwizardrc configuration file - Cliff Yapp
|
||||
* renamed MGED gdiff grid spacing -t option to -g - Cliff Yapp
|
||||
* updated MGED gdiff default drawing options to -l -r - Cliff Yapp
|
||||
* removed MGED gdiff -R option, now default behavior - Cliff Yapp
|
||||
* replaced obsolete 'g_diff' manual page with 'gdiff' - Cliff Yapp
|
||||
* improved 'keep' error message when file is not created - Cliff Yapp
|
||||
* improved rtwizard window sizing and "RtWizard" titling - Cliff Yapp
|
||||
* brep command attaches .brep suffix instead of _brep - Sean Morrison
|
||||
* changed ogl & wgl framebuffer delayed write behavior - Sean Morrison
|
||||
* upgraded freetype to version 2.6.5 - Cliff Yapp
|
||||
* fix rtedge foreground/background color options - Jon Engbert
|
||||
* support rt -C colors specified as 0-255 or 0.0-1.0 - Jon Engbert
|
||||
* fixed xpush bug leaving stray top-level objects - Nick Reed
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2016-08-08 Release 7.26.0 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
This major release of BRL-CAD culminates several years of development
|
||||
effort to provide robust explicit boundary representation (BREP)
|
||||
Non-uniform Rational Basis Spline (NURBS) import and ray tracing
|
||||
analysis support. Compared to previous polygonal mesh (BoT) methods,
|
||||
NURBS offer superior interoperability with other CAD systems, faithful
|
||||
shape-preserving import, and significantly reduced model sizes. NURBS
|
||||
may be imported from the ISO STEP (AP203) and Rhino 3DM file formats,
|
||||
both with improved hierarchy preservation and entity support.
|
||||
|
||||
Unprecedented in BRL-CAD's history, this release initiates steps to
|
||||
significantly reduce complexity and improve usability. Many features
|
||||
are being consolidated, reorganized, and removed via BRL-CAD's
|
||||
deprecation process. There are widespread documentation system
|
||||
enhancements including new manual pages, improved command usage,
|
||||
better help facilities, and more.
|
||||
|
||||
This release introduces the 'gcv' and 'icv' tools for geometry and
|
||||
image conversion respectively. These plugin-architecture tools are
|
||||
intended to eventually consolidate and replace all of BRL-CAD's
|
||||
conversion and processing functionality into an easy universal
|
||||
interface for users and application developers. GCV currently
|
||||
supports import and export of STL, 3DM, OBJ, VRML, and FASTGEN
|
||||
geometry as well as mesh decimation, facetization, and solidity
|
||||
testing. The new FASTGEN exporter implements extensive compatibility
|
||||
feature mapping for round-trip geometry conversion.
|
||||
|
||||
Ray tracing performance on Windows is vastly improved on symmetric
|
||||
multiprocessing (SMP) multicore and multiple CPU systems. Implemented
|
||||
as 'datum' objects, BRL-CAD provides new modeling support for
|
||||
reference points, lines (axes), and planes. Major features still
|
||||
under experimental development include NURBS Boolean evaluation, a new
|
||||
marching cubes method for polygonal mesh export, rigging joints for
|
||||
constrained geometry articulation, and an OpenCL-accelerated high
|
||||
performance ray tracing pipeline.
|
||||
|
||||
* mass-deprecation of 121 command-line utilities - BRL-CAD Developers
|
||||
* fixed bad args crash in metaball 'in' command - Cliff Yapp
|
||||
* added manual page for lt comb child listing command - Cliff Yapp
|
||||
* added lt -c option for specifying separation character - Bob Parker
|
||||
* improved hierarchy preservation in 3dm-g importer - Jon Engbert
|
||||
* fixed upside down 'screengrab' images on some platforms - Nick Reed
|
||||
* updated wireframe drawing to respect primitive colors - Cliff Yapp
|
||||
* updated pixdiff & pixcmp to only compare same sizes - Cliff Yapp
|
||||
* fixed running archer from read-only filesystems - Cliff Yapp
|
||||
* fixed patch-g tool and E command infinite loop bug - Sean Morrison
|
||||
* improved NMG ray tracing fault tolerance - Sean Morrison
|
||||
* added 3dm-g support for layers and names - Keith Bowman
|
||||
* fixed color/shader preservation issue with 3dm-g importer - Jon Engbert
|
||||
* added 3dm-g support for mesh objects - Jon Engbert
|
||||
* added csg implicit hierarchy conversion to brep command - Cliff Yapp
|
||||
* fixed crash in clone when told to make zero copies - Cliff Yapp
|
||||
* fixed crash in search when using -above option - Cliff Yapp
|
||||
* extended nirt to list current and available formats - Sean Morrison
|
||||
* fixed NURBS wireframe drawing crash - Cliff Yapp
|
||||
* fixed firing of single rays using the rtshot tool - Sean Morrision
|
||||
* removed pixread.sh, pixwrite.sh; obsolete hardware - Sean Morrison
|
||||
* removed cray.sh and sgisnap.sh; obsolete hardware - Sean Morrison
|
||||
* removed cadbug.sh - use sourceforge tracker - Sean Morrison
|
||||
* removed any-png.sh - use pix tools - Sean Morrison
|
||||
* removed librtserver interface - Cliff Yapp
|
||||
* removed MGED per_line command - Sean Morrison
|
||||
* updated MGED tops command: default to -g -u behavior- Sean Morrison
|
||||
* removed MGED -n option; use -c instead - Sean Morrison
|
||||
* removed MGED commands pl, pov and polybinout - Sean Morrison
|
||||
* removed UtahRLE image tools - Cliff Yapp
|
||||
* improved rcodes command feedback in the no changes case - Cliff Yapp
|
||||
* added brlman -S option to specify man page section - Cliff Yapp
|
||||
* modified rtg3 to avoid outputting excessive LOS - Nick Gerstner
|
||||
* extended burst and rtg3 to output 5 digit ID numbers - Nick Gerstner
|
||||
* improved draw command manual page documenation - Cliff Yapp
|
||||
* added lc -m option to report multi-material/los regions - Cliff Yapp
|
||||
* added new 'icv' image conversion tool w/ pix, bw, dpix, png, ppm
|
||||
- Mohit Daga, Cliff Yapp, Sean Morrison, Erik Greenwald
|
||||
* ported 'burst' tool (batch mode only) to Windows - Cliff Yapp
|
||||
* removed mged pl command, use plot command instead - Sean Morrison
|
||||
* improved datum wireframes (yellow) and fixed arrowheads - Cliff Yapp
|
||||
* added initial manual page for 'burst' ray dispatch tool - Cliff Yapp
|
||||
* improved wireframe display list performance - Keith Bowman
|
||||
* added draw -S for simplied wireframes, no subtractions - Cliff Yapp
|
||||
* added draw -L# to draw bounding boxes for large objects - Cliff Yapp
|
||||
* added 3dm-g instance reference and definition import - Jon Engbert
|
||||
* minor rtwizard graphical user interface reorganization - Cliff Yapp
|
||||
* fixed rtwizard edge and ghosted image bug on Windows - Bob Parker
|
||||
* ported 'brlman' manual page viewer with GUI to Windows - Cliff Yapp
|
||||
* added gdiff -h help command-line option - Cliff Yapp
|
||||
* added facetize -m marching cubes option - Erik Greenwald
|
||||
* removed -I interactive option from rt/rtedge/remrt - Sean Morrison
|
||||
* improved pix-bw intensity averaging to closest integer - Cliff Yapp
|
||||
* removed pix-bw3 & bw3-pix tools, see pix-bw & bw-pix - Cliff Yapp
|
||||
* fixed pix-ppm to write out all image data - Sean Morrision
|
||||
* added libnetpbm for ppm image format support in icv - Cliff Yapp
|
||||
* added new algorithm to bot_decimate (via -f option) - Jon Engbert
|
||||
* fixed benchmark bug running from paths with spaces - Sean Morrison
|
||||
* fixed adjust command crash when working with BoTs - Daniel Roßberg
|
||||
* removed fb-orle, orle-fb, orle-pix, and pix-orle tools - Cliff Yapp
|
||||
* removed support for RLE v1 and v2 ('orle') image format - Cliff Yapp
|
||||
* fixed datum type 'in' command unit conversion bug - Cliff Yapp
|
||||
* fixed rpatch / patch-g line handling on Windows - Daniel Roßberg
|
||||
* added 'arb8' surface area value to analyze command - Kalpit Thakkar
|
||||
* added 'part' centroid reporting to analyze command - Brad Hollister
|
||||
* added new pixcrop utility for cropping pix images - Carl Moore
|
||||
* preliminary OpenCL-accelerated coherent ray tracing pipeline
|
||||
- Jon Engbert, Vasco Costa
|
||||
* improved point cloud plot visualization - Sean Morrison
|
||||
* fixed program freezing bug in MGED grouper command - Bob Parker
|
||||
* added 'rhc' reporting to analyze command - Kalpit Thakkar
|
||||
* improved command option and manual page consistency - Carl Moore
|
||||
* added prefatory FASTGEN4 geometry export support - Jon Engbert
|
||||
* added FASTGEN4 illegal thickness CCONE1 entity import - Cliff Yapp
|
||||
* improved help message for 'tire' command - Cliff Yapp, Carl Moore
|
||||
* improved option parsing and output options for gencolor - Carl Moore
|
||||
* fixed saveview usage help string and running from archer - Nick Reed
|
||||
* fixed and improved killtree man page - Nick Reed
|
||||
* fixed composition bugs in pixmatte and pixmerge - Carl Moore
|
||||
* fixed definition of "light year" in unit conversions - Cliff Yapp
|
||||
* fixed duplicate name errors in dbconcat - Daniel Roßberg
|
||||
* modernized documents and improved infrastructure - Hitesh Sofat
|
||||
* added mirroring support for hrt primitive objects - Isaac Kamga
|
||||
* added manual page documenting the STEP geometry format - Cliff Yapp
|
||||
* ported the mged Overlap Tool to Windows - Sean Morrison
|
||||
* improved NURBS prep performance for UV-remapped surfaces - Nick Reed
|
||||
* fixed dbconcat -c crash when color table does not exist - Nick Reed
|
||||
* swapped meanings of search's -above/-below options - Sean Morrison
|
||||
* upgraded freetype to version 2.5.5 - Cliff Yapp
|
||||
* updated libregex to apply a fix for CVE-2015-2305 - Cliff Yapp
|
||||
* upgraded libpng to version 1.6.20 - Cliff Yapp
|
||||
* added command window option for pasting tree view paths - Nick Reed
|
||||
* improved 'bb' command digits and units output - Keith Bowman
|
||||
* improved robustness of bb command oriented box option - Peter Amidon
|
||||
* added example NURBS B-Rep geometry files from NIST - Cliff Yapp
|
||||
* removed "high resolution" options from all commands - Carl Moore
|
||||
* improved performance of archer loading large BoT models - Nick Reed
|
||||
* added evaluated shaded drawing preference mode and menu - Nick Reed
|
||||
* fixed .mgedrc creation corruption with closed database - Cliff Yapp
|
||||
* extensive improvements to NURBS Boolean evaluation - Nick Reed
|
||||
* added 'bot chull' for creating convex hull envelopes - Cliff Yapp
|
||||
* new manual page for the g-voxel exporter - Mandarj
|
||||
* improved performance of lc command - Peter Amidon
|
||||
* updated manual page for MGED's brep command - Peter Amidon
|
||||
* new manual page for the g-dot exporter - Shardul Chiplunkar
|
||||
* added sketch centroid support the analyze command - Peter Amidon
|
||||
* new Think. Invent. Create. splash screen for archer - Marc Tannous
|
||||
* improved pix-bw to support dual output streams - Carl Moore
|
||||
* added list option to attr command - Cliff Yapp
|
||||
* added globbing support to attr command - Cliff Yapp
|
||||
* added lc -0 option to return objects in tree order - Sean Morrison
|
||||
* fixed crash in iges-g importer due to parsing error - Ștefan Mirea
|
||||
* fixed corrupt output generated by iges-g importer - Ștefan Mirea
|
||||
* gqa respects LIBRT_BOT_MINTIE environment variable - Ștefan Mirea
|
||||
* improved behavior of mged's draw command - Ștefan Mirea
|
||||
* fixed handling of extra whitespace in nirt commands - Ștefan Mirea
|
||||
* renamed 'make_bb' mged command name to 'bb' - Cliff Yapp
|
||||
* added g-ply exporter for Stanford PLY geometry format - Rishub Jain
|
||||
* added ply-g importer for Stanford PLY geometry format - Rishub Jain
|
||||
* improved rtedge help option output - Carl Moore
|
||||
* fixed texture mapping crash with bad image dimensions - Ștefan Mirea
|
||||
* fixed g2asc and asc2g handling of dsp primitive - Cliff Yapp
|
||||
* rewrote gdiff with improved output & reporting options - Cliff Yapp
|
||||
* fixed pix-ps -S -W -N output size options being ignored - Carl Moore
|
||||
* fixed crash exporting mixed mode merged BoT meshes - Sean Morrison
|
||||
* fixed submodel primitive crash - Cliff Yapp, Sean Morrison
|
||||
* added fbclear command to archer - Bob Parker
|
||||
* improved rtwizard command-line mode manual page docs - Cliff Yapp
|
||||
* support non-.g file import in Archer's file open dialog - Cliff Yapp
|
||||
* added brep support to g2asc and asc2g - Cliff Yapp
|
||||
* fixed a CPU affinity locking bug on Linux platforms - Sean Morrison
|
||||
* renamed g_diff/g_lint/g_qa/g_transfer sans underscore - Cliff Yapp
|
||||
* removed mged -n option, use mged -c for classic mode - Cliff Yapp
|
||||
* fixed mged -c crash running view-modifying commands - Sean Morrison
|
||||
* improved kill, killall, killtree documentation - Sean Morrison
|
||||
* added killtree -f force flag to kill unconditionally - Sean Morrison
|
||||
@@ -456,43 +31,22 @@ performance ray tracing pipeline.
|
||||
- Wu Jianbang, Nick Reed, Cliff Yapp
|
||||
* improved step-g assembly hierarchy import support - Keith Bowman
|
||||
* fixed rtweight when using the -G grid spacing option - Sean Morrison
|
||||
* fixed memory leaks in a number of pix utilities - Cezar Elnazli
|
||||
* fixed memory leaks in a number of pix utilities - Cezar Elnazi
|
||||
* improved NURBS ray tracing & tessellation robustness - Keith Bowman
|
||||
* improved step-g NURBS geometry import robustness - Keith Bowman
|
||||
* added -f vertex fuse option to obj-g importer - Jon Engbert
|
||||
* added -v verbose output option to mged 'search' command - Cliff Yapp
|
||||
* added -v verbose output option to MGED 'search' command - Cliff Yapp
|
||||
* fixed g_lint and pixcount red-black tree memory leaks - Tom Browder
|
||||
* added conversion time reporting to step-g importer - Keith Bowman
|
||||
* fixed crash of extrude with special case bezier curves - huskmate13
|
||||
* improved performance of 'terrain' & numerous shaders - Sean Morrison
|
||||
* new manual pages for rtexample and brep_simple - Shardul Chiplunkar
|
||||
* added key binding to reopen/focus mged command window - Emory Huff
|
||||
* added menu option to restore mged command window - Cezar Elnazli
|
||||
* improved DocBook documentation output formatting
|
||||
- David Wood, Yatharth Agarwal
|
||||
* added 'search' -params option for geometric parameters - Cliff Yapp
|
||||
* search command now recognizes hyp and metaball types - Cliff Yapp
|
||||
* improved spec formatting, added v5 timestamp proposal - Tom Browder
|
||||
* improved search command documentation examples - Cliff Yapp
|
||||
* improved archer interface's behavior on start-up - Nick Reed
|
||||
* added -depth option to mged 'search' command - Cliff Yapp
|
||||
* initial support for rigging joints and constrained articulation
|
||||
- Nick Reed, Keith Bowman, Cliff Yapp, Sean Morrison
|
||||
* added -depth option to MGED 'search' command - Cliff Yapp
|
||||
* improved 'search' with 'flat' search path modifier - Cliff Yapp
|
||||
* improved 'search' with above/equal/below depth limits - Cliff Yapp
|
||||
* improved support for sub-millimeter (tiny) meshes - Keith Bowman
|
||||
* added comb -S option to stop when object already exists - Cliff Yapp
|
||||
* improved comb command documentation with many examples - Cliff Yapp
|
||||
* implemented new 'hrt' heart-shaped primitive object - Isaac Kamga
|
||||
* added support for multicore / SMP ray tracing on Windows
|
||||
- Adrián Calle, Arjun Govindjee, Daniel Roßberg, Sean Morrison
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2015-08-31 Release 7.24.4 ---
|
||||
----------------------------------------------------------------------
|
||||
|
||||
* initial support for datum points, lines, and planes - Sean Morrison
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
@@ -522,7 +76,7 @@ improved geometry interchange with other CAD systems.
|
||||
* improved pipe ray tracing grazing hit behavior - Keith Bowman
|
||||
* upgraded libpng, now at version 1.6.10 - Erik Greenwald, Cliff Yapp
|
||||
* improved solid NURBS geometry ray tracing behavior - Keith Bowman
|
||||
* fix z-clipping bug in mged's X display manager - Cliff Yapp
|
||||
* fix z-clipping bug in MGED's X display manager - Cliff Yapp
|
||||
* added attribute sorting option to the 'attr' command - Tom Browder
|
||||
* changed 'bwfilter' tool offset option from -o to -O - Mohit Daga
|
||||
* gattributes section 5 man page renamed to attributes - Tom Browder
|
||||
@@ -761,7 +315,7 @@ received corrections and improvements. The introductory article
|
||||
* "About BRL-CAD" article translation to Armenian - Karen Mgebrova
|
||||
* "About BRL-CAD" article translation to Italian
|
||||
- Unknown Contributor, Tom Browder
|
||||
* improved 'adjust' command rgb/color attribute handling - Cliff Yapp
|
||||
* improved handling of rgb/color attributes by adjust cmd - Cliff Yapp
|
||||
* added initial support for step-g import of assemblies - Keith Bowman
|
||||
* added a basic SWIG spec file - Erik Greenwald
|
||||
* fixed referenced object highlighting in archer treeview - Bob Parker
|
||||
@@ -792,7 +346,7 @@ received corrections and improvements. The introductory article
|
||||
* improved tessellation of pipe bends for conversion - Richard Weiss
|
||||
* fixed keypoint vertex bug when editing extrude objects - Nick Reed
|
||||
* fixed eto error converting hyp objects with asc2g tool - Nick Reed
|
||||
* fixed mged bug processing edcodes command arguments - Bob Parker
|
||||
# fixed mged bug processing edcodes command arguments - Bob Parker
|
||||
* various improvements to NMG polygonal mesh processing robustness
|
||||
- Nick Reed, Sean Morrison, Richard Weiss
|
||||
* improved bad face handling within the obj-g importer - Nick Reed
|
||||
@@ -1503,7 +1057,7 @@ invalid geometry is now more robust.
|
||||
* added new -c character option to the loop command - Dawn Thomas
|
||||
* tire now checks for files instead of overwriting - Cliff Yapp
|
||||
* add new nirt formatting options, -L listing option - C. Yapp
|
||||
* fixed nirt 'dest' command file name string handling - Cliff Yapp
|
||||
* fixed nirt's dest cmd's handling of file name string - Cliff Yapp
|
||||
* modified mged nirt command to include air in results - Bob Parker
|
||||
|
||||
|
||||
@@ -2095,7 +1649,7 @@ The rtarea command was added to MGED as well, along with rtweight.
|
||||
* added a -noleaf option to the mged pathlist command - Bob Parker
|
||||
* fixed potential infinite loop bug in BoT primitive - Bob Parker
|
||||
* no longer install tclsh/wish, use btclsh/bwish - Sean Morrison
|
||||
* added 'bot_merge' mged command (combine 2 bots into 1) - Lee Butler
|
||||
* added bot_merge mged cmd (combine 2 bots into 1) - Lee Butler
|
||||
|
||||
----------------------------------------------------------------------
|
||||
--- 2005-06-07 Release 7.2.6 ---
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
BRL-CAD
|
||||
Release 7.32.0
|
||||
Release 7.26.0
|
||||
http://brlcad.org/
|
||||
|
||||
BRL-CAD is a powerful cross-platform open source combinatorial
|
||||
@@ -31,7 +31,7 @@ TABLE OF CONTENTS
|
||||
|
||||
|
||||
GETTING STARTED
|
||||
---------------
|
||||
----------------
|
||||
|
||||
This README file exists only to provide you a brief roadmap to the
|
||||
contents of the BRL-CAD distribution.
|
||||
@@ -69,20 +69,34 @@ contact one of the BRL-CAD developers.
|
||||
COMPILE AND INSTALL
|
||||
-------------------
|
||||
|
||||
In order to compile and install BRL-CAD from a source distribution,
|
||||
the CMake ( http://www.cmake.org ) configuration tool is requird.
|
||||
See the INSTALL file for details on configuring, compiling, and
|
||||
installing BRL-CAD. In order to compile and install BRL-CAD from a
|
||||
source distribution, the build tool CMake is required (minimum version
|
||||
currently required is 2.8.4) - see the website at http://www.cmake.org
|
||||
for source and binary installers. CMake is also available in many
|
||||
Linux and *BSD distributions.
|
||||
|
||||
The following steps should result in a successful install:
|
||||
Once CMake is installed, the following steps may be taken for a full
|
||||
default install (starting with a source tarball):
|
||||
|
||||
tar -xvzf brlcad-VERSION.tar.gz
|
||||
mkdir brlcad-VERSION/build
|
||||
cd brlcad-VERSION/build
|
||||
cmake .. -DBRLCAD_ENABLE_STRICT=OFF -DCMAKE_BUILD_TYPE=Release
|
||||
make -j4
|
||||
tar -xvzf brlcad-X.Y.Z.tar.gz
|
||||
mkdir brlcad-build
|
||||
cd brlcad-build
|
||||
cmake ../brlcad-X.Y.Z
|
||||
make
|
||||
make install
|
||||
|
||||
See the INSTALL file for explanation of the various configuration
|
||||
options available when building BRL-CAD.
|
||||
where "X.Y.Z" is the version number of BRL-CAD. For those who prefer
|
||||
a curses interface, substitute ccmake for cmake above. If the graphical
|
||||
interface available from CMake is installed cmake-gui may be
|
||||
substituted for cmake. These interfaces will display the various
|
||||
configuration options available when building BRL-CAD, or the options
|
||||
may be set directly via command line -D options.
|
||||
The configure wrapper script may be substituted for cmake in the above
|
||||
steps for a more autotools-like configuration experience.
|
||||
|
||||
Users on multiprocessor systems will be able to speed up their builds
|
||||
by passing the -j option to make (e.g. make -j4, assuming GNU make).
|
||||
|
||||
Once the build completes and assuming you have proper filesystem
|
||||
permissions, you should be able to begin the installation by running
|
||||
|
||||
+29
-53
@@ -2,69 +2,45 @@ add_subdirectory(ref)
|
||||
|
||||
include_directories(${BU_INCLUDE_DIRS})
|
||||
|
||||
add_definitions(-DCONSOLE)
|
||||
add_definitions(
|
||||
-DHAVE_CONFIG_H
|
||||
-DBRLCADBUILD
|
||||
-DCONSOLE
|
||||
)
|
||||
|
||||
BRLCAD_ADDEXEC(pixcmp pixcmp.c libbu)
|
||||
set(BARK_SOURCES
|
||||
benchmark.c
|
||||
compute.c
|
||||
run.c
|
||||
clean.c
|
||||
)
|
||||
BRLCAD_ADDEXEC(bark "${BARK_SOURCES}" libbu NO_STRICT NO_INSTALL)
|
||||
|
||||
configure_file(run.sh "${CMAKE_CURRENT_BINARY_DIR}/benchmark" COPYONLY)
|
||||
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/benchmark" DESTINATION ${BIN_DIR})
|
||||
configure_file(run.sh ${CMAKE_CURRENT_BINARY_DIR}/benchmark COPYONLY)
|
||||
install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/benchmark DESTINATION ${BIN_DIR})
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
string(TOUPPER "${CFG_TYPE}" CFG_TYPE_UPPER)
|
||||
configure_file(run.sh ${CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}}/bin/benchmark COPYONLY)
|
||||
endforeach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
string(TOUPPER "${CFG_TYPE}" CFG_TYPE_UPPER)
|
||||
configure_file(run.sh ${CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}}/bin/benchmark COPYONLY)
|
||||
endforeach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
else(CMAKE_CONFIGURATION_TYPES)
|
||||
configure_file(run.sh ${CMAKE_BINARY_DIR}/bin/benchmark COPYONLY)
|
||||
endif(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
file(WRITE "${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake" "message(\"---\")\n")
|
||||
file(APPEND "${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake" "message(\"Run 'make benchmark-clean' in the bench directory to delete the logic\")\n")
|
||||
file(APPEND "${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake" "message(\"and image files generated during the benchmark analysis.\")\n")
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake "message(\"---\")\n")
|
||||
file(APPEND ${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake "message(\"Run 'make benchmark-clean' in the bench directory to delete the logic\")\n")
|
||||
file(APPEND ${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake "message(\"and image files generated during the benchmark analysis.\")\n")
|
||||
|
||||
CMAKEFILES(
|
||||
CMakeLists.txt
|
||||
lgt.sh
|
||||
run.sh
|
||||
try.sh
|
||||
viewdiff.sh
|
||||
)
|
||||
CMAKEFILES(lgt.sh run.sh try.sh viewdiff.sh)
|
||||
|
||||
if(SH_EXEC AND TARGET m35.g)
|
||||
# CTest enabled short run of the benchmark suite
|
||||
add_test(NAME benchmark COMMAND ${SH_EXEC} "${CMAKE_BINARY_DIR}/bin/benchmark" run TIMEFRAME=1)
|
||||
set_tests_properties(benchmark PROPERTIES LABELS "Benchmark")
|
||||
add_custom_target(benchmark-check
|
||||
COMMAND ${CMAKE_CTEST_COMMAND} -L Benchmark --output-on-failure
|
||||
DEPENDS rt pixcmp BENCHMARK_PIX_cp PIX_LOG_cp
|
||||
)
|
||||
add_dependencies(benchmark-check bldg391.g m35.g moss.g sphflake.g star.g world.g)
|
||||
if(TARGET check)
|
||||
add_dependencies(check benchmark-check)
|
||||
endif(TARGET check)
|
||||
|
||||
# Full run of the benchmark suite
|
||||
add_custom_target(benchmark
|
||||
COMMAND ${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark run
|
||||
COMMAND ${CMAKE_COMMAND} -P "${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake"
|
||||
DEPENDS rt pixcmp BENCHMARK_PIX_cp PIX_LOG_cp
|
||||
)
|
||||
add_dependencies(benchmark bldg391.g m35.g moss.g sphflake.g star.g world.g)
|
||||
|
||||
# benchmark cleanup targets
|
||||
add_custom_target(benchmark-clean
|
||||
${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clean
|
||||
)
|
||||
add_custom_target(benchmark-clobber
|
||||
${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clobber
|
||||
)
|
||||
endif(SH_EXEC AND TARGET m35.g)
|
||||
if(SH_EXEC)
|
||||
add_custom_target(benchmark
|
||||
COMMAND ${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark run
|
||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_BINARY_DIR}/CMakeTmp/benchmsg.cmake
|
||||
DEPENDS rt pixcmp BENCHMARK_PIX_cp PIX_LOG_cp
|
||||
)
|
||||
add_dependencies(benchmark bldg391.g m35.g moss.g sphflake.g star.g world.g)
|
||||
add_custom_target(benchmark-clean
|
||||
${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clean
|
||||
)
|
||||
add_custom_target(benchmark-clobber
|
||||
${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clobber
|
||||
)
|
||||
endif(SH_EXEC)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
|
||||
@@ -1,946 +0,0 @@
|
||||
/* B E N C H M A R K . C
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2011-2020 United States Government as represented by
|
||||
* the U.S. Army Research Laboratory.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
*
|
||||
* 3. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/** @file benchmark.c
|
||||
*
|
||||
* This is the BRL-CAD Benchmark.
|
||||
*
|
||||
* The benchmark suite will test the performance of a system by
|
||||
* iteratively rendering several well-known datasets into 512x512
|
||||
* images where performance metrics are documented and fairly well
|
||||
* understood. The local machine's performance is compared to the
|
||||
* base system (called VGR) and a numeric "VGR" multiplier of
|
||||
* performance is computed. This number is a simplified metric from
|
||||
* which one may qualitatively compare cpu and cache performance,
|
||||
* versions of BRL-CAD, and different compiler characteristics.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <sys/stat.h>
|
||||
/* TODO - fall back on https://github.com/sandsmark/winuname for Windows? */
|
||||
#ifdef HAVE_SYS_UTSNAME_H
|
||||
# include <sys/utsname.h>
|
||||
#endif
|
||||
|
||||
#include "bio.h"
|
||||
|
||||
#include "bu.h"
|
||||
|
||||
|
||||
/* TODO: !!! probably will need variants of these */
|
||||
int bu_exec(const char *program, void *data, struct bu_vls *out, struct bu_vls *err) {if (!program || !out || !err || !data) return 1; return 0;}
|
||||
int bu_grep(const char *pattern, const char *input, int(*callback)(const char *line, void *data), void *data) {if (!pattern || !input || !data) return 1; if (!callback) bu_log("TODO: need default callback!!!\n"); return 0;}
|
||||
int bu_file_glob(const char *pattern, char **paths) {if (!pattern || !paths) return 1; return 0;}
|
||||
char *format_elapsed(double elapsed) {if (elapsed > 0) return "0 1 2"; return "-0 -1 -2";}
|
||||
int perf(const struct bu_vls *vp, const char *items, const char *args[]) {if (!vp || !items || !args) return -1; return 0;}
|
||||
double calculate_vgr(const struct bu_vls *summary) {if (!summary) return -0.0; return 0.0;}
|
||||
extern int bench(const char *cmd);
|
||||
|
||||
|
||||
/**
|
||||
* this routine writes the provided argument(s) to a log file as well
|
||||
* as echoing them to stdout if we're not in quiet mode.
|
||||
*/
|
||||
static void
|
||||
record(const char *fmt, ...)
|
||||
{
|
||||
struct bu_vls str = BU_VLS_INIT_ZERO;
|
||||
va_list ap;
|
||||
|
||||
const char *LOGFILE = getenv("LOGFILE");
|
||||
const char *QUIET = getenv("QUIET");
|
||||
|
||||
if (!fmt) {
|
||||
return;
|
||||
}
|
||||
|
||||
va_start(ap, fmt);
|
||||
bu_vls_vprintf(&str, fmt, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (!BU_STR_EQUAL(LOGFILE, "")) {
|
||||
FILE *fp = fopen(LOGFILE, "a");
|
||||
fprintf(fp, "%s", bu_vls_addr(&str));
|
||||
}
|
||||
if (bu_str_false(QUIET)) {
|
||||
bu_log("%s", bu_vls_addr(&str));
|
||||
}
|
||||
|
||||
bu_vls_free(&str);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
display(const char *fmt, ...)
|
||||
{
|
||||
struct bu_vls str = BU_VLS_INIT_ZERO;
|
||||
va_list ap;
|
||||
|
||||
if (!fmt) {
|
||||
return;
|
||||
}
|
||||
|
||||
va_start(ap, fmt);
|
||||
bu_vls_vprintf(&str, fmt, ap);
|
||||
va_end(ap);
|
||||
bu_log("%s", bu_vls_cstr(&str));
|
||||
|
||||
bu_vls_free(&str);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
sink(const char *fmt, ...)
|
||||
{
|
||||
if (!fmt) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/************************
|
||||
* search for resources *
|
||||
************************/
|
||||
typedef enum {
|
||||
executable=0x1,
|
||||
file=0x2,
|
||||
directory=0x4,
|
||||
script=0x8
|
||||
} look_for_type_t;
|
||||
|
||||
#define TYPE2STR(_t) \
|
||||
((_t) == executable) ? "executable" : \
|
||||
((_t) == file) ? "file" : \
|
||||
((_t) == directory) ? "directory" : \
|
||||
((_t) == script) ? "script" : \
|
||||
"unknown"
|
||||
|
||||
static void
|
||||
look_for(void (*verbose)(const char *, ...), look_for_type_t type, const char *label, const char *var, const char*paths[])
|
||||
{
|
||||
char *val;
|
||||
|
||||
/* utility function to search for a certain filesystem object in a
|
||||
* list of paths.
|
||||
*/
|
||||
|
||||
if (!var || !paths) {
|
||||
return;
|
||||
}
|
||||
if (!verbose) {
|
||||
verbose = sink;
|
||||
}
|
||||
|
||||
verbose("Looking for %s\n", label);
|
||||
|
||||
/* get the value of the variable */
|
||||
val = getenv(var);
|
||||
|
||||
if (val && (strlen(val) > 0)) {
|
||||
if (label) {
|
||||
verbose("...using %s from %s variable setting\n", val, var);
|
||||
}
|
||||
} else {
|
||||
while (paths && *paths) {
|
||||
int failed=0;
|
||||
|
||||
switch (type) {
|
||||
default:
|
||||
case directory:
|
||||
/* should work without read bit */
|
||||
if (!bu_file_directory(*paths)) {
|
||||
failed=1;
|
||||
}
|
||||
/* fall through */
|
||||
case executable:
|
||||
case script:
|
||||
if (!bu_file_executable(*paths)) {
|
||||
failed=1;
|
||||
}
|
||||
break;
|
||||
case file:
|
||||
if (!bu_file_exists(*paths, NULL)) {
|
||||
failed=1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (!failed) {
|
||||
verbose("...found %s %s\n", TYPE2STR(type), *paths);
|
||||
bu_setenv(var, *paths, 1);
|
||||
break;
|
||||
}
|
||||
|
||||
paths++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
set_if_unset(void (*echo)(const char *, ...), void (*verbose)(const char *, ...), const char *var, const char *val)
|
||||
{
|
||||
const char *setval = getenv(var);
|
||||
|
||||
if (!var || !val) {
|
||||
return;
|
||||
}
|
||||
if (!echo) {
|
||||
echo = sink;
|
||||
}
|
||||
if (!verbose) {
|
||||
verbose = sink;
|
||||
}
|
||||
|
||||
if (!setval || (strlen(setval) == 0)) {
|
||||
verbose("%s=\"%s\"\n", var, val);
|
||||
bu_setenv(var, val, 1);
|
||||
}
|
||||
|
||||
setval = getenv(var);
|
||||
echo("Using [%s] for %s\n", setval, var);
|
||||
}
|
||||
|
||||
|
||||
/* callback to bu_grep() */
|
||||
static int
|
||||
stashline(const char *line, void *data)
|
||||
{
|
||||
struct bu_vls *vls = (struct bu_vls *)data;
|
||||
|
||||
BU_CK_VLS(vls);
|
||||
|
||||
bu_vls_printf(vls, "%s\n", line);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(int ac, char *av[])
|
||||
{
|
||||
int arg;
|
||||
struct bu_vls rtargs = BU_VLS_INIT_ZERO;
|
||||
struct bu_vls str = BU_VLS_INIT_ZERO;
|
||||
|
||||
const char *RT = NULL;
|
||||
const char *DB = NULL;
|
||||
const char *PIX = NULL;
|
||||
const char *LOG = NULL;
|
||||
const char *CMP = NULL;
|
||||
const char *ELP = NULL;
|
||||
|
||||
char root[MAXPATHLEN] = {0};
|
||||
char db[MAXPATHLEN] = {0};
|
||||
char pix[MAXPATHLEN] = {0};
|
||||
char thisp[MAXPATHLEN] = {0};
|
||||
char *argv[MAXPATHLEN] = {NULL};
|
||||
struct bu_vls vp = BU_VLS_INIT_ZERO;
|
||||
|
||||
long MAXTIME = 0;
|
||||
long TIMEFRAME = 0;
|
||||
|
||||
int64_t start = 0;
|
||||
int ret = 0;
|
||||
|
||||
void (*verbose_echo)(const char *, ...) = sink;
|
||||
void (*echo)(const char *, ...) = record;
|
||||
|
||||
bu_setprogname(av[0]);
|
||||
|
||||
/* process the argument list for commands */
|
||||
for (arg=1; arg<ac; arg++) {
|
||||
if (BU_STR_EQUAL(av[arg], "clean")) {
|
||||
bu_setenv("CLEAN", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "clobber")) {
|
||||
bu_setenv("CLEAN", "1", 1);
|
||||
bu_setenv("CLOBBER", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "h")) {
|
||||
bu_setenv("HELP", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "help")) {
|
||||
bu_setenv("HELP", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (bu_strncasecmp(av[arg], "instruct", 8)) {
|
||||
bu_setenv("INSTRUCTIONS", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "start")) {
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "quiet")) {
|
||||
bu_setenv("QUIET", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "verbose")) {
|
||||
bu_setenv("VERBOSE", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (BU_STR_EQUAL(av[arg], "run")) {
|
||||
bu_setenv("RUN", "1", 1);
|
||||
continue;
|
||||
}
|
||||
if (strchr(av[arg], '=')) {
|
||||
/* TODO: !!! make sure this still works */
|
||||
char *var = bu_strdup(av[arg]);
|
||||
char *val = strtok(var, "=");
|
||||
if (var && val) {
|
||||
bu_setenv(var, val, 1);
|
||||
}
|
||||
bu_free(var, "strdup av[arg]");
|
||||
continue;
|
||||
}
|
||||
bu_log("WARNING: Passing unknown option [%s] to RT\n", av[arg]);
|
||||
bu_vls_printf(&rtargs, " %s", av[arg]);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* handle help before main processing
|
||||
***/
|
||||
if (bu_str_true(getenv("HELP"))) {
|
||||
bu_log("Usage: %s [command(s)] [OPTION=value] [RT_OPTIONS]\n", av[0]);
|
||||
bu_log("\n");
|
||||
bu_log("Available commands:\n");
|
||||
bu_log(" clean\n");
|
||||
bu_log(" clobber\n");
|
||||
bu_log(" help (this is what you are reading right now)\n");
|
||||
bu_log(" instructions\n");
|
||||
bu_log(" quiet\n");
|
||||
bu_log(" verbose\n");
|
||||
bu_log(" run (this is probably what you want)\n");
|
||||
bu_log("\n");
|
||||
bu_log("Available options:\n");
|
||||
bu_log(" RT=/path/to/rt_binary (e.g., rt)\n");
|
||||
bu_log(" DB=/path/to/reference/geometry (e.g. ../db)\n");
|
||||
bu_log(" PIX=/path/to/reference/images (e.g., ../pix)\n");
|
||||
bu_log(" LOG=/path/to/reference/logs (e.g., ../pix)\n");
|
||||
bu_log(" CMP=/path/to/pixcmp_tool (e.g., pixcmp)\n");
|
||||
bu_log(" ELP=/path/to/time_tool (e.g., elapsed.sh)\n");
|
||||
bu_log(" TIMEFRAME=#seconds (default 32)\n");
|
||||
bu_log(" MAXTIME=#seconds (default 300)\n");
|
||||
bu_log(" DEVIATION=%%deviation (default 3)\n");
|
||||
bu_log(" AVERAGE=#frames (default 3)\n");
|
||||
bu_log("\n");
|
||||
bu_log("Available RT options:\n");
|
||||
bu_log(" -P# (e.g., -P1 to force single CPU)\n");
|
||||
bu_log(" See the 'rt' manpage for additional options\n");
|
||||
bu_log("\n");
|
||||
bu_log("The BRL-CAD Benchmark tests the overall performance of a system\n");
|
||||
bu_log("compared to a stable well-known baseline. The Benchmark calculates a\n");
|
||||
bu_log("figure-of-merit for this system that may be directly compared to other\n");
|
||||
bu_log("Benchmark runs on other system configurations.\n");
|
||||
bu_log("\n");
|
||||
bu_log("BRL-CAD is a powerful cross-platform open source solid modeling system.\n");
|
||||
bu_log("For more information about BRL-CAD, see http://brlcad.org\n");
|
||||
bu_log("\n");
|
||||
bu_log("Run '%s instructions' or see the manpage for additional information.\n", av[0]);
|
||||
bu_exit(1, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* handle instructions before main processing
|
||||
***/
|
||||
if (bu_str_true(getenv("INSTRUCTIONS"))) {
|
||||
bu_log("\n");
|
||||
bu_log("This program runs the BRL-CAD Benchmark. The benchmark suite will\n");
|
||||
bu_log("test the performance of a system by iteratively rendering several\n");
|
||||
bu_log("well-known datasets into 512x512 images where performance metrics are\n");
|
||||
bu_log("documented and fairly well understood. The local machine's\n");
|
||||
bu_log("performance is compared to the base system (called VGR) and a numeric\n");
|
||||
bu_log("\"VGR\" mulitplier of performance is computed. This number is a\n");
|
||||
bu_log("simplified metric from which one may qualitatively compare cpu and\n");
|
||||
bu_log("cache performance, versions of BRL-CAD, and different compiler\n");
|
||||
bu_log("characteristics.\n");
|
||||
bu_log("\n");
|
||||
bu_log("The suite is intended to be run from a source distribution of BRL-CAD\n");
|
||||
bu_log("after the package has been compiled either directly or via a make\n");
|
||||
bu_log("build system target. There are, however, several environment\n");
|
||||
bu_log("variables that will modify how the BRL-CAD benchmark behaves so that\n");
|
||||
bu_log("it may be run in a stand-alone environment:\n");
|
||||
bu_log("\n");
|
||||
bu_log(" RT - the rt binary (e.g. ../src/rt/rt or /usr/brlcad/bin/rt)\n");
|
||||
bu_log(" DB - the directory containing the reference geometry (e.g. ../db)\n");
|
||||
bu_log(" PIX - the directory containing the reference images (e.g. ../pix)\n");
|
||||
bu_log(" LOG - the directory containing the reference logs (e.g. ../pix)\n");
|
||||
bu_log(" CMP - the name of a pixcmp tool (e.g. ./pixcmp or cmp)\n");
|
||||
bu_log(" ELP - the name of an elapsed time tool (e.g. ../sh/elapsed.sh)\n");
|
||||
bu_log(" TIMEFRAME - the minimum number of seconds each trace needs to take\n");
|
||||
bu_log(" MAXTIME - the maximum number of seconds to spend on any test\n");
|
||||
bu_log(" DEVIATION - the minimum sufficient %% deviation from the average\n");
|
||||
bu_log(" AVERAGE - how many frames to average together\n");
|
||||
bu_log(" VERBOSE - turn on extra debug output for testing/development\n");
|
||||
bu_log(" QUIET - turn off all printing output (writes results to summary)\n");
|
||||
bu_log(" INSTRUCTIONS - display detailed instructions\n");
|
||||
bu_log(" RUN - start a benchmark analysis\n");
|
||||
bu_log("\n");
|
||||
bu_log("The TIMEFRAME, MAXTIME, DEVIATION, and AVERAGE options control how the\n");
|
||||
bu_log("benchmark will proceed including how long it should take. Each\n");
|
||||
bu_log("individual benchmark run will consume at least a minimum TIMEFRAME of\n");
|
||||
bu_log("wallclock time so that the results can stabilize. After consuming at\n");
|
||||
bu_log("least the minimum TIMEFRAME, additional frames may be computed until\n");
|
||||
bu_log("the standard deviation from the last AVERAGE count of frames is below\n");
|
||||
bu_log("the specified DEVIATION. When a test is run and it completes in less\n");
|
||||
bu_log("than TIMEFRAME, the raytrace is restarted using double the number of\n");
|
||||
bu_log("rays from the previous run. If the machine is fast enough, the\n");
|
||||
bu_log("benchmark may accelerate the number or rays being fired. These\n");
|
||||
bu_log("additional rays are hypersampled but without any jitter, so it's\n");
|
||||
bu_log("effectively performing a multiplier amount of work over the initial\n");
|
||||
bu_log("frame.\n");
|
||||
bu_log("\n");
|
||||
bu_log("Plese send your BRL-CAD Benchmark results to the developers along with\n");
|
||||
bu_log("detailed system information to <devs@brlcad.org>. Include at least:\n");
|
||||
bu_log("\n");
|
||||
bu_log(" 0) Compiler name and version (e.g. gcc --version)\n");
|
||||
bu_log(" 1) All generated log files (i.e. *.log* after benchmark completes)\n");
|
||||
bu_log(" 2) Anything else you think might be relevant to performance\n");
|
||||
bu_log("\n");
|
||||
bu_log("The manual page has even more information and specific usage examples.\n");
|
||||
bu_log("Run 'brlman benchmark'.\n");
|
||||
bu_log("\n");
|
||||
bu_exit(0, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* handle clean/clobber before main processing
|
||||
***/
|
||||
if (bu_str_true(getenv("CLEAN"))) {
|
||||
size_t i;
|
||||
size_t cnt;
|
||||
size_t num;
|
||||
char cwd[MAXPATHLEN] = {0};
|
||||
const char *tests[] = {"moss", "world", "star", "bldg391", "m35", "sphflake", NULL};
|
||||
char **paths = NULL;
|
||||
int printed = 0;
|
||||
|
||||
bu_log("\n");
|
||||
if (bu_str_true(getenv("CLOBBER"))) {
|
||||
bu_log("About to wipe out all benchmark images and log files in %s\n", bu_getcwd(cwd, MAXPATHLEN));
|
||||
bu_log("Send SIGINT (type ^C) within 5 seconds to abort\n");
|
||||
sleep(5);
|
||||
} else {
|
||||
bu_log("Deleting most benchmark images and log files in %s\n", bu_getcwd(cwd, MAXPATHLEN));
|
||||
bu_log("Running '%s clobber' will remove run logs.\n", av[0]);
|
||||
}
|
||||
bu_log("\n");
|
||||
|
||||
for (i=0; tests[i]; i++) {
|
||||
struct bu_vls pattern_str = BU_VLS_INIT_ZERO;
|
||||
char *pattern[5] = {NULL, NULL, NULL, NULL, NULL};
|
||||
size_t j;
|
||||
|
||||
/* rm -f $i.log $i.pix $i-[0-9]*.log $i-[0-9]*.pix */
|
||||
bu_vls_printf(&pattern_str, "%s.log %s.pix %s-[0-9]*.log %s-[0-9]*.pix", tests[i], tests[i], tests[i], tests[i]);
|
||||
bu_log("rm -f %s\n", bu_vls_cstr(&pattern_str));
|
||||
|
||||
j = bu_argv_from_string(pattern, 4, bu_vls_addr(&pattern_str));
|
||||
while (j > 0) {
|
||||
num = bu_file_glob(pattern[j-1], paths);
|
||||
cnt = num;
|
||||
while (num > 0) {
|
||||
bu_file_delete(paths[num-1]);
|
||||
num--;
|
||||
}
|
||||
bu_argv_free(cnt, paths);
|
||||
paths = NULL;
|
||||
j--;
|
||||
}
|
||||
bu_vls_free(&pattern_str);
|
||||
}
|
||||
|
||||
if (bu_str_true(getenv("CLOBBER"))) {
|
||||
/* NEVER automatically delete the summary file, but go
|
||||
* ahead with the rest.
|
||||
*/
|
||||
|
||||
num = bu_file_glob("benchmark-[0-9]*-run.log", paths);
|
||||
cnt = num;
|
||||
while (num > 0) {
|
||||
bu_log("rm -f %s\n", paths[num-1]);
|
||||
bu_file_delete(paths[num-1]);
|
||||
num--;
|
||||
}
|
||||
bu_argv_free(cnt, paths);
|
||||
paths = NULL;
|
||||
}
|
||||
|
||||
if (bu_file_exists("summary", NULL)) {
|
||||
if (!printed) {
|
||||
bu_log("\nThe following files must be removed manually:\n");
|
||||
printed=1;
|
||||
}
|
||||
bu_log("summary ");
|
||||
}
|
||||
num = bu_file_glob("benchmark-[0-9]*-run.log", paths);
|
||||
cnt = num;
|
||||
while (num > 0) {
|
||||
if (!printed) {
|
||||
bu_log("\nThe following files must be removed manually:\n");
|
||||
printed=1;
|
||||
}
|
||||
bu_log("%s ", paths[num-1]);
|
||||
num--;
|
||||
}
|
||||
bu_argv_free(cnt, paths);
|
||||
paths = NULL;
|
||||
|
||||
if (printed) {
|
||||
bu_log("\n");
|
||||
}
|
||||
|
||||
if (bu_str_true(getenv("CLOBBER"))) {
|
||||
bu_log("\nBenchmark clobber complete.\n");
|
||||
} else {
|
||||
bu_log("\nBenchmark clean complete.\n");
|
||||
}
|
||||
bu_exit(0, NULL);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* B E G I N
|
||||
***/
|
||||
|
||||
if (bu_str_false(getenv("RUN"))) {
|
||||
bu_exit(1, "Type '%s help' for usage.\n", av[0]);
|
||||
}
|
||||
|
||||
/* where to write results */
|
||||
{
|
||||
int fd;
|
||||
const char *logfile;
|
||||
bu_vls_printf(&str, "run-%d-benchmark.log", bu_process_id());
|
||||
logfile = bu_vls_addr(&str);
|
||||
bu_setenv("LOGFILE", logfile, 1);
|
||||
fd = open(logfile, O_WRONLY|O_CREAT, S_IRUSR | S_IWUSR);
|
||||
if (fd < 0 || !bu_file_writable(logfile)) {
|
||||
if (!BU_STR_EQUAL(logfile, "/dev/null")) {
|
||||
bu_log("ERROR: Unable to log to %s\n", logfile);
|
||||
}
|
||||
/* FIXME: not valid logfile on windows, use 'nul' */
|
||||
bu_setenv("LOGFILE", "/dev/null", 1);
|
||||
}
|
||||
}
|
||||
|
||||
if (bu_str_true(getenv("QUIET"))) {
|
||||
if (bu_str_true(getenv("VERBOSE"))) {
|
||||
bu_log("Verbose output quelled by quiet option. Further output disabled.\n");
|
||||
}
|
||||
} else {
|
||||
if (bu_str_true(getenv("VERBOSE"))) {
|
||||
verbose_echo=display;
|
||||
bu_log("Verbose output enabled\n");
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
struct bu_vls v = BU_VLS_INIT_ZERO;
|
||||
char rfc2822[1024] = {0};
|
||||
#ifdef HAVE_SYS_UTSNAME_H
|
||||
struct utsname n;
|
||||
time_t t = time(NULL);
|
||||
strftime(rfc2822, sizeof(rfc2822), "%a, %d %b %Y %H:%M:%S %Z", localtime(&t));
|
||||
|
||||
if (uname(&n) == 0) {
|
||||
bu_vls_printf(&v, "%s %s %s %s %s", n.sysname, n.nodename, n.release, n.version, n.machine);
|
||||
} else {
|
||||
bu_vls_strcat(&v, "unknown");
|
||||
}
|
||||
#endif
|
||||
|
||||
echo("B R L - C A D B E N C H M A R K\n");
|
||||
echo("=================================\n");
|
||||
echo("Running %s on %s\n", av[0], rfc2822);
|
||||
echo("Logging output to %s\n", getenv("LOGFILE"));
|
||||
echo("%s\n\n", bu_vls_addr(&v));
|
||||
}
|
||||
|
||||
|
||||
bu_dir(root, MAXPATHLEN, BU_DIR_BIN, NULL);
|
||||
bu_dir(db, MAXPATHLEN, BU_DIR_DATA, "db", NULL);
|
||||
bu_dir(pix, MAXPATHLEN, BU_DIR_DATA, "pix" , NULL);
|
||||
bu_dir(thisp, MAXPATHLEN, BU_DIR_CURR, NULL);
|
||||
|
||||
bu_vls_printf(&vp,
|
||||
"%s/rt "
|
||||
"%s/rt "
|
||||
"./rt",
|
||||
root, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
look_for(verbose_echo, executable, "the BRL-CAD raytracer", "RT", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
|
||||
bu_vls_printf(&vp,
|
||||
"%s/moss.g "
|
||||
"%s/db/moss.g "
|
||||
"%s/../db/moss.g "
|
||||
"./db/moss.g "
|
||||
"./moss.g",
|
||||
db, thisp, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
look_for(verbose_echo, file, "a benchmark geometry directory", "DB", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
if (getenv("DB") && !bu_file_directory(getenv("DB"))) {
|
||||
bu_setenv("DB", bu_path_dirname(getenv("DB")), 1);
|
||||
}
|
||||
|
||||
bu_vls_printf(&vp,
|
||||
"%s/moss.pix "
|
||||
"%s/pix/moss.pix "
|
||||
"%s/../pix/moss.pix "
|
||||
"%s/../../pix/moss.pix "
|
||||
"%s/../../../pix/moss.pix "
|
||||
"./pix/moss.pix "
|
||||
"./moss.pix",
|
||||
pix, thisp, thisp, thisp, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
look_for(verbose_echo, file, "a benchmark reference image directory", "PIX", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
if (getenv("PIX") && !bu_file_directory(getenv("PIX"))) {
|
||||
bu_setenv("PIX", bu_path_dirname(getenv("PIX")), 1);
|
||||
}
|
||||
|
||||
bu_vls_printf(&vp,
|
||||
"%s "
|
||||
"%s "
|
||||
"%s/pix "
|
||||
"%s/../pix "
|
||||
"%s/../../pix "
|
||||
"%s/../../../pix "
|
||||
"./pix",
|
||||
getenv("PIX"), pix, thisp, thisp, thisp, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
look_for(verbose_echo, directory, "a benchmark reference log directory", "LOG", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
|
||||
bu_vls_printf(&vp,
|
||||
"%s/pixcmp "
|
||||
"%s/pixcmp "
|
||||
"%s/bench/pixcmp "
|
||||
"%s/../bench/pixcmp "
|
||||
"./pixcmp",
|
||||
root, thisp, thisp, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
look_for(verbose_echo, executable, "a pixel comparison utility", "CMP", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
|
||||
/* FIXME: elapsed is no more */
|
||||
bu_vls_printf(&vp,
|
||||
"%s/elapsed.sh "
|
||||
"%s/elapsed.sh "
|
||||
"%s/sh/elapsed.sh "
|
||||
"%s/../sh/elapsed.sh "
|
||||
"%s/../../sh/elapsed.sh "
|
||||
"%s/../../../sh/elapsed.sh "
|
||||
"./elapsed.sh",
|
||||
root, thisp, thisp, thisp, thisp, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
look_for(verbose_echo, script, "a time elapsed utility", "ELP", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
|
||||
bu_free(root, "strdup root");
|
||||
bu_free(db, "strdup db");
|
||||
bu_free(pix, "strdup pix");
|
||||
|
||||
|
||||
/*********************
|
||||
* output parameters *
|
||||
*********************/
|
||||
|
||||
/* sanity check, output all the final settings together */
|
||||
RT = getenv("RT");
|
||||
if (RT && strlen(RT) > 0) {
|
||||
echo("Using [%s] for RT\n", RT);
|
||||
} else {
|
||||
bu_exit(1, "ERROR: Could not find the BRL-CAD raytracer\n");
|
||||
}
|
||||
|
||||
DB = getenv("DB");
|
||||
if (DB && strlen(DB) > 0) {
|
||||
echo("Using [%s] for DB\n", DB);
|
||||
} else {
|
||||
bu_exit(1, "ERROR: Could not find the BRL-CAD database directory\n");
|
||||
}
|
||||
|
||||
PIX = getenv("PIX");
|
||||
if (PIX && strlen(PIX) > 0) {
|
||||
echo("Using [%s] for PIX\n", PIX);
|
||||
} else {
|
||||
bu_exit(1, "ERROR: Could not find the BRL-CAD reference images\n");
|
||||
}
|
||||
|
||||
LOG = getenv("LOG");
|
||||
if (LOG && strlen(LOG) > 0) {
|
||||
echo("Using [%s] for LOG\n", LOG);
|
||||
} else {
|
||||
bu_exit(1, "ERROR: Could not find the BRL-CAD reference logs\n");
|
||||
}
|
||||
|
||||
CMP = getenv("CMP");
|
||||
if (CMP && strlen(CMP) > 0) {
|
||||
echo("Using [%s] for CMP\n", CMP);
|
||||
} else {
|
||||
bu_exit(1, "ERROR: Could not find the BRL-CAD pixel comparison utility\n");
|
||||
}
|
||||
|
||||
ELP = getenv("ELP");
|
||||
if (ELP && strlen(ELP) > 0) {
|
||||
echo("Using [%s] for ELP\n", ELP);
|
||||
} else {
|
||||
bu_exit(1, "ERROR: Could not find the BRL-CAD time elapsed script\n");
|
||||
}
|
||||
|
||||
/* determine the minimum time requirement in seconds for a single test run */
|
||||
set_if_unset(echo, verbose_echo, "TIMEFRAME", "32");
|
||||
|
||||
/* approximate maximum time in seconds that a given test is allowed to take */
|
||||
set_if_unset(echo, verbose_echo, "MAXTIME", "300");
|
||||
{
|
||||
MAXTIME = strtol(getenv("MAXTIME"), NULL, 0);
|
||||
TIMEFRAME = strtol(getenv("TIMEFRAME"), NULL, 0);
|
||||
if (MAXTIME < TIMEFRAME) {
|
||||
bu_exit(1, "ERROR: MAXTIME must be greater or equal to TIMEFRAME\n");
|
||||
}
|
||||
}
|
||||
|
||||
/* maximum deviation percentage */
|
||||
set_if_unset(echo, verbose_echo, "DEVIATION", "3");
|
||||
|
||||
/* maximum number of iterations to average */
|
||||
set_if_unset(echo, verbose_echo, "AVERAGE", "3");
|
||||
|
||||
/* end of settings, separate the output */
|
||||
echo("\n");
|
||||
|
||||
|
||||
/**************************
|
||||
* output run-time status *
|
||||
**************************/
|
||||
|
||||
/* determine raytracer version */
|
||||
echo("RT reports the following version information:\n");
|
||||
{
|
||||
struct bu_vls rtout = BU_VLS_INIT_ZERO;
|
||||
struct bu_vls grep1 = BU_VLS_INIT_ZERO;
|
||||
struct bu_vls grep2 = BU_VLS_INIT_ZERO;
|
||||
|
||||
RT = getenv("RT");
|
||||
|
||||
bu_exec(RT, NULL, &rtout, &rtout);
|
||||
bu_grep("BRL-CAD", bu_vls_cstr(&rtout), stashline, (void *)&grep1);
|
||||
bu_grep("Release", bu_vls_cstr(&grep1), stashline, (void *)&grep2);
|
||||
if (bu_vls_strlen(&grep2) > 0) {
|
||||
echo("%s\n", bu_vls_addr(&grep2));
|
||||
} else {
|
||||
echo("Unknown\n\n");
|
||||
}
|
||||
|
||||
bu_vls_free(&grep2);
|
||||
bu_vls_free(&grep1);
|
||||
bu_vls_free(&rtout);
|
||||
}
|
||||
|
||||
/* let the user know about how long this might take */
|
||||
{
|
||||
struct bu_vls elapsed = BU_VLS_INIT_ZERO;
|
||||
double mintime = 6.0 * TIMEFRAME;
|
||||
double maxtime = 6.0 * MAXTIME;
|
||||
double estimate = 3.0 * mintime;
|
||||
|
||||
if (mintime < 1.0)
|
||||
mintime = 0; /* zero is okay */
|
||||
bu_vls_sprintf(&elapsed, "%s", format_elapsed(mintime));
|
||||
echo("Minimum run time is %s\n", bu_vls_cstr(&elapsed));
|
||||
|
||||
if (maxtime < 1.0)
|
||||
maxtime = 1.0; /* zero would be misleading */
|
||||
bu_vls_sprintf(&elapsed, "%s", format_elapsed(maxtime));
|
||||
echo("Maximum run time is %s\n", bu_vls_cstr(&elapsed));
|
||||
|
||||
if (estimate > maxtime)
|
||||
estimate = maxtime;
|
||||
|
||||
echo("Estimated time is %s\n", format_elapsed(estimate));
|
||||
}
|
||||
|
||||
/************************
|
||||
* Run the actual tests *
|
||||
************************/
|
||||
|
||||
start = bu_gettime();
|
||||
echo("Running the BRL-CAD Benchmark tests... please wait ...\n\n");
|
||||
|
||||
ret += bench("moss");
|
||||
ret += bench("world");
|
||||
ret += bench("star");
|
||||
ret += bench("bldg391");
|
||||
ret += bench("m35");
|
||||
ret += bench("sphflake");
|
||||
|
||||
echo("\n... Done.\n");
|
||||
echo("Total testing time elapsed: %.2lfs\n", format_elapsed(bu_gettime() - start));
|
||||
|
||||
if (ret != 0) {
|
||||
echo("\n");
|
||||
echo("THE BENCHMARK ANALYSIS DID NOT COMPLETE SUCCESSFULLY.\n");
|
||||
echo("\n");
|
||||
echo("A benchmark failure means this is not a viable install of BRL-CAD. This may be\n");
|
||||
echo("a new bug or (more likely) is a compilation configuration error. Ensure your\n");
|
||||
echo("compiler has strict aliasing disabled, compilation is optimized, and you have\n");
|
||||
echo("installed BRL-CAD (some platforms require this). If you still get a failure,\n");
|
||||
echo("please report your configuration information to benchmark@brlcad.org\n");
|
||||
echo("\n");
|
||||
echo("Output was saved to %s from %s\n", LOG, bu_dir(NULL, 0, BU_DIR_CURR, NULL));
|
||||
echo("Run '%s clean' to remove generated pix files.\n", av[0]);
|
||||
echo("Benchmark testing failed.\n");
|
||||
return 2;
|
||||
}
|
||||
|
||||
/******************************
|
||||
* compute and output results *
|
||||
******************************/
|
||||
{
|
||||
struct bu_vls performance = BU_VLS_INIT_ZERO;
|
||||
ret = perf(&performance, /*...!!!...*/"moss world star bldg391 m35 sphflake", (const char **)argv);
|
||||
|
||||
if (ret == 0) {
|
||||
/* !!! write performance to summary */
|
||||
}
|
||||
|
||||
echo("\n");
|
||||
echo("The following files have been generated and/or modified:\n");
|
||||
echo(" *.log ..... final log files for each individual raytrace test\n");
|
||||
echo(" *.pix ..... final pix image files for each individual raytrace test\n");
|
||||
echo(" *.log.* ... log files for previous frames and raytrace tests\n");
|
||||
echo(" *.pix.* ... pix image files for previous frames and raytrace tests\n");
|
||||
echo(" summary ... performance results summary, 2 lines per run\n");
|
||||
echo("\n");
|
||||
echo("Run '%s clean' to remove generated pix files.\n", av[0]);
|
||||
echo("\n");
|
||||
|
||||
echo("Summary:\n");
|
||||
echo("%s\n", bu_vls_cstr(&performance));
|
||||
|
||||
{
|
||||
double vgr = calculate_vgr(&performance);
|
||||
|
||||
if (vgr > 0.0) {
|
||||
echo("\n");
|
||||
echo("#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#\n");
|
||||
echo("Benchmark results indicate an approximate VGR performance metric of %ld\n", (long int)vgr);
|
||||
echo("Logarithmic VGR metric is %.2lf (natural logarithm is %.2lf)\n", log10(vgr), log(vgr));
|
||||
echo("#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#\n");
|
||||
echo("\n");
|
||||
echo("These numbers seem to indicate that this machine is approximately %ld times", (long int)vgr);
|
||||
echo("faster than the reference machine being used for comparison, a VAX 11/780\n");
|
||||
echo("running 4.3 BSD named VGR. These results are in fact approximately %.2lf", log10(vgr));
|
||||
echo("orders of magnitude faster than the reference.\n");
|
||||
echo("\n");
|
||||
|
||||
echo("Here are some other approximated VGR results for perspective:\n");
|
||||
echo(" 120 on a 200MHz R5000 running IRIX 6.5\n");
|
||||
echo(" 250 on a 500 MHz Pentium III running RedHat 7.1\n");
|
||||
echo(" 550 on a dual 450 MHz UltraSPARC II running SunOS 5.8\n");
|
||||
echo(" 1000 on a dual 500 MHz G4 PowerPC running Mac OS X 10.2\n");
|
||||
echo(" 1500 on a dual 1.66 GHz Athlon MP 2000+ running RedHat 7.3\n");
|
||||
echo(" 52000 on a 4x4 CPU 2.93 GHz Xeon running RHEL Server 5.4\n");
|
||||
echo(" 65000 on a 512 CPU 400 MHz R12000 Running IRIX 6.5\n");
|
||||
echo("\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
/* TODO: !!! determine if this build is optimized or not */
|
||||
/* TODO: !!! determine if this build has run-time debugging */
|
||||
/* TODO: !!! determine if this build has compile-time debugging */
|
||||
}
|
||||
|
||||
/* if this was a valid benchmark run, encourage submission of results. */
|
||||
echo("You are encouraged to submit your benchmark results and system\n");
|
||||
echo("configuration information to benchmark@brlcad.org\n");
|
||||
echo(" ~~~~~~~~~~~~~~~~~~~~\n");
|
||||
|
||||
/* include information about the operating system and hardware in the log */
|
||||
echo("Including additional kernel and hardware information in the log.\n\n");
|
||||
|
||||
/* TODO: !!! print out system information via sysctl/prtdiag/prtconf/hinv/etc */
|
||||
bu_vls_free(&rtargs);
|
||||
|
||||
bu_vls_printf(&vp,
|
||||
"%s/../share/brlcad/*.*.*/doc/benchmark.tr "
|
||||
"%s/share/brlcad/*.*.*/doc/benchmark.tr "
|
||||
"%s/share/brlcad/doc/benchmark.tr "
|
||||
"%s/share/doc/benchmark.tr "
|
||||
"%s/doc/benchmark.tr "
|
||||
"%s/../doc/benchmark.tr "
|
||||
"./benchmark.tr",
|
||||
thisp, thisp, thisp, thisp, thisp, thisp);
|
||||
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
|
||||
|
||||
bu_free(thisp, "dirname this");
|
||||
|
||||
look_for(NULL, file, "BENCHMARK_TR", "benchmark", (const char **)argv);
|
||||
bu_vls_trunc(&vp, 0);
|
||||
|
||||
/* TODO: look for benchmark document here? */
|
||||
|
||||
echo("Output was saved to %s from %s\n", LOG, bu_dir(NULL, 0, BU_DIR_CURR, NULL));
|
||||
echo("Benchmark testing complete.\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* tab-width: 8
|
||||
* mode: C
|
||||
* indent-tabs-mode: t
|
||||
* c-file-style: "stroustrup"
|
||||
* End:
|
||||
* ex: shiftwidth=4 tabstop=8
|
||||
*/
|
||||
@@ -1,95 +0,0 @@
|
||||
/* C L E A N . C
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2011-2020 United States Government as represented by
|
||||
* the U.S. Army Research Laboratory.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
*
|
||||
* 3. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/** @file clean.c
|
||||
*
|
||||
* utility functions to clean output files
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#include "bu/file.h"
|
||||
#include "bu/str.h"
|
||||
#include "bu/vls.h"
|
||||
|
||||
|
||||
/* TODO: !!! needed */
|
||||
int bu_file_move(const char *fn1, const char *fn2) {if (!fn1 || !fn2) return -1; return 0;}
|
||||
extern int bu_file_copy(const char *fn1, const char *fn2);
|
||||
|
||||
|
||||
/**
|
||||
* conditionally removes or saves any .pix or .log files output.
|
||||
*/
|
||||
void
|
||||
clean_obstacles(const char *base_filename, int id)
|
||||
{
|
||||
struct bu_vls vp = BU_VLS_INIT_ZERO;
|
||||
struct bu_vls vpid = BU_VLS_INIT_ZERO;
|
||||
|
||||
if (BU_STR_EMPTY(base_filename))
|
||||
return;
|
||||
|
||||
/* look for an image file */
|
||||
bu_vls_printf(&vp, "%s.pix", base_filename);
|
||||
if (bu_file_exists(bu_vls_cstr(&vp), NULL)) {
|
||||
bu_vls_printf(&vpid, "%s-%d.pix", base_filename, id);
|
||||
if (bu_file_exists(bu_vls_cstr(&vpid), NULL)) {
|
||||
bu_file_delete(bu_vls_cstr(&vp));
|
||||
}
|
||||
bu_file_move(bu_vls_cstr(&vp), bu_vls_cstr(&vpid));
|
||||
}
|
||||
|
||||
/* look for a log file */
|
||||
bu_vls_printf(&vp, "%s.log", base_filename);
|
||||
if (bu_file_exists(bu_vls_cstr(&vp), NULL)) {
|
||||
bu_vls_printf(&vpid, "%s-%d.log", base_filename, id);
|
||||
if (bu_file_exists(bu_vls_cstr(&vpid), NULL)) {
|
||||
bu_file_delete(bu_vls_cstr(&vp));
|
||||
}
|
||||
bu_file_move(bu_vls_cstr(&vp), bu_vls_cstr(&vpid));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* tab-width: 8
|
||||
* mode: C
|
||||
* indent-tabs-mode: t
|
||||
* c-file-style: "stroustrup"
|
||||
* End:
|
||||
* ex: shiftwidth=4 tabstop=8
|
||||
*/
|
||||
@@ -1,96 +0,0 @@
|
||||
/* C O M P U T E . C
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2011-2020 United States Government as represented by
|
||||
* the U.S. Army Research Laboratory.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
*
|
||||
* 3. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/** @file compute.c
|
||||
*
|
||||
* run and computation functions
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
|
||||
|
||||
/**
|
||||
* average [..numbers..]
|
||||
*
|
||||
* computes the integer average for a set of given numbers
|
||||
*/
|
||||
double
|
||||
average(int ac, double av[])
|
||||
{
|
||||
double total = 0.0;
|
||||
|
||||
if (ac < 1)
|
||||
return -0.0;
|
||||
|
||||
while (ac-- > 0) {
|
||||
total += av[ac];
|
||||
}
|
||||
return total / ac;
|
||||
}
|
||||
|
||||
|
||||
double
|
||||
variance(int ac, double av[])
|
||||
{
|
||||
double avg;
|
||||
double err = 0.0;
|
||||
double num = ac;
|
||||
|
||||
if (ac < 1)
|
||||
return -0.0;
|
||||
else if (ac == 1)
|
||||
return 0.0;
|
||||
|
||||
avg = average(ac, av);
|
||||
|
||||
/* compute variance numerator for the population */
|
||||
while (ac-- > 0) {
|
||||
err += (av[ac] - avg) * (av[ac] - avg);
|
||||
}
|
||||
|
||||
/* return the sample variance */
|
||||
return err / (num - 1);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* tab-width: 8
|
||||
* mode: C
|
||||
* indent-tabs-mode: t
|
||||
* c-file-style: "stroustrup"
|
||||
* End:
|
||||
* ex: shiftwidth=4 tabstop=8
|
||||
*/
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
# L G T . S H
|
||||
# BRL-CAD
|
||||
#
|
||||
# Copyright (c) 2004-2020 United States Government as represented by
|
||||
# Copyright (c) 2004-2014 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
|
||||
+11
-24
@@ -1,7 +1,7 @@
|
||||
/* P I X C M P . C
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2004-2020 United States Government as represented by
|
||||
* Copyright (c) 2004-2014 United States Government as represented by
|
||||
* the U.S. Army Research Laboratory.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
@@ -31,12 +31,8 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#ifdef HAVE_SYS_STAT_H
|
||||
# include <sys/stat.h>
|
||||
#endif
|
||||
#include "bio.h"
|
||||
|
||||
#include "bu/app.h"
|
||||
#include "bu/getopt.h"
|
||||
#include "bu/log.h"
|
||||
#include "bu/file.h"
|
||||
@@ -77,7 +73,7 @@ usage(const char *name)
|
||||
|
||||
|
||||
HIDDEN void
|
||||
handle_i_opt(const char *arg, size_t *skip1, size_t *skip2)
|
||||
handle_i_opt(const char *arg, off_t *skip1, off_t *skip2)
|
||||
{
|
||||
const char *endptr = arg;
|
||||
if ((arg == NULL) || ((skip1 == NULL) && (skip2 == NULL))) {
|
||||
@@ -121,21 +117,19 @@ main(int argc, char *argv[])
|
||||
{
|
||||
FILE *f1 = NULL;
|
||||
FILE *f2 = NULL;
|
||||
struct stat sf1, sf2;
|
||||
|
||||
size_t matching = 0;
|
||||
size_t off1 = 0;
|
||||
size_t offmany = 0;
|
||||
long matching = 0;
|
||||
long off1 = 0;
|
||||
long offmany = 0;
|
||||
|
||||
int c;
|
||||
int list_pixel_values = 0;
|
||||
int print_bytes = 0;
|
||||
int silent = 0;
|
||||
size_t f1_skip = 0;
|
||||
size_t f2_skip = 0;
|
||||
size_t bytes = 0;
|
||||
off_t f1_skip = 0;
|
||||
off_t f2_skip = 0;
|
||||
|
||||
bu_setprogname(argv[0]);
|
||||
long int bytes = 0;
|
||||
|
||||
/* process opts */
|
||||
while ((c = bu_getopt(argc, argv, "lbi:s")) != -1) {
|
||||
@@ -204,20 +198,13 @@ main(int argc, char *argv[])
|
||||
exit(FILE_ERROR);
|
||||
}
|
||||
|
||||
stat(argv[0], &sf1);
|
||||
stat(argv[1], &sf2);
|
||||
|
||||
if (sf1.st_size != sf2.st_size) {
|
||||
bu_exit(FILE_ERROR, "Different file sizes found: %s(%d) and %s(%d). Cannot perform pixcmp.\n", argv[0], (int)sf1.st_size, argv[1], (int)sf2.st_size);
|
||||
}
|
||||
|
||||
if (!print_bytes) {
|
||||
f1_skip *= 3;
|
||||
f2_skip *= 3;
|
||||
}
|
||||
|
||||
/* skip requested pixels/bytes in FILE1 */
|
||||
if (f1_skip && fseek(f1, f1_skip, SEEK_SET)) {
|
||||
if (f1_skip && bu_fseek(f1, f1_skip, SEEK_SET)) {
|
||||
bu_log("ERROR: Unable to seek %zd %s%s in FILE1\n",
|
||||
f1_skip,
|
||||
print_bytes?"byte":"pixel",
|
||||
@@ -227,7 +214,7 @@ main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
/* skip requested pixels in FILE2 */
|
||||
if (f2_skip && fseek(f2, f2_skip, SEEK_SET)) {
|
||||
if (f2_skip && bu_fseek(f2, f2_skip, SEEK_SET)) {
|
||||
bu_log("ERROR: Unable to seek %zd %s%s in FILE2\n",
|
||||
f1_skip,
|
||||
print_bytes?"byte":"pixel",
|
||||
@@ -303,7 +290,7 @@ main(int argc, char *argv[])
|
||||
|
||||
/* print summary */
|
||||
if (!silent) {
|
||||
printf("pixcmp %s: %8zd matching, %8zd off by 1, %8zd off by many\n",
|
||||
printf("pixcmp %s: %8ld matching, %8ld off by 1, %8ld off by many\n",
|
||||
print_bytes?"bytes":"pixels",
|
||||
matching, off1, offmany);
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ BRLCAD_ADDDATA(PIX_LOG pix)
|
||||
|
||||
CMAKEFILES(${BENCHMARK_PIX})
|
||||
CMAKEFILES(${PIX_LOG})
|
||||
CMAKEFILES(CMakeLists.txt)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
|
||||
-112
@@ -1,112 +0,0 @@
|
||||
/* R U N . C
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2011-2020 United States Government as represented by
|
||||
* the U.S. Army Research Laboratory.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above
|
||||
* copyright notice, this list of conditions and the following
|
||||
* disclaimer in the documentation and/or other materials provided
|
||||
* with the distribution.
|
||||
*
|
||||
* 3. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/** @file run.c
|
||||
*
|
||||
* run functions
|
||||
*
|
||||
*/
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "bu.h"
|
||||
|
||||
|
||||
/* TODO: !!! obviously */
|
||||
struct bu_vls bu_argv_to_string(int ac, const char *av[]) {struct bu_vls v = BU_VLS_INIT_ZERO; if (ac) {bu_vls_printf(&v, "%s", av[0]);} return v;}
|
||||
int (*echo)(const char *, ...) = &bu_log;
|
||||
extern int bu_exec(const char *program, void *data, struct bu_vls *out, struct bu_vls *err);
|
||||
|
||||
|
||||
/**
|
||||
* run file_prefix geometry hypersample [..rt args..]
|
||||
* runs a single benchmark test assuming the following are preset:
|
||||
*
|
||||
* RT := path/name of the raytracer to use
|
||||
* DB := path to the geometry file
|
||||
*
|
||||
* it is assumed that stdin will be the view/frame input
|
||||
*/
|
||||
int
|
||||
run(int ac, char *av[])
|
||||
{
|
||||
int retval;
|
||||
const char *run_geomname = av[0];
|
||||
const char *run_geometry = av[1];
|
||||
long int hypersample = strtod(av[2], NULL);
|
||||
struct bu_vls args = BU_VLS_INIT_ZERO;
|
||||
av += 3;
|
||||
ac -= 3;
|
||||
|
||||
args = bu_argv_to_string(ac, (const char **)av);
|
||||
echo("DEBUG: Running %s -B -M -s512 -H%ld -J0 %s -o %s.pix %s/%s.g %s\n", av[0], hypersample, args, run_geomname, run_geomname, run_geometry);
|
||||
|
||||
/* pipe(stdin_for_bu_exec); */
|
||||
retval = bu_exec("program", NULL, NULL, NULL);
|
||||
echo("DEBUG: Running %s returned %d\n", av[0], retval);
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* runs a series of benchmark tests assuming the following are preset:
|
||||
*
|
||||
* TIMEFRAME := maximum amount of wallclock time to spend per test
|
||||
*
|
||||
* is is assumed that stdin will be the view/frame input
|
||||
*/
|
||||
int
|
||||
bench(const char *test_name)
|
||||
{
|
||||
if (!test_name)
|
||||
return -1;
|
||||
|
||||
/* FIXME: !!! lots missing here */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Local Variables:
|
||||
* tab-width: 8
|
||||
* mode: C
|
||||
* indent-tabs-mode: t
|
||||
* c-file-style: "stroustrup"
|
||||
* End:
|
||||
* ex: shiftwidth=4 tabstop=8
|
||||
*/
|
||||
+98
-94
@@ -2,7 +2,7 @@
|
||||
# R U N . S H
|
||||
# BRL-CAD
|
||||
#
|
||||
# Copyright (c) 2004-2020 United States Government as represented by
|
||||
# Copyright (c) 2004-2014 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
@@ -51,7 +51,7 @@
|
||||
export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
|
||||
|
||||
# save the precious args
|
||||
ARGS="$@"
|
||||
ARGS="$*"
|
||||
NAME_OF_THIS="`basename \"$0\"`"
|
||||
PATH_TO_THIS="`dirname \"$0\"`"
|
||||
THIS="$PATH_TO_THIS/$NAME_OF_THIS"
|
||||
@@ -159,59 +159,66 @@ booleanize ( ) {
|
||||
}
|
||||
|
||||
|
||||
# any unrecognized args are assumed to be RT args (e.g., -P4)
|
||||
RTARGS=""
|
||||
|
||||
# process the argument list for commands
|
||||
while test $# -gt 0 ; do
|
||||
|
||||
arg="$1"
|
||||
shift
|
||||
|
||||
NEWARGS=""
|
||||
for arg in $ARGS ; do
|
||||
case "x$arg" in
|
||||
x*[cC][lL][eE][aA][nN])
|
||||
CLEAN=1
|
||||
shift
|
||||
;;
|
||||
x*[cC][lL][oO][bB][bB][eE][rR])
|
||||
CLEAN=1
|
||||
CLOBBER=1
|
||||
shift
|
||||
;;
|
||||
x*[hH])
|
||||
HELP=1
|
||||
shift
|
||||
;;
|
||||
x*[hH][eE][lL][pP])
|
||||
HELP=1
|
||||
shift
|
||||
;;
|
||||
x*[iI][nN][sS][tT][rR][uU][cC][tT]*)
|
||||
INSTRUCTIONS=1
|
||||
shift
|
||||
;;
|
||||
x*[sS][tT][aA][rR][tT])
|
||||
shift
|
||||
;;
|
||||
x*[qQ][uU][iI][eE][tT])
|
||||
QUIET=1
|
||||
shift
|
||||
;;
|
||||
x*[vV][eE][rR][bB][oO][sS][eE])
|
||||
VERBOSE=1
|
||||
shift
|
||||
;;
|
||||
x*[rR][uU][nN])
|
||||
RUN=1
|
||||
shift
|
||||
;;
|
||||
x*=*)
|
||||
VAR=`echo $arg | sed 's/=.*//g'`
|
||||
if test ! "x$VAR" = "x" ; then
|
||||
VAL=`echo $arg | sed 's/.*=//g'`
|
||||
CMD="$VAR=\"$VAL\""
|
||||
CMD="$VAR=$VAL"
|
||||
eval $CMD
|
||||
export $VAR
|
||||
fi
|
||||
shift
|
||||
;;
|
||||
x*)
|
||||
echo "WARNING: Passing unknown option [$arg] to RT"
|
||||
RTARGS="$RTARGS $arg"
|
||||
echo "WARNING: Passing unknown option [$1] to RT"
|
||||
NEWARGS="$NEWARGS $arg"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# reload post-shifting
|
||||
ARGS="$NEWARGS"
|
||||
|
||||
# validate and clean up options (all default to 0)
|
||||
booleanize CLOBBER HELP INSTRUCTIONS QUIET VERBOSE RUN
|
||||
|
||||
@@ -424,13 +431,13 @@ $ECHO
|
||||
########################
|
||||
look_for ( ) {
|
||||
|
||||
|
||||
# utility function to search for a certain filesystem object in a
|
||||
# list of paths.
|
||||
|
||||
look_for_type="$1" ; shift
|
||||
look_for_label="$1" ; shift
|
||||
look_for_var="$1" ; shift
|
||||
look_for_dirs="$*"
|
||||
|
||||
if test "x$look_for_label" != "x" ; then
|
||||
$VERBOSE_ECHO "Looking for $look_for_label"
|
||||
@@ -438,11 +445,11 @@ look_for ( ) {
|
||||
|
||||
# get the value of the variable
|
||||
look_for_var_var="echo \"\$$look_for_var\""
|
||||
look_for_var_val="`eval \"${look_for_var_var}\"`"
|
||||
look_for_var_val="`eval ${look_for_var_var}`"
|
||||
|
||||
if test "x${look_for_var_val}" = "x" ; then
|
||||
for look_for_dir in "$@" ; do
|
||||
shift
|
||||
for look_for_dir in $look_for_dirs ; do
|
||||
|
||||
opts="-r"
|
||||
case "x$look_for_type" in
|
||||
xfile)
|
||||
@@ -453,10 +460,10 @@ look_for ( ) {
|
||||
opts="-d -x"
|
||||
;;
|
||||
xexe*)
|
||||
opts="$opts -f -x"
|
||||
opts="$opts -f -r -x"
|
||||
;;
|
||||
xscr*)
|
||||
opts="$opts -f -x"
|
||||
opts="$opts -f -r -x"
|
||||
;;
|
||||
esac
|
||||
look_for_failed=no
|
||||
@@ -484,61 +491,61 @@ look_for ( ) {
|
||||
}
|
||||
|
||||
look_for executable "the BRL-CAD raytracer" RT \
|
||||
"${PATH_TO_THIS}/rt" \
|
||||
"${PATH_TO_THIS}/../bin/rt" \
|
||||
"${PATH_TO_THIS}/../src/rt/rt" \
|
||||
"${PATH_TO_THIS}/src/rt/rt" \
|
||||
${PATH_TO_THIS}/rt \
|
||||
${PATH_TO_THIS}/../bin/rt \
|
||||
${PATH_TO_THIS}/../src/rt/rt \
|
||||
${PATH_TO_THIS}/src/rt/rt \
|
||||
./rt \
|
||||
../brlcadInstall/bin/rt.exe \
|
||||
../src/rt/rt
|
||||
|
||||
look_for file "a benchmark geometry directory" DB \
|
||||
"${PATH_TO_THIS}/../share/brlcad/*.*.*/db/moss.g" \
|
||||
"${PATH_TO_THIS}/share/brlcad/*.*.*/db/moss.g" \
|
||||
"${PATH_TO_THIS}/../share/brlcad/db/moss.g" \
|
||||
"${PATH_TO_THIS}/share/brlcad/db/moss.g" \
|
||||
"${PATH_TO_THIS}/../share/db/moss.g" \
|
||||
"${PATH_TO_THIS}/share/db/moss.g" \
|
||||
"${PATH_TO_THIS}/../db/moss.g" \
|
||||
"${PATH_TO_THIS}/db/moss.g" \
|
||||
${PATH_TO_THIS}/../share/brlcad/*.*.*/db/moss.g \
|
||||
${PATH_TO_THIS}/share/brlcad/*.*.*/db/moss.g \
|
||||
${PATH_TO_THIS}/../share/brlcad/db/moss.g \
|
||||
${PATH_TO_THIS}/share/brlcad/db/moss.g \
|
||||
${PATH_TO_THIS}/../share/db/moss.g \
|
||||
${PATH_TO_THIS}/share/db/moss.g \
|
||||
${PATH_TO_THIS}/../db/moss.g \
|
||||
${PATH_TO_THIS}/db/moss.g \
|
||||
./db/moss.g \
|
||||
../brlcadInstall/share/brlcad/*.*.*/db/moss.g \
|
||||
../db/moss.g
|
||||
DB="`echo $DB | sed 's,/moss.g$,,'`"
|
||||
DB=`echo $DB | sed 's,/moss.g$,,'`
|
||||
|
||||
look_for directory "a benchmark reference image directory" PIX \
|
||||
"${PATH_TO_THIS}/../share/brlcad/*.*.*/pix" \
|
||||
"${PATH_TO_THIS}/share/brlcad/*.*.*/pix" \
|
||||
"${PATH_TO_THIS}/../share/brlcad/pix" \
|
||||
"${PATH_TO_THIS}/share/brlcad/pix" \
|
||||
"${PATH_TO_THIS}/../share/pix" \
|
||||
"${PATH_TO_THIS}/share/pix" \
|
||||
"${PATH_TO_THIS}/ref" \
|
||||
${PATH_TO_THIS}/../share/brlcad/*.*.*/pix \
|
||||
${PATH_TO_THIS}/share/brlcad/*.*.*/pix \
|
||||
${PATH_TO_THIS}/../share/brlcad/pix \
|
||||
${PATH_TO_THIS}/share/brlcad/pix \
|
||||
${PATH_TO_THIS}/../share/pix \
|
||||
${PATH_TO_THIS}/share/pix \
|
||||
${PATH_TO_THIS}/ref \
|
||||
./ref
|
||||
|
||||
look_for directory "a benchmark reference log directory" LOG \
|
||||
"$PIX" \
|
||||
"${PATH_TO_THIS}/../share/brlcad/*.*.*/pix" \
|
||||
"${PATH_TO_THIS}/share/brlcad/*.*.*/pix" \
|
||||
"${PATH_TO_THIS}/../share/brlcad/pix" \
|
||||
"${PATH_TO_THIS}/share/brlcad/pix" \
|
||||
"${PATH_TO_THIS}/../share/pix" \
|
||||
"${PATH_TO_THIS}/share/pix" \
|
||||
"${PATH_TO_THIS}/ref" \
|
||||
$PIX \
|
||||
${PATH_TO_THIS}/../share/brlcad/*.*.*/pix \
|
||||
${PATH_TO_THIS}/share/brlcad/*.*.*/pix \
|
||||
${PATH_TO_THIS}/../share/brlcad/pix \
|
||||
${PATH_TO_THIS}/share/brlcad/pix \
|
||||
${PATH_TO_THIS}/../share/pix \
|
||||
${PATH_TO_THIS}/share/pix \
|
||||
${PATH_TO_THIS}/ref \
|
||||
./ref
|
||||
|
||||
look_for executable "a pixel comparison utility" CMP \
|
||||
"${PATH_TO_THIS}/pixcmp" \
|
||||
"${PATH_TO_THIS}/../bin/pixcmp" \
|
||||
"${PATH_TO_THIS}/../bench/pixcmp" \
|
||||
${PATH_TO_THIS}/pixcmp \
|
||||
${PATH_TO_THIS}/../bin/pixcmp \
|
||||
${PATH_TO_THIS}/../bench/pixcmp \
|
||||
../brlcadInstall/bin/pixcmp.exe \
|
||||
./pixcmp
|
||||
|
||||
look_for script "a time elapsed utility" ELP \
|
||||
"${PATH_TO_THIS}/elapsed.sh" \
|
||||
"${PATH_TO_THIS}/../bin/elapsed.sh" \
|
||||
"${PATH_TO_THIS}/sh/elapsed.sh" \
|
||||
"${PATH_TO_THIS}/../sh/elapsed.sh" \
|
||||
${PATH_TO_THIS}/elapsed.sh \
|
||||
${PATH_TO_THIS}/../bin/elapsed.sh \
|
||||
${PATH_TO_THIS}/sh/elapsed.sh \
|
||||
${PATH_TO_THIS}/../sh/elapsed.sh \
|
||||
./elapsed.sh
|
||||
|
||||
|
||||
@@ -585,12 +592,9 @@ else
|
||||
fi
|
||||
|
||||
# more sanity checks, make sure the binaries and scripts run
|
||||
eval \"$RT\" -s1 -F/dev/debug \"${DB}/moss.g\" LIGHT > /dev/null 2>&1
|
||||
$RT -s1 -F/dev/debug ${DB}/moss.g LIGHT > /dev/null 2>&1
|
||||
ret=$?
|
||||
if test ! "x${ret}" = "x0" ; then
|
||||
$ECHO
|
||||
$ECHO "Running \"$RT\":"
|
||||
"$RT"
|
||||
$ECHO
|
||||
$ECHO "ERROR: RT does not seem to work as expected"
|
||||
exit 2
|
||||
@@ -599,7 +603,7 @@ fi
|
||||
# create a temporary file named "null", fopen("/dev/null") does not work on
|
||||
# windows (using cygwin), so punt.
|
||||
> null
|
||||
eval \"$CMP\" null null >/dev/null 2>&1
|
||||
$CMP null null >/dev/null 2>&1
|
||||
rm -f null
|
||||
|
||||
ret=$?
|
||||
@@ -608,7 +612,7 @@ if test ! "x${ret}" = "x0" ; then
|
||||
$ECHO "ERROR: CMP does not seem to work as expected"
|
||||
exit 2
|
||||
fi
|
||||
eval \"$ELP\" 0 > /dev/null 2>&1
|
||||
$ELP 0 > /dev/null 2>&1
|
||||
if test ! "x${ret}" = "x0" ; then
|
||||
$ECHO
|
||||
$ECHO "ERROR: ELP does not seem to work as expected"
|
||||
@@ -676,12 +680,12 @@ if test "x`expr 1 - 1 2>/dev/null`" = "x0" ; then
|
||||
if test $mintime -lt 1 ; then
|
||||
mintime=0 # zero is okay
|
||||
fi
|
||||
$ECHO "Minimum run time is `\"$ELP\" $mintime`"
|
||||
$ECHO "Minimum run time is `$ELP $mintime`"
|
||||
maxtime="`expr 6 \* $MAXTIME`"
|
||||
if test $maxtime -lt 1 ; then
|
||||
maxtime=1 # zero would be misleading
|
||||
fi
|
||||
$ECHO "Maximum run time is `\"$ELP\" $maxtime`"
|
||||
$ECHO "Maximum run time is `$ELP $maxtime`"
|
||||
estimate="`expr 3 \* $mintime`"
|
||||
if test $estimate -lt 1 ; then
|
||||
estimate=1 # zero would be misleading
|
||||
@@ -689,7 +693,7 @@ if test "x`expr 1 - 1 2>/dev/null`" = "x0" ; then
|
||||
if test $estimate -gt $maxtime ; then
|
||||
estimate="$maxtime"
|
||||
fi
|
||||
$ECHO "Estimated time is `eval \\\"$ELP\\\" $estimate`"
|
||||
$ECHO "Estimated time is `$ELP $estimate`"
|
||||
$ECHO
|
||||
else
|
||||
$ECHO "WARNING: expr is unavailable, unable to compute statistics"
|
||||
@@ -719,9 +723,9 @@ run ( ) {
|
||||
|
||||
$VERBOSE_ECHO "DEBUG: Running $RT -B -M -s512 -H${run_hypersample} -J0 ${run_args} -o ${run_geomname}.pix ${DB}/${run_geomname}.g ${run_geometry}"
|
||||
|
||||
eval \"$RT\" -B -M -s512 -H${run_hypersample} -J0 ${run_args} \
|
||||
$RT -B -M -s512 -H${run_hypersample} -J0 ${run_args} \
|
||||
-o ${run_geomname}.pix \
|
||||
\"${DB}/${run_geomname}.g\" ${run_geometry} 1>&2 <<EOF
|
||||
${DB}/${run_geomname}.g ${run_geometry} 1>&2 <<EOF
|
||||
$run_view
|
||||
EOF
|
||||
retval=$?
|
||||
@@ -995,7 +999,7 @@ EOF
|
||||
|
||||
# compute how long we took, rounding up to at least one
|
||||
# second to prevent division by zero.
|
||||
bench_elapsed="`eval \\\"$ELP\\\" --seconds $bench_frame_start_time`"
|
||||
bench_elapsed="`$ELP --seconds $bench_frame_start_time`"
|
||||
if test "x$bench_elapsed" = "x" ; then
|
||||
bench_elapsed=1
|
||||
fi
|
||||
@@ -1063,7 +1067,7 @@ EOF
|
||||
fi
|
||||
|
||||
# see if we need to break out early
|
||||
bench_overall_elapsed="`eval \\\"$ELP\\\" --seconds $bench_start_time`"
|
||||
bench_overall_elapsed="`$ELP --seconds $bench_start_time`"
|
||||
if test $bench_overall_elapsed -ge $MAXTIME ; then
|
||||
break;
|
||||
fi
|
||||
@@ -1101,7 +1105,7 @@ EOF
|
||||
break
|
||||
fi
|
||||
|
||||
bench_overall_elapsed="`eval \\\"$ELP\\\" --seconds $bench_start_time`"
|
||||
bench_overall_elapsed="`$ELP --seconds $bench_start_time`"
|
||||
|
||||
# undo the hypersample increase back one step
|
||||
bench_hypersample="`expr \( \( $bench_hypersample + 1 \) / 2 \) - 1`"
|
||||
@@ -1122,7 +1126,7 @@ EOF
|
||||
ls -la *.pix*
|
||||
fi
|
||||
$VERBOSE_ECHO "DEBUG: $CMP $PIX/${bench_testname}.pix ${bench_testname}.pix"
|
||||
cmp_result="`eval \\\"${CMP}\\\" \\\"${PIX}/${bench_testname}.pix\\\" ${bench_testname}.pix 2>&1`"
|
||||
cmp_result="`${CMP} ${PIX}/${bench_testname}.pix ${bench_testname}.pix 2>&1`"
|
||||
ret=$?
|
||||
|
||||
$ECHO "$cmp_result"
|
||||
@@ -1177,8 +1181,8 @@ perf ( ) {
|
||||
perf_ref_files=""
|
||||
perf_cur_files=""
|
||||
for perf_test in $perf_tests ; do
|
||||
perf_ref_log="${LOG}/${perf_test}.log"
|
||||
perf_cur_log="${perf_test}.log"
|
||||
perf_ref_log=${LOG}/${perf_test}.log
|
||||
perf_cur_log=${perf_test}.log
|
||||
for perf_log in "$perf_cur_log" "$perf_ref_log" ; do
|
||||
if test ! "x$perf_log" = "x" ; then
|
||||
if test ! -f "$perf_log" ; then
|
||||
@@ -1186,7 +1190,7 @@ perf ( ) {
|
||||
fi
|
||||
fi
|
||||
done
|
||||
perf_ref_files="$perf_ref_files \"$perf_ref_log\""
|
||||
perf_ref_files="$perf_ref_files $perf_ref_log"
|
||||
perf_cur_files="$perf_cur_files $perf_cur_log"
|
||||
done
|
||||
|
||||
@@ -1196,8 +1200,8 @@ perf ( ) {
|
||||
#
|
||||
# FIXME: should really iterate one file at a time so we don't
|
||||
# just zero-pad at the end
|
||||
perf_VGRREF="`eval grep RTFM $perf_ref_files | sed -n -e 's/^.*= *//' -e 's/ rays.*//p' | tr '\012' '\011' `"
|
||||
perf_CURVALS="`eval grep RTFM $perf_cur_files | sed -n -e 's/^.*= *//' -e 's/ rays.*//p' | tr '\012' '\011' `"
|
||||
perf_VGRREF=`grep RTFM $perf_ref_files | sed -n -e 's/^.*= *//' -e 's/ rays.*//p' | tr '\012' '\011' `
|
||||
perf_CURVALS=`grep RTFM $perf_cur_files | sed -n -e 's/^.*= *//' -e 's/ rays.*//p' | tr '\012' '\011' `
|
||||
|
||||
# if there were no reference values, we cannot compute timings
|
||||
if test "x$perf_VGRREF" = "x" ; then
|
||||
@@ -1292,7 +1296,7 @@ $ECHO "Running the BRL-CAD Benchmark tests... please wait ..."
|
||||
$ECHO
|
||||
ret=0
|
||||
|
||||
bench moss all.g $RTARGS << EOF
|
||||
bench moss all.g $ARGS << EOF
|
||||
viewsize 1.572026215e+02;
|
||||
eye_pt 6.379990387e+01 3.271768951e+01 3.366661453e+01;
|
||||
viewrot -5.735764503e-01 8.191520572e-01 0.000000000e+00 0.000000000e+00
|
||||
@@ -1302,7 +1306,7 @@ viewrot -5.735764503e-01 8.191520572e-01 0.000000000e+00 0.000000000e+00
|
||||
EOF
|
||||
ret=`expr $ret + $?`
|
||||
|
||||
bench world all.g $RTARGS << EOF
|
||||
bench world all.g $ARGS << EOF
|
||||
viewsize 1.572026215e+02;
|
||||
eye_pt 6.379990387e+01 3.271768951e+01 3.366661453e+01;
|
||||
viewrot -5.735764503e-01 8.191520572e-01 0.000000000e+00 0.000000000e+00
|
||||
@@ -1312,7 +1316,7 @@ viewrot -5.735764503e-01 8.191520572e-01 0.000000000e+00 0.000000000e+00
|
||||
EOF
|
||||
ret=`expr $ret + $?`
|
||||
|
||||
bench star all $RTARGS << EOF
|
||||
bench star all $ARGS << EOF
|
||||
viewsize 2.500000000e+05;
|
||||
eye_pt 2.102677960e+05 8.455500000e+04 2.934714650e+04;
|
||||
viewrot -6.733560560e-01 6.130643360e-01 4.132114880e-01 0.000000000e+00
|
||||
@@ -1322,7 +1326,7 @@ viewrot -6.733560560e-01 6.130643360e-01 4.132114880e-01 0.000000000e+00
|
||||
EOF
|
||||
ret=`expr $ret + $?`
|
||||
|
||||
bench bldg391 all.g $RTARGS << EOF
|
||||
bench bldg391 all.g $ARGS << EOF
|
||||
viewsize 1.800000000e+03;
|
||||
eye_pt 6.345012207e+02 8.633251343e+02 8.310771484e+02;
|
||||
viewrot -5.735764503e-01 8.191520572e-01 0.000000000e+00 0.000000000e+00
|
||||
@@ -1332,7 +1336,7 @@ viewrot -5.735764503e-01 8.191520572e-01 0.000000000e+00 0.000000000e+00
|
||||
EOF
|
||||
ret=`expr $ret + $?`
|
||||
|
||||
bench m35 all.g $RTARGS <<EOF
|
||||
bench m35 all.g $ARGS <<EOF
|
||||
viewsize 6.787387985e+03;
|
||||
eye_pt 3.974533127e+03 1.503320754e+03 2.874633221e+03;
|
||||
viewrot -5.527838919e-01 8.332423558e-01 1.171090926e-02 0.000000000e+00
|
||||
@@ -1342,7 +1346,7 @@ viewrot -5.527838919e-01 8.332423558e-01 1.171090926e-02 0.000000000e+00
|
||||
EOF
|
||||
ret=`expr $ret + $?`
|
||||
|
||||
bench sphflake scene.r $RTARGS <<EOF
|
||||
bench sphflake scene.r $ARGS <<EOF
|
||||
viewsize 2.556283261452611e+04;
|
||||
orientation 4.406810841785839e-01 4.005093234738861e-01 5.226451688385938e-01 6.101102288499644e-01;
|
||||
eye_pt 2.418500583758302e+04 -3.328563644344796e+03 8.489926952850350e+03;
|
||||
@@ -1352,7 +1356,7 @@ ret=`expr $ret + $?`
|
||||
$ECHO
|
||||
$ECHO "... Done."
|
||||
$ECHO
|
||||
$ECHO "Total testing time elapsed: `eval \\\"$ELP\\\" $start`"
|
||||
$ECHO "Total testing time elapsed: `$ELP $start`"
|
||||
|
||||
# see if we fail
|
||||
if test ! "x$ret" = "x0" ; then
|
||||
@@ -1361,7 +1365,7 @@ if test ! "x$ret" = "x0" ; then
|
||||
$ECHO
|
||||
$ECHO "A benchmark failure means this is not a viable install of BRL-CAD. This may be"
|
||||
$ECHO "a new bug or (more likely) is a compilation configuration error. Ensure your"
|
||||
$ECHO "compiler has strict aliasing disabled, compilation is optimized, and you have"
|
||||
$ECHO "compiler has strict aliasing disabled, compilation is unoptimized, and you have"
|
||||
$ECHO "installed BRL-CAD (some platforms require this). If you still get a failure,"
|
||||
$ECHO "please report your configuration information to benchmark@brlcad.org"
|
||||
$ECHO
|
||||
@@ -1376,8 +1380,8 @@ fi
|
||||
# compute and output results #
|
||||
##############################
|
||||
|
||||
performance="`perf 'moss world star bldg391 m35 sphflake' $RTARGS 2>&1`"
|
||||
|
||||
performance="`perf 'moss world star bldg391 m35 sphflake' $ARGS`"
|
||||
if test $? = 0 ; then
|
||||
cat >> summary <<EOF
|
||||
$performance
|
||||
@@ -1493,7 +1497,7 @@ else
|
||||
blankit=no
|
||||
|
||||
# BSD+
|
||||
look_for executable "a sysctl command" SYSCTL_CMD `echo "$PATH" | tr ":" "\n" | tr " " "\ " | sed 's/$/\/sysctl/g'`
|
||||
look_for executable "a sysctl command" SYSCTL_CMD `echo "$PATH" | tr ":" "\n" | sed 's/$/\/sysctl/g'`
|
||||
if test ! "x$SYSCTL_CMD" = "x" ; then
|
||||
$ECHO "Collecting system state information (via $SYSCTL_CMD)"
|
||||
preQUIET="$QUIET"
|
||||
@@ -1508,7 +1512,7 @@ else
|
||||
fi
|
||||
|
||||
# Solaris
|
||||
look_for executable "a prtdiag command" PRTDIAG_CMD `echo "$PATH" | tr ":" "\n" | tr " " "\ " | sed 's/$/\/prtdiag/g'`
|
||||
look_for executable "a prtdiag command" PRTDIAG_CMD `echo "$PATH" | tr ":" "\n" | sed 's/$/\/prtdiag/g'`
|
||||
if test ! "x$PRTDIAG_CMD" = "x" ; then
|
||||
$ECHO "Collecting system diagnostics information (via $PRTDIAG_CMD)"
|
||||
preQUIET="$QUIET"
|
||||
@@ -1521,7 +1525,7 @@ else
|
||||
fi
|
||||
|
||||
# AIX
|
||||
look_for executable "a prtconf command" PRTCONF_CMD `echo "$PATH" | tr ":" "\n" | tr " " "\ " | sed 's/$/\/prtconf/g'`
|
||||
look_for executable "a prtconf command" PRTCONF_CMD `echo "$PATH" | tr ":" "\n" | sed 's/$/\/prtconf/g'`
|
||||
if test ! "x$PRTCONF_CMD" = "x" ; then
|
||||
$ECHO "Collecting system configuration information (via $PRTCONF_CMD)"
|
||||
preQUIET="$QUIET"
|
||||
@@ -1534,7 +1538,7 @@ else
|
||||
fi
|
||||
|
||||
# SGI
|
||||
look_for executable "an hinv command" HINV_CMD `echo "$PATH" | tr ":" "\n" | tr " " "\ " | sed 's/$/\/hinv/g'`
|
||||
look_for executable "an hinv command" HINV_CMD `echo "$PATH" | tr ":" "\n" | sed 's/$/\/hinv/g'`
|
||||
if test ! "x$HINV_CMD" = "x" ; then
|
||||
$ECHO "Collecting system configuration information (via $HINV_CMD)"
|
||||
preQUIET="$QUIET"
|
||||
@@ -1560,7 +1564,7 @@ else
|
||||
fi
|
||||
|
||||
# Linux+
|
||||
look_for executable "an lscpu command" LSCPU_CMD `echo "$PATH" | tr ":" "\n" | tr " " "\ " | sed 's/$/\/lscpu/g'`
|
||||
look_for executable "an lscpu command" LSCPU_CMD `echo $PATH | tr ":" "\n" | sed 's/$/\/lscpu/g'`
|
||||
if test ! "x$LSCPU_CMD" = "x" ; then
|
||||
$ECHO "Collecting system CPU information (via $LSCPU_CMD)"
|
||||
preQUIET="$QUIET"
|
||||
@@ -1579,12 +1583,12 @@ fi
|
||||
|
||||
# tell about the benchmark document
|
||||
look_for file "" BENCHMARK_TR \
|
||||
"${PATH_TO_THIS}/../share/brlcad/*.*.*/doc/benchmark.tr" \
|
||||
"${PATH_TO_THIS}/share/brlcad/*.*.*/doc/benchmark.tr" \
|
||||
"${PATH_TO_THIS}/share/brlcad/doc/benchmark.tr" \
|
||||
"${PATH_TO_THIS}/share/doc/benchmark.tr" \
|
||||
"${PATH_TO_THIS}/doc/benchmark.tr" \
|
||||
"${PATH_TO_THIS}/../doc/benchmark.tr" \
|
||||
${PATH_TO_THIS}/../share/brlcad/*.*.*/doc/benchmark.tr \
|
||||
${PATH_TO_THIS}/share/brlcad/*.*.*/doc/benchmark.tr \
|
||||
${PATH_TO_THIS}/share/brlcad/doc/benchmark.tr \
|
||||
${PATH_TO_THIS}/share/doc/benchmark.tr \
|
||||
${PATH_TO_THIS}/doc/benchmark.tr \
|
||||
${PATH_TO_THIS}/../doc/benchmark.tr \
|
||||
./benchmark.tr
|
||||
|
||||
$ECHO "Read the benchmark.tr document for more details on the BRL-CAD Benchmark."
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
# T R Y . S H
|
||||
# BRL-CAD
|
||||
#
|
||||
# Copyright (c) 2004-2020 United States Government as represented by
|
||||
# Copyright (c) 2004-2014 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
# V I E W D I F F . S H
|
||||
# BRL-CAD
|
||||
#
|
||||
# Copyright (c) 2004-2020 United States Government as represented by
|
||||
# Copyright (c) 2004-2014 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -10,9 +10,9 @@ while [ "$1" != "" ]
|
||||
do
|
||||
case $1
|
||||
in
|
||||
--enable-all) options="$options -DBRLCAD_BUNDLED_LIBS=BUNDLED";
|
||||
--enable-all) options="$options -DBRLCAD_BUNDLED_LIBS=ON";
|
||||
shift;;
|
||||
--disable-all) options="$options -DBRLCAD_BUNDLED_LIBS=SYSTEM";
|
||||
--disable-all) options="$options -DBRLCAD_BUNDLED_LIBS=OFF";
|
||||
shift;;
|
||||
--enable-opengl) options="$options -DBRLCAD_ENABLE_OPENGL=ON";
|
||||
shift;;
|
||||
@@ -70,6 +70,14 @@ do
|
||||
shift;;
|
||||
--disable-all-cxx) options="$options -DENABLE_ALL_CXX_COMPILE=OFF";
|
||||
shift;;
|
||||
--enable-posix) options="$options -DENABLE_POSIX_COMPLIANCE=ON";
|
||||
shift;;
|
||||
--disable-posix) options="$options -DENABLE_POSIX_COMPLIANCE=OFF";
|
||||
shift;;
|
||||
--strict-iso-c) options="$options -DENABLE_STRICT_COMPILER_STANDARD_COMPLIANCE=ON";
|
||||
shift;;
|
||||
--strict-iso-c) options="$options -DENABLE_STRICT_COMPILER_STANDARD_COMPLIANCE=OFF";
|
||||
shift;;
|
||||
--enable-docs) options="$options -DBRLCAD_EXTRADOCS=ON";
|
||||
shift;;
|
||||
--disable-docs) options="$options -DBRLCAD_EXTRADOCS=OFF";
|
||||
@@ -118,14 +126,18 @@ do
|
||||
shift;;
|
||||
--disable-libz) options="$options -DBRLCAD_ZLIB=SYSTEM";
|
||||
shift;;
|
||||
--enable-freetype) options="$options -DBRLCAD_FREETYPE=BUNDLED";
|
||||
shift;;
|
||||
--disable-freetype) options="$options -DBRLCAD_FREETYPE=SYSTEM";
|
||||
shift;;
|
||||
--enable-termlib) options="$options -DBRLCAD_TERMLIB=BUNDLED";
|
||||
shift;;
|
||||
--disable-termlib) options="$options -DBRLCAD_TERMLIB=SYSTEM";
|
||||
shift;;
|
||||
--enable-png) options="$options -DBRLCAD_PNG=BUNDLED";
|
||||
shift;;
|
||||
--disable-png) options="$options -DBRLCAD_PNG=SYSTEM";
|
||||
shift;;
|
||||
--enable-netpbm) options="$options -DBRLCAD_NETPBM=BUNDLED";
|
||||
shift;;
|
||||
--disable-netpbm) options="$options -DBRLCAD_NETPBM=SYSTEM";
|
||||
shift;;
|
||||
--enable-utahrle) options="$options -DBRLCAD_UTAHRLE=BUNDLED";
|
||||
shift;;
|
||||
--disable-utahrle) options="$options -DBRLCAD_UTAHRLE=SYSTEM";
|
||||
@@ -154,6 +166,10 @@ do
|
||||
shift;;
|
||||
--disable-tkhtml) options="$options -DBRLCAD_TKHTML=SYSTEM";
|
||||
shift;;
|
||||
--enable-tkpng) options="$options -DBRLCAD_TKPNG=BUNDLED";
|
||||
shift;;
|
||||
--disable-tkpng) options="$options -DBRLCAD_TKPNG=SYSTEM";
|
||||
shift;;
|
||||
--enable-tktable) options="$options -DBRLCAD_TKTABLE=BUNDLED";
|
||||
shift;;
|
||||
--disable-tktable) options="$options -DBRLCAD_TKTABLE=SYSTEM";
|
||||
@@ -162,10 +178,6 @@ do
|
||||
shift;;
|
||||
--disable-opennurbs) options="$options -DBRLCAD_OPENNURBS=SYSTEM";
|
||||
shift;;
|
||||
--enable-spsr) options="$options -DBRLCAD_SPSR=BUNDLED";
|
||||
shift;;
|
||||
--disable-spsr) options="$options -DBRLCAD_SPSR=SYSTEM";
|
||||
shift;;
|
||||
--enable-scl) options="$options -DBRLCAD_SC=BUNDLED";
|
||||
shift;;
|
||||
--disable-scl) options="$options -DBRLCAD_SC=SYSTEM";
|
||||
@@ -190,13 +202,9 @@ do
|
||||
shift;;
|
||||
--disable-gdiam) options="$options -DBRLCAD_GDIAM=SYSTEM";
|
||||
shift;;
|
||||
--enable-proj4) options="$options -DBRLCAD_PROJ4=BUNDLED";
|
||||
--enable-bullet) options="$options -DBRLCAD_BULLET=BUNDLED";
|
||||
shift;;
|
||||
--disable-proj4) options="$options -DBRLCAD_PROJ4=SYSTEM";
|
||||
shift;;
|
||||
--enable-gdal) options="$options -DBRLCAD_GDAL=BUNDLED";
|
||||
shift;;
|
||||
--disable-gdal) options="$options -DBRLCAD_GDAL=SYSTEM";
|
||||
--disable-bullet) options="$options -DBRLCAD_BULLET=SYSTEM";
|
||||
shift;;
|
||||
--prefix=*) inputstr=$1;
|
||||
options="$options -DCMAKE_INSTALL_PREFIX=${inputstr#--prefix=}";
|
||||
|
||||
+41
-174
@@ -1,125 +1,3 @@
|
||||
# There is quite a bit of shared logic for the various converters when it comes
|
||||
# to building .g outputs, so we use a single function to manage the process and
|
||||
# handle format-specific bits internally. TODO - we probably need to add
|
||||
# optional argument support here later to support (say) specifying a specific
|
||||
# COMGEOM or STEP format version...
|
||||
|
||||
function(ADD_G_TARGET in_model folder)
|
||||
|
||||
# Initialize
|
||||
set(MODEL_TYPE "UNKNOWN")
|
||||
|
||||
# Get our root path
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(bin_root "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
|
||||
else(CMAKE_CONFIGURATION_TYPES)
|
||||
set(bin_root "${CMAKE_BINARY_DIR}")
|
||||
endif(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
# Find our conversion type
|
||||
set(model_types "3dm;asc;comgeom;fg4;stp")
|
||||
foreach(mt ${model_types})
|
||||
if("${MODEL_TYPE}" STREQUAL "UNKNOWN")
|
||||
if("${in_model}" MATCHES ".${mt}$")
|
||||
set(MODEL_TYPE "${mt}")
|
||||
string(REGEX REPLACE "([0-9a-z]*).${mt}" "\\1" in_model_root "${in_model}")
|
||||
endif("${in_model}" MATCHES ".${mt}$")
|
||||
endif("${MODEL_TYPE}" STREQUAL "UNKNOWN")
|
||||
endforeach(mt ${model_types})
|
||||
if("${MODEL_TYPE}" STREQUAL "UNKNOWN")
|
||||
message(FATAL_ERROR "Unable to identify input model type for file ${in_model}")
|
||||
endif("${MODEL_TYPE}" STREQUAL "UNKNOWN")
|
||||
|
||||
# Find our output file and path
|
||||
string(REPLACE "${CMAKE_SOURCE_DIR}/" "" rel_dir "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
set(output_file ${DATA_DIR}/${rel_dir}/${in_model_root}.g)
|
||||
set(log_file ${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.log)
|
||||
|
||||
# Make sure the output db target directories are there
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/${CFG_TYPE}/${DATA_DIR}/${rel_dir}")
|
||||
endforeach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
else(CMAKE_CONFIGURATION_TYPES)
|
||||
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/${DATA_DIR}/${rel_dir}")
|
||||
endif(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
#############################################################################
|
||||
# Build logic
|
||||
#############################################################################
|
||||
|
||||
# The 3DM conversion is rather different than the general pattern at the
|
||||
# moment (However, the 3dm approach is probably the "wave of the future" in
|
||||
# the sense that it uses libgcv...)
|
||||
if(${MODEL_TYPE} STREQUAL "3dm")
|
||||
|
||||
set(INPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}")
|
||||
set(OUTPUT_FILE "${output_file}")
|
||||
# Use the model name for the script, since the output file is specific to this input
|
||||
configure_file("${CMAKE_SOURCE_DIR}/db/conv_run.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake" @ONLY)
|
||||
|
||||
# Define the target
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
|
||||
COMMAND ${CMAKE_COMMAND} -DEXEC=$<TARGET_FILE:3dm-g> -P "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake"
|
||||
DEPENDS 3dm-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
|
||||
)
|
||||
|
||||
endif(${MODEL_TYPE} STREQUAL "3dm")
|
||||
|
||||
# The rest of the conversions follow the simpler/older pattern:
|
||||
|
||||
if(${MODEL_TYPE} STREQUAL "asc")
|
||||
if (BRLCAD_ENABLE_TCL)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
|
||||
COMMAND asc2g "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}" ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
|
||||
DEPENDS asc2g "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}"
|
||||
)
|
||||
endif (BRLCAD_ENABLE_TCL)
|
||||
endif(${MODEL_TYPE} STREQUAL "asc")
|
||||
|
||||
if(${MODEL_TYPE} STREQUAL "comgeom")
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
|
||||
COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
|
||||
COMMAND comgeom-g -v 5 ${CMAKE_CURRENT_SOURCE_DIR}/${in_model} ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} > ${log_file} 2>&1
|
||||
DEPENDS comgeom-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
|
||||
)
|
||||
endif(${MODEL_TYPE} STREQUAL "comgeom")
|
||||
|
||||
if(${MODEL_TYPE} STREQUAL "fg4")
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
|
||||
COMMAND fast4-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model} ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} > ${log_file} 2>&1
|
||||
DEPENDS fast4-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
|
||||
)
|
||||
endif(${MODEL_TYPE} STREQUAL "fg4")
|
||||
|
||||
if(${MODEL_TYPE} STREQUAL "stp")
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
|
||||
COMMAND step-g -O ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} ${CMAKE_CURRENT_SOURCE_DIR}/${in_model} > ${log_file} 2>&1
|
||||
DEPENDS step-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
|
||||
)
|
||||
endif(${MODEL_TYPE} STREQUAL "stp")
|
||||
|
||||
if(NOT ${MODEL_TYPE} STREQUAL "asc" OR BRLCAD_ENABLE_TCL)
|
||||
add_custom_target(${in_model_root}.g ALL DEPENDS ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file})
|
||||
set_target_properties(${in_model_root}.g PROPERTIES FOLDER "${folder}")
|
||||
|
||||
# Install logic
|
||||
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
install(FILES ${CMAKE_CURRENT_BUILD_DIR_INSTALL}/${output_file} DESTINATION ${DATA_DIR}/${rel_dir})
|
||||
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
|
||||
# Clean-up
|
||||
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${log_file}")
|
||||
DISTCLEAN("${log_file}")
|
||||
endif(NOT ${MODEL_TYPE} STREQUAL "asc" OR BRLCAD_ENABLE_TCL)
|
||||
|
||||
endfunction(ADD_G_TARGET in_model folder)
|
||||
|
||||
set(G_BENCHMARK_MODELS
|
||||
bldg391.asc
|
||||
m35.asc
|
||||
@@ -130,9 +8,7 @@ set(G_BENCHMARK_MODELS
|
||||
)
|
||||
|
||||
set(G_SAMPLE_MODELS
|
||||
aet.asc
|
||||
axis.asc
|
||||
bearing.asc
|
||||
boolean-ops.asc
|
||||
castle.asc
|
||||
cornell.asc
|
||||
@@ -141,7 +17,6 @@ set(G_SAMPLE_MODELS
|
||||
crod.asc
|
||||
cube.asc
|
||||
demo.asc
|
||||
die.asc
|
||||
galileo.asc
|
||||
goliath.asc
|
||||
havoc.asc
|
||||
@@ -152,7 +27,6 @@ set(G_SAMPLE_MODELS
|
||||
pic.asc
|
||||
pinewood.asc
|
||||
prim.asc
|
||||
rounds.asc
|
||||
tank_car.asc
|
||||
terra.asc
|
||||
toyjeep.asc
|
||||
@@ -161,70 +35,63 @@ set(G_SAMPLE_MODELS
|
||||
woodsman.asc
|
||||
xmp.asc
|
||||
)
|
||||
add_subdirectory(chess)
|
||||
add_subdirectory(comgeom)
|
||||
add_subdirectory(nist)
|
||||
add_subdirectory(faa)
|
||||
|
||||
macro(ADD_G_TARGET g_model folder)
|
||||
string(REGEX REPLACE "([0-9a-z]*).asc" "\\1" g_model_root "${g_model}")
|
||||
set(output_file ${bin_root}/${DATA_DIR}/db/${g_model_root}.g)
|
||||
add_custom_command(
|
||||
OUTPUT ${output_file}
|
||||
COMMAND asc2g ${CMAKE_CURRENT_SOURCE_DIR}/${g_model} ${output_file}
|
||||
DEPENDS asc2g ${CMAKE_CURRENT_SOURCE_DIR}/${g_model}
|
||||
)
|
||||
add_custom_target(${g_model_root}.g ALL DEPENDS ${output_file})
|
||||
set_target_properties(${g_model_root}.g PROPERTIES FOLDER "${folder}")
|
||||
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
if(NOT "${CMAKE_CFG_INTDIR}" STREQUAL "." AND CMAKE_CONFIGURATION_FILES)
|
||||
string(REPLACE "${CMAKE_CFG_INTDIR}" "\${BUILD_TYPE}" output_file "${output_file}")
|
||||
endif(NOT "${CMAKE_CFG_INTDIR}" STREQUAL "." AND CMAKE_CONFIGURATION_FILES)
|
||||
install(FILES ${output_file} DESTINATION ${DATA_DIR}/db)
|
||||
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
set(BUILT_MODELS "${BUILT_MODELS};${output_file}")
|
||||
endmacro(ADD_G_TARGET g_model folder)
|
||||
|
||||
|
||||
# Get our root path
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
set(bin_root "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
|
||||
else(CMAKE_CONFIGURATION_TYPES)
|
||||
set(bin_root "${CMAKE_BINARY_DIR}")
|
||||
endif(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
# Make sure the db directories are there
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${CFG_TYPE}/${DATA_DIR}/db)
|
||||
endforeach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
|
||||
else(CMAKE_CONFIGURATION_TYPES)
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/${DATA_DIR}/db)
|
||||
endif(CMAKE_CONFIGURATION_TYPES)
|
||||
|
||||
foreach(g_input ${G_BENCHMARK_MODELS})
|
||||
ADD_G_TARGET(${g_input} "BRL-CAD Geometry Models/Benchmark")
|
||||
endforeach(g_input ${G_BENCHMARK_MODELS})
|
||||
CMAKEFILES(${G_BENCHMARK_MODELS})
|
||||
|
||||
foreach(g_input ${G_SAMPLE_MODELS})
|
||||
ADD_G_TARGET(${g_input} "BRL-CAD Geometry Models/Sample")
|
||||
endforeach(g_input ${G_SAMPLE_MODELS})
|
||||
CMAKEFILES(${G_SAMPLE_MODELS})
|
||||
|
||||
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${BUILT_MODELS}")
|
||||
|
||||
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
BRLCAD_ADDDATA(terra.dsp db)
|
||||
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
|
||||
|
||||
if(SH_EXEC)
|
||||
set(conversion_g_files)
|
||||
set(conversion_g_files_fp)
|
||||
set(conversion_deps_list)
|
||||
|
||||
if (BRLCAD_ENABLE_TCL)
|
||||
macro(Sh_Conversion_Test gfile depends_list)
|
||||
add_custom_target(convert-${gfile} COMMAND ${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:mged> ${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${gfile})
|
||||
set_target_properties(convert-${gfile} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
|
||||
set_target_properties(convert-${gfile} PROPERTIES FOLDER "BRL-CAD Conversion Tests")
|
||||
set(conversion_g_files ${conversion_g_files} ${gfile})
|
||||
if(NOT "${depends_list}" STREQUAL "")
|
||||
add_dependencies(convert-${gfile} ${depends_list})
|
||||
set(conversion_deps_list ${conversion_deps_list} ${depends_list})
|
||||
endif(NOT "${depends_list}" STREQUAL "")
|
||||
endmacro(Sh_Conversion_Test)
|
||||
|
||||
foreach(g_input ${G_BENCHMARK_MODELS})
|
||||
get_filename_component(GROOT "${g_input}" NAME_WE)
|
||||
Sh_Conversion_Test(${GROOT}.g "mged")
|
||||
endforeach(g_input ${G_BENCHMARK_MODELS})
|
||||
foreach(g_input ${G_SAMPLE_MODELS})
|
||||
get_filename_component(GROOT "${g_input}" NAME_WE)
|
||||
Sh_Conversion_Test(${GROOT}.g "mged")
|
||||
endforeach(g_input ${G_SAMPLE_MODELS})
|
||||
|
||||
list(REMOVE_DUPLICATES conversion_deps_list)
|
||||
foreach(gfile ${conversion_g_files})
|
||||
set(conversion_g_files_fp ${conversion_g_files_fp} "${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${gfile}")
|
||||
endforeach(gfile ${conversion_g_files})
|
||||
add_custom_target(convert COMMAND ${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:mged> ${conversion_g_files_fp})
|
||||
set_target_properties(convert PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
|
||||
set_target_properties(convert PROPERTIES FOLDER "BRL-CAD Conversion Tests")
|
||||
add_dependencies(convert ${conversion_deps_list})
|
||||
endif (BRLCAD_ENABLE_TCL)
|
||||
endif(SH_EXEC)
|
||||
|
||||
CMAKEFILES(
|
||||
${G_BENCHMARK_MODELS}
|
||||
${G_SAMPLE_MODELS}
|
||||
CMakeLists.txt
|
||||
aet.rt
|
||||
cornell.rt
|
||||
cube.rt
|
||||
db.php
|
||||
include/ctype.inc
|
||||
include/debug.inc
|
||||
include
|
||||
)
|
||||
|
||||
# Local Variables:
|
||||
|
||||
-68
@@ -1,68 +0,0 @@
|
||||
title {Untitled BRL-CAD Database}
|
||||
units mm
|
||||
put {xyzringtrc.s} tgc V {0.31168735027313232421875 0.31356084346771240234375 0.2343517243862152099609375} H {-0.02296111360192298889160156 -0.02476786263287067413330078 0.03948847576975822448730469} A {-0.003937630914151668548583984 -0.02411045134067535400390625 -0.01741208322346210479736328} B {0.02662250958383083343505859 -0.01068659685552120208740234 0.008777192793786525726318359} C {-3.937628207495436072349548E-05 -0.0002411044843029230833053589 -0.0001741207961458712816238403} D {0.0002662249607965350151062012 -0.0001068659257725812494754791 8.77717902767471969127655E-05}
|
||||
put {viewdirtrc.s} tgc V {0.08660250157117843627929688 0.08660250157117843627929688 0.08660250157117843627929688} H {-0.07794228941202163696289062 -0.07794228941202163696289062 -0.07794228941202163696289062} A {0 0.02828427031636238098144531 -0.02828427031636238098144531} B {0.03265986219048500061035156 -0.01632993109524250030517578 -0.01632993109524250030517578} C {0 0.000212132028536871075630188 -0.000212132028536871075630188} D {0.0002449489838909357786178589 -0.0001224744919454678893089294 -0.0001224744919454678893089294}
|
||||
put {twistpanel.r} comb region yes tree {l twistpanel.c}
|
||||
attr set {twistpanel.r} {color} {232/198/232} {shader} {glass {tr 0.6}} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
|
||||
put {xyzringcut.c} comb region no tree {- {- {- {- {- {- {- {- {- {- {l ringxyztor.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut4.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l viewdirrcc.s}} {l xyzcutrcc.s}} {l xyzringtrc.s}}
|
||||
put {viewdirrcc.s} tgc V {0.779421329498291015625 0.779421329498291015625 0.779421329498291015625} H {-0.6928203105926513671875 -0.6928203105926513671875 -0.6928203105926513671875} A {0 0.007071067579090595245361328 -0.007071067579090595245361328} B {0.008164965547621250152587891 -0.004082482773810625076293945 -0.004082482773810625076293945} C {0 0.007071067579090595245361328 -0.007071067579090595245361328} D {0.008164965547621250152587891 -0.004082482773810625076293945 -0.004082482773810625076293945}
|
||||
put {twistpanel.c} comb region no tree {- {- {- {l twistrcc.s} {l twisttor.s}} {l twisttrc.s}} {l viewdirrcc.s}}
|
||||
put {ringxytor.s} tor V {0 0 0} H {0 0 1} r_a 0.5 r_h 0.009999999776482582092285156
|
||||
put {twistring.r} comb region yes tree {l twistring.c}
|
||||
attr set {twistring.r} {color} {232/198/232} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
|
||||
put {xyringtrc.s} tgc V {0.3913685381412506103515625 0.3006020486354827880859375 -0.0009004921885207295417785645} H {-0.03143119439482688903808594 0.04401883110404014587402344 -0.0006720747915096580982208252} A {0.02089671231806278228759766 0.01464617997407913208007812 -0.01800444535911083221435547} B {-0.01446941774338483810424805 -0.01072130445390939712524414 -0.02551533468067646026611328} C {0.0002089670742861926555633545 0.0001464617671445012092590332 -0.0001800443860702216625213623} D {-0.0001446941751055419445037842 -0.0001072130180546082556247711 -0.0002551533398218452930450439}
|
||||
put {xyzcutrcc.s} arb8 V1 {0.285196959972381591796875 0.223926544189453125 0.2792418301105499267578125} V2 {0.3270788453519344329833984 0.2655878327786922454833984 0.2198253460228443145751953} V3 {0.3691307827830314636230469 0.3075636327266693115234375 0.2788994473521597683429718} V4 {0.3272488489747047424316406 0.2659022919833660125732422 0.3383159413933753967285156} V5 {0.2260562554001808166503906 0.2832767628133296966552734 0.2791691728780278936028481} V6 {0.2679381202906370162963867 0.3249380290508270263671875 0.2197526805102825164794922} V7 {0.3099901042878627777099609 0.366913974285125732421875 0.2788267984578851610422134} V8 {0.2681080885231494903564453 0.3252525255084037780761719 0.3382433503866195678710938}
|
||||
put {xyringcut.c} comb region no tree {- {- {- {- {- {- {- {- {- {l ringxytor.s} {l cut0.s}} {l cut1.s}} {l cut3.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l ringxyztor.s}} {l xycutrcc.s}} {l xyringtrc.s}}
|
||||
put {testdisks.c} comb region no tree {u {- {- {- {l xyzrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {- {- {- {- {- {l xyrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut3.s}} {l cut0.s}}}
|
||||
put {twistring.c} comb region no tree {u {- {- {l twisttor.s} {l twistcut.s}} {l twisttrc.s}} {l twisttrc.s}}
|
||||
put {halfplane.s} half N {0 0 1} d -0.536277353763580322265625
|
||||
put {halfplane.r} comb region yes tree {l halfplane.s}
|
||||
attr set {halfplane.r} {color} {255/255/255} {shader} {stack {{phong {sp 0.05 di 0.95}} }} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
|
||||
put {twisttor.s} tor V {0.449999988079071044921875 0.449999988079071044921875 0.449999988079071044921875} H {-0.577350269189625731058868 -0.577350269189625731058868 -0.577350269189625731058868} r_a 0.1500000016475442066177237 r_h 0.01000000030444709100962974
|
||||
put {twistcut.s} part V {0.3950000000000000177635684 0.3850000000000000088817842 0.5649999999999999467092948} H {0.0003640000000000000114804 -0.0003699999999999999946917462 -0.0005000000000000000104083409} r_v 0.02800000000000000058286709 r_h 0.02800000000000000058286709
|
||||
put {twisttrc.s} tgc V {0.37255561351776123046875 0.40711653232574462890625 0.57051956653594970703125} H {0.03641721233725547790527344 -0.03706122934818267822265625 -0.0005011741304770112037658691} A {0.01779515855014324188232422 0.01750466972589492797851562 -0.001385415205731987953186035} B {0.001156966434791684150695801 0.0007993413601070642471313477 0.02496042102575302124023438} C {0.0001779512967914342880249023 0.0001750463998178020119667053 -1.385413543175673112273216E-05} D {1.156978123617591336369514E-05 7.993325198185630142688751E-06 0.0002496042288839817047119141}
|
||||
put {xyzpanel.r} comb region yes tree {l xyzcut.c}
|
||||
attr set {xyzpanel.r} {color} {205/253/172} {shader} {glass {tr 0.6}} {region} {R} {region_id} {1003} {material_id} {1} {los} {100}
|
||||
put {twistrcc.s} tgc V {0.4472982883453369140625 0.4472982883453369140625 0.4472982883453369140625} H {0.005773502867668867111206055 0.005773502867668867111206055 0.005773502867668867111206055} A {0 -0.1060660183429718017578125 0.1060660183429718017578125} B {0.1224744841456413269042969 -0.06123724207282066345214844 -0.06123724207282066345214844} C {0 -0.1060660183429718017578125 0.1060660183429718017578125} D {0.1224744841456413269042969 -0.06123724207282066345214844 -0.06123724207282066345214844}
|
||||
put {xycutrcc.s} arb8 V1 {0.4098457992076873779296875 0.330240428447723388671875 -0.03679068386554718017578125} V2 {0.3675903864204883575439453 0.3863152638077735900878906 -0.03679068386160150305741467} V3 {0.3675903864204883575439453 0.3863152638077735900878906 0.03342260420322418212890625} V4 {0.4098457992100617008901509 0.3302404284445723536833839 0.03342260420322418212890625} V5 {0.3537709638476371765136719 0.2879850156605243682861328 -0.03679068386554718017578125} V6 {0.3115155547857284545898438 0.3440598426386713981628418 -0.03679068386160150305741467} V7 {0.3115155547857284545898438 0.3440598426386713981628418 0.03342260420322418212890625} V8 {0.3537709638476371765136719 0.2879850156605243682861328 0.03342260420322418212890625}
|
||||
put {cutdisks.c} comb region no tree {- {- {- {- {- {l disks.c} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut3.s}} {l cut4.s}}
|
||||
put {twistcut.s.backu} ell V {0.3945335447788238525390625 0.383843958377838134765625 0.5655720233917236328125} A {0.03095294535160064697265625 -0.0002858481311704963445663452 -0.0002035317302215844392776489} B {0.0002871743054129183292388916 0.03095294535160064697265625 0.0002016565413214266300201416} C {0.0002016565558733418583869934 -0.0002035317156696692109107971 0.03095364384353160858154297}
|
||||
put {xyzring.r} comb region yes tree {u {l xyzringcut.c} {l xyzringtrc.s}}
|
||||
attr set {xyzring.r} {color} {230/253/215} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1005} {material_id} {1} {los} {100}
|
||||
put {viewdir.r} comb region yes tree {l viewdir.c}
|
||||
attr set {viewdir.r} {color} {253/227/198} {shader} {phong {tr .1 ri 1.5 sh 2}} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
|
||||
put {xypanel.r} comb region yes tree {l xycut.c}
|
||||
attr set {xypanel.r} {color} {178/221/243} {shader} {glass {tr 0.6}} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
|
||||
put {diagram.r} comb region no tree {u {u {u {l arrows.r} {l twistpanel.r}} {u {l twistring.r} {l xypanel.r}}} {u {u {l xyring.r} {l xyzpanel.r}} {u {l xyzring.r} {l viewdir.r}}}}
|
||||
put {viewdir.c} comb region no tree {u {l viewdirrcc.s} {- {- {- {l viewdirtrc.s} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}}}
|
||||
put {arrows.r} comb region yes tree {l coordinates.c}
|
||||
attr set {arrows.r} {color} {217/217/254} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
|
||||
put {xyring.r} comb region yes tree {u {l xyringcut.c} {l xyringtrc.s}}
|
||||
attr set {xyring.r} {color} {206/230/242} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1004} {material_id} {1} {los} {100}
|
||||
put {ground.s} ell V {0 0 -10000.08984375} A {10000 0 0} B {0 6.12303176911188629105709E-13 10000} C {0 -10000 6.12303176911188629105709E-13}
|
||||
put {xyzcut.c} comb region no tree {- {- {- {- {- {- {- {- {- {- {- {l xyzrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut4.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l viewdirtrc.s}} {l viewdirrcc.s}} {l ringxyztor.s}} {l xyzringtrc.s}}
|
||||
put {ground.r} comb region yes tree {l ground.c}
|
||||
attr set {ground.r} {color} {255/255/255} {shader} {stack {{checker {b {192 192 192} s 8192.0}} {phong {sp 0.8 sh 4 em .5}} }} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
|
||||
put {xyzrcc.s} tgc V {0.005014000460505485534667969 -0.004998999647796154022216797 7.123547086408665851564592E-19} H {-0.009999999776482582092285156 0.009999999776482582092285156 0} A {-0.356000006198883056640625 -0.356000006198883056640625 0} B {0 0 0.5} C {-0.356000006198883056640625 -0.356000006198883056640625 0} D {0 0 0.5}
|
||||
put {ground.c} comb region no tree {l ground.s}
|
||||
put {disks2.c} comb region no tree {u {- {- {- {- {l xyzrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l xyrcc.s}} {- {- {- {l xyrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}}}
|
||||
put {light.s} ell V {-98.451141357421875 103.03456878662109375 200.0417633056640625} A {14 0 0} B {0 14 0} C {0 0 14}
|
||||
put {light.r} comb region yes tree {l light.s}
|
||||
attr set {light.r} {color} {255/255/255} {shader} {light {a 270 d {1 0 0} s 16 v 0}} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
|
||||
put {xyrcc.s} tgc V {0 0 -0.004999999888241291046142578} H {0 0 0.009999999776482582092285156} A {0 -0.5 0} B {0.5 0 0} C {0 -0.5 0} D {0.5 0 0}
|
||||
put {xycut.c} comb region no tree {- {- {- {- {- {- {- {- {- {- {- {l xyrcc.s} {l cut0.s}} {l cut1.s}} {l cut3.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l xyzrcc.s}} {l ringxytor.s}} {l viewdirtrc.s}} {l xyringtrc.s}} {l viewdirrcc.s}}
|
||||
put {disks.c} comb region no tree {u {- {l xyzrcc.s} {l xyrcc.s}} {l xyrcc.s}}
|
||||
put {rings.c} comb region no tree {u {l ringxytor.s} {l ringxyztor.s}}
|
||||
put {ztec.s} tgc V {0 0 1} H {0 0 0.1000000014901161193847656} A {0.02999999932944774627685547 0 0} B {0 0.02999999932944774627685547 0} C {0.0003000000142492353916168213 0 0} D {0 0.0003000000142492353916168213 0}
|
||||
put {ytec.s} tgc V {0 1 0} H {0 0.1000000014901161193847656 0} A {0.02999999932944774627685547 0 0} B {0 0 0.02999999932944774627685547} C {0.0003000000142492353916168213 0 0} D {0 0 0.0003000000142492353916168213}
|
||||
put {xtec.s} tgc V {1 0 0} H {0.1000000014901161193847656 0 0} A {0 0.02999999932944774627685547 0} B {0 0 0.02999999932944774627685547} C {0 0.0003000000142492353916168213 0} D {0 0 0.0003000000142492353916168213}
|
||||
put {zrcc.s} tgc V {0 0 0} H {0 0 1} A {0 -0.009999999776482582092285156 0} B {0.009999999776482582092285156 0 0} C {0 -0.009999999776482582092285156 0} D {0.009999999776482582092285156 0 0}
|
||||
put {yrcc.s} tgc V {0 0 0} H {0 1 0} A {0 0 0.009999999776482582092285156} B {0.009999999776482582092285156 0 0} C {0 0 0.009999999776482582092285156} D {0.009999999776482582092285156 0 0}
|
||||
put {xrcc.s} tgc V {0 0 0} H {1 0 0} A {0 0 -0.009999999776482582092285156} B {0 0.009999999776482582092285156 0} C {0 0 -0.009999999776482582092285156} D {0 0.009999999776482582092285156 0}
|
||||
put {cut4.s} arb8 V1 {1 1 1} V2 {1 -1 1} V3 {-1 -1 1} V4 {-1 1 1} V5 {-1 -1 -1} V6 {-1 -1 -1} V7 {-1 -1 -1} V8 {-1 -1 -1}
|
||||
put {cut3.s} arb8 V1 {1.010072231292724609375 1.0000178813934326171875 1.010089874267578125} V2 {1.010072231292724831419605 1.0000178813934326171875 -1.0000002384185791015625} V3 {-1.0000178813934326171875 -1.010072231292724609375 -1.0000002384185791015625} V4 {-1.0000178813934326171875 -1.010072231292724609375 1.01008987426757901317842} V5 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625} V6 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625} V7 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625} V8 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625}
|
||||
put {cut2.s} arb8 V1 {1 -1 -1.0051000118255615234375} V2 {1 1 -1.0051000118255615234375} V3 {1 1 -0.0051000118255615234375} V4 {1 -1 -0.0051000118255615234375} V5 {-1 -1 -1.0051000118255615234375} V6 {-1 1 -1.0051000118255615234375} V7 {-1 1 -0.0051000118255615234375} V8 {-1 -1 -0.0051000118255615234375}
|
||||
put {cut1.s} arb8 V1 {0 -1 -1} V2 {0 1 -1} V3 {0 1 1} V4 {0 -1 1} V5 {-1 -1 -1} V6 {-1 1 -1} V7 {-1 1 1} V8 {-1 -1 1}
|
||||
put {cut0.s} arb8 V1 {1 -1 -1} V2 {1 0 -1} V3 {1 0 1} V4 {1 -1 1} V5 {-1 -1 -1} V6 {-1 0 -1} V7 {-1 0 1} V8 {-1 -1 1}
|
||||
put {coordinates.c} comb region no tree {u {u {u {u {u {- {- {l xrcc.s} {l yrcc.s}} {l zrcc.s}} {- {- {l yrcc.s} {l xrcc.s}} {l zrcc.s}}} {- {- {l zrcc.s} {l xrcc.s}} {l yrcc.s}}} {l xtec.s}} {l ytec.s}} {l ztec.s}}
|
||||
put {ringxyztor.s} tor V {0 0 0} H {-0.7071067811865475727373109 0.7071067811865475727373109 0} r_a 0.4999999914428644998132256 r_h 0.009999999670806607177109271
|
||||
@@ -1,13 +0,0 @@
|
||||
#!/bin/sh
|
||||
rt -M -p50 -W \
|
||||
$*\
|
||||
aet.g\
|
||||
'diagram.r' \
|
||||
<<EOF
|
||||
viewsize 3.58095758486442e+00;
|
||||
orientation 4.58468551319667e-01 5.46381543126676e-01 5.36927647047512e-01 4.50535790606452e-01;
|
||||
eye_pt 2.16300884070308e+00 6.60866025843505e-01 3.68751836397137e-01;
|
||||
start 0; clean;
|
||||
end;
|
||||
|
||||
EOF
|
||||
@@ -1,43 +0,0 @@
|
||||
title {Single Row 7-ball Deep Groove 608Z Ball Bearing, 8mm ID x 22mm OD x 7mm}
|
||||
units mm
|
||||
put {ballgroove.s} tor V {0 0 0} H {0 1 0} r_a 7.5 r_h 2
|
||||
put {innerringrightround.s} tor V {0 3.399999999999999911182158 0} H {0 1 0} r_a 4.099999999999999644728632 r_h 0.1000000000000000055511151
|
||||
put {outerringmainin.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 9.599999999999999644728632} B {9.599999999999999644728632 0 0} C {0 0 9.599999999999999644728632} D {9.599999999999999644728632 0 0}
|
||||
put {outerringmaincenter.s} tgc V {0 -3.399999999999999911182158 0} H {0 6.799999999999999822364316 0} A {0 0 11} B {11 0 0} C {0 0 11} D {11 0 0}
|
||||
put {innerring2.s} tgc V {0 -3.399999999999999911182158 0} H {0 6.799999999999999822364316 0} A {0 0 5.400000000000000355271368} B {5.400000000000000355271368 0 0} C {0 0 5.400000000000000355271368} D {5.400000000000000355271368 0 0}
|
||||
put {innerring2leftround.s} tor V {0 -3.399999999999999911182158 0} H {0 1 0} r_a 5.299999999999999822364316 r_h 0.1000000000000000055511151
|
||||
put {outerringmaininrightround.s} tor V {0 3.399999999999999911182158 0} H {0 0.9999999999999998889776975 0} r_a 9.599999999999999644728632 r_h 0.1000000000000000055511151
|
||||
put {outerringinner2.s} tgc V {0 -2.200000000000000177635684 0} H {0 4.400000000000000355271368 0} A {0 0 9.5} B {9.5 0 0} C {0 0 9.5} D {9.5 0 0}
|
||||
put {outerringmainleftround.s} tor V {0 -3.399999999999999911182158 0} H {0 0.9999999999999998889776975 0} r_a 10.90000000000000035527137 r_h 0.1000000000000000055511151
|
||||
put {outerring.r} comb region yes tree {u {u {u {u {u {u {u {u {u {- {- {l outerringmaincenter.s} {l outerringmainfullcut.s}} {l ballgroove.s}} {- {- {l outerringmainout.s} {l outerringmainin.s}} {l ballgroove.s}}} {- {- {l outerringinner.s} {l outerringinnercut.s}} {l ballgroove.s}}} {- {- {l outerringinner2.s} {l outerringinnercut2.s}} {l ballgroove.s}}} {l outerringmainleftround.s}} {l outerringmainrightround.s}} {l outerringmaininleftround.s}} {l outerringmaininrightround.s}} {l outerringinnerrightround.s}} {l outerringinnerleftround.s}}
|
||||
attr set {outerring.r} {region} {R} {region_id} {1010} {material_id} {1} {los} {100}
|
||||
put {innerring.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 5.299999999999999822364316} B {5.299999999999999822364316 0 0} C {0 0 5.299999999999999822364316} D {5.299999999999999822364316 0 0}
|
||||
put {innerring.r} comb region yes tree {u {u {u {u {u {u {u {u {- {- {l innneroutercenter.s} {l ballgroove.s}} {l shaftcut1.s}} {- {- {l innerring.s} {l ballgroove.s}} {l shaftcut2.s}}} {- {- {l innerring2.s} {l ballgroove.s}} {l shaftcut1.s}}} {- {l innerlefttrc.s} {l shaftcut1.s}}} {- {l innerrighttrc.s} {l shaftcut1.s}}} {l innerring2leftround.s}} {l innerring2rightround.s}} {l innerringleftround.s}} {l innerringrightround.s}}
|
||||
attr set {innerring.r} {region} {R} {region_id} {1004} {material_id} {1} {los} {100}
|
||||
put {shaftcut2.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 4.099999999999999644728632} B {4.099999999999999644728632 0 0} C {0 0 4.099999999999999644728632} D {4.099999999999999644728632 0 0}
|
||||
put {shaftcut1.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 4} B {4 0 0} C {0 0 4} D {4 0 0}
|
||||
put {outerringinner.s} tgc V {0 -2.299999999999999822364316 0} H {0 4.599999999999999644728632 0} A {0 0 9.5} B {9.5 0 0} C {0 0 9.5} D {9.5 0 0}
|
||||
put {innerringleftround.s} tor V {0 -3.399999999999999911182158 0} H {0 1 0} r_a 4.099999999999999644728632 r_h 0.1000000000000000055511151
|
||||
put {outerringinnercut2.s} tgc V {0 -2.299999999999999822364316 0} H {0 4.599999999999999644728632 0} A {0 0 9} B {9 0 0} C {0 0 9} D {9 0 0}
|
||||
put {outerringinnerrightround.s} tor V {0 2.200000000000000177635684 0} H {0 0.9999999999999998889776975 0} r_a 9.099999999999999644728632 r_h 0.1000000000000000055511151
|
||||
put {innerrighttrc.s} tgc V {0 2.5 0} H {0 0.2000000000000000111022302 0} A {0 0 6.200000000000000177635684} B {6.200000000000000177635684 0 0} C {0 0 5.400000000000000355271368} D {5.400000000000000355271368 0 0}
|
||||
put {outerringmaininleftround.s} tor V {0 -3.399999999999999911182158 0} H {0 0.9999999999999998889776975 0} r_a 9.599999999999999644728632 r_h 0.1000000000000000055511151
|
||||
put {outerringinnercut.s} tgc V {0 -2.299999999999999822364316 0} H {0 4.599999999999999644728632 0} A {0 0 9.099999999999999644728632} B {9.099999999999999644728632 0 0} C {0 0 9.099999999999999644728632} D {9.099999999999999644728632 0 0}
|
||||
put {innneroutercenter.s} tgc V {0 -2.5 0} H {0 5 0} A {0 0 6.200000000000000177635684} B {6.200000000000000177635684 0 0} C {0 0 6.200000000000000177635684} D {6.200000000000000177635684 0 0}
|
||||
put {bearing} comb region no tree {u {u {l outerring.r} {l innerring.r}} {l balls.r}}
|
||||
attr set {bearing} {shader} {glass}
|
||||
put {balls.r} comb region yes tree {u {u {u {l ball101} {l ball201}} {u {l ball301} {l ball401}}} {u {u {l ball501} {l ball601}} {l ball701}}}
|
||||
attr set {balls.r} {region} {R} {region_id} {1011} {material_id} {1} {los} {100}
|
||||
put {innerlefttrc.s} tgc V {0 -2.5 0} H {0 -0.2000000000000000111022302 0} A {0 0 -6.200000000000000177635684} B {6.200000000000000177635684 0 0} C {0 0 -5.400000000000000355271368} D {5.400000000000000355271368 0 0}
|
||||
put {ball701} ell V {1.836909530733565887317127E-15 0 -7.5} A {2 0 4.898425415289509032845672E-16} B {0 2 0} C {-4.898425415289509032845672E-16 0 2}
|
||||
put {ball601} ell V {5.57358619108045960643949 0 -5.018479547691433673151096} A {1.338261212717715586961731 0 1.486289650954789154368996} B {0 2 0} C {-1.486289650954789154368996 0 1.338261212717715586961731}
|
||||
put {ball501} ell V {7.386058147591560540945466 0 1.302361332501977386755243} A {-0.3472963553338606623732687 0 1.969615506024416040631309} B {0 2 0} C {-1.969615506024416040631309 0 -0.3472963553338606623732687}
|
||||
put {ball401} ell V {3.521036720894181293317615 0 6.622106946441951969006823} A {-1.765895185717853754781004 0 0.9389431255717817226269517} B {0 2 0} C {-0.9389431255717817226269517 0 -1.765895185717853754781004}
|
||||
put {ball301} ell V {-3.050524823068503366130244 0 6.851590932319505888870026} A {-1.827090915285201511153446 0 -0.8134732861516008606272976} B {0 2 0} C {0.8134732861516008606272976 0 -1.827090915285201511153446}
|
||||
put {ball201} ell V {-7.277217947069973824625322 0 1.814414216997508377815507} A {-0.4838437911993355711182119 0 -1.940591452551992945885218} B {0 2 0} C {1.940591452551992945885218 0 -0.4838437911993355711182119}
|
||||
put {ball101} ell V {-5.910080652050415217502177 0 -4.617461064942436799185543} A {1.231322950651316583403627 0 -1.576021507213444028394633} B {0 2 0} C {1.576021507213444028394633 0 1.231322950651316583403627}
|
||||
put {outerringmainfullcut.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 9.5} B {9.5 0 0} C {0 0 9.5} D {9.5 0 0}
|
||||
put {outerringmainout.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 10.90000000000000035527137} B {10.90000000000000035527137 0 0} C {0 0 10.90000000000000035527137} D {10.90000000000000035527137 0 0}
|
||||
put {innerring2rightround.s} tor V {0 3.399999999999999911182158 0} H {0 1 0} r_a 5.299999999999999822364316 r_h 0.1000000000000000055511151
|
||||
put {outerringinnerleftround.s} tor V {0 -2.200000000000000177635684 0} H {0 0.9999999999999998889776975 0} r_a 9.099999999999999644728632 r_h 0.1000000000000000055511151
|
||||
put {outerringmainrightround.s} tor V {0 3.399999999999999911182158 0} H {0 0.9999999999999998889776975 0} r_a 10.90000000000000035527137 r_h 0.1000000000000000055511151
|
||||
@@ -1,25 +0,0 @@
|
||||
set(CHESS_PARTS
|
||||
bishop.asc
|
||||
chessboard.asc
|
||||
king.asc
|
||||
knight.asc
|
||||
pawn.asc
|
||||
queen.asc
|
||||
rook.asc
|
||||
)
|
||||
|
||||
foreach(piece ${CHESS_PARTS})
|
||||
ADD_G_TARGET(${piece} "BRL-CAD Geometry Models/Sample/Chess")
|
||||
endforeach(piece ${CHESS_PARTS})
|
||||
|
||||
CMAKEFILES(
|
||||
${CHESS_PARTS}
|
||||
CMakeLists.txt
|
||||
)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
@@ -1,27 +0,0 @@
|
||||
title {Bishop by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
|
||||
put {bottometo.s} eto V {0 0 20} N {0 0 0.06032399549610674427402301} C {2.864077970686895735497046 1.71612229850775266370988 1.889299368274914403542653} r 7.634087276719064618646371 r_d 1.673109642593672896637713
|
||||
put {head_fill.s} tgc V {0 0 58.80223912679091569088996} H {0 0 22.65963591768163354345234} A {5.387125525462328923254063 0 0} B {0 5.387125525462328923254063 0} C {5.200376920059111007788033 0 0} D {0 5.200376920059111007788033 0}
|
||||
put {head_bulb.c} comb region no tree {u {u {u {l head_tip.s} {l headeto1.s}} {u {l headeto2.s} {l headeto3.s}}} {u {l headtor.s} {l head_fill.s}}}
|
||||
put {head_tip.s} ell V {0 0 87.04042899999969051805238} A {4.122892005997910835901621 0 0} B {0 4.122892005997910835901621 0} C {0 0 1.842941974166217855568561}
|
||||
put {headeto3.s} eto V {4.688718984760804335454747E-15 0 59.13440800000000763247954} N {-7.947115565380555332745523E-18 0 -0.06489312323286719474957351} C {-4.236592184243099801221888 2.53851689495714083477651 -2.794683321910145679112247} r 6.747558139033351665148075 r_d 2.154325975943817361724086
|
||||
put {headeto2.s} eto V {0 0 69.75203000000003328295861} N {1.448859083826348923311558E-17 0 0.05915416121754862865955715} C {3.216284115722051861752107 0.07864296900740583295963404 7.027901354553716117834483} r 5.71636407530149437405953 r_d 5.245951427846474501848206
|
||||
put {headeto1.s} eto V {0 0 78.93410500000000240561349} N {-6.702751448643837023482541E-18 0 -0.05473211911638976162608472} C {-4.89647969165551177894713 -1.380861880325698898275277 -7.149314636959307023289512} r 5.669699999999999739941359 r_d 2.770284953476933154092876
|
||||
put {bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 8.61686192136895989790446 r_h 0.9710977822416242410952236
|
||||
put {bodycut.s} tor V {0 0 44.99824699999995658572516} H {6.12323399573676603586882E-17 0 1} r_a 84.47809976324354863663757 r_h 78.38786126059979153524182
|
||||
put {headtor.s} tor V {0 0 61.97812700000005747824616} H {3.061616997868383634231992E-16 0 1} r_a 8.239894264539179502548905 r_h 0.9722303169289367996697138
|
||||
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
|
||||
put {headcut.s} rpc V {12.21216100000001958392204 7.476746999999903664502199 83.68170200000177771926246} H {-23.87939453125 2.601874869850522123907568E-16 1.438855652391413561129983E-15} B {-6.645126338810317127466624E-16 -8.09669190546901518246159 -9.5641987525274494430505} r 1.903339211850920698054779
|
||||
put {bishop.r} comb region yes tree {l bishop.c {1 0 0 0 0 1 0 0 0 0 1 0.960356 0 0 0 1}}
|
||||
attr set {bishop.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
|
||||
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
|
||||
put {bishop.c} comb region no tree {u {u {l head.c} {l body.c}} {l bottom.c}}
|
||||
put {scene.g} comb region no tree {u {l bishop.r} {l tile.r}}
|
||||
put {body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 56.83007219556699851636949} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {tile.r} comb region yes tree {l tile.s}
|
||||
attr set {tile.r} {oshader} {plastic {sh 1}} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {body.c} comb region no tree {u {- {l body.s} {l bodycut.s}} {l bodytor.s}}
|
||||
put {head.c} comb region no tree {- {l head_bulb.c} {l headcut.s}}
|
||||
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
@@ -1,83 +0,0 @@
|
||||
title {Chessboard by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {board_cuts.c} comb region no tree {u {u {l boardcut1.s} {l boardcut2.s}} {u {l boardcut3.s} {l boardcut4.s}}}
|
||||
put {tiles_dark.r} comb region yes tree {l tiles_dark.c}
|
||||
attr set {tiles_dark.r} {oshader} {plastic} {region} {R} {shader} {plastic {re 0.1 sp 0.8 di 0.2}} {region_id} {1000} {material_id} {1} {los} {100} {color} {75/45/47}
|
||||
put {wood_plane.s} arb8 V1 {313.5 -313.5 -15} V2 {313.5 313.5 -15} V3 {313.5 313.5 5} V4 {313.5 -313.5 5} V5 {-313.5 -313.5 -15} V6 {-313.5 313.5 -15} V7 {-313.5 313.5 5} V8 {-313.5 -313.5 5}
|
||||
put {tiles_dark.c} comb region no tree {u {u {u {u {u {l a1.s} {l c1.s}} {u {l e1.s} {l g1.s}}} {u {u {l b2.s} {l d2.s}} {u {l f2.s} {l h2.s}}}} {u {u {u {l a3.s} {l c3.s}} {u {l e3.s} {l g3.s}}} {u {u {l b4.s} {l d4.s}} {u {l f4.s} {l h4.s}}}}} {u {u {u {u {l a5.s} {l c5.s}} {u {l e5.s} {l g5.s}}} {u {u {l b6.s} {l d6.s}} {u {l f6.s} {l h6.s}}}} {u {u {u {l a7.s} {l c7.s}} {u {l e7.s} {l g7.s}}} {u {u {l b8.s} {l d8.s}} {u {l f8.s} {l h8.s}}}}}}
|
||||
put {boardcut4.s} tgc V {-313.5 -313.5 5} H {-3.839267715326952574428091E-14 627 3.839267715326952574428091E-14} A {3.749399456654646756500121E-32 -6.123233995736770226692379E-16 10} B {42.75 2.617682533177467341666965E-15 0} C {3.74939945665464456697127E-32 -6.123233995736766282387853E-16 10} D {42.75 2.617682533177467341666965E-15 0}
|
||||
put {boardcut3.s} tgc V {313.5 -313.5 5} H {-627 0 3.839267715326952574428091E-14} A {6.123233995736770226692379E-16 0 10} B {0 42.75 0} C {6.123233995736766282387853E-16 0 10} D {0 42.75 0}
|
||||
put {boardcut2.s} tgc V {313.5 -313.5 5} H {-3.839267715326952574428091E-14 627 3.839267715326952574428091E-14} A {3.749399456654646756500121E-32 -6.123233995736770226692379E-16 10} B {42.75 2.617682533177467341666965E-15 0} C {3.74939945665464456697127E-32 -6.123233995736766282387853E-16 10} D {42.75 2.617682533177467341666965E-15 0}
|
||||
put {boardcut1.s} tgc V {313.5 313.5 5} H {-627 0 3.839267715326952574428091E-14} A {6.123233995736770226692379E-16 0 10} B {0 42.75 0} C {6.123233995736766282387853E-16 0 10} D {0 42.75 0}
|
||||
put {border.r} comb region yes tree {- {- {l wood_plane.s} {l tiles.c}} {l board_cuts.c}}
|
||||
attr set {border.r} {oshader} {plastic} {region} {R} {shader} {plastic {re 0.1 sp 0.8 di 0.2}} {region_id} {1002} {material_id} {1} {los} {100} {color} {245/227/174}
|
||||
put {tiles.c} comb region no tree {u {l tiles_light.r} {l tiles_dark.r}}
|
||||
put {board.g} comb region no tree {u {l tiles.c} {l border.r}}
|
||||
put {tiles_light.r} comb region yes tree {l tiles_light.c}
|
||||
attr set {tiles_light.r} {oshader} {plastic} {region} {R} {shader} {plastic {re 0.1 sp 0.8 di 0.2}} {region_id} {1001} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {h8.s} arb8 V1 {228 171 0} V2 {228 228 0} V3 {228 228 5} V4 {228 171 5} V5 {171 171 0} V6 {171 228 0} V7 {171 228 5} V8 {171 171 5}
|
||||
put {g8.s} arb8 V1 {171 171 0} V2 {171 228 0} V3 {171 228 5} V4 {171 171 5} V5 {114 171 0} V6 {114 228 0} V7 {114 228 5} V8 {114 171 5}
|
||||
put {f8.s} arb8 V1 {114 171 0} V2 {114 228 0} V3 {114 228 5} V4 {114 171 5} V5 {57 171 0} V6 {57 228 0} V7 {57 228 5} V8 {57 171 5}
|
||||
put {h7.s} arb8 V1 {228 114 0} V2 {228 171 0} V3 {228 171 5} V4 {228 114 5} V5 {171 114 0} V6 {171 171 0} V7 {171 171 5} V8 {171 114 5}
|
||||
put {e8.s} arb8 V1 {57 171 0} V2 {57 228 0} V3 {57 228 5} V4 {57 171 5} V5 {0 171 0} V6 {0 228 0} V7 {0 228 5} V8 {0 171 5}
|
||||
put {g7.s} arb8 V1 {171 114 0} V2 {171 171 0} V3 {171 171 5} V4 {171 114 5} V5 {114 114 0} V6 {114 171 0} V7 {114 171 5} V8 {114 114 5}
|
||||
put {d8.s} arb8 V1 {0 171 0} V2 {0 228 0} V3 {0 228 5} V4 {0 171 5} V5 {-57 171 0} V6 {-57 228 0} V7 {-57 228 5} V8 {-57 171 5}
|
||||
put {f7.s} arb8 V1 {114 114 0} V2 {114 171 0} V3 {114 171 5} V4 {114 114 5} V5 {57 114 0} V6 {57 171 0} V7 {57 171 5} V8 {57 114 5}
|
||||
put {h6.s} arb8 V1 {228 57 0} V2 {228 114 0} V3 {228 114 5} V4 {228 57 5} V5 {171 57 0} V6 {171 114 0} V7 {171 114 5} V8 {171 57 5}
|
||||
put {c8.s} arb8 V1 {-57 171 0} V2 {-57 228 0} V3 {-57 228 5} V4 {-57 171 5} V5 {-114 171 0} V6 {-114 228 0} V7 {-114 228 5} V8 {-114 171 5}
|
||||
put {e7.s} arb8 V1 {57 114 0} V2 {57 171 0} V3 {57 171 5} V4 {57 114 5} V5 {0 114 0} V6 {0 171 0} V7 {0 171 5} V8 {0 114 5}
|
||||
put {g6.s} arb8 V1 {171 57 0} V2 {171 114 0} V3 {171 114 5} V4 {171 57 5} V5 {114 57 0} V6 {114 114 0} V7 {114 114 5} V8 {114 57 5}
|
||||
put {b8.s} arb8 V1 {-114 171 0} V2 {-114 228 0} V3 {-114 228 5} V4 {-114 171 5} V5 {-171 171 0} V6 {-171 228 0} V7 {-171 228 5} V8 {-171 171 5}
|
||||
put {d7.s} arb8 V1 {0 114 0} V2 {0 171 0} V3 {0 171 5} V4 {0 114 5} V5 {-57 114 0} V6 {-57 171 0} V7 {-57 171 5} V8 {-57 114 5}
|
||||
put {f6.s} arb8 V1 {114 57 0} V2 {114 114 0} V3 {114 114 5} V4 {114 57 5} V5 {57 57 0} V6 {57 114 0} V7 {57 114 5} V8 {57 57 5}
|
||||
put {h5.s} arb8 V1 {228 0 0} V2 {228 57 0} V3 {228 57 5} V4 {228 0 5} V5 {171 0 0} V6 {171 57 0} V7 {171 57 5} V8 {171 0 5}
|
||||
put {a8.s} arb8 V1 {-171 171 0} V2 {-171 228 0} V3 {-171 228 5} V4 {-171 171 5} V5 {-228 171 0} V6 {-228 228 0} V7 {-228 228 5} V8 {-228 171 5}
|
||||
put {c7.s} arb8 V1 {-57 114 0} V2 {-57 171 0} V3 {-57 171 5} V4 {-57 114 5} V5 {-114 114 0} V6 {-114 171 0} V7 {-114 171 5} V8 {-114 114 5}
|
||||
put {e6.s} arb8 V1 {57 57 0} V2 {57 114 0} V3 {57 114 5} V4 {57 57 5} V5 {0 57 0} V6 {0 114 0} V7 {0 114 5} V8 {0 57 5}
|
||||
put {g5.s} arb8 V1 {171 0 0} V2 {171 57 0} V3 {171 57 5} V4 {171 0 5} V5 {114 0 0} V6 {114 57 0} V7 {114 57 5} V8 {114 0 5}
|
||||
put {b7.s} arb8 V1 {-114 114 0} V2 {-114 171 0} V3 {-114 171 5} V4 {-114 114 5} V5 {-171 114 0} V6 {-171 171 0} V7 {-171 171 5} V8 {-171 114 5}
|
||||
put {d6.s} arb8 V1 {0 57 0} V2 {0 114 0} V3 {0 114 5} V4 {0 57 5} V5 {-57 57 0} V6 {-57 114 0} V7 {-57 114 5} V8 {-57 57 5}
|
||||
put {f5.s} arb8 V1 {114 0 0} V2 {114 57 0} V3 {114 57 5} V4 {114 0 5} V5 {57 0 0} V6 {57 57 0} V7 {57 57 5} V8 {57 0 5}
|
||||
put {h4.s} arb8 V1 {228 -57 0} V2 {228 0 0} V3 {228 0 5} V4 {228 -57 5} V5 {171 -57 0} V6 {171 0 0} V7 {171 0 5} V8 {171 -57 5}
|
||||
put {a7.s} arb8 V1 {-171 114 0} V2 {-171 171 0} V3 {-171 171 5} V4 {-171 114 5} V5 {-228 114 0} V6 {-228 171 0} V7 {-228 171 5} V8 {-228 114 5}
|
||||
put {c6.s} arb8 V1 {-57 57 0} V2 {-57 114 0} V3 {-57 114 5} V4 {-57 57 5} V5 {-114 57 0} V6 {-114 114 0} V7 {-114 114 5} V8 {-114 57 5}
|
||||
put {e5.s} arb8 V1 {57 0 0} V2 {57 57 0} V3 {57 57 5} V4 {57 0 5} V5 {0 0 0} V6 {0 57 0} V7 {0 57 5} V8 {0 0 5}
|
||||
put {g4.s} arb8 V1 {171 -57 0} V2 {171 0 0} V3 {171 0 5} V4 {171 -57 5} V5 {114 -57 0} V6 {114 0 0} V7 {114 0 5} V8 {114 -57 5}
|
||||
put {b6.s} arb8 V1 {-114 57 0} V2 {-114 114 0} V3 {-114 114 5} V4 {-114 57 5} V5 {-171 57 0} V6 {-171 114 0} V7 {-171 114 5} V8 {-171 57 5}
|
||||
put {d5.s} arb8 V1 {0 0 0} V2 {0 57 0} V3 {0 57 5} V4 {0 0 5} V5 {-57 0 0} V6 {-57 57 0} V7 {-57 57 5} V8 {-57 0 5}
|
||||
put {f4.s} arb8 V1 {114 -57 0} V2 {114 0 0} V3 {114 0 5} V4 {114 -57 5} V5 {57 -57 0} V6 {57 0 0} V7 {57 0 5} V8 {57 -57 5}
|
||||
put {h3.s} arb8 V1 {228 -114 0} V2 {228 -57 0} V3 {228 -57 5} V4 {228 -114 5} V5 {171 -114 0} V6 {171 -57 0} V7 {171 -57 5} V8 {171 -114 5}
|
||||
put {a6.s} arb8 V1 {-171 57 0} V2 {-171 114 0} V3 {-171 114 5} V4 {-171 57 5} V5 {-228 57 0} V6 {-228 114 0} V7 {-228 114 5} V8 {-228 57 5}
|
||||
put {c5.s} arb8 V1 {-57 0 0} V2 {-57 57 0} V3 {-57 57 5} V4 {-57 0 5} V5 {-114 0 0} V6 {-114 57 0} V7 {-114 57 5} V8 {-114 0 5}
|
||||
put {e4.s} arb8 V1 {57 -57 0} V2 {57 0 0} V3 {57 0 5} V4 {57 -57 5} V5 {0 -57 0} V6 {0 0 0} V7 {0 0 5} V8 {0 -57 5}
|
||||
put {g3.s} arb8 V1 {171 -114 0} V2 {171 -57 0} V3 {171 -57 5} V4 {171 -114 5} V5 {114 -114 0} V6 {114 -57 0} V7 {114 -57 5} V8 {114 -114 5}
|
||||
put {b5.s} arb8 V1 {-114 0 0} V2 {-114 57 0} V3 {-114 57 5} V4 {-114 0 5} V5 {-171 0 0} V6 {-171 57 0} V7 {-171 57 5} V8 {-171 0 5}
|
||||
put {d4.s} arb8 V1 {0 -57 0} V2 {0 0 0} V3 {0 0 5} V4 {0 -57 5} V5 {-57 -57 0} V6 {-57 0 0} V7 {-57 0 5} V8 {-57 -57 5}
|
||||
put {f3.s} arb8 V1 {114 -114 0} V2 {114 -57 0} V3 {114 -57 5} V4 {114 -114 5} V5 {57 -114 0} V6 {57 -57 0} V7 {57 -57 5} V8 {57 -114 5}
|
||||
put {h2.s} arb8 V1 {228 -171 0} V2 {228 -114 0} V3 {228 -114 5} V4 {228 -171 5} V5 {171 -171 0} V6 {171 -114 0} V7 {171 -114 5} V8 {171 -171 5}
|
||||
put {a5.s} arb8 V1 {-171 0 0} V2 {-171 57 0} V3 {-171 57 5} V4 {-171 0 5} V5 {-228 0 0} V6 {-228 57 0} V7 {-228 57 5} V8 {-228 0 5}
|
||||
put {c4.s} arb8 V1 {-57 -57 0} V2 {-57 0 0} V3 {-57 0 5} V4 {-57 -57 5} V5 {-114 -57 0} V6 {-114 0 0} V7 {-114 0 5} V8 {-114 -57 5}
|
||||
put {e3.s} arb8 V1 {57 -114 0} V2 {57 -57 0} V3 {57 -57 5} V4 {57 -114 5} V5 {0 -114 0} V6 {0 -57 0} V7 {0 -57 5} V8 {0 -114 5}
|
||||
put {g2.s} arb8 V1 {171 -171 0} V2 {171 -114 0} V3 {171 -114 5} V4 {171 -171 5} V5 {114 -171 0} V6 {114 -114 0} V7 {114 -114 5} V8 {114 -171 5}
|
||||
put {b4.s} arb8 V1 {-114 -57 0} V2 {-114 0 0} V3 {-114 0 5} V4 {-114 -57 5} V5 {-171 -57 0} V6 {-171 0 0} V7 {-171 0 5} V8 {-171 -57 5}
|
||||
put {d3.s} arb8 V1 {0 -114 0} V2 {0 -57 0} V3 {0 -57 5} V4 {0 -114 5} V5 {-57 -114 0} V6 {-57 -57 0} V7 {-57 -57 5} V8 {-57 -114 5}
|
||||
put {f2.s} arb8 V1 {114 -171 0} V2 {114 -114 0} V3 {114 -114 5} V4 {114 -171 5} V5 {57 -171 0} V6 {57 -114 0} V7 {57 -114 5} V8 {57 -171 5}
|
||||
put {h1.s} arb8 V1 {228 -228 0} V2 {228 -171 0} V3 {228 -171 5} V4 {228 -228 5} V5 {171 -228 0} V6 {171 -171 0} V7 {171 -171 5} V8 {171 -228 5}
|
||||
put {a4.s} arb8 V1 {-171 -57 0} V2 {-171 0 0} V3 {-171 0 5} V4 {-171 -57 5} V5 {-228 -57 0} V6 {-228 0 0} V7 {-228 0 5} V8 {-228 -57 5}
|
||||
put {c3.s} arb8 V1 {-57 -114 0} V2 {-57 -57 0} V3 {-57 -57 5} V4 {-57 -114 5} V5 {-114 -114 0} V6 {-114 -57 0} V7 {-114 -57 5} V8 {-114 -114 5}
|
||||
put {e2.s} arb8 V1 {57 -171 0} V2 {57 -114 0} V3 {57 -114 5} V4 {57 -171 5} V5 {0 -171 0} V6 {0 -114 0} V7 {0 -114 5} V8 {0 -171 5}
|
||||
put {g1.s} arb8 V1 {171 -228 0} V2 {171 -171 0} V3 {171 -171 5} V4 {171 -228 5} V5 {114 -228 0} V6 {114 -171 0} V7 {114 -171 5} V8 {114 -228 5}
|
||||
put {b3.s} arb8 V1 {-114 -114 0} V2 {-114 -57 0} V3 {-114 -57 5} V4 {-114 -114 5} V5 {-171 -114 0} V6 {-171 -57 0} V7 {-171 -57 5} V8 {-171 -114 5}
|
||||
put {d2.s} arb8 V1 {0 -171 0} V2 {0 -114 0} V3 {0 -114 5} V4 {0 -171 5} V5 {-57 -171 0} V6 {-57 -114 0} V7 {-57 -114 5} V8 {-57 -171 5}
|
||||
put {f1.s} arb8 V1 {114 -228 0} V2 {114 -171 0} V3 {114 -171 5} V4 {114 -228 5} V5 {57 -228 0} V6 {57 -171 0} V7 {57 -171 5} V8 {57 -228 5}
|
||||
put {a3.s} arb8 V1 {-171 -114 0} V2 {-171 -57 0} V3 {-171 -57 5} V4 {-171 -114 5} V5 {-228 -114 0} V6 {-228 -57 0} V7 {-228 -57 5} V8 {-228 -114 5}
|
||||
put {c2.s} arb8 V1 {-57 -171 0} V2 {-57 -114 0} V3 {-57 -114 5} V4 {-57 -171 5} V5 {-114 -171 0} V6 {-114 -114 0} V7 {-114 -114 5} V8 {-114 -171 5}
|
||||
put {e1.s} arb8 V1 {57 -228 0} V2 {57 -171 0} V3 {57 -171 5} V4 {57 -228 5} V5 {0 -228 0} V6 {0 -171 0} V7 {0 -171 5} V8 {0 -228 5}
|
||||
put {b2.s} arb8 V1 {-114 -171 0} V2 {-114 -114 0} V3 {-114 -114 5} V4 {-114 -171 5} V5 {-171 -171 0} V6 {-171 -114 0} V7 {-171 -114 5} V8 {-171 -171 5}
|
||||
put {d1.s} arb8 V1 {0 -228 0} V2 {0 -171 0} V3 {0 -171 5} V4 {0 -228 5} V5 {-57 -228 0} V6 {-57 -171 0} V7 {-57 -171 5} V8 {-57 -228 5}
|
||||
put {a2.s} arb8 V1 {-171 -171 0} V2 {-171 -114 0} V3 {-171 -114 5} V4 {-171 -171 5} V5 {-228 -171 0} V6 {-228 -114 0} V7 {-228 -114 5} V8 {-228 -171 5}
|
||||
put {c1.s} arb8 V1 {-57 -228 0} V2 {-57 -171 0} V3 {-57 -171 5} V4 {-57 -228 5} V5 {-114 -228 0} V6 {-114 -171 0} V7 {-114 -171 5} V8 {-114 -228 5}
|
||||
put {b1.s} arb8 V1 {-114 -228 0} V2 {-114 -171 0} V3 {-114 -171 5} V4 {-114 -228 5} V5 {-171 -228 0} V6 {-171 -171 0} V7 {-171 -171 5} V8 {-171 -228 5}
|
||||
put {a1.s} arb8 V1 {-171 -228 0} V2 {-171 -171 0} V3 {-171 -171 5} V4 {-171 -228 5} V5 {-228 -228 0} V6 {-228 -171 0} V7 {-228 -171 5} V8 {-228 -228 5}
|
||||
put {tiles_light.c} comb region no tree {u {u {u {u {u {l b1.s} {l d1.s}} {u {l f1.s} {l h1.s}}} {u {u {l a2.s} {l c2.s}} {u {l e2.s} {l g2.s}}}} {u {u {u {l b3.s} {l d3.s}} {u {l f3.s} {l h3.s}}} {u {u {l a4.s} {l c4.s}} {u {l e4.s} {l g4.s}}}}} {u {u {u {u {l b5.s} {l d5.s}} {u {l f5.s} {l h5.s}}} {u {u {l a6.s} {l c6.s}} {u {l e6.s} {l g6.s}}}} {u {u {u {l b7.s} {l d7.s}} {u {l f7.s} {l h7.s}}} {u {u {l a8.s} {l c8.s}} {u {l e8.s} {l g8.s}}}}}}
|
||||
put {b} comb region no tree {l board.g}
|
||||
@@ -1,35 +0,0 @@
|
||||
title {King by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
|
||||
put {bottometo.s} eto V {0 0 20} N {0 0 0.06032399549610674427402301} C {2.864077970686895735497046 1.71612229850775266370988 1.889299368274914403542653} r 8.344052226122400384156208 r_d 1.673109642593672896637713
|
||||
put {crossbase.s} arb8 V1 {-1.399999999999999911182158 -2.100000000000000088817842 98.5} V2 {-1.399999999999999911182158 2.100000000000000088817842 98.5} V3 {1.399999999999999911182158 2.100000000000000088817842 98.5} V4 {1.399999999999999911182158 -2.100000000000000088817842 98.5} V5 {-1.399999999999999911182158 -3 94} V6 {-1.399999999999999911182158 3 94} V7 {1.399999999999999911182158 3 94} V8 {1.399999999999999911182158 -3 94}
|
||||
put {crossrpp2.s} arb8 V1 {1.399999999999999911182158 -5.5 97.84354270490985072683543} V2 {1.399999999999999911182158 5.5 97.84354270490985072683543} V3 {1.399999999999999911182158 5.5 102.5708639999999007841325} V4 {1.399999999999999911182158 -5.5 102.5708639999999007841325} V5 {-1.399999999999999911182158 -5.5 97.84354270490985072683543} V6 {-1.399999999999999911182158 5.5 97.84354270490985072683543} V7 {-1.399999999999999911182158 5.5 102.5708639999999007841325} V8 {-1.399999999999999911182158 -5.5 102.5708639999999007841325}
|
||||
put {crossrpp1.s} arb8 V1 {1.399999999999999911182158 -2 93.79999999999999715782906} V2 {1.399999999999999911182158 2 93.79999999999999715782906} V3 {1.399999999999999911182158 2 104.7999999999999971578291} V4 {1.399999999999999911182158 -2 104.7999999999999971578291} V5 {-1.399999999999999911182158 -2 93.79999999999999715782906} V6 {-1.399999999999999911182158 2 93.79999999999999715782906} V7 {-1.399999999999999911182158 2 104.7999999999999971578291} V8 {-1.399999999999999911182158 -2 104.7999999999999971578291}
|
||||
put {crowncut1.s} eto V {0 0 81.72700899999993850997271} N {0 0 0.6853489141366997383642001} C {7.936978064717960634766314 0.7583105325216803471732874 14.21238543732845016620558} r 19.09763828673395735791019 r_d 8.357084880198749843316364
|
||||
put {crossrcc2.s} tgc V {0 0 90.50940899999976352319209} H {0 0 3.460360060764851031223088} A {5.74552092081112419919009 0 0} B {0 5.74552092081112419919009 0} C {5.74552092081112419919009 0 0} D {0 5.74552092081112419919009 0}
|
||||
put {crosscap1.s} arb8 V1 {1.399999999999999911182158 -2 104.7999999999999971578291} V2 {1.399999999999999911182158 2 104.7999999999999971578291} V3 {-1.399999999999999911182158 2 104.7999999999999971578291} V4 {-1.399999999999999911182158 -2 104.7999999999999971578291} V5 {1.399999999999999911182158 0 106.7999999999999971578291} V6 {1.399999999999999911182158 0 106.7999999999999971578291} V7 {-1.399999999999999911182158 0 106.7999999999999971578291} V8 {-1.399999999999999911182158 0 106.7999999999999971578291}
|
||||
put {crossrcc1.s} tgc V {0 0 92.2746839999997803261067} H {0 0 2.791740440327786565433144} A {4.517371551035873622481631 0 0} B {0 4.517371551035873622481631 0} C {4.517371551035873622481631 0 0} D {0 4.517371551035873622481631 0}
|
||||
put {crowntop.s} ell V {0 0 89.56678299999987302726367} A {14.0447366829880344596404 0 0} B {0 14.44069976610209771195059 0} C {0 0 3.638257540532901401775234}
|
||||
put {crownrcc.s} tgc V {0 0 74.52245129853007199471904} H {0 0 15.07198012589280011752635} A {14.92710113237911251360401 0 0} B {0 14.92710113237911251360401 0} C {14.92710113237911251360401 0 0} D {0 14.92710113237911251360401 0}
|
||||
put {bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 9.461224391138355116481762 r_h 0.9710977822416242410952236
|
||||
put {bodyjut.s} ell V {0 0 63.05140500000015180148694} A {13.30005660511547738167337 0 0} B {0 13.30005660511547738167337 0} C {0 0 3.569547284150617283415841}
|
||||
put {bodycut.s} tor V {0 0 52.17296999999997808572516} H {6.12323399573676603586882E-17 0 1} r_a 107.7000000000000028421709 r_h 101.8122462061219977158544
|
||||
put {necktor.s} tor V {0 0 75.48642500000005384208634} H {3.061616997868383634231992E-16 0 1} r_a 8.239894264539179502548905 r_h 0.9722303169289367996697138
|
||||
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
|
||||
put {necketo.s} eto V {4.688718984760806702037463E-15 0 73.78394899999960898639983} N {-6.414480946927261832397496E-18 0 -0.05237821183539019542774184} C {-3.419547585807252154666003 2.04895324878489937248105 -2.255716904279041923331306} r 6.983691090436433768218194 r_d 1.738855162288100331124951
|
||||
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
|
||||
put {cross.c} comb region no tree {u {u {u {l crossbase.s} {l crosscap1.s}} {u {l crossrpp1.s} {l crossrpp2.s}}} {u {l crossrcc1.s} {l crossrcc2.s}}}
|
||||
put {crown.c} comb region no tree {u {- {l crownrcc.s} {l crowncut1.s}} {- {l crowntop.s} {l crownrcc.s}}}
|
||||
attr set {crown.c} {inherit} {1}
|
||||
put {scene.g} comb region no tree {u {l king.r} {l tile.r}}
|
||||
put {body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 69.67849364592308347710059} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {king.r} comb region yes tree {l king.c {1 0 0 0 0 1 0 0 0 0 1 0.960356 0 0 0 1}}
|
||||
attr set {king.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
|
||||
put {tile.r} comb region yes tree {l tile.s}
|
||||
attr set {tile.r} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {body.c} comb region no tree {u {u {- {l body.s} {l bodycut.s}} {l bodytor.s}} {l bodyjut.s}}
|
||||
put {king.c} comb region no tree {u {u {u {l cross.c} {l neck.c}} {u {l crown.c} {l body.c}}} {l bottom.c}}
|
||||
put {neck.c} comb region no tree {u {u {l necketo.s} {l necktor.s}} {l neck_filler.s}}
|
||||
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
put {neck_filler.s} tgc V {0 0 72.44353981907315187527274} H {0 0 8.98374965637291111875129} A {7.656920043513968821002891 0 0} B {0 7.656920043513968821002891 0} C {7.142477262139500737703202 0 0} D {0 7.142477262139500737703202 0}
|
||||
@@ -1,37 +0,0 @@
|
||||
title {Knight by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {nosebridge.s} tgc V {9.352709000000004380126484 -3.525789999999890511617195 80.78344850000023313896236} H {-19.14158212483127030623109 -1.101398557933205700619376E-15 -4.008762911514063843746032E-16} A {3.673940397442060361078391E-16 -5.638155724715451455608672 -2.052120859954011056203171} B {0 -1.636701665453711651565527 4.496800868217849078689596} C {3.673940397442060361078391E-16 -5.638155724715451455608672 -2.052120859954010612113962} D {0 -1.636701665453711651565527 4.496800868217849078689596}
|
||||
put {bottomtor2.s} tor V {0 0 9.596580000000059840203903} H {6.12323399573676603586882E-17 0 1} r_a 13.70450855072022378067231 r_h 3.825815710827906279689614
|
||||
put {bottomtor1.s} tor V {0 0 28.10273999999994032350514} H {6.12323399573676603586882E-17 0 1} r_a 12.58196306773280248592073 r_h 1.732851834446541783307794
|
||||
put {bodysidecutleft.s} tgc V {53.6557214677912170941454 -33.67507614822139316856919 95.69336050000360671674571} H {-20.22449106457484546695014 143.9047313715058749039599 6.169122640972837335375385E-15} A {41.33529643904953587707496 5.809297064214792527536702 -2.55302085840457415599758} B {-6.045441934467547184794967 -0.8496314556149066055112939 -99.81347984218669466827123} C {41.33529643904953587707496 5.809297064214792527536702 -2.55302085840457415599758} D {-6.045441934467546296616547 -0.8496314556149064944889915 -99.81347984218669466827123}
|
||||
put {headsidecutleft.s} tgc V {22.4313670000000300319698 -28.39713199999998138878254 66.36153450000099951466837} H {6.936023102199139422907592 58.60216329849748717606417 21.47832101088326695048636} A {20.34482858059398324712674 -2.407969144867709410107182 0} B {0.8235739520514423483987798 6.958341187070909761303028 -19.25132668795071921863382} C {20.34482858059398324712674 -2.407969144867709410107182 0} D {0.8235739520514423483987798 6.958341187070909761303028 -19.25132668795071921863382}
|
||||
put {bottometo.s} eto V {0 0 20} N {0 0 0.06032399549610674427402301} C {2.864077970686895735497046 1.71612229850775266370988 1.889299368274914403542653} r 12.40790665756528099450406 r_d 1.673109642593672896637713
|
||||
put {bodyrcc2.s} tgc V {1.17739012233862844939333E-14 11.10387200000011453937532 69.77637950000288924456981} H {0 -6.924928138629929286196329 19.02608369223165496464389} A {13.69742765710896037489874 0 0} B {0 12.87137169313410289817057 4.684796170477387278197057} C {13.69742765710896037489874 0 0} D {0 12.87137169313410289817057 4.684796170477387278197057}
|
||||
put {bodycut.s} tor V {0 0 44.16302899999998743396645} H {6.12323399573676603586882E-17 0 1} r_a 107.6761975244730109579905 r_h 97.57911721751440836669644
|
||||
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 12.99673099698723177652937 r_d 4.265499428605880716247611
|
||||
put {bodyrcc.s} tgc V {1.177390122338628764937692E-14 -5.261487999999998166344994 23.35826750000251195160672} H {0 28.82813499219855302158066 49.9317944939421209937791} A {18.70346099816892859735162 0 0} B {0 16.19767236310574887170333 -9.351730499084462522318972} C {18.70346099816892859735162 0 0} D {0 16.19767236310574887170333 -9.351730499084462522318972}
|
||||
put {headrcc.s} tgc V {2.364945229490083123615446E-14 -22.43134200000001854391485 70.83590250000071364411269} H {0 21.66504172617712953297087 7.885430312463741486794788} A {8.668888204531146612907833 0 0} B {0 2.96493438618794336036899 -8.146090276215920411573279} C {8.668888204531146612907833 0 0} D {0 2.96493438618794336036899 -8.146090276215920411573279}
|
||||
put {bodybottomsph.s} ell V {0 0 60.84612300000016915646484} A {33.54831727294207155409822 0 0} B {0 33.54831727294207155409822 0} C {0 0 33.54831727294207155409822}
|
||||
put {toptor.s} tor V {-1.290968171125081238436545E-14 26.0108720000002442418463 8.970701999999491249582206} H {1 0 0} r_a 65.14638440000000230156729 r_h 16.28659610000000057539182
|
||||
put {earcut.s} tgc V {6.942508314766508912183652E-14 -13.66162200000000304100922 85.5714520000014005063349} H {0 30.34242292565693688288775 11.04373878045554668858586} A {5 0 0} B {0 2.052120859954011500292381 -5.638155724715449679251833} C {5 0 0} D {0 2.052120859954011500292381 -5.638155724715449679251833}
|
||||
put {knight.r} comb region yes tree {l knight.c {1 0 0 0 0 1 0 0 0 0 1 0.960356 0 0 0 1}}
|
||||
attr set {knight.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
|
||||
put {bottom.c} comb region no tree {u {u {u {l bottometo.s} {l bottomtor1.s}} {u {l bottomtor2.s} {l baseeto.s}}} {l base_filler.s}}
|
||||
put {bodyfrontcutright.s} tgc V {-13.74871600000018645459932 -33.1595789999997947461452 63.90854050000422859056926} H {-41.4843562340515603636959 49.43913057838897628926134 -5.652944372718708048669131E-15} A {-20.4576653316778021007849 -17.16601943455906820190648 -3.9911764866229089143701} B {4.529143121461073562272759 3.800402322767091778388249 -39.56063453447669076012971} C {-20.4576653316778021007849 -17.16601943455906820190648 -3.9911764866229089143701} D {4.529143121461073562272759 3.800402322767091778388249 -39.56063453447669076012971}
|
||||
put {eararb.s} arb8 V1 {-26.90565549999994132690517 -0.4176225000000420295442893 84.91516750000046442892199} V2 {-26.90565549999994132690517 7.334443121211129401615381 86.28206582524249768084701} V3 {26.30018901632412564595143 7.334443121211129401615381 86.28206582524249768084701} V4 {26.30018901632412564595143 -0.4176225000000420295442893 84.91516750000046442892199} V5 {-26.90565549999994132690517 2.091511985363494030565334 93.35068228383262578518043} V6 {-26.90565549999994132690517 2.091511985363494030565334 93.35068228383262578518043} V7 {26.300189016324097224242 2.091511985363494030565334 93.35068228383262578518043} V8 {26.300189016324097224242 2.091511985363494030565334 93.35068228383262578518043}
|
||||
put {knight.c} comb region no tree {u {u {l head.c} {l body.c}} {u {l base.c} {l bottom.c}}}
|
||||
put {mouth.s} arb8 V1 {-14.69511850000539787686193 -22.33384350000072160469244 67.49057449999915547778073} V2 {-14.69511850000507457991716 -22.33384350000071805197877 65.1856549462537060435352} V3 {14.5501529284419532928041 -22.33384350000074292097452 65.18565494625448764054454} V4 {14.55015292844173302455602 -22.3338435000007464736882 67.49057449999935442974675} V5 {-14.69511850000531438809048 -12.88574518707542360118623 69.9097041027158496717675} V6 {-14.69511850000531438809048 -12.88574518707542360118623 69.9097041027158496717675} V7 {14.55015292844241514558234 -12.88574518707783234106046 69.90970410271543755698076} V8 {14.55015292844241514558234 -12.88574518707783234106046 69.90970410271543755698076}
|
||||
put {bodyfrontcut.s} tgc V {-30.07391999999968135171002 -30.49249499999977786046657 57.49796150000538830227015} H {64.53820143527930497384659 5.398293464965921771651639E-15 1.446468374443825363721499E-15} A {1.653406732298293568477734E-15 -23.38457478442728287859609 13.50109054667402830318679} B {2.449293598294706907385594E-15 -20 -34.64101615137754208717524} C {1.653406732298293568477734E-15 -23.38457478442728287859609 13.50109054667402830318679} D {2.449293598294706907385594E-15 -20 -34.64101615137754208717524}
|
||||
put {scene.g} comb region no tree {u {l knight.r} {l tile.r}}
|
||||
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {tile.r} comb region yes tree {l tile.s}
|
||||
attr set {tile.r} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {base.s} tgc V {0 0 5.912562917080187219198706} H {0 0 23.32946212598685420402944} A {20.43520228184366160917307 0 0} B {0 20.43520228184366160917307 0} C {20.43520228184366160917307 0 0} D {0 20.43520228184366160917307 0}
|
||||
put {body.c} comb region no tree {u {- {- {- {- {- {n {n {l bodyrcc.s} {l bodybottomsph.s}} {l bodysidesph.s}} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l bodyfrontcutleft.s}} {l bodyfrontcutright.s}} {l bodyfrontcut.s}} {- {- {- {- {- {- {- {- {n {n {l bodyrcc2.s} {l bodysidesph.s}} {l toptor.s}} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l bodyfrontcutleft.s}} {l bodyfrontcutright.s}} {l bodyfrontcut.s}} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l bodyfrontcut.s}}}
|
||||
put {base.c} comb region no tree {u {u {u {u {l bottomtor1.s} {l bottomtor1.s}} {- {- {l base.s} {l bodycut.s}} {l bottomtor1.s}}} {l bottomtor1.s}} {l bottomtor1.s}}
|
||||
put {head.c} comb region no tree {u {u {- {- {- {- {- {n {l headrcc.s} {l toptor.s}} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l headsidecutleft.s}} {l headsidecutright.s}} {l mouth.s}} {- {- {- {- {l nosebridge.s} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l headsidecutleft.s}} {l headsidecutright.s}}} {- {- {- {- {- {l eararb.s} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l headsidecutleft.s}} {l headsidecutright.s}} {l earcut.s}}}
|
||||
put {bodyfrontcutleft.s} tgc V {13.74871600000018645459932 -33.1595789999997947461452 63.90854050000422859056926} H {41.48435623405157457455061 49.43913057838896918383398 -5.65294437271870647094732E-15} A {20.45766533167779854807122 -17.16601943455906820190648 -3.99117648662290935845931} B {-4.529143121461062904131722 3.800402322767092222477459 -39.56063453447669076012971} C {20.45766533167779854807122 -17.16601943455906820190648 -3.99117648662290935845931} D {-4.529143121461062904131722 3.800402322767092222477459 -39.56063453447669076012971}
|
||||
put {bodysidecutright.s} tgc V {-53.6557214677912170941454 -33.67507614822139316856919 95.69336050000360671674571} H {20.22449106457484901966382 143.9047313715058749039599 6.169122640972837335375385E-15} A {-41.33529643904954298250232 5.809297064214777428503567 -2.553020858404567494659432} B {6.045441934467558731114423 -0.8496314556149066055112939 -99.81347984218669466827123} C {-41.33529643904954298250232 5.809297064214777428503567 -2.553020858404567494659432} D {6.045441934467559619292842 -0.8496314556149064944889915 -99.81347984218669466827123}
|
||||
put {headsidecutright.s} tgc V {-22.4313670000000300319698 -28.39713199999998138878254 66.36153450000099951466837} H {-6.936023102199119882982359 58.60216329849748717606417 21.47832101088326695048636} A {-20.34482858059398324712674 -2.407969144867712074642441 0} B {-0.8235739520514422373764774 6.958341187070909761303028 -19.2513266879507227713475} C {-20.34482858059398324712674 -2.407969144867712074642441 0} D {-0.8235739520514422373764774 6.958341187070909761303028 -19.2513266879507227713475}
|
||||
put {bodysidesph.s} ell V {1.591615728102624416351318E-12 -17.12677000000023497250368 59.51325500000131540900838} A {40 0 0} B {0 40 0} C {0 0 57.67733156681060791015625}
|
||||
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
@@ -1,51 +0,0 @@
|
||||
title {Pawn by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {crowninset.s} tgc V {0 0 58} H {0 0 0.5999999999999999777955395} A {16.89118510350817103926602 0 0} B {0 16.89118510350817103926602 0} C {16.89118510350817103926602 0 0} D {0 16.89118510350817103926602 0}
|
||||
put {crowninner.s} tgc V {0 0 4} H {0 0 6} A {10.16165733953459060501245 0 0} B {0 10.16165733953459060501245 0} C {11.34243115837037585436065 0 0} D {0 11.34243115837037585436065 0}
|
||||
put {crowninsetsolid.s} tgc V {0 0 58} H {0 0 0.5999999999999999777955395} A {12.45527182860042714196425 0 0} B {0 12.45527182860042714196425 0} C {12.45527182860042714196425 0 0} D {0 12.45527182860042714196425 0}
|
||||
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 9.486078136436923102792207 r_h 3.825815710827906279689614
|
||||
put {bottometo.s} eto V {0 0 20} N {0 0 0.05994492135330928977987597} C {2.846080192311732925958268 1.705338238468419920224051 1.877427068825471501156699} r 5.027862554501921543703702 r_d 1.662595872768639404526425
|
||||
put {1_bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 10.44723380101833853927928 r_h 0.9710977822416242410952236
|
||||
put {1_bodycut.s} tor V {0 0 41} H {6.12323399573676603586882E-17 0 1} r_a 86.63076947877770805916953 r_h 78.38786126059979153524182
|
||||
put {1_bodyeto.s} eto V {-0.2528320000000000011830537 0 53} N {0 0 0.03930267507158188844407221} C {11.02968444236560330296015 0 11.02968444236560330296015} r 16.28367943394245997978942 r_d 4.327199580192768735287245
|
||||
put {1_baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
|
||||
put {1_bodytop.c} comb region no tree {- {l bodytop.s} {l 1_bodyeto.s}}
|
||||
put {crowncut3.s} arb8 V1 {-13.99038105676657828269072 5.767949192431094829203175 4} V2 {11.9903810567665729536202 -9.232050807568883854514752 4.000000000000001776356839} V3 {11.9903810567665729536202 -9.232050807568883854514752 10.00000000000000355271368} V4 {-13.99038105676657828269072 5.767949192431094829203175 10} V5 {-11.99038105676654808462445 9.232050807568848327377964 4} V6 {13.99038105676657472997704 -5.767949192431118810020507 4.000000000000001776356839} V7 {13.99038105676657472997704 -5.767949192431118810020507 10.00000000000000355271368} V8 {-11.99038105676654808462445 9.232050807568848327377964 10}
|
||||
put {crowncut2.s} arb8 V1 {-11.99038105676656940090652 -9.232050807568908723510503 3.999999999999998223643161} V2 {13.99038105676658183540439 5.767949192431108151879471 3.99999999999999866773237} V3 {13.99038105676658538811807 5.767949192431077065634781 10.00000000000000355271368} V4 {-11.99038105676654453191077 -9.232050807568926487078897 10} V5 {-13.99038105676658716447491 -5.767949192431157889870974 3.99999999999999866773237} V6 {11.99038105676657472997704 9.232050807568862538232679 3.99999999999999911182158} V7 {11.990381056766564071836 9.232050807568855432805321 10.00000000000000355271368} V8 {-13.99038105676657472997704 -5.767949192431152560800456 10}
|
||||
put {crowncut1.s} arb8 V1 {1.999999999999999777955395 -14.99999999999999822364316 4} V2 {1.999999999999999777955395 14.99999999999999822364316 4} V3 {1.999999999999999777955395 14.99999999999999822364316 10} V4 {1.999999999999999777955395 -14.99999999999999822364316 10} V5 {-1.999999999999999777955395 -14.99999999999999822364316 4} V6 {-1.999999999999999777955395 14.99999999999999822364316 4} V7 {-1.999999999999999777955395 14.99999999999999822364316 10} V8 {-1.999999999999999777955395 -14.99999999999999822364316 10}
|
||||
put {crownrcc.s} tgc V {0 0 -2.292185375575158445826673} H {0 0 12.29218537557515844582667} A {14.16165733953459238136929 0 0} B {0 14.16165733953459238136929 0} C {14.16165733953459238136929 0 0} D {0 14.16165733953459238136929 0}
|
||||
put {1_bottom.c} comb region no tree {u {u {l 1_bottometo.s} {l 1_bottomtor.s}} {u {l 1_baseeto.s} {l 1_base_filler.s}}}
|
||||
put {bodyjut.s} tgc V {0 0 42} H {0 0 2.264716425774114583191476} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {bodytor.s} tor V {0 0 25.00000000000000355271368} H {6.12323399573676603586882E-17 0 1} r_a 6.146768722816724483948292 r_h 0.8241116028491989320414746
|
||||
put {bodytop.s} tgc V {0 0 45.57436401080622090375982} H {0 0 10.23282399021384136972301} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {bodycut.s} tor V {0 0 37.96582364986083035773845} H {6.12323399573676603586882E-17 0 1} r_a 67.81451175298326461415854 r_h 63.43019393270687800168162
|
||||
put {bodyeto.s} eto V {-0.2528320000000000011830537 0 53} N {0 0 0.03930267507158188844407221} C {11.02968444236560330296015 0 11.02968444236560330296015} r 16.28367943394245997978942 r_d 4.327199580192768735287245
|
||||
put {baseeto.s} eto V {0 0 4.281399000000007504240784} N {-4.792704526346514451144025E-18 0 -0.03913540238445389202182056} C {8.160812227361974535710942 -1.196165406603733272206114 -3.847323061096424634541791} r 9.284537665853610732824563 r_d 3.736676917349199378293179
|
||||
put {necketo.s} eto V {0 0 40.72638399999996039468897} N {-3.291837815534646033062117E-18 0 -0.02687989563869803977258499} C {4.168219486530275297297976 -0.6109538876782616423355421 -1.965060156692675530365477} r 5.706605353654313539379928 r_d 2.566512146398107763189955
|
||||
put {bodytop.c} comb region no tree {u {l head.s} {l necketo.s}}
|
||||
put {1_scene.g} comb region no tree {u {l rook.r {1 0 0 -58 0 1 0 0 0 0 1 0 0 0 0 1}} {l 1_tile.r {1 0 0 -58 0 1 0 0 0 0 1 0 0 0 0 1}}}
|
||||
put {1_base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
|
||||
put {1_body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 49.90908570176724623479458} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {1_tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {1_tile.r} comb region yes tree {l 1_tile.s}
|
||||
attr set {1_tile.r} {region} {R} {color} {255/255/255} {los} {100} {material_id} {1} {region_id} {1000} {shader} {plastic {re 0.5 sh 1}}
|
||||
put {1_body.c} comb region no tree {u {u {- {l 1_body.s} {l 1_bodycut.s}} {l 1_bodytor.s}} {l bodyjut.s}}
|
||||
put {crown.c} comb region no tree {u {- {- {- {- {- {l crownrcc.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}} {l crowninner.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut1.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut2.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut3.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowninset.s}} {l crowninsetsolid.s}}
|
||||
put {scene.g} comb region no tree {u {l pawn.r} {l tile.r}}
|
||||
put {body.s} tgc V {0 0 -0.6898679999999998146975599} H {0 0 42.85638383046779154028627} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {pawn.r} comb region yes tree {l pawn.c {1 0 0 0 0 1 0 0 0 0 1 0.991685000000004 0 0 0 1}}
|
||||
attr set {pawn.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
|
||||
put {rook.r} comb region yes tree {l rook.c {1 0 0 0 0 1 0 0 0 0 1 1.090422 0 0 0 1}}
|
||||
attr set {rook.r} {region} {R} {color} {255/255/217} {los} {100} {material_id} {1} {region_id} {1000} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}}
|
||||
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {tile.r} comb region yes tree {l tile.s}
|
||||
attr set {tile.r} {oshader} {plastic {sh 1}} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {body.c} comb region no tree {u {- {l body.s} {l bodycut.s}} {l bodytor.s}}
|
||||
put {pawn.c} comb region no tree {u {u {l top.c} {l body.c}} {u {l bottom.c} {l bodytop.c}}}
|
||||
put {rook.c} comb region no tree {u {u {l crown.c} {l 1_body.c}} {u {l 1_bottom.c} {l 1_bodytop.c}}}
|
||||
put {head.s} ell V {0 0 52.26777799999997853319655} A {10.18854239405582262634198 0 0} B {0 10.18854239405582262634198 0} C {0 0 10.18854239405582262634198}
|
||||
put {top.c} comb region no tree {u {l head.s} {l necketo.s}}
|
||||
put {1_bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
|
||||
put {1_bottometo.s} eto V {0 0 20} N {0 0 0.07140720069529053748436098} C {3.390289200472452524337541 2.031421963671408370544214 2.236416504815224470803514} r 9.036682630367613100474955 r_d 1.980506679827312765951319
|
||||
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {14.57675099872487578522851 0 0} B {0 14.57675099872487578522851 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
@@ -1,44 +0,0 @@
|
||||
title {Queen by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {crown_fill.s} tgc V {0 0 85.4996148325125346900677} H {0 0 3.961725628291488110477303} A {13.92497241322581302824801 0 0} B {0 13.92497241322581302824801 0} C {10.3643310870127276501762 0 0} D {0 10.3643310870127276501762 0}
|
||||
put {crown_main.c} comb region no tree {u {u {- {- {l crownrcc.s} {l crowncut1.s}} {l crowncut2.s}} {- {- {l crown_fill.s} {l crowncut2.s}} {l crownrcc.s}}} {- {- {- {l crowneto1.s} {l crownrcc.s}} {l crowncut2.s}} {l crown_fill.s}}}
|
||||
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
|
||||
put {bottometo.s} eto V {0 0 20} N {0 0 0.06032399549610674427402301} C {2.864077970686895735497046 1.71612229850775266370988 1.889299368274914403542653} r 7.93389995193779462567818 r_d 1.673109642593672896637713
|
||||
put {head_fill.s} tgc V {0 0 67.65223912679090290112072} H {0 0 22.65963591768163354345234} A {5.387125525462328923254063 0 0} B {0 5.387125525462328923254063 0} C {5.200376920059111007788033 0 0} D {0 5.200376920059111007788033 0}
|
||||
put {crowncut2.s} tgc V {0 0 86.89911600000084490602603} H {0 0 6.858375356511876574927555} A {9.438877285833902064382528 0 0} B {0 9.438877285833902064382528 0} C {15.49844917074207906182437 0 0} D {0 15.49844917074207906182437 0}
|
||||
put {crowncut1.s} eto V {0 0 77.72700899999993850997271} N {0 0 0.6853489141366997383642001} C {7.936978064717960634766314 0.7583105325216803471732874 14.21238543732845016620558} r 19.09763828673395735791019 r_d 8.357084880198749843316364
|
||||
put {crowneto1.s} eto V {1.577721810442023610823457E-30 0 87.39109400000032223942981} N {-1.573547818886363209483057E-17 0 -0.04282997677321952190165888} C {-1.665828485074095866025345 -1.27132480626570165682665 -1.898428097677101966667124} r 12.13000000000000078159701 r_d 1.123246664863733368378007
|
||||
put {crownell8.s} ell V {-13.73660800000212844906855 2.220446049250313080847263E-14 87.68836799997369269021874} A {0 -2.442952198710223399302777 1.005777905178345307186806E-16} B {3.658968546871206317661063 0 3.323573023963026340510396} C {-0.7091037075487675034324297 0 0.7806623003868651267112}
|
||||
put {crownell7.s} ell V {-9.713248667302867289663482 9.713248667302899264086591 87.68836799997369269021874} A {-1.727428065822585123711974 -1.727428065822585123711974 1.005777905178345307186806E-16} B {2.587281471640917818177741 -2.587281471640917818177741 3.323573023963026340510396} C {-0.5014120401722559350332631 0.5014120401722559350332631 0.7806623003868651267112}
|
||||
put {crownell6.s} ell V {2.220446049250313080847263E-14 13.73660800000212844906855 87.68836799997369269021874} A {-2.442952198710223399302777 0 1.005777905178345307186806E-16} B {0 -3.658968546871206317661063 3.323573023963026340510396} C {0 0.7091037075487675034324297 0.7806623003868651267112}
|
||||
put {crownell5.s} ell V {9.713248667302899264086591 9.713248667302867289663482 87.68836799997369269021874} A {-1.727428065822585123711974 1.727428065822585123711974 1.005777905178345307186806E-16} B {-2.587281471640917818177741 -2.587281471640917818177741 3.323573023963026340510396} C {0.5014120401722559350332631 0.5014120401722559350332631 0.7806623003868651267112}
|
||||
put {crownell4.s} ell V {13.73660800000212844906855 -2.220446049250313080847263E-14 87.68836799997369269021874} A {0 2.442952198710223399302777 1.005777905178345307186806E-16} B {-3.658968546871206317661063 0 3.323573023963026340510396} C {0.7091037075487675034324297 0 0.7806623003868651267112}
|
||||
put {crownell3.s} ell V {9.713248667302867289663482 -9.713248667302899264086591 87.68836799997369269021874} A {1.727428065822584901667369 1.727428065822584901667369 1.005777905178345307186806E-16} B {-2.587281471640917818177741 2.587281471640917818177741 3.323573023963026340510396} C {0.5014120401722559350332631 -0.5014120401722559350332631 0.7806623003868651267112}
|
||||
put {crownell2.s} ell V {-2.220446049250313080847263E-14 -13.73660800000212844906855 87.68836799997369269021874} A {2.442952198710222955213567 0 1.005777905178345307186806E-16} B {0 3.658968546871206317661063 3.323573023963026340510396} C {0 -0.7091037075487675034324297 0.7806623003868651267112}
|
||||
put {crownell1.s} ell V {-9.713248667302899264086591 -9.713248667302867289663482 87.68836799997369269021874} A {1.727428065822584679622764 -1.727428065822584679622764 1.005777905178345307186806E-16} B {2.587281471640917818177741 2.587281471640917818177741 3.323573023963026340510396} C {-0.5014120401722559350332631 -0.5014120401722559350332631 0.7806623003868651267112}
|
||||
put {crownrcc.s} tgc V {0 0 70.52245129853007199471904} H {0 0 15.07198012589280011752635} A {14.92710113237911251360401 0 0} B {0 14.92710113237911251360401 0} C {14.92710113237911251360401 0 0} D {0 14.92710113237911251360401 0}
|
||||
put {head_tip.s} ell V {0 0 94.91151499999973850663082} A {3.119016812725599496758377 0 0} B {0 3.119016812725599496758377 0} C {0 0 1.345488882629591875783603}
|
||||
put {crownell.c} comb region no tree {u {u {u {l crownell1.s} {l crownell2.s}} {u {l crownell3.s} {l crownell4.s}}} {u {u {l crownell5.s} {l crownell6.s}} {u {l crownell7.s} {l crownell8.s}}}}
|
||||
put {headeto1.s} eto V {0 0 89.57779000000000735326466} N {-5.519803738384860362821316E-18 0 -0.04507261801711288928817822} C {-4.376792271273803436315575 -1.09418866449798435347418 -4.1289869793813673837235} r 4.82069915201276888438997 r_d 2.281365997196153738713065
|
||||
put {bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 9.140689709069368618088447 r_h 0.9710977822416242410952236
|
||||
put {bodyjut.s} ell V {0 0 57.95812100000001976241037} A {13.30005660511547738167337 0 0} B {0 13.30005660511547738167337 0} C {0 0 3.569547284150617283415841}
|
||||
put {bodycut.s} tor V {0 0 46.43319499999997646000338} H {6.12323399573676603586882E-17 0 1} r_a 84.47809976324354863663757 r_h 78.38786126059979153524182
|
||||
put {necktor.s} tor V {0 0 70.41021300000004146113497} H {3.061616997868383634231992E-16 0 1} r_a 8.239894264539179502548905 r_h 0.9722303169289367996697138
|
||||
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
|
||||
put {necketo.s} eto V {4.688718984760804335454747E-15 0 67.98440800000000194813765} N {-7.947115565380555332745523E-18 0 -0.06489312323286719474957351} C {-4.236592184243099801221888 2.53851689495714083477651 -2.794683321910145679112247} r 6.747558139033351665148075 r_d 2.154325975943817361724086
|
||||
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
|
||||
put {queen.r} comb region yes tree {l queen.c {1 0 0 0 0 1 0 0 0 0 1 0.960356 0 0 0 1}}
|
||||
attr set {queen.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
|
||||
put {crown.c} comb region no tree {- {l crown_main.c} {l crownell.c}}
|
||||
attr set {crown.c} {inherit} {1}
|
||||
put {queen.c} comb region no tree {u {u {u {l head.c} {l neck.c}} {u {l crown.c} {l body.c}}} {l bottom.c}}
|
||||
put {scene.g} comb region no tree {u {l queen.r} {l tile.r}}
|
||||
put {body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 59.45235824170033822611003} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {tile.r} comb region yes tree {l tile.s}
|
||||
attr set {tile.r} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {body.c} comb region no tree {u {u {- {l body.s} {l bodycut.s}} {l bodytor.s}} {l bodyjut.s}}
|
||||
put {neck.c} comb region no tree {u {u {l necketo.s} {l necktor.s}} {l neck_filler.s}}
|
||||
put {head.c} comb region no tree {u {u {l head_tip.s} {l headeto1.s}} {l head_fill.s}}
|
||||
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
put {neck_filler.s} tgc V {5.044847376139677212870351E-16 0.11939600000000516466514 64.39600271525775099235034} H {0 0 13.56002315446382588959295} A {7.491481711620123995487575 0 0} B {0 7.491481711620123995487575 0} C {7.491481711620123995487575 0 0} D {0 7.491481711620123995487575 0}
|
||||
@@ -1,30 +0,0 @@
|
||||
title {Rook by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {crowninset.s} tgc V {0 0 58} H {0 0 0.5999999999999999777955395} A {16.89118510350817103926602 0 0} B {0 16.89118510350817103926602 0} C {16.89118510350817103926602 0 0} D {0 16.89118510350817103926602 0}
|
||||
put {crowninner.s} tgc V {0 0 4} H {0 0 6} A {10.16165733953459060501245 0 0} B {0 10.16165733953459060501245 0} C {11.34243115837037585436065 0 0} D {0 11.34243115837037585436065 0}
|
||||
put {crowninsetsolid.s} tgc V {0 0 58} H {0 0 0.5999999999999999777955395} A {12.45527182860042714196425 0 0} B {0 12.45527182860042714196425 0} C {12.45527182860042714196425 0 0} D {0 12.45527182860042714196425 0}
|
||||
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
|
||||
put {bottometo.s} eto V {0 0 20} N {0 0 0.07140720069529053748436098} C {3.390289200472452524337541 2.031421963671408370544214 2.236416504815224470803514} r 9.036682630367613100474955 r_d 1.980506679827312765951319
|
||||
put {crowncut3.s} arb8 V1 {-13.99038105676657828269072 5.767949192431094829203175 4} V2 {11.9903810567665729536202 -9.232050807568883854514752 4.000000000000001776356839} V3 {11.9903810567665729536202 -9.232050807568883854514752 10.00000000000000355271368} V4 {-13.99038105676657828269072 5.767949192431094829203175 10} V5 {-11.99038105676654808462445 9.232050807568848327377964 4} V6 {13.99038105676657472997704 -5.767949192431118810020507 4.000000000000001776356839} V7 {13.99038105676657472997704 -5.767949192431118810020507 10.00000000000000355271368} V8 {-11.99038105676654808462445 9.232050807568848327377964 10}
|
||||
put {crowncut2.s} arb8 V1 {-11.99038105676656940090652 -9.232050807568908723510503 3.999999999999998223643161} V2 {13.99038105676658183540439 5.767949192431108151879471 3.99999999999999866773237} V3 {13.99038105676658538811807 5.767949192431077065634781 10.00000000000000355271368} V4 {-11.99038105676654453191077 -9.232050807568926487078897 10} V5 {-13.99038105676658716447491 -5.767949192431157889870974 3.99999999999999866773237} V6 {11.99038105676657472997704 9.232050807568862538232679 3.99999999999999911182158} V7 {11.990381056766564071836 9.232050807568855432805321 10.00000000000000355271368} V8 {-13.99038105676657472997704 -5.767949192431152560800456 10}
|
||||
put {crowncut1.s} arb8 V1 {1.999999999999999777955395 -14.99999999999999822364316 4} V2 {1.999999999999999777955395 14.99999999999999822364316 4} V3 {1.999999999999999777955395 14.99999999999999822364316 10} V4 {1.999999999999999777955395 -14.99999999999999822364316 10} V5 {-1.999999999999999777955395 -14.99999999999999822364316 4} V6 {-1.999999999999999777955395 14.99999999999999822364316 4} V7 {-1.999999999999999777955395 14.99999999999999822364316 10} V8 {-1.999999999999999777955395 -14.99999999999999822364316 10}
|
||||
put {crownrcc.s} tgc V {0 0 -2.292185375575158445826673} H {0 0 12.29218537557515844582667} A {14.16165733953459238136929 0 0} B {0 14.16165733953459238136929 0} C {14.16165733953459238136929 0 0} D {0 14.16165733953459238136929 0}
|
||||
put {bodyjut.s} tgc V {0 0 42} H {0 0 2.264716425774114583191476} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 10.44723380101833853927928 r_h 0.9710977822416242410952236
|
||||
put {bodytop.s} tgc V {0 0 45.57436401080622090375982} H {0 0 10.23282399021384136972301} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {bodycut.s} tor V {0 0 41} H {6.12323399573676603586882E-17 0 1} r_a 86.63076947877770805916953 r_h 78.38786126059979153524182
|
||||
put {bodyeto.s} eto V {-0.2528320000000000011830537 0 53} N {0 0 0.03930267507158188844407221} C {11.02968444236560330296015 0 11.02968444236560330296015} r 16.28367943394245997978942 r_d 4.327199580192768735287245
|
||||
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
|
||||
put {bodytop.c} comb region no tree {- {l bodytop.s} {l bodyeto.s}}
|
||||
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
|
||||
put {crown.c} comb region no tree {u {- {- {- {- {- {l crownrcc.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}} {l crowninner.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut1.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut2.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut3.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowninset.s}} {l crowninsetsolid.s}}
|
||||
put {scene.g} comb region no tree {u {l rook.r} {l tile.r}}
|
||||
put {body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 49.90908570176724623479458} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
|
||||
put {rook.r} comb region yes tree {l rook.c {1 0 0 0 0 1 0 0 0 0 1 1.090422 0 0 0 1}}
|
||||
attr set {rook.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
|
||||
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
|
||||
put {tile.r} comb region yes tree {l tile.s}
|
||||
attr set {tile.r} {oshader} {plastic {sh 1}} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {body.c} comb region no tree {u {u {- {l body.s} {l bodycut.s}} {l bodytor.s}} {l bodyjut.s}}
|
||||
put {rook.c} comb region no tree {u {u {l crown.c} {l body.c}} {u {l bottom.c} {l bodytop.c}}}
|
||||
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -1,21 +0,0 @@
|
||||
set(COMGEOM_V5_MODELS
|
||||
ADA073408.comgeom
|
||||
)
|
||||
|
||||
foreach(comgeom_input ${COMGEOM_V5_MODELS})
|
||||
ADD_G_TARGET(${comgeom_input} "BRL-CAD Geometry Models/Sample")
|
||||
endforeach(comgeom_input ${COMGEOM_V5_MODELS})
|
||||
|
||||
CMAKEFILES(
|
||||
${COMGEOM_V5_MODELS}
|
||||
CMakeLists.txt
|
||||
README_ADA073408
|
||||
ADA073408_inputs.tar.gz
|
||||
)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
@@ -1,17 +0,0 @@
|
||||
Model ADA073408.comgeom is a transcription of the model documented in
|
||||
the 1979 public release report:
|
||||
|
||||
A Combinatorial Geometry Computer Description of the MEP-021A Generator Set
|
||||
http://www.dtic.mil/docs/citations/ADA073408
|
||||
|
||||
A series of Google GCI tasks worked to transcribe the ASCII COMGEOM
|
||||
description from the original report to text, and post-processed it
|
||||
into a form that the comgeom-g importer can handle:
|
||||
|
||||
http://www.google-melange.com/gci/task/view/google/gci2013/5597236545191936
|
||||
http://www.google-melange.com/gci/task/view/google/gci2014/5293529710460928
|
||||
http://www.google-melange.com/gci/task/view/google/gci2014/5792678377684992
|
||||
|
||||
The file ADA073408_inputs.tar.gz contains the original transcribed
|
||||
files and the script used to create the comgeom file.
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
string(REPLACE "\\" "" GCV_EXEC "${EXEC}")
|
||||
set(INPUT_FILE "@INPUT_FILE@")
|
||||
set(OUTPUT_FILE "@OUTPUT_FILE@")
|
||||
set(BIN_DIR "@BIN_DIR@")
|
||||
|
||||
# NOTE: OUTPUT_FILE needs to be defined in terms of a path relative to the root
|
||||
# of the build diretory, not as an absolute path. Since that root may change
|
||||
# at runtime in multiconfig builds, the full output path cannot be encoded
|
||||
# directly into the generated script.
|
||||
get_filename_component(OF_ABS "${OUTPUT_FILE}" ABSOLUTE)
|
||||
if ("${OF_ABS}" STREQUAL "${OUTPUT_FILE}")
|
||||
message(FATAL_ERROR "Absoute output file path \"${OUTPUT_FILE}\" supplied for conversion of \"${INPUT_FILE}\" - path must be relative.")
|
||||
endif ("${OF_ABS}" STREQUAL "${OUTPUT_FILE}")
|
||||
|
||||
# Because the build directory changes at runtime in multiconfig builds, we
|
||||
# need to deduce its current value from GCV_EXEC.
|
||||
get_filename_component(CBDIR "${GCV_EXEC}" DIRECTORY)
|
||||
string(REGEX REPLACE "${BIN_DIR}$" "" CROOT "${CBDIR}")
|
||||
|
||||
# BRLCAD_ROOT is the hammer that makes certain we are running
|
||||
# things found in the build directory.
|
||||
set(ENV{BRLCAD_ROOT} "${CROOT}")
|
||||
|
||||
# Now that we know the root, finalize the full path output file location
|
||||
set(OUTPUT_FILE "${CROOT}/${OUTPUT_FILE}")
|
||||
|
||||
execute_process(
|
||||
COMMAND "${GCV_EXEC}" -o "${OUTPUT_FILE}" "${INPUT_FILE}"
|
||||
RESULT_VARIABLE conv_result OUTPUT_VARIABLE conv_log ERROR_VARIABLE conv_log
|
||||
)
|
||||
|
||||
if(conv_result)
|
||||
message(FATAL_ERROR "[geometry conversion] Failure: ${conv_result}\n${GCV_EXEC} -o \"${OUTPUT_FILE}\" \"${INPUT_FILE}\"\n\n${conv_log}")
|
||||
endif(conv_result)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
# C U B E . R T
|
||||
# BRL-CAD
|
||||
#
|
||||
# Copyright (c) 2004-2020 United States Government as represented by
|
||||
# Copyright (c) 2004-2014 United States Government as represented by
|
||||
# the U.S. Army Research Laboratory.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/* D B . P H P
|
||||
* BRL-CAD
|
||||
*
|
||||
* Copyright (c) 2004-2020 United States Government as represented by
|
||||
* Copyright (c) 2004-2014 United States Government as represented by
|
||||
* the U.S. Army Research Laboratory.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
@@ -275,14 +275,12 @@ if ($physicalFile) {
|
||||
|
||||
debug("END http request");
|
||||
|
||||
?>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
tab-width: 8
|
||||
mode: php
|
||||
c-basic-offset: 4
|
||||
indent-tabs-mode: t
|
||||
End:
|
||||
ex: shiftwidth=4 tabstop=8
|
||||
-->
|
||||
# Local Variables: ***
|
||||
# mode: C ***
|
||||
# tab-width: 8 ***
|
||||
# c-basic-offset: 2 ***
|
||||
# indent-tabs-mode: t ***
|
||||
# End: ***
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
?>
|
||||
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
title {A Die by Jeff Sieu. Made for Google Code-in 2017}
|
||||
units mm
|
||||
put {body_outer.r} comb region yes tree {l body_outer.c}
|
||||
attr set {body_outer.r} {oshader} {plastic} {region} {R} {shader} {plastic {re 0.1 ri 1.4 sh 12}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
|
||||
put {body_inner.r} comb region yes tree {l body_inner.c}
|
||||
attr set {body_inner.r} {oshader} {plastic} {region} {R} {shader} {plastic {sp 0.9 di 0.1}} {region_id} {1001} {material_id} {1} {los} {100} {color} {0/0/0}
|
||||
put {body_outer.c} comb region no tree {- {- {n {l body_rpp.s} {l body_sphere.s}} {l dots.c}} {l body_inner.c}}
|
||||
put {body_inner.c} comb region no tree {- {n {l body_rpp_inner.s} {l body_sphere_inner.s}} {l dots.c}}
|
||||
put {cube_edges.c} comb region no tree {u {u {l cube_rcc1.s} {l cube_rcc2.s}} {l cube_rcc3.s}}
|
||||
put {cube_rcc3.s} tgc V {8 10 8} H {0 -20 0} A {0 0 -2} B {2 0 0} C {0 0 -2} D {2 0 0}
|
||||
put {cube_rcc2.s} tgc V {8 8 10} H {0 0 -20} A {0 2 0} B {2 0 0} C {0 2 0} D {2 0 0}
|
||||
put {cube_rcc1.s} tgc V {10 8 8} H {-20 0 0} A {0 0 2} B {0 2 0} C {0 0 2} D {0 2 0}
|
||||
put {body_rpp_inner.s} arb8 V1 {9.900000000000000355271368 -9.900000000000000355271368 -9.900000000000000355271368} V2 {9.900000000000000355271368 9.899999999999986144416653 -9.900000000000000355271368} V3 {9.900000000000000355271368 9.899999999999986144416653 9.900000000000000355271368} V4 {9.900000000000000355271368 -9.900000000000000355271368 9.900000000000000355271368} V5 {-9.899999999999922195570434 -9.900000000000000355271368 -9.900000000000000355271368} V6 {-9.899999999999922195570434 9.899999999999986144416653 -9.900000000000000355271368} V7 {-9.899999999999922195570434 9.899999999999986144416653 9.900000000000000355271368} V8 {-9.899999999999922195570434 -9.900000000000000355271368 9.900000000000000355271368}
|
||||
put {body_rpp.s} arb8 V1 {10 -10 -10} V2 {10 9.999999999999985789145285 -10} V3 {10 9.999999999999985789145285 10} V4 {10 -10 10} V5 {-9.999999999999921840299066 -10 -10} V6 {-9.999999999999921840299066 9.999999999999985789145285 -10} V7 {-9.999999999999921840299066 9.999999999999985789145285 10} V8 {-9.999999999999921840299066 -10 10}
|
||||
put {body_sphere_inner.s} ell V {0 0 0} A {13.4143020316096475141876 0 0} B {0 13.4143020316096475141876 0} C {0 0 13.4143020316096475141876}
|
||||
put {dots6.c} comb region no tree {u {u {u {l sph61.s} {l sph62.s}} {u {l sph63.s} {l sph64.s}}} {u {l sph65.s} {l sph66.s}}}
|
||||
put {dots5.c} comb region no tree {u {u {u {l sph51.s} {l sph52.s}} {u {l sph53.s} {l sph54.s}}} {l sph55.s}}
|
||||
put {dots4.c} comb region no tree {u {u {l sph41.s} {l sph42.s}} {u {l sph43.s} {l sph44.s}}}
|
||||
put {dots3.c} comb region no tree {u {u {l sph31.s} {l sph32.s}} {l sph33.s}}
|
||||
put {dots2.c} comb region no tree {u {l sph21.s} {l sph22.s}}
|
||||
put {dots1.c} comb region no tree {l sph11.s}
|
||||
put {sph66.s} ell V {5.5 -12 -3.5} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
|
||||
put {sph65.s} ell V {-5.5 -12 -3.49999999999999955591079} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
|
||||
put {sph55.s} ell V {12 4.5 4.5} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph64.s} ell V {-5.5 -12 3.5} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
|
||||
put {sph54.s} ell V {12 -4.5 4.5} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph63.s} ell V {5.5 -12 3.5} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
|
||||
put {sph44.s} ell V {-3.5 -3.5 12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph53.s} ell V {12 -4.5 -4.5} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph62.s} ell V {0 -12 -3.5} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
|
||||
put {sph43.s} ell V {-3.5 3.5 12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph52.s} ell V {12 4.5 -4.5} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph61.s} ell V {0 -12 3.50000000000000044408921} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
|
||||
put {sph33.s} ell V {-4.5 -4.5 -12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph42.s} ell V {3.5 -3.5 12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph51.s} ell V {12 0 0} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph32.s} ell V {0 0 -12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph41.s} ell V {3.5 3.5 12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph22.s} ell V {-11.99999999999999822364316 3.49999999999999911182158 3.49999999999999911182158} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph31.s} ell V {4.5 4.5 -12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph21.s} ell V {-11.99999999999998934185896 -3.50000000000000088817842 -3.50000000000000088817842} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
|
||||
put {sph11.s} ell V {0 12.5 0} A {2.211859722021807250769143 1.981446994437259911947535 1.852442813782255726096082} B {-1.916905671313780867848209 2.832975207637170811381111 -0.7414338272552269959447813} C {-1.919153255314234307604693 -0.5460030047066275482592346 2.875540210372395932836298}
|
||||
put {dots.c} comb region no tree {u {u {u {l dots1.c} {l dots2.c}} {u {l dots3.c} {l dots4.c}}} {u {l dots5.c} {l dots6.c}}}
|
||||
put {die.g} comb region no tree {u {l body_outer.r} {l body_inner.r}}
|
||||
put {body_sphere.s} ell V {0 0 0} A {13.51430203160964715891623 0 0} B {0 13.51430203160964715891623 0} C {0 0 13.51430203160964715891623}
|
||||
@@ -1,856 +0,0 @@
|
||||
$COMMENT Generic Business Jet Rotor Burst Model
|
||||
$COMMENT Todd Horelica
|
||||
$COMMENT 28 Jan 2000
|
||||
$COMMENT
|
||||
$COMMENT The generic aircraft models were developed in support of the Federal
|
||||
$COMMENT Aviation Administration's Aircraft Catastrophic Failure Prevention
|
||||
$COMMENT Program. The models are used to demonstrate the Uncontained Engine
|
||||
$COMMENT Debris Damage Assessment Model (UEDDAM) tool which evaluates the risk
|
||||
$COMMENT to the aircraft from uncontained engine failures. This analysis
|
||||
$COMMENT supports certification to Title 14 Code of Federal Regulations,
|
||||
$COMMENT Part 25.903. The models are for demonstration purposes and do not
|
||||
$COMMENT depict actual aircraft and /or Aircraft systems in service. The models
|
||||
$COMMENT are available for public release.
|
||||
$COMMENT
|
||||
$COMMENT Note: Right and left are with respect to looking forward from the tail;
|
||||
$COMMENT i.e. the pilot's perspective
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT
|
||||
$NAME 0 1 Right Engine Nacelle
|
||||
SECTION 0 1 1 1
|
||||
GRID 1 -375.96 -64.08 145.47
|
||||
GRID 2 -491.31 -64.08 145.47
|
||||
CCONE1 1 8 1 2 0.04 19.010000001
|
||||
10000001 19.0 1 1
|
||||
$NAME 0 11 Left Engine Nacelle
|
||||
SECTION 0 11 1 1
|
||||
GRID 3 -375.96 64.08 145.47
|
||||
GRID 4 -491.31 64.08 145.47
|
||||
CCONE1 2 8 3 4 0.04 19.010000002
|
||||
10000002 19.0 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Pylons
|
||||
$NAME 0 2 Left Pylon
|
||||
SECTION 0 2 1 5
|
||||
GRID 5 -392.28 45.24 142.98
|
||||
GRID 6 -392.17 32.83 139.44
|
||||
GRID 7 -494.47 45.24 142.98
|
||||
GRID 8 -505.76 25.48 137.36
|
||||
GRID 9 -392.28 46.75 137.69
|
||||
GRID 10 -392.17 34.33 134.15
|
||||
GRID 11 -494.47 46.75 137.69
|
||||
GRID 12 -505.76 26.99 132.07
|
||||
CQUAD 51 8 5 9 11 7 0.032 1
|
||||
CQUAD 52 8 5 6 10 9 0.032 1
|
||||
CQUAD 53 8 6 8 12 10 0.032 1
|
||||
CQUAD 54 8 7 8 12 11 0.032 1
|
||||
CQUAD 55 8 5 6 8 7 0.032 1
|
||||
CQUAD 56 8 9 10 12 11 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 0 3 Right Pylon
|
||||
SECTION 0 3 1 5
|
||||
GRID 13 -392.28 -45.24 142.98
|
||||
GRID 14 -392.17 -32.83 139.44
|
||||
GRID 15 -494.47 -45.24 142.98
|
||||
GRID 16 -505.76 -25.48 137.36
|
||||
GRID 17 -392.28 -46.75 137.69
|
||||
GRID 18 -392.17 -34.33 134.15
|
||||
GRID 19 -494.47 -46.75 137.69
|
||||
GRID 20 -505.76 -26.99 132.07
|
||||
CQUAD 61 8 13 17 19 15 0.032 1
|
||||
CQUAD 62 8 13 14 18 17 0.032 1
|
||||
CQUAD 63 8 14 16 20 18 0.032 1
|
||||
CQUAD 64 8 15 16 20 19 0.032 1
|
||||
CQUAD 65 8 13 14 16 15 0.032 1
|
||||
CQUAD 66 8 17 18 20 19 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 0 4 Aft Fuselage
|
||||
SECTION 0 4 1 1
|
||||
GRID 21 -373.75 -0.00 127.25
|
||||
GRID 22 -512.50 -0.00 127.25
|
||||
CCONE1 3 8 21 22 0.032 36.2510000003
|
||||
10000003 26.96 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 0 101 Fairing
|
||||
SECTION 0 101 1 1
|
||||
GRID 223 -512.50 -0.00 100.27
|
||||
GRID 224 -373.75 33.49 75.73
|
||||
GRID 225 -373.75 -33.49 75.73
|
||||
GRID 226 -373.75 33.49 127.25
|
||||
GRID 227 -373.75 -33.49 127.25
|
||||
CQUAD 87 8 224 225 227 226 0.032 1
|
||||
CTRI 88 8 223 224 226 0.032 1
|
||||
CTRI 89 8 223 224 225 0.032 1
|
||||
CTRI 90 8 223 225 227 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Rotors
|
||||
$NAME 1 1 Right Engine Fan
|
||||
SECTION 1 1 2
|
||||
GRID 294 -408.33 -64.08 145.47
|
||||
GRID 295 -411.58 -64.08 145.47
|
||||
CCONE2 1 7 294 295 13.609C90
|
||||
C90 13.609 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 2 Right LPC1
|
||||
SECTION 1 2 2
|
||||
GRID 296 -416.62 -64.08 145.47
|
||||
GRID 297 -418.62 -64.08 145.47
|
||||
CCONE2 2 4 296 297 8.543C905
|
||||
C905 8.543 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 3 Right HPC1
|
||||
SECTION 1 3 2
|
||||
GRID 298 -427.25 -64.08 145.47
|
||||
GRID 299 -429.00 -64.08 145.47
|
||||
CCONE2 3 4 298 299 5.09C91
|
||||
C91 5.09 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 4 Right HPC2
|
||||
SECTION 1 4 2
|
||||
GRID 300 -431.36 -64.08 145.47
|
||||
GRID 301 -432.61 -64.08 145.47
|
||||
CCONE2 4 4 300 301 4.898C92
|
||||
C92 4.898 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 5 Right HPC3
|
||||
SECTION 1 5 2
|
||||
GRID 302 -436.69 -64.08 145.47
|
||||
GRID 303 -439.69 -64.08 145.47
|
||||
CCONE2 5 4 302 303 6.644C93
|
||||
C93 6.644 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 6 Right HPT1
|
||||
SECTION 1 6 2
|
||||
GRID 304 -443.53 -64.08 145.47
|
||||
GRID 305 -445.28 -64.08 145.47
|
||||
CCONE2 6 4 304 305 5.784C94
|
||||
C94 5.784 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 7 Right LPT1
|
||||
SECTION 1 7 2
|
||||
GRID 306 -447.46 -64.08 145.47
|
||||
GRID 307 -448.21 -64.08 145.47
|
||||
CCONE2 7 4 306 307 7.286C95
|
||||
C95 7.286 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 8 Right LPT2
|
||||
SECTION 1 8 2
|
||||
GRID 308 -450.10 -64.08 145.47
|
||||
GRID 309 -450.98 -64.08 145.47
|
||||
CCONE2 8 4 308 309 8.63C96
|
||||
C96 8.63 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 9 Right LPT3
|
||||
SECTION 1 9 2
|
||||
GRID 310 -453.05 -64.08 145.47
|
||||
GRID 311 -454.05 -64.08 145.47
|
||||
CCONE2 9 4 310 311 8.985C97
|
||||
C97 8.985 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 21 Right Engine Case
|
||||
SECTION 1 21 1
|
||||
GRID 332 -407.83 -64.08 145.47
|
||||
GRID 333 -454.55 -64.08 145.47
|
||||
CCONE1 21 4 332 333 0.1 14.109C332
|
||||
C332 14.109 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 11 Left Engine Fan
|
||||
SECTION 1 11 2
|
||||
GRID 312 -408.33 64.08 145.47
|
||||
GRID 313 -411.58 64.08 145.47
|
||||
CCONE2 10 7 312 313 13.609C98
|
||||
C98 13.609 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 12 Left LPC2
|
||||
SECTION 1 12 2
|
||||
GRID 314 -416.62 64.08 145.47
|
||||
GRID 315 -418.62 64.08 145.47
|
||||
CCONE2 19 4 314 315 8.543C985
|
||||
C985 8.543 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 13 Left HPC1
|
||||
SECTION 1 13 2
|
||||
GRID 316 -427.25 64.08 145.47
|
||||
GRID 317 -429.00 64.08 145.47
|
||||
CCONE2 11 4 316 317 5.09C99
|
||||
C99 5.09 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 14 Left HPC2
|
||||
SECTION 1 14 2
|
||||
GRID 318 -431.36 64.08 145.47
|
||||
GRID 319 -432.61 64.08 145.47
|
||||
CCONE2 12 4 318 319 4.898C100
|
||||
C100 4.898 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 15 Left HPC3
|
||||
SECTION 1 15 2
|
||||
GRID 320 -436.69 64.08 145.47
|
||||
GRID 321 -439.69 64.08 145.47
|
||||
CCONE2 13 4 320 321 6.644C101
|
||||
C101 6.644 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 16 Left HPT1
|
||||
SECTION 1 16 2
|
||||
GRID 322 -443.53 64.08 145.47
|
||||
GRID 323 -445.28 64.08 145.47
|
||||
CCONE2 14 4 322 323 5.784C102
|
||||
C102 5.784 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 17 Left LPT1
|
||||
SECTION 1 17 2
|
||||
GRID 324 -447.46 64.08 145.47
|
||||
GRID 325 -448.21 64.08 145.47
|
||||
CCONE2 15 4 324 325 7.286C103
|
||||
C103 7.286 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 18 Left LPT2
|
||||
SECTION 1 18 2
|
||||
GRID 326 -450.10 64.08 145.47
|
||||
GRID 327 -450.98 64.08 145.47
|
||||
CCONE2 16 4 326 327 8.63C104
|
||||
C104 8.63 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 19 Left LPT3
|
||||
SECTION 1 19 2
|
||||
GRID 328 -453.05 64.08 145.47
|
||||
GRID 329 -454.05 64.08 145.47
|
||||
CCONE2 17 4 328 329 8.985C105
|
||||
C105 8.985 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 1 22 Left Engine Case
|
||||
SECTION 1 22 1
|
||||
GRID 334 -407.83 64.08 145.47
|
||||
GRID 335 -454.55 64.08 145.47
|
||||
CCONE1 22 4 334 335 0.1 14.109C333
|
||||
C333 14.109 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Control Cables
|
||||
$NAME 3 1 Elevator Control Cables
|
||||
SECTION 3 1 1
|
||||
GRID 256 -373.75 13.97 90.17
|
||||
GRID 257 -446.98 -2.25 95.25
|
||||
GRID 258 -512.50 -1.03 104.95
|
||||
GRID 259 -373.75 6.07 88.65
|
||||
GRID 260 -446.96 -2.70 95.40
|
||||
GRID 261 -512.50 -1.63 105.02
|
||||
CLINE 1 4 256 257 0.063 0.063
|
||||
CLINE 2 4 257 258 0.063 0.063
|
||||
CLINE 3 4 259 260 0.063 0.063
|
||||
CLINE 4 4 260 261 0.063 0.063
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 3 2 Elevator Trim Cables
|
||||
SECTION 3 2 1
|
||||
GRID 262 -373.75 -26.11 99.49
|
||||
GRID 263 -388.77 -26.11 99.49
|
||||
GRID 264 -385.59 -5.80 160.33
|
||||
GRID 265 -512.50 -5.80 150.95
|
||||
GRID 266 -375.75 -25.70 99.35
|
||||
GRID 267 -388.78 -25.70 99.35
|
||||
GRID 268 -385.59 -5.80 159.88
|
||||
GRID 269 -512.50 -5.80 150.50
|
||||
CLINE 5 4 262 263 0.063 0.063
|
||||
CLINE 6 4 263 264 0.063 0.063
|
||||
CLINE 7 4 264 265 0.063 0.063
|
||||
CLINE 8 4 266 267 0.063 0.063
|
||||
CLINE 9 4 267 268 0.063 0.063
|
||||
CLINE 10 4 268 269 0.063 0.063
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 3 101 Rudder-Upper
|
||||
SECTION 3 101 1
|
||||
GRID 270 -373.75 -3.72 90.59
|
||||
GRID 271 -384.74 -3.78 90.59
|
||||
GRID 272 -391.84 -5.80 158.00
|
||||
GRID 273 -512.50 -5.80 149.08
|
||||
GRID 274 -373.75 -9.62 91.68
|
||||
GRID 275 -383.88 -9.54 91.68
|
||||
GRID 276 -392.62 -7.04 157.94
|
||||
GRID 277 -512.50 -7.04 149.08
|
||||
CLINE 11 4 270 271 0.063 0.063
|
||||
CLINE 12 4 271 272 0.063 0.063
|
||||
CLINE 13 4 272 273 0.063 0.063
|
||||
CLINE 14 4 274 275 0.063 0.063
|
||||
CLINE 15 4 275 276 0.063 0.063
|
||||
CLINE 16 4 276 277 0.063 0.063
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 3 102 Rudder-Lower
|
||||
SECTION 3 102 1
|
||||
GRID 278 -373.75 -3.85 89.54
|
||||
GRID 279 -448.81 -3.15 95.48
|
||||
GRID 280 -512.50 -5.55 106.78
|
||||
GRID 281 -373.75 -11.73 90.18
|
||||
GRID 282 -448.78 -3.68 95.40
|
||||
GRID 283 -512.50 -6.18 107.18
|
||||
CLINE 17 4 278 279 0.063 0.063
|
||||
CLINE 18 4 279 280 0.063 0.063
|
||||
CLINE 19 4 281 282 0.063 0.063
|
||||
CLINE 20 4 282 283 0.063 0.063
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 3 103 Rudder Trim
|
||||
SECTION 3 103 1
|
||||
GRID 284 -375.75 25.28 99.20
|
||||
GRID 285 -388.78 25.28 99.20
|
||||
GRID 286 -385.54 5.55 159.17
|
||||
GRID 287 -406.34 -5.80 157.47
|
||||
GRID 288 -512.50 -5.80 149.62
|
||||
GRID 289 -373.75 26.53 99.63
|
||||
GRID 290 -388.76 26.53 99.63
|
||||
GRID 291 -385.75 5.95 159.27
|
||||
GRID 292 -406.37 -5.80 157.91
|
||||
GRID 293 -512.50 -5.80 150.06
|
||||
CLINE 21 4 284 285 0.063 0.063
|
||||
CLINE 22 4 285 286 0.063 0.063
|
||||
CLINE 23 4 286 287 0.063 0.063
|
||||
CLINE 24 4 287 288 0.063 0.063
|
||||
CLINE 25 4 289 290 0.063 0.063
|
||||
CLINE 26 4 290 291 0.063 0.063
|
||||
CLINE 27 4 291 292 0.063 0.063
|
||||
CLINE 28 4 292 293 0.063 0.063
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Fuel Lines
|
||||
$NAME 4 1 Fuel Supply Line (Right Side)
|
||||
SECTION 4 1 1 1
|
||||
GRID 23 -378.88 -23.20 99.85
|
||||
GRID 24 -380.84 -28.57 144.05
|
||||
GRID 25 -428.13 -21.15 144.62
|
||||
GRID 26 -428.85 -24.92 136.29
|
||||
GRID 27 -427.79 -45.94 140.51
|
||||
CLINE 1 12 23 24 0.035 0.5
|
||||
CLINE 2 12 24 25 0.035 0.5
|
||||
CLINE 3 12 25 26 0.035 0.5
|
||||
CLINE 4 12 26 27 0.035 0.5
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 4 2 Fuel Supply Line (Left Side)
|
||||
SECTION 4 2 1 1
|
||||
GRID 28 -378.88 23.20 99.85
|
||||
GRID 29 -380.84 28.57 144.05
|
||||
GRID 30 -428.13 21.15 144.62
|
||||
GRID 31 -428.85 24.92 136.29
|
||||
GRID 32 -427.79 45.94 140.51
|
||||
CLINE 5 12 28 29 0.035 0.5
|
||||
CLINE 6 12 29 30 0.035 0.5
|
||||
CLINE 7 12 30 31 0.035 0.5
|
||||
CLINE 8 12 31 32 0.035 0.5
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 4 3 Fuel Motive Flow Line (Right Side)
|
||||
SECTION 4 3 1 1
|
||||
GRID 33 -378.82 -21.40 98.41
|
||||
GRID 34 -380.84 -26.92 143.90
|
||||
GRID 35 -428.20 -19.50 144.48
|
||||
GRID 36 -428.89 -24.34 133.86
|
||||
GRID 37 -427.77 -46.57 138.33
|
||||
CLINE 9 12 33 34 0.035 0.25
|
||||
CLINE 10 12 34 35 0.035 0.25
|
||||
CLINE 11 12 35 36 0.035 0.25
|
||||
CLINE 12 12 36 37 0.035 0.25
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 4 4 Fuel Motive Flow Line (Left Side)
|
||||
SECTION 4 4 1 1
|
||||
GRID 38 -378.82 21.40 98.41
|
||||
GRID 39 -380.84 26.92 143.90
|
||||
GRID 40 -428.20 19.50 144.48
|
||||
GRID 41 -428.89 24.34 133.86
|
||||
GRID 42 -427.77 46.57 138.33
|
||||
CLINE 13 12 38 39 0.035 0.25
|
||||
CLINE 14 12 39 40 0.035 0.25
|
||||
CLINE 15 12 40 41 0.035 0.25
|
||||
CLINE 16 12 41 42 0.035 0.25
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Structure
|
||||
$NAME 7 1 Left Forward Engine Beam (1st 2 outboard; 2nd 2 inboard)
|
||||
SECTION 7 1 1 1
|
||||
GRID 43 -421.50 45.35 142.87
|
||||
GRID 44 -421.50 46.64 137.80
|
||||
GRID 45 -421.50 31.04 138.79
|
||||
GRID 46 -421.50 32.33 133.72
|
||||
$COMMENT Forward Engine Beam, Back Side (1st 2 outboard; 2nd 2 inboard)
|
||||
GRID 47 -424.50 45.35 142.87
|
||||
GRID 48 -424.50 46.64 137.80
|
||||
GRID 49 -424.50 30.85 138.74
|
||||
GRID 50 -424.50 32.13 133.67
|
||||
CQUAD 1 8 49 45 43 47 0.190 1
|
||||
CQUAD 2 8 49 47 48 50 0.100 1
|
||||
CQUAD 3 8 44 46 50 48 0.190 1
|
||||
CQUAD 4 8 44 46 45 43 0.100 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 2 Forward Beam through fuselage
|
||||
SECTION 7 2 1 1
|
||||
GRID 45 -421.50 31.04 138.79
|
||||
GRID 46 -421.50 32.33 133.72
|
||||
GRID 61 -421.50 -31.04 138.79
|
||||
GRID 62 -421.50 -32.33 133.72
|
||||
GRID 49 -424.50 30.85 138.74
|
||||
GRID 50 -424.50 32.13 133.67
|
||||
GRID 65 -424.50 -30.85 138.74
|
||||
GRID 66 -424.50 -32.13 133.67
|
||||
CQUAD 17 8 45 46 62 61 0.100 1
|
||||
CQUAD 18 8 49 50 66 65 0.100 1
|
||||
CQUAD 19 8 45 49 65 61 0.190 1
|
||||
CQUAD 20 8 46 50 66 62 0.190 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 3 Right Forward Engine Beam (1st 2 outboard; 2nd 2 inboard)
|
||||
SECTION 7 3 1 1
|
||||
GRID 59 -421.50 -45.35 142.87
|
||||
GRID 60 -421.50 -46.64 137.80
|
||||
GRID 61 -421.50 -31.04 138.79
|
||||
GRID 62 -421.50 -32.33 133.72
|
||||
$COMMENT Forward Engine Beam, Back Side (1st 2 outboard; 2nd 2 inboard)
|
||||
GRID 63 -424.50 -45.35 142.87
|
||||
GRID 64 -424.50 -46.64 137.80
|
||||
GRID 65 -424.50 -30.85 138.74
|
||||
GRID 66 -424.50 -32.13 133.67
|
||||
CQUAD 9 8 65 61 59 63 0.190 1
|
||||
CQUAD 10 8 65 63 64 66 0.100 1
|
||||
CQUAD 11 8 60 62 66 64 0.190 1
|
||||
CQUAD 12 8 60 62 61 59 0.100 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 11 Left Aft Engine Beam (1st 2 outboard; 2nd 2 inboard)
|
||||
SECTION 7 11 1 1
|
||||
GRID 51 -460.50 45.14 142.88
|
||||
GRID 52 -460.50 46.68 137.76
|
||||
GRID 53 -460.50 28.51 138.09
|
||||
GRID 54 -460.50 29.85 132.97
|
||||
$COMMENT Left Aft Engine Beam Back Side (1st 2 outboard; 2nd 2 inboard)
|
||||
GRID 55 -462.50 45.14 142.88
|
||||
GRID 56 -462.50 46.68 137.76
|
||||
GRID 57 -462.50 28.38 138.05
|
||||
GRID 58 -462.50 29.72 132.93
|
||||
CQUAD 5 8 57 53 51 55 0.160 1
|
||||
CQUAD 6 8 57 55 56 58 0.064 1
|
||||
CQUAD 7 8 52 54 58 56 0.100 1
|
||||
CQUAD 8 8 52 54 53 51 0.064 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 12 Aft Engine Beam through fuselage
|
||||
SECTION 7 12 1 1
|
||||
GRID 53 -460.50 28.51 138.09
|
||||
GRID 54 -460.50 29.85 132.97
|
||||
GRID 57 -462.50 28.38 138.05
|
||||
GRID 58 -462.50 29.72 132.93
|
||||
GRID 69 -460.50 -28.51 138.09
|
||||
GRID 70 -460.50 -29.85 132.97
|
||||
GRID 73 -462.50 -28.38 138.05
|
||||
GRID 74 -462.50 -29.72 132.93
|
||||
CQUAD 21 8 53 54 70 69 0.064 1
|
||||
CQUAD 22 8 57 58 74 73 0.064 1
|
||||
CQUAD 23 8 53 57 73 69 0.160 1
|
||||
CQUAD 24 8 54 58 74 70 0.100 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 13 Right Aft Engine Beam (1st 2 outboard; 2nd 2 inboard)
|
||||
SECTION 7 13 1 1
|
||||
GRID 67 -460.50 -45.14 142.88
|
||||
GRID 68 -460.50 -46.68 137.76
|
||||
GRID 69 -460.50 -28.51 138.09
|
||||
GRID 70 -460.50 -29.85 132.97
|
||||
$COMMENT Aft Engine Beam Back Side (1st 2 outboard; 2nd 2 inboard)
|
||||
GRID 71 -462.50 -45.14 142.88
|
||||
GRID 72 -462.50 -46.68 137.76
|
||||
GRID 73 -462.50 -28.38 138.05
|
||||
GRID 74 -462.50 -29.72 132.93
|
||||
CQUAD 13 8 73 69 67 71 0.160 1
|
||||
CQUAD 16 8 68 70 69 67 0.064 1
|
||||
CQUAD 14 8 73 71 72 74 0.064 1
|
||||
CQUAD 15 8 68 70 74 72 0.100 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$Frames
|
||||
$COMMENT The number in parenthesis () is the actual location relative to the origin.
|
||||
$COMMENT The other numbers are the numbers provided by the original source.
|
||||
$NAME 7 51 Frame at FS 389.5
|
||||
SECTION 7 51 1 1
|
||||
GRID 75 -389.50 -0.00 127.25
|
||||
GRID 76 -390.25 -0.00 127.25
|
||||
CCONE1 5 8 75 76 0.032 35.163C1
|
||||
C1 35.113 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 52 Frame at FS 405.5
|
||||
SECTION 7 52 1 1
|
||||
GRID 77 -405.50 -0.00 127.25
|
||||
GRID 78 -406.25 -0.00 127.25
|
||||
CCONE1 6 8 77 78 0.032 34.092C2
|
||||
C2 34.042 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 53 Frame at FS 479.5
|
||||
SECTION 7 53 1 1
|
||||
GRID 79 -479.50 -0.00 127.25
|
||||
GRID 80 -480.25 -0.00 127.25
|
||||
CCONE1 7 8 79 80 0.032 29.138C3
|
||||
C3 29.087 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 54 Frame at FS 496.5
|
||||
SECTION 7 54 1 1
|
||||
GRID 81 -496.50 -0.00 127.25
|
||||
GRID 82 -497.25 -0.00 127.25
|
||||
CCONE1 8 8 81 82 0.032 28.00C4
|
||||
C4 27.95 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 55 Frame at FS 512.5
|
||||
SECTION 7 55 1 1
|
||||
GRID 83 -512.50 -0.00 127.25
|
||||
GRID 84 -513.25 -0.00 127.25
|
||||
CCONE1 9 8 83 84 0.032 26.928C5
|
||||
C5 26.846 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Engine Beam Frames
|
||||
$NAME 7 61 Frame at FS 420.75
|
||||
SECTION 7 61 1 1
|
||||
GRID 85 -420.75 -0.00 127.25
|
||||
GRID 86 -421.50 -0.00 127.25
|
||||
CCONE1 10 8 85 86 0.032 33.07C6
|
||||
C6 33.021 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 62 Frame at FS 424.5
|
||||
SECTION 7 62 1 1
|
||||
GRID 87 -424.50 -0.00 127.25
|
||||
GRID 88 -425.25 -0.00 127.25
|
||||
CCONE1 11 8 87 88 0.032 32.82C7
|
||||
C7 32.77 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 63 Frame at FS 459.75
|
||||
SECTION 7 63 1 1
|
||||
GRID 89 -459.75 -0.00 127.25
|
||||
GRID 90 -460.50 -0.00 127.25
|
||||
CCONE1 12 8 89 90 0.032 30.46C8
|
||||
C8 30.41 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 64 Frame at FS 462.5
|
||||
SECTION 7 64 1 1
|
||||
GRID 91 -462.50 -0.00 127.25
|
||||
GRID 92 -463.25 -0.00 127.25
|
||||
CCONE1 13 8 91 92 0.032 30.28C9
|
||||
C9 30.23 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 65 Frame at FS 442.5
|
||||
$COMMENT (Missing frame--goes between the two engine beam frames)
|
||||
SECTION 7 65 1 1
|
||||
GRID 93 -442.50 -0.00 127.25
|
||||
GRID 94 -443.25 -0.00 127.25
|
||||
CCONE1 14 8 93 94 0.032 31.615C10
|
||||
C10 31.565 1 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$COMMENT Stringers
|
||||
$NAME 7 101 Stringer 1
|
||||
SECTION 7 101 1 1
|
||||
GRID 95 -373.75 0.75 91.13
|
||||
GRID 96 -373.75 -0.75 91.13
|
||||
GRID 97 -512.50 0.75 100.42
|
||||
GRID 98 -512.50 -0.75 100.42
|
||||
CQUAD 15 13 95 96 98 97 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 102 Stringer 2
|
||||
SECTION 7 102 1 1
|
||||
GRID 99 -373.75 0.75 163.38
|
||||
GRID 100 -373.75 -0.75 163.38
|
||||
GRID 101 -512.50 0.75 154.09
|
||||
GRID 102 -512.50 -0.75 154.09
|
||||
CQUAD 16 13 99 100 102 101 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 103 Stringer 3
|
||||
SECTION 7 103 1 1
|
||||
GRID 103 -373.75 6.00 162.51
|
||||
GRID 104 -373.75 7.49 162.24
|
||||
GRID 105 -512.50 4.25 153.47
|
||||
GRID 106 -512.50 5.72 153.17
|
||||
CQUAD 17 13 103 104 106 105 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 104 Stringer 4
|
||||
SECTION 7 104 1 1
|
||||
GRID 107 -373.75 -6.00 162.51
|
||||
GRID 108 -373.75 -7.49 162.24
|
||||
GRID 109 -512.50 -4.25 153.47
|
||||
GRID 110 -512.50 -5.72 153.17
|
||||
CQUAD 18 13 107 108 110 109 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 105 Stringer 5
|
||||
SECTION 7 105 1 1
|
||||
GRID 111 -373.75 12.78 160.63
|
||||
GRID 112 -373.75 14.11 160.05
|
||||
GRID 113 -512.50 9.22 152.04
|
||||
GRID 114 -512.50 10.61 151.47
|
||||
CQUAD 19 13 111 112 114 113 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 106 Stringer 6
|
||||
SECTION 7 106 1 1
|
||||
GRID 115 -373.75 -12.78 160.63
|
||||
GRID 116 -373.75 -14.11 160.05
|
||||
GRID 117 -512.50 -9.22 152.04
|
||||
GRID 118 -512.50 -10.61 151.47
|
||||
CQUAD 20 13 115 116 118 117 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 107 Stringer 7
|
||||
SECTION 7 107 1 1
|
||||
GRID 119 -373.75 19.11 157.41
|
||||
GRID 120 -373.75 20.36 156.57
|
||||
GRID 121 -512.50 13.95 149.68
|
||||
GRID 122 -512.50 15.20 148.85
|
||||
CQUAD 21 13 119 120 122 121 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 108 Stringer 8
|
||||
SECTION 7 108 1 1
|
||||
GRID 123 -373.75 -19.12 157.41
|
||||
GRID 124 -373.75 -20.36 156.57
|
||||
GRID 125 -512.50 -13.95 149.68
|
||||
GRID 126 -512.50 -15.20 148.85
|
||||
CQUAD 22 13 123 124 126 125 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 109 Stringer 9
|
||||
SECTION 7 109 1 1
|
||||
GRID 127 -373.75 24.70 153.01
|
||||
GRID 128 -373.75 25.76 151.95
|
||||
GRID 129 -512.50 18.13 146.44
|
||||
GRID 130 -512.50 19.19 145.38
|
||||
CQUAD 23 13 127 128 130 129 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 110 Stringer 10
|
||||
SECTION 7 110 1 1
|
||||
GRID 131 -373.75 -24.70 153.01
|
||||
GRID 132 -373.75 -25.76 151.95
|
||||
GRID 133 -512.75 -18.13 146.44
|
||||
GRID 134 -512.75 -19.19 145.38
|
||||
CQUAD 24 13 131 132 134 133 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 111 Stringer 11
|
||||
SECTION 7 111 1 1
|
||||
GRID 135 -373.75 29.32 147.61
|
||||
GRID 136 -373.75 30.16 146.37
|
||||
GRID 137 -512.50 21.60 142.45
|
||||
GRID 138 -512.50 22.43 141.20
|
||||
CQUAD 25 13 135 136 138 137 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 112 Stringer 12
|
||||
SECTION 7 112 1 1
|
||||
GRID 139 -373.75 -29.32 147.61
|
||||
GRID 140 -373.75 -30.16 146.37
|
||||
GRID 141 -512.50 -21.60 142.45
|
||||
GRID 142 -512.50 -22.43 141.20
|
||||
CQUAD 26 13 139 140 142 141 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 113 Stringer 13
|
||||
SECTION 7 113 1 1
|
||||
GRID 143 -373.75 32.80 141.41
|
||||
GRID 144 -373.75 33.38 140.03
|
||||
GRID 145 -512.50 24.22 137.86
|
||||
GRID 146 -512.50 24.79 136.47
|
||||
CQUAD 27 13 143 144 146 145 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 114 Stringer 14
|
||||
SECTION 7 114 1 1
|
||||
GRID 147 -373.75 -32.80 141.41
|
||||
GRID 148 -373.75 -33.38 140.03
|
||||
GRID 149 -512.50 -24.22 137.86
|
||||
GRID 150 -512.50 -24.80 136.47
|
||||
CQUAD 28 13 147 148 150 149 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 115 Stringer 15
|
||||
SECTION 7 115 1 1
|
||||
GRID 151 -373.75 35.01 134.66
|
||||
GRID 152 -373.75 35.30 133.19
|
||||
GRID 153 -512.50 25.90 132.85
|
||||
GRID 154 -512.50 26.19 131.37
|
||||
CQUAD 29 13 151 152 154 153 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 116 Stringer 16
|
||||
SECTION 7 116 1 1
|
||||
GRID 155 -373.75 -35.01 134.66
|
||||
GRID 156 -373.75 -35.30 133.19
|
||||
GRID 157 -512.50 -25.90 132.85
|
||||
GRID 158 -512.50 -26.19 131.37
|
||||
CQUAD 30 13 155 156 158 157 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 117 Stringer 17
|
||||
SECTION 7 117 1 1
|
||||
GRID 159 -373.75 35.85 127.60
|
||||
GRID 160 -373.75 35.85 126.10
|
||||
GRID 161 -512.50 26.56 127.60
|
||||
GRID 162 -512.50 26.56 126.10
|
||||
CQUAD 31 13 159 160 162 161 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 118 Stringer 18
|
||||
SECTION 7 118 1 1
|
||||
GRID 163 -373.75 -35.85 127.60
|
||||
GRID 164 -373.75 -35.85 126.10
|
||||
GRID 165 -512.50 -26.56 127.60
|
||||
GRID 166 -512.50 -26.56 126.10
|
||||
CQUAD 32 13 163 164 166 165 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 119 Stringer 19
|
||||
SECTION 7 119 1 1
|
||||
GRID 167 -373.75 35.30 121.31
|
||||
GRID 168 -373.75 35.01 119.84
|
||||
GRID 169 -512.50 26.19 123.13
|
||||
GRID 170 -512.50 25.90 121.65
|
||||
CQUAD 33 13 167 168 170 169 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 120 Stringer 20
|
||||
SECTION 7 120 1 1
|
||||
GRID 171 -373.75 -35.30 121.31
|
||||
GRID 172 -373.75 -35.01 119.84
|
||||
GRID 173 -512.50 -26.19 123.13
|
||||
GRID 174 -512.50 -25.90 121.65
|
||||
CQUAD 34 13 171 172 174 173 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 121 Stringer 21
|
||||
SECTION 7 121 1 1
|
||||
GRID 171 -373.75 -35.30 121.31
|
||||
GRID 172 -373.75 -35.01 119.84
|
||||
GRID 173 -512.50 -26.19 123.13
|
||||
GRID 174 -512.50 -25.90 121.65
|
||||
CQUAD 34 13 171 172 174 173 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 122 Stringer 22
|
||||
SECTION 7 122 1 1
|
||||
GRID 175 -373.75 33.38 114.47
|
||||
GRID 176 -373.75 32.80 113.08
|
||||
GRID 177 -512.50 24.79 118.03
|
||||
GRID 178 -512.50 24.22 116.64
|
||||
CQUAD 35 13 175 176 178 177 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 123 Stringer 23
|
||||
SECTION 7 123 1 1
|
||||
GRID 179 -373.75 -33.38 114.47
|
||||
GRID 180 -373.75 -32.80 113.08
|
||||
GRID 181 -512.50 -24.80 118.03
|
||||
GRID 182 -512.50 -24.22 116.64
|
||||
CQUAD 36 13 179 180 182 181 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 124 Stringer 24
|
||||
SECTION 7 124 1 1
|
||||
GRID 183 -373.75 30.16 108.14
|
||||
GRID 184 -373.75 29.32 106.89
|
||||
GRID 185 -512.50 22.43 113.30
|
||||
GRID 186 -512.50 21.60 112.05
|
||||
CQUAD 37 13 183 184 186 185 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 125 Stringer 25
|
||||
SECTION 7 125 1 1
|
||||
GRID 187 -373.75 -30.16 108.14
|
||||
GRID 188 -373.75 -29.32 106.89
|
||||
GRID 189 -512.50 -22.43 113.30
|
||||
GRID 190 -512.50 -21.60 112.05
|
||||
CQUAD 38 13 187 188 190 189 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 126 Stringer 26
|
||||
SECTION 7 126 1 1
|
||||
GRID 191 -373.75 25.76 102.55
|
||||
GRID 192 -373.75 24.70 101.49
|
||||
GRID 193 -512.50 19.19 109.12
|
||||
GRID 194 -512.50 18.13 108.06
|
||||
CQUAD 39 13 191 192 194 193 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 127 Stringer 27
|
||||
SECTION 7 127 1 1
|
||||
GRID 195 -373.75 -25.76 102.55
|
||||
GRID 196 -373.75 -24.70 101.49
|
||||
GRID 197 -512.50 -19.19 109.12
|
||||
GRID 198 -512.50 -18.13 108.06
|
||||
CQUAD 40 13 195 196 198 197 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 128 Stringer 28
|
||||
SECTION 7 128 1 1
|
||||
GRID 199 -373.75 20.36 97.93
|
||||
GRID 200 -373.75 19.11 97.09
|
||||
GRID 201 -512.50 15.20 105.65
|
||||
GRID 202 -512.50 13.95 104.82
|
||||
CQUAD 41 13 199 200 202 201 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 129 Stringer 29
|
||||
SECTION 7 129 1 1
|
||||
GRID 203 -373.75 -20.36 97.93
|
||||
GRID 204 -373.75 -19.12 97.09
|
||||
GRID 205 -512.50 -15.20 105.65
|
||||
GRID 206 -512.50 -13.95 104.82
|
||||
CQUAD 42 13 203 204 206 205 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 130 Stringer 30
|
||||
SECTION 7 130 1 1
|
||||
GRID 207 -373.75 14.16 94.45
|
||||
GRID 208 -373.75 12.78 93.87
|
||||
GRID 209 -512.50 10.61 103.03
|
||||
GRID 210 -512.50 9.22 102.46
|
||||
CQUAD 43 13 207 208 210 209 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 131 Stringer 31
|
||||
SECTION 7 131 1 1
|
||||
GRID 211 -373.75 -14.17 94.45
|
||||
GRID 212 -373.75 -12.78 93.87
|
||||
GRID 213 -512.50 -10.61 103.03
|
||||
GRID 214 -512.50 -9.22 102.46
|
||||
CQUAD 44 13 211 212 214 213 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 132 Stringer 32
|
||||
SECTION 7 132 1 1
|
||||
GRID 215 -373.75 7.41 92.24
|
||||
GRID 216 -373.75 5.94 91.95
|
||||
GRID 217 -512.50 5.59 101.35
|
||||
GRID 218 -512.50 4.13 101.06
|
||||
CQUAD 45 13 215 216 218 217 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 133 Stringer 33
|
||||
SECTION 7 133 1 1
|
||||
GRID 219 -373.75 -7.41 92.24
|
||||
GRID 220 -373.75 -5.94 91.95
|
||||
GRID 221 -512.50 -5.59 101.35
|
||||
GRID 222 -512.50 -4.13 101.06
|
||||
CQUAD 46 13 219 220 222 221 0.045 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 201 Fairing Structure 1
|
||||
SECTION 7 201 1 1
|
||||
GRID 228 -389.50 29.69 78.52
|
||||
GRID 229 -389.50 -29.69 78.52
|
||||
GRID 230 -389.50 29.69 108.35
|
||||
GRID 231 -389.50 -29.69 108.35
|
||||
CQUAD 11 8 228 229 231 230 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 202 Fairing Structure 2
|
||||
SECTION 7 202 1 1
|
||||
GRID 232 -405.50 25.83 81.35
|
||||
GRID 233 -405.50 -25.83 81.35
|
||||
GRID 234 -405.50 25.83 104.95
|
||||
GRID 235 -405.50 -25.83 104.95
|
||||
CQUAD 12 8 232 233 235 234 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 203 Fairing Structure 3
|
||||
SECTION 7 203 1 1
|
||||
GRID 236 -423.00 21.61 84.44
|
||||
GRID 237 -423.00 -21.61 84.44
|
||||
GRID 238 -423.00 21.61 102.37
|
||||
GRID 239 -423.00 -21.61 102.37
|
||||
CQUAD 13 8 236 237 239 238 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 204 Fairing Structure 4
|
||||
SECTION 7 204 1 1
|
||||
GRID 240 -442.50 16.90 87.89
|
||||
GRID 241 -442.50 -16.90 87.89
|
||||
GRID 242 -442.50 16.90 100.49
|
||||
GRID 243 -442.50 -16.90 100.49
|
||||
CQUAD 14 8 240 241 243 242 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 205 Fairing Structure 5
|
||||
SECTION 7 205 1 1
|
||||
GRID 244 -461.50 12.31 91.25
|
||||
GRID 245 -461.50 -12.31 91.25
|
||||
GRID 246 -461.50 12.31 99.48
|
||||
GRID 247 -461.50 -12.31 99.48
|
||||
CQUAD 15 8 244 245 247 246 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 206 Fairing Structure 6
|
||||
SECTION 7 206 1 1
|
||||
GRID 248 -479.50 7.97 94.43
|
||||
GRID 249 -479.50 -7.97 94.43
|
||||
GRID 250 -479.50 7.97 99.19
|
||||
GRID 251 -479.50 -7.97 99.19
|
||||
CQUAD 16 8 248 249 251 250 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 207 Fairing Structure 7
|
||||
SECTION 7 207 1 1
|
||||
GRID 252 -496.50 3.86 97.44
|
||||
GRID 253 -496.50 -3.86 97.44
|
||||
GRID 254 -496.50 3.86 99.49
|
||||
GRID 255 -496.50 -3.86 99.49
|
||||
CQUAD 17 8 252 253 255 254 0.032 1
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
$NAME 7 501 Pressure Bulkhead
|
||||
SECTION 7 501 2
|
||||
GRID 330 -373.25 -0.00 127.25
|
||||
GRID 331 -373.75 -0.00 127.25
|
||||
CCONE2 18 8 330 331 36.25C106
|
||||
C106 36.25 0 0
|
||||
$COMMENT123456781234567812345678123456781234567812345678123456781234567812345678
|
||||
ENDDATA
|
||||
@@ -1,21 +0,0 @@
|
||||
set(FAA_SAMPLE_MODELS
|
||||
Business_Jet.fg4
|
||||
Generic_Twin.fg4
|
||||
)
|
||||
|
||||
foreach(faa_input ${FAA_SAMPLE_MODELS})
|
||||
ADD_G_TARGET(${faa_input} "BRL-CAD Geometry Models/Sample")
|
||||
endforeach(faa_input ${FAA_SAMPLE_MODELS})
|
||||
|
||||
CMAKEFILES(
|
||||
${FAA_SAMPLE_MODELS}
|
||||
CMakeLists.txt
|
||||
README
|
||||
)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
-209836
File diff suppressed because it is too large
Load Diff
@@ -1,13 +0,0 @@
|
||||
For example images of these models, see the report:
|
||||
|
||||
Uncontained Engine Debris Analysis Using the Uncontained
|
||||
Engine Debris Damage Assessment Model
|
||||
DOT/FAA/AR-04/16
|
||||
Office of Aviation Research
|
||||
Washington, D.C. 20591
|
||||
http://www.tc.faa.gov/its/worldpac/techrpt/AR04-16.pdf
|
||||
|
||||
(Note: the Generic Twin images in that report show the model
|
||||
prior to its most recent updates, which are reflected in the
|
||||
version included in BRL-CAD.)
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
set(NIST_SAMPLE_MODELS
|
||||
NIST_MBE_PMI_1.stp
|
||||
NIST_MBE_PMI_2.stp
|
||||
NIST_MBE_PMI_3.stp
|
||||
NIST_MBE_PMI_4.stp
|
||||
NIST_MBE_PMI_5.stp
|
||||
NIST_MBE_PMI_6.stp
|
||||
NIST_MBE_PMI_7-10.3dm
|
||||
NIST_MBE_PMI_11.stp
|
||||
)
|
||||
|
||||
foreach(im ${NIST_SAMPLE_MODELS})
|
||||
ADD_G_TARGET(${im} "BRL-CAD Geometry Models/Sample")
|
||||
endforeach(im ${NIST_SAMPLE_MODELS})
|
||||
|
||||
CMAKEFILES(
|
||||
${NIST_SAMPLE_MODELS}
|
||||
CMakeLists.txt
|
||||
README
|
||||
pdf/1.pdf
|
||||
pdf/2.pdf
|
||||
pdf/3.pdf
|
||||
pdf/4.pdf
|
||||
pdf/5.pdf
|
||||
pdf/6.pdf
|
||||
pdf/7-10_assem.pdf
|
||||
pdf/7.pdf
|
||||
pdf/8.pdf
|
||||
pdf/9.pdf
|
||||
pdf/10.pdf
|
||||
pdf/11.pdf
|
||||
)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
# indent-tabs-mode: t
|
||||
# End:
|
||||
# ex: shiftwidth=2 tabstop=8
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -1,37 +0,0 @@
|
||||
December 2014:
|
||||
|
||||
The files in this directory are conversions of the NIST MBE PMI test models
|
||||
into the AP203 file format. These conversions are also in the public domain.
|
||||
|
||||
Originals are from http://www.nist.gov/el/msid/infotest/mbe-pmi-validation.cfm
|
||||
|
||||
Models 7 through 10 have been assembled into a single file, guided by the example
|
||||
PDF provided with the original NIST data set.
|
||||
|
||||
MBE PMI Validation and Conformance Testing Models
|
||||
|
||||
NIST has created a Test System to measure conformance of Computer-Aided Design
|
||||
(CAD) to American Society of Mechanical Engineers (ASME) standards for Product
|
||||
and Manufacturing Information (PMI), specifically geometric dimensioning and
|
||||
tolerancing (GD&T) information.
|
||||
|
||||
As part of this Test System, CAD Models were prepared.
|
||||
|
||||
For problems or questions about the MBE PMI CAD Models, contact: Robert Lipman
|
||||
|
||||
Dataset 1 First Release: December 2013
|
||||
Dataset 1 Update Release: December 2014 (Note: Dataset 1 files currently in
|
||||
BRL-CAD repo are based off of the
|
||||
2013 version.)
|
||||
Dataset 2 First Release: June 2015
|
||||
|
||||
These files were developed at the National Institute of Standards and
|
||||
Technology by employees of the Federal Government in the course of their
|
||||
official duties. Pursuant to Title 17 Section 105 of the United States Code
|
||||
these files are not subject to copyright protection and are in the public
|
||||
domain. These files are an experimental system. NIST assumes no responsibility
|
||||
whatsoever for their use by other parties, and makes no guarantees, expressed
|
||||
or implied, about their quality, reliability, or any other characteristic.
|
||||
|
||||
Any mention of commercial products is for information only; it does not imply
|
||||
recommendation or endorsement by NIST.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,24 +0,0 @@
|
||||
title {Example rounding methods}
|
||||
units mm
|
||||
put {m2cuttop.tor} tor V {0 0 500} H {0 0 1} r_a 250 r_h 50
|
||||
put {m2bottom.tor} tor V {0 0 -450} H {0 0 1} r_a 200 r_h 50
|
||||
put {cylinder.rcc} tgc V {0 0 -500} H {0 0 1000} A {250 0 0} B {0 250 0} C {250 0 0} D {0 250 0}
|
||||
put {fillends.rcc} tgc V {0 0 -550} H {0 0 1100} A {0 -200 0} B {200 0 0} C {0 -200 0} D {200 0 0}
|
||||
put {filltop.rcc} tgc V {0 0 500} H {0 0 50} A {0 -200 0} B {200 0 0} C {0 -200 0} D {200 0 0}
|
||||
put {bottom.tor} tor V {0 0 -500} H {0 0 -1} r_a 200 r_h 50
|
||||
put {cylinder.r} comb region yes tree {l cylinder.rcc}
|
||||
attr set {cylinder.r} {region} {R} {region_id} {1003} {material_id} {1} {los} {100}
|
||||
put {m2top.tor} tor V {0 0 450} H {0 0 1} r_a 200 r_h 50
|
||||
put {m2cutbottom.tor} tor V {0 0 -500} H {0 0 1} r_a 250 r_h 50
|
||||
put {method3.r} comb region yes tree {l method3}
|
||||
attr set {method3.r} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
|
||||
put {method2.r} comb region yes tree {l method2}
|
||||
attr set {method2.r} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
|
||||
put {method1.r} comb region yes tree {l method1}
|
||||
attr set {method1.r} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
|
||||
put {top.tor} tor V {0 0 500} H {0 0 1} r_a 200 r_h 50
|
||||
put {method3} comb region no tree {u {u {u {l cylinder.rcc} {l top.tor}} {u {l bottom.tor} {l filltop.rcc}}} {l fillbottom.rcc}}
|
||||
put {method2} comb region no tree {u {u {- {- {l cylinder.rcc} {l m2cuttop.tor}} {l m2cutbottom.tor}} {l m2top.tor}} {l m2bottom.tor}}
|
||||
put {method1} comb region no tree {u {u {l cylinder.rcc} {l fillends.rcc}} {u {l top.tor} {l bottom.tor}}}
|
||||
put {fillbottom.rcc} tgc V {0 0 -550} H {0 0 50} A {0 -200 0} B {200 0 0} C {0 -200 0} D {200 0 0}
|
||||
put {all.g} comb region no tree {u {u {l method1.r {1 0 0 1000 0 1 0 -1000 0 0 1 0 0 0 0 1}} {l method2.r {1 0 0 1000 0 1 0 0 0 0 1 0 0 0 0 1}}} {u {l method3.r {1 0 0 1000 0 1 0 1000 0 0 1 0 0 0 0 1}} {l cylinder.r}}}
|
||||
+130
-526
File diff suppressed because it is too large
Load Diff
+42
-75
@@ -1,32 +1,40 @@
|
||||
verbose_add_subdirectory(doc docbook)
|
||||
if(BRLCAD_EXTRADOCS)
|
||||
verbose_add_subdirectory(doc docbook)
|
||||
else(BRLCAD_EXTRADOCS)
|
||||
CMAKEFILES(docbook)
|
||||
endif(BRLCAD_EXTRADOCS)
|
||||
|
||||
verbose_add_subdirectory(doc html)
|
||||
verbose_add_subdirectory(doc legal)
|
||||
|
||||
CMAKEFILES(parsers)
|
||||
|
||||
set(documentation_DATA
|
||||
BRL-CAD.bib
|
||||
IDEAS
|
||||
PROJECTS
|
||||
README.AIX
|
||||
README.BSD
|
||||
README.IRIX
|
||||
README.Linux
|
||||
README.MacOSX
|
||||
README.Solaris
|
||||
README.VAX
|
||||
README.Windows
|
||||
README.other/README.AIX
|
||||
README.other/README.BSD
|
||||
README.other/README.IRIX
|
||||
README.other/README.Solaris
|
||||
README.other/README.VAX
|
||||
checklist.txt
|
||||
TODO.BREP
|
||||
TODO.shaded_displays
|
||||
anim.txt
|
||||
archer_ack.txt
|
||||
benchmark.tr
|
||||
brep.txt
|
||||
BRL-CAD.bib
|
||||
cvs.txt
|
||||
description.txt
|
||||
notes/TODO.BREP
|
||||
notes/TODO.shaded_displays
|
||||
notes/brep.txt
|
||||
notes/bu_opt_design_notes.txt
|
||||
notes/cvs.txt
|
||||
notes/editors.txt
|
||||
notes/history.txt
|
||||
notes/hypot.txt
|
||||
notes/mater.txt
|
||||
notes/matrix.txt
|
||||
pre_BRL-CAD.bib
|
||||
ged.tr
|
||||
history.txt
|
||||
hypot.txt
|
||||
irprep.tr
|
||||
mater.txt
|
||||
matrix.txt
|
||||
)
|
||||
ADD_DOC(documentation_DATA ".")
|
||||
|
||||
@@ -195,72 +203,31 @@ set(documentation_mged_old_DATA
|
||||
mged/wm-leg1.ps
|
||||
mged/wm-prims.ps
|
||||
mged/wm-tube.ps
|
||||
notes/ecosystem.dot
|
||||
notes/regions.txt
|
||||
notes/rounding.txt
|
||||
notes/tool_categories.txt
|
||||
mk.tr
|
||||
movie.txt
|
||||
old-mged.tr
|
||||
pkg.tr
|
||||
regions.txt
|
||||
rounding.txt
|
||||
sun.txt
|
||||
tube.txt
|
||||
tool_categories.txt
|
||||
ecosystem.dot
|
||||
)
|
||||
ADD_DOC(documentation_mged_old_DATA mged_old)
|
||||
|
||||
configure_file(pad_file.xml.in "${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml" @ONLY)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml" DESTINATION ${DOC_DIR})
|
||||
configure_file(pad_file.xml.in ${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml @ONLY)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml DESTINATION ${DOC_DIR})
|
||||
|
||||
CMAKEFILES(
|
||||
CMakeLists.txt
|
||||
README.other/README.OSCON-2014
|
||||
README.OSCON-2014
|
||||
STARTERS
|
||||
STRATEGY
|
||||
notes/bsd_semaphore_bug.txt
|
||||
notes/cmake_paths/CMakeLists.txt
|
||||
notes/cmake_paths/README.txt
|
||||
notes/cmake_paths/dir_info.c
|
||||
notes/cmake_paths/test.cmake.in
|
||||
notes/cmake_vars.txt
|
||||
notes/csv_to_comgeom.txt
|
||||
notes/implicit_constraints.txt
|
||||
notes/lcov.txt
|
||||
burst
|
||||
csv_to_comgeom.txt
|
||||
implicit_constraints.txt
|
||||
pad_file.xml.in
|
||||
)
|
||||
|
||||
# Generic C/C++ examples
|
||||
CMAKEFILES(
|
||||
notes/c_cxx_patterns/01_basic_C/CMakeLists.txt
|
||||
notes/c_cxx_patterns/01_basic_C/main.c
|
||||
notes/c_cxx_patterns/01_basic_C/nlib.c
|
||||
notes/c_cxx_patterns/01_basic_C/nlib.h
|
||||
notes/c_cxx_patterns/02_hidden_C/CMakeLists.txt
|
||||
notes/c_cxx_patterns/02_hidden_C/main.c
|
||||
notes/c_cxx_patterns/02_hidden_C/nlib.c
|
||||
notes/c_cxx_patterns/02_hidden_C/nlib.h
|
||||
notes/c_cxx_patterns/03_PImpl_C/CMakeLists.txt
|
||||
notes/c_cxx_patterns/03_PImpl_C/main.c
|
||||
notes/c_cxx_patterns/03_PImpl_C/nlib.c
|
||||
notes/c_cxx_patterns/03_PImpl_C/nlib.h
|
||||
notes/c_cxx_patterns/04_hidden_CXX/CMakeLists.txt
|
||||
notes/c_cxx_patterns/04_hidden_CXX/main.c
|
||||
notes/c_cxx_patterns/04_hidden_CXX/nlib.cxx
|
||||
notes/c_cxx_patterns/04_hidden_CXX/nlib.h
|
||||
notes/c_cxx_patterns/05_PImpl_CXX/CMakeLists.txt
|
||||
notes/c_cxx_patterns/05_PImpl_CXX/main.c
|
||||
notes/c_cxx_patterns/05_PImpl_CXX/nlib.cxx
|
||||
notes/c_cxx_patterns/05_PImpl_CXX/nlib.h
|
||||
notes/c_cxx_patterns/CMakeLists.txt
|
||||
notes/c_cxx_patterns/README
|
||||
)
|
||||
|
||||
# Notes about parser generators
|
||||
CMAKEFILES(
|
||||
notes/parsers/bison_to_lemon.txt
|
||||
notes/parsers/flex_to_re2c.txt
|
||||
notes/parsers/templates/CMakeLists.txt
|
||||
notes/parsers/templates/main.c
|
||||
notes/parsers/templates/main.h
|
||||
notes/parsers/templates/parser.lemon
|
||||
notes/parsers/templates/scanner.perplex
|
||||
notes/parsers/writing_perplex_lemon_parsers.txt
|
||||
)
|
||||
|
||||
# Local Variables:
|
||||
# tab-width: 8
|
||||
# mode: cmake
|
||||
|
||||
@@ -15,7 +15,7 @@ familiar with the project.
|
||||
|
||||
* Render some pictures using rt and rtedge
|
||||
|
||||
* Perform basic geometric analysis using rtarea, rtweight, and gqa
|
||||
* Perform basic geometric analysis using rtarea, rtweight, and g_qa
|
||||
|
||||
* Write a procedural geometry tool (see examples in src/proc-db)
|
||||
|
||||
@@ -29,17 +29,6 @@ familiar with the project.
|
||||
|
||||
* Implement one of the items listed on the request for enhancements tracker
|
||||
|
||||
--
|
||||
There are lots of possible non-coding tasks:
|
||||
|
||||
* Write documentation
|
||||
* Improve the website
|
||||
* Offer to help with art and design
|
||||
* Engage in discussions
|
||||
* Write design docs
|
||||
* Update roadmap
|
||||
* Answer questions, be helpful
|
||||
* Give a presentation on some topic
|
||||
|
||||
---
|
||||
There may be more tasks and ideas available in the Tasks section of
|
||||
|
||||
+2
-1
@@ -86,7 +86,8 @@ testing tool for TCP implementers via Network Working Group RFC 2398.
|
||||
This product does not yet exist but is a long term goal. It's
|
||||
basically several of the core libraries form BRL-CAD's geometry
|
||||
modeling kernel including the present libbu, libbn, librt, libwdb,
|
||||
liboptical, and the ray-trace interface application back-end.
|
||||
liboptical, libmultispectral, and the ray-trace interface application
|
||||
back-end.
|
||||
|
||||
This modeling kernel provides fundamental geometric representation,
|
||||
ray-trace analysis, and geometric processing capabilities via a
|
||||
|
||||
+7
-8
@@ -56,7 +56,7 @@ Following the build instructions in the INSTALL file. You will need:
|
||||
gcc (3+, e.g. 4.0.3)
|
||||
g++ (3+, e.g. 4.0.3)
|
||||
make (e.g. gnu make 3.8.0)
|
||||
cmake (2.8.8 or newer)
|
||||
cmake (2.8.3 or newer)
|
||||
|
||||
All three of those have implicit dependencies on other packages.
|
||||
|
||||
@@ -92,14 +92,13 @@ generation.
|
||||
Redhat/Fedora
|
||||
-------------
|
||||
|
||||
Development packages for building on Redhat/Fedora platforms:
|
||||
Development packages needed to build on Redhat/Fedora platforms:
|
||||
|
||||
libXext-devel
|
||||
libXi-devel
|
||||
freetype-devel
|
||||
fontconfig-devel
|
||||
|
||||
yum install libX11-devel
|
||||
yum install libXext-devel # optional
|
||||
yum install libXi-devel # optional
|
||||
yum install freetype-devel # optional
|
||||
yum install fontconfig-devel # optional
|
||||
yum install mesa-libGL-devel # optional
|
||||
|
||||
To determine what particular version of Redhat or Fedora you are
|
||||
using, check these files:
|
||||
|
||||
+1
-1
@@ -104,6 +104,6 @@ uname -a
|
||||
Bugs
|
||||
----
|
||||
The only known bugs specific to Mac OS X are limitations of Tk or the
|
||||
X11 event handler that are generally outside of BRL-CAD's domain.
|
||||
X11 event handler that our generally outside of BRL-CAD's domain.
|
||||
Refer to BUGS for more general details on known bugs and reporting
|
||||
mechanisms.
|
||||
|
||||
@@ -42,20 +42,3 @@ compiled as libpng.so). If this happens, it likely indicates a problem
|
||||
with the CMake build logic and should be reported as a bug - you may also
|
||||
need to install a shared version of the library. Another possibility
|
||||
would be to add -mipure-text to the linker flags.
|
||||
|
||||
OpenIndiana
|
||||
-----------
|
||||
|
||||
To build with gcc and CMake on OpenIndiana, you need to install the
|
||||
following packages:
|
||||
|
||||
pkg install pkg:/developer/gcc-7
|
||||
pkg install pkg:/developer/build/cmake
|
||||
pkg install pkg:/developer/versioning/subversion
|
||||
pkg install pkg:/system/header
|
||||
pkg install pkg:/developer/lexer/flex
|
||||
|
||||
(Note that gcc-7 building doesn't work as of 2017-08-23 - the above
|
||||
install list is a starting point, but the repo currently doesn't
|
||||
build and isn't close to building. It may be an older gcc would
|
||||
have better luck...)
|
||||
+7
-75
@@ -3,56 +3,13 @@ BRL-CAD on Windows README
|
||||
|
||||
The usual way to build BRL-CAD for Windows is to use the CMake build
|
||||
system generator and the Microsoft Visual Studio C++ (MSVC) compiler.
|
||||
Recent versions of both (as of this writing, MSVC 2013 and CMake
|
||||
2.8.12+) are recommended. If generating an installer, the Nullsoft
|
||||
Recent versions of both (as of this writing, MSVC 2010 and CMake
|
||||
2.8.6+) are recommended. If generating an installer, the Nullsoft
|
||||
Scriptable Install System (NSIS) tool is also required.
|
||||
|
||||
In principle, BRL-CAD can be built using CMake and environments like
|
||||
Cygwin and/or Mingw/Msys, but the latter is largely untested and
|
||||
infrequently supported. Enhancements or bug reports are welcome.
|
||||
|
||||
Visual Studio
|
||||
-------------
|
||||
|
||||
=== Notes on Windows 10 with latest SDK ===
|
||||
Because Tk before 8.6.8 cannot be built with the latest Windows SDK
|
||||
(naming conflicts; see [1]), an earlier one (10.0.15063.0 is the
|
||||
last working version) is needed (available at [2]).
|
||||
|
||||
Targets `tk`, `tkstub` and `libfb` need to be changed to use this SDK
|
||||
(right click on a target -> Configuration Properties -> General;
|
||||
select the SDK in Windows SDK Version).
|
||||
|
||||
Compilation is then unchanged from the below.
|
||||
|
||||
[1]: https://core.tcl.tk/tk/tktview?name=3d34589aa0
|
||||
[2]: https://developer.microsoft.com/en-us/windows/downloads/sdk-archive
|
||||
|
||||
===========================================
|
||||
|
||||
=== Notes on Visual Studio 14 2015 ===
|
||||
|
||||
In order to build this version (required to build the Creo 3 converter)
|
||||
with CMake, you must ensure that Microsoft's "rc.exe" program is
|
||||
installed and findable by CMake.
|
||||
|
||||
To install "rc.exe", run or re-run the Visual Studio installer and enable
|
||||
Visual C++ components and "Visual Studio Extensibility Tools Update 1" under
|
||||
the "Common Tools" section.
|
||||
|
||||
The extensibility tools can become unselected by default in some
|
||||
configurations. Verify "rc.exe" is installed in:
|
||||
|
||||
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64"
|
||||
|
||||
Add that directory to your "Path" user variable so CMake will be able to
|
||||
locate the rc executable.
|
||||
|
||||
See:
|
||||
https://stackoverflow.com/questions/43847542/rc-exe-no-longer-found-in-vs-2015-command-prompt
|
||||
|
||||
======================================
|
||||
|
||||
Cygwin and/or Mingw/Msys, but the is largely untested and infrequently
|
||||
supported. Enhancements or bug reports are welcome.
|
||||
|
||||
To build with CMake and Visual Studio, the first step is to obtain the
|
||||
BRL-CAD sources and create a build directory. In principle, it is not
|
||||
@@ -83,31 +40,6 @@ BRL-CAD on Windows will generate over 800 of them) and a large list of
|
||||
targets will appear. To build everything look for a target named
|
||||
ALL_BUILD. Start compiling that target.
|
||||
|
||||
Once compilation is successfully complete, you can find the compiled
|
||||
executables in a 'bin' directory in your build directory. For
|
||||
example, mged.exe would be in brlcad-svn-trunk\.build\Debug\bin if
|
||||
brlcad-svn-trunk\.build is the build directory specified to CMake and
|
||||
CMAKE_BUILD_TYPE was set to Debug.
|
||||
|
||||
You may want to produce an NSIS installer. If so, locate a target
|
||||
named PACKAGE and run it. The end result should be an .exe file
|
||||
capable of installing BRL-CAD.
|
||||
|
||||
MINGW (WORK IN PROGRESS - THIS DOES NOT YET WORK!!!)
|
||||
-----
|
||||
|
||||
After installing the MINGW system, set up as follows:
|
||||
|
||||
set path=%path%;"C:\Program Files (x86)\CMake\bin"
|
||||
set path=%path%;C:\MinGW\bin
|
||||
|
||||
now make a build directory, and run CMake:
|
||||
|
||||
cmake ..\brlcad -G "MinGW Makefiles" -DBRLCAD_BUNDLED_LIBS=BUNDLED
|
||||
|
||||
mingw32-make
|
||||
|
||||
Note that you don't want to do this from an msys prompt that has
|
||||
sh in the path. (ConEmu can make using the standard Windows command
|
||||
prompt a bit more tolerable: http://conemu.github.io)
|
||||
|
||||
Once compilation is successfully complete, you may want to produce an
|
||||
NSIS installer. If so, locate a target named PACKAGE and run it. The
|
||||
end result should be an .exe file capable of installing BRL-CAD.
|
||||
|
||||
-323
@@ -1,323 +0,0 @@
|
||||
# -*- mode: org; coding: utf-8; -*- #
|
||||
# This is an Emacs org-mode file. Keybindings: http://orgmode.org/orgcard.txt
|
||||
|
||||
# +TAGS: { UX : U u } { Complex : C c }
|
||||
# +TAGS: { Comms : P p } { Market : M m }
|
||||
|
||||
BRL-CAD Development Strategy
|
||||
|
||||
This is a living document that defines and aims to help maintain a
|
||||
consistent develpment strategy for addressing BRL-CAD requirements.
|
||||
It recognizes areas of strategic importance, outlines projects to
|
||||
bolster those areas, and identifies specific actionable objectives.
|
||||
|
||||
|
||||
* Strategic Areas
|
||||
|
||||
This section itemizes areas of strategic importance which coincide
|
||||
closely with areas of categoric deficiency. For each area, we
|
||||
outline general activities that could strengthen them. From these
|
||||
areas, we conceive strategic projects and their associated tasks.
|
||||
|
||||
** AREA 1: UX :UX:
|
||||
*** deploying Archer/MGED -cns :p:C:
|
||||
*** UI simplification -s :C:
|
||||
*** undo / fault tolerance -n
|
||||
*** prototype Qt -c :p:
|
||||
*** UI design / clarification -j :P:C:
|
||||
*** interaction / integration -j :M:
|
||||
*** editing constraints, snapping, reuse existing coordinates
|
||||
*** bug reporting / feature requests :P:
|
||||
*** portability :p:
|
||||
|
||||
** AREA 2: Complexity :Complex:
|
||||
*** command / tool reduction -cjns :U:
|
||||
*** API code reduce / simplification / modularity -cjs :U:
|
||||
*** searchability / info -n :U:p:
|
||||
*** discoverability / documentation (UP) :U:P:
|
||||
*** UI design / clarity (UP)
|
||||
*** restructure of file hierarchy
|
||||
*** continuous integration
|
||||
|
||||
** AREA 3: Communications :Comms:
|
||||
*** website -cjns :C:
|
||||
*** doc integration, website -cjns :C:
|
||||
*** new content (audience / customer profiles), website :C:
|
||||
*** comms (meeting / promoting our successes / PRB / announcements) :U:C:M:
|
||||
*** CRM / IRC :U:C:
|
||||
*** leverage existing capability
|
||||
|
||||
** AREA 4: Marketability :Market:
|
||||
|
||||
FIXME: these need to be sorted and ranked
|
||||
|
||||
*** conversion: import, processing, export -s :P:U:
|
||||
*** geometry analysis performance (interactive ray tracing / opencl) :U:
|
||||
*** 3D printing / polygonal export / gcode -s :P:U:
|
||||
*** industrial design: blueprinting, dimensioning, annotations :P:U:
|
||||
*** geometry preparation (killing overlaps, hierarchy, V&V) :U:C:
|
||||
*** visuals: advanced rendering, animation, simulation :P:U:
|
||||
|
||||
* Strategic Projects
|
||||
|
||||
This section itemizes projects conceived to address BRL-CAD's
|
||||
principal strategic areas. Each project focuses on one or more
|
||||
strategic areas devising measurable tasks that support the
|
||||
particular objective.
|
||||
|
||||
|
||||
** PROJECT: Deploy Archer/MGED Beta (14)
|
||||
|
||||
*** interactivity / blocking indicators - ALPHA (3)
|
||||
**** TODO multithreaded command execution (2)
|
||||
**** TODO interface busy indicator (1)
|
||||
|
||||
*** command cleanup - ALPHA (3)
|
||||
**** TODO inventory + mapping + time (1)
|
||||
**** TODO design UI / commands (2)
|
||||
**** TODO sit with users to discuss command migration (0)
|
||||
|
||||
*** feature parity - ALPHA (2)
|
||||
**** TODO review/finish edit keypointing (oed parity) (1)
|
||||
**** TODO GUI matrix editing (1)
|
||||
|
||||
*** announcements + migration plan - BETA+ (4)
|
||||
**** TODO write + publish strategy map and migration plan (1)
|
||||
**** TODO preliminary discussion with users, discuss tcl scripts (0)
|
||||
**** TODO archer manual page (1)
|
||||
**** TODO install basic version of new website (1)
|
||||
**** TODO sit down review with users (1)
|
||||
|
||||
*** searchable docs - ALPHA (2)
|
||||
**** TODO command line searching of doc content, apropos (2)
|
||||
|
||||
|
||||
** PROJECT: Deploy Merged Archer/MGED Final (16)
|
||||
|
||||
*** usability parity - BETA (4)
|
||||
**** TODO classic console mode (1)
|
||||
**** TODO map from old to new, publish summary (1)
|
||||
**** TODO reverse .g tempfile backup, edit live (1)
|
||||
**** TODO graphical query ray (1)
|
||||
|
||||
*** undo - BETA (2)
|
||||
**** TODO implement libbu filesystem info (1)
|
||||
**** TODO re-enable undo with fs awareness (1)
|
||||
|
||||
*** bug reporting / feedback / metrics - BETA (3)
|
||||
**** TODO reliable backtrace (1)
|
||||
**** TODO hook/enable bombardier (1)
|
||||
**** TODO track metrics (archer commands, tips, docs) (1)
|
||||
|
||||
*** QA acceptance - BETA (3)
|
||||
**** TODO define acceptance tasks (1)
|
||||
**** TODO run regression w/ archer (1)
|
||||
**** TODO make wiki procedural web scripts work (1)
|
||||
|
||||
*** announcements + migration plan - BETA+ (3)
|
||||
**** TODO review + update tutorials and docs (2)
|
||||
**** TODO create + give presentation (1)
|
||||
|
||||
*** searchable docs - FINAL (1)
|
||||
**** TODO web publishing + searching of docs (1)
|
||||
|
||||
|
||||
** PROJECT: Distilling BRL-CAD (11)
|
||||
|
||||
*** revisit scope (vision, mission) (3)
|
||||
**** TODO communicate intent and updates (1)
|
||||
**** TODO develop high-level project roadmap (1)
|
||||
**** TODO connect features to markets (1)
|
||||
|
||||
*** develop command roadmap (4)
|
||||
**** TODO inventory of command-line commands, decide keep/refactor/kill (1)
|
||||
**** TODO communicate command-line changes (0)
|
||||
**** TODO develop command categorization (1)
|
||||
**** TODO take inventory of ged commands, decide keep/refactor/kill (1)
|
||||
**** TODO communicate ged command changes (0)
|
||||
**** TODO assess and mitigate deployment risks (1)
|
||||
|
||||
*** integrate docs (4)
|
||||
**** TODO plan what to do with html+troff docs (0)
|
||||
**** TODO stub new docs where missing (1)
|
||||
**** TODO consolidate docs, one guide per interface (2)
|
||||
**** TODO kill obsolete docs (0)
|
||||
**** TODO migrate e-mail and release notes to web (1)
|
||||
|
||||
|
||||
** PROJECT: Website Renovation (10)
|
||||
|
||||
*** improve website usability (1)
|
||||
**** TODO set up platform-detected downloads on main page (0)
|
||||
**** TODO publish project vitality/stats (openhub integration) (0)
|
||||
**** TODO restore search interface (1)
|
||||
|
||||
*** publish docbook docs (3)
|
||||
**** TODO instantiate / set up sofat's doc interface (1)
|
||||
**** TODO design pdf stylesheet (1)
|
||||
**** TODO integrate docs onto website (html+pdf) (1)
|
||||
|
||||
*** publish use cases (3)
|
||||
**** TODO post 3+ customer profiles (1)
|
||||
**** TODO post top-10 feature highlights (1)
|
||||
**** TODO identify alternatives and their highlight mappings (1)
|
||||
**** TODO post comparison table with 2+ alternatives (0)
|
||||
|
||||
*** set up developer corner (3)
|
||||
**** TODO ensure buildbot is setup and running handsfree (1)
|
||||
**** TODO update buildbot stylesheet to fit theme (0)
|
||||
**** TODO post nightly builds (0)
|
||||
**** TODO set up cron job to maintain CI and doc updates (1)
|
||||
**** TODO announce dev corner to brlcad-devel/brlcad-news (0)
|
||||
**** TODO buildbot <-> cdash/lcov/coverity/gccfarm/swamp integration (1)
|
||||
|
||||
|
||||
** PROJECT: Deploy GCV (9)
|
||||
|
||||
*** 3dm "round-tripping" (2)
|
||||
**** TODO integrate existing importer (0)
|
||||
**** TODO NURBS export support (1)
|
||||
**** TODO document entity support (1)
|
||||
|
||||
*** documentation (3)
|
||||
**** TODO convert jon's write-up to docbook (0)
|
||||
**** TODO integrate jon's plugin examples (1)
|
||||
**** TODO write and publish plugin API policy (1)
|
||||
**** TODO write and publish GCV feature profile on website (1)
|
||||
|
||||
*** CLI usability (2)
|
||||
**** TODO design usage / synopsis (1)
|
||||
**** TODO provide logging/debugging interface (0)
|
||||
**** TODO integrate bot_dump into gcv (1)
|
||||
|
||||
*** robust deployment (2)
|
||||
**** TODO convert tlib via automated testing (1)
|
||||
**** TODO automate extraction of sources from checkout (0)
|
||||
**** TODO integrate gcv into mged/archer (0)
|
||||
**** TODO troubleshoot JASP export memory issue (1)
|
||||
|
||||
|
||||
** PROJECT: Performant Pipeline (15)
|
||||
|
||||
*** coherent Boolean evaluation (3)
|
||||
**** TODO preliminary OpenCL conversion (1)
|
||||
**** TODO eliminate branching (1)
|
||||
**** TODO V&V with specific test cases (1)
|
||||
|
||||
*** audit ray dispatching (3)
|
||||
**** TODO define ray bundling API (1)
|
||||
**** TODO audit librt ray API, consolidate (1)
|
||||
|
||||
*** implement bundled ray dispatch (2)
|
||||
**** TODO integrate Costa's GSoC work (1)
|
||||
**** TODO propagate bundle through spatial partition (1)
|
||||
**** TODO convert rt* to new bundled API (1)
|
||||
|
||||
*** on-demand NURBS tree-build (4)
|
||||
**** TODO formulate a design / approach (1)
|
||||
**** TODO dynamic tree build with minimal malloc (2)
|
||||
**** TODO profile and validate results (1)
|
||||
|
||||
*** coherent NURBS evaluation (1)
|
||||
**** TODO review 2006 paper (0)
|
||||
**** TODO convert openNURBS surface evaluation to OpenCL (1)
|
||||
|
||||
*** performant raytrace image display (2)
|
||||
**** TODO optimize libdb/libfb to remove bottleneck (1)
|
||||
**** TODO update archer for interactive tracing display (1)
|
||||
|
||||
|
||||
** PROJECT: Raytrace Prep Caching (10)
|
||||
|
||||
*** implement LIBBU data caching (3)
|
||||
**** TODO document libbu data caching API (1)
|
||||
**** TODO create data caching test cases (1)
|
||||
**** TODO implement libbu data caching (1)
|
||||
|
||||
*** implment LIBRT object caching (4)
|
||||
**** TODO serialize BoT prep data to cache (1)
|
||||
**** TODO serialize NURBS prep data to cache (1)
|
||||
**** TODO serialize tess/plot data to cache (2)
|
||||
|
||||
*** update tools to utilize the cache (3)
|
||||
**** TODO update rt* to use prep cache (1)
|
||||
**** TODO update mged/archer to use tess/plot cache (1)
|
||||
**** TODO document the prep cache interface (1)
|
||||
|
||||
|
||||
** PROJECT: Progressive Geometry Display (11)
|
||||
|
||||
*** asynchronous geometry display (4)
|
||||
**** TODO modify display loop to run in separate thread (2)
|
||||
**** TODO update draw command to dispatch (2)
|
||||
|
||||
*** ray trace display manager (4)
|
||||
**** TODO review rtgl code (1)
|
||||
**** TODO design incremental loading architecture (1)
|
||||
**** TODO implement incremental ray tracing (2)
|
||||
|
||||
*** point cloud hashing (3)
|
||||
**** TODO design LoD point cloud storage approach (1)
|
||||
**** TODO calculate LoD point cloud utility metric (1)
|
||||
**** TODO implement LoD point cloud loading (3)
|
||||
|
||||
|
||||
** TEMPLATE: Project Title
|
||||
|
||||
Here is an example project that summarizes the taxonomy and
|
||||
structure of a strategic project. A project should be scoped to
|
||||
less than 4 months of full-time uninterrupted effort. A project
|
||||
must have at least 1 objective.
|
||||
|
||||
*** objective
|
||||
|
||||
Objectives should be simple with identifiable completion criteria.
|
||||
An objective should be achievable in 4 weeks or less with larger
|
||||
objectives divided into separate smaller chunks. Each objective
|
||||
must have at least 1 task.
|
||||
|
||||
**** TODO task
|
||||
|
||||
A task is actionable work that should take someone 4 weeks or
|
||||
less of full-time uninterrupted effort, estimated in weeks, with
|
||||
0 for tasks less than 2 days.
|
||||
|
||||
|
||||
* Strategic Strengths
|
||||
** project
|
||||
*** open source
|
||||
*** cross-platform
|
||||
*** free software
|
||||
*** 30-years of development
|
||||
*** massive investment
|
||||
*** extensive API
|
||||
*** extensive documentation
|
||||
** code
|
||||
*** extensively modular
|
||||
*** scalability
|
||||
*** embeddable
|
||||
*** efficient workflow
|
||||
*** flexible workflow
|
||||
*** DoD-accreddited
|
||||
*** integrated into MUVES, AJEM, COVART
|
||||
** modeling
|
||||
*** hybrid representation system
|
||||
*** wide variety of supported entities
|
||||
*** csg, nurbs, triangles, volumes, point clouds
|
||||
*** scriptable geometry
|
||||
*** procedural geometry
|
||||
*** geometry conversion
|
||||
*** geometry editing
|
||||
** analysis
|
||||
*** geometry v&v
|
||||
*** geometry preparation
|
||||
*** joint articulation system
|
||||
*** physics simulation system
|
||||
*** ray tracing performance
|
||||
*** analytic ray tracing
|
||||
*** solid ray tracing
|
||||
*** geometry visualization
|
||||
|
||||
# Local Variables:
|
||||
# mode: org
|
||||
# End:
|
||||
@@ -278,27 +278,3 @@ BRL-CAD to IGES
|
||||
* on what is and is not intersecting - perhaps it should? Potential trouble there with overlapping vs. non-
|
||||
* overlapping regions.
|
||||
*/
|
||||
|
||||
SOLID NURBS RAYTRACING ROBUSTNESS IMPROVEMENT/REFINEMENT
|
||||
|
||||
One of the difficult tasks with solid raytracing is determining reliably when we're inside or outside in cases where
|
||||
BRep edges don't exactly join up geometrically. OpenNURBS has tolerances which define such shapes as "valid", but the
|
||||
mathematics of the ray interesection will still report wonky results once hit points get inside those tolerance regions.
|
||||
|
||||
We have resolution logic that tries to handle ambiguous cases, but one potential technique we are not currently using
|
||||
would use the bounding box information from the NURBS prep trees to augment that logic's robustness (or, more precisely,
|
||||
bound the portions of the ray segment within which point ambiguities need to be resolved.)
|
||||
|
||||
The current thought is to use the not-on-surface-point bounding box points (which we can categorize as inside or outside
|
||||
relative to the surface they are bounding by construting vectors from on surface points to those points and comparing
|
||||
them to the surface normal vectors) and the surface points themselves to construct an outer and inner bounding volume
|
||||
for the BRep (to be reliable, we would also have to take care that we refine enough to avoid self intersections in
|
||||
those volumes.) The overall bounding box of the outer volume should always be larger than that of the inner volume,
|
||||
so a comparison of those would allow us to flip them if the "wrong" box is too big to deal with a BRep with inverted
|
||||
surface normals. (Might actually also allow us to reliably detect and fix such BReps, but that's a different topic.)
|
||||
|
||||
Once we have the outer bounding volume, we intersect that along with the NURBS BRep itself and use the ray segments
|
||||
from the outer bounding volume as bounding regions within which we resolve any point ambiguities. This should allow
|
||||
us to "locally" resolve issues in such a way that doesn't accidentally flag (say) a grazing corner hit as the in
|
||||
hit for a clean hit pair much further down the shotline (which will result in a long "solid" segment through empty
|
||||
space.)
|
||||
+145
@@ -0,0 +1,145 @@
|
||||
Date: Fri, 30 Oct 87 3:58:14 EST
|
||||
From: Phil Dykstra <phil@BRL.ARPA>
|
||||
Subject: Re: Animation querry.
|
||||
|
||||
I have been meaning to put a few notes together about animation in
|
||||
BRL-CAD for some time now. Your message presses the point so here's
|
||||
a really quick basic overview. Note that animation control is
|
||||
still very early and experimental. Don't be surprised if much of
|
||||
it changes in the future.
|
||||
------
|
||||
|
||||
The earliest form of animation was just changing the viewpoint.
|
||||
So that RT could ray trace the "current" MGED view, a -M flag was
|
||||
added which tells RT to read the viewing matrix from stdin.
|
||||
This matrix is written on six lines in the form:
|
||||
|
||||
viewsize
|
||||
xpos ypos zpos
|
||||
[4x4 rotation matrix, 4 elements per line]
|
||||
|
||||
Such data can be saved along with an RT shell script by the "saveview"
|
||||
command in MGED. To get just this data (i.e. without the shell script),
|
||||
the "savekey" command can be used. Thus one can save a string of
|
||||
viewpoint keyframes via "savekey." ["Times" can also be added to
|
||||
the keyframes for the purposes of some interpolation programs.]
|
||||
|
||||
Several tools were written (not in the distribution) which generate
|
||||
sequences of such views, interpolate a set a keyframes, etc.
|
||||
|
||||
The "rmats" command was added to allow a file of these views to be
|
||||
read in to MGED so you could watch the keyframes go by. Feeding the
|
||||
same data to RT (via the -M flag) computes an image for each view.
|
||||
The views either go to the frame buffer, or if an output filename
|
||||
is given, they go into files with frame number suffixes.
|
||||
|
||||
Animation previews are typically made via low resolution ray traces,
|
||||
composited into one large image via "pixtile," and viewed on a frame
|
||||
buffer via "fbanim" (preferably one with hardware pan and zoom).
|
||||
|
||||
Later we wished to articulate the models themselves, so a command
|
||||
script language was created for RT. These are also fed to RT
|
||||
via the -M flag. RT figures out whether it is given the old form
|
||||
above or a real script. An animation description script contains
|
||||
transformation matrices to be applied to the model tree. A simple
|
||||
one might look like:
|
||||
|
||||
start 42;
|
||||
clean;
|
||||
anim frob/nitz matrix rmul
|
||||
1 0 0 1
|
||||
0 1 0 2
|
||||
0 0 1 0
|
||||
0 0 0 0;
|
||||
end;
|
||||
etc.
|
||||
|
||||
start - says to start frame number 42.
|
||||
clean - make RT clean up after itself (this may not be needed any more...).
|
||||
anim - says to apply an matrix animation to the arc connecting frob to
|
||||
nitz. The type of matrix operation is a right multiply (choices
|
||||
include right or left multiply, replace, or reroot (i.e. world
|
||||
coordinates)).
|
||||
end - tells it to go ahead and shoot this frame.
|
||||
|
||||
Eventually there will be things besides "matrix" animations to allow
|
||||
material properties etc. to be animated.
|
||||
|
||||
Various outboard tools generate motions, merge animation scripts
|
||||
together, allow the previewing/editing of motions, etc. For the
|
||||
most part these tools are sufficiently ad hoc and experimental
|
||||
that we aren't giving any of them away yet. Next year some time....
|
||||
|
||||
-------
|
||||
I didn't explain any of it in much detail, but hopefully it
|
||||
gives you an overview. One of these days we will write some
|
||||
more about it - like when we start including some motion tools.
|
||||
|
||||
==============================
|
||||
Date: Fri, 30 Oct 87 16:42:14 EST
|
||||
From: Phil Dykstra <phil@BRL.ARPA>
|
||||
Subject: Re: Animation querry.
|
||||
|
||||
Here's a bit more about the matrix operations available in RT
|
||||
animation scripts.
|
||||
-----
|
||||
|
||||
RT Matrix Animation Operations:
|
||||
==============================
|
||||
|
||||
In BRL-CAD, matrices are handled in their usual mathematical form
|
||||
(the transpose of the Newman and Sproull "computer graphics form").
|
||||
That is, a matrix looks like this:
|
||||
|
||||
r1 r2 r3 dx
|
||||
r4 r5 r6 dy
|
||||
r7 r8 r9 dz
|
||||
0 0 0 1/s
|
||||
|
||||
Points are *column* vectors, so a point is transformed by:
|
||||
|
||||
newpoint = Matrix * oldpoint;
|
||||
|
||||
Thus the world coordinate system is on the "left" end of a stack of
|
||||
matrix operations; the local coordinate system being that of the point
|
||||
on the extreme right.
|
||||
|
||||
In walking a model tree (such as "prep'ing" the model for ray tracing),
|
||||
each arc crossed from root to leaf normally gets its matrix multiplied on
|
||||
the right side of the current matrix stack[1]. Rigid body articulations
|
||||
of a model can then be described by changing or adding matrices at the
|
||||
appropriate points in this stack.
|
||||
|
||||
The matrix animation operations currently recognized by RT are:
|
||||
|
||||
rstack replace the entire stack up to this point
|
||||
rarc replace the matrix on the specified arc
|
||||
rboth replace the entire stack and the arc matrix
|
||||
rmul arc = arc * Matrix
|
||||
lmul arc = Matrix * arc
|
||||
|
||||
The path specifying where in the model tree the operation is to
|
||||
be applied can either be an absolute path, e.g.
|
||||
|
||||
/body/left/arm/hand
|
||||
|
||||
which would affect the arc between the left arm of body and the hand
|
||||
(note that hand need not be a leaf), or it can be a "wildcard", e.g.
|
||||
|
||||
arm/hand
|
||||
|
||||
would mean the arc between arm and hand anywhere in the model tree, i.e.
|
||||
it is not restricted to the left one as above. Finally a wildcard like
|
||||
|
||||
arm
|
||||
|
||||
means the arc before any node called arm.
|
||||
|
||||
-------------------------
|
||||
[1] It is interesting to note that our "right multiply" operation
|
||||
corresponds exactly to the SGI Iris multmatrix() command. The later
|
||||
pre-multiplies the matrix stack, but the matrix stack post-multiplies
|
||||
any points being transformed! In fact, if one looks at the Iris at the
|
||||
geometry engine level, one finds that it works with matrices in the
|
||||
usual mathematical form - the gl2 library transposes them in and out of
|
||||
N&S form.
|
||||
@@ -0,0 +1,849 @@
|
||||
.\" $Header$
|
||||
.\" groff -t -ms -X benchmark.tr
|
||||
.\" groff -t -ms benchmark.tr | print-postscript
|
||||
.\"
|
||||
.\" sort '-t ' +7nr -8
|
||||
.de BR
|
||||
\fB\\$1\fR\\$2
|
||||
..
|
||||
.TL
|
||||
The BRL-CAD Benchmark Suite
|
||||
.AU
|
||||
Michael John Muuss
|
||||
.AU
|
||||
Charles M. Kennedy
|
||||
.AU
|
||||
Lee A. Butler
|
||||
.AI
|
||||
The U.S. Army Research Laboratory
|
||||
.PP
|
||||
This document describes the BRL-CAD Benchmark Suite Methodology, and
|
||||
the Ray-Tracing Figure of Merit (RTFM) used to judge the computational
|
||||
performance of different computer systems.
|
||||
.PP
|
||||
The core of the test is the \fBrt\fR ray-tracing program. The results
|
||||
for each processor are determined by running a benchmark test of the
|
||||
RT ray-tracing program on each of the sample databases provided. The
|
||||
\fBrt\fR program requires a binary database for input ("db/xxx.g"),
|
||||
and produces a binary image as output ("bench/xxx.pix"), along with a
|
||||
log file ("bench/xxx.log"). Each run will produce a 512x512x24 bit
|
||||
color shaded image in a "bench/xxx.pix" file, and a run log in
|
||||
"bench/xxx.log". Reference copies of the images are provided as
|
||||
"pix/xxx.pix" and "pix/xxx.log". The sample databases provided are
|
||||
processed in order of increasing difficulty, and each produces a
|
||||
colorful image. In each picture there are two light sources; the
|
||||
primary source is located near the center of the model (the white
|
||||
ball), and the secondary light source is located at the "eye"
|
||||
position.
|
||||
.NH 1
|
||||
The Benchmark Models
|
||||
.LP
|
||||
moss.g -- This is a simple model, containing a yellow torus, a green
|
||||
ellipsoid, a bluish cube, a pink truncated (distorted) cone, all
|
||||
sitting on a blue plate. Note the shadowing, and "specular splash".
|
||||
.sp
|
||||
world.g -- The same model as moss.g, but with various rendering
|
||||
features enabled. The model is enclosed in a hollow cloud sphere.
|
||||
The plate is a mirror, the egg is crystal, the box has a debugging
|
||||
texture map applied.
|
||||
.sp
|
||||
star.g -- A familiar sight to Star Trek fans; a low-detail exterior of
|
||||
the ship "Enterprise". The hull is white, with some other structures
|
||||
in other colors. The small red object in the foreground is the
|
||||
shuttlecraft Galileo, to scale.
|
||||
.sp
|
||||
bldg391.g -- An exploded view of a two-story imaginary computer site,
|
||||
including various walls, red stairways, green disk drives, etc. The
|
||||
lower floor is a mirror, the upper floor is glass.
|
||||
.sp
|
||||
m35.g -- A truck.
|
||||
.sp
|
||||
sphflake.g -- A sphereflake.
|
||||
.NH 1
|
||||
MACHINE INDEPENDENCE
|
||||
.PP
|
||||
To make the benchmark distribution machine independent, the databases
|
||||
are provided in an ASCII format in the "db" directory, and
|
||||
ascii-to-binary converters are provided in the "conv" directory. The
|
||||
setup command "\fBcake benchmark\fR" (see the document \fIInstalling
|
||||
the BRL-CAD Package\fR) will automatically compile and run the
|
||||
converters.
|
||||
.PP
|
||||
If you are running this benchmark on a non-UNIX machine that has
|
||||
difficulty writing binary streams, change the "-o file.pix" flag to
|
||||
"-O file.a_pix" and RT will write an ASCII form directly. For more
|
||||
discussion, consult the doc/pix.5 and conv/asc2pix.1 manual pages.
|
||||
.PP
|
||||
The reference images are distributed in binary BRL-CAD
|
||||
.BR pix (5)
|
||||
format. Earlier releases distributed the reference images in the
|
||||
portable ASCII form, and then converted them to the binary form. This
|
||||
consumed a significant amount of extra storage on UNIX machines, so
|
||||
this practice was discontinued. It is assumed that anyone attempting
|
||||
to benchmark a system that can not read pure binary files will at
|
||||
least have access to a UNIX system. That UNIX system can be used to
|
||||
convert the reference images to the portable ASCII form with the
|
||||
.BR pix2asc (1)
|
||||
tool, and then those images may be sent to the machine under test.
|
||||
.PP
|
||||
Information about modifying the benchmark to run on a particular
|
||||
system may be found in the document \fIInstalling the BRL-CAD
|
||||
Package\fR. For a detailed explanation of various hardware specific
|
||||
modifications necessary to take advantage of parallel processing, see
|
||||
the document \fIWorkstations, Networking, Distributed Graphics, and
|
||||
Parallel Processing\fR. Implementations for several different types
|
||||
of hardware in use at ARL are included.
|
||||
.PP
|
||||
If you encounter difficulty with running the benchmark, you might wish
|
||||
to build the full BRL-CAD package, to take advantage of the image
|
||||
tools in determining the nature of the problem. For example, one
|
||||
system suffered from a compiler bug that made TGC solids vanish, while
|
||||
another system had difficulties with the light visibility
|
||||
calculations.
|
||||
.NH 1
|
||||
OBTAINING CORRECT RESULTS
|
||||
.PP
|
||||
The benchmark timings are not considered valid unless the correct
|
||||
results are given. Make sure that the answers match the reference
|
||||
files to within plus-or-minus one in each color (see pixdiff(1)).
|
||||
Slight variations in the calculated pixels are generally attributable
|
||||
to variations in floating point precision. You may wish to compare
|
||||
the execution times and log file remarks from your tests (in the
|
||||
"bench/xxx.log" files) with the VAX-11/780 (with hardware FPA) times
|
||||
which are given in the "pix/xxx.log" files. The log file for sphflake
|
||||
has yet to be run on the same system, causing weighted results. It's
|
||||
still useful and informative, however, for deriving performance
|
||||
statistics. The reference images are also located in the "pix/"
|
||||
directory.
|
||||
.PP
|
||||
For example, if you are running the benchmark on a Cray XMP, the
|
||||
world.pix and bldg391.pix images will have a single byte in the blue
|
||||
channel off by 1, out in the cloud background. This is not to be
|
||||
considered an error.
|
||||
.NH 1
|
||||
BENCHMARK IMAGE DISPLAY
|
||||
.PP
|
||||
If you have a suitable framebuffer, you may wish to display the images
|
||||
generated by the benchmark, and compare them to the reference images.
|
||||
This section assumes that you have successfully compiled the full set
|
||||
of BRL-CAD software, not just the benchmark portion. Programs for
|
||||
dealing with images are in the "util" directory. To display a
|
||||
\fBpix\fR(5) file on a framebuffer, set environment variable FB_FILE
|
||||
(see \fBbrlcad\fR(1) for details), and run \fBpix-fb\fR. Note that by
|
||||
leaving FB_FILE unset, your default display will be used.
|
||||
.sp
|
||||
.nf
|
||||
.ft B
|
||||
cd bench
|
||||
pix-fb moss.pix
|
||||
.ft R
|
||||
.fi
|
||||
.sp
|
||||
If the images computed on your machine do not match the reference
|
||||
images, the program "util/pixdiff" will compute a pix file that will
|
||||
highlight the differences for you, and report a summary of bytes
|
||||
equal, off-by-1, and off-by-many, e.g.,
|
||||
.sp
|
||||
.ft B
|
||||
pixdiff moss.pix ../pix/moss.pix \(or pix-fb
|
||||
.ft R
|
||||
.fi
|
||||
.sp
|
||||
For a display of the relative magnitude of the differences at each
|
||||
pixel, use "util/bwdiff" instead, e.g.,
|
||||
.sp
|
||||
.nf
|
||||
.ft B
|
||||
bwdiff moss.pix ../pix/moss.pix \(or pix-fb
|
||||
.ft R
|
||||
or
|
||||
.ft B
|
||||
bwdiff moss.pix ../pix/moss.pix \(or \\
|
||||
bwmod -s 128 -m 4 -a 128 \(or pix-fb
|
||||
.ft R
|
||||
.fi
|
||||
.sp
|
||||
and for statistics on the differences, use
|
||||
.sp
|
||||
.ft B
|
||||
bwdiff moss.pix ../pix/moss.pix \(or pixstat
|
||||
.ft R
|
||||
.ne 8i
|
||||
.NH 1
|
||||
THE COMPETITION
|
||||
.PP
|
||||
The full benchmark takes about 9 CPU hours on a VAX-11/780, so you
|
||||
should scale your expectations accordingly.
|
||||
.PP
|
||||
Here is a sampling of some systems that have been tested, with as much
|
||||
information about the configuration as could be obtained. Some
|
||||
systems have a great many options for small things that can affect
|
||||
performance, such as memory interleaving.
|
||||
.LP
|
||||
.TS
|
||||
center box;
|
||||
l l.
|
||||
System Name Configuration
|
||||
_ _
|
||||
axposf DEC Alpha 4000/710, 256M, OSF/1 V3.0 \(dg
|
||||
ex-art Pentium-P90, 16MB, 256K cache, BSD/OS 2.0,
|
||||
hawks 486DX/33, 24MB, 256K cache, BSD/OS 2.0
|
||||
orac 486/100, 20MB, No cache, BSD/OS 2.0 (laptop)
|
||||
pk Cray C90, C916/161024, UNICOS 8.0.2.4
|
||||
vapor SGI, 18* 75 MHz R8000 IP21, 1024M RAM 8-way, Irix 6.0
|
||||
vblt 66 MHz 486DX2/66, 16M RAM, Linux 1.1.73
|
||||
vgr DEC VAX-11/780 w/FPA, 64M RAM, 4.3 BSD
|
||||
vision Sun-3/280 w/68881 FPA, 16M RAM, SunOS 4.1.1
|
||||
voyage SGI, 4* 25 MHz R3000 IP7, 56M RAM, Irix 4.0.1
|
||||
whiz SGI Ingido**2, 100 MHz IP22, 96M RAM, Irix 5.2
|
||||
waffle SGI, 4* 25 MHz R3000 IP7, 64M RAM, Irix 4.0.5 (heavy network use)
|
||||
warp Sun SPARCstation 5, 32M RAM, SunOS 4.1.4
|
||||
wax SGI, 24* 150 MHz R4400 IP19, 1024M RAM 4-way, Irix 5.2
|
||||
wilson SGI, 8* 100 MHz R4400 IP19, 1024M RAM 8-way, Irix 5.2
|
||||
wilted Sun-4/25 ELC, 16M RAM, SunOS 4.1.1
|
||||
wimp 33 MHz 386DX/33 w/387, 256k cache, 16M RAM, BSDI 2.0beta2
|
||||
wimpy Sun SS10BSX-GX, 2* 50 MHz SuperSPARC, 64M RAM, SunOS 5.4
|
||||
wizard SGI Ingido**2, 150 MHz IP22, 96M RAM, Irix 5.3
|
||||
.TE
|
||||
\(dg The Alpha was heavily loaded while the benchmark was being run.
|
||||
DEC requires us to show the load average at the time:
|
||||
.br
|
||||
03:28 up 18 days, 10:59, 7 users, load average: 2.00, 2.00, 2.08
|
||||
.NH 1
|
||||
BENCHMARK RESULTS
|
||||
.PP
|
||||
In the tradition of Dongarra, the Rays/sec figure is considered the
|
||||
"RT Figure of Merit" (RTFM). Note that the RTFM can only be compared
|
||||
between different runs on the \fIsame\fR database; it is not
|
||||
meaningful to compare RTFM numbers between different databases. The
|
||||
Rays/sec number for a multi-processor machine is for "aggregate CPU
|
||||
cluster seconds", rather than rays/total CPU seconds (which remains
|
||||
fairly constant on good parallel machines).
|
||||
.PP
|
||||
The statistics are recorded in an easily understood format, with all
|
||||
results for a particular configuration listed on a single line. The
|
||||
numbers reported are the rays/sec (RTFM) figure. Entries denoted with
|
||||
a dagger ("\(dg") produced incorrect results. Entries denoted with a
|
||||
dash ("-") were not available and should be considered differently
|
||||
than those entries with a dagger. Generally the results are not
|
||||
available because time constraints prevented running the complete set
|
||||
of databases.
|
||||
.fi
|
||||
.br
|
||||
.ne 8i
|
||||
.NH 1
|
||||
RELEASE 4.4 STATISTICS (4-Jan-1995)
|
||||
.PP
|
||||
There is very little difference in RTFM numbers between Release 4.0
|
||||
and Release 4.4, so they can be usefully compared. In some cases the
|
||||
4.4 performance is slower due to the use of shared libraries. For
|
||||
example "vision" dropped from 1.33 to 1.22 due to the shared
|
||||
libraries. For most users reducing the disk consumption from 300
|
||||
MBytes to 30 MBytes makes this a reasonable tradeoff. However, for
|
||||
the best performance, use non-shared libraries.
|
||||
.LP
|
||||
.TS H
|
||||
expand box;
|
||||
l | n n n n n | n | l.
|
||||
H/W Moss World Star Bldg M35 Mean S/W Notes
|
||||
_
|
||||
.TH
|
||||
vapor 810.91 1091.39 1012.63 1027.25 1092.85 1007 -P18 static
|
||||
vapor 773.8 1038.7 979.49 970.91 1036.62 959.9 -P17
|
||||
vapor 732.85 1021.69 968.93 922.62 1024.15 934.04 -P18 (SW lock)
|
||||
wax 769.38 940.83 953.36 924.7 1050.14 927.68 -P24
|
||||
vapor 730.17 994.97 934.43 917.1 987.83 912.9 -P16
|
||||
wax 725.26 957.68 927.61 932.67 992.75 907.19 -P24
|
||||
wax 756.95 915.96 940.43 903.45 966.09 896.57 -P23
|
||||
vapor 686.8 939.63 897.72 884.39 927.16 867.14 -P15
|
||||
wax 691.18 853.75 887.17 859.32 933.41 844.96 -P21
|
||||
wax 724.73 683.08 890.87 900.82 939.31 827.76 -P22
|
||||
vapor 645.32 881.18 843.23 801.41 859.26 806.08 -P14
|
||||
wax 637.28 757.74 820.21 871.37 877.6 792.84 -P20
|
||||
vapor 608.12 835.84 795.36 759.95 806.32 761.11 -P13
|
||||
_
|
||||
wax 606.98 784.3 754.46 799.95 794.52 748.04 -P19
|
||||
wax 590.16 758.23 794.06 794.52 757.79 738.95 -P18
|
||||
wax 579.29 722.35 787.55 720.26 754.65 712.82 -P17
|
||||
vapor 571.14 783.72 740.47 697.24 746.72 707.85 -P12
|
||||
wax 553.72 697.1 744.21 663.61 723.03 676.33 -P16
|
||||
vapor 534.85 716.58 685.87 656.25 685.77 655.86 -P11
|
||||
wax 519.01 655.57 690.95 651.9 663.92 636.27 -P15
|
||||
wax 475.88 637.33 665.38 608.31 653.99 608.17 -P14
|
||||
vapor 499.46 663.26 633.48 614.58 624.34 607.02 -P10
|
||||
wax 449.16 591.54 616.21 590.59 614.25 572.35 -P13
|
||||
vapor 463.3 598.34 575.07 555.62 560.89 550.64 -P9
|
||||
wax 424.71 556.8 595.02 521.63 538.78 527.38 -P12
|
||||
vapor 424.89 534.5 509.85 497.63 503.99 494.17 -P8
|
||||
wax 391.66 490.63 545.28 488.57 508.96 485.02 -P11
|
||||
wax 315.45 472.03 525.47 442.37 461.44 443.35 -P10
|
||||
vapor 381.1 467.67 440.13 425.57 442.04 431.3 -P7
|
||||
wax 309.35 426.37 386.11 417.85 434.96 394.92 -P9
|
||||
vapor 336.55 392.2 390.72 373.92 380.03 374.68 -P6
|
||||
_
|
||||
wax 307.6 361.32 396.07 380.17 380.74 365.18 -P8
|
||||
wax 245.87 332.33 362.5 338.62 331.39 322.14 -P7
|
||||
vapor 288.45 327.78 328.76 314.54 320.16 315.93 -P5
|
||||
wax 254.82 255.29 299.93 302.08 256.54 273.73 -P6
|
||||
wilson 223.01 265.17 287.8 262.19 269.62 261.55 -P8
|
||||
vapor 240.6 269.93 266.46 253.99 259.05 258 -P4
|
||||
wax 215.96 231.65 221.78 248.63 221.45 227.89 -P5
|
||||
wax 177.94 185.27 213.74 201.64 197.27 195.17 -P4
|
||||
vapor 187.58 198.84 202.28 191.94 194.74 195.07 -P3
|
||||
wax 120.4 138.01 162.12 159.36 141.33 144.24 -P3
|
||||
vapor 130.61 140.04 134.88 129.38 129.78 132.93 -P2
|
||||
wax 100.83 102.09 111.12 87.26 98.62 99.98 -P2
|
||||
wimpy 99.10 95.78 92.15 97.51 96.65 96.23 -P2
|
||||
wimpy 82.14 93.60 92.17 103.59 82.22 90.74 -P2
|
||||
_
|
||||
axposf 81.05 82.27 86.72 84.36 79.28 82.73 -P1
|
||||
vapor 79.68 77.7 73.89 71.38 70.06 74.54 -P1 static
|
||||
vapor 69.34 70.14 67.52 65.55 66.69 67.84 -P1 shared
|
||||
wizard 63.8 55.86 68.97 73.21 61.56 64.68
|
||||
wax 62.28 58.58 65.24 67.39 59.31 62.56 -P1
|
||||
wax 59.08 56.06 61.45 64.4 56.11 59.42 -P1
|
||||
voyage 52.78 55.44 58.19 58.03 52.41 55.37 -P4
|
||||
pk 64.89 55.71 48.01 49.50 53.43 54.30 -P1
|
||||
waffle 38.56 47.63 62.36 59.62 51.20 51.87 -P4
|
||||
wimpy 50.17 48.82 50.46 55.12 49.27 50.76 -P1
|
||||
wimpy 47.80 43.23 51.37 54.10 46.23 48.54 -P1
|
||||
weber 46.53 43.45 50.88 50.33 46.03 47.44 -P1
|
||||
wilson 41.16 39.54 45.98 42.93 34.82 40.88 -P1
|
||||
whiz 36.25 31.08 37.21 39.62 36.98 36.22
|
||||
warp 19.88 21.33 23.71 24.19 22.60 22.34
|
||||
ex-art 16.89 18.54 22.98 26.97 25.57 22.19
|
||||
orac 7.57 8.23 10.72 12.43 11.30 10.05
|
||||
wilted 9.58 9.53 10.66 10.53 9.87 10.03
|
||||
hawks 3.64 4.17 5.71 6.90 6.23 5.33
|
||||
vblt 4.85 4.89 5.29 5.24 4.90 5.03
|
||||
wimp 1.16 1.34 1.82 2.25 2.06 1.72
|
||||
vision 1.07 1.23 1.23 1.31 1.26 1.22 -P1
|
||||
vgr 1.0 1.0 1.0 1.0 1.0 1.0
|
||||
.TE
|
||||
.br
|
||||
.ne 8i
|
||||
.NH 1
|
||||
THE OLD COMPETITION
|
||||
.PP
|
||||
These are the definitions for systems measured in previous tests.
|
||||
.LP
|
||||
.TS
|
||||
center box;
|
||||
l l.
|
||||
System Name Configuration
|
||||
_ _
|
||||
alliant Alliant FX/8 (8 CEs, 9 IPs, 64 Mbytes), Concentrix 3.0
|
||||
amber HP 9000/720, 32 MB memory
|
||||
amsaa-seer Gould PN 9080, w/MACCs, UTX 2.0, 4x4Mb mem boards
|
||||
ardec-3 Pyramid 90Mx, Dual-CPU, OSx 2.5, 16 Mbytes
|
||||
bob Cray-2, SN 2009, 4.3ns clock
|
||||
cor3 Pyramid MIS-12T/3, OSx 192
|
||||
patton Cray X-MP/48, SN213, UNICOS 5.0, 8.5ns clock
|
||||
uy1 Cray Y-MP8/2128, UNICOS 5.1.11
|
||||
shpcrc2 IBM RS/6000, AIX 3.1
|
||||
slc1 Macintosh II, 68020, 68881, AUX 1.1, GCC 1.39
|
||||
spark Gould PN 9050, no MACC, UTX 2.0, 2x4Mb mem boards
|
||||
sws2 Convex C120, 16 Mbytes, Convex Unix 6.2.32.2
|
||||
vector Alliant FX/80 (8 ACEs, 6 IPs, 32 Mbytes), Concentrix
|
||||
venom Alliant FX/8 (8 CEs, 6 IPs, 32 Mbytes), Concentrix
|
||||
vgr VAX 780, FPA, 4.3 BSD
|
||||
virus Sun-3/50, 15 Mhz clock, 12 Mhz 68881, Sun UNIX 3.2
|
||||
vista SGI 3030, w/FP chip, UNIX release 3.5
|
||||
vmb Gould PN 9080, no MACCs, UTX 2.0, 12x1Mb mem boards
|
||||
vhs Silicon Graphics 4D/60T, 12.5 Mhz clock 16 MB memory
|
||||
ovoyage Silicon Graphics 4D/120, 16.7 Mhz clock 16 MB memory
|
||||
taylor Silicon Graphics 4D/220, 25 Mhz clock 16 MB memory
|
||||
crim Silicon Graphics 4DCRIMS 50Mhz clock 128 MB memory
|
||||
wiltse Silicon Graphics 4D R4000 50Mhz clock
|
||||
c1east T{
|
||||
Convex C1 XP (2 IOPs, 4 Multibus, 64 Mbytes),
|
||||
S/W 6.0.1.12
|
||||
T}
|
||||
elxsi-gnu Elxsi 6420, BSD 4.2 16 MB
|
||||
elxsi-gnuy Elxsi 6420, Sys Vr2, 16MB
|
||||
elxsi-m1 Elxsi 6410, BSD 4.2 16 MB
|
||||
hep Denelcor HEP, 4 PEMs
|
||||
indigo SGI Iris 3030, FPA, GL2-W3.5
|
||||
mseries T{
|
||||
MIPS Mseries, Release 0.6, UMIPS 2.1, 16 MB of R2350 RAM.
|
||||
R2000 CPU rev 5.0, R2010 FP rev 2.0
|
||||
T}
|
||||
multiflow Multiflow Trace 7/200 (PRELIMINARY)
|
||||
nova T{
|
||||
Sun SPARCserver 490, 32 Mb, 33 MHz clock, 33 MHz TI 8847 FPU, SunOS 4.1.1B
|
||||
T}
|
||||
rh2 Tektronix, Motorola 88000
|
||||
snm2 Cray 1-M, SN2, UNICOS 2.0
|
||||
sws1 Convex C1, ConvexOS 9.1 48MB memory
|
||||
tek4132 Tektronix 4132, 32082 fpp, UTek 2.3
|
||||
utah-gr VAX 785, FPA, 4.3 BSD
|
||||
utah-cs VAX 8600, FPA, 4.3 BSD
|
||||
veto Sun 4/260 32MB memory Sun UNIX 4.0.3
|
||||
violet VaxStationII GPX, Ultrix 1.2
|
||||
vision Sun-3/280, 16 MB memory
|
||||
vortac Sun-3/160, 16.67 Mhz clock, 12 Mhz 68881, Sun 3.2
|
||||
walrus Silicon Graphics 4D/280 25 Mhz clock 64 MB memory Irix 3.3.1
|
||||
whiz Silicon Graphics 4D/240 25 Mhz clock 56 MB memory Irix 3.3.1
|
||||
whisper Sun SPARCStation 1+
|
||||
wilted Sun SPARCstation ELC , Diskless, 12MB memory Sun UNIX 4.1.1
|
||||
worm Silicon Graphics 4D/280 25 Mhz clock 64 MB memory Irix 3.3.1
|
||||
.TE
|
||||
.br
|
||||
.ne 8i
|
||||
.NH 1
|
||||
OLD BENCHMARK RESULTS
|
||||
.PP
|
||||
These are the results of previous benchmarks.
|
||||
.NH 1
|
||||
RELEASE 1.20 STATISTICS (12-Feb-1987)
|
||||
.LP
|
||||
.TS H
|
||||
expand box;
|
||||
l l | n n n n | n | l.
|
||||
A/* H/W Moss World Star Bldg Mean S/W Notes
|
||||
_
|
||||
.TH
|
||||
Rays tek4132 80.5 44.0 33.9 31.4 ? UTek 2.3
|
||||
*vgr tek4132 0.72 0.69 0.62 0.62 ?
|
||||
_
|
||||
Rays violet 107.7 57.3 44.7 44.1 ? Ultrix 1.2
|
||||
*vgr violet 0.96 0.90 0.81 0.87 ?
|
||||
_
|
||||
Rays violet 119.0 63.0 50.0 46.3 ? Ultrix 1.2,
|
||||
*vgr violet 1.06 0.99 0.91 0.91 ? w/fast_sqrt
|
||||
_
|
||||
Rays vgr 112.1 63.6 55.0 50.7 ? BSD 4.3
|
||||
*vgr vgr 1.0 1.0 1.0 1.0 1.0
|
||||
_
|
||||
Rays indigo 115.9 85.3 \(dg 101.8 ? GL2-W3.5
|
||||
*vgr indigo 1.03 1.34 \(dg 2.01 ?
|
||||
_
|
||||
Rays vista 116.4 86.0 \(dg 102.3 ? SGI UNIX 3.5
|
||||
*vgr vista 1.04 1.35 \(dg 2.02 ?
|
||||
_
|
||||
Rays virus 127.3 69.9 57.0 52.4 ? Sun UNIX 3.2
|
||||
*vgr virus 1.14 1.10 1.04 1.03 ?
|
||||
_
|
||||
Rays vortac 148.2 81.0 65.8 60.7 ? Sun UNIX 3.2
|
||||
*vgr vortac 1.32 1.27 1.20 1.20 ?
|
||||
_
|
||||
Rays utah-gr 191.8 105.8 89.9 86.5 ? 4.3 BSD
|
||||
*vgr utah-gr 1.71 1.66 1.64 1.71 ?
|
||||
_
|
||||
Rays ardec-3 - 68.4 57.2 - ? OSx 2.5
|
||||
*vgr ardec-3 - 1.08 1.04 - ?
|
||||
_
|
||||
Rays elxsim1 380.5 232.2 204.8 189.3 ? BSD 4.2
|
||||
*vgr elxsim1 3.39 3.65 3.72 3.73 ?
|
||||
_
|
||||
Rays spark 413.4 232.0 213.8 211.9 ? UTX 2.0
|
||||
*vgr spark 3.69 3.65 3.89 4.18 ?
|
||||
_
|
||||
Rays vmb 413.9 233.4 210.6 212.6 ? UTX 2.0
|
||||
*vgr vmb 3.69 3.67 3.83 4.19 ?
|
||||
_
|
||||
Rays c1east 454.8 252.4 205.6 192.3 ? Convex UNIX 6.0.1.12,
|
||||
*vgr c1east 4.06 3.97 3.74 3.80 ? vanilla cc
|
||||
_
|
||||
Rays seer 460.7 263.2 246.8 241.0 ? UTX 2.0
|
||||
*vgr seer 4.11 4.14 4.49 4.75 ?
|
||||
_
|
||||
Rays venom 492.9 228.0 180.0 157.1 ? Concentrix 2.0
|
||||
*vgr venom 4.40 3.58 3.27 3.10 ?
|
||||
_
|
||||
Rays elxgnu 520.6 315.4 264.4 242.0 ? BSD 4.2
|
||||
*vgr elxgnu 4.64 4.96 4.81 4.77 ?
|
||||
_
|
||||
Rays utah-cs 521.1 292.1 237.4 216.2 ? BSD 4.3
|
||||
*vgr utah-cs 4.64 4.59 4.32 4.27 ?
|
||||
_
|
||||
Rays c1east 521.6 285.3 230.5 215.1 ? Convex UNIX 6.0.1.12,
|
||||
*vgr c1east 4.66 4.49 4.20 4.24 ? vc -O1 (scalar)
|
||||
_
|
||||
Rays c1east 527.7 287.4 228.7 210.0 ? Convex UNIX 6.0.1.12,
|
||||
*vgr c1east 4.71 4.52 4.16 4.14 ? vc -O2 (vector)
|
||||
_
|
||||
Rays elxgnuy 644.7 349.3 264.6 242.1 ? System Vr2
|
||||
*vgr elxgnuy 5.75 5.49 4.81 4.77 ?
|
||||
_
|
||||
Rays mflow 845.2 439.5 313.1 338.9 ? (preliminary)
|
||||
*vgr mflow 7.54 6.91 5.69 6.68 ?
|
||||
_
|
||||
Rays venom 904.9 424.6 349.3 312.6 ? Concentrix 2.0,
|
||||
*vgr venom 8.07 6.68 6.35 6.17 ? 2 CEs, no vectors
|
||||
_
|
||||
Rays venom 1375.5 650.0 523.4 459.9 ? Concentrix 2.0,
|
||||
*vgr venom 12.27 10.22 9.52 9.07 ? 3 CEs, no vectors
|
||||
_
|
||||
Rays venom 1813.5 845.5 686.0 600.7 ? Concentrix 2.0,
|
||||
*vgr venom 16.17 13.29 12.47 11.85 ? 4 CEs, no vectors
|
||||
_
|
||||
Rays venom 2364.1 1104.4 870.2 775.9 ? Concentrix 2.0,
|
||||
*vgr venom 21.08 17.36 15.82 15.3 ? 5 CEs, no vectors
|
||||
_
|
||||
Rays snm2 2492.9 - - - ? Unicos 2.0,
|
||||
*vgr snm2 22.24 - - - ? no vectors, no optim
|
||||
_
|
||||
Rays hep 2502.0 - - - ? 1 PEM, npsw=10
|
||||
*vgr hep 22.32 - - - ?
|
||||
_
|
||||
Rays venom 2811.4 1319.0 1051.6 918.0 ? Concentrix 2.0,
|
||||
*vgr venom 25.08 20.74 19.12 18.1 ? 6 CEs, no vectors
|
||||
_
|
||||
Rays venom 3248.8 1533.0 1232.3 1065.9 ? Concentrix 2.0,
|
||||
*vgr venom 28.98 24.10 22.41 21.02 ? 7 CEs, no vectors
|
||||
_
|
||||
Rays patton 3453.3 1514.3 1271.2 1027.3 ? COS V115BF2
|
||||
*vgr patton 30.81 23.81 23.11 20.26 ? 1 CPU, no vectors
|
||||
_
|
||||
Rays venom 3677.3 1724.2 1375.4 1208.4 ? Concentrix 2.0,
|
||||
*vgr venom 32.80 27.11 25.01 23.83 ? 8 CEs, no vectors
|
||||
_
|
||||
Rays alliant 3972.9 1840.0 1457.2 1266.4 ? Concentrix 3.0,
|
||||
*vgr alliant 35.44 28.93 26.49 24.98 ? 8 CEs, no vectors
|
||||
_
|
||||
Rays hep 4055.9 - - - ? 1 PEM, npsw=40
|
||||
*vgr hep 36.18 - - - ?
|
||||
_
|
||||
Rays patton 6856.6 - 2522.2 - ? COS V115BF2
|
||||
*vgr patton 61.16 - 45.86 - ? 2 CPUs, no vectors
|
||||
_
|
||||
Rays patton 10205.1 - 3749.9 - ? COS V115BF2
|
||||
*vgr patton 91.04 - 68.18 - ? 3 CPUs, no vectors
|
||||
_
|
||||
Rays patton 13320.2 - 4955.6 - ? COS V115BF2
|
||||
*vgr patton 118.82 - 90.10 - ? 4 CPUs, no vectors
|
||||
.TE
|
||||
.NH 1
|
||||
RELEASE 2.3 STATISTICS (2-Nov-1987)
|
||||
.LP
|
||||
.TS H
|
||||
expand box;
|
||||
l l | n n n n | n | l.
|
||||
A/* H/W Moss World Star Bldg Mean S/W Notes
|
||||
_
|
||||
.TH
|
||||
Rays vgr 118.8 64.9 36.5 34.2 ? BSD 4.3
|
||||
*vgr vgr 1.0 1.0 1.0 1.0 1.0
|
||||
_
|
||||
Rays vmb 375.4 218.6 186.4 196.2 ? UTX 2.0
|
||||
*vgr vmb 3.16 3.37 5.11 5.74 ?
|
||||
_
|
||||
Rays venom 468.2 221.7 166.1 144.9 ? Concentrix 3.0,
|
||||
*vgr venom 3.94 3.42 4.55 4.24 ? 1 CE, no vectors
|
||||
_
|
||||
Rays sws2 471.9 258.4 202.5 186.4 ? Convex Unix 6.2.32.2
|
||||
*vgr sws2 3.97 3.98 5.55 5.45 ? vanilla cc -O
|
||||
_
|
||||
Rays vector 656.6 301.6 221.1 195.0 ? Concentrix 3.0,
|
||||
*vgr vector 5.53 4.65 6.06 5.70 ? 1 ACE, no vectors
|
||||
_
|
||||
Rays venom 827.3 424.0 327.1 287.9 ? Concentrix 3.0,
|
||||
*vgr venom 6.96 6.53 8.96 8.42 ? 2 CEs, no vectors
|
||||
_
|
||||
Rays vhs 958.3 545.6 447.0 414.1 ? -O2 optimization
|
||||
*vgr vhs 8.07 9.41 12.25 12.11 ?
|
||||
_
|
||||
Rays mseries 988.3 603.5 515.6 491.6 ?
|
||||
*vgr mseries 8.32 9.29 14.13 14.37 ?
|
||||
_
|
||||
Rays vector 1280.9 596.8 436.7 389.2 ? Concentrix 3.0,
|
||||
*vgr vector 10.78 9.19 11.96 11.38 ? 2 ACEs, no vectors
|
||||
_
|
||||
Rays venom 1288.7 630.6 486.4 428.0 ? Concentrix 3.0,
|
||||
*vgr venom 10.85 9.72 13.33 12.51 ? 3 CEs, no vectors
|
||||
_
|
||||
Rays venom 1732.9 853.2 645.4 560.1 ? Concentrix 3.0,
|
||||
*vgr venom 14.59 13.15 17.68 16.38 ? 4 CEs, no vectors
|
||||
_
|
||||
Rays bob 1856.7 801.9 574.1 500.3 ? 1 CPU, UNICOS 3.0,
|
||||
*vgr bob 15.63 12.36 15.73 15.62 ? CC -O
|
||||
_
|
||||
Rays vector 1952.1 881.7 647.6 578.8 ? Concentrix 3.0,
|
||||
*vgr vector 16.43 13.58 17.74 16.92 ? 3 ACEs, no vectors
|
||||
_
|
||||
Rays venom 2158.4 1031.3 797.3 703.1 ? Concentrix 3.0,
|
||||
*vgr venom 18.17 15.89 21.84 20.56 ? 5 CEs, no vectors
|
||||
_
|
||||
Rays bob 2346.1 1127.4 751.0 677.2 ? 1 CPU UNICOS 4.0
|
||||
*vgr bob 19.75 17.37 20.57 19.80 ? CC -O
|
||||
_
|
||||
Rays bob 2423.5 1045.7 719.3 609.4 ? 1 CPU, UNICOS 3.0,
|
||||
*vgr bob 20.40 16.11 19.71 17.82 ? VCC -O
|
||||
_
|
||||
Rays vector 2546.2 1170.0 867.2 758.7 ? Concentrix 3.0,
|
||||
*vgr vector 21.43 18.03 23.76 22.18 ? 4 ACEs, no vectors
|
||||
_
|
||||
Rays venom 2633.7 1232.7 943.4 839.5 ? Concentrix 3.0,
|
||||
*vgr venom 22.17 18.99 25.85 24.55 ? 6 CEs, no vectors
|
||||
_
|
||||
Rays venom 2769.4 1393.3 1098.1 971.6 ? Concentrix 3.0,
|
||||
*vgr venom 23.31 21.47 30.08 28.41 ? 7 CEs, no vectors
|
||||
_
|
||||
Rays vector 3131.2 1453.8 1065.8 945.4 ? Concentrix 3.0,
|
||||
*vgr vector 26.36 22.40 29.20 27.64 ? 5 ACEs, no vectors
|
||||
_
|
||||
Rays venom 3368.7 1605.3 1231.3 1095.11 ? Concentrix 3.0,
|
||||
*vgr venom 28.36 24.73 33.73 32.02 ? 8 CEs, no vectors
|
||||
_
|
||||
Rays patton 3456.5 1691.8 1169.0 1043.6 ? 1 CPU, UNICOS 2.1
|
||||
*vgr patton 29.10 26.07 32.03 30.51 ? no vectors
|
||||
_
|
||||
Rays vector 3686.4 1688.6 1259.1 1129.0 ? Concentrix 3.0,
|
||||
*vgr vector 31.03 26.02 34.49 33.01 ? 6 ACEs, no vectors
|
||||
_
|
||||
Rays vector 4140.3 1953.0 1463.3 1299.7 ? Concentrix 3.0,
|
||||
*vgr vector 34.85 30.09 40.09 38.00 ? 7 ACEs, no vectors
|
||||
_
|
||||
Rays bob 4641.7 2243.4 1498.2 1358.1 ? 2 CPUs, UNICOS 4.0
|
||||
*vgr bob 39.07 34.57 41.05 39.71 ? CC -O
|
||||
_
|
||||
Rays vector 4712.2 2226.3 1649.0 1469.7 ? Concentrix 3.0,
|
||||
*vgr vector 39.66 34.30 45.18 42.97 ? 8 ACEs, no vectors
|
||||
_
|
||||
Rays bob 6884.9 3422.4 2267.7 2034.3 ? 3 CPUs, UNICOS 4.0
|
||||
*vgr bob 57.95 52.73 62.13 59.48 ? CC -O
|
||||
_
|
||||
Rays bob 9477.1 4484.7 2947.0 2832.9 ? 4 CPUs, UNICOS 4.0
|
||||
*vgr bob 79.77 69.10 80.76 82.83 ? CC -O
|
||||
.TE
|
||||
.NH 1
|
||||
RELEASE 3.0 STATISTICS (10-Oct-1988)
|
||||
.LP
|
||||
.TS H
|
||||
expand box;
|
||||
l l | n n n n | n | l.
|
||||
A/* H/W Moss World Star Bldg Mean S/W Notes
|
||||
_
|
||||
.TH
|
||||
Abs vgr 138.85 67.15 54.48 49.11 77.39 BSD 4.3
|
||||
*vgr vgr 1.00 1.00 1.00 1.00 1.00 w/FPA
|
||||
_
|
||||
Abs sdm 163.56 76.98 59.79 52.51 88.21 SunOS 3.4
|
||||
*vgr sdm 1.17 1.14 1.09 1.06 1.11 w/68881
|
||||
_
|
||||
Abs ardec-3 417.95 212.43 177.01 160.73 242.03 9820, OSx 4.1
|
||||
*vgr ardec-3 3.01 3.16 3.24 3.27 3.17 -P 1
|
||||
_
|
||||
Abs spark 443.84 216.92 190.42 192.82 261.00 UTX 2.0
|
||||
*vgr spark 3.19 3.23 3.49 3.92 3.37 no MACC
|
||||
_
|
||||
Abs vmb 482.28 226.33 191.52 193.04 273.29 UTX 2.0
|
||||
*vgr vmb 3.47 3.37 3.51 3.93 3.57 no MACC
|
||||
_
|
||||
Abs sws2 546.23 255.45 183.10 163.85 287.15 Convex 6.2.32.2
|
||||
*vgr sws2 3.93 3.80 3.36 3.33 3.60 /bin/cc
|
||||
_
|
||||
Abs sun4 767.7 373.7 315.5 284.5 435.6 Unix 3.5
|
||||
*vgr sun4 5.52 5.56 5.79 5.79 5.62 -O2 optim
|
||||
_
|
||||
Abs video 940.33 469.30 399.21 367.64 544.12 UNIX 2.0
|
||||
*vgr video 6.77 6.98 7.32 7.48 7.13 -O2
|
||||
_
|
||||
Abs vhs 954.81 471.90 409.78 392.55 557.26 IRix 3.1
|
||||
*vgr vhs 6.87 7.02 7.52 7.99 7.45 Parallel, -P1
|
||||
_
|
||||
Abs bob 2602.68 1078.25 712.39 642.42 1258.93 UNICOS 4.0, /bin/cc
|
||||
*vgr bob 21.22 18.17 15.39 13.98 17.19 -P 1
|
||||
_
|
||||
Abs vector 3811.68 1469.80 1060.50 921.21 1815.79 Alliant 3.0
|
||||
*vgr vector 27.45 21.88 19.46 18.75 21.88 -P 5
|
||||
_
|
||||
Abs vector 4515.09 1751.94 1266.49 1090.85 2156.09 Alliant 3.0
|
||||
*vgr vector 32.51 26.08 23.24 22.21 26.01 -P 6
|
||||
_
|
||||
Abs patton 4550.67 1920.15 1298.61 1153.02 2230.61 UNICOS 3.0, /bin/cc
|
||||
*vgr patton 37.10 32.36 28.05 25.09 30.65 -P 1
|
||||
_
|
||||
Abs vector 5130.74 2004.49 1438.97 1261.36 2458.89 Alliant 3.0
|
||||
*vgr vector 36.95 29.85 26.41 25.68 29.72 -P 7
|
||||
_
|
||||
Abs bob 5186.24 2132.17 1409.10 1273.72 2500.30 UNICOS 4.0, /bin/cc
|
||||
*vgr bob 42.28 35.93 30.44 27.71 34.09 -P 2
|
||||
_
|
||||
Abs vector 5813.76 2260.61 1638.31 1422.82 2783.87 Alliant 3.0
|
||||
*vgr vector 41.87 33.66 30.07 28.97 33.64 -P 8
|
||||
_
|
||||
Abs amber 5901.29 2702.65 2096.35 1893.41 3148.42
|
||||
*vgr amber 42.50 40.24 38.47 38.55 39.94 -P 1
|
||||
_
|
||||
Abs bob 7934.12 3392.98 2119.11 1929.74 3843.98 UNICOS 4.0, /bin/cc
|
||||
*vgr bob 64.69 57.18 45.78 41.99 52.41 -P 3
|
||||
_
|
||||
Abs patton 8898.79 3782.55 2559.48 2292.13 4383.23 UNICOS 3.0, /bin/cc
|
||||
*vgr patton 72.56 63.75 55.30 49.88 60.37 -P 2
|
||||
_
|
||||
Abs bob 10734.52 4436.61 2883.53 2617.47 5168.03 UNICOS 4.0, /bin/cc
|
||||
*vgr bob 87.52 74.77 62.30 56.96 70.38 -P 4
|
||||
_
|
||||
Abs patton 13078.79 5631.95 3832.88 3416.90 6490.13 UNICOS 3.0, /bin/cc
|
||||
*vgr patton 106.64 94.92 82.81 74.36 89.68 -P 3
|
||||
_
|
||||
Abs patton 17157.78 7437.55 5073.58 4531.25 8550.04 UNICOS 3.0, /bin/cc
|
||||
*vgr patton 139.90 125.35 109.62 98.61 118.37 -P 4
|
||||
.TE
|
||||
.bp
|
||||
.NH 1
|
||||
RELEASE 3.7 STATISTICS (19-June-1989)
|
||||
.LP
|
||||
.TS H
|
||||
expand box;
|
||||
l l | n n n n n | n | l.
|
||||
A/* H/W Moss World Star Bldg M35 Mean CPU
|
||||
_
|
||||
.TH
|
||||
Abs vgr 128.64 54.47 45.17 40.35 49.02 63.53 1
|
||||
*vgr vgr 1.00 1.00 1.00 1.00 1.00 1.00
|
||||
_
|
||||
Abs rh2 1704.56 791.31 599.81 549.74 589.01 846.88 1
|
||||
*vgr rh2 13.25 14.52 13.27 13.62 12.01 13.33
|
||||
_
|
||||
Abs spark 435.69 208.59 176.76 177.69 174.67 234.68 1
|
||||
*vgr spark 3.53 3.61 4.17 4.29 3.40 3.80
|
||||
_
|
||||
Abs vhs 973.11 475.00 384.62 351.12 343.44 505.45 1
|
||||
*vgr vhs 7.56 8.72 8.51 8.70 7.00 8.09
|
||||
_
|
||||
Abs whisper 1118.35 561.81 473.52 439.76 509.26 620.54 1
|
||||
*vgr whisper 8.69 10.31 10.48 10.89 10.38 10.15
|
||||
_
|
||||
Abs nova 2024.80 976.01 790.17 732.35 ? 1130.83 1
|
||||
*vgr nova 15.74 17.92 17.49 18.15 ? 17.32
|
||||
_
|
||||
Abs ovoyage 1969.57 1001.21 862.77 809.61 786.11 1085.85 2
|
||||
*vgr ovoyage 15.31 18.38 19.10 20.06 16.03 17.77
|
||||
_
|
||||
Abs taylor 2446.98 1076.24 912.03 837.56 799.58 1214.47 1
|
||||
*vgr taylor 19.02 19.75 20.19 20.75 16.31 19.20
|
||||
_
|
||||
Abs worm 2671.46 1218.49 966.76 859.61 932.18 1329.70 1
|
||||
*vgr worm 20.76 22.36 21.40 21.30 19.01 20.96
|
||||
_
|
||||
Abs viper 3255.73 1368.96 1102.71 1039.37 1008.15 1554.98 8
|
||||
*vgr viper 25.30 25.13 24.41 25.75 20.56 24.23
|
||||
_
|
||||
Abs vector 3956.86 1625.23 1234.03 1137.36 1121.41 1814.97 8
|
||||
*vgr vector 30.75 29.83 27.31 28.18 22.87 27.78
|
||||
_
|
||||
Abs taylor 4730.05 2225.56 1742.09 1590.57 1551.78 2368.01 2
|
||||
*vgr taylor 36.76 40.85 38.56 39.41 31.65 37.44
|
||||
_
|
||||
Abs worm 5017.85 2309.86 1894.92 1708.27 1791.11 2544.40 2
|
||||
*vgr worm 39.00 42.40 41.95 42.33 36.53 40.44
|
||||
_
|
||||
Abs worm 7082.79 3359.99 2740.50 2502.03 2594.37 3655.93 3
|
||||
*vgr worm 55.05 61.68 60.67 62.00 52.92 58.46
|
||||
_
|
||||
Abs worm 8664.78 4162.53 3323.46 3115.36 3378.75 4528.97 4
|
||||
*vgr worm 67.35 76.41 73.57 77.20 68.92 72.69
|
||||
_
|
||||
Abs worm 10072.1 5016.57 4032.60 3855.90 4043.11 5404.06 5
|
||||
*vgr worm 78.29 92.09 89.27 95.56 82.47 87.53
|
||||
_
|
||||
Abs worm 11678.4 5752.20 4758.80 4493.16 4700.52 6276.60 6
|
||||
*vgr worm 90.78 105.60 105.35 111.35 95.88 101.79
|
||||
_
|
||||
Abs worm 12282.3 6021.31 5394.36 4908.98 5141.71 6749.72 7
|
||||
*vgr worm 95.47 110.54 119.42 121.65 104.89 110.39
|
||||
_
|
||||
Abs worm 12158.3 5913.50 5784.67 5327.66 5505.71 6937.96 8
|
||||
*vgr worm 94.51 108.56 128.06 132.03 112.31 115.09
|
||||
_
|
||||
Abs patton 16028.8 7289.7 4827.9 4392.5 20829.2 53368.1 4
|
||||
*vgr patton 124.6 133.83 106.88 108.85 106.23 116.07
|
||||
.TE
|
||||
.bp
|
||||
.NH 1
|
||||
RELEASE 4.0 STATISTICS
|
||||
.LP
|
||||
.TS H
|
||||
expand box;
|
||||
l l | n n n n n | n | l.
|
||||
A/* H/W Moss World Star Bldg M35 Mean CPU
|
||||
_
|
||||
.TH
|
||||
Abs vgr 137.82 67.23 56.39 53.91 69.25 76.92 1
|
||||
*vgr vgr 1.00 1.00 1.00 1.00 1.00 1.00
|
||||
_
|
||||
Abs slc1 153.63 80.95 62.94 60.48 ? 71.60 1
|
||||
*vgr slc1 1.12 1.20 1.12 1.13 ? .91
|
||||
_
|
||||
Abs vision 165.85 89.78 76.44 75.78 96.18 100.80 1
|
||||
*vgr vision 1.21 1.33 1.36 1.42 1.36 1.33
|
||||
_
|
||||
Abs vmb 381.92 195.11 178.78 186.62 214.31 231.34 1
|
||||
*vgr vmb 2.78 2.90 3.18 3.49 3.03 3.07
|
||||
_
|
||||
Abs sws1 636.26 288.76 212.99 210.18 271.02 323.84 1
|
||||
*vgr sws1 4.64 4.30 3.79 3.93 3.83 4.09
|
||||
_
|
||||
Abs veto 827.25 436.38 361.89 348.99 422.19 479.34 1
|
||||
*vgr veto 6.03 6.50 6.45 6.54 5.97 6.29
|
||||
_
|
||||
Abs vhs 1040.44 500.52 436.90 415.15 496.30 577.86 1
|
||||
*vgr vhs 7.59 7.46 7.79 7.78 7.02 7.52
|
||||
_
|
||||
Abs cor3 1203.14 553.22 445.45 398.79 534.18 626.95 1
|
||||
*vgr cor3 8.78 8.24 7.94 7.47 7.55 7.99
|
||||
_
|
||||
Abs wilted 1556.66 800.18 722.95 708.21 858.90 929.38 1
|
||||
*vgr wilted 11.36 11.93 12.89 13.27 12.15 12.32
|
||||
_
|
||||
Abs shpcrc2 2274.36 1041.79 915.99 854.30 1110.23 1239.33 1
|
||||
*vgr shpcrc2 16.59 15.53 16.33 16.01 15.70 16.03
|
||||
_
|
||||
Abs walrus 2291.38 1094.04 960.07 892.67 1066.31 1260.89 1
|
||||
*vgr walrus 16.72 16.31 17.12 16.72 15.08 16.39
|
||||
_
|
||||
Abs walrus 4010.55 2019.34 1767.75 1685.19 2029.78 2302.52 2
|
||||
*vgr walrus 29.27 30.11 31.52 31.58 28.71 30.23
|
||||
_
|
||||
Abs patton 5235.87 2108.02 1509.85 1507.81 2132.01 2498.71 1
|
||||
*vgr patton 38.21 31.43 26.92 28.25 30.15 30.99
|
||||
_
|
||||
Abs crim 4679.97 2246.04 2143.07 1936.85 2224.65 2646.11 1
|
||||
*vgr crim 34.15 33.49 38.22 36.29 31.47 34.72
|
||||
_
|
||||
Abs uy1 6220.79 2474.97 1742.33 1748.73 2464.90 2930.34 1
|
||||
*vgr uy1 45.40 36.90 31.07 32.77 34.86 36.20
|
||||
_
|
||||
Abs wiltse 5785.83 2737.06 2473.66 2310.58 2699.06 3201.23 1
|
||||
*vgr wiltse 42.22 40.81 44.11 43.30 38.18 41.72 -mips1
|
||||
_
|
||||
Abs walrus 5743.85 2938.73 2513.24 2446.85 2858.84 3300.30 3
|
||||
*vgr walrus 41.92 43.82 44.82 45.85 40.44 43.37
|
||||
_
|
||||
Abs wiltse 7093.51 3458.89 2887.77 2730.62 3199.08 3873.97 1
|
||||
*vgr wiltse 51.77 51.57 51.50 51.17 45.25 50.25 -mips2
|
||||
_
|
||||
Abs walrus 7131.48 3613.02 3262.01 3048.77 3594.35 4129.92 4
|
||||
*vgr walrus 52.05 53.87 58.17 57.13 50.84 54.41
|
||||
_
|
||||
Abs whiz 7159.01 3655.65 3355.85 3132.36 3655.02 4191.57 4
|
||||
*vgr whiz 52.25 54.51 59.85 58.70 51.70 55.40
|
||||
_
|
||||
Abs walrus 7698.43 4119.06 3889.37 3690.27 4244.30 4728.28 5
|
||||
*vgr walrus 56.18 61.42 69.36 69.15 60.04 63.23
|
||||
_
|
||||
Abs walrus 8718.08 4625.56 4469.49 4295.53 4765.40 5374.81 6
|
||||
*vgr walrus 63.63 68.97 79.71 80.50 67.41 72.04
|
||||
_
|
||||
Abs walrus 8937.71 4882.66 4911.99 4601.09 5335.14 5733.71 7
|
||||
*vgr walrus 65.23 72.81 87.60 86.22 75.47 77.46
|
||||
_
|
||||
Abs walrus 9300.31 5136.17 5243.14 5112.23 5318.45 6022.06 8
|
||||
*vgr walrus 67.88 76.59 93.51 95.80 75.23 81.80
|
||||
_
|
||||
.TE
|
||||
.bp
|
||||
.NH 1
|
||||
ADDITIONAL STATISTICS
|
||||
.PP
|
||||
It would be greatly appreciated if you would e-mail any statistics
|
||||
that you gather to the BRL-CAD developers, including: the ``summary''
|
||||
file produced by the benchmark script, which BRL-CAD release was used,
|
||||
the manufacturer of the machine, hardware model name/number, software
|
||||
version numbers (OS and compiler), presence or absence of floating
|
||||
point hardware, processor cache sizes, bus and memory speeds, and the
|
||||
local host name (preferably an Internet or UUCP host name) of the
|
||||
specific machine used.
|
||||
@@ -0,0 +1,30 @@
|
||||
tbl() {
|
||||
case $# in
|
||||
0) rsh vmb.brl.mil 'PATH=/usr/5bin:$PATH export PATH; tbl';;
|
||||
*) cat $1 | rsh vmb.brl.mil 'PATH=/usr/5bin:$PATH export PATH; tbl';;
|
||||
esac;
|
||||
}
|
||||
typeset()
|
||||
{
|
||||
case $# in
|
||||
0)
|
||||
rsh vmb.brl.mil 'PATH=/usr/5bin:$PATH export PATH; troff -mm -Ti300 | dimp -t | ipr -J -Pim124';;
|
||||
*) cat $1 |
|
||||
rsh vmb.brl.mil 'PATH=/usr/5bin:$PATH export PATH; troff -mm -Ti300 | dimp -t | ipr -J -Pim124';;
|
||||
esac;
|
||||
}
|
||||
laser()
|
||||
{
|
||||
OPTS=
|
||||
case $# in
|
||||
0) ;;
|
||||
*) case $1 in
|
||||
-h) OPTS=$1; shift;;
|
||||
esac
|
||||
case $# in
|
||||
1) FILE=$1;;
|
||||
esac;;
|
||||
esac
|
||||
pix-bw -ntsc ${FILE} | bw-imp ${OPTS} | rsh vmb.brl.mil 'PATH=/usr/5bin:$PATH export PATH; ipr -J -Pim124'
|
||||
unset OPTS FILE;
|
||||
}
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
#OPTS='-V'
|
||||
OPTS='-b'
|
||||
|
||||
groff $OPTS -mm -Tps burst.mm > burst.ps
|
||||
ps2pdf burst.ps
|
||||
|
||||
#groff $OPTS -mm
|
||||
|
||||
#groff -mm -Thtml burst.mm > burst.html
|
||||
Executable
+22
@@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
tables="\
|
||||
bpl \
|
||||
cmap \
|
||||
commands \
|
||||
fb \
|
||||
hmkeys \
|
||||
ids \
|
||||
overlap \
|
||||
plot \
|
||||
screen \
|
||||
scrollmenu \
|
||||
shotlines \
|
||||
submenu \
|
||||
topmenu\
|
||||
"
|
||||
|
||||
for table in $tables ; do
|
||||
tbl $table.tbl > $table.mm
|
||||
done
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
# these macros (mm files) are generated by tclsh script "Make-tables.sh"
|
||||
TABLE_MM := bpl.mm
|
||||
TABLE_MM += cmap.mm
|
||||
TABLE_MM += commands.mm
|
||||
TABLE_MM += fb.mm
|
||||
TABLE_MM += hmkeys.mm
|
||||
TABLE_MM += ids.mm
|
||||
TABLE_MM += overlap.mm
|
||||
TABLE_MM += plot.mm
|
||||
TABLE_MM += screen.mm
|
||||
TABLE_MM += scrollmenu.mm
|
||||
TABLE_MM += shotlines.mm
|
||||
TABLE_MM += submenu.mm
|
||||
TABLE_MM += topmenu.mm
|
||||
|
||||
PRODS := burst.ps burst.pdf burst.html
|
||||
|
||||
docs:
|
||||
@echo "Making burst tables for groff..."
|
||||
./Make-tables.sh
|
||||
@echo "Making burst docs..."
|
||||
./Make-docs.sh
|
||||
|
||||
clean: distclean
|
||||
|
||||
distclean:
|
||||
-rm $(TABLE_MM) $(PRODS) *~ t tt
|
||||
@@ -0,0 +1,64 @@
|
||||
Documentation for the BRL-CAD program 'burst'.
|
||||
|
||||
Debian requires packages groff and groff-base.
|
||||
|
||||
The original source file ('burst.mm') has been modified slightly to
|
||||
ensure correct handling by Eric Raymond's doclifter
|
||||
(http://www.catb.org/~esr/doclifter/). From an e-mail from Eric:
|
||||
|
||||
from: Eric S. Raymond <esr@thyrsus.com>
|
||||
reply-to: esr@thyrsus.com
|
||||
to: Tom Browder <tom.browder@gmail.com>
|
||||
date: Tue, Aug 20, 2013 at 8:48 AM
|
||||
subject: Re: doclifter (master) failing on troff mm source
|
||||
mailed-by: thyrsus.com
|
||||
|
||||
<quote>
|
||||
Tom Browder <tom.browder@gmail.com>:
|
||||
> I have checked all macros and they are valid mm macros so I can't
|
||||
> figure out why doclifter is failing. I can send you the whole source
|
||||
> zipped if you're interested.
|
||||
|
||||
What you sent is sufficient. The problem is that your mm file
|
||||
contains none of the three trigger macros doclifter is looking for as
|
||||
a way to recognize that it's dealing with mm - .MT, .SA, or .COVER.
|
||||
The relevant table looks like this:
|
||||
|
||||
# This is how we autodetect the right macro set:
|
||||
|
||||
interpreter_dispatch = {
|
||||
"pp": MeInterpreter,
|
||||
"Dt": MdocInterpreter,
|
||||
"Dd": MdocInterpreter,
|
||||
"Nm": MdocInterpreter,
|
||||
"AU": MsInterpreter,
|
||||
"NH": MsInterpreter,
|
||||
"TH": ManInterpreter,
|
||||
"MT": MmInterpreter,
|
||||
"SA": MmInterpreter,
|
||||
"COVER": MmInterpreter,
|
||||
# Extension macro sets
|
||||
"supplemental macros used in Tcl/Tk": TkManInterpreter,
|
||||
"BS": TkManInterpreter,
|
||||
"the F register is turned on": Pod2ManInterpreter,
|
||||
"ZN": XManInterpreter,
|
||||
"Pn": XManInterpreter,
|
||||
"ny0": XManInterpreter,
|
||||
"reStructuredText": reStructuredTextInterpreter,
|
||||
"reStructeredText": reStructuredTextInterpreter,
|
||||
"DocBook XSL Stylesheets" : DocBookInterpreter,
|
||||
"pdfdest" : FoojzsInterpreter,
|
||||
"H0": ASTInterpreter,
|
||||
# These are all of the supported Mwww tags
|
||||
"URL": MwwwInterpreter,
|
||||
"FTP": MwwwInterpreter,
|
||||
"MTO": MwwwInterpreter,
|
||||
"PIMG": MwwwInterpreter,
|
||||
"IMG": MwwwInterpreter,
|
||||
"TAG": MwwwInterpreter,
|
||||
}
|
||||
|
||||
Inserting a dummy .MT 0 call should fix your problem.
|
||||
</quote>
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
.TL
|
||||
``burst''; Air Force Vulnerability Analyses from BRL-CAD Models
|
||||
.AF "U. S. A. Ballistic Research Laboratory"
|
||||
.ds ZZ Aberdeen Proving Ground
|
||||
.AU "Gary S.\& Moss" GSM ZZ
|
||||
.AS
|
||||
.so introduction.mm
|
||||
'\"The presentation will not dwell on the details of usage as much as the paper
|
||||
'\"but will focus on the available features of the \*(b) program
|
||||
'\"as well as its flexibility in supporting analyses of varied threat
|
||||
'\"mechanisms on \*(m) targets.
|
||||
.AE
|
||||
.MT 4
|
||||
.rm ZZ
|
||||
.SA 1
|
||||
@@ -0,0 +1,37 @@
|
||||
.TS
|
||||
allbox,center,tab(@);
|
||||
lb lb lb
|
||||
_ _ _
|
||||
l l l.
|
||||
record description@field format@field description
|
||||
run header@'1'@record number 1
|
||||
@1x,f9.4@attack azimuth (degrees)
|
||||
@1x,f8.4@attack elevation (degrees)
|
||||
@1x,f5.2@burst distance
|
||||
@1x,f10.2@projected area associated with burst point
|
||||
@1x,6a@units (mm,cm,inches,feet,meters)
|
||||
@1x,f9.6@ray solid angle (steradians)
|
||||
shotline header@'2'@record number 2
|
||||
@1x,f8.3@Y' coordinate of shotline
|
||||
@1x,f8.3@Z' coordinate of shotline
|
||||
shotline intersections@'3'@record number 3
|
||||
@1x,f8.2@X' coordinate of component intersection
|
||||
@1x,f8.2@line-of-sight thickness of component
|
||||
@1x,i4@component code number
|
||||
@1x,i2@space code
|
||||
@1x,f7.3@sine of fallback angle of exit normal
|
||||
@1x,f7.2@rotation angle of exit normal (degrees)
|
||||
@1x,f7.3@cosine of obliquity angle at entry
|
||||
@1x,a1@burst flag ('1' for yes, '0' for no)
|
||||
burst ray header@'4'@record number 4
|
||||
@1x,f8.3@azimuth angle WRT shotline (radians)
|
||||
@1x,f8.3@sine of elevation angle WRT shotline
|
||||
@1x,i6@sequential ray number for this burst point
|
||||
burst ray intersections@'5'@record number 5
|
||||
@1x,f10.3@distance to first contact with component
|
||||
@1x,f9.3@line-of-sight thickness of component
|
||||
@1x,f9.3@normal thickness of component
|
||||
@1x,i4@space code
|
||||
@1x,i4@component code number
|
||||
@1x,f6.3@cosine of obliquity angle at entry
|
||||
.TE
|
||||
@@ -0,0 +1,995 @@
|
||||
.\" ASI Note: PP was changed to P in this file; CS was commented out
|
||||
.\" Note the following line was added per Eric Raymond's advice for
|
||||
.\" use by doclifter:
|
||||
.MT 0
|
||||
.PH ""
|
||||
.PF "''\\\\nP''"
|
||||
.so defs.mm
|
||||
.so abstract.mm
|
||||
.so macros.mm
|
||||
.H 1 "User Interface"
|
||||
.H 2 "Program Invocation"
|
||||
In the examples below,
|
||||
the `$' symbol represents the \*(U)
|
||||
shell prompt.
|
||||
The general usage for the \*(b) program is as follows:
|
||||
.Ex "burst [-b]\fR"
|
||||
.P
|
||||
When \*(b) is used in the default mode,
|
||||
a full-screen, interactive, menu-driven interface is provided:
|
||||
.Ex burst
|
||||
In the interactive mode,
|
||||
commands are formatted by the menu system (see \fBHierarchical Menus\fR).
|
||||
The optional
|
||||
.I -b\^
|
||||
argument will suppress the full-screen terminal display in favor of a
|
||||
batch-oriented interface;
|
||||
when coupled with \*(U) file redirection and background processing,
|
||||
the user can submit the job and go on to other tasks.
|
||||
.Ex "burst \|\-b \|< \|input_file \|&"
|
||||
The user will typically want to redirect any diagnostics to a log file
|
||||
(see \fBError Log\fR).
|
||||
In either batch or interactive mode,
|
||||
the program will read commands (see \fBCommand Input\fR) from the standard
|
||||
input until an end of file is encountered.
|
||||
In batch mode,
|
||||
the program will exit after the last command is processed,
|
||||
but when run interactively the menu system will take over after the last
|
||||
command.
|
||||
The user must \fIquit\fR the program by exiting the top-level menu
|
||||
(see Table 2).
|
||||
It is recommended that the reader begin by running the \*(b)
|
||||
program interactively.
|
||||
The hierarchical menu system generates key word commands for the user by
|
||||
prompting him to make choices or enter values without prior knowledge of
|
||||
the commands and their syntax.
|
||||
As commands are generated,
|
||||
they are printed in the scrolling region so that the user can learn
|
||||
the syntax of the alternative mode of input without affecting his productivity.
|
||||
The more advanced user can circumvent the menu system by using a
|
||||
text editor to prepare input files.
|
||||
.sp
|
||||
.H 2 "Command Input"
|
||||
All commands to \*(b) are composed of one or more words connected by hyphens
|
||||
and each command may require one or more arguments that must be separated by
|
||||
either spaces or tabs.
|
||||
A line that begins with the `#' symbol is considered a comment and will be
|
||||
ignored.
|
||||
Each command must be on a separate line and may be supplied to the \*(b)
|
||||
program's standard input (i.e. using \*(U)
|
||||
.Ud sh 1
|
||||
file redirection) or can be generated from the hierarchical menus.
|
||||
In Table 1 below is a brief description of these commands; \fIflag\fR
|
||||
arguments have \fIyes\fR or \fIno\fR values, an \fIangle\fR is expressed in
|
||||
degrees as a floating-point quantity,
|
||||
\fIdistances\fR and coordinates such as \fIX, Y, Z, left, right\fR, etc.
|
||||
are also floating-point numbers,
|
||||
and \fIcount\fR represents an integer.
|
||||
Square brackets delimit optional arguments.
|
||||
For a detailed description of each command,
|
||||
refer to sections 2 through 7.
|
||||
.DF
|
||||
.sp
|
||||
.TB "Key Word Commands"
|
||||
.so commands.mm
|
||||
.sp
|
||||
.DE
|
||||
.H 2 "Screen Layout"
|
||||
In interactive mode,
|
||||
the screen is divided into sections of one or more rows (lines) of text.
|
||||
.DF
|
||||
.so screen.mm
|
||||
.FG "Screen Layout"
|
||||
.sp
|
||||
.DE
|
||||
The top line,
|
||||
referred to as line 1,
|
||||
is reserved for
|
||||
CPU
|
||||
usage statistics.
|
||||
Starting on line 2,
|
||||
the hierarchical menu region spans 12 lines of the screen.
|
||||
Below the menu region is a line used for user input related errors and
|
||||
help messages that are generated by typing an `h' (see Table 2).
|
||||
Below that is a line used to prompt the user for input and to inform him
|
||||
of ongoing processing.
|
||||
The next line contains the program name and version number,
|
||||
and is intended as a divider between the scrolling window below it and the
|
||||
non-scrolling portion of the screen.
|
||||
Once ray tracing has begun,
|
||||
grid index ranges will appear inside square brackets to the right of the
|
||||
version number.
|
||||
The first number is the current horizontal index,
|
||||
and this is separated by a colon from the right-most index for the grid.
|
||||
After the comma,
|
||||
is the current vertical index,
|
||||
followed by the top-most index for the grid.
|
||||
As ray tracing commences,
|
||||
the current grid indices will reflect the current shotline being calculated
|
||||
as the grid is traversed in a left-to-right,
|
||||
bottom-to-top fashion.
|
||||
The scrolling window region takes up the remainder of the screen for the
|
||||
display of processed commands and processing-related errors (i.e. from the
|
||||
ray tracer).
|
||||
Figure 1 shows what the various sections of the screen are used for,
|
||||
however in practice,
|
||||
the status information,
|
||||
help message,
|
||||
and prompt would not be displayed concurrently.
|
||||
The screen-oriented interface is terminal independent;
|
||||
it doesn't use graphics per se
|
||||
but uses the terminal capabilities information database to control the
|
||||
manipulation of text characters.
|
||||
.sp
|
||||
.H 2 "Hierarchical Menus"
|
||||
Table 2 shows the key strokes used to manipulate the menus.
|
||||
.DF
|
||||
.sp
|
||||
.TB "Hierarchical Menu Commands"
|
||||
.so hmkeys.mm
|
||||
.sp
|
||||
.DE
|
||||
The top-level menu looks like Figure 2.
|
||||
.DF
|
||||
.so topmenu.mm
|
||||
.FG "Top-Level Hierarchical Menu"
|
||||
.sp
|
||||
.DE
|
||||
Note that the \fIcurrent\fR entry will be highlighted.
|
||||
The `v' symbols at the bottom corners of the menu show that
|
||||
there are more entries below.
|
||||
Attempting to move the cursor past the bottom entry will cause the
|
||||
menu to scroll upwards as illustrated in Figure 3.
|
||||
.DF
|
||||
.so scrollmenu.mm
|
||||
.FG "Scrolled Menu"
|
||||
.sp
|
||||
.DE
|
||||
Note the `^' symbols at the top corners of the menu.
|
||||
These signify that there are now hidden entries above that can be
|
||||
scrolled down by advancing the cursor upwards past the top visible
|
||||
entry.
|
||||
If no scrolling is possible,
|
||||
that is,
|
||||
if no further entries exist,
|
||||
a `+' symbol will mark the corner of the menu.
|
||||
If a menu item is selected that has a sub-menu,
|
||||
the sub-menu will be drawn to the right of its parent menu as shown
|
||||
in Figure 4.
|
||||
.DF
|
||||
.so submenu.mm
|
||||
.FG "Sub-Menu Display"
|
||||
.sp
|
||||
.DE
|
||||
The menu system \fIremembers\fR the last item selected in a given
|
||||
menu;
|
||||
entering a menu that has been used before will cause
|
||||
the \fIcurrent\fR item to be the same as it was when that menu was last exited.
|
||||
If a menu has never been used,
|
||||
the top item will initially be \fIcurrent\fR.
|
||||
.H 2 "Scrolling Region"
|
||||
When running the \*(b) program interactively,
|
||||
all diagnostic output is, by default, printed in a scrolling text window
|
||||
at the bottom of the display.
|
||||
If the batch option (\fI\-b\fR) is used,
|
||||
these diagnostics will be printed on the standard error output of the
|
||||
program.
|
||||
If there is enough output the user may find it difficult
|
||||
to read it all before it scrolls out of sight.
|
||||
Also, the user may wish to save these diagnostics for later reference;
|
||||
overlap diagnostics from the ray tracer are useful in fixing errors in
|
||||
the geometry of the target description.
|
||||
The \*(b) program has a command called
|
||||
.Co error-file
|
||||
that will divert this output to a file (see \fBError Log\fR).
|
||||
Figure 5 shows three such overlap diagnostics.
|
||||
.DS
|
||||
.sp
|
||||
.so overlap.mm
|
||||
.FG "Overlap Diagnostics"
|
||||
.sp
|
||||
.DE
|
||||
The full path name of both regions is printed, the zero enclosed in double
|
||||
curly brackets is intended to discriminate between \fIinstances\fR\*F.
|
||||
.FS
|
||||
An \fIinstance\fR is a type of group in the \*(m) data base that has
|
||||
a \fIprototype\fR object as a member.
|
||||
Several \fIinstances\fR may reference the same \fIprototype\fR
|
||||
yet have different transformation matrices.
|
||||
Although these objects represent distinct geometric entities,
|
||||
they share the same path name,
|
||||
therefore the additional discriminant is necessary.
|
||||
.FE
|
||||
Theoretically,
|
||||
\fIisol\fR and \fIosol\fR are the names of the starting and ending solids
|
||||
associated with the boolean operations on the overlapping partition.
|
||||
In practice,
|
||||
these solid names are typically not helpful in diagnosing the problem,
|
||||
but the region names should be sufficient.
|
||||
The \fIdepth\fR is the line-of-sight thickness of the overlapping partition
|
||||
in millimeters.
|
||||
In parentheses,
|
||||
are printed the target coordinates of the intersection of the ray
|
||||
with the overlap.
|
||||
The \fIx-2\fR and \fIy1\fR reveal that the grid indices of the shotline are
|
||||
\fI-2, 1\fR; this means that the shotline was 2 cells to the left,
|
||||
and one cell above the grid origin.
|
||||
If \fIlvl\fR (meaning ray tracing recursion level) is \fIzero\fR,
|
||||
then the overlap resulted from a shotline,
|
||||
but if it is \fIone\fR,
|
||||
it could represent either a burst ray intersection or a probe to
|
||||
calculate the normal thickness of a component intersected by the shotline.
|
||||
The real purpose of the ray is stated last.
|
||||
.H 1 "Executing a Run"
|
||||
.Cs "/execute"
|
||||
The \*(b) program is designed to allow many options to be configured before
|
||||
any outputs are calculated.
|
||||
Unless otherwise stated in the individual command descriptions in this report,
|
||||
a given command will nullify any previous occurrence of the same directive
|
||||
until an
|
||||
.Co execute
|
||||
command is given.
|
||||
For instance, the command
|
||||
.Co "target-file"
|
||||
\ \fItank1\fR followed by
|
||||
.Co "target-file"
|
||||
\ \fItank2\fR will nullify the reference to \fItank1\fR.
|
||||
Once the input parameters are specified,
|
||||
the
|
||||
.Co execute
|
||||
command will start a \fIrun\fR.
|
||||
Many \fIruns\fR may occur during an instance of the \*(b) program.
|
||||
One such instance is referred to as a \fIsession\fR.
|
||||
Below are descriptions of commands for configuring the behavior of the
|
||||
\*(b) program.
|
||||
.Ce
|
||||
.H 1 "User Preferences"
|
||||
.H 2 "Units of Measure"
|
||||
.Cs /units
|
||||
The
|
||||
.Co units
|
||||
command will set the linear units for input and output.
|
||||
This command should be used before any scalar quantities such as coordinates,
|
||||
distances,
|
||||
or sizes are input.
|
||||
The units may be changed to accommodate input files of differing units,
|
||||
but the output from a particular run will reflect whatever the units were
|
||||
set to when the
|
||||
.Co execute
|
||||
command was given.
|
||||
One argument is expected out of the following list and must be spelled
|
||||
correctly:
|
||||
\fImillimeters\fR,
|
||||
\fIcentimeters\fR,
|
||||
\fImeters\fR,
|
||||
\fIinches\fR and \fIfeet\fR.
|
||||
The default units are \fImillimeters\fR.
|
||||
Angles are always expressed in degrees, not radians.
|
||||
.Ce
|
||||
.H 2 "Region Overlap Reporting"
|
||||
.Cs "/preferences/report-overlaps"
|
||||
It is considered an error if two \fIregions\fR in an \*(m) file occupy
|
||||
the same space; we call this an \fIoverlap\fR.
|
||||
The ray tracing library (\*(l)) will report \fIoverlapping regions\fR that are
|
||||
intersected by shotlines or burst rays to the \*(b) application and
|
||||
the program will,
|
||||
by default,
|
||||
print out any that have a line of sight thickness of at least 0.25 millimeters
|
||||
(see \fBError Log\fR).
|
||||
Although a target may only have several \fIoverlaps\fR,
|
||||
an error will be reported for each ray that intersects one of them,
|
||||
so the messages will typically be repetitious.
|
||||
Although these diagnostics are important for fixing problems in the geometric
|
||||
description of the target,
|
||||
the user may wish to proceed with a production run and the printing of these
|
||||
errors can slow the execution time considerably.
|
||||
A \fIyes\fR or \fIno\fR argument to this command will turn the diagnostics
|
||||
on or off.
|
||||
Regardless of whether or not individual \fIoverlaps\fR are reported,
|
||||
the total number detected will be logged.
|
||||
.Ce
|
||||
.H 1 "Shotlining Options"
|
||||
.Cs /shotlines
|
||||
\fIShotlining\fR is a technique whereby lines are described in the target
|
||||
coordinate system and information is requested about the geometry that
|
||||
intersects those lines in 3-space.
|
||||
This technique is useful for analysis programs that must simulate
|
||||
threat/target interactions,
|
||||
and therefore must sample the geometry along the threat path.
|
||||
Typically the lines are specified discretely,
|
||||
by a point and a direction,
|
||||
or a \fIgrid\fR of lines is generated that is
|
||||
oriented perpendicular to the direction of attack.
|
||||
A \fIgrid\fR is rectangular,
|
||||
but is subdivided along its height and width uniformly resulting in square
|
||||
cells.
|
||||
\fIGridding\fR techniques include passing a line called a \fIshotline\fR through
|
||||
the center of each cell,
|
||||
or alternatively,
|
||||
\fIdithering\fR each shotline's position within its respective cell's
|
||||
boundaries (see \fBDithering Shotlines\fR).
|
||||
.Ce
|
||||
.H 2 "Attack Direction"
|
||||
.Cs "/shotlines/attack-direction"
|
||||
The orientation of shotlines with respect to the coordinate system of the
|
||||
target are described by \fIazimuth\fR and \fIelevation\fR angles.
|
||||
These angles must be specified in degrees as floating-point numbers
|
||||
(see \fBGridding\fR).
|
||||
.Ce
|
||||
.H 2 "Gridding"
|
||||
.Cs "/shotlines/shotline location"
|
||||
The user is faced with several choices for generating shotlines;
|
||||
full-target envelope, partial envelopes, or discrete shots.
|
||||
No matter what shotlining method is used,
|
||||
a grid always exists as a frame of reference for specifying 2-dimensional
|
||||
coordinates in the plane normal to the direction of attack.
|
||||
This 2-dimensional coordinate system is a projection of the shotline
|
||||
coordinate system (also referred to as the \fIprimed\fR coordinate system).
|
||||
For the simple case of a zero azimuth, zero elevation attack,
|
||||
the
|
||||
.Ax \*(x) \*(y) \*(z)
|
||||
in the shotline coordinate system coincide
|
||||
with the
|
||||
.Ax \*(X) \*(Y) \*(Z)
|
||||
of the target coordinate system and the shotline direction is parallel to
|
||||
the \*(x)\*(A) and headed toward decreasing coordinates.
|
||||
Other orientations are described by rotating the
|
||||
.Ax \*(x) \*(y) \*(z)
|
||||
to keep the shotline direction always down the \*(x)\*(A).
|
||||
This transformation involves two rotations;
|
||||
first a rotation of the \fIprimed\fR coordinate system about the coincident
|
||||
\*(Z) and \*(z)\*(a) by the specified azimuthal angle,
|
||||
followed by a rotation about the new \*(y)\*(A) by the specified elevation
|
||||
angle.
|
||||
Since the grid is a 2-d projection of the shotline coordinate system,
|
||||
it has no \*(X) coordinate;
|
||||
if the user's viewpoint is from the direction of attack,
|
||||
the \*(y)\*(A) can be thought of as horizontal with increasing coordinates
|
||||
to the right,
|
||||
and the \*(z)\*(A) as vertical and increasing in the upward direction.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/envelope"
|
||||
An \fIenvelope\fR refers to a grid that is dimensioned such that its
|
||||
rectangular area,
|
||||
projected normal to the grid,
|
||||
will cover optionally all or part of the target.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/envelope/enclose-target"
|
||||
This option will generate a grid that is guaranteed to cover the entire
|
||||
target.
|
||||
Since the \*(m) modeler uses combinatorial solid geometry,
|
||||
the dimensions of the target are not known,
|
||||
therefore a worst case bounding rectangular parallel piped (RPP)
|
||||
is the only information available to the program and
|
||||
the grid may be larger than necessary.
|
||||
In addition,
|
||||
depending on the attack aspect,
|
||||
the presented area of some targets may not fill up a rectangular grid well.
|
||||
This should not be a problem since ray tracing outside the target
|
||||
boundaries is cheap, but if desired,
|
||||
the grid can be trimmed down with the partial envelope option described
|
||||
below.
|
||||
The grid origin is always aligned with the target origin.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/envelope/enclose-portion"
|
||||
This option allows the user to generate a \fIsub-grid\fR by specifying the
|
||||
distances from the grid origin to the \fIsub-grid's\fR left, right, top,
|
||||
and bottom boundaries.
|
||||
.Ce
|
||||
.H 2 "Cell Size"
|
||||
.Cs "/shotlines/cell-size"
|
||||
The dimensions of a grid cell are input as floating-point values that
|
||||
represent the distances between the centers of adjacent cells.
|
||||
\fICell size\fR also expresses the projected area of influence
|
||||
associated with a shotline or burst ray.
|
||||
Therefore,
|
||||
\fIcell size\fR must be specified even when a grid will not be generated,
|
||||
such as with discrete shot or discrete burst point selection
|
||||
(see \fBInput Discrete Shots\fR and \fBInput Discrete Burst Points\fR).
|
||||
.Ce
|
||||
.H 2 "Dithering Shotlines"
|
||||
.Cs "/shotlines/dither-cells"
|
||||
When gridding,
|
||||
shotlines normally pass through the center of each cell,
|
||||
however,
|
||||
they may be also be \fIdithered\fR.
|
||||
If the user chooses the latter,
|
||||
2 random numbers are selected for each
|
||||
cell that are used to offset the shotline in both parametric
|
||||
directions of the grid plane,
|
||||
but within the respective cell's boundaries.
|
||||
.Ce
|
||||
.H 2 "Input Discrete Shots"
|
||||
.Cs "/shotlines/shotline location/discrete shots"
|
||||
The following options describe different ways to input explicit shot locations
|
||||
as an alternative to generating a grid.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/discrete shots/target coordinate system"
|
||||
If the user wants to fire at a known point on the target,
|
||||
he may wish to describe the shotline location in target coordinates.
|
||||
When coupled with the attack direction,
|
||||
each 3-dimensional coordinate uniquely specifies a shotline.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/discrete shots/target coordinate system/input-3d-shot"
|
||||
This option allows the user to type in a single shot location as an
|
||||
\*(X), \*(Y), and \*(Z) coordinate.
|
||||
When the
|
||||
.Co execute
|
||||
command is given,
|
||||
that one shot will be run.
|
||||
No queueing of shots occurs in this mode;
|
||||
the last set of coordinates entered will be used.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/discrete shots/target coordinate system/read-3d-shot-file"
|
||||
A number of shots can be input from a file;
|
||||
this option will,
|
||||
after submission of an
|
||||
.Co execute
|
||||
directive,
|
||||
loop through every set of target coordinates in the named file.
|
||||
The file should contain three floating-point numbers on each line separated by
|
||||
white space (blanks or tabs).
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/discrete shots/shotline coordinate system"
|
||||
Another way to describe a shot location is in the shotline coordinate
|
||||
system.
|
||||
Since the \*(x) location of the shot is irrelevant (the shotline is
|
||||
parallel to the \*(x)\*(A)) a shot may be specified as a
|
||||
\*(y) and \*(z) coordinate.
|
||||
These coordinates can also be referred to as horizontal and vertical grid
|
||||
offsets.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/discrete shots/shotline coordinate system/input-2d-shot"
|
||||
This option allows the user to type in a single shot location as a
|
||||
\*(y), and \*(z) coordinate.
|
||||
When the
|
||||
.Co execute
|
||||
command is given,
|
||||
that one shot will be run.
|
||||
No queueing of shots occurs in this mode,
|
||||
the last set of grid offsets entered will be used.
|
||||
.Ce
|
||||
.Cs "/shotlines/shotline location/discrete shots/shotline coordinate system/read-2d-shot-file"
|
||||
A number of shots can be input from a file;
|
||||
this option will,
|
||||
after submission of an
|
||||
.Co execute
|
||||
directive,
|
||||
loop through every set of grid offsets in the named file.
|
||||
The file should contain three floating-point numbers on each line separated by
|
||||
white space (blanks or tabs).
|
||||
.Ce
|
||||
.H 1 "Bursting Options"
|
||||
.Cs "/burst points"
|
||||
\fIBursting\fR is a technique for sampling a target's geometry with the use
|
||||
of ray tracing.
|
||||
As opposed to \fIshotlining\fR involving parallel rays,
|
||||
\fIbursting\fR employs a distribution of rays that emanate from a single
|
||||
point.
|
||||
The \*(b) program generates rays that approximate a uniform distribution
|
||||
over a user-specified solid angle (see \fBSampling Cone Half Angle\fR)
|
||||
and having a density (see \fBNumber of Sampling Rays\fR) that is also under
|
||||
control of the user.
|
||||
The user also has a choice between several mechanisms for setting up
|
||||
burst point locations depending on the particular threat he is attempting
|
||||
to emulate.
|
||||
.Ce
|
||||
.H 2 "Method of Locating Burst Point"
|
||||
.Cs "/burst points/bursting method"
|
||||
Depending on threat type,
|
||||
burst points may be located using two basic techniques.
|
||||
The first technique is simply to input the burst point coordinates.
|
||||
This method can be used to compare vulnerability analysis results with
|
||||
empirical results from the firing range or combat field.
|
||||
The second technique available to the user is to burst along a shotline.
|
||||
This option is used more for predicting the burst point location based
|
||||
on target geometry,
|
||||
given certain parameters that describe the target/threat interactions.
|
||||
.Ce
|
||||
.H 3 "Input Discrete Burst Points"
|
||||
.Cs "/burst points/bursting method/burst point coordinates"
|
||||
The input of explicit burst point coordinates can be accomplished
|
||||
either by typing them in one at a time or by reading a file
|
||||
of target \*(X), \*(Y), and \*(Z) coordinates.
|
||||
.Ce
|
||||
.Cs "/burst points/bursting method/burst point coordinates/burst-coordinates"
|
||||
This option allows the user to type in a single burst point location as an
|
||||
\*(X), \*(Y), and \*(Z) coordinate.
|
||||
When the
|
||||
.Co execute
|
||||
command is given,
|
||||
that one burst point will be run.
|
||||
No queueing of burst points occurs in this mode,
|
||||
the last set of coordinates entered will be used.
|
||||
.Ce
|
||||
.Cs "/burst points/bursting method/burst point coordinates/read-burst-file"
|
||||
A number of burst points can be input from a file;
|
||||
this option will,
|
||||
after submission of an
|
||||
.Co execute
|
||||
directive,
|
||||
loop through every set of target coordinates in the named file.
|
||||
The file should contain three numbers on each line separated by
|
||||
white space (blanks or tabs).
|
||||
.Ce
|
||||
.H 3 "Burst on Contact"
|
||||
.Cs "/burst points/bursting method/burst point coordinates/shotline-burst"
|
||||
The
|
||||
.Co shotline-burst
|
||||
directive can be given a \fIyes\fR or \fIno\fR argument to either enable
|
||||
or disable this method of generating burst points.
|
||||
When a \fIyes\fR argument is given,
|
||||
a second \fIyes\fR or \fIno\fR argument is also required
|
||||
(see \fBBurst on Armor\fR).
|
||||
Bursting along a shotline can be done different ways depending on the
|
||||
combination of several options.
|
||||
The location of the burst point is based on the triggering
|
||||
mechanism that is selected with the \fIburst distance\fR parameter.
|
||||
.Ce
|
||||
.H 4 "Burst on Armor"
|
||||
.sp
|
||||
If the \fIburst distance\fR parameter is set to a negative or zero value,
|
||||
then interior burst points will be generated (see \fBBurst Distance\fR).
|
||||
This method of bursting requires the input of \fIburst armor\fR idents and,
|
||||
by default, \fIburst air\fR idents are also required.
|
||||
If the user does not want to require that certain air be present to trigger
|
||||
a burst point,
|
||||
the
|
||||
.Co shotline-burst
|
||||
command has a second argument.
|
||||
When this second argument is set to \fIno\fR,
|
||||
bursting will occur as long as
|
||||
\fIburst armor\fR is followed by any air or void (empty space),
|
||||
and the \fIburst air\fR file is not required.
|
||||
For more information see \fBBurst Armor File\fR and \fBBurst Air File\fR.
|
||||
.Ce
|
||||
.H 4 "Ground Plane Bursting"
|
||||
.Cs "/burst points/bursting method/burst point coordinates/ground-plane"
|
||||
Ground plane bursting is a vehicle for evaluating the effect of
|
||||
fragmenting warheads on light-armored vehicles when they strike the ground
|
||||
in close proximity to the target.
|
||||
The
|
||||
.Co ground-plane
|
||||
command is only relevant when bursting along a shotline is selected.
|
||||
The ground is modeled as a rectangle lying in a plane parallel
|
||||
to the target \fIX-Y\fR plane with edges parallel to the \*(X) and \*(Y)
|
||||
axes.
|
||||
The grid will be enlarged to include the ground plane;
|
||||
it is important for efficiency to limit the size of the ground plane to
|
||||
match the range of the fragments that may be generated by the particular
|
||||
threat being modeled.
|
||||
When enabling this option,
|
||||
the
|
||||
.Co ground-plane
|
||||
command is given a \fIyes\fR argument
|
||||
followed by the height of the target above the ground,
|
||||
and the distances that the ground rectangle extends out positive \*(X),
|
||||
negative \*(X),
|
||||
positive \*(Y),
|
||||
and negative \*(Y) axes.
|
||||
.Ce
|
||||
.H 2 "Bursting Parameters"
|
||||
.Cs "/burst points/bursting parameters"
|
||||
The following parameters influence both the triggering mechanism for burst
|
||||
points,
|
||||
as well as the characteristics of the cone of rays generated from each
|
||||
point.
|
||||
.Ce
|
||||
.H 3 "Burst Distance"
|
||||
.Cs "/burst points/bursting parameters/burst-distance"
|
||||
The \fIburst distance\fR parameter is modeled after the \fBBDIST\fR parameter
|
||||
used by the Air Force's \*(G)\*F code.
|
||||
.FS
|
||||
The Air Force currently uses \*(G) to produce burst point libraries
|
||||
for \*(P) from \*(F) descriptions.
|
||||
.FE
|
||||
The role of this parameter is overloaded,
|
||||
however it was retained to aid \*(G) users in transitioning to the \*(b)
|
||||
program.
|
||||
If it is zero or negative,
|
||||
then \fIinterior bursting\fR is enabled,
|
||||
otherwise,
|
||||
if it is greater than zero, \fIexterior bursting\fR will occur,
|
||||
subject to certain conditions (see below).
|
||||
The magnitude of this parameter is used to offset the burst point location
|
||||
along the shotline relative to the geometry that triggered the burst.
|
||||
.Ce
|
||||
.H 4 "Interior Bursting"
|
||||
.sp
|
||||
\fIBurst armor\fR refers to a component whose ident code is found in
|
||||
the list input by the
|
||||
.Co burst-armor-file
|
||||
command.
|
||||
Similarly,
|
||||
\fIburst air\fR refers to a component whose ident code is found in the
|
||||
list input by the
|
||||
.Co burst-air-file
|
||||
directive.
|
||||
If \fIinterior bursting\fR is enabled
|
||||
and a \fIburst armor\fR component is encountered along a shotline
|
||||
that is immediately followed by \fIburst air\fR,
|
||||
then a burst point will be located the absolute value of \fIburst distance\fR
|
||||
beyond the exit of the shotline from the component.
|
||||
This means that if \fIburst distance\fR is zero,
|
||||
the burst point will lie at the \fIburst armor/air\fR interface,
|
||||
and if it's -5.5,
|
||||
the burst point will lie 5.5 units inside the air compartment from the
|
||||
back surface of the armor.
|
||||
.Ce
|
||||
.H 4 "Exterior Bursting"
|
||||
.sp
|
||||
If \fIburst distance\fR is greater than zero,
|
||||
the first component encountered along the shotline will trigger a
|
||||
burst point,
|
||||
regardless of its ident code,
|
||||
that will be located \fIburst distance\fR
|
||||
in front of the shotline \fIentry\fR point.
|
||||
This technique simulates the behavior of a fragmenting munition with
|
||||
a \fIstandoff\fR fuzing such that detonation is triggered before
|
||||
the collision of the warhead with the target.
|
||||
The \fIburst distance\fR is set to imitate the built in \fIstandoff\fR
|
||||
of the warhead.
|
||||
When employing \fIexterior bursting\fR methods,
|
||||
\fIburst armor\fR and \fIburst air\fR are not used.
|
||||
.sp
|
||||
.H 3 "Sampling Cone Half Angle"
|
||||
.Cs "/burst points/bursting parameters/cone-half-angle"
|
||||
To limit the solid angle within which burst rays will be generated,
|
||||
the user may specify a \fIcone half angle\fR.
|
||||
This angle represents the degrees (in floating point) from the \fIaxis\fR of
|
||||
the cone to its limiting surface.
|
||||
The default value for the \fIcone half angle\fR is 45 degrees.
|
||||
.Ce
|
||||
.H 3 "Deflected Sampling Cone"
|
||||
.Cs "/burst points/bursting parameters/deflect-spall-cone"
|
||||
The spall cone axis is,
|
||||
by default,
|
||||
aligned with the shotline.
|
||||
In reality,
|
||||
the center of mass of the spall cloud would be between the shotline direction
|
||||
and the exit normal of the shotline from the spalling component.
|
||||
By aligning the spall cone axis with a vector halfway between the shotline
|
||||
and the exit normal,
|
||||
a narrower cone half angle can be used and still sample within the solid
|
||||
angle of interest.
|
||||
This technique can therefore be used to cut down on the number of rays
|
||||
calculated without lowering the sampling density.
|
||||
The
|
||||
.Co deflect-spall-cone
|
||||
command takes a \fIyes\fR or \fIno\fR argument about whether or not
|
||||
to divert the cone axis.
|
||||
.Ce
|
||||
.H 3 "Number of Sampling Rays"
|
||||
.Cs "/burst points/bursting parameters/max-spall-rays"
|
||||
The sampling ray density within the spall cone is controlled by specifying
|
||||
the maximum number of rays desired.
|
||||
Due to the uniform distribution algorithm employed,
|
||||
the number of rays calculated will be slightly less.
|
||||
.Ce
|
||||
.H 3 "Maximum Barriers"
|
||||
.Cs "/burst points/bursting parameters/max-barriers"
|
||||
For munitions known to have limited penetration capability,
|
||||
the user may set a limit on the number of burst ray intersections reported.
|
||||
The effect of setting this parameter is to reduce the size of the
|
||||
burst point library (see \fBBurst Point Library\fR) by limiting the
|
||||
number of components that will be reported per burst ray.
|
||||
By default,
|
||||
up to 100 components are reported,
|
||||
as it is not expected that this number will be reached under normal
|
||||
circumstances.
|
||||
.Ce
|
||||
.H 1 "Input File Options"
|
||||
.H 2 "Target-Related Input Files"
|
||||
.Cs "/target files"
|
||||
This group of commands is for specification of target-specific input files.
|
||||
.Ce
|
||||
.H 3 "Target Data Base File"
|
||||
.Cs "/target files/target-file"
|
||||
The input of the target's \*(m) file is accomplished with this command.
|
||||
Note that only one data base may be read in during a given \fIsession\fR.
|
||||
If the user wishes to change the target once the
|
||||
.Co execute
|
||||
command has been given,
|
||||
he must exit the \*(b) program and start a new \fIsession\fR.
|
||||
.Ce
|
||||
.Cs "/target files/target-objects"
|
||||
After specifying the \*(m) file,
|
||||
the user must list all of the objects in the \*(m) hierarchy that he
|
||||
wishes to be included in his analysis.
|
||||
The objects must be listed as arguments to one
|
||||
.Co target-objects
|
||||
command with spaces or tabs as separators.
|
||||
Note that only one list of objects may be loaded per \fIsession\fR,
|
||||
however,
|
||||
they do not get loaded until the
|
||||
.Co execute
|
||||
command is given.
|
||||
.Ce
|
||||
.H 3 "Ident List Input Files"
|
||||
.sp
|
||||
\fIIdents\fR refer to the \fIregion ident\fR code from the \*(m) file.
|
||||
Lists of \fIidents\fR may be specified singly or as ranges.
|
||||
Individual \fIidents\fR must appear as one per line,
|
||||
but ranges are specified by two numbers on a line that are
|
||||
separated by one or more of the following characters: comma, hyphen, colon,
|
||||
semicolon, space, or tab.
|
||||
Figure 6 shows an example of such a file.
|
||||
.DS
|
||||
.sp
|
||||
.so ids.mm
|
||||
.FG "Ident List File Format"
|
||||
.sp
|
||||
.DE
|
||||
.Ce
|
||||
.H 4 "Burst-Armor and Burst-Air Ident Files"
|
||||
.sp
|
||||
.Cs "/target files/burst-armor-file"
|
||||
.Cs "/target files/burst-air-file"
|
||||
When interior burst points are to be generated along a shotline
|
||||
(see \fBInterior Bursting\fR) a file of \fIburst armor\fR idents and
|
||||
\fIburst air\fR idents must be input.
|
||||
If a shotline intersects a component whose \fIident\fR has been input
|
||||
as a \fIburst armor\fR and it is immediately followed by \fIburst air\fR
|
||||
a burst point will be triggered.
|
||||
.Ce
|
||||
.H 4 "Critical Component Idents"
|
||||
.Cs "/target files/critical-comp-file"
|
||||
Whether interior or exterior bursting is being employed,
|
||||
information about components hit by burst rays will only be output
|
||||
for rays that hit \fIcritical components\fR.
|
||||
The file name containing a list of \fIcritical component\fR idents must
|
||||
therefore be input by this command if burst points are to be generated.
|
||||
.Ce
|
||||
.H 3 "Color Mapping Input File"
|
||||
.Cs "/target files/color-file"
|
||||
This command allows users to assign colors to component idents for graphics
|
||||
options,
|
||||
in particular,
|
||||
the
|
||||
.Co image-file
|
||||
and
|
||||
.Co plot-file
|
||||
commands.
|
||||
The format of this file is 5 numbers per line separated by blanks or tabs.
|
||||
The first number is the low end of an ident range and the second number is
|
||||
the high end of the range (both numbers are inclusive).
|
||||
This range is mapped to the color specified by the last 3 numbers on the
|
||||
line that are red, green, and blue components of the color (values for
|
||||
these components must be between 0 and 255 inclusive).
|
||||
Figure 7 shows an example of such a file.
|
||||
.DS
|
||||
.sp
|
||||
.so cmap.mm
|
||||
.FG "Color Mapping File Format"
|
||||
.sp
|
||||
.DE
|
||||
.Ce
|
||||
.H 2 "Project-Related Input Files"
|
||||
.H 3 "Reading Session Files"
|
||||
.Cs "/project files/read-input-file"
|
||||
This command reads an \fIinput\fR file of commands.
|
||||
These files can be generated manually by using a text editor or
|
||||
saved from a \fIsession\fR file with the
|
||||
.Co write-input-file
|
||||
command.
|
||||
See the section called \fBCommand Input\fR for the format of this
|
||||
file.
|
||||
.Ce
|
||||
.H 3 "Shotline and Burst Point Input Files"
|
||||
.sp
|
||||
For an explanation of commands for reading in files of shotline or burst
|
||||
point coordinates,
|
||||
see the sections called \fBInput Discrete Shots\fR and
|
||||
\fBInput Discrete Burst Points\fR.
|
||||
.Ce
|
||||
.H 1 "Output File Options"
|
||||
.Cs "/project files"
|
||||
The following commands will turn on optional output.
|
||||
By default,
|
||||
no output is produced except error logging (see \fBError Log\fR),
|
||||
unless an output file is specified with the appropriate command.
|
||||
Any combination of output options may be specified for a particular run.
|
||||
Note that specifying an output file will cause an existing file with that
|
||||
name to be truncated to zero length.
|
||||
Therefore,
|
||||
only one such command should be entered per \fIsession\fR for a particular file
|
||||
name.
|
||||
Multiple runs during a \fIsession\fR will append to the same files if
|
||||
intervening commands to change the output file name are not given,
|
||||
except for the graphics files as explained below.
|
||||
Note that there is no way to append to a file created by a previous
|
||||
\fIsession\fR of the \*(b) program,
|
||||
but these files may be concatenated after the fact by using the
|
||||
\*(U)
|
||||
.Ud cat 1
|
||||
utility.
|
||||
.Ce
|
||||
.H 2 "Burst Point Library File"
|
||||
.Cs "/project files/burst-file"
|
||||
This command will open the named file for creating a burst point library.
|
||||
If the file exists,
|
||||
it will be truncated by this command.
|
||||
\fBAppendix A\fR describes the format for these files.
|
||||
.Ce
|
||||
.H 2 "Shotline File"
|
||||
.Cs "/project files/shotline-file"
|
||||
This command will open the named file for creating a shotline file.
|
||||
If the file exists,
|
||||
it will be truncated by this command.
|
||||
\fBAppendix B\fR describes the format for these files.
|
||||
.Ce
|
||||
.H 2 "\*(U) Plot File"
|
||||
.Cs "/project files/plot-file"
|
||||
This command generates a \*(U) plot file,
|
||||
using \*(B) extensions to the standard format.
|
||||
This option is useful for examining the shotline and burst ray information
|
||||
graphically as a three-dimensional vector plot.
|
||||
Due to constraints inherent in the \*(U) plot format,
|
||||
these plots must be displayed as a post-process step by using
|
||||
a \*(B) plotting utility such as \fBpl-sgi\fR or \fBpl-fb\fR.
|
||||
Because some of these display programs do not support multiple plots
|
||||
per file,
|
||||
the file name should be changed between runs.
|
||||
Table 3 describes the color mapping associated with these plots.
|
||||
.DF
|
||||
.sp
|
||||
.TB "Color Key for \s-1UNIX\s0 \*(Tm Plots"
|
||||
.so plot.mm
|
||||
.sp
|
||||
.DE
|
||||
.P
|
||||
If the user has specified a color mapping file with the
|
||||
.Co color-file
|
||||
command,
|
||||
then those colors will be used rather than the above colors for
|
||||
all shotline/ray intersections.
|
||||
.Ce
|
||||
.H 2 "Frame Buffer Image"
|
||||
.Cs "/project files/image-file"
|
||||
This option will generate a color image that provides the user with
|
||||
immediate feedback about a run.
|
||||
The grid is displayed graphically and each cell location is dynamically
|
||||
color coded to show its current status.
|
||||
Table 4 describes the color mapping associated with the grid.
|
||||
.DF
|
||||
.sp
|
||||
.TB "Color Key for Frame Buffer Image"
|
||||
.so fb.mm
|
||||
.sp
|
||||
.DE
|
||||
.P
|
||||
In addition to the above cell colors, hits on critical components by burst
|
||||
rays are depicted as a colored pixel projected into grid
|
||||
space from the intersection point where the ray enters the component.
|
||||
Colors for the components are mapped from ident numbers according to the
|
||||
table specified by the user with the
|
||||
.Co "/target files/color-file"
|
||||
directive and shaded using a lighting model illuminated from the viewing
|
||||
direction.
|
||||
.H 2 "Grid File"
|
||||
.Cs "/project files/grid-file"
|
||||
This command will store each shotline coordinate generated during the run
|
||||
as grid offsets.
|
||||
These files can later be read in to replicate a previous run's grid or discrete
|
||||
shots by using the
|
||||
.Co read-2d-shot-file
|
||||
command.
|
||||
This capability is especially useful when \fIdithered\fR shotlines have been
|
||||
used and it is desired that the same shotlines be used in another run.
|
||||
Note that the shotline intersection information is not saved,
|
||||
just the grid offsets for each shotline.
|
||||
.Ce
|
||||
.H 2 "Script File"
|
||||
.Cs "/project files/write-input-file"
|
||||
During a \fIsession\fR,
|
||||
all commands are saved in a temporary file.
|
||||
The
|
||||
.Co write-input-file
|
||||
command will create a \fIsnapshot\fR of this \fIsession\fR file,
|
||||
that can later be used to recreate the current \fIsession\fR
|
||||
up to the point when the file was written.
|
||||
The \fIsession\fR or \fIinput\fR files
|
||||
can later be used in one of two ways: either read in with the
|
||||
.Co read-input-file
|
||||
command,
|
||||
or supplied on the standard input of the \*(b) program.
|
||||
Note that the
|
||||
.Co write-input-file
|
||||
and
|
||||
.Co read-input-file
|
||||
commands will not be included in the \fIinput\fR files,
|
||||
but the commands read in by the latter \fIwill\fR.
|
||||
.Ce
|
||||
.H 2 "Error Log"
|
||||
.Cs "/project files/error-file"
|
||||
This command is useful to save errors in a log file and prevent copious
|
||||
ray tracer diagnostics from scrolling by on the screen.
|
||||
This option is especially useful if using the batch mode of execution
|
||||
so that the terminal is not tied up by program output.
|
||||
If no error log is specified,
|
||||
diagnostic messages will appear in the scrolling window or,
|
||||
if in batch mode,
|
||||
on the \*(b) program's standard error output.
|
||||
.Ce
|
||||
.H 2 "Histogram File"
|
||||
.Cs "/project files/histogram-file"
|
||||
This command generates a frequency histogram to the named file.
|
||||
The file format is simply one number per line; each number is a count
|
||||
of critical components hit by an individual burst ray.
|
||||
This file can easily be post-processed to display a histogram,
|
||||
for instance,
|
||||
how many rays hit zero, one, two, three, etc. components.
|
||||
.Ce
|
||||
.H 1 Conclusion
|
||||
There is a large, and rapidly growing, collection of highly detailed \*(m)
|
||||
models due to the widespread use of the highly portable \*(B) package.
|
||||
The \*(b) program gives the \*(F) community the option of analyzing \*(m)
|
||||
models.
|
||||
This, along with the \*(F) to \*(m) translator will permit an easy transition
|
||||
of the Air Force to the \*(B) system.
|
||||
Then,
|
||||
productivity in the target description arena,
|
||||
that has long been a bottleneck to the vulnerability and lethality analyst,
|
||||
will increase dramatically.
|
||||
Another benefit will be increased accuracy of results due to the superior
|
||||
detail and accuracy afforded by a true combinatorial solid geometry modeler.
|
||||
.H 1 Acknowledgments
|
||||
The author would like to thank Leonard E. Bruenning, Jr. of Sverdrup
|
||||
Technology, Inc. for his thorough, concise and well-illustrated
|
||||
documentation\*F of the requirements to be met by the \*(b) program
|
||||
and for his courteous and professional manner in fielding related questions.
|
||||
.FS
|
||||
Leonard E. Bruenning,
|
||||
"Interface Control Document for BURST Ray Generator Computer Program",
|
||||
\fBTechnical Report\fR,
|
||||
prepared for: Department of the Air Force,
|
||||
Armament Division,
|
||||
Eglin AFB,
|
||||
FL 32542-5000,
|
||||
14 December 1988.
|
||||
.FE
|
||||
.H 1 Appendices
|
||||
Both burst point library files and shotline files are composed
|
||||
of single-line records.
|
||||
Each line begins with a digit that identifies the type of record it represents.
|
||||
Both file formats are composed of one or more \fIruns\fR that begin with a
|
||||
\fIrun header\fR.
|
||||
Each shotline that intersects the target will result in a
|
||||
\fIshotline header\fR that is followed by one or
|
||||
more \fIshotline intersection\fR records.
|
||||
These record types exist for both file formats,
|
||||
but they do not contain the same information.
|
||||
Burst point library files have two additional record types,
|
||||
\fIburst ray headers\fR and \fIburst ray intersections\fR.
|
||||
If a burst point occurs along a shotline,
|
||||
the \fIburst ray header\fR will immediately follow that shotline's last
|
||||
intersection record.
|
||||
Each \fIburst ray header\fR records will be immediately followed by
|
||||
\fIburst ray intersection\fR records,
|
||||
one for each ray that strikes a \fIcritical component\fR.
|
||||
.bp
|
||||
.H 2 "Appendix A: Burst Point Library File Format"
|
||||
Below is a description of the format of the burst point library files that
|
||||
are generated if the
|
||||
.Co burst-file
|
||||
command is used.
|
||||
.DS
|
||||
.so bpl.mm
|
||||
.DE
|
||||
.bp
|
||||
.H 2 "Appendix B: Shotline File Format"
|
||||
Below is a description of the format of the shotline files that are
|
||||
generated if the
|
||||
.Co shotline-file
|
||||
command is used.
|
||||
.DS
|
||||
.so shotlines.mm
|
||||
.DE
|
||||
.de TX
|
||||
.ce
|
||||
TABLE OF CONTENTS \" define header for TOC page
|
||||
..
|
||||
.de TY \" suppress default TOC header
|
||||
..
|
||||
.TC
|
||||
.\" .CS
|
||||
@@ -0,0 +1,12 @@
|
||||
.TS
|
||||
center,box;
|
||||
l.
|
||||
4001 4003 255 255 0 # Fuel
|
||||
4050 4050 255 255 0 # Fuel
|
||||
8000 8001 255 100 255 # Ammo
|
||||
100 165 150 255 100 # Hull armor
|
||||
610 619 220 150 100 # Commander
|
||||
720 729 220 150 100 # Gunner
|
||||
830 839 220 150 100 # Loader
|
||||
940 949 220 150 100 # Driver
|
||||
.TE
|
||||
@@ -0,0 +1,55 @@
|
||||
.so defs.mm
|
||||
.ps -2
|
||||
.vs -2
|
||||
.TS
|
||||
center,allbox,tab(@);
|
||||
cb cb cb
|
||||
_ _ _
|
||||
cb ci c.
|
||||
COMMAND@ARGUMENTS@DESCRIPTION
|
||||
attack-direction@azim_angle elev_angle@specify azimuth and elevation of attack relative to target
|
||||
burst-air-file@file@input burst air idents from \fIfile\fR
|
||||
burst-armor-file@file@input burst armor idents from \fIfile\fR
|
||||
burst-coordinates@X Y Z@input single burst point location in target coordinates
|
||||
burst-distance@distance@offset burst point along shotline (see \fBBurst Distance\fR)
|
||||
burst-file@file@output burst point library to \fIfile\fR
|
||||
cell-size@distance@specify shotline separation (equidistant horizontal and vertical)
|
||||
color-file@file@input ident to color mapping from \fIfile\fR (for graphics)
|
||||
cone-half-angle@angle@specify limiting angle for spall ray generation
|
||||
critical-comp-file@file@input critical component idents from \fIfile\fR
|
||||
deflect-spall-cone@flag@deflect axis of spall cone half way towards exit normal
|
||||
dither-cells@flag@if \fIyes\fR, randomly offset shotline within grid cell
|
||||
enclose-target@@generate rectangular grid of shotlines for full target envelope
|
||||
enclose-portion@left right bottom top@T{
|
||||
generate partial envelope by specifying grid boundaries
|
||||
T}
|
||||
error-file@file@divert all diagnostics to \fIfile\fR
|
||||
execute@@initiate a run (no output produced without this command)
|
||||
grid-file@file@save shotline locations (Y' Z') in \fIfile\fR
|
||||
ground-plane@flag [Z +X -X +Y -Y]@T{
|
||||
if \fIyes\fR, burst on ground (see \fBGround Plane Bursting\fR).
|
||||
T}
|
||||
histogram-file@file@write hit frequency histogram to \fIfile\fR
|
||||
image-file@file@generate frame buffer image on specified \fIfile\fR or device
|
||||
input-2d-shot@Y' Z'@input single shotline location as grid offsets
|
||||
input-3d-shot@X Y Z@input single shotline location in target coordinates
|
||||
max-barriers@count@specify the maximum number of components to report along spall ray
|
||||
max-spall-rays@count@specify the desired number of spall rays generated per burst point
|
||||
plot-file@file@generate \*(U) plot in \fIfile\fR
|
||||
read-2d-shot-file@file@read shot locations from \fIfile\fR as grid offsets (see \fBinput-2d-shot\fR)
|
||||
read-3d-shot-file@file@read shot locations from \fIfile\fR in target coords. (see \fBinput-3d-shot\fR)
|
||||
read-burst-file@file@read burst point locations from \fIfile\fR (see \fBburst-coordinates\fR)
|
||||
read-input-file@file@read key word commands from \fIfile\fR
|
||||
report-overlaps@flag@if \fIyes\fR, log overlap diagnostics
|
||||
shotline-burst@flag [flag]@T{
|
||||
if \fIyes\fR, generate burst points along shotlines (see \fBBurst on Contact\fR).
|
||||
T}
|
||||
shotline-file@file@output shot line data to \fIfile\fR
|
||||
target-file@file@read \*(m) data base from \fIfile\fR
|
||||
target-objects@object0 [object1 object2 ...]@list objects from \*(m) data base to interrogate
|
||||
units@name@linear units (\fIinches,feet,millimeters,centimeters,meters\fR)
|
||||
write-input-file@file@save script of commands in \fIfile\fR
|
||||
#@@any line beginning with the `\fB#\fR' character is a comment
|
||||
.TE
|
||||
.ps +2
|
||||
.vs +2
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user