Compare commits

..
49 Commits
Author SHA1 Message Date
Clifford Yapp 56d5e320dc Should be done with this branch now. (svn branch delete)
svn:revision:62159
svn:branch:bottie
svn:account:starseeker
2014-08-15 13:15:10 +00:00
Erik Greenwald 234f57103e MFC 42842
svn:revision:42883
svn:branch:bottie
svn:account:erikgreenwald
2011-02-02 14:20:27 +00:00
Erik Greenwald 9719bde58e mimic rt_bot_minpieces for TIE algorithm
svn:revision:42849
svn:branch:bottie
svn:account:erikgreenwald
2011-02-01 21:35:17 +00:00
Erik Greenwald 74c8984713 throw in the global variables
svn:revision:42814
svn:branch:bottie
svn:account:erikgreenwald
2011-01-31 23:06:37 +00:00
Erik Greenwald b607d0fe57 incorporate changes from trunk
svn:revision:42800
svn:branch:bottie
svn:account:erikgreenwald
2011-01-31 20:36:19 +00:00
Erik Greenwald 0998a26201 warning quellage
svn:revision:42737
svn:branch:bottie
svn:account:erikgreenwald
2011-01-28 21:58:56 +00:00
Erik Greenwald 2dea1a87c5 MFC 42604
svn:revision:42609
svn:branch:bottie
svn:account:erikgreenwald
2011-01-25 23:23:11 +00:00
Erik Greenwald 062f52ede2 MFC 42305
svn:revision:42306
svn:branch:bottie
svn:account:erikgreenwald
2011-01-15 19:46:41 +00:00
Erik Greenwald 58eef97515 remote hitsort (should already be sorted from tie). test for maxhits earlier.
svn:revision:41904
svn:branch:bottie
svn:account:erikgreenwald
2011-01-03 18:40:30 +00:00
Erik Greenwald ff5f34cb44 de-HIDDEN rt_bot_makesegs() so btg.c can call it (didn't show up in debug build, but does in optimized)
svn:revision:41843
svn:branch:bottie
svn:account:erikgreenwald
2010-12-29 21:14:50 +00:00
Erik Greenwald efec572b7c force min/max instead of trusting them to be 0ish
svn:revision:41842
svn:branch:bottie
svn:account:erikgreenwald
2010-12-29 20:47:14 +00:00
Erik Greenwald 8ec4046775 add tri_specific for segment normal info
svn:revision:41840
svn:branch:bottie
svn:account:erikgreenwald
2010-12-29 20:23:40 +00:00
Erik Greenwald 022c30c391 renormalize against trunk as well as possible
svn:revision:41822
svn:branch:bottie
svn:account:erikgreenwald
2010-12-28 23:03:18 +00:00
Erik Greenwald 9b0cc79190 MFC 41816
svn:revision:41821
svn:branch:bottie
svn:account:erikgreenwald
2010-12-28 22:06:35 +00:00
Erik Greenwald 25147f58d8 MFC 41816
svn:revision:41820
svn:branch:bottie
svn:account:erikgreenwald
2010-12-28 22:01:27 +00:00
Erik Greenwald d6e65d2cf5 MFC 41816
svn:revision:41819
svn:branch:bottie
svn:account:erikgreenwald
2010-12-28 21:58:38 +00:00
Erik Greenwald b42637c409 MFC 41816
svn:revision:41818
svn:branch:bottie
svn:account:erikgreenwald
2010-12-28 21:52:14 +00:00
Erik Greenwald c20684b379 MFC 41816
svn:revision:41817
svn:branch:bottie
svn:account:erikgreenwald
2010-12-28 21:48:08 +00:00
Erik Greenwald e8c89b3daa rearrange some stuff, clean things up
svn:revision:41540
svn:branch:bottie
svn:account:erikgreenwald
2010-12-07 19:53:08 +00:00
Erik Greenwald 78e69f6cd7 remove old cache stuff
svn:revision:41532
svn:branch:bottie
svn:account:erikgreenwald
2010-12-07 14:00:50 +00:00
Erik Greenwald cf152223e0 don't print info from lib
svn:revision:41474
svn:branch:bottie
svn:account:erikgreenwald
2010-11-29 22:08:24 +00:00
Erik Greenwald ad946abb5b split actual bbox info from fuzzed info
svn:revision:41473
svn:branch:bottie
svn:account:erikgreenwald
2010-11-29 22:07:19 +00:00
Erik Greenwald abcf4a4014 migrate data packing for tie into the prep phase instead of the load phase
svn:revision:41472
svn:branch:bottie
svn:account:erikgreenwald
2010-11-29 21:59:00 +00:00
Erik Greenwald 01ba252bf0 set freed memory ptr to NULL
svn:revision:41471
svn:branch:bottie
svn:account:erikgreenwald
2010-11-29 19:49:02 +00:00
Erik Greenwald 4f9d57efb3 actually return the newly allocated memory from the alloc func...
svn:revision:41470
svn:branch:bottie
svn:account:erikgreenwald
2010-11-29 19:47:28 +00:00
Erik Greenwald edee29be28 cleaning up some merge issues
svn:revision:41404
svn:branch:bottie
svn:account:erikgreenwald
2010-11-19 14:23:10 +00:00
Erik Greenwald e38887bf2d MFC 41388
svn:revision:41389
svn:branch:bottie
svn:account:erikgreenwald
2010-11-17 13:54:39 +00:00
Erik Greenwald b3f4626319 MFC 41333
svn:revision:41349
svn:branch:bottie
svn:account:erikgreenwald
2010-11-15 15:06:04 +00:00
Erik Greenwald c841db93d8 test for bad data field
svn:revision:40969
svn:branch:bottie
svn:account:erikgreenwald
2010-10-12 17:06:40 +00:00
Erik Greenwald bd6e7cae51 test to see if malloc succeeded.
svn:revision:40968
svn:branch:bottie
svn:account:erikgreenwald
2010-10-12 17:05:34 +00:00
Erik Greenwald 7a9dcd5be0 force double mode
svn:revision:40967
svn:branch:bottie
svn:account:erikgreenwald
2010-10-12 17:03:26 +00:00
Erik Greenwald 80a0f58562 meh, more changes
svn:revision:40547
svn:branch:bottie
svn:account:erikgreenwald
2010-09-13 14:55:38 +00:00
Erik Greenwald 876c7b0c40 construct more stuff in prep, and use it in shoot
svn:revision:40546
svn:branch:bottie
svn:account:erikgreenwald
2010-09-13 13:47:41 +00:00
Erik Greenwald 3f32ee7540 start wiring together the hit shtuff
svn:revision:40443
svn:branch:bottie
svn:account:erikgreenwald
2010-09-02 21:04:08 +00:00
Erik Greenwald 7bc82a0ef9 return value of prep. Do not call prep in import5.
svn:revision:40438
svn:branch:bottie
svn:account:erikgreenwald
2010-09-02 19:53:01 +00:00
Erik Greenwald adfc323aa4 wire up vertex data and call bottie push
svn:revision:40436
svn:branch:bottie
svn:account:erikgreenwald
2010-09-02 19:48:09 +00:00
Erik Greenwald fecc00dcff update prototypes
svn:revision:40435
svn:branch:bottie
svn:account:erikgreenwald
2010-09-02 19:47:12 +00:00
Erik Greenwald 8dc5fa5d72 MFC 39973:40402
svn:revision:40410
svn:branch:bottie
svn:account:erikgreenwald
2010-09-01 18:28:54 +00:00
Erik Greenwald 237189ff60 add stubs to move to the glue style thing. Still needs an interface layer to abstract the type specific typedef stuff, but closer to non-hack, methinks.
svn:revision:40152
svn:branch:bottie
svn:account:erikgreenwald
2010-08-13 17:08:04 +00:00
Erik Greenwald 915d91abc7 start wiring up conditional TIE execution
svn:revision:40119
svn:branch:bottie
svn:account:erikgreenwald
2010-08-11 21:31:35 +00:00
Erik Greenwald 51b04d211c bind the TIE instances
svn:revision:40118
svn:branch:bottie
svn:account:erikgreenwald
2010-08-11 21:31:20 +00:00
Erik Greenwald 2c42dfaca1 stub the TIE instance into both bot representations.
svn:revision:40117
svn:branch:bottie
svn:account:erikgreenwald
2010-08-11 21:31:06 +00:00
Erik Greenwald 41795f11cb reflect the exodus of tie from this dark twisty maze
svn:revision:40112
svn:branch:bottie
svn:account:erikgreenwald
2010-08-11 19:41:51 +00:00
Erik Greenwald c9f61eb6ac add tie.h to the list
svn:revision:40111
svn:branch:bottie
svn:account:erikgreenwald
2010-08-11 19:40:52 +00:00
Erik Greenwald a2f2adf17e compile in the tie stuff with float/double hack
svn:revision:40110
svn:branch:bottie
svn:account:erikgreenwald
2010-08-11 19:40:17 +00:00
Erik Greenwald f75b6e7b1a move tie.h into include/
svn:revision:40109
svn:branch:bottie
svn:account:erikgreenwald
2010-08-11 19:39:16 +00:00
Erik Greenwald 41196e36ed move tie engine into librt
svn:revision:40103
svn:branch:bottie
svn:account:erikgreenwald
2010-08-11 13:55:39 +00:00
Erik Greenwald 017e03bf20 MFC
svn:revision:40101
svn:branch:bottie
svn:account:erikgreenwald
2010-08-11 13:42:09 +00:00
Erik Greenwald 48ba96c560 Bottie.
svn:revision:39973
svn:branch:bottie
svn:account:erikgreenwald
2010-07-30 13:43:21 +00:00
14122 changed files with 1774664 additions and 3120011 deletions
+1 -4
View File
@@ -1,4 +1 @@
/bin
/lib
/build
/testing
/.deps␍/Makefile␍/Makefile.in␍/aclocal.m4␍/autom4te.cache␍/config.*␍/configure␍/install.*.log␍/libtool␍/ltmain.sh␍/so_locations␍/.settings␍/.project␍/.cdtproject␍/.cproject
+43 -457
View File
@@ -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 Writers
* Code Contributors
* Special Thanks
@@ -60,7 +60,7 @@ Open Source Point of Contact
Morrison, Christopher Sean <morrison@brlcad.org>
U.S. Army Research Laboratory Point of Contact
Yapp, Cliff
Davisson, Edwin O. <davisson@arl.army.mil>
DEVELOPERS
@@ -141,7 +141,7 @@ nicknames gdurf
1992 August
ARL Student Hire / Carnegie Mellon University
Anderson, John R. <jra@arl.army.mil>
Anderson, John R. <jra@arl.army.mil> **
nicknames jra, johnranderson
1993 May
U.S. Army Ballistic Research Laboratory
@@ -206,34 +206,6 @@ nicknames starseeker
2007 September
Open Source
Quantum Research International, Inc.
U.S. Army Research Laboratory
Bowman, W. Keith **
nicknames indianlarry
SURVICE Engineering, Inc.
U.S. Army Research Laboratory
Weiss, Richard **
nicknames r_weiss
2008 December
U.S. Army Research Laboratory
Browder, Thomas M. Jr. **
nicknames tbrowder2
2008 June
ManTech International Corporation
Open Source
Reed, Nicholas **
nicknames n_reed
2008 July
ARL Student Hire / University of Maryland, Baltimore County
Quantum Research International, Inc.
Moore, Jr., Carl G. **
nicknames cmoore, carlmoore
2011 October
U.S. Army Research Laboratory
MATHEMATICAL, ALGORITHMIC, AND GEOMETRIC SUPPORT
@@ -246,7 +218,7 @@ U.S. Army Ballistic Research Laboratory
Davisson, Edwin O. **
U.S. Army Research Laboratory
Rogers, David
Rodgers, David
U.S. Naval Academy
Stiller, Peter
@@ -268,8 +240,8 @@ Weaver, Stephanie 'Rain' **
ARL Student Hire / Bridgewater College
DOCUMENTATION, ARTWORK, AND WEBSITE CONTRIBUTORS
------------------------------------------------
DOCUMENTATION WRITERS
---------------------
Weaver, Earl P.
1980
@@ -279,15 +251,15 @@ Schueler, Betty J.
Edwards, Eric
SURVICE Engineering, Inc.
Open Source (Doc Camp)
Kregel, Dwayne
SURVICE Engineering, Inc.
Leverington, Robert
nicknames MinuteElectron
2007 June
Yapp, Cliff **
nicknames starseeker
2007 September
Open Source
Quantum Research International, Inc.
Harder, Brad
nicknames yukonbob, bharder, bch
@@ -298,93 +270,11 @@ Gettier, Janine
2008 October
SURVICE Engineering, Inc.
Ilya
nicknames ilya
2008 December
Open Source
Giudice, Jesica
nicknames jesica Nohla giudicejesica
2009 December
Open Source
Jansa, Pavel
nicknames pawleeq
2011 November
Open Source
Mgebrova, Karen
2012 February
Open Source
Elnazli, Cezar
nicknames caen23
2012 November
Open Source (GCI)
Burroughs, Jacob
nicknames maths22
2012 November
Open Source (GCI)
Stoyanova, Stefi
2012 November
Open Source (GCI)
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)
CODE CONTRIBUTIONS
------------------
@@ -501,6 +391,11 @@ ARL Student Hire / Johns Hopkins University
Yemc, David J.
Johns Hopkins University Applied Physics Laboratory
Bowman, W. Keith
nicknames indianlarry
SURVICE Engineering, Inc.
U.S. Army Research Laboratory
Anderson, David
SGI
@@ -513,9 +408,7 @@ nicknames mjgillich mgillich
U.S. Army Research Laboratory
Howard, Doug
nicknames dhoward
SURVICE Engineering, Inc.
2006 April
Silva, Prasad Prometheus
nicknames prasad_silva
@@ -533,11 +426,6 @@ nicknames joevalleyfield
2007 April
U.S. Army Research Laboratory
Li, Dongxu
nicknames dongxu_li dli
2007 April
Open Source
Poole, Ben
nicknames poolio
2007 June
@@ -568,11 +456,21 @@ nicknames homovulgaris, madant
2008 June
Open Source (GSoC)
Reed, Nicholas
nicknames n_reed
2008 July
ARL Student Hire / University of Maryland, Baltimore County
Saunders, Benjamin
nicknames Ralith, ralith
nicknames Ralith
2008 July
Open Source
Weiss, Richard
nicknames r_weiss
2008 December
U.S. Army Research Laboratory
Knaute, Philip
2009 February
Industrieanlagen-Betriebsgesellschaft mbH (IABG)
@@ -589,268 +487,6 @@ ARL Student Hire / University of Maryland, Baltimore County
Shinn, Rob
2010 April
Open Source
nicknames Alexandrus
2010 July
Open Source
Hinesley, Brandon
nicknames bhinesley
2011 March
Open Source (GSoC)
Kunigami, Guilherme
nicknames kunigami
2011 March
Open Source (GSoC)
Jain, Sachin
2011 April
Open Source
Gerstner, Nick
2011 May
SURVICE Engineering, Inc.
Easterbrook, Zach
nicknames lainiwakurax
2011 July
Open Source
Nandy, Abhijit
nicknames abhi2011
2011 July
Open Source (SOCIS)
Silvko, Ksenija
nicknames ksuzee
2012 March
Open Source (GSoC)
Dueck, Chris R.
nicknames crdueck
2012 April
Open Source (GSoC)
Jianbang, Wu
nicknames phoenix, phoenixyjll
2012 April
Open Source (GSoC)
Precup, Cristina
nicknames cprecup
2012 April
Open Source (GSoC)
Murty, Anurag
nicknames anrgmrty
2012 May
Open Source (GSoC)
Oezdogan, Mesut
nicknames kane_
2012 May
Open Source (GSoC)
Taylor, Alex
nicknames Al_Da_Best, aldabest
2012 May
Open Source (GSoC)
Laijiren
nicknames plussai2008
2012 June
Open Source (GSoC)
Niculaescu, Oana
nicknames elf11
2012 August
Open Source (SOCIS)
Ungureanu, Silviu
nicknames Silvrous
2012 November
Open Source (GCI)
Kashyap, Akshay
nicknames Skriptkid
2012 November
Open Source (GCI)
Borisov, Dimitar
2012 November
Open Source (GCI)
Pal, Ambar
2012 November
Open Source (GCI)
Elnazli, Cezar
nicknames caen23
2012 November
Open Source (GCI)
Huang, Michael
nicknames fernozzle
2012 November
Open Source (GCI)
nicknames Reikaze
2012 December
Open Source (GCI)
Phillips, Lachlan
2012 December
Open Source (GCI)
Calle, Adrián Arroyo
2012 December
Open Source (GCI)
Keesing, Aaron
nicknames agkphysics
2012 December
Open Source (GCI)
Govindjee, Arjun
2012 December
Open Source (GCI)
Nagy, Csaba
nicknames ncsaba
2013 April
Open Source
Check, Nyah
nicknames Ch3ck
2013 July
Open Source (GSoC)
Shah, Kesha
nicknames keshashah
2013 April
Open Source (GSoC)
Bogolin, Vlad
nicknames vladbogo
2013 May
Open Source (GSoC)
Kaur, Avneet
nicknames avneetkhalsa
2013 May
Open Source (GSoC)
Daga, Mohit
nicknames zero_level, mohitdaga
2013 June
Open Source (GSoC)
Kamga, Isaac
nicknames Izak, iiizzzaaakkk
2013 July
Open Source (GSoC)
Singh, Harmanpreet
nicknames harmanpreet
2013 May
Open Source (GSoC)
Huff, Emory
nicknames hknoll
2013 July
ARL Student Hire
Engbert, Jonathan
nicknames ejno
2013 July
Open Source
ARL Student Hire / University of Maryland, Baltimore County
Andrew
2013 November
Open Source (GCI)
Schulte, Johannes
2013 November
Open Source (GCI)
Amidon, Peter
nicknames peter-sa, Andromeda Galaxy
2013 November
Open Source (GCI)
Chiplunkar, Shardul
nicknames microchip
2013 November
Open Source (GCI)
Берегов, Станислав
2013 December
Open Source (GCI)
nicknames huskmate13
2014 January
Open Source
Granroth, Gustave
2014 May
Open Source
Jain, Rishub
2014 July
ARL Student Hire
Roberts, Mitchell
2014 July
ARL Student Hire
Bayes, Matthew
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)
SPECIAL THANKS
@@ -876,12 +512,12 @@ Kuehl, Gary
U.S. Army Ballistic Research Laboratory
Martin, Glenn E.
Northrop Research and Technology Center
Northrup Research and Technology Center
Willson, Stephen Hunter
Northrop Research and Technology Center
Northrup Research and Technology Center
Merritt, Don
Merrit, Don
nicknames merritt
1988 September
U.S. Army Ballistic Research Laboratory
@@ -983,7 +619,7 @@ Thomas, Balbir
Open Source
Remenak, Daniel T.
nicknames DTRemenak, Erroneous, dtremenak
nicknames DTRemenak, Erroneous
2005 July
California Institute of Technology
Open Source
@@ -1009,6 +645,11 @@ Open Source
Fiedler, Stefan
Open Source
Li, Dongxu
nicknames dongxu_li dli
2007 April
Open Source
Chang, Loui
nicknames louipc
2007 August
@@ -1031,6 +672,12 @@ nicknames ebautu
2008 April
Open Source
Browder, Jr., Thomas M.
nicknames tbrowder2
2008 June
ManTech SRS Technologies, Inc.
Open Source
Hocevar, Samuel
nicknames sam, sammy
2008 July
@@ -1097,67 +744,6 @@ nicknames epileg, jordisayol
2011 January
Open Source
Pitts, Christopher M.
nicknames cmpitts
2011 August
Open Source
Wang, Max
nicknames wmaanxg
2012 October
Open Source
Ha, An Tuan
2012 December
Open Source (GCI)
Singh, Gauravjeet
2012 December
Open Source (GCI)
Saxena, Amit
nicknames amit.daBeast
2012 December
Open Source (GCI)
Saini, Talwinder
nicknames talwindersaini
2013 July
Open Source
YuGin, Tan
2013 November
Open Source (GCI)
nicknames mandar
2013 December
Open Source (GCI)
Lotsu, Alexander
nicknames Alex
2013 December
Open Source (GCI)
Hyams, Daniel
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
CORPORATE AND ORGANIZATION SUPPORT
----------------------------------
@@ -1175,8 +761,8 @@ Night Vision & Electronic Sensors Directorate
U.S. Naval Academy
Northrop Corporation
Northrop Research and Technology Center
Northrup, Inc.
Norhtrup Research and Technology Center
SGI
formerly named Silicon Graphics, Inc.
+32 -181
View File
@@ -15,158 +15,6 @@ on-going issues.
Recent Bugs
-----------
* rtedge's overlay mode appears to be generating different results on
Windows and Linux for the m35 steering wheel (rtwizard rendering
mode D.)
* 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
* 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.
* 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.
example demonstrated to not work was: attr set obj rgb 123/123/123
* report of LIBBU not working when accessed by a multithreaded
application on Windows. reportedly due to some problem with the
debug memory queue.
* 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
unless you run "view size" to set it.
* overlay command reports an error when trying to load a file
names edges.pl, but succeeds when the file is called patches.pl
Need to see why edges.pl is not accepted.
* step-g crashing on mac with lazy symbol load failure missing:
brlcad::SurfaceTree::SurfaceTree(ON_BrepFace*, bool, int)
* metaball tessellation enters either an infinite loop or an absurdly
long tessellation process - observed on Linux 64 bit system - quick
test:
rm -f metaball.g && mged -c metaball.g "make m.s metaball; facetize m.bot m.s"
* corruption/crash issue rendering terra.g without terra.dsp,
possibly/probably parallel-related in libbn/noise.c's
bn_noise_turb() function. gdb eventually catches a segfault in
find_spec_wgt() loop with indications of corrupted memory. valgrind
confirms corrupted memory (8 bytes) after a build_spec_table()
realloc within find_spec_wgt() but it's not clear why. etbl
book-keeping seems okay.. corrupted read consistently detected on
spec_wgts = ep->spec_wgts line in bn_noise_turb(). observed on
64-bit linux system:
rm -f terra.pix && valgrind bin/rt -o terra.pix -P1 -H3 -s1024 share/brlcad/7.21.0/db/terra.g all.g
* mged 'joint' hold command isn't working. looks like the fp_names
book-keeping is fuxored or the db_lookup is returning NULL (or isn't
yet performed).
* idents command is reporting a bogus region count in the region
output table listing (first column).
* src/librt/primitives/bot/g_bot_include.c:rt_bot_bbox() routine isn't
calculating the bbox correctly
* 'exists' command documentation claims more than has been implemented
* rtxray crashes if you specify a -o *.bw output file due to
assumptions in the rt front-end that all output files are .pix
* raytracing a revolved sketch seems to work fine, but rtarea and gqa
seem to be crashing on that same revolve. curiously, the brep
revolve from the csgbrep proc-db has the same failure as well as the
brep ehy.
* encountered a crash during rtarea on a (default) facetized version
of the hyp from the proc-db csgbrep tool.
* raytracing rhc crashes (inside malloc, so previous memory badness)
with normal tolerance set to non-default value (e.g. tol norm 0.1);
also fails (non-crash) if absolute tolerance is changed (e.g., tol
abs 0.1)
* revolve raytracing seems to be busted.. at least with the example
csgbrep revolve shape
* torus with a near zero inner diameter results in zero-length edges
during tessellation.
* opening a database in archer with the same name as a command doesn't
work.
* 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
a file with unknown units.
* infinite loop in rt_find_backing_dist() raytracing a BoT (without
pieces) for bot_smooth (i.e., rt_bot_smooth()). encountered inf
loop on a jetski fastgen model that was solid but unoriented, with
about 8k faces. NOTE: possibly already have a fix for this bug
pending review and testing. --CSM
* run make to create all primitives at the origin. there are raytrace
differences, crashes, and overall bad behavior between default
ungrouped "e *" view and adding all of those primitives to a single
region. Script for creating all primitives via make command:
for i in `mged -c test.g make asdf asdf 2>&1 | awk '{print $12}' | sed 's/[<>|]/ /g'` ; do mged -c test.g make $i $i ; done
mged -c test.g "g primitives *"
mged -c test.g r primitives.r u primitives
rt -a 35 -e 25 test.g primitives
rt -a 35 -e 25 test.g primitives.r
* MGED on Mac OS X 10.6 mouse bindings fail to zoom in incrementally.
Pan, zoom out, and interactive zoom work. Shift-grip bindings need
to be verified.
@@ -182,14 +30,11 @@ Recent Bugs
* mged/tcl "gets" command doesn't work if you run the "source" command
to read in a script that uses gets on stdin. it just hangs until
multiple sigint's are received.
muliple sigint's are received.
* invoking mged from a system menu seems to be broken. reported by a
reliable ArchLinux user. probably exhibits cross-platform on KDE,
GNOME, or XFCE (but original environment is unknown). the bug is
undoubtedly related to mged's interactive and stdin/stdout input
detection where mged thinks it's being scripted (beginning on or
about mged.c:1150)
* mged 'cd' on Windows results in the rt* commands failing.
* menu invocation seems to be broken again (ArchLinux)
* Report of copy/paste not working with Tk on Windows Vista - does
work on Windows XP.
@@ -210,11 +55,6 @@ Recent Bugs
* Detailed BoT model ray trace image had incorrect background pixel
values in framebuffer, off slightly by one.
* ogl display manager still crashes on attach in mged on Mac OS X 10.5
* rt is consuming 100% CPU in fb_close() on a lingering ogl
framebuffer waiting to close. needs to sleep or select for a while.
* /dev/oglb 'copy mode' fails to refresh the framebuffer
* X display manager (and probably others) will lock up mged if you Z/B
@@ -229,7 +69,7 @@ Recent Bugs
* report of rt aborting randomly on 64-bit with camo shader.
* mged raytrace fails with simple "raytrace failed" message when using
rt, nirt, etc. on Windows after modifying a region. See sf bug
rt, nirt, etc on Windows after modifying a region. See sf bug
report 2954404.
* mged rrt command is not respecting the view size, just does
@@ -244,13 +84,15 @@ Recent Bugs
* vdeck truncates the region names in the 'regions' file, probably
wrong bu_strlcpy() length.
* hyp tessellation routine creates bot that does not raytrace
* hyp tesselation routine creates bot that 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.
and trivally causes problems with the cursor and text injection.
* ogl display manager still crashes on attach in mged on Mac OS X 10.5
* mged segfaults when drawing lots of solids at once (e.g. draw *.s)
@@ -262,7 +104,7 @@ Recent Bugs
mged -c moss.g "puts OK ; tops ; puts OK2 ; title ; puts DONE"
Note that this is consistent with doing the same thing on the MGED
Command Window's command prompt - if the above is a bug it is
Command Window's command prompt - if the above is a bug it is
apparently not restricted to command/classic mode.
Further investigation suggests that this is a consequence of
@@ -272,17 +114,20 @@ Recent Bugs
Tcl_AppendResult would have been better, but it is not clear whether
changing this result setting approach would cause other breakage.
* kill command in archer deletes object but then reports a failure and
mouse is stuck in a busy state.
* mged rotation halts after a few events and after zooming in/out at
least once (Mac OS X 10.5)
More info: This problem appears to be specific to a particular
X11 version or versions - it has been observed with
X11 version or versions - it has been observed with
xorg-server-1.4.2-apple33 on 10.5. It does not occur with the
community XQuartz 2.5.0 (xorg-server 1.7.6), nor does it occur
when Tk 8.5.8 is compiled to use the Aqua backend. At least one other
(possibly earlier) version of X11 from Apple on a 10.5 Mac did not
exhibit bad rotate behavior. The problem is not specifically the
(possibly earlier) verison of X11 from Apple on a 10.5 Mac did not
exhibit bad rotate behavior. The problem is not specifically the
zooming action - rather, the zoom triggers
a Tk focus call on the display manager window (rather than the
a Tk focus call on the display manager window (rather than the
Tk parent window) and the problem manifests when focus is on the
display manager window. mged classic mode, where there is no
parent window, exhibits the bad rotate behavior immediately.
@@ -302,9 +147,12 @@ Recent Bugs
* fastgen plate mode bots are reporting invalid shotline segments.
depending on whether you shoot from the front or back can result in
bogus lists visible with nirt in mged, entirely missing the bot, or
bogus lists visiable with nirt in mged, entirely missing the bot, or
mismatched entry/exit/overlap segments.
* 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.
* tab completion in classic/command mode sometimes doesn't work
(presumably if mged can't find tcl resources). was finally able to
reproduce this with the result given as:
@@ -314,7 +162,7 @@ Recent Bugs
* mged 'facetize -n' command is giving many errors:
ERROR: color index out of range (-128 > 255)
and it shouldn't. seems to be happening on 3-manifold surfaces but
only for particular faces. looks like the painting algorithm that is
only for particuar faces. looks like the painting algorithm that is
being used is flawed (and an incomplete implementation).
* running 'keep' on too many objects (hundreds is causing a usage
@@ -373,6 +221,9 @@ Recent Bugs
on freebsd using xfce and metacity (single display, 1680x1050 res).
dm shows up just fine.
* wireframe is failing to draw when framebuffer is displayed (underlay
or overlay) in mged. problem is specific to dm-ogl (dm-x is fine).
* g2asc of a v4 is apparently writing out the wrong s_cgtypes and
otherwise parsing v4 .g files incorrectly
@@ -383,6 +234,12 @@ Recent Bugs
ubuntu linux. key events go to the command window even with the
graphics window has focus.
* rt is consuming 100% CPU in fb_close() on a lingering ogl
framebuffer waiting to close. needs to sleep or select for a while.
* report of mged being locked up on startup taking full cpu, works
fine with with -c with X dm.
* MGED File->Preferences->Fonts results in error "named font "button
_font" doesn't exist on Linux.
@@ -392,7 +249,7 @@ Recent Bugs
(seems to be Mac OS X specific)
* turning on Framebuffer->Rectangle Area in mged disables the
embedded framebuffer display on Mac OS X when you sweep a raytrace
embedded framebuffer diplay on Mac OS X when you sweep a raytrace
rectangle. sweeping still works if you leave it at All.
* invalid shaders result in an "Unable to locate where BRL-CAD ... is
@@ -547,12 +404,6 @@ Recent Bugs
line (infinite loop). also gives infinite areas when presented with
an empty .density file.
* rtarea gives incorrect areas when using -H hypersample flag
* rtweight/gqa volumes seem wrong with simple sphere test case, with
values consistently and quickly converging less than the actual
volume regardless of the grid size.
* setting src/librt/db5_io.c's AVS_ADD off in db5_import_attributes
causes bad things to happen and it really shouldn't.
-1219
View File
File diff suppressed because it is too large Load Diff
-3164
View File
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -41,11 +41,11 @@ the prefix "lib" in the src/ directory (e.g. src/librt/). All of
BRL-CAD's libraries, applications, and any content lacking a license
specification are covered by the terms of the LGPL.
Most of BRL-CAD's build infrastructure including files required by
the GNU Build System (such as the CMakeLists.txt files), a variety
of scripts located in the misc/ and sh/ directories, and the testing
infrastructure (scripts and resources) are provided either under
the BSD license or are in the public domain. Similarly, most of
Most of BRL-CAD's build infrastructure including files required by the
GNU Build System (such as the configure.ac and all Makefile.am files),
a variety of scripts located in the misc/ and sh/ directories, and the
testing infrastructure (scripts and resources) are provided either
under the BSD license or are in the public domain. Similarly, most of
the geometric models, images, and other data resources are also
provided under the BSD license. Refer to each individual file for
specific terms.
@@ -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-2016 United States Government as represented by
Copyright (c) 1984-2011 United States Government as represented by
the U.S. Army Research Laboratory.
Contact
-15
View File
@@ -1,15 +0,0 @@
## This file should be placed in the root directory of your project.
## Then modify the CMakeLists.txt file in the root directory of your
## project to incorporate the testing dashboard.
##
## # The following are required to submit to the CDash dashboard:
## ENABLE_TESTING()
## INCLUDE(CTest)
set(CTEST_PROJECT_NAME "BRL-CAD")
set(CTEST_NIGHTLY_START_TIME "06:00:00 UTC")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "brlcad.org")
set(CTEST_DROP_LOCATION "/CDash/submit.php?project=BRL-CAD")
set(CTEST_DROP_SITE_CDASH TRUE)
+6572 -42860
View File
File diff suppressed because it is too large Load Diff
+362 -642
View File
File diff suppressed because it is too large Load Diff
+560 -615
View File
File diff suppressed because it is too large Load Diff
+493
View File
@@ -0,0 +1,493 @@
# M A K E F I L E . A M
# BRL-CAD
#
# Copyright (c) 2005-2011 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.
#
###
AUTOMAKE_OPTIONS = 1.6 dist-zip dist-bzip2
ACLOCAL_AMFLAGS = -I m4
DISTCHECK_CONFIGURE_FLAGS = --enable-all
required_dirs = \
include \
src
bench_dirs = \
bench \
db \
pix
other_dirs = \
doc \
m4 \
misc \
regress \
sh
if ONLY_BENCHMARK
SUBDIRS = \
$(required_dirs) \
$(bench_dirs)
else !ONLY_BENCHMARK
if ONLY_RTS
SUBDIRS = \
$(required_dirs)
else !ONLY_RTS
SUBDIRS = \
$(required_dirs) \
$(bench_dirs) \
$(other_dirs)
endif
# ONLY_RTS
endif
# ONLY_BENCHMARK
DIST_SUBDIRS = \
$(required_dirs) \
$(bench_dirs) \
$(other_dirs)
documentationdir = $(BRLCAD_DATA)
documentation_DATA = \
AUTHORS \
COPYING \
HACKING \
INSTALL \
NEWS \
README
EXTRA_DIST = \
$(documentation_DATA) \
BUGS \
ChangeLog \
TODO \
autogen.sh \
libtool
DISTCLEANFILES = \
$(CONFIG_CACHE) \
aclocal.m4 \
config.log \
config.status \
install.$(host_triplet).log \
libtool \
so_locations
##########################
# packaged distributions #
##########################
$(PACKAGE)-$(BRLCAD_VERSION).tar.gz: dist
# Build a Mac OS X Installer .pkg -- make sure the package resources
# reflect the correct version. we specifically do not use an autoconf
# template so that the file may be edited without doing a configure
# (which would also cause a need to regenerate the template to keep in
# sync every time it's edited).
$(PACKAGE_NAME)_$(BRLCAD_VERSION).pkg:
@if ! test -f "install.$(host_triplet).log" ; then \
echo ; \
echo "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" ; \
echo " WARNING: It seems as though you might not have" ; \
echo " installed BRL-CAD yet?" ; \
echo ; \
echo " You should run 'make install' before creating a" ; \
echo " binary distribution package. Trying regardless." ; \
echo "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{" ; \
echo ; \
fi
@echo "Building an Installer package for Mac OS X"
@echo
@echo "Warning: this package target presently assumes that the install directory"
@echo " does not contain extra files and comprises a full clean install."
@echo
@if test -f "$(top_srcdir)/misc/macosx/Resources/ReadMe.rtfd/TXT.rtf" ; then \
perl -pi -e "s/BRL-CAD [0-9]*\.[0-9]*\.[0-9]*/BRL-CAD $(BRLCAD_VERSION)/g" $(top_srcdir)/misc/macosx/Resources/ReadMe.rtfd/TXT.rtf ; \
fi
@if test -f "$(top_srcdir)/misc/macosx/Resources/Welcome.rtfd/TXT.rtf" ; then \
perl -pi -e "s/BRL-CAD [0-9]*\.[0-9]*\.[0-9]*/BRL-CAD $(BRLCAD_VERSION)/g" $(top_srcdir)/misc/macosx/Resources/Welcome.rtfd/TXT.rtf ; \
fi
@${SH} $(top_srcdir)/sh/make_pkg.sh "$(PACKAGE_NAME)" "$(BRLCAD_VERSION)" "$(DESTDIR)$(prefix)" "$(top_srcdir)/misc/macosx/Resources"
openUp:
cd misc/macosx && $(MAKE) openUp
$(PACKAGE_NAME)_$(BRLCAD_VERSION).dmg: $(PACKAGE_NAME)_$(BRLCAD_VERSION).pkg openUp
@echo "Building a Disk Image for Mac OS X"
@echo
@${SH} $(top_srcdir)/sh/make_dmg.sh "$(PACKAGE_NAME)" "$(BRLCAD_VERSION)" "$(top_srcdir)/misc/macosx/background.png"
# using home is probably not a great choice..
$(PACKAGE_NAME)_$(BRLCAD_VERSION).rpm: $(PACKAGE)-$(BRLCAD_VERSION).tar.gz
@echo "Building binary RPM for RedHat Linux"
@echo
@CP@ $(PACKAGE)-$(BRLCAD_VERSION).tar.gz ${HOME}/rpm/SOURCES/
rpmbuild -ba $(top_builddir)/misc/brlcad.spec
@CP@ ${HOME}/rpm/RPMS/i386/$(PACKAGE_NAME)_$(BRLCAD_VERSION)_*.i386.rpm .
@touch $(PACKAGE_NAME)_$(BRLCAD_VERSION).rpm
@echo "WARNING: Fake make placeholder created as $(PACKAGE_NAME)_$(BRLCAD_VERSION).rpm"
@echo
# using home is probably not a great choice..
# use PACKAGE instead of PACKAGE_NAME because it's a source release
$(PACKAGE)-$(BRLCAD_VERSION).src.rpm: $(PACKAGE)-$(BRLCAD_VERSION).tar.gz
@echo "Building source RPM for RedHat Linux"
@CP@ $(PACKAGE)-$(BRLCAD_VERSION).tar.gz ${HOME}/rpm/SOURCES/
rpmbuild -ba $(top_builddir)/misc/brlcad.spec
@CP@ ${HOME}/rpm/SRPMS/$(PACKAGE)-$(BRLCAD_VERSION)-*.src.rpm .
@touch $(PACKAGE)-$(BRLCAD_VERSION).src.rpm
@echo "WARNING: Fake make placeholder created as $(PACKAGE)-$(BRLCAD_VERSION).src.rpm"
@echo
$(PACKAGE_NAME)_$(BRLCAD_VERSION).deb:
@echo "Building a package for Debian Linux"
@echo
@${SH} $(top_srcdir)/sh/make_deb.sh "$(PACKAGE_NAME)_$(BRLCAD_VERSION)"
$(PACKAGE_NAME)_$(BRLCAD_VERSION).zip:
@if ! test -f "install.$(host_triplet).log" ; then \
echo ; \
echo "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" ; \
echo " WARNING: It seems as though you might not have" ; \
echo " installed BRL-CAD yet?" ; \
echo ; \
echo " You should run 'make install' before creating a" ; \
echo " binary distribution package. Trying regardless." ; \
echo "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{" ; \
echo ; \
fi
@echo "Building a zip-compressed file archive"
@echo
@${SH} $(top_srcdir)/sh/make_zip.sh "$(PACKAGE_NAME)_$(BRLCAD_VERSION)"
@echo
@echo "Built $(PACKAGE_NAME)_$(BRLCAD_VERSION).zip for $(host_triplet)"
$(PACKAGE_NAME)_$(BRLCAD_VERSION).tar.gz: $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar
@echo "Building a gzip-compressed tape archive"
@echo
@${SH} $(top_srcdir)/sh/make_tgz.sh "$(PACKAGE_NAME)_$(BRLCAD_VERSION)"
@echo
@echo "Built $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar.gz for $(host_triplet)"
$(PACKAGE_NAME)_$(BRLCAD_VERSION).tar.bz2: $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar
@echo "Building a bzip2-compressed tape archive"
@echo
@${SH} $(top_srcdir)/sh/make_bz2.sh "$(PACKAGE_NAME)_$(BRLCAD_VERSION)"
@echo
@echo "Built $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar.bz2 for $(host_triplet)"
$(PACKAGE_NAME)_$(BRLCAD_VERSION).tar:
@if ! test -f "install.$(host_triplet).log" ; then \
echo ; \
echo "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" ; \
echo " WARNING: It seems as though you might not have" ; \
echo " installed BRL-CAD yet?" ; \
echo ; \
echo " You should run 'make install' before creating a" ; \
echo " binary distribution package. Trying regardless." ; \
echo "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{" ; \
echo ; \
fi
@echo "Building an uncompressed tape archive"
@echo
@${SH} $(top_srcdir)/sh/make_tar.sh "$(PACKAGE_NAME)" "$(BRLCAD_VERSION)" "$(DESTDIR)$(prefix)"
@echo
@echo "Built $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar for $(host_triplet)"
#############
# the rules #
#############
.PHONY : clobber benchmark bench regression regress test pkg dmg rpm deb zip tgz tbz
clobber:
@cd bench && $(MAKE) clobber
benchmark: all
@cd bench && $(MAKE) run
bench: benchmark
regression: all
@cd regress && $(MAKE) regression
dox : misc/Doxyfile misc/doxygen_structure
doxygen $(top_srcdir)/misc/Doxyfile
regress: regression
test: regression
check: regression
@TIMEFRAME=1 $(MAKE) benchmark
pkg: $(PACKAGE_NAME)_$(BRLCAD_VERSION).pkg
@echo "Done."
dmg: pkg $(PACKAGE_NAME)_$(BRLCAD_VERSION).dmg
@echo "Done."
rpm: $(PACKAGE_NAME)_$(BRLCAD_VERSION).rpm $(PACKAGE)-$(BRLCAD_VERSION).src.rpm
@echo "Done."
deb: $(PACKAGE_NAME)_$(BRLCAD_VERSION).deb
@echo "Done."
zip: $(PACKAGE_NAME)_$(BRLCAD_VERSION).zip
@echo "Done."
tgz: $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar.gz
@echo "Done."
bz2: $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar.bz2
@echo "Done."
tar: $(PACKAGE_NAME)_$(BRLCAD_VERSION).tar
@echo "Done."
package:
@echo
@echo "To build a BRL-CAD package for distribution, there are various make"
@echo "targets available for various platforms:"
@echo
@echo " make pkg - Builds an Installer package for Mac OS X"
@echo " make dmg - Builds a Disk Image for Mac OS X"
@echo " make rpm - Builds source and binary RPM for RedHat Linux"
@echo " make deb - Builds a package for Debian Linux"
@echo " make zip - Builds a zip-compressed file archive"
@echo " make tgz - Builds a gzip-compressed tape archive"
@echo " make bz2 - Builds a bzip2-compressed tape archive"
@echo " make tar - Builds a uncompressed tape archive"
@echo
# make sure all files are in the repository are also in the dist.
# make sure files that should not be in the distribution in fact are
# not included.
dist-hook:
files="`find . -name entries -exec grep 'name=' {} /dev/null \; | sed 's/:[[:space:]]*name=\"\(.*\)\"/\1/g' | sed 's/\/\.svn\/entries/\//g' | grep -v 'brlcad-' | grep -v '\/$$'`" ; \
missing=0 ; \
for file in $$files ; do \
if test ! -e $(distdir)/$$file ; then \
missing=1 ; \
echo "MISSING FROM DIST: $$file" ; \
fi ; \
done ; \
if test "x$$missing" = "x1" ; then \
exit 1 ; \
fi
files="`find $(distdir)/src/tclscripts \( -name pkgIndex.tcl -o -name tclIndex \)`" ; \
empty=`for file in $$files ; do found="\`grep -v '^#' $$file | perl -0777 -pi -e 's/^\n//g'\`" ; if test "x$$found" = "x" ; then echo $$file ; fi ; done | wc | awk '{print $$1}'` ; \
if test $$empty -gt 9 ; then \
echo "TOO MANY EMPTY PKGINDEX.TCL/TCLINDEX FILES" ; \
exit 1 ; \
fi
find $(distdir) -type f \( -name '.cvsignore' -or -name 'brlcad_config.h' \) -exec rm -f {} \;
find $(distdir) -type d \( -name 'CVS' -or -name '.svn' \) -prune -exec rm -rf {} \;
dir="`pwd`" ; cd $(top_srcdir) ; \
${SH} sh/cmakecheck.sh ; \
ret=$$? ; \
if test "x$$ret" != "x0" ; then \
echo "NEED TO SYNC CMAKELISTS.TXT" ; \
exit 1 ; \
fi ; \
cd "$$dir"
# don't complain about the benchmark 'summary', we don't want to delete it
distcleancheck_listfiles = \
find . -type f -not -name summary -print
##########################
# summaries and warnings #
##########################
# make sure a dangerous umask will not prevent others from using an
# installed version by checking to make sure the exec mode is set.
# We minimally check only the binary and prefix directories.
install-data-local:
@warn_umask=no ; \
case `ls -ld $(DESTDIR)$(prefix)` in \
d????????-*) warn_umask=yes ;; \
d?????-???*) warn_umask=yes ;; \
d??-??????*) warn_umask=yes ;; \
esac ; \
if test "x$$warn_umask" = "xno" ; then \
case `ls -ld $(DESTDIR)$(bindir)` in \
d????????-*) warn_umask=yes ;; \
d?????-???*) warn_umask=yes ;; \
d??-??????*) warn_umask=yes ;; \
esac ; \
fi ; \
files="`find $(top_builddir)/src/tclscripts \( -name pkgIndex.tcl -o -name tclIndex \)`" ; \
empty=`for file in $$files ; do found="\`grep -v '^#' $$file | perl -0777 -pi -e 's/^\n//g'\`" ; if test "x$$found" = "x" ; then echo $$file ; fi ; done | wc | awk '{print $$1}'` ; \
if test $$empty -gt 9 ; then \
echo ; \
echo "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" ; \
echo " WARNING: Too many of the pkgIndex.tcl and" ; \
echo " tclIndex files are empty." ; \
echo ; \
echo " It is likely that the indices are not being" ; \
echo " generated properly which will affect run-time" ; \
echo " functionality. VERIFY THE FILES." ; \
echo "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{" ; \
echo ; \
fi ; \
if test "x$$warn_umask" = "xyes" ; then \
echo ; \
echo "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}" ; \
echo " WARNING: There is no execute permission on the" ; \
echo " install directory." ; \
echo ; \
echo " Consider running \"umask 022\" before installing" ; \
echo " next time. You should be able to repair this"; \
echo " installation's directory permissions with: " ; \
echo ; \
echo " find $(DESTDIR)$(prefix)/. -type d -exec chmod go+x {} \;" ; \
if test -d "$(DESTDIR)$(bindir)" ; then \
if test "x$(DESTDIR)$(exec_prefix)/bin" != "x$(DESTDIR)$(bindir)" ; then \
echo " find $(DESTDIR)$(bindir)/. -type d -exec chmod go+x {} \;" ; \
fi ; \
fi ; \
if test -d "$(DESTDIR)$(sbindir)" ; then \
if test "x$(DESTDIR)$(exec_prefix)/sbin" != "x$(DESTDIR)$(sbindir)" ; then \
echo " find $(DESTDIR)$(sbindir)/. -type d -exec chmod go+x {} \;" ; \
fi ; \
fi ; \
if test -d "$(DESTDIR)$(libexecdir)" ; then \
if test "x$(DESTDIR)$(exec_prefix)/libexec" != "x$(DESTDIR)$(libexecdir)" ; then \
echo " find $(DESTDIR)$(libexecdir)/. -type d -exec chmod go+x {} \;" ; \
fi ; \
fi ; \
if test -d "$(DESTDIR)$(datadir)" ; then \
if test "x$(DESTDIR)$(prefix)/share" != "x$(DESTDIR)$(datadir)" ; then \
echo " find $(DESTDIR)$(prefix)/. -type d -exec chmod go+x {} \;" ; \
fi ; \
fi ; \
if test -d "$(DESTDIR)$(libdir)" ; then \
if test "x$(DESTDIR)$(exec_prefix)/lib" != "x$(DESTDIR)$(libdir)" ; then \
echo " find $(DESTDIR)$(libdir)/. -type d -exec chmod go+x {} \;" ; \
fi ; \
fi ; \
if test -d "$(DESTDIR)$(mandir)" ; then \
if test "x$(DESTDIR)$(prefix)/man" != "x$(DESTDIR)$(mandir)" ; then \
echo " find $(DESTDIR)$(mandir)/. -type d -exec chmod go+x {} \;" ; \
fi ; \
fi ; \
if test -d "$(DESTDIR)$(includedir)" ; then \
if test "x$(DESTDIR)$(prefix)/include" != "x$(DESTDIR)$(includedir)" ; then \
echo " find $(DESTDIR)$(includedir)/. -type d -exec chmod go+x {} \;" ; \
fi ; \
fi ; \
echo ; \
echo " Do not presume the find example is all that is" ; \
echo " needed. VERIFY THE PERMISSIONS." ; \
echo "{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{" ; \
echo ; \
fi ; \
touch install.$(host_triplet).log ; \
if test -w install.$(host_triplet).log ; then \
LC_ALL=C ; \
if test "x$USER" = "x" ; then \
USER="unknown" ; \
fi ; \
echo "Installed BRL-CAD Release ${BRLCAD_VERSION} Build ${CONFIG_DATE} by ${USER} to $(DESTDIR)$(prefix) on `date`" >> install.$(host_triplet).log ; \
chmod ugo+rw install.$(host_triplet).log ; \
fi
# Print out an informative summary. As just about everything seems to
# end up calling the all-am hook, which in turns calls the all-local
# hook. The initial target goal is used to print out a custom summary
# message. If the make being used doesn't set the MAKECMDGOALS
# variable, something generic is printed still. For a make install,
# print out rule lines according to the size of the installation path
# to emphasize the achievement.
#
all-local:
@echo "Done."
@echo
@echo "BRL-CAD Release ${BRLCAD_VERSION}, Build ${CONFIG_DATE}"
@echo
@if test "x$(MAKECMDGOALS)" = "xall-am" -o "x$(.TARGETS)" = "xall-am" -o "x$(MAKECMDGOALS)" = "xfast" -o "x$(.TARGETS)" = "xfast" ; then \
echo $(ECHO_N) "Elapsed compilation time: " ;\
${SH} $(top_srcdir)/sh/elapsed.sh `cat $(top_builddir)/include/conf/TS` ;\
echo $(ECHO_N) "Elapsed time since configuration: " ;\
${SH} $(top_srcdir)/sh/elapsed.sh ${CONFIG_TS} ;\
echo "---" ;\
echo "Run 'make install' to begin installation into $(prefix)" ;\
echo "Run 'make benchmark' to run the BRL-CAD Benchmark Suite" ;\
elif test "x$(MAKECMDGOALS)" = "xinstall-am" -o "x$(.TARGETS)" = "xinstall-am" ; then \
echo $(ECHO_N) "Elapsed installation time: " ;\
${SH} $(top_srcdir)/sh/elapsed.sh `cat $(top_builddir)/include/conf/TS` ;\
echo $(ECHO_N) "Elapsed time since configuration: " ;\
${SH} $(top_srcdir)/sh/elapsed.sh ${CONFIG_TS} ;\
echo "---" ;\
echo "Run 'make test' to run the BRL-CAD Test Suite" ;\
echo "Run 'make benchmark' to run the BRL-CAD Benchmark Suite" ;\
echo ;\
line1=" BRL-CAD ${BRLCAD_VERSION} is now installed into $(prefix)" ;\
line2=" Be sure to add $(prefix)/bin to your PATH" ;\
separator="`echo $$line1 | tr '[[:print:]]' '*'`" ;\
echo "$${separator}****" ;\
echo "$$line1" ;\
echo "$$line2" ;\
echo "$${separator}****" ;\
elif test "x$(MAKECMDGOALS)" = "x" -a "x$(.TARGETS)" = "x" ; then \
echo $(ECHO_N) "Elapsed time: " ;\
${SH} $(top_srcdir)/sh/elapsed.sh `cat $(top_builddir)/include/conf/TS` ;\
echo $(ECHO_N) "Elapsed time since configuration: " ;\
${SH} $(top_srcdir)/sh/elapsed.sh ${CONFIG_TS} ;\
echo "---" ;\
echo "Run 'make benchmark' to run the BRL-CAD Benchmark Suite" ;\
fi
@echo
include $(top_srcdir)/misc/Makefile.defs
# Local Variables:
# mode: Makefile
# tab-width: 8
# indent-tabs-mode: t
# End:
# ex: shiftwidth=8 tabstop=8
+21 -757
View File
@@ -10,742 +10,9 @@ descriptive text that emphasizes or further describes significant
changes made. See document footer for additional details.
----------------------------------------------------------------------
--- 2016-07-XX Release 7.26.2 ---
--- 2010-12-XX Release 7.18.2 ---
----------------------------------------------------------------------
* 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
* 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 libpng to version 1.6.23 - Cliff Yapp
* upgraded freetype to version 2.6.5 - Cliff Yapp
* upgraded zlib to version 1.2.8 - 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
----------------------------------------------------------------------
--- 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
* 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
* killtree now defaults to skipping referenced objects - Sean Morrison
* nirt -h option is now help, old -h is -H - Carl Moore
* implemented preliminary NURBS geometry Boolean evaluation
- 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
* 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
* 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
* 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
----------------------------------------------------------------------
--- 2014-06-02 Release 7.24.2 ---
----------------------------------------------------------------------
This patch release includes a plethora of significant bug fixes and
improvements to BRL-CAD including fixing ADRT/TIE fast triangle ray
tracing on 32-bit platforms, fixing an issue in our FASTGEN converter
that affected the import of very complex geometry models, upgrading
one of our third-party dependencies (libpng) in response to a
vulnerability report, and improving the 'comb' and 'search' commands
with new options for restructuring and searching geometry.
Enhancements continue to be made to our boundary representation (BREP)
NURBS infrastructure in support of hybrid representation modeling and
improved geometry interchange with other CAD systems.
* improved rcodes output to inform user what changed - Cliff Yapp
* fixed inside command for ellipsoid primitives - Cliff Yapp
* restored suppressed mged output after some commands - Cliff Yapp
* added rtwizard -s square image size option - Cliff Yapp
* documented image size options in rtwizard man page - Cliff Yapp
* added view center specification dialog to rtwizard - Cliff Yapp
* increased rtwizard window size for button visibility - Cliff Yapp
* image conversion -R/-G/-B options now require weight - Mohit Daga
* improved option consistency for image processing tools - Mohit Daga
* 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
* 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
* changed 'benchmark' defaults: 2% deviation, 5 frames - Sean Morrison
* improved bwrect to handle redirected input and output - Mohit Daga
* upgraded boost to version 1.55.0 - Tom Browder
* fixed TIE mesh raytrace crashes on 32-bit platforms - Sean Morrison
* fixed pixscale and bwscale to not output ioctl error - Mohit Daga
* improved fast4-g import of numerous region groups - Richard Weiss
* fixed archer hidden line edit getting redrawn as shaded - Nick Reed
* fixed adrt/TIE polygonal mesh memory management bug - Richard Weiss
* fixed fast4-g importer parsing of blank input lines - Richard Weiss
* added -o flag to 'bb' command for oriented bounding box - Cliff Yapp
* allow search to see hidden combs with the -a flag - Cliff Yapp
* added comb -l lift option to change region designation - Cliff Yapp
* improved NURBS ray tracing grazing hit behavior - Keith Bowman
* print current grid information in gqa output - Cliff Yapp
* added -f option for flattening combs to 'comb' command - Cliff Yapp
* added support for -bool operation filtering in search - Cliff Yapp
* added new g-raw geometry converter - Jon Engbert, Daniel Roßberg
* improved g-stl usage and documentation - Jon Engbert
* added -c and -r region flag options to the comb command - Cliff Yapp
* added -p/-P point/line plot options to 'burst' tool - Sean Morrison
* added -w wrapping option to the 'comb' command - Cliff Yapp
* archer respects LIBRT_BOT_MINTIE environment variable - Bob Parker
* new 'cchannel' procedural geometry tool for C-Channel - Emory Huff
* improved 'comb' command error messages - Talwinder Saini
* pl -> plot3 rename for utilities and docs - Tom Browder, Cliff Yapp
* exposed 'coil' command within mged & archer - Alexandrus, Cliff Yapp
* added centroid reporting to 'analyze' command output - Csaba Nagy
* added arb8 centroid 'analyze' command reporting - Silviu Ungureanu
* pipe centroid, volume, & surface area analyze reporting - Csaba Nagy
* added ebm centroid 'analyze' command reporting - Michael Huang
* improved help option consistency across numerous tools - Carl Moore
----------------------------------------------------------------------
--- 2013-06-13 Release 7.24.0 ---
----------------------------------------------------------------------
This major update to BRL-CAD comes after nearly a full year of
development. This is the alpha release unveiling of Archer/MGED, a
preliminary interface update to BRL-CAD's graphical geometry editor.
As alpha software, this new MGED prototype aims to provide functional
feature parity with the antecedent MGED interface while introducing
various changes. Included is an integrated graphical tree view, a
single window framework, drag-and-drop geometry editing, information
panels, shortcut buttons, improved polygonal mesh and 2D sketch
editing, level-of-detail wireframes, NURBS shaded display support, and
much more. Prior to upcoming beta testing where the emphasis will
predominantly be on stability and usability, this alpha status
solicits feedback from the community on capability and features.
This release also includes various improvements to BRL-CAD's ray
tracing infrastructure including CPU thread affinity locking for
faster performance, more consistent grazing hit behavior, expanded
volume and surface area calculations, numerous bug fixes, and more
robust NURBS evaluation. Following BRL-CAD's interface deprecation
policy (see CHANGES file), the Jove text editor is no longer being
bundled. Numerous converters receive robustness improvements
including the STEP, Patch, and 3DM importers.
* improved gqa performance on parallel SMP hardware - Richard Weiss
* fixed bounding box size calculation for pipe geometry - Bob Parker
* improved help option consistency across numerous tools - Carl Moore
* 'idents' command no longer reports negative booleans - Keith Bowman
* improved support for NURBS with big uv-domain changes - Keith Bowman
* improved ray tracing behavior for grazing rays - Keith Bowman
* improved robustness of the step-g geometry importer - Nick Reed
* fixed search command bombing on v4 database file - Sean Morrison
* fixed graphics window z-clipping bug in mged - Bob Parker
* fixed mged lesson 15 toy truck 'inside' ordering bug - Sean Morrison
* fixed uninstallable Linux RPM package on Fedora 18 - Jordi Sayol
* improved Mac, BSD, & Windows ray tracing performance - Sean Morrison
* improved Linux ray tracing via cpu thread affinity - Akshay Kashyap
* fixed nirt high object count failure on Windows - Richard Weiss
* added plate mode BoT support to 'bot_merge' command - Richard Weiss
* jove removed, see jove.emacs for compatibility bindings - Cliff Yapp
* added gqa -q quiet option to suppress 'was not hit' - Richard Weiss
* level-of-detail mged configuration dialog, under Tools - Nick Reed
* added level-of-detail wireframe support to mged/archer - Nick Reed
* initial NURBS shaded display and tessellation support - Keith Bowman
* fixed patch-g -f input file permissions failure - Sean Morrison
* improved large file support for the patch-g importer - Sean Morrison
* upgraded libpng to version 1.5.12 - Cliff Yapp
* openNURBS updated to version 5.0 (2012-10-24) - Richard Weiss
* improved BoT mesh editing interface in archer - Bob Parker
* fixed crash when running screengrab in archer - Nick Reed
* fixed memory leak when working with pipe primitives - Daniel Roßberg
* fixed asc2g and mged empty revolve object crashes - Sean Morrison
* improved Linux support for multiple hardware displays - Bob Parker
* fixed crash when parsing invalid shader parameters - Cliff Yapp
* fixed mged 'dbupgrade' -permissions error on windows - Sean Morrison
* fixed infinite loop raytracing subtracted lights - Sean Morrison
* added hyp centroid and volume output to 'analyze' - Aaron Keesing
* added support for wireframe drawing of 'hyp' labels - Bob Parker
* fixed random number SMP bug affecting rt and adrt - Sean Morrison
* added support for editing 2D sketch objects in archer - Bob Parker
* fixed File->New deprecation error in archer - Sean Morrison
* improved Linux platform application and file icons - Jordi Sayol
* modified gqa to report all missed regions - Richard Weiss
* added epa surface area and volume to analyze command - Chris Dueck
* added arbn surface area and volume to analyze command - Chris Dueck
* added eto surface area and volume to analyze command - Chris Dueck
* quell pix-png gAMA chunk warning defaulting to unset - Sean Morrison
* fixed mged interactive object translation keypoint bug - Bob Parker
* fixed corrupted tessellation pipe export bug - Richard Weiss
* fixed memory leak in bot_condense - Chris Dueck
* output from g-var no longer prints 'fwrite' messages - Sean Morrison
* fixed gqa to not report overlap regions as zero hits - Richard Weiss
* fixed crash in step-g tool importing AP214 entities - Sean Morrison
* improved 3dm-g output and invalid geometry support - Sean Morrison
* fixed crash revolving empty sketch objects - Sean Morrison
* fixed TIE raytracing bugs shotlining plate-mode BoTs - Sean Morrison
* g_diff gives non-zero return code if .g files differ - Sean Morrison
* fixed typographical errors in numerous tools and docs - Carl Moore
* fixed TIE perpendicular face mesh evaluation failure - Richard Weiss
* added -b option to set tpkg network packet size - Andrei Popescu
* added manual page for existing mged reid command - Richard Weiss
* added manual page for bot_sync, bot_flip, bot_split - Richard Weiss
* added manual page for running rtarea within mged - Richard Weiss
* improved documentation consistency and authorship info - Tom Browder
* new mouse-input unpushed matrix edit option in archer - Bob Parker
* fixed bug during pipe editing with working units set - Bob Parker
* added experimental 'bot_fuse' command to heal BoTs - Richard Weiss
----------------------------------------------------------------------
--- 2012-06-25 Release 7.22.0 ---
----------------------------------------------------------------------
After many months of development, this release includes hundreds of
fixes for source code defects, logic and memory management bugs,
potential security vulnerabilities, and numerous other issues reported
by Coverity Static Analysis. While having participated in the
Coverity Scan Initiative since inception in 2006, this release marks a
completion milestone with the review and resolution of all reported
issues, more than 2100 overall. Every defect was inspected, code
modifications were peer-reviewed, critical features were tested, and
user-visible changes were documented. Along with other on-going
improvement efforts such as treating all compiler-generated warnings
as errors, time and attention continues to be put forth towards
improving BRL-CAD's maintainability and source code quality.
Development of BREP/NURBS representation support within BRL-CAD
continues to mature with this release including ray tracing
improvements, tighter bounding boxes for better performance, progress
converting from traditional implicit+CSG representations to NURBS+CSG,
wireframe improvements, and a thorough verification and validation
(V&V) review for analysis suitability. The V&V review compared
BRL-CAD's primitives in implicit, polygonal mesh, and NURBS form
evaluating more than a dozen separate tests looking for differences in
rendering, curvature, presented areas, volume, and more. The review
identified a couple minor issues that were inspected and fixed but
successfully demonstrated the viability of using our BREP/NURBS
implementation for geometric representation and analysis purposes.
This release introduces numerous major feature developments including
the initial implementation of a new physics simulation capability, a
new ambient occlusion rendering mode, and the integration of rtwizard
into Archer. The simulation system was developed by Abhijit Nandy
under the European Space Agency's 2011 Summer of Code in Space (SOCIS)
program; and it allows BRL-CAD geometry objects to dynamically
interact with each other (e.g., collision detection, friction) or with
the environment (e.g., gravity). Ambient occlusion is a shading
method that helps add considerable realism and feature definition to
renderings, enabled within rt using the "set ambSamples=128" command.
The rtwizard rendering interface was extended to work as a
command-line tool (useful for scripting) and was integrated within
Archer as the underlying rendering interface.
Conversion support continues to be a development priority with
significant importer enhancements for the STEP, OBJ, COMGEOM, FASTGEN,
and RAW file formats. The STEP importer in particular receives
several updates, support for importing assembly hierarchies, and is in
the process of being fully ported to Windows. This release also fixes
more than 40 user-visible bugs including a significant database
corruption issue. A database corruption issue was discovered and
fixed affecting 64-bit big endian platforms (e.g., IBM Power Series
supercomputers) when writing out ebm, dsp, vol, and hf primitives.
BRL-CAD's documentation continues to be extended, improved, and
translated due to the sustained efforts of several contributors.
Manual page documentation is now available on Windows through the
'brlman' command and within MGED. Several utilities and commands that
previously had no documentation now have manual pages; many others
received corrections and improvements. The introductory article
"About BRL-CAD" is now available in Russian, Italian, and Armenian.
* numerous manual page corrections and improvements - Tom Browder
* integration of rtwizard traits into archer - Bob Parker, Cliff Yapp
* new asc2dsp prep tool for displacement map data files - Tom Browder
* fixed a problem with rt writing pix files on Windows - Bob Parker
* added new raw-g raw triangle mesh to BoT importer - Daniel Roßberg
* added Windows man page support (using html) to brlman - Cliff Yapp
* added support for section numbers to brlman script - Cliff Yapp
* new manual pages for asc2dsp, dsp, asc2pix, and asc2g - Tom Browder
* fixed bug creating binary uniform (binunif) objects - Sean Morrison
* fixed memory corruption bug reading v4 geometry - Sean Morrison
* fixed bug where small raytraces were being rotated - Erik Greenwald
* ios-icon.sh script added for generating IOS icons - Erik Greenwald
* support for implicit to boundary representation geometry conversion
- Cliff Yapp, Wu Jianbang, Sean Morrison
* added rtwizard support for writing out .png images
- Bob Parker, Cliff Yapp, Richard Weiss
* fixed region demotion bug in the mged 'red' command - Richard Weiss
* added implicit conversion support to 'brep' command - Wu Jianbang
* improved NURBS raytracing grazing hit & edge behavior - Keith Bowman
* added initial documentation for make_pnts command - Richard Weiss
* fixed gqa crash when specified objects didn't exist - Richard Weiss
* rtedge and rtwizard support multiple occlusion objects - Bob Parker
* fixed mged matrix edit bug selecting the last matrix - Bob Parker
* added 'lc' command to mged for listing region codes - Richard Weiss
* fixed rtedge/rtwizard edge overlay rendering bug - Bob Parker
* fixed 'open: Permission denied' rtedge output file bug - Cliff Yapp
* upgraded libpng to 1.5.10 - Cliff Yapp
* fixed various memory leaks in the comgeom-g geometry importer
- Tom Browder, Nick Reed
* fixed comgeom-g bug importing ars primitive objects - Tom Browder
* added new command-line invocation support to rtwizard - Cliff Yapp
* fixed BoT mesh hit offset and vanish TIE render bugs - Keith Bowman
* improved nurbs raytracing when shooting from inside - Keith Bowman
* added 'draw'/'e' -m1 option for shading BoTs in mged - Richard Weiss
* expanded docs on mged listeval and 'l' list commands - Richard Weiss
* removed obsolete 'syn' multi sine synthesis tool - Sean Morrison
* fixed memory corruption in vegetation generator tool - Sean Morrison
* fixed ARS bounding box size affecting overlap handling - Cliff Yapp
* fixed bug in fast4-g importer handling HOLE/WALL cards - Nick Reed
* fixed field truncation bug in comgeom-g importer - Tom Browder
* fixed log file clobber bug in the benchmark suite - Cliff Yapp
* enabled new 'select' command for use within mged - Richard Weiss
* added preliminary object 'select' command to archer - Bob Parker
* improved support for the Intel C/C++ compiler (icc) - Sean Morrison
* now sorting top level object alphabetically in rtwizard - Cliff Yapp
* "About BRL-CAD" article translation to Russian - Ilya
* "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
* 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
* fixed error handling input reading failure in burst - Sean Morrison
* fixed memory double-freeing issue in shp-g - Erik Greenwald
* added optional scaling parameter to autoview command - Sean Morrison
* fixed extrude object bug rendering at near right angles - Bob Parker
* added -h option to nirt to suppress header printing - Cliff Yapp
* fixed nirt attribute reporting for specified attributes - Cliff Yapp
* fixed ebm/dsp/vol/hf corruption on 64-bit big endian - Sean Morrison
* fixed step-g importer memory management issues - Keith Bowman
* improved tab-completion behavior for mged and archer - Sean Morrison
* fixed pervasive string handling memory leak - Tom Browder
* improved table output formatting for 'analyze' command - Tom Browder
* improved rtweight portability and density file parsing - Tom Browder
* fixed crash in anim_cascade animation tool - Nick Reed
* fixed bug in gif2fb processing non-interlaced images - Sean Morrison
* fixed crash in coil when using -S and -l options - Cliff Yapp
* fixed mged 'make_pnts' command resource contention bug - Nick Reed
* fixed nirt memory leak and scriptfile off-by-one bug - Sean Morrison
* d2-c now handles the imaginary part correctly - Erik Greenwald
* fixed raytracer crash if output file creation fails - Erik Greenwald
* restored mged BoT editing interface functionality - Tom Browder
* fixed mged 'solids' and 'regions' command crashes - Tom Browder
* fixed orientation bug in mged 'ypr' rotation command - Nick Reed
* fixed mged bug setting color via Combination Editor - Nicholas Reed
* fixed numerous xyz/ypr orientation bugs in anim tools - Nick Reed
* 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
* 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
* fixed crash during rt -c "ae 35 25" view change - Bob Parker
* added -r BoT orientation option on the obj-g importer - Nick Reed
* added ambient occlusion shading method to rt - Lee Butler
* fixed attribute handling bug affecting v4 geometry - Daniel Roßberg
* reid command now reports the highest region ID set - Carl Moore
* batch script shortcuts now set PATH on Windows - Sean Morrison
* fixed g-obj error when exporting facets - Christopher Pitts
* added 'l' list command to archer so 'g' expands args - Bob Parker
* added length parameter documentation for 'coil' command - Cliff Yapp
* improved performance of boolean evaluations - Richard Weiss
* added support for braces around shader parameters - Nick Reed
* improved boolean evaluation converting to polygons - Richard Weiss
* ported the obj-g geometry importer to Windows - Nicholas Reed
* improved import robustness and parsing of OBJ geometry files
- Nicholas Reed, Richard Weiss, Mike Tegtmeyer
* added new physics 'simulate' command to mged/archer - Abhijit Nandy
* improved archer bot selection utility with sorted names - Bob Parker
* added 'bb' bounding box command usage within mged - Tom Browder
----------------------------------------------------------------------
--- 2011-10-30 Release 7.20.4 ---
----------------------------------------------------------------------
* added lighting model visualization options for archer - Bob Parker
* reid command now takes optional -n "incr by" value - Erik Greenwald
* reid command now returns the last region ID set - Erik Greenwald
* improved nirt support for non-UNIX-style text files - Sean Morrison
* added new relos thickness reassignment command to mged - Carl Moore
* support for loading archer plugins with spaces in name - Bob Parker
* added 'exists' object detection command to mged/archer - Cliff Yapp
* added archer BoT split/flip/sync surface cleanup panel - Bob Parker
* added new g-dot exporter for hierarchy visualization - Sean Morrison
* improved g-vrml successful exporting and reporting - Richard Weiss
* added -b BoT dump and -e evaluation option to g-vrml - Richard Weiss
* improved obj-g polygonal import - Nicholas Reed, Richard Weiss
* fixed mged crash after killing an illuminated object - Abhijit Nandy
* tightened default polygonal mesh export tolerance - Sean Morrison
* converted introductory Tcl/Tk presentation to Docbook - Tom Browder
* initial support in archer for editing pipe primitives - Bob Parker
* fixed NURBS raytracing crash due to invalid geometry - Sean Morrison
* fixed memory leak when saving BoT geometry - Nicholas Reed
* improved mged object name globbing support - Sean Morrison
* improved bounding box for rpc, epa, ehy, hyp primitives - Cliff Yapp
* improved handling of degenerate face facetization - Richard Weiss
* add support for .png file output in rtwizard - Cliff Yapp
* improved rtwizard's invocation of rt - Cliff Yapp
* added object path and keep options to conversion.sh - Tom Browder
* 'keep' command includes sketch when keeping revolve - Sean Morrison
* fixed mged 'mater' command inheritance setting bug - Richard Weiss
* fixed mged crash removing comb members during edit - Richard Weiss
* modified archer startup to not require html documentation files
- Cliff Yapp, Brandon Hinesley
* improved mged/archer/bwish run-time path behavior on Windows
- Cliff Yapp, Bob Parker
* upgraded libpng to version 1.5.4 - Cliff Yapp
* improved performance of step-g importer - Zach Easterbrook
* fixed browsing mged html help pages on Windows - Bob Parker
* restored mged 'rt' command output to console window - Sean Morrison
* fixed infinite loop bug plotting NURBS wireframes - Sean Morrison
* added new 'ringworld' procedural geometry generator - Erik Greenwald
* fixed mged Manual page item in help menu - Brandon Hinesley
----------------------------------------------------------------------
--- 2011-07-01 Release 7.20.2 ---
----------------------------------------------------------------------
* improved fusing of coplanar faces (tessellation) - Richard Weiss
* fixed rtwizard issues with unknown units and freezing - Bob Parker
* fixed problem with mater command setting color - Cliff Yapp
* fixed crash rendering scenes with all invalid lights - Sean Morrison
* improved reliability of ARS tessellation/conversion - Richard Weiss
* improved tessellation performance and reliability - Richard Weiss
* replaced 'erase_all' command with 'erase -r' - Brandon Hinesley
* improved 'ls' command error reporting in archer - Brandon Hinesley
* fixed related object highlighting in archer's tree view - Cliff Yapp
* added closedb command to archer - Brandon Hinesley
* improved behavior of opendb command in archer - Brandon Hinesley
* improved archer/mged manual page browser behavior - Brandon Hinesley
* added man documentation command to archer - Brandon Hinesley
* improved File->New dialog in mged - Brandon Hinesley
* all cmake files now included in dist - Erik Greenwald, Sean Morrison
----------------------------------------------------------------------
--- 2011-05-27 Release 7.20.0 ---
----------------------------------------------------------------------
This release marks the introduction of a new CMake build system for
BRL-CAD. CMake is cross-platform build system infrastructure capable
of generating native build system logic for a wide variety of
operating systems and compilation environments. Cliff Yapp has been
diligently working on this adaptation for a number of months in order
to simplify the task of maintaining BRL-CAD on multiple platforms.
Previously, two separate build systems were being maintained: one
system (GNU Autotools) for Linux, UNIX, and BSD platforms (including
Mac OS X); and another separate system (Microsoft Visual Studio) for
Windows. The new build system supports all platforms (including
Windows) from the same build logic. This eliminates the need to
manually update multiple build systems and improves BRL-CAD
cross-platform maintainability.
* fixed mged/archer graphics window glitches on Windows - Bob Parker
* improved 'attr' command to work with read-only .g files - Cliff Yapp
* cross-platform 64-bit ISST (cmake-only) - Cliff Yapp, Erik Greenwald
* fixed mged zoom out mouse binding on Linux/*BSD - Cliff Yapp
* fixed step-g importer bug interpolating cubic curves - Keith Bowman
* improved step-g importer ellipse and conic support - Keith Bowman
* improved multiple path handling for search command - Cliff Yapp
* fixed segment splitting tessellation conversion bug - Richard Weiss
* fixed crash during facetization of large models - Richard Weiss
* fixed asc2g bug importing color and other attributes - Bob Parker
* added -q "quiet lookup" option to the 'ls' command - Cliff Yapp
* fixed numerous 'red' command text edit bugs and robustness issues
- Cliff Yapp, Sean Morrison
* modification of LIBRT spatial partition traversal ordering
- Sean Morrison, Keith Bowman
* new LIBRT_BOT_MINTIE environment variable override - Erik Greenwald
* changed search output order to shallow followed by deep - Cliff Yapp
* added search support for '.' object list search results - Cliff Yapp
* red -f flag to force overwriting pre-existing combs - Sean Morrison
----------------------------------------------------------------------
--- 2011-04-12 Release 7.18.4 ---
----------------------------------------------------------------------
After considerable development, this release includes the preliminary
integration of our high-performance Triangle Intersection Engine (TIE)
with BRL-CAD's LIBRT raytrace library. TIE uses specialized
acceleration techniques for faster raytracing of triangle mesh models.
TIE was experimentally developed over several years as part of
BRL-CAD's Advanced Distributed Ray Tracer (ADRT) tool suite. As this
is the initial integration, TIE is available but presently disabled by
default. The engine optimization is configurably integrated with
LIBRT mesh (BoT) raytracing and optionally enabled via settings
available in RT and MGED. Initial testing of "real-world" models shows
average improvements around 20-60% while individual meshes with high
(1M+) face counts are rendering more than 2000% faster than before.
Also included in this release is the development of a new "shp-g"
geometry importer for Shapefile data. Shapefiles are a common file
format for storing geospatial vector data commonly used by geographic
information systems (GIS) software. Shapefiles may be imported as 2D
sketch geometry that can be extruded to a 3D representation.
* fixed units conversion bug with mged 'title' command - Bob Parker
* fixed memory management crash in the dem-g importer - Richard Weiss
* fixed edcolors so it retains and accepts colors again - Cliff Yapp
* support for applying matrix edits to revolve primitives - Dongxu Li
* fixed mged 'red' command bug on Windows - Sean Morrison, Cliff Yapp
* support matrices over halfspaces within combinations - Sean Morrison
* fixed archer and rtwizard startup failure bug on Mac - Sean Morrison
* fixed bug starting up the Combination Editor in mged - Sean Morrison
* mged 'mater' command interactive prompting restored - Sean Morrison
* added pix2fb and fb2pix screenshot commands to archer - Bob Parker
* fixed bug running nirt on a Windows command terminal - Bob Parker
* improved wireframe updating when editing within mged - Sean Morrison
* added -T bot_mintie BoT optimization options to nirt - Sean Morrison
* fixed Windows display manager bug when drawing strings - Bob Parker
* mged command-click zoom binding for one button mice - Sean Morrison
* removed 'txyz-pl' utility tool in favor of 'xyz-pl' - Sean Morrison
* new shp-g importer for Esri Shapefile geometry files - Sean Morrison
* new 'rt_bot_mintie' option for triggering TIE BoTs - Erik Greenwald
* integrated optimized TIE BoT raytracing with LIBRT - Erik Greenwald
----------------------------------------------------------------------
--- 2011-02-09 Release 7.18.2 ---
----------------------------------------------------------------------
This release provides initial support for reading some older
(platform-dependent) v4 geometry database files regardless of their
originating platform. Binary-incompatible v4 geometry database files
can be opened read-only within MGED where geometry can be inspected,
drawn, exported via the "keep" command, and updated to the newer
(platform-independent) v5 geometry database file format via the
"dbupgrade" command. In order to override the otherwise automatic
binary-incompatible v4 detection, MGED's "opendb" command provides a
new -f flip option and all applications can override behavior with a
LIBRT_V4FLIP environment variable.
Also introduced with this release are numerous binary platform
integration and usability enhancements for Debian, Ubuntu, Fedora, and
other Linux platforms. Included in Jordi Sayol's efforts are new
desktop icons, new menu items, mime-type association, and more.
* improved Fedora platform support with new menus, icons - Jordi Sayol
* fixed nirt units command reporting all units as invalid - Cliff Yapp
* dbupgrade support for binary-incompatible v4 files - Sean Morrison
* new opendb -f endianness flip option for corrupt v4 - Sean Morrison
* new mime-type geometry association for Debian platform - Jordi Sayol
@@ -767,7 +34,6 @@ desktop icons, new menu items, mime-type association, and more.
* upgraded zlib to version 1.2.5 - Cliff Yapp
* removed shell execution ! command from vdeck - Cliff Yapp
----------------------------------------------------------------------
--- 2010-12-07 Release 7.18.0 ---
----------------------------------------------------------------------
@@ -776,7 +42,7 @@ This release includes the initial release of a new Bag of Triangle
(BoT) editing interface for MGED and Archer. Nicholas Reed developed
the new graphical user interface (GUI) in order to consolidate the
numerous BoT editing commands and processing steps into one unified
easy-to-use interface. The new GUI greatly simplifies BoT processing
easy-to-use interface. The new GUI grealy simplifies BoT processing
steps and can save modelers considerable time.
* ported benchmark suite to Windows (requires 'sh') - Erik Greenwald
@@ -812,7 +78,7 @@ steps and can save modelers considerable time.
--- 2010-08-04 Release 7.16.10 ---
----------------------------------------------------------------------
The release concludes a phenomenal effort by Jesica Giudice who
The release concludes a phenomenal effort by Jesica Guidice who
meticulously translated approximately 150 pages of MGED tutorial
documentation from English to Spanish. The 16 tutorials are now fully
converted and work continues on the technical side to develop
@@ -909,7 +175,7 @@ alpha release status as BRL-CAD's next generation geometry editor.
* integration of mged authorship dedication into archer - Bob Parker
* improved behavior of mged initialization options - Bob Parker
* 3dm-g importer improvements for hierarchical layering - Keith Bowman
* fixed namespace initialization failure in rtwizard - Bob Parker
* fixed namspace initialization failure in rtwizard - Bob Parker
* removed the pcd-pix image conversion tool - Sean Morrison
* fixed coil tool -S option, now takes 6 parameters - Cliff Yapp
* fixed g-egg coordinate and polygon format bugs - Erik Greenwald
@@ -927,7 +193,7 @@ alpha release status as BRL-CAD's next generation geometry editor.
Considerable effort continues towards improving BRL-CAD's
documentation. Janine Gettier has now converted the documentation for
approximately 200 of MGED's commands into the Docbook XML format.
Jesica Giudice has translated 4 of MGED's 16 introductory tutorials to
Jesica Guidice has translated 4 of MGED's 16 introductory tutorials to
Spanish. Cliff Yapp continues to work extensively with both to get
their efforts integrated so that HTML and PDF documentation are
cleanly generated.
@@ -1001,7 +267,7 @@ undo support and graphical editing, are expanded upon.
* initial step-g geometry importer - Keith Bowman
* added '-u' flag to 3dm-g - uses UUID for import names - Cliff Yapp
* improved fb-png and pix-png default gamma correction - Sean Morrison
* improved fb-png and pix-png defaut gamma correction - Sean Morrison
* added a '-g' gamma correction option to pix-png - Sean Morrison
* added mged '-a' option for attaching display manager - Sean Morrison
* increased maximum size of framebuffer windows - Sean Morrison
@@ -1254,7 +520,7 @@ invalid geometry is now more robust.
* fixed mged 'dbconcat' hang when not specifying an affix - Bob Parker
* fixed primitive selection solid_illum bug in mged - Bob Parker
* fix bug in tire tool's geometry causing 'nicks' in tread - C. Yapp
* increased raytrace performance of pipe primitive - John Anderson
* increased raytrace performace of pipe primitive - John Anderson
* fixed bugs handling invalid extrude objects - Sean Morrison
* fixed dependency bug in library pkg-config files - Sean Morrison
* platform installers now use a more consistent naming convention
@@ -1262,7 +528,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
@@ -1366,7 +632,7 @@ continuous active development.
* fixed browser-based mged help on Mac OS X - Sean Morrison
* added rest of BRL-CAD's geometry converters for Windows - Bob Parker
* added more missing framebuffer tools to Windows port - Bob Parker
* rtwizard enhancements for ghosting and display - Bob Parker
* rtwizard enhancments for ghosting and display - Bob Parker
* mged reports failure if ray-tracer returns non-zero - Sean Morrison
* improved mged corrupt geometry file handling - Sean Morrison
* improved dbconcat object suffix and prefix options - Sean Morrison
@@ -1555,7 +821,7 @@ for more details.
* support for handling larger hierarchies in archer - Doug Howard
* added distance measurement tool to archer - Bob Parker
* added component selection capabilities to archer - Bob Parker
* added component selection capabilites to archer - Bob Parker
* new script to extract gforge task items - Lee Butler, Sean Morrison
* substantial additions and mods to source documentation - Lee Butler
* added scripts to facetize all regions in a database - Lee Butler
@@ -1655,7 +921,7 @@ tested further.
Other noteworthy enhancements provided in this release include new
sample applications that demonstrate the capabilities of the libpkg
networking library, in-memory geometry database processing, reshooting
of rays from analysis codes for testing purposes, and the librt root
of rays from analysis codes for testing pursposes, and the librt root
solver. For analysts and modelers alike, the MGED modeler also
acquires a few new commands including reid and remat that respectively
assist with the assignment of region and material identifiers.
@@ -1706,7 +972,7 @@ of BRL-CAD over the past 20 years.
* updated g_qa manual page documentation - Lee Butler
* early termination grid spacing limit bug in g_qa fixed - Lee Butler
* fixed Jove sandbox installation issue - Sean Morrison
* fixed adrt/isst client crash bug - Mike Caruso, Razak Arunaogun
* fixed adrt/isst client crash bug - Mike Caruso, Razak Arunaugun
* fixed modified env(PATH) startup issue in mged - Sean Morrison
* fixed benchmark tool default resource location bug - Sean Morrison
* added another text alignment handler to dxf-g - John Anderson
@@ -1727,7 +993,7 @@ creation commands read point data sets in a simple text file format,
recognizing categories and collections of points. Using
point-acquisition devices such as X-Station Vulcan advanced surveying
systems from Arc Second Inc., points may be collected and used in MGED
to facilitate the generation of geometry models. Collection
to factilitate the generation of geometry models. Collection
techniques are recognized for polygonal plates, cylinders, spheres,
point clouds, and more.
@@ -1831,7 +1097,7 @@ toolset includes a master job manager, a slave compute daemon for
network distributed processing, and a client for observing job
progress.
Driven by user requests, the 'rtarea' command now reports significantly
Driven by user requests, the 'rtarea' command now reports signifcantly
more information than before including area details for all assemblies
and regions being rendered. Both the presented and exposed areas are
now computed too, including details on how many regions/assemblies are
@@ -1854,7 +1120,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 ---
@@ -2432,7 +1698,7 @@ features are:
mged:
- A dedication page has been added in memory of Mike Muuss
- Solids are now referred to as Primitive Shapes or "prims" in
much of the user interface
much of the user interface
- The 'make' command now properly distinguishes between "ell" and
"ell1"
- 'autoview' command added for resetting the view size and center
@@ -2683,14 +1949,14 @@ As BRL-CAD continues to be developed and evolves, various application
programming interfaces (APIs), headers, and data types necessarily
change to fulfill development requirements and to not allow the APIs
to become overly complicated with unnecessary or undesired complexity.
As these changes are foreseen, features will be sometimes marked as
As these changes are forseen, features will be sometimes marked as
deprecated and will usually be made obsolete at some point in the
future. For those situations, developers using the BRL-CAD libraries
may need to update to new API features in order to link with newer
versions of BRL-CAD.
See the CHANGES file for a transcript of features that are deprecated
or have already become obsolete.
See the doc/deprecation.txt file for a transcript of features that are
deprecated or have already become obsolete.
---
See doc/history.txt for more historic information on BRL-CAD. There
@@ -2700,11 +1966,9 @@ Subversion revision control on Sourceforge.
NEWS items should be formatted to column 70 (default M-q in Emacs),
include credits to all significant contributors, and be descriptively
succinct. NEWS items should be ONE LINE per user-visible change with
succient. NEWS items should be ONE LINE per user-visible change with
the description not exceeding column 70. Multiple contributors may be
listed on the same or following line, separated by commas. Items
should be written in plain English using the past tense or as a
verbless clause.
listed on the same or following line.
// Local Variables:
// mode: Text
+28 -35
View File
@@ -1,5 +1,5 @@
BRL-CAD
Release 7.26.2
Release 7.18.2
http://brlcad.org/
BRL-CAD is a powerful cross-platform open source combinatorial
@@ -39,12 +39,9 @@ contents of the BRL-CAD distribution.
Some platforms have additional platform-specific documentation that
should be consulted after reading this file:
doc/README.AIX -- IBM's Advanced Interactive eXecutive OS
doc/README.BSD -- FreeBSD, NetBSD, OpenBSD, etc.
doc/README.IRIX -- SGI IRIX and IRIX64
doc/README.Linux -- Various Linux distributions
doc/README.MacOSX -- Apple Mac OS X
doc/README.Solaris -- Oracle Solaris, OpenIndiana (Illumos), etc.
doc/README.MacOSX -- Apple Mac OS X
doc/README.IRIX -- SGI IRIX and IRIX64
doc/README.Linux -- Various Linux distributions
doc/README.Windows -- Microsoft Windows
The information on how to install and operate the software, to become
@@ -71,30 +68,26 @@ COMPILE AND INSTALL
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.
source distribution, the following steps may be taken for a full
default install:
Once CMake is installed, the following steps may be taken for a full
default install (starting with a source tarball):
tar -xvzf brlcad-X.Y.Z.tar.gz
mkdir brlcad-build
cd brlcad-build
cmake ../brlcad-X.Y.Z
./configure
make
make install
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.
If you do not have a configure script in your source tree (at the same
level as this README file), you will need a relatively up-to-date
version of the GNU Build System (autoconf, automake, & libtool)
installed. The autogen.sh script will need to be run successfully in
order to generate the configure script first:
sh autogen.sh
./configure
make
make install
There are various options available to both configure and make. Run
"./configure --help" for a list of available configuration options.
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).
@@ -103,9 +96,9 @@ permissions, you should be able to begin the installation by running
the "make install" . By default, the package is configured to install
entirely into /usr/brlcad/.
You will need to add /usr/brlcad/bin to your path (or whatever path the
variable CMAKE_INSTALL_PREFIX was set to during configure) in order for
the BRL-CAD binaries to be in your path.
You will need to add /usr/brlcad/bin to your path (or whatever was
used as a --prefix during configure) in order for the BRL-CAD binaries
to be in your path.
BENCHMARK
@@ -114,8 +107,7 @@ BENCHMARK
After the build successfully completes, you will be able to verify
basic functionality by running the BRL-CAD Benchmark. Running the
benchmark suite is integrated into the build system such that any time
after running CMake (in the cmake gui, configure and generate must both
be performed) you may run:
after configure, you may run:
make benchmark
@@ -250,7 +242,8 @@ common operating system environments including for BSD, IRIX, Linux,
Solaris, Mac OS X, and Windows among others. The entire package is
distributed in binary and source code form as free open source
software (FOSS), provided under Open Source Initiative (OSI) approved
license terms. BRL-CAD was released as open source in December 2004.
license terms. BRL-CAD was released as open source in December 2004
with portions licensed under the GPL, LGPL, GFDL, and BSD licenses.
See the COPYING file for more details.
@@ -263,7 +256,7 @@ distribution at the beginning of every month, usually being posted
sometime within the first week of every month.
Depending on need, demand, and activity, additional releases may also
be made. The additional releases will be heavily dependent upon the
be made. The additional releases will be heavily dependant upon the
level of user involvement and contributions in particular.
Information about new releases will be routinely provided by
electronic mail to recipients of this software as well as to the
@@ -282,8 +275,8 @@ GETTING HELP
------------
Feel free to direct any unanswered questions relating to BRL-CAD via
e-mail or to any of the other contact means described above in the
COMMUNICATIONS section of this document.
e-mail to 'devs@brlcad.org' or to any of the other contact means
described above in the COMMUNICATIONS section of this document.
Best Wishes,
The BRL-CAD Development Team
+716 -2108
View File
File diff suppressed because it is too large Load Diff
Executable
+1598
View File
File diff suppressed because it is too large Load Diff
-65
View File
@@ -1,65 +0,0 @@
add_subdirectory(ref)
include_directories(${BU_INCLUDE_DIRS})
add_definitions(
-DHAVE_CONFIG_H
-DBRLCADBUILD
-DCONSOLE
)
BRLCAD_ADDEXEC(pixcmp pixcmp.c libbu)
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})
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")
CMAKEFILES(lgt.sh run.sh try.sh viewdiff.sh)
if(SH_EXEC)
# 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)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+60
View File
@@ -0,0 +1,60 @@
.PHONY : clean clobber run bench
bin_PROGRAMS = pixcmp
pixcmp_SOURCES = pixcmp.c
pixcmp_CFLAGS = ${TCL_CPPFLAGS}
pixcmp_LDADD = ${BU}
dist_bin_SCRIPTS = \
benchmark
man_MANS = \
benchmark.1 \
pixcmp.1
EXTRA_DIST = \
$(man_MANS) \
${dist_bin_SCRIPTS} \
lgt.sh \
run.sh \
try.sh \
viewdiff.sh
benchmark: run.sh
cp $(top_srcdir)/bench/run.sh benchmark
run: all
@if test -r ${srcdir}/run.sh ; then \
LD_LIBRARY_PATH=$(top_builddir)/src/other/tcl/unix:$(top_builddir)/src/other/tk/unix:$$LD_LIBRARY_PATH \
DYLD_LIBRARY_PATH=$(top_builddir)/src/other/tcl/unix:$(top_buildir)/src/other/tk/unix:$$DYLD_LIBRARY_PATH \
${SH} ${srcdir}/run.sh run ; \
ret=$$? ; \
if test "x$$ret" != "x0" ; then \
echo "*** BENCHMARK TESTING FAILED ***" ; \
exit 1 ; \
fi ; \
fi
@echo "---"
@echo "Run 'make clean' in the bench directory to delete the log"
@echo "and image files generated during the benchmark analysis."
@echo
bench: run
clean:
@${SH} ${srcdir}/run.sh clean
clobber:
@${SH} ${srcdir}/run.sh clobber
CLEANFILES = \
benchmark
DISTCLEANFILES = \
*.log \
*.pix
DEPS=src/rt db
include $(top_srcdir)/misc/Makefile.defs
+227
View File
@@ -0,0 +1,227 @@
.TH BENCHMARK 1 BRL-CAD
.\" B E N C H M A R K . 1
.\" BRL-CAD
.\"
.\" Copyright (c) 2006-2011 United States Government as represented by
.\" the U.S. Army Research Laboratory.
.\"
.\" Redistribution and use in source (Docbook format) and 'compiled'
.\" forms (PDF, PostScript, HTML, RTF, etc), with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code (Docbook format) must retain the
.\" above copyright notice, this list of conditions and the following
.\" disclaimer.
.\"
.\" 2. Redistributions in compiled form (transformed to other DTDs,
.\" converted to PDF, PostScript, HTML, RTF, and other formats) 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 documentation without specific prior
.\" written permission.
.\"
.\" THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\".\".\"
.SH NAME
benchmark \- runs the BRL-CAD benchmark
.SH SYNOPSIS
.B [OPTION=value] benchmark [command] [OPTION=value] [RT_OPTIONS]
.SH DESCRIPTION
.PP
The benchmark suite will test the performance of a given system by
iteratively rendering several well-known datasets into 512x512 images
where performance metrics are documented and fairly well understood.
The local machine performance is compared to the base system (called
VGR) and a numeric "VGR" mulitplier 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.
.PP
Run without any arguments or variables set, the benchmark suite will
run a series of tests where it renders several image frames. By
default, the benchmark suite will attempt to calibrate the intensity
of the test frames with the performance characteristics of the machine
running the tests.
.PP
There are several \fBOPTION\fR environment variables that will modify
how the BRL-CAD benchmark behaves so that it may be run in a
stand-alone environment:
.PP
\&
.B RT
\- the ray-trace binary (e.g. ../src/rt/rt or /usr/brlcad/bin/rt)
.br
\&
.B DB
\- the directory containing the reference geometry (e.g. ../db)
.br
\&
.B PIX
\- the directory containing the reference images (e.g. ../pix)
.br
\&
.B LOG
\- the directory containing the reference logs (e.g. ../pix)
.br
\&
.B CMP
\- the name of a pixel comparison tool (e.g. ./pixcmp or cmp)
.br
\&
.B ELP
\- the name of an elapsed time tool (e.g. ../sh/elapsed.sh)
.br
\&
.B TIMEFRAME
\- minimum number of seconds each ray-trace frame should take
.br
\&
.B MAXTIME
\- maximum number of seconds to spend on any test
.br
\&
.B DEVIATION
\- minimum sufficient % deviation from the average
.br
\&
.B AVERAGE
\- how many frames to average together
.br
\&
.B VERBOSE
\- turn on extra debug output (set to yes)
.br
\&
.B QUIET
\- turn off all output (set to yes)
.PP
The \fITIMEFRAME\fR, \fIMAXTIME\fR, \fIDEVIATION\fR, and \fIAVERAGE\fR options control how the
benchmark will proceed including how long it should take. Each
individual benchmark run will consume at least a minimum \fITIMEFRAME\fR of
wallclock time so that the results can stabilize. After consuming at
least the minimum \fITIMEFRAME\fR, additional frames may be computed until
the standard deviation from the last \fIAVERAGE\fR count of frames is below
the specified \fIDEVIATION\fR. When a test is run and it completes in less
than \fITIMEFRAME\fR, the raytrace is restarted using double the number of
rays from the previous run. If the machine is fast enough, the
benchmark may accelerate the number or rays being fired. These
additional rays are hypersampled but without any jitter, so it is
effectively performing a multiplier amount of work over the initial
frame.
.PP
There are various \fBcommand\fRs that may be give to the BRL-CAD
benchmark that cause it to peform various actions such as invoking the
computation tests or filesystem clean-up:
.PP
\&
.B clean
\- remove the test-specific pix and log files
.br
\&
.B clobber
\- same as clean, also benchmark.log files and user is prompted
.br
\&
.B help
\- displays a brief usage statement
.br
\&
.B instructions
\- displays more detailed usage instructions
.br
\&
.B quiet
\- quell printing output (still logs)
.br
\&
.B verbose
\- remove the test-specific pix and log files
.br
\&
.B clean
\- remove the test-specific pix and log files
.br
\&
.B run
\- initiate the benchmark analysis
.br
.PP
When the benchmark completes, output should be saved to several log
files including a 'summary' file containing tabulated results, a
'\*benchmark.log' file containing the output from a given run, and
multiple log files for each test frame. Use the \fIclean\fR and
\fIclobber\fR commands during execution to remove the files generated
during the benchmark.
.PP
The \fIclean\fR command removes the test pix and log files. The
\fIclobber\fR command removes those same files as well as any
*benchmark.log files encountered, and prompting the user beforehand.
The generated tabular \fIsummary\fR file will not be removed
automatically regardless of invocation command. The \fIsummary\fR
file must always be manually deleted.
.SH "REPORTING RESULTS"
.PP
Plese send your BRL-CAD Benchmark results to the developers along with
detailed system information to <devs@brlcad.org>. Include at least:
.PP
0) Compiler name and version (e.g. gcc --version)
1) CPU configuration (e.g. cat /proc/cpuinfo or hinv or sysctl -a)
2) Cache (data and/or instruction) details for L1/L2/L3 and system
(e.g. cat /proc/cpuinfo or hinv or sysctl -a)
3) All generated log files (i.e. *.log* after benchmark completes)
4) Anything else you think might be relevant to performance
.SH EXAMPLES
.PP
.B benchmark run
.br
default run of the suite, taking approximately 10 minutes
.PP
.B benchmark run TIMEFRAME=1
.br
quick test run for testing functionality and performance ballpark
.PP
.B benchmark run DEVIATION=1 TIMEFRAME=60 MAXTIME=600
.br
excessive analysis, attempt to stabilize within 1 percent deviation
with each frame taking at least 60 seconds but no more than 10 minutes
per test (the entire analysis will probably take 30 to 60 minutes)
.B benchmark run QUIET=1 -P1
.br
perform a benchmark analysis only using one CPU and only logging
results to a file
.PP
.B benchmark clean
.br
delete all of the log and pix image files generated during a
benchmark analysis, leaving only the summary file and any
*benchmark.log files
.SH "SEE ALSO"
brlcad(1), rt(1), pix-fb(1), librt(3), pix(5).
.SH AUTHOR
Christopher Sean Morrison
.br
Michael John Muuss
.br
Susan Muuss
.SH COPYRIGHT
This software is Copyright (c) 1988-2011 United States Government as
represented by the U.S. Army Research Laboratory. All rights reserved.
.SH "BUG REPORTS"
Reports of bugs or problems should be submitted via electronic
mail to <devs@brlcad.org>.
+1 -1
View File
@@ -2,7 +2,7 @@
# L G T . S H
# BRL-CAD
#
# Copyright (c) 2004-2016 United States Government as represented by
# Copyright (c) 2004-2011 United States Government as represented by
# the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
+99
View File
@@ -0,0 +1,99 @@
.TH PIXCMP 1 BRL-CAD
.\" P I X C M P . 1
.\" BRL-CAD
.\"
.\" Copyright (c) 2005-2011 United States Government as represented by
.\" the U.S. Army Research Laboratory.
.\"
.\" Redistribution and use in source (Docbook format) and 'compiled'
.\" forms (PDF, PostScript, HTML, RTF, etc), with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code (Docbook format) must retain the
.\" above copyright notice, this list of conditions and the following
.\" disclaimer.
.\"
.\" 2. Redistributions in compiled form (transformed to other DTDs,
.\" converted to PDF, PostScript, HTML, RTF, and other formats) 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 documentation without specific prior
.\" written permission.
.\"
.\" THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\".\".\"
.SH NAME
pixcmp \- compare two pix image files pixel by pixel
.SH SYNOPSIS
.B pixcmp
.RB [\fIOPTIONS\fR]
\fIFILE1\fR [\fIFILE2\fR [\fISKIP1\fR [\fISKIP2\fR]]]
.SH DESCRIPTION
.I pixcmp
is a program to compare two BRL-CAD pix image files pixel by pixel. The following \fIOPTIONS\fR are available:
.TP
\fB\-l\fR
Output pixel numbers, counting from 1, and values for all pixels that differ.
.TP
\fB\-b\fR
Use bytes instead of pixels for both processing and output. With this option, the \fB-i\fR SKIP values should be specified as bytes instead of pixels.
.TP
\fB\-i\fR \fISKIP\fR
Skip the first SKIP pixels of input (for FILE1 and FILE2).
.TP
\fB\-i\fR \fISKIP1\fR:\fISKIP2\fR
Skip the first SKIP1 pixels of FILE1 and the first SKIP2 pixels of FILE2.
.TP
\fB\-s\fR
Silent output. Only return an exit status.
.PP
SKIP1 and SKIP2 are the number of pixels to skip in each file.
.PP
If FILE is \`\fB\-\fR\' or missing,
.I pixcmp
reads from the standard input.
.SH RETURN VALUES
.PP
The
.I pixcmp
utility returns \fB0\fR if there are no differences, \fB1\fR if there are only off-by-one differences, \fB2\fR if there are off-by-many errors, \fB126\fR if there are file processing problems, and \fB127\fR if there are argument processing or usage errors.
.SH EXAMPLES
.TP
\fBpixcmp -l file1 file2\fR
.br
The two files are compared pixel by pixel with each difference printed instead of just the summary.
.TP
\fBpixdiff file1.pix file2.pix | pixcmp - file3.pix\fR
.br
The
.I pixdiff
tool compares the pixels in file1.pix with those in file2.pix and then outputs a resulting \`diff\' image which is then processed by
.I pixcmp
as input and compared against file3.pix, reporting on the differences.
.SH SEE ALSO
brlcad(1), pixdiff(1), pix(5), bw(5)
.SH AUTHOR
Christopher Sean Morrison
.br
Charles M. Kennedy
.br
Michael John Muuss
.SH "BUG REPORTS"
Reports of bugs or problems should be submitted via electronic
mail to <devs@brlcad.org>.
+16 -27
View File
@@ -1,7 +1,7 @@
/* P I X C M P . C
* BRL-CAD
*
* Copyright (c) 2004-2016 United States Government as represented by
* Copyright (c) 2004-2011 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This program is free software; you can redistribute it and/or
@@ -31,15 +31,13 @@
#include <stdlib.h>
#include <string.h>
#ifdef HAVE_SYS_STAT_H
# include <sys/stat.h>
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#include "bio.h"
#include "bu/getopt.h"
#include "bu/log.h"
#include "bu/file.h"
#include "bu/str.h"
#include "bu.h"
/* exit codes for argument processing errors */
#define OPTS_ERROR 127
@@ -58,14 +56,13 @@ usage(const char *name)
if (!name) {
name = unknown;
}
/* this must be split, ISO C90 has a max static string length of 509 */
bu_log("Usage: %s [OPTIONS] FILE1 [FILE2 [SKIP1 [SKIP2]]]\n%s", name,
"Compare two PIX image files pixel by pixel.\n\n"
" -l List pixel numbers and values for all pixels that differ.\n"
" -b Output and process by bytes instead of pixels.\n"
" -i SKIP\n"
" Skip the first SKIP pixels of input (for FILE1 and FILE2)\n");
bu_log(" -i SKIP1:SKIP2\n"
" Skip the first SKIP pixels of input (for FILE1 and FILE2)\n"
" -i SKIP1:SKIP2\n"
" Skip the first SKIP1 pixels in FILE1 and SKIP2 pixels in FILE2.\n"
" -s Silent output. Only return an exit status.\n\n"
"If FILE is `-' or is missing, then input is read from standard input.\n"
@@ -76,7 +73,7 @@ usage(const char *name)
HIDDEN void
handle_i_opt(const char *arg, off_t *skip1, off_t *skip2)
handle_i_opt(const char *arg, long *skip1, long *skip2)
{
const char *endptr = arg;
if ((arg == NULL) || ((skip1 == NULL) && (skip2 == NULL))) {
@@ -97,7 +94,7 @@ handle_i_opt(const char *arg, off_t *skip1, off_t *skip2)
if (skip2) {
*skip2 = strtol(arg, NULL, 10);
}
if (skip1 && skip2) {
if (skip1) {
*skip1 = *skip2;
}
} else if (endptr[0] == ':') {
@@ -120,7 +117,6 @@ main(int argc, char *argv[])
{
FILE *f1 = NULL;
FILE *f2 = NULL;
struct stat sf1, sf2;
long matching = 0;
long off1 = 0;
@@ -130,13 +126,13 @@ main(int argc, char *argv[])
int list_pixel_values = 0;
int print_bytes = 0;
int silent = 0;
off_t f1_skip = 0;
off_t f2_skip = 0;
long f1_skip = 0;
long f2_skip = 0;
long int bytes = 0;
/* process opts */
while ((c = bu_getopt(argc, argv, "lbi:s")) != -1) {
while ((c = bu_getopt(argc, argv, "lbi:s")) != EOF) {
switch (c) {
case 'l':
list_pixel_values = 1;
@@ -202,21 +198,14 @@ 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], sf1.st_size, argv[1], sf2.st_size);
}
if (!print_bytes) {
f1_skip *= 3;
f2_skip *= 3;
}
/* skip requested pixels/bytes in FILE1 */
if (f1_skip && bu_fseek(f1, f1_skip, SEEK_SET)) {
bu_log("ERROR: Unable to seek %zd %s%s in FILE1\n",
if (f1_skip && fseek(f1, f1_skip, SEEK_SET)) {
bu_log("ERROR: Unable to seek %ld %s%s in FILE1\n",
f1_skip,
print_bytes?"byte":"pixel",
f1_skip==1?"":"s");
@@ -225,8 +214,8 @@ main(int argc, char *argv[])
}
/* skip requested pixels in FILE2 */
if (f2_skip && bu_fseek(f2, f2_skip, SEEK_SET)) {
bu_log("ERROR: Unable to seek %zd %s%s in FILE2\n",
if (f2_skip && fseek(f2, f2_skip, SEEK_SET)) {
bu_log("ERROR: Unable to seek %ld %s%s in FILE2\n",
f1_skip,
print_bytes?"byte":"pixel",
f1_skip==1?"":"s");
-31
View File
@@ -1,31 +0,0 @@
set(BENCHMARK_PIX
bldg391.pix
m35.pix
moss.pix
sphflake.pix
star.pix
world.pix
)
set(PIX_LOG
bldg391.log
m35.log
moss.log
sphflake.log
star.log
world.log
)
BRLCAD_ADDDATA(BENCHMARK_PIX pix)
BRLCAD_ADDDATA(PIX_LOG pix)
CMAKEFILES(${BENCHMARK_PIX})
CMAKEFILES(${PIX_LOG})
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+136 -224
View File
@@ -2,7 +2,7 @@
# R U N . S H
# BRL-CAD
#
# Copyright (c) 2004-2016 United States Government as represented by
# Copyright (c) 2004-2011 United States Government as represented by
# the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
@@ -51,9 +51,9 @@
export PATH || (echo "This isn't sh."; sh $0 $*; kill $$)
# save the precious args
ARGS="$@"
NAME_OF_THIS="`basename \"$0\"`"
PATH_TO_THIS="`dirname \"$0\"`"
ARGS="$*"
NAME_OF_THIS=`basename $0`
PATH_TO_THIS=`dirname $0`
THIS="$PATH_TO_THIS/$NAME_OF_THIS"
# sanity check
@@ -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
@@ -234,14 +241,14 @@ if test "x$HELP" = "x1" ; then
echo "Available options:"
echo " RT=/path/to/rt_binary (e.g., rt)"
echo " DB=/path/to/reference/geometry (e.g. ../db)"
echo " PIX=/path/to/reference/images (e.g., ./ref)"
echo " LOG=/path/to/reference/logs (e.g., ./ref)"
echo " PIX=/path/to/reference/images (e.g., ../pix)"
echo " LOG=/path/to/reference/logs (e.g., ../pix)"
echo " CMP=/path/to/pixcmp_tool (e.g., pixcmp)"
echo " ELP=/path/to/time_tool (e.g., elapsed.sh)"
echo " TIMEFRAME=#seconds (default 32)"
echo " MAXTIME=#seconds (default 300)"
echo " DEVIATION=%deviation (default 2)"
echo " AVERAGE=#frames (default 5)"
echo " DEVIATION=%deviation (default 3)"
echo " AVERAGE=#frames (default 3)"
echo ""
echo "Available RT options:"
echo " -P# (e.g., -P1 to force single CPU)"
@@ -271,7 +278,7 @@ 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
"VGR" mulitplier 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.
@@ -284,8 +291,8 @@ it may be run in a stand-alone environment:
RT - the rt binary (e.g. ../src/rt/rt or /usr/brlcad/bin/rt)
DB - the directory containing the reference geometry (e.g. ../db)
PIX - the directory containing the reference images (e.g. ./ref)
LOG - the directory containing the reference logs (e.g. ./ref)
PIX - the directory containing the reference images (e.g. ../pix)
LOG - the directory containing the reference logs (e.g. ../pix)
CMP - the name of a pixcmp tool (e.g. ./pixcmp or cmp)
ELP - the name of an elapsed time tool (e.g. ../sh/elapsed.sh)
TIMEFRAME - the minimum number of seconds each trace needs to take
@@ -311,7 +318,7 @@ additional rays are hypersampled but without any jitter, so it's
effectively performing a multiplier amount of work over the initial
frame.
Please send your BRL-CAD Benchmark results to the developers along with
Plese send your BRL-CAD Benchmark results to the developers along with
detailed system information to <devs@brlcad.org>. Include at least:
0) Compiler name and version (e.g. gcc --version)
@@ -343,19 +350,19 @@ if test "x$CLEAN" = "x1" ; then
$ECHO
for i in moss world star bldg391 m35 sphflake ; do
$ECHO rm -f $i.log $i.pix $i-[0-9]*.log $i-[0-9]*.pix
rm -f $i.log $i.pix $i-[0-9]*.log $i-[0-9]*.pix
$ECHO rm -f $i.log $i.pix $i.log.[0-9]* $i.pix.[0-9]*
rm -f $i.log $i.pix $i.log.[0-9]* $i.pix.[0-9]*
done
if test "x$CLOBBER" = "x1" ; then
# NEVER automatically delete the summary file, but go ahead with the rest
for i in run-[0-9]*-benchmark.log ; do
for i in benchmark-[0-9]*-run.log ; do
$ECHO rm -f $i
rm -f $i
done
fi
printed=no
for i in summary run-[0-9]*-benchmark.log ; do
for i in summary benchmark-[0-9]*-run.log ; do
if test -f "$i" ; then
if test "x$printed" = "xno" ; then
$ECHO
@@ -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,63 @@ 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" \
./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}/../pix \
${PATH_TO_THIS}/pix \
./pix
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" \
./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}/../pix \
${PATH_TO_THIS}/pix \
./pix
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 +594,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 +605,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,12 +614,12 @@ 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"
exit 2
fi
fi
# utility function to set a variable if it's not already set to something
@@ -646,10 +652,10 @@ if test $MAXTIME -lt $TIMEFRAME ; then
fi
# maximum deviation percentage
set_if_unset DEVIATION 2
set_if_unset DEVIATION 3
# maximum number of iterations to average
set_if_unset AVERAGE 5
set_if_unset AVERAGE 3
# end of settings, separate the output
$ECHO
@@ -661,7 +667,7 @@ $ECHO
# determine raytracer version
$ECHO "RT reports the following version information:"
versions="`$RT 2>&1 | grep BRL-CAD | grep Release`"
versions="`$RT 2>&1 | grep BRL-CAD`"
if test "x$versions" = "x" ; then
$ECHO "Unknown"
else
@@ -669,27 +675,17 @@ else
fi
$ECHO
# if expr works, let the user know about how long this might take
if test "x`expr 1 - 1 2>/dev/null`" = "x0" ; then
mintime="`expr 6 \* $TIMEFRAME`"
if test $mintime -lt 1 ; then
mintime=0 # zero is okay
fi
$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`"
estimate="`expr 3 \* $mintime`"
if test $estimate -lt 1 ; then
estimate=1 # zero would be misleading
fi
mintime="`expr $TIMEFRAME \* 6`"
$ECHO "Minimum run time is `$ELP $mintime`"
maxtime="`expr $MAXTIME \* 6`"
$ECHO "Maximum run time is `$ELP $maxtime`"
estimate="`expr $mintime \* 3`"
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 +715,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=$?
@@ -893,43 +889,6 @@ sqrt ( ) {
}
#
# clean_obstacles base_filename
# conditionally removes or saves backup of any .pix or .log files
# output during bench.
#
clean_obstacles ( ) {
base="$1" ; shift
if test "x$base" = "x" ; then
$ECHO "ERROR: argument mismatch, cleaner is missing base name"
exit 1
fi
# look for an image file
if test -f ${base}.pix ; then
if test -f ${base}-$$.pix ; then
# backup already exists, just delete obstacle
rm -f ${base}.pix
else
# no backup exists yet, so keep it
mv -f ${base}.pix ${base}-$$.pix
fi
fi
# look for a log file
if test -f ${base}.log ; then
if test -f ${base}-$$.log ; then
# backup already exists, just delete obstacle
rm -f ${base}.log
else
# no backup exists yet, so keep it
mv -f ${base}.log ${base}-$$.log
fi
fi
}
#
# bench test_name geometry [..rt args..]
# runs a series of benchmark tests assuming the following are preset:
@@ -961,20 +920,15 @@ bench ( ) {
bench_rtfms=""
bench_percent=100
bench_start_time="`date '+%H %M %S'`"
bench_overall_elapsed=-1
bench_overall_elapsed=0
# clear out before we begin, only saving backup on first encounter
clean_obstacles "$bench_testname"
# use -lt since -le makes causes a "floor(elapsed)" comparison and too many iterations
while test $bench_overall_elapsed -lt $MAXTIME ; do
bench_elapsed=-1
# use -lt since -le makes causes a "floor(elapsed)" comparison and too many iterations
bench_elapsed=0
while test $bench_elapsed -lt $TIMEFRAME ; do
# clear out any previous run, only saving backup on first encounter
clean_obstacles "$bench_testname"
if test -f ${bench_testname}.pix; then mv -f ${bench_testname}.pix ${bench_testname}.pix.$$; fi
if test -f ${bench_testname}.log; then mv -f ${bench_testname}.log ${bench_testname}.log.$$; fi
bench_frame_start_time="`date '+%H %M %S'`"
@@ -985,17 +939,11 @@ end;
EOF
retval=$?
if test $bench_frame -ne 0 ; then
if test -f ${bench_testname}.pix.$bench_frame ; then
mv -f ${bench_testname}.pix.$bench_frame ${bench_testname}.pix
else
$ECHO "WARNING: ${bench_testname}.pix.$bench_frame does not exist"
fi
fi
if test -f ${bench_testname}.pix.$bench_frame ; then mv -f ${bench_testname}.pix.$bench_frame ${bench_testname}.pix ; fi
# 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
@@ -1014,27 +962,19 @@ EOF
# increase the number of rays exponentially if we are
# considerably faster than the TIMEFRAME required.
if test `expr $bench_elapsed \* 128` -lt ${TIMEFRAME} ; then
# 128x increase, skip six frames
bench_hypersample="`expr $bench_hypersample \* 128 + 127`"
bench_frame="`expr $bench_frame + 7`"
elif test `expr $bench_elapsed \* 64` -lt ${TIMEFRAME} ; then
# 64x increase, skip five frames
bench_hypersample="`expr $bench_hypersample \* 64 + 63`"
bench_frame="`expr $bench_frame + 6`"
elif test `expr $bench_elapsed \* 32` -lt ${TIMEFRAME} ; then
if test `expr $bench_elapsed \* 32` -le ${TIMEFRAME} ; then
# 32x increase, skip four frames
bench_hypersample="`expr $bench_hypersample \* 32 + 31`"
bench_frame="`expr $bench_frame + 5`"
elif test `expr $bench_elapsed \* 16` -lt ${TIMEFRAME} ; then
elif test `expr $bench_elapsed \* 16` -le ${TIMEFRAME} ; then
# 16x increase, skip three frames
bench_hypersample="`expr $bench_hypersample \* 16 + 15`"
bench_frame="`expr $bench_frame + 4`"
elif test `expr $bench_elapsed \* 8` -lt ${TIMEFRAME} ; then
elif test `expr $bench_elapsed \* 8` -le ${TIMEFRAME} ; then
# 8x increase, skip two frames
bench_hypersample="`expr $bench_hypersample \* 8 + 7`"
bench_frame="`expr $bench_frame + 3`"
elif test `expr $bench_elapsed \* 4` -lt ${TIMEFRAME} ; then
elif test `expr $bench_elapsed \* 4` -le ${TIMEFRAME} ; then
# 4x increase, skip a frame
bench_hypersample="`expr $bench_hypersample \* 4 + 3`"
bench_frame="`expr $bench_frame + 2`"
@@ -1063,7 +1003,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,32 +1041,17 @@ 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`"
done
# clear out any profile output files
if test -f gmon.out ; then
mv -f gmon.out gmon.${bench_testname}.out
fi
# the last run should be a relatively stable representative of the performance
if ! test -f "${PIX}/${bench_testname}.pix" ; then
$ECHO "ERROR: reference image ${PIX}/${bench_testname}.pix not found"
fi
if ! test -f "${bench_testname}.pix" ; then
$ECHO "ERROR: computed image ${bench_testname}.pix disappeared?!"
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`"
if test -f gmon.out; then mv -f gmon.out gmon.${bench_testname}.out; fi
${CMP} ${PIX}/${bench_testname}.pix ${bench_testname}.pix
ret=$?
$ECHO "$cmp_result"
if test $ret = 0 ; then
# perfect match
$ECHO ${bench_testname}.pix: answers are RIGHT
@@ -1177,8 +1102,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,18 +1111,18 @@ 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
# extract the RTFM values from the log files, use TR to convert
# newlines to tabs. the trailing tab is significant in case there
# newlines to tabs. the trailing tab is signficant in case there
# are not enough results.
#
# 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
@@ -1212,7 +1137,7 @@ perf ( ) {
# Trick: Force args $1 through $6 to the numbers in $perf_CURVALS
# This should be "set -- $perf_CURVALS", but 4.2BSD /bin/sh can't
# handle it, and perf_CURVALS are all positive (i.e., no leading
# handle it, and perf_CURVALS are all positive (ie, no leading
# dashes), so this is safe.
set $perf_CURVALS
@@ -1292,7 +1217,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 +1227,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 +1237,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 +1247,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 +1257,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 +1267,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,16 +1277,16 @@ 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
$ECHO
$ECHO "THE BENCHMARK ANALYSIS DID NOT COMPLETE SUCCESSFULLY."
$ECHO "THE BENCHARK ANALYSIS DID NOT COMPLETE SUCCESSFULLY."
$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 +1301,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
@@ -1492,8 +1417,8 @@ else
$ECHO
blankit=no
# BSD+
look_for executable "a sysctl command" SYSCTL_CMD `echo "$PATH" | tr ":" "\n" | tr " " "\ " | sed 's/$/\/sysctl/g'`
# BSD
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 +1433,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 +1446,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 +1459,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"
@@ -1559,19 +1484,6 @@ else
blankit=yes
fi
# Linux+
look_for executable "an lscpu command" LSCPU_CMD `echo "$PATH" | tr ":" "\n" | tr " " "\ " | sed 's/$/\/lscpu/g'`
if test ! "x$LSCPU_CMD" = "x" ; then
$ECHO "Collecting system CPU information (via $LSCPU_CMD)"
preQUIET="$QUIET"
QUIET=1
$ECHO "==============================================================================="
$ECHO "`$LSCPU_CMD 2>&1`"
$ECHO
QUIET="$preQUIET"
blankit=yes
fi
if test "x$blankit" = "xyes" ; then
$ECHO
fi
@@ -1579,12 +1491,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
View File
@@ -2,7 +2,7 @@
# T R Y . S H
# BRL-CAD
#
# Copyright (c) 2004-2016 United States Government as represented by
# Copyright (c) 2004-2011 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
View File
@@ -2,7 +2,7 @@
# V I E W D I F F . S H
# BRL-CAD
#
# Copyright (c) 2004-2016 United States Government as represented by
# Copyright (c) 2004-2011 United States Government as represented by
# the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
Vendored
-225
View File
@@ -1,225 +0,0 @@
#!/bin/sh
#
# This is a simple script to translate autotools style
# configure options into CMake variables. The resulting
# translation is then run as a CMake configure.
srcpath=$(dirname $0)
options="$srcpath"
while [ "$1" != "" ]
do
case $1
in
--enable-all) options="$options -DBRLCAD_BUNDLED_LIBS=ON";
shift;;
--disable-all) options="$options -DBRLCAD_BUNDLED_LIBS=OFF";
shift;;
--enable-opengl) options="$options -DBRLCAD_ENABLE_OPENGL=ON";
shift;;
--disable-opengl) options="$options -DBRLCAD_ENABLE_OPENGL=OFF";
shift;;
--enable-runtime-debug) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=ON";
shift;;
--disable-runtime-debug) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=OFF";
shift;;
--enable-run-time-debug) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=ON";
shift;;
--disable-run-time-debug) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=OFF";
shift;;
--enable-runtime-debugging) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=ON";
shift;;
--disable-runtime-debugging) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=OFF";
shift;;
--enable-run-time-debugging) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=ON";
shift;;
--disable-run-time-debugging) options="$options -DBRLCAD_ENABLE_RUNTIME_DEBUG=OFF";
shift;;
--enable-debug) options="$options -DBRLCAD_FLAGS_DEBUG=ON";
shift;;
--disable-debug) options="$options -DBRLCAD_FLAGS_DEBUG=OFF";
shift;;
--enable-flags-debug) options="$options -DBRLCAD_FLAGS_DEBUG=ON";
shift;;
--disable-flags-debug) options="$options -DBRLCAD_FLAGS_DEBUG=OFF";
shift;;
--enable-debug-flags) options="$options -DBRLCAD_FLAGS_DEBUG=ON";
shift;;
--disable-debug-flags) options="$options -DBRLCAD_FLAGS_DEBUG=OFF";
shift;;
--enable-warnings) options="$options -DBRLCAD_ENABLE_COMPILER_WARNINGS=ON";
shift;;
--disable-warnings) options="$options -DBRLCAD_ENABLE_COMPILER_WARNINGS=OFF";
shift;;
--enable-compiler-warnings) options="$options -DBRLCAD_ENABLE_COMPILER_WARNINGS=ON";
shift;;
--disable-compiler-warnings) options="$options -DBRLCAD_ENABLE_COMPILER_WARNINGS=OFF";
shift;;
--enable-strict) options="$options -DBRLCAD_ENABLE_STRICT=ON";
shift;;
--disable-strict) options="$options -DBRLCAD_ENABLE_STRICT=OFF";
shift;;
--enable-strict-compile) options="$options -DBRLCAD_ENABLE_STRICT=ON";
shift;;
--disable-strict-compile) options="$options -DBRLCAD_ENABLE_STRICT=OFF";
shift;;
--enable-strict-compile-flags) options="$options -DBRLCAD_ENABLE_STRICT=ON";
shift;;
--disable-strict-compile-flags) options="$options -DBRLCAD_ENABLE_STRICT=OFF";
shift;;
--enable-all-cxx) options="$options -DENABLE_ALL_CXX_COMPILE=ON";
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";
shift;;
--enable-extra-docs) options="$options -DBRLCAD_EXTRADOCS=ON";
shift;;
--disable-extra-docs) options="$options -DBRLCAD_EXTRADOCS=OFF";
shift;;
--enable-docbook) options="$options -DBRLCAD_EXTRADOCS=ON";
shift;;
--disable-docbook) options="$options -DBRLCAD_EXTRADOCS=OFF";
shift;;
--enable-lemon) options="$options -DBRLCAD_LEMON=BUNDLED";
shift;;
--disable-lemon) options="$options -DBRLCAD_LEMON=SYSTEM";
shift;;
--enable-re2c) options="$options -DBRLCAD_RE2C=BUNDLED";
shift;;
--disable-re2c) options="$options -DBRLCAD_RE2C=SYSTEM";
shift;;
--enable-perplex) options="$options -DBRLCAD_PERPLEX=BUNDLED";
shift;;
--disable-perplex) options="$options -DBRLCAD_PERPLEX=SYSTEM";
shift;;
--enable-astyle) options="$options -DBRLCAD_ASTYLE=BUNDLED";
shift;;
--disable-astyle) options="$options -DBRLCAD_ASTYLE=SYSTEM";
shift;;
--enable-xsltproc) options="$options -DBRLCAD_XSLTPROC=BUNDLED";
shift;;
--disable-xsltproc) options="$options -DBRLCAD_XSLTPROC=SYSTEM";
shift;;
--enable-xmllint) options="$options -DBRLCAD_XMLLINT=BUNDLED";
shift;;
--disable-xmllint) options="$options -DBRLCAD_XMLLINT=SYSTEM";
shift;;
--enable-regex) options="$options -DBRLCAD_REGEX=BUNDLED";
shift;;
--disable-regex) options="$options -DBRLCAD_REGEX=SYSTEM";
shift;;
--enable-zlib) options="$options -DBRLCAD_ZLIB=BUNDLED";
shift;;
--disable-zlib) options="$options -DBRLCAD_ZLIB=SYSTEM";
shift;;
--enable-libz) options="$options -DBRLCAD_ZLIB=BUNDLED";
shift;;
--disable-libz) options="$options -DBRLCAD_ZLIB=SYSTEM";
shift;;
--enable-tinycthread) options="$options -DBRLCAD_TINYCTHREAD=BUNDLED";
shift;;
--disable-tinycthread) options="$options -DBRLCAD_TINYCTHREAD=SYSTEM";
shift;;
--enable-termlib) options="$options -DBRLCAD_TERMLIB=BUNDLED";
shift;;
--disable-termlib) options="$options -DBRLCAD_TERMLIB=SYSTEM";
shift;;
--enable-netpbm) options="$options -DBRLCAD_NETPBM=BUNDLED";
shift;;
--disable-netpbm) options="$options -DBRLCAD_NETPBM=SYSTEM";
shift;;
--enable-png) options="$options -DBRLCAD_PNG=BUNDLED";
shift;;
--disable-png) options="$options -DBRLCAD_PNG=SYSTEM";
shift;;
--enable-utahrle) options="$options -DBRLCAD_UTAHRLE=BUNDLED";
shift;;
--disable-utahrle) options="$options -DBRLCAD_UTAHRLE=SYSTEM";
shift;;
--enable-tcl) options="$options -DBRLCAD_TCL=BUNDLED";
shift;;
--disable-tcl) options="$options -DBRLCAD_TCL=SYSTEM";
shift;;
--enable-tk) options="$options -DBRLCAD_TK=BUNDLED";
shift;;
--disable-tk) options="$options -DBRLCAD_TK=SYSTEM";
shift;;
--enable-itcl) options="$options -DBRLCAD_ITCL=BUNDLED";
shift;;
--disable-itcl) options="$options -DBRLCAD_ITCL=SYSTEM";
shift;;
--enable-itk) options="$options -DBRLCAD_ITK=BUNDLED";
shift;;
--disable-itk) options="$options -DBRLCAD_ITK=SYSTEM";
shift;;
--enable-iwidgets) options="$options -DBRLCAD_IWIDGETS=BUNDLED";
shift;;
--disable-iwidgets) options="$options -DBRLCAD_IWIDGETS=SYSTEM";
shift;;
--enable-tkhtml) options="$options -DBRLCAD_TKHTML=BUNDLED";
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";
shift;;
--enable-opennurbs) options="$options -DBRLCAD_OPENNURBS=BUNDLED";
shift;;
--disable-opennurbs) options="$options -DBRLCAD_OPENNURBS=SYSTEM";
shift;;
--enable-spr) options="$options -DBRLCAD_SPR=BUNDLED";
shift;;
--disable-spr) options="$options -DBRLCAD_SPR=SYSTEM";
shift;;
--enable-scl) options="$options -DBRLCAD_SC=BUNDLED";
shift;;
--disable-scl) options="$options -DBRLCAD_SC=SYSTEM";
shift;;
--enable-step) options="$options -DBRLCAD_SC=BUNDLED";
shift;;
--disable-step) options="$options -DBRLCAD_SC=SYSTEM";
shift;;
--enable-step-class-libraries) options="$options -DBRLCAD_SC=BUNDLED";
shift;;
--disable-step-class-libraries) options="$options -DBRLCAD_SC=SYSTEM";
shift;;
--enable-vds) options="$options -DBRLCAD_VDS=BUNDLED";
shift;;
--disable-vds) options="$options -DBRLCAD_VDS=SYSTEM";
shift;;
--enable-openscenegraph) options="$options -DBRLCAD_OSG=BUNDLED";
shift;;
--disable-openscenegraph) options="$options -DBRLCAD_OSG=SYSTEM";
shift;;
--enable-gdiam) options="$options -DBRLCAD_GDIAM=BUNDLED";
shift;;
--disable-gdiam) options="$options -DBRLCAD_GDIAM=SYSTEM";
shift;;
--enable-bullet) options="$options -DBRLCAD_BULLET=BUNDLED";
shift;;
--disable-bullet) options="$options -DBRLCAD_BULLET=SYSTEM";
shift;;
--prefix=*) inputstr=$1;
options="$options -DCMAKE_INSTALL_PREFIX=${inputstr#--prefix=}";
shift;;
*) echo "Warning: unknown option $1";
shift;;
esac
done
echo cmake $options
cmake $options
+4593
View File
File diff suppressed because it is too large Load Diff
-107
View File
@@ -1,107 +0,0 @@
set(G_BENCHMARK_MODELS
bldg391.asc
m35.asc
moss.asc
sphflake.asc
star.asc
world.asc
)
set(G_SAMPLE_MODELS
aet.asc
axis.asc
boolean-ops.asc
castle.asc
cornell.asc
cornell-kunigami.asc
cray.asc
crod.asc
cube.asc
demo.asc
galileo.asc
goliath.asc
havoc.asc
kman.asc
ktank.asc
lgt-test.asc
operators.asc
pic.asc
pinewood.asc
prim.asc
tank_car.asc
terra.asc
toyjeep.asc
truck.asc
wave.asc
woodsman.asc
xmp.asc
)
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)
add_subdirectory(comgeom)
add_subdirectory(nist)
add_subdirectory(faa)
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)
CMAKEFILES(
cornell.rt
cube.rt
db.php
include
)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+103
View File
@@ -0,0 +1,103 @@
SUBDIRS = include
A2G=$(top_builddir)/src/conv/asc2g
G2A=$(top_builddir)/src/conv/g2asc
# gmake seems to prefix the source .asc with the appropriate srcdir
# automagically... the library path is set for Tcl/Tk since libtool
# won't do it for us for non libtool libs. make them all depend on a
# single file so that asc2g runs at least once to completion so the
# wrapper script doesn't fail when compiling in parallel.
.asc.g: operators.asc2g
@i=0 ; while [ ! -f lockfile ] && [ $$i -lt 10 ] ; do sleep 1 ; i=`expr $$i + 1` ; done
@echo $(A2G) $< $@ ; \
LD_LIBRARY_PATH=$(top_builddir)/src/other/tcl/unix:$(top_builddir)/src/other/tk/unix:$$LD_LIBRARY_PATH \
DYLD_LIBRARY_PATH=$(top_builddir)/src/other/tcl/unix:$(top_buildir)/src/other/tk/unix:$$DYLD_LIBRARY_PATH \
$(A2G) `if test -e $< ; then echo $< ; else echo $(top_srcdir)/db/$< ; fi` $@
# cause asc2g to kick off so that it compiles lt-asc2g and avoids
# parallel build failures. use a simple file locking mechanism.
operators.asc2g: operators.asc $(top_builddir)/src/conv/asc2g
@rm -f lockfile
@if test -x $(A2G) ; then \
echo $(A2G) operators.asc $@ ; \
LD_LIBRARY_PATH=$(top_builddir)/src/other/tcl/unix:$(top_builddir)/src/other/tk/unix:$$LD_LIBRARY_PATH \
DYLD_LIBRARY_PATH=$(top_builddir)/src/other/tcl/unix:$(top_buildir)/src/other/tk/unix:$$DYLD_LIBRARY_PATH \
$(A2G) `if test -e operators.asc ; then echo operators.asc ; else echo $(top_srcdir)/db/operators.asc ; fi` $@ ; \
else \
echo "ls -lad $(A2G)" ; \
echo "`ls -lad $(A2G)`" ; \
echo "$(A2G) does not exist" ; \
fi
@touch lockfile
BENCHMARK_MODELS = \
bldg391.asc \
m35.asc \
moss.asc \
sphflake.asc \
star.asc \
world.asc
MODELS = \
$(BENCHMARK_MODELS) \
axis.asc \
boolean-ops.asc \
castle.asc \
cornell.asc \
cray.asc \
crod.asc \
cube.asc \
demo.asc \
galileo.asc \
goliath.asc \
havoc.asc \
kman.asc \
ktank.asc \
lgt-test.asc \
operators.asc \
pic.asc \
pinewood.asc \
prim.asc \
tank_car.asc \
terra.asc \
toyjeep.asc \
truck.asc \
wave.asc \
woodsman.asc \
xmp.asc
EXTRA_DIST = \
${MODELS} \
db.php \
terra.dsp
dbdir = $(BRLCAD_DATA)/db
if INSTALL_MODELS
BUILT_SOURCES = \
operators.asc2g \
${MODELS:asc=g}
db_DATA = \
$(BUILT_SOURCES) \
terra.dsp
else !INSTALL_MODELS
BUILT_SOURCES = \
operators.asc2g \
${BENCHMARK_MODELS:asc=g}
db_DATA = $(BUILT_SOURCES)
endif
# end INSTALL_MODELS
MOSTLYCLEANFILES = \
${BUILT_SOURCES} \
lockfile
DEPS=src/conv
include $(top_srcdir)/misc/Makefile.defs
-68
View File
@@ -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
+2
View File
@@ -125,6 +125,7 @@ M u vest.r 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.0000000000
M u labwall5.r 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 17412
M u labwall6.r 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 17412
M u labwall8.r 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 17412
M u midwall.r 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 17412
M u labwall7.r 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 17412
S 20 open2 1 4.700000000000e+01 8.360000000000e+02 0.000000000000e+00 -9.400000000000e+01 0.000000000000e+00 0.000000000000e+00 -9.400000000000e+01 0.000000000000e+00 1.320000000000e+02 0.000000000000e+00 0.000000000000e+00 1.320000000000e+02 0.000000000000e+00 1.200000000000e+01 0.000000000000e+00 -9.400000000000e+01 1.200000000000e+01 0.000000000000e+00 -9.400000000000e+01 1.200000000000e+01 1.320000000000e+02 0.000000000000e+00 1.200000000000e+01 1.320000000000e+02
S 20 blastsection1 1 3.180000000000e+02 1.880000000000e+02 -1.200000000000e+01 -2.400000000000e+02 0.000000000000e+00 0.000000000000e+00 -2.400000000000e+02 0.000000000000e+00 1.560000000000e+02 0.000000000000e+00 0.000000000000e+00 1.560000000000e+02 0.000000000000e+00 4.800000000000e+01 0.000000000000e+00 -2.400000000000e+02 4.800000000000e+01 0.000000000000e+00 -2.400000000000e+02 4.800000000000e+01 1.560000000000e+02 0.000000000000e+00 4.800000000000e+01 1.560000000000e+02
@@ -370,6 +371,7 @@ M u blastchamber2 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000
M u loadroom 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 17411
M u magroom 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 17411
M u beam.r 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 17411
M u equip 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 17411
C N lab2 -1 0 12 17682 0 0 0 0 0 0
M u lab2.r 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 17392
M u labwall1.r 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 0.000000000000e+00 1.000000000000e+00 17392
File diff suppressed because it is too large Load Diff
Binary file not shown.
-46
View File
@@ -1,46 +0,0 @@
set(COMGEOM_V5_MODELS
ADA073408.comgeom
)
macro(ADD_COMGEOM_V5_G_TARGET comgeom_model folder)
string(REGEX REPLACE "([0-9a-z]*).comgeom" "\\1" comgeom_model_root "${comgeom_model}")
set(output_file ${bin_root}/${DATA_DIR}/db/${comgeom_model_root}.g)
set(log_file ${CMAKE_CURRENT_BINARY_DIR}/${comgeom_model_root}.log)
add_custom_command(
OUTPUT ${output_file}
COMMAND ${CMAKE_COMMAND} -E remove ${output_file}
COMMAND comgeom-g -v 5 ${CMAKE_CURRENT_SOURCE_DIR}/${comgeom_model} ${output_file} > ${log_file} 2>&1
DEPENDS comgeom-g ${CMAKE_CURRENT_SOURCE_DIR}/${comgeom_model}
)
add_custom_target(${comgeom_model_root}.g ALL DEPENDS ${output_file})
set_target_properties(${comgeom_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}")
set(LOG_FILES "${LOG_FILES};${log_file}")
DISTCLEAN(${log_file})
endmacro(ADD_COMGEOM_V5_G_TARGET comgeom_model folder)
foreach(comgeom_input ${COMGEOM_V5_MODELS})
ADD_COMGEOM_V5_G_TARGET(${comgeom_input} "BRL-CAD Geometry Models/Sample")
endforeach(comgeom_input ${COMGEOM_V5_MODELS})
CMAKEFILES(${COMGEOM_V5_MODELS})
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${BUILT_MODELS}")
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${LOG_FILES}")
CMAKEFILES(
README_ADA073408
ADA073408_inputs.tar.gz
)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-17
View File
@@ -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.
-28
View File
@@ -1,28 +0,0 @@
title {Parts of: Untitled v4 BRL-CAD Database}
units mm
put {ceiling2.s} arb8 V1 {213 548.7000122069999861196266 227} V2 {343 548.7000122069999861196266 227} V3 {343 548.9013314395830320790992 227} V4 {213 548.9013314395830320790992 227} V5 {213 548.7000122069999861196266 332} V6 {343 548.7000122069999861196266 332} V7 {343 548.9013314395830320790992 332} V8 {213 548.9013314395830320790992 332}
put {floor.s} arb8 V1 {0 -10 0} V2 {556 -10 0} V3 {556 0 0} V4 {0 0 0} V5 {0 -10 559.2000122069999861196266} V6 {556 -10 559.2000122069999861196266} V7 {556 0 559.2000122069999861196266} V8 {0 0 559.2000122069999861196266}
put {floor.r} comb region yes tree {l floor.s}
attr set {floor.r} {region} {R} {shader} {osl {shadername red}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/0/0}
put {light.s} arb8 V1 {213 548.7999877930000138803734 227} V2 {343 548.7999877930000138803734 227} V3 {343 548.8999877944901299997582 227} V4 {213 548.8999877944901299997582 227} V5 {213 548.7999877930000138803734 332} V6 {343 548.7999877930000138803734 332} V7 {343 548.8999877944901299997582 332} V8 {213 548.8999877944901299997582 332}
put {light.r} comb region yes tree {l light.s}
attr set {light.r} {region} {R} {shader} {osl {shadername emitter#power#float#75.0}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
put {right_wall.s} arb8 V1 {-10 -10 0} V2 {0 -10 0} V3 {0 558.7999877930000138803734 0} V4 {-10 558.7999877930000138803734 0} V5 {-10 -10 569.2000122069999861196266} V6 {0 -10 569.2000122069999861196266} V7 {0 558.7999877930000138803734 569.2000122069999861196266} V8 {-10 558.7999877930000138803734 569.2000122069999861196266}
put {right_wall.r} comb region yes tree {l right_wall.s}
attr set {right_wall.r} {region} {R} {shader} {osl {shadername blue}} {region_id} {1003} {material_id} {1} {los} {100} {color} {0/0/255}
put {short_box.s} arb8 V1 {130 0 65} V2 {82 0 225} V3 {240 0 272} V4 {290 0 114} V5 {130 165 65} V6 {82 165 225} V7 {240 165 272} V8 {290 165 114}
put {short_box.r} comb region yes tree {l short_box.s}
attr set {short_box.r} {region} {R} {shader} {osl {shadername gen_color#layername#c1#base#color#1.0#0.0#1.0, shadername gen_color#layername#c2#base#color#0.0#1.0#0.0, shadername checker#layername#chk#K#float#4.0, join c1#Cout#chk#Cw join c2#Cout#chk#Cb}} {region_id} {1006} {material_id} {1} {los} {100} {color} {255/255/0}
put {left_wall.s} arb8 V1 {556 -10 0} V2 {566 -10 0} V3 {566 558.7999877930000138803734 0} V4 {556 558.7999877930000138803734 0} V5 {556 -10 569.2000122069999861196266} V6 {566 -10 569.2000122069999861196266} V7 {566 558.7999877930000138803734 569.2000122069999861196266} V8 {556 558.7999877930000138803734 569.2000122069999861196266}
put {left_wall.r} comb region yes tree {l left_wall.s}
attr set {left_wall.r} {region} {R} {shader} {osl {shadername blue}} {region_id} {1004} {material_id} {1} {los} {100} {color} {0/0/255}
put {all.g} comb region no tree {u {u {u {l light.r} {l back_wall.r}} {u {l tall_box.r} {l floor.r}}} {u {u {l right_wall.r} {l left_wall.r}} {u {l short_box.r} {l ceiling.r}}}}
put {tall_box.s} arb8 V1 {423 330 247} V2 {265 330 296} V3 {314 330 456} V4 {472 330 406} V5 {423 0 247} V6 {265 0 296} V7 {314 0 456} V8 {472 0 406}
put {back_wall.s} arb8 V1 {0 -10 559.2000122069999861196266} V2 {556 -10 559.2000122069999861196266} V3 {556 558.7999877930000138803734 559.2000122069999861196266} V4 {0 558.7999877930000138803734 559.2000122069999861196266} V5 {0 -10 569.2000122069999861196266} V6 {556 -10 569.2000122069999861196266} V7 {556 558.7999877930000138803734 569.2000122069999861196266} V8 {0 558.7999877930000138803734 569.2000122069999861196266}
put {tall_box.r} comb region yes tree {l tall_box.s}
attr set {tall_box.r} {region} {R} {shader} {osl {shadername mirror}} {region_id} {1007} {material_id} {1} {los} {100} {color} {255/255/255}
put {back_wall.r} comb region yes tree {l back_wall.s}
attr set {back_wall.r} {region} {R} {shader} {osl {shadername blue}} {region_id} {1002} {material_id} {1} {los} {100} {color} {0/0/255}
put {ceiling.s} arb8 V1 {0 548.7999877930000138803734 0} V2 {556 548.7999877930000138803734 0} V3 {556 558.7999877930000138803734 0} V4 {0 558.7999877930000138803734 0} V5 {0 548.7999877930000138803734 559.2000122069999861196266} V6 {556 548.7999877930000138803734 559.2000122069999861196266} V7 {556 558.7999877930000138803734 559.2000122069999861196266} V8 {0 558.7999877930000138803734 559.2000122069999861196266}
put {ceiling.r} comb region yes tree {- {l ceiling.s} {l ceiling2.s}}
attr set {ceiling.r} {region} {R} {shader} {osl {shadername blue}} {region_id} {1001} {material_id} {1} {los} {100} {color} {0/0/255}
-25
View File
@@ -1,25 +0,0 @@
#!/bin/sh
#
# Example render script that sets up a prototypical view for the
# Cornell box. Alas, rt view scripts loaded into MGED only restore
# orientation and not view positioning so an extra repositioning step
# is required.
###
echo "************************ NOTICE ******************************"
echo "To restore the originally intended view in MGED, run loadview"
echo "on this script followed by: view center 278 -150 2500"
echo "************************ NOTICE ******************************"
rt -M -p55 \
$*\
cornell.g\
'all.g' \
<<EOF
viewsize 6.000000000000000e+03;
orientation 0.000000000000000e+00 9.961946980917455e-01 8.715574274765824e-02 0.000000000000000e+00;
eye_pt 2.780000000000000e+02 3.709445330007912e+02 -4.544232590366239e+02;
start 0; clean;
end;
EOF
+9 -11
View File
@@ -2,7 +2,7 @@
/* D B . P H P
* BRL-CAD
*
* Copyright (c) 2004-2016 United States Government as represented by
* Copyright (c) 2004-2011 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
?>
-856
View File
@@ -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
-44
View File
@@ -1,44 +0,0 @@
set(FAA_SAMPLE_MODELS
Business_Jet.fg4
Generic_Twin.fg4
)
macro(ADD_FAA_G_TARGET faa_model folder)
string(REGEX REPLACE "([0-9a-z]*).fg4" "\\1" faa_model_root "${faa_model}")
set(output_file ${bin_root}/${DATA_DIR}/db/${faa_model_root}.g)
set(log_file ${CMAKE_CURRENT_BINARY_DIR}/${faa_model_root}.log)
add_custom_command(
OUTPUT ${output_file}
COMMAND fast4-g ${CMAKE_CURRENT_SOURCE_DIR}/${faa_model} ${output_file} > ${log_file} 2>&1
DEPENDS fast4-g ${CMAKE_CURRENT_SOURCE_DIR}/${faa_model}
)
add_custom_target(${faa_model_root}.g ALL DEPENDS ${output_file})
set_target_properties(${faa_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}")
set(LOG_FILES "${LOG_FILES};${log_file}")
DISTCLEAN(${log_file})
endmacro(ADD_FAA_G_TARGET faa_model folder)
foreach(faa_input ${FAA_SAMPLE_MODELS})
ADD_FAA_G_TARGET(${faa_input} "BRL-CAD Geometry Models/Sample")
endforeach(faa_input ${FAA_SAMPLE_MODELS})
CMAKEFILES(
${FAA_SAMPLE_MODELS}
README
)
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${BUILT_MODELS}")
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${LOG_FILES}")
# 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
-8
View File
@@ -1,8 +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
+6
View File
@@ -0,0 +1,6 @@
EXTRA_DIST = \
ctype.inc \
debug.inc
include $(top_srcdir)/misc/Makefile.defs
-111
View File
@@ -1,111 +0,0 @@
set(NIST_SAMPLE_STEP_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_11.stp
)
set(NIST_SAMPLE_3DM_MODELS
NIST_MBE_PMI_7-10.3dm
)
macro(ADD_NIST_STEP_TARGET step_model folder)
string(REGEX REPLACE "([0-9a-z]*).stp" "\\1" step_model_root "${step_model}")
set(output_file ${bin_root}/${DATA_DIR}/db/${step_model_root}.g)
set(log_file ${CMAKE_CURRENT_BINARY_DIR}/${step_model_root}.log)
add_custom_command(
OUTPUT ${output_file}
COMMAND step-g -O ${output_file} ${CMAKE_CURRENT_SOURCE_DIR}/${step_model} > ${log_file} 2>&1
DEPENDS step-g ${CMAKE_CURRENT_SOURCE_DIR}/${step_model}
)
add_custom_target(${step_model_root}.g ALL DEPENDS ${output_file})
set_target_properties(${step_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}")
set(LOG_FILES "${LOG_FILES};${log_file}")
DISTCLEAN(${log_file})
endmacro(ADD_NIST_STEP_TARGET step_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)
# The general pattern of the BRL-CAD build is to use CMAKE_CFG_INTDIR when
# multi-configuration builds complicate the location of binaries. In this
# case, however, we are using a generated script with a different mechanism
# for handling this situation, and we need to update the executable paths
# accordingly if they are configuration dependent.
if(CMAKE_CONFIGURATION_TYPES)
string(REPLACE "${CMAKE_CFG_INTDIR}" "\${BUILD_TYPE}" rbin_root "${bin_root}")
else(CMAKE_CONFIGURATION_TYPES)
set(rbin_root "${bin_root}")
endif(CMAKE_CONFIGURATION_TYPES)
# Use the CMake executable to figure out if we need an extension
get_filename_component(EXE_EXT "${CMAKE_COMMAND}" EXT)
macro(ADD_NIST_3DM_TARGET rhino_model folder)
set(CMD_EXEC ${rbin_root}/${BIN_DIR}/3dm-g${EXE_EXT})
string(REGEX REPLACE "([0-9a-z]*).3dm" "\\1" rhino_model_root "${rhino_model}")
set(output_file ${rbin_root}/${DATA_DIR}/db/${rhino_model_root}.g)
set(log_file ${CMAKE_CURRENT_BINARY_DIR}/${rhino_model_root}.log)
set(STDOUT_LOG "${log_file}")
set(STDERR_LOG "${log_file}")
set(CMD_ARGS "-o \"${output_file}\" \"${CMAKE_CURRENT_SOURCE_DIR}/${rhino_model}\"")
configure_file(${BRLCAD_CMAKE_DIR}/builddir_cmd.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/3dm-g.cmake @ONLY)
set(output_file ${bin_root}/${DATA_DIR}/db/${rhino_model_root}.g)
add_custom_command(
OUTPUT ${output_file}
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/3dm-g.cmake
DEPENDS 3dm-g ${CMAKE_CURRENT_SOURCE_DIR}/${rhino_model}
)
add_custom_target(${rhino_model_root}.g ALL DEPENDS ${output_file})
set_target_properties(${rhino_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}")
set(LOG_FILES "${LOG_FILES};${log_file}")
DISTCLEAN(${log_file})
endmacro(ADD_NIST_3DM_TARGET rhino_model folder)
foreach(step_input ${NIST_SAMPLE_STEP_MODELS})
ADD_NIST_STEP_TARGET(${step_input} "BRL-CAD Geometry Models/Sample")
endforeach(step_input ${NIST_SAMPLE_STEP_MODELS})
CMAKEFILES(${NIST_SAMPLE_STEP_MODELS})
foreach(rhino_input ${NIST_SAMPLE_3DM_MODELS})
ADD_NIST_3DM_TARGET(${rhino_input} "BRL-CAD Geometry Models/Sample")
endforeach(rhino_input ${NIST_SAMPLE_3DM_MODELS})
CMAKEFILES(${NIST_SAMPLE_3DM_MODELS})
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${BUILT_MODELS}")
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${LOG_FILES}")
CMAKEFILES(
README
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.
-37
View File
@@ -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.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+59 -58
View File
@@ -1,64 +1,65 @@
title {Pinewood Derby Car Model}
units mm
put {outer-tire-upper-hollow.s} tgc V {0 0 0} H {0 0 0.9000000000000000222044605} A {0 -0.9000000000000000222044605 0} B {0.9000000000000000222044605 0 0} C {0 -0.9000000000000000222044605 0} D {0.9000000000000000222044605 0 0}
put {inner-cyl-2.s} tgc V {0 0 0} H {0 0 0.5999999999999999777955395} A {0 -0.800000000000000044408921 0} B {0.800000000000000044408921 0 0} C {0 -0.800000000000000044408921 0} D {0.800000000000000044408921 0 0}
put {center-cyl.s} tgc V {0 0 -0.1000000000000000055511151} H {0 0 0.5} A {0 -0.4000000000000000222044605 0} B {0.4000000000000000222044605 0 0} C {0 -0.4000000000000000222044605 0} D {0.4000000000000000222044605 0 0}
put {outer-tire.c} comb region no tree {u {- {- {l outer-cyl.s} {l outer-hollow-cyl.s}} {l outer-tire-upper-hollow.s}} {- {- {l wheel-outer-bump.s} {l outer-hollow-cyl.s}} {l outer-tire-upper-hollow.s}}}
put {center-cyl.c} comb region no tree {u {- {l center-cyl.s} {l center-cyl-hollow.s}} {- {l center-cyl-bump.s} {l center-cyl-hollow.s}}}
put {right-front-cut.s} arb8 V1 {-0.8518329999999998403126256 23.80319999999999680539986 150.5082181818181936705514} V2 {-0.8518329999999998403126256 10.9999999999999911182158 154.0000000000000284217094} V3 {-0.8518329999999998403126256 5.999999999999991118215803 177.9999999999998863131623} V4 {-0.851832999999999951334928 23.80320000000000035811354 177.9999999999999715782906} V5 {7.999999999999998223643161 23.80319999999999680539986 150.5082181818181936705514} V6 {7.999999999999998223643161 10.9999999999999911182158 154.0000000000000284217094} V7 {7.999999999999995559107901 5.999999999999991118215803 177.9999999999998863131623} V8 {7.999999999999996447286321 23.80320000000000035811354 177.9999999999999715782906}
put {center-cyl-bump.s} tgc V {0 0 -0.1000000000000000055511151} H {0 0 0.5999999999999999777955395} A {0 -0.2000000000000000111022302 0} B {0.2000000000000000111022302 0 0} C {0 -0.2000000000000000111022302 0} D {0.2000000000000000111022302 0 0}
put {outer-cyl.s} tgc V {0 0 0} H {0 0 0.800000000000000044408921} A {0 -1.5 0} B {1.5 0 0} C {0 -1.5 0} D {1.5 0 0}
put {inner-cyl.s} tgc V {0 0 0} H {0 0 0.9000000000000000222044605} A {0 -0.9000000000000000222044605 0} B {0.9000000000000000222044605 0 0} C {0 -0.9000000000000000222044605 0} D {0.9000000000000000222044605 0 0}
put {axel-cut-2.c} comb region no tree {- {l axel-cutout-2a.s} {l axel-cutout-2.s}}
put {axel-cut-1.c} comb region no tree {- {l axel-cutout-1a.s} {l axel-cutout-1.s}}
put {cuttest1.s} tgc V {21 -12.5 67} H {9.009813205160669449917104E-15 23.5329866686764859196046 3.449487102286835224083511E-30} A {-1.722865014715246889664968E-14 0 45} B {9 -3.445730029430494568190841E-15 3.445730029430493384899483E-15} C {-1.722865014715246889664968E-14 0 45} D {9 -3.445730029430494568190841E-15 3.445730029430493384899483E-15}
attr set {_GLOBAL} {regionid_colortable} {}
put {axel.s} tgc V {0 0 0} H {0 63 0} A {0 0 1} B {1 0 0} C {0 0 1} D {1 0 0}
put {inner-cyl.c} comb region no tree {u {- {l inner-cyl.s} {l inner-hollow.cyl.s}} {- {l inner-cyl-2.s} {l inner-cyl-2-hollow.s}}}
put {detail-sphere.s400} ell V {0.1123819780247738431278037 -0.2781551563700361273667738 0.4000000000000000222044605} A {0.01873032967079563820833599 -0.04635919272833936150002287 0} B {0.04635919272833936150002287 0.01873032967079563820833599 0} C {0 0 0.05000000000000000277555756}
put {wheel-well-back.s} arb8 V1 {2 -22 25} V2 {2 22 25} V3 {2 22 27} V4 {2 -22 27} V5 {0 -22 25} V6 {0 22 25} V7 {0 22 27} V8 {0 -22 27}
put {detail-sphere.s300} ell V {-0.2331437884370911595155462 -0.1887961173149513838254165 0.4000000000000000222044605} A {-0.03885729807284853121185364 -0.03146601955249189730423609 0} B {0.03146601955249189730423609 -0.03885729807284853121185364 0} C {0 0 0.05000000000000000277555756}
put {detail-sphere.s200} ell V {-0.2487112717665125871668863 0.1677578710412239437754778 0.4000000000000000222044605} A {-0.04145187862775209786114772 0.0279596451735373285885089 0} B {-0.0279596451735373285885089 -0.04145187862775209786114772 0} C {0 0 0.05000000000000000277555756}
put {detail-sphere.s100} ell V {0.08771151141682095864204882 0.2868914267889106639586316 0.4000000000000000222044605} A {0.0146185852361368287533061 0.04781523779815177732643861 0} B {-0.04781523779815177732643861 0.0146185852361368287533061 0} C {0 0 0.05000000000000000277555756}
put {inner-detail-401.s} tgc V {-0.2996852747327302113333758 0.741747083653429784000366 0.4000000000000000222044605} H {0.2247639560495476862556075 -0.5563103127400722547335477 0} A {0 0 -0.1499999999999999944488849} B {0.1390775781850180636833869 0.05619098901238692156390186 0} C {0 0 -0.01000000000000000020816682} D {0.009271838545667871259170489 0.003746065934159127901875719 0}
put {inner-detail-301.s} tgc V {0.6217167691655764993896582 0.5034563128398703568677774 0.4000000000000000222044605} H {-0.4662875768741823190310924 -0.3775922346299027676508331 0} A {0 0 -0.1499999999999999944488849} B {0.09439805865747569191270827 -0.1165718942185455797577731 0} C {0 0 -0.01000000000000000020816682} D {0.006293203910498379634319566 -0.007771459614569705548481338 0}
put {inner-detail-201.s} tgc V {0.6632300580440335657783635 -0.4473543227765972574161424 0.4000000000000000222044605} H {-0.4974225435330251743337726 0.3355157420824478875509556 0} A {0 0 -0.1499999999999999944488849} B {-0.08387893552061197188773889 -0.1243556358832562935834432 0} C {0 0 -0.01000000000000000020816682} D {-0.005591929034707465023812389 -0.008290375725550419225284848 0}
put {inner-detail-101.s} tgc V {-0.2338973637781892600528977 -0.7650438047704284372230177 0.4000000000000000222044605} H {0.1754230228336419172840976 0.5737828535778213279172633 0} A {0 0 -0.1499999999999999944488849} B {-0.1434457133944553319793158 0.04385575570841047932102441 0} C {0 0 -0.01000000000000000020816682} D {-0.009563047559630355812232416 0.002923717047227365403716526 0}
put {cuttest1.s} tgc V {21 -12.5 67} H {9.009813205160669449917104E-15 23.5329866686764859196046 3.449487102286835224083511E-30} A {-1.722865014715246889664968E-14 0 45} B {9 -3.445730029430494568190841E-15 3.445730029430493384899483E-15} C {-1.722865014715246889664968E-14 0 45} D {9 -3.445730029430494568190841E-15 3.445730029430493384899483E-15}
put {axel-cutout-2a.s} tgc V {0 61 0} H {0 1 0} A {0 0 1} B {1 0 0} C {0 0 1} D {1 0 0}
put {axel-cutout-1a.s} tgc V {0 1 0} H {0 1 0} A {0 0 1} B {1 0 0} C {0 0 1} D {1 0 0}
put {detail-spheres.c} comb region no tree {u {u {u {l detail-sphere.s} {l detail-sphere.s100}} {u {l detail-sphere.s200} {l detail-sphere.s300}}} {l detail-sphere.s400}}
put {left-front-cut.s} arb8 V1 {-0.6130360000000001363673618 -23.96719999999999117790139 150.4634909090908365669748} V2 {-0.6130360000000000253450594 -10.99999999999998934185896 154.0000000000000852651283} V3 {-0.6130360000000000253450594 -6.000000000000002664535259 177.9999999999999431565811} V4 {-0.6130360000000000253450594 -23.96719999999999117790139 177.9999999999999431565811} V5 {8.000000000000001776356839 -23.96719999999999117790139 150.4634909090908365669748} V6 {7.99999999999999911182158 -10.99999999999998934185896 154.0000000000000852651283} V7 {7.999999999999998223643161 -6.000000000000002664535259 177.9999999999999431565811} V8 {8.000000000000003552713679 -23.96719999999999117790139 177.9999999999999431565811}
put {side-cut-right.s} arb8 V1 {9.151327272727264983132045 23.55590000000000827640179 75.30265454545443049028108} V2 {9.886814599336834788138377E-15 23.55590000000001893454282 75.30265454545450154455466} V3 {9.886814599336837943581998E-15 23.55590000000000472368811 131.1315636363635803718353} V4 {9.151327272727243666849972 23.55589999999998696011971 131.1315636363635519501258} V5 {15.99999999999997690736109 10.99999999999999822364316 88.99999999999984368059813} V6 {1.776356839400245337081927E-15 11.00000000000001243449788 88.99999999999995736743585} V7 {1.776356839400252042399621E-15 11.00000000000000355271368 121.9999999999999715782906} V8 {15.99999999999996624922005 10.9999999999999911182158 121.9999999999999573674359}
put {axel-cutout-2a.s} tgc V {0 61 0} H {0 1 0} A {0 0 1} B {1 0 0} C {0 0 1} D {1 0 0}
put {axel-cutout-1a.s} tgc V {0 1 0} H {0 1 0} A {0 0 1} B {1 0 0} C {0 0 1} D {1 0 0}
put {detail-sphere.s400} ell V {0.1123819780247738431278037 -0.2781551563700361273667738 0.4000000000000000222044605} A {0.01873032967079563820833599 -0.04635919272833936150002287 0} B {0.04635919272833936150002287 0.01873032967079563820833599 0} C {0 0 0.05000000000000000277555756}
put {detail-sphere.s300} ell V {-0.2331437884370911595155462 -0.1887961173149513838254165 0.4000000000000000222044605} A {-0.03885729807284853121185364 -0.03146601955249189730423609 0} B {0.03146601955249189730423609 -0.03885729807284853121185364 0} C {0 0 0.05000000000000000277555756}
put {wheel-well-back.s} arb8 V1 {2 -22 25} V2 {2 22 25} V3 {2 22 27} V4 {2 -22 27} V5 {0 -22 25} V6 {0 22 25} V7 {0 22 27} V8 {0 -22 27}
put {detail-sphere.s200} ell V {-0.2487112717665125871668863 0.1677578710412239437754778 0.4000000000000000222044605} A {-0.04145187862775209786114772 0.0279596451735373285885089 0} B {-0.0279596451735373285885089 -0.04145187862775209786114772 0} C {0 0 0.05000000000000000277555756}
put {left-front-cut.s} arb8 V1 {0 -22 151} V2 {0 -11 154} V3 {0 -6 178} V4 {0 -22 178} V5 {8 -22 151} V6 {8 -11 154} V7 {8 -6 178} V8 {8 -22 178}
put {pinewood} comb region no tree {u {u {u {l pinewood_car_body.r} {l tire1.r}} {u {l tire2.r} {l tire3.r}}} {u {u {l tire4.r} {l axel1.r}} {l axel2.r}}}
put {inner-detail-1.s} tgc V {-0.800000000000000044408921 0 0.4000000000000000222044605} H {0.5999999999999999777955395 0 0} A {0 0 -0.1499999999999999944488849} B {0 0.1499999999999999944488849 0} C {0 0 -0.01000000000000000020816682} D {0 0.01000000000000000020816682 0}
put {detail-sphere.s} ell V {0.2999999999999999888977698 0 0.4000000000000000222044605} A {0.05000000000000000277555756 0 0} B {0 0.05000000000000000277555756 0} C {0 0 0.05000000000000000277555756}
put {inner-cyl-2-hollow.s} tgc V {0 0 0} H {0 0 0.800000000000000044408921} A {0 -0.7499999999999998889776975 0} B {0.7499999999999998889776975 0 0} C {0 -0.7499999999999998889776975 0} D {0.7499999999999998889776975 0 0}
put {block6.s} arb8 V1 {18 -12.5 102} V2 {18 10.5 102} V3 {18 10.5 177} V4 {18 -12.5 177} V5 {23.23583984375 -12.5 102} V6 {23.23583984375 10.5 102} V7 {23.23583984375 10.5 177} V8 {23.23583984375 -12.5 177}
put {block5.s} arb8 V1 {2.5 -22 177} V2 {18 -22 102} V3 {18 22 102} V4 {2.5 22 177} V5 {18 -22 177} V6 {18 -22 177} V7 {18 22 177} V8 {18 22 177}
put {block4.s} arb8 V1 {10 -12.5 67} V2 {10 10.5 67} V3 {10 10.5 177} V4 {10 -12.5 177} V5 {21 -5.5 67} V6 {21 2.5 67} V7 {21 2.5 177} V8 {21 -5.5 177}
put {block3.s} arb8 V1 {10 -12.5 0} V2 {10 10.5 0} V3 {10.00000000000000177635684 10.5 67} V4 {10.00000000000000177635684 -12.49999999999999822364316 67.00000000000001421085472} V5 {21 -5.5 0} V6 {21 2.5 0} V7 {21 2.500000000000007105427358 67.00000000000001421085472} V8 {21 -5.5 67}
put {block2.s} arb8 V1 {12.75558857142857327460206 -12.38815357142856932171071 -1.069299999999999695177166} V2 {21.83899999999998797761691 -5.575595000000001633111424 38.67062500000000113686838} V3 {21.83899999999999508304427 2.455820000000009883933672 38.67062499999998692601366} V4 {12.75558857142860702538201 10.40380499999997354620973 -1.069299999999999917221771} V5 {21.83899999999999153033059 -5.575594999999994527684066 -1.069299999999999917221771} V6 {21.83899999999999153033059 -5.575594999999994527684066 -1.069299999999999917221771} V7 {21.83899999999999863575795 2.45582000000001521300419 -1.069299999999999695177166} V8 {21.83899999999999863575795 2.45582000000001521300419 -1.069299999999999695177166}
put {block1.s} arb8 V1 {0 -22 0} V2 {0 22 0} V3 {0 22 177} V4 {0 -22 177} V5 {10 -22 0} V6 {10 22 0} V7 {10 22 177} V8 {10 -22 177}
put {side-cut-left.s} arb8 V1 {0 -23.55600000000000093791641 77.94399999999994577137841} V2 {8.726909090909078514641806 -23.55600000000000093791641 77.94399999999995998223312} V3 {8.726909090909080290998645 -23.55600000000000093791641 130.348727272727245463102} V4 {0 -23.55600000000000093791641 130.3487272727272738848114} V5 {0 -11 90.49999999999994315658114} V6 {18.99999999999998934185896 -11 90.49999999999994315658114} V7 {18.99999999999998934185896 -11 123.4999999999999857891453} V8 {0 -11 123.5000000000000568434189}
put {pinewood_car_body.r} comb region yes tree {u {u {- {- {- {- {- {- {- {l block1.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}} {l block5.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}}} {l side-cut-left.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}}} {l side-cut-right.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}}} {l left-front-cut.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}}} {l right-front-cut.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}}} {l wheel-well-back.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}}} {l wheel-well-front.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}}} {- {l block3.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}} {l block2.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}}}} {- {- {- {l block4.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}} {l cuttest1.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}}} {l block5.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}}} {l block6.s {0 0 1 0 0 -1 0 0 1 0 0 0 0 0 0 1}}}}
attr set {pinewood_car_body.r} {region} {R} {los} {100} {material_id} {1} {region_id} {1000} {shader} {plastic} {color} {255/255/118}
put {axel-cutout-2.s} tgc V {0 61 0} H {0 1 0} A {0 0 0.5999999999999999777955395} B {0.5999999999999999777955395 0 0} C {0 0 0.5999999999999999777955395} D {0.5999999999999999777955395 0 0}
put {axel-cutout-1.s} tgc V {0 1 0} H {0 1 0} A {0 0 0.5999999999999999777955395} B {0.5999999999999999777955395 0 0} C {0 0 0.5999999999999999777955395} D {0.5999999999999999777955395 0 0}
put {tire4.r} comb region yes tree {u {u {u {u {l outer-tire.c {-1 0 0 14 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}} {- {l inner-cyl.c {-1 0 0 14 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {-1 0 0 14 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}}}} {- {l inner-cones.c {-1 0 0 14 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {-1 0 0 14 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}}}} {l detail-spheres.c {-1 0 0 14 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}}} {l center-cyl.c {-1 0 0 14 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}}}
attr set {tire4.r} {region} {R} {shader} {plastic} {region_id} {1001} {material_id} {1} {los} {100} {color} {40/40/40}
put {tire3.r} comb region yes tree {u {u {u {u {l outer-tire.c {1 0 0 14 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}} {- {l inner-cyl.c {1 0 0 14 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {1 0 0 14 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}}}} {- {l inner-cones.c {1 0 0 14 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {1 0 0 14 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}}}} {l detail-spheres.c {1 0 0 14 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}}} {l center-cyl.c {1 0 0 14 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}}}
attr set {tire3.r} {region} {R} {shader} {plastic} {region_id} {1001} {material_id} {1} {los} {100} {color} {40/40/40}
put {tire2.r} comb region yes tree {u {u {u {u {l outer-tire.c {-1 0 0 2.6 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}} {- {l inner-cyl.c {-1 0 0 2.6 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {-1 0 0 2.6 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}}}} {- {l inner-cones.c {-1 0 0 2.6 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {-1 0 0 2.6 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}}}} {l detail-spheres.c {-1 0 0 2.6 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}}} {l center-cyl.c {-1 0 0 2.6 0 0 -1 -2.3 0 -1 0 0.1 0 0 0 0.1}}}
attr set {tire2.r} {region} {R} {shader} {plastic} {region_id} {1001} {material_id} {1} {los} {100} {color} {40/40/40}
put {axel2.r} comb region yes tree {- {- {l axel.s {1 0 0 140 0 1 0 -31.5 0 0 1 1 0 0 0 1}} {l axel-cut-1.c {1 0 0 140 0 1 0 -31.5 0 0 1 1 0 0 0 1}}} {l axel-cut-2.c {1 0 0 140 0 1 0 -31.5 0 0 1 1 0 0 0 1}}}
attr set {axel2.r} {region} {R} {los} {100} {material_id} {1} {region_id} {1000}
put {tire1.r} comb region yes tree {u {u {u {u {l outer-tire.c {1 0 0 2.6 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}} {- {l inner-cyl.c {1 0 0 2.6 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {1 0 0 2.6 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}}}} {- {l inner-cones.c {1 0 0 2.6 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {1 0 0 2.6 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}}}} {l detail-spheres.c {1 0 0 2.6 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}}} {l center-cyl.c {1 0 0 2.6 0 0 1 2.3 0 -1 0 0.1 0 0 0 0.1}}}
attr set {tire1.r} {region} {R} {shader} {plastic} {region_id} {1001} {material_id} {1} {los} {100} {color} {40/40/40}
put {axel1.r} comb region yes tree {- {- {l axel.s {1 0 0 26 0 1 0 -31.5 0 0 1 1 0 0 0 1}} {l axel-cut-1.c {1 0 0 26 0 1 0 -31.5 0 0 1 1 0 0 0 1}}} {l axel-cut-2.c {1 0 0 26 0 1 0 -31.5 0 0 1 1 0 0 0 1}}}
attr set {axel1.r} {region} {R} {los} {100} {material_id} {1} {region_id} {1000}
put {center-cyl-hollow.s} tgc V {0 0 -0.1000000000000000055511151} H {0 0 0.5999999999999999777955395} A {0 -0.1000000000000000055511151 0} B {0.1000000000000000055511151 0 0} C {0 -0.1000000000000000055511151 0} D {0.1000000000000000055511151 0 0}
put {axel.s} tgc V {0 0 0} H {0 63 0} A {0 0 1} B {1 0 0} C {0 0 1} D {1 0 0}
put {detail-sphere.s100} ell V {0.08771151141682095864204882 0.2868914267889106639586316 0.4000000000000000222044605} A {0.0146185852361368287533061 0.04781523779815177732643861 0} B {-0.04781523779815177732643861 0.0146185852361368287533061 0} C {0 0 0.05000000000000000277555756}
put {side-cut-right.s} arb8 V1 {10.0000000000000088817842 22 77} V2 {8.881784197001252323389053E-15 22.00000000000000710542736 77} V3 {8.881784197001252323389053E-15 22.00000000000000710542736 130} V4 {10.00000000000000710542736 21.99999999999999644728632 130.0000000000000284217094} V5 {16 11 89} V6 {1.776356839400250464677811E-15 11.00000000000000710542736 89} V7 {1.776356839400252436830074E-15 11.00000000000000710542736 122.0000000000000284217094} V8 {16 11 122.0000000000000710542736}
put {pinewood_car_body.r} comb region yes tree {u {u {- {- {- {- {- {- {- {l block1.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}} {l block5.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}}} {l side-cut-left.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}}} {l side-cut-right.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}}} {l left-front-cut.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}}} {l right-front-cut.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}}} {l wheel-well-back.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}}} {l wheel-well-front.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}}} {- {l block3.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}} {l block2.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}}}} {- {- {- {l block4.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}} {l cuttest1.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}}} {l block5.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}}} {l block6.s {3.82859e-16 -7.65718e-16 1 -1.68458e-14 -2.93162e-31 -1 -7.65718e-16 0 1 0 -3.82859e-16 0 0 0 0 1}}}}
attr set {pinewood_car_body.r} {region} {R} {rgb} {255/255/118} {oshader} {plastic} {region_id} {1000} {material_id} {1} {los} {100}
put {outer-tire-upper-hollow.s} tgc V {0 0 0} H {0 0 0.9000000000000000222044605} A {0 -0.9000000000000000222044605 0} B {0.9000000000000000222044605 0 0} C {0 -0.9000000000000000222044605 0} D {0.9000000000000000222044605 0 0}
put {right-front-cut.s} arb8 V1 {0 22 151} V2 {0 11 154} V3 {0 6 178} V4 {0 22 178} V5 {8 22 151} V6 {8 11 154} V7 {8 6 178} V8 {8 22 178}
put {inner-cyl-2.s} tgc V {0 0 0} H {0 0 0.5999999999999999777955395} A {0 -0.800000000000000044408921 0} B {0.800000000000000044408921 0 0} C {0 -0.800000000000000044408921 0} D {0.800000000000000044408921 0 0}
put {inner-detail-1.s} tgc V {-0.800000000000000044408921 0 0.4000000000000000222044605} H {0.5999999999999999777955395 0 0} A {0 0 -0.1499999999999999944488849} B {0 0.1499999999999999944488849 0} C {0 0 -0.01000000000000000020816682} D {0 0.01000000000000000020816682 0}
put {axel-cutout-2.s} tgc V {0 61 0} H {0 1 0} A {0 0 0.5999999999999999777955395} B {0.5999999999999999777955395 0 0} C {0 0 0.5999999999999999777955395} D {0.5999999999999999777955395 0 0}
put {inner-cones.c} comb region no tree {u {u {u {l inner-detail-1.s} {l inner-detail-101.s}} {u {l inner-detail-201.s} {l inner-detail-301.s}}} {l inner-detail-401.s}}
put {wheel-well-front.s} arb8 V1 {2 -22 139} V2 {2 22 139} V3 {2 22 141} V4 {2 -22 141} V5 {0 -22 139} V6 {0 22 139} V7 {0 22 141} V8 {0 -22 141}
put {outer-hollow-cyl.s} tgc V {0 0 0} H {0 0 0.5} A {0 -1.199999999999999955591079 0} B {1.199999999999999955591079 0 0} C {0 -1.199999999999999955591079 0} D {1.199999999999999955591079 0 0}
put {wheel-outer-bump.s} eto V {0 0 0.800000000000000044408921} N {0 -8.34544256767107268166427E-16 -1.089884907806513147932037} C {0.281492275734594732394811 0.02689961599649578691262342 0.0008719051763263864019207205} r 1.175024957792653701460495 r_d 0.09511428095492888146189614
put {inner-hollow.cyl.s} tgc V {0 0 0} H {0 0 0.9000000000000000222044605} A {0 -0.800000000000000044408921 0} B {0.800000000000000044408921 0 0} C {0 -0.800000000000000044408921 0} D {0.800000000000000044408921 0 0}
put {inner-cyl-lower-trim.s} tgc V {0 0 0} H {0 0 0.4000000000000000222044605} A {0 -0.9000000000000000222044605 0} B {0.9000000000000000222044605 0 0} C {0 -0.9000000000000000222044605 0} D {0.9000000000000000222044605 0 0}
put {detail-sphere.s} ell V {0.2999999999999999888977698 0 0.4000000000000000222044605} A {0.05000000000000000277555756 0 0} B {0 0.05000000000000000277555756 0} C {0 0 0.05000000000000000277555756}
put {axel-cutout-1.s} tgc V {0 1 0} H {0 1 0} A {0 0 0.5999999999999999777955395} B {0.5999999999999999777955395 0 0} C {0 0 0.5999999999999999777955395} D {0.5999999999999999777955395 0 0}
put {tire4.r} comb region yes tree {u {u {u {u {l outer-tire.c {-1 2.93162e-31 -7.65718e-16 14 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}} {- {l inner-cyl.c {-1 2.93162e-31 -7.65718e-16 14 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {-1 2.93162e-31 -7.65718e-16 14 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}}} {- {l inner-cones.c {-1 2.93162e-31 -7.65718e-16 14 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {-1 2.93162e-31 -7.65718e-16 14 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}}} {l detail-spheres.c {-1 2.93162e-31 -7.65718e-16 14 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}} {l center-cyl.c {-1 2.93162e-31 -7.65718e-16 14 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}}
attr set {tire4.r} {region} {R} {rgb} {0/0/0} {oshader} {plastic} {region_id} {1001} {material_id} {1} {los} {100}
put {tire3.r} comb region yes tree {u {u {u {u {l outer-tire.c {1 0 0 14 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}} {- {l inner-cyl.c {1 0 0 14 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {1 0 0 14 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}}} {- {l inner-cones.c {1 0 0 14 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {1 0 0 14 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}}} {l detail-spheres.c {1 0 0 14 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}} {l center-cyl.c {1 0 0 14 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}}
attr set {tire3.r} {region} {R} {rgb} {0/0/0} {oshader} {plastic} {region_id} {1001} {material_id} {1} {los} {100}
put {tire2.r} comb region yes tree {u {u {u {u {l outer-tire.c {-1 2.93162e-31 -7.65718e-16 2.6 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}} {- {l inner-cyl.c {-1 2.93162e-31 -7.65718e-16 2.6 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {-1 2.93162e-31 -7.65718e-16 2.6 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}}} {- {l inner-cones.c {-1 2.93162e-31 -7.65718e-16 2.6 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {-1 2.93162e-31 -7.65718e-16 2.6 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}}} {l detail-spheres.c {-1 2.93162e-31 -7.65718e-16 2.6 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}} {l center-cyl.c {-1 2.93162e-31 -7.65718e-16 2.6 7.65718e-16 3.82859e-16 -1 -2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}}
attr set {tire2.r} {region} {R} {rgb} {0/0/0} {oshader} {plastic} {region_id} {1001} {material_id} {1} {los} {100}
put {axel2.r} comb region yes tree {- {- {l axel.s {1 0 0 140 0 1 0 -31.5 0 0 1 1 0 0 0 1}} {l axel-cut-1.c {1 0 0 140 0 1 0 -31.5 0 0 1 1 0 0 0 1}}} {l axel-cut-2.c {1 0 0 140 0 1 0 -31.5 0 0 1 1 0 0 0 1}}}
attr set {axel2.r} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
put {tire1.r} comb region yes tree {u {u {u {u {l outer-tire.c {1 0 0 2.6 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}} {- {l inner-cyl.c {1 0 0 2.6 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {1 0 0 2.6 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}}} {- {l inner-cones.c {1 0 0 2.6 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}} {l inner-cyl-lower-trim.s {1 0 0 2.6 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}}} {l detail-spheres.c {1 0 0 2.6 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}} {l center-cyl.c {1 0 0 2.6 0 -3.82859e-16 1 2.3 0 -1 -3.82859e-16 0.1 0 0 0 0.1}}}
attr set {tire1.r} {region} {R} {rgb} {0/0/0} {oshader} {plastic} {region_id} {1001} {material_id} {1} {los} {100}
put {axel1.r} comb region yes tree {- {- {l axel.s {1 0 0 26 0 1 0 -31.5 0 0 1 1 0 0 0 1}} {l axel-cut-1.c {1 0 0 26 0 1 0 -31.5 0 0 1 1 0 0 0 1}}} {l axel-cut-2.c {1 0 0 26 0 1 0 -31.5 0 0 1 1 0 0 0 1}}}
attr set {axel1.r} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
put {center-cyl-bump.s} tgc V {0 0 -0.1000000000000000055511151} H {0 0 0.5999999999999999777955395} A {0 -0.2000000000000000111022302 0} B {0.2000000000000000111022302 0 0} C {0 -0.2000000000000000111022302 0} D {0.2000000000000000111022302 0 0}
put {center-cyl.s} tgc V {0 0 -0.1000000000000000055511151} H {0 0 0.5} A {0 -0.4000000000000000222044605 0} B {0.4000000000000000222044605 0 0} C {0 -0.4000000000000000222044605 0} D {0.4000000000000000222044605 0 0}
put {wheel-well-front.s} arb8 V1 {2 -22 139} V2 {2 22 139} V3 {2 22 141} V4 {2 -22 141} V5 {0 -22 139} V6 {0 22 139} V7 {0 22 141} V8 {0 -22 141}
put {center-cyl-hollow.s} tgc V {0 0 -0.1000000000000000055511151} H {0 0 0.5999999999999999777955395} A {0 -0.1000000000000000055511151 0} B {0.1000000000000000055511151 0 0} C {0 -0.1000000000000000055511151 0} D {0.1000000000000000055511151 0 0}
put {outer-hollow-cyl.s} tgc V {0 0 0} H {0 0 0.5} A {0 -1.199999999999999955591079 0} B {1.199999999999999955591079 0 0} C {0 -1.199999999999999955591079 0} D {1.199999999999999955591079 0 0}
put {inner-detail-401.s} tgc V {-0.2996852747327302113333758 0.741747083653429784000366 0.4000000000000000222044605} H {0.2247639560495476862556075 -0.5563103127400722547335477 0} A {0 0 -0.1499999999999999944488849} B {0.1390775781850180636833869 0.05619098901238692156390186 0} C {0 0 -0.01000000000000000020816682} D {0.009271838545667871259170489 0.003746065934159127901875719 0}
put {inner-detail-301.s} tgc V {0.6217167691655764993896582 0.5034563128398703568677774 0.4000000000000000222044605} H {-0.4662875768741823190310924 -0.3775922346299027676508331 0} A {0 0 -0.1499999999999999944488849} B {0.09439805865747569191270827 -0.1165718942185455797577731 0} C {0 0 -0.01000000000000000020816682} D {0.006293203910498379634319566 -0.007771459614569705548481338 0}
put {wheel-outer-bump.s} eto V {0 0 0.800000000000000044408921} N {0 -8.34544256767107268166427E-16 -1.089884907806513147932037} C {0.281492275734594732394811 0.02689961599649578691262342 0.0008719051763263864019207205} r 1.175024957792653701460495 r_d 0.09511428095492888146189614
put {inner-hollow.cyl.s} tgc V {0 0 0} H {0 0 0.9000000000000000222044605} A {0 -0.800000000000000044408921 0} B {0.800000000000000044408921 0 0} C {0 -0.800000000000000044408921 0} D {0.800000000000000044408921 0 0}
put {inner-detail-201.s} tgc V {0.6632300580440335657783635 -0.4473543227765972574161424 0.4000000000000000222044605} H {-0.4974225435330251743337726 0.3355157420824478875509556 0} A {0 0 -0.1499999999999999944488849} B {-0.08387893552061197188773889 -0.1243556358832562935834432 0} C {0 0 -0.01000000000000000020816682} D {-0.005591929034707465023812389 -0.008290375725550419225284848 0}
put {inner-detail-101.s} tgc V {-0.2338973637781892600528977 -0.7650438047704284372230177 0.4000000000000000222044605} H {0.1754230228336419172840976 0.5737828535778213279172633 0} A {0 0 -0.1499999999999999944488849} B {-0.1434457133944553319793158 0.04385575570841047932102441 0} C {0 0 -0.01000000000000000020816682} D {-0.009563047559630355812232416 0.002923717047227365403716526 0}
put {outer-tire.c} comb region no tree {u {- {- {l outer-cyl.s} {l outer-hollow-cyl.s}} {l outer-tire-upper-hollow.s}} {- {- {l wheel-outer-bump.s} {l outer-hollow-cyl.s}} {l outer-tire-upper-hollow.s}}}
put {outer-cyl.s} tgc V {0 0 0} H {0 0 0.800000000000000044408921} A {0 -1.5 0} B {1.5 0 0} C {0 -1.5 0} D {1.5 0 0}
put {inner-cyl.s} tgc V {0 0 0} H {0 0 0.9000000000000000222044605} A {0 -0.9000000000000000222044605 0} B {0.9000000000000000222044605 0 0} C {0 -0.9000000000000000222044605 0} D {0.9000000000000000222044605 0 0}
put {axel-cut-2.c} comb region no tree {- {l axel-cutout-2a.s} {l axel-cutout-2.s}}
put {center-cyl.c} comb region no tree {u {- {l center-cyl.s} {l center-cyl-hollow.s}} {- {l center-cyl-bump.s} {l center-cyl-hollow.s}}}
put {axel-cut-1.c} comb region no tree {- {l axel-cutout-1a.s} {l axel-cutout-1.s}}
put {inner-cyl-2-hollow.s} tgc V {0 0 0} H {0 0 0.800000000000000044408921} A {0 -0.7499999999999998889776975 0} B {0.7499999999999998889776975 0 0} C {0 -0.7499999999999998889776975 0} D {0.7499999999999998889776975 0 0}
put {block6.s} arb8 V1 {18 -12.5 102} V2 {18 10.5 102} V3 {18 10.5 177} V4 {18 -12.5 177} V5 {23.23583984375 -12.5 102} V6 {23.23583984375 10.5 102} V7 {23.23583984375 10.5 177} V8 {23.23583984375 -12.5 177}
put {block5.s} arb8 V1 {2.5 -22 177} V2 {18 -22 102} V3 {18 22 102} V4 {2.5 22 177} V5 {18 -22 177} V6 {18 -22 177} V7 {18 22 177} V8 {18 22 177}
put {block4.s} arb8 V1 {10 -12.5 67} V2 {10 10.5 67} V3 {10 10.5 177} V4 {10 -12.5 177} V5 {21 -5.5 67} V6 {21 2.5 67} V7 {21 2.5 177} V8 {21 -5.5 177}
put {block3.s} arb8 V1 {10 -12.5 0} V2 {10 10.5 0} V3 {10.00000000000000177635684 10.5 67} V4 {10.00000000000000177635684 -12.49999999999999822364316 67.00000000000001421085472} V5 {21 -5.5 0} V6 {21 2.5 0} V7 {21 2.500000000000007105427358 67.00000000000001421085472} V8 {21 -5.5 67}
put {block2.s} arb8 V1 {13 -11.5 0} V2 {21 -5.5 35} V3 {21 2.5 35} V4 {13 9.5 0} V5 {21 -5.5 0} V6 {21 -5.5 0} V7 {21 2.5 0} V8 {21 2.5 0}
put {block1.s} arb8 V1 {0 -22 0} V2 {0 22 0} V3 {0 22 177} V4 {0 -22 177} V5 {10 -22 0} V6 {10 22 0} V7 {10 22 177} V8 {10 -22 177}
put {side-cut-left.s} arb8 V1 {0 -22 79.5} V2 {10 -22 79.5} V3 {9.999999999999996447286321 -22 129.5} V4 {0 -22 129.5} V5 {0 -11 90.5} V6 {19 -11 90.49999999999998578914528} V7 {19 -11 123.5} V8 {0 -11.00000000000000177635684 123.5000000000000142108547}
put {inner-cyl-lower-trim.s} tgc V {0 0 0} H {0 0 0.4000000000000000222044605} A {0 -0.9000000000000000222044605 0} B {0.9000000000000000222044605 0 0} C {0 -0.9000000000000000222044605 0} D {0.9000000000000000222044605 0 0}
+1384 -1577
View File
File diff suppressed because it is too large Load Diff
-239
View File
@@ -1,239 +0,0 @@
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
IDEAS
PROJECTS
README.AIX
README.BSD
README.IRIX
README.Linux
README.MacOSX
README.Solaris
README.VAX
README.Windows
TODO.BREP
TODO.shaded_displays
anim.txt
archer_ack.txt
benchmark.tr
brep.txt
BRL-CAD.bib
code_review.txt
cvs.txt
description.txt
editors.txt
ged.tr
history.txt
hypot.txt
irprep.tr
mater.txt
matrix.txt
)
ADD_DOC(documentation_DATA ".")
set(documentation_mged_old_DATA
mged/a.tex
mged/adc.ps
mged/all.tex
mged/axis-3525.ps
mged/b.tex
mged/buttonmenu.ps
mged/c.tex
mged/coord-axes.ps
mged/crod-close.ps
mged/crod.ps
mged/d.tex
mged/doit
mged/e.tex
mged/eo-arbrot.ps
mged/eo-bgrp.ps
mged/eo-bgrp311.ps
mged/eo-cgrp.ps
mged/eo-cgrp321.ps
mged/eo-ellg.ps
mged/eo-ellg2x.ps
mged/eo-ellgxyz.ps
mged/eo-gredit.ps
mged/eo-grpath.ps
mged/eo-scale.ps
mged/eo-spread.ps
mged/eo-stacked.ps
mged/eo-start.ps
mged/eo-tor111.ps
mged/eo-xymove.ps
mged/eo-xyzmove.ps
mged/es5-edge1.ps
mged/es5-edge2.ps
mged/es5-edge3.ps
mged/es5-edge4.ps
mged/es5-rot.ps
mged/es5-scale.ps
mged/es5-sed.ps
mged/es5-top.ps
mged/es5-tr.ps
mged/es5-xrot.ps
mged/es8-edge1.ps
mged/es8-edge2.ps
mged/es8-edge3.ps
mged/es8-ex1.ps
mged/es8-ex2.ps
mged/es8-rot.ps
mged/es8-scale.ps
mged/es8-sed.ps
mged/es8-top.ps
mged/es8-tr0.ps
mged/es8-xrot.ps
mged/es8-yrot.ps
mged/es8-zrot.ps
mged/esc-mh.ps
mged/esc-mhrt.ps
mged/esc-rot.ps
mged/esc-sa.ps
mged/esc-sb.ps
mged/esc-sc.ps
mged/esc-scale.ps
mged/esc-sd.ps
mged/esc-sed.ps
mged/esc-sh.ps
mged/esc-top.ps
mged/esc-tr.ps
mged/esc-xrot.ps
mged/esc-yrot.ps
mged/esc-zrot.ps
mged/ese-sa.ps
mged/ese-sb.ps
mged/ese-sc.ps
mged/ese-scale.ps
mged/ese-sed.ps
mged/ese-top.ps
mged/ese-tr.ps
mged/ese-xrot.ps
mged/ese-yrot.ps
mged/ese-zrot.ps
mged/est-scale.ps
mged/est-sed.ps
mged/est-sr1.ps
mged/est-sr2.ps
mged/est-top.ps
mged/est-tr.ps
mged/est-xrot.ps
mged/est-yrot.ps
mged/est-zrot.ps
mged/ex.arb4.ps
mged/ex.arb8.ps
mged/ex.box.ps
mged/ex.ellg.ps
mged/ex.raw.ps
mged/ex.rcc.ps
mged/ex.rpp.ps
mged/ex.sph.ps
mged/ex.tor.ps
mged/ex.trc.ps
mged/f.tex
mged/faceplate.ps
mged/faceplate1.ps
mged/fig-sgi-buttons.ps
mged/fig-sgi-knobs.ps
mged/fig-sgi.ps
mged/fig-vg-buttons.ps
mged/fig-vg-knobs.ps
mged/g.tex
mged/h.tex
mged/j.tex
mged/k.tex
mged/l.tex
mged/m.tex
mged/menu-arb-ctl.ps
mged/menu-arb4-edge.ps
mged/menu-arb4-face.ps
mged/menu-arb4-rot.ps
mged/menu-arb8-edge.ps
mged/menu-arb8-face.ps
mged/menu-arb8-rot.ps
mged/obj-edit.ps
mged/obj-path.ps
mged/obj-pick.ps
mged/ped-ell.ps
mged/ped-tgc.ps
mged/ped-tor.ps
mged/plane-35a.ps
mged/plane-35b.ps
mged/plane-bot1.ps
mged/plane-bot2.ps
mged/plane-front1.ps
mged/plane-front2.ps
mged/plane-right1.ps
mged/plane-right2.ps
mged/plane-top1.ps
mged/plane-top2.ps
mged/rmit-3525.ps
mged/robot.ps
mged/sol-2pick.ps
mged/sol-ed.ps
mged/sol-pick.ps
mged/t1-2s-pk.ps
mged/t1-obj-ed.ps
mged/t1-obj-ph.ps
mged/t1-obj-pk.ps
mged/t1-rot-vw.ps
mged/t1-sol-ed.ps
mged/t1-sol-pk.ps
mged/t1-top-vw.ps
mged/t1.tex
mged/test.tex
mged/v-arb8-side.ps
mged/v-arb8-top.ps
mged/wm-arm1.ps
mged/wm-arm2.ps
mged/wm-body.ps
mged/wm-collar.ps
mged/wm-final1.ps
mged/wm-hat-E.ps
mged/wm-hat1.ps
mged/wm-hat2.ps
mged/wm-hat3.ps
mged/wm-head.ps
mged/wm-leg1.ps
mged/wm-prims.ps
mged/wm-tube.ps
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})
CMAKEFILES(
README.OSCON-2014
STARTERS
STRATEGY
csv_to_comgeom.txt
implicit_constraints.txt
pad_file.xml.in
trunk_hierarchy.org
)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+1 -12
View File
@@ -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
+236
View File
@@ -0,0 +1,236 @@
if BUILD_DOCS
DOCBOOK_DIR = docbook
else
DOCBOOK_DIR =
endif
SUBDIRS = \
${DOCBOOK_DIR} \
html \
legal
DIST_SUBDIRS = \
docbook \
html \
legal
documentationdir = $(BRLCAD_DATA)/doc
documentation_DATA = \
IDEAS \
PROJECTS \
README.AIX \
README.BSD \
README.IRIX \
README.Linux \
README.MacOSX \
README.Solaris \
README.VAX \
README.Windows \
TODO.BREP \
anim.txt \
archer_ack.txt \
benchmark.tr \
brep.txt \
BRL-CAD.bib\
cvs.txt \
description.txt \
deprecation.txt \
ged.tr \
history.txt \
hypot.txt \
irprep.tr \
mater.txt \
matrix.txt \
mged/a.tex \
mged/adc.ps \
mged/all.tex \
mged/axis-3525.ps \
mged/b.tex \
mged/buttonmenu.ps \
mged/c.tex \
mged/coord-axes.ps \
mged/crod-close.ps \
mged/crod.ps \
mged/d.tex \
mged/doit \
mged/e.tex \
mged/eo-arbrot.ps \
mged/eo-bgrp.ps \
mged/eo-bgrp311.ps \
mged/eo-cgrp.ps \
mged/eo-cgrp321.ps \
mged/eo-ellg.ps \
mged/eo-ellg2x.ps \
mged/eo-ellgxyz.ps \
mged/eo-gredit.ps \
mged/eo-grpath.ps \
mged/eo-scale.ps \
mged/eo-spread.ps \
mged/eo-stacked.ps \
mged/eo-start.ps \
mged/eo-tor111.ps \
mged/eo-xymove.ps \
mged/eo-xyzmove.ps \
mged/es5-edge1.ps \
mged/es5-edge2.ps \
mged/es5-edge3.ps \
mged/es5-edge4.ps \
mged/es5-rot.ps \
mged/es5-scale.ps \
mged/es5-sed.ps \
mged/es5-top.ps \
mged/es5-tr.ps \
mged/es5-xrot.ps \
mged/es8-edge1.ps \
mged/es8-edge2.ps \
mged/es8-edge3.ps \
mged/es8-ex1.ps \
mged/es8-ex2.ps \
mged/es8-rot.ps \
mged/es8-scale.ps \
mged/es8-sed.ps \
mged/es8-top.ps \
mged/es8-tr0.ps \
mged/es8-xrot.ps \
mged/es8-yrot.ps \
mged/es8-zrot.ps \
mged/esc-mh.ps \
mged/esc-mhrt.ps \
mged/esc-rot.ps \
mged/esc-sa.ps \
mged/esc-sb.ps \
mged/esc-sc.ps \
mged/esc-scale.ps \
mged/esc-sd.ps \
mged/esc-sed.ps \
mged/esc-sh.ps \
mged/esc-top.ps \
mged/esc-tr.ps \
mged/esc-xrot.ps \
mged/esc-yrot.ps \
mged/esc-zrot.ps \
mged/ese-sa.ps \
mged/ese-sb.ps \
mged/ese-sc.ps \
mged/ese-scale.ps \
mged/ese-sed.ps \
mged/ese-top.ps \
mged/ese-tr.ps \
mged/ese-xrot.ps \
mged/ese-yrot.ps \
mged/ese-zrot.ps \
mged/est-scale.ps \
mged/est-sed.ps \
mged/est-sr1.ps \
mged/est-sr2.ps \
mged/est-top.ps \
mged/est-tr.ps \
mged/est-xrot.ps \
mged/est-yrot.ps \
mged/est-zrot.ps \
mged/ex.arb4.ps \
mged/ex.arb8.ps \
mged/ex.box.ps \
mged/ex.ellg.ps \
mged/ex.raw.ps \
mged/ex.rcc.ps \
mged/ex.rpp.ps \
mged/ex.sph.ps \
mged/ex.tor.ps \
mged/ex.trc.ps \
mged/f.tex \
mged/faceplate.ps \
mged/faceplate1.ps \
mged/fig-sgi-buttons.ps \
mged/fig-sgi-knobs.ps \
mged/fig-sgi.ps \
mged/fig-vg-buttons.ps \
mged/fig-vg-knobs.ps \
mged/g.tex \
mged/h.tex \
mged/j.tex \
mged/k.tex \
mged/l.tex \
mged/m.tex \
mged/menu-arb-ctl.ps \
mged/menu-arb4-edge.ps \
mged/menu-arb4-face.ps \
mged/menu-arb4-rot.ps \
mged/menu-arb8-edge.ps \
mged/menu-arb8-face.ps \
mged/menu-arb8-rot.ps \
mged/obj-edit.ps \
mged/obj-path.ps \
mged/obj-pick.ps \
mged/ped-ell.ps \
mged/ped-tgc.ps \
mged/ped-tor.ps \
mged/plane-35a.ps \
mged/plane-35b.ps \
mged/plane-bot1.ps \
mged/plane-bot2.ps \
mged/plane-front1.ps \
mged/plane-front2.ps \
mged/plane-right1.ps \
mged/plane-right2.ps \
mged/plane-top1.ps \
mged/plane-top2.ps \
mged/rmit-3525.ps \
mged/robot.ps \
mged/sol-2pick.ps \
mged/sol-ed.ps \
mged/sol-pick.ps \
mged/t1-2s-pk.ps \
mged/t1-obj-ed.ps \
mged/t1-obj-ph.ps \
mged/t1-obj-pk.ps \
mged/t1-rot-vw.ps \
mged/t1-sol-ed.ps \
mged/t1-sol-pk.ps \
mged/t1-top-vw.ps \
mged/t1.tex \
mged/test.tex \
mged/v-arb8-side.ps \
mged/v-arb8-top.ps \
mged/wm-arm1.ps \
mged/wm-arm2.ps \
mged/wm-body.ps \
mged/wm-collar.ps \
mged/wm-final1.ps \
mged/wm-hat-E.ps \
mged/wm-hat1.ps \
mged/wm-hat2.ps \
mged/wm-hat3.ps \
mged/wm-head.ps \
mged/wm-leg1.ps \
mged/wm-prims.ps \
mged/wm-tube.ps \
mk.tr \
movie.txt \
old-mged.tr \
pad_file.xml \
pkg.tr \
regions.txt \
rounding.txt \
sun.txt \
tube.txt \
tool_categories.txt
man_MANS = \
bw.5 \
cmap.5 \
pix.5 \
plot3.5
EXTRA_DIST = \
$(documentation_DATA) \
$(man_MANS) \
STARTERS \
pad_file.xml.in
DISTCLEANFILES = \
pad_file.xml
include $(top_srcdir)/misc/Makefile.defs
+133 -111
View File
@@ -4,25 +4,65 @@ BRL-CAD Common Projects
BRL-CAD is comprised of several projects that have specific
distinguishing qualities of utility that make them interesting
STAND-ALONE projects applicable to a generally WIDE AUDIENCE of users.
These projects are described below:
In some cases, these projects may be independently maintained and are
sometimes even independently distributed. In general, each of these
common projects could exist solely as an independent project but they
are included with BRL-CAD as part of the collective solid modeling and
processing toolset. These projects are described below:
= Basic Utility and Numerics Libraries (BU+BN) =
Geometry Modeling Kernel
When combined together, several of the core libraries form
BRL-CAD's geometry modeling kernel. This modeling kernel provides
fundamental geometric representation, ray-trace analysis, and
geometric processing capabilities via a high-performance procedural C
API designed for multithreaded processing and fast ray-intersection
evaluation. The geometry engine directly supports the representation
and evaluation of implicit and explicit form primitive objects
including arbitrary polyhedron, toroids, generalized conics,
ellipsoids, NURBS, meshes, parabolics, hyperbolics, and more. Also
supported are Constructive Solid Geometry (CSG) expressions, boundary
representation (BREP) objects, 2D sketches, 3D extrusions, height
fields, pipe/cabling construction, and more. The geometry modeling
kernel is comprised of libbu, libbn, librt, libwdb, liboptical,
libmultispectral, and the ray-trace interface application back-end.
BRL-CAD's LIBBU and LIBBN libraries provide an extensive set of
fundamental general routines that form a common simple API for
cross-platform application development. Some routines are
unparalleled in terms of portability, performance, or simplicity.
Others are more common and undeniably commonplace with alternatives
such as the Apache Portable Runtime (APR). As a collective API, they
form a solid basis for application development and would probably do
very well in most academic contexts with proper documentation and
examples to follow.
Network Package Library
The libpkg Network Package Library (PKG) interface implements
a client-server network connection that multiplexes synchronous and
asynchronous messages across stream connections. PKG provides a
simple interface for managing client/server connections in a
distributed environment, providing a non-blocking interface that
accepts arbitrary data messages of arbitrary length.
= Benchmark Suite =
MGED
The Multiple-device Geometry EDitor (MGED) is an interactive
solid modeler that provides a graphical user interface as well as a
robust text-based command interface. MGED heavily utilizes
Constructive Solid Geometry (CSG) solid modeling techniques for
geometric construction and supports various display manager interfaces
for extensive cross-platform support.
The BRL-CAD Benchmark Suite is a system performance analysis benchmark
that tests the performance of a given system's CPU, memory, cache
coherency, kernel context switching, and compiler optimization
Archer
Containing the majority of the command functionality provided
by MGED, Archer is a new GUI-based solid model viewer and editing
tool. Archer is based on MGED in many respects while providing an
improved GUI.
ADRT
The Advanced Distributed Ray-Tracer (ADRT) includes a high
performance triangle intersection engine (libtie), a real-time
ray-tracer (ISST), and a path-tracer for realistic image synthesis
(RISE). ADRT deals only with a triangle mesh representation,
providing a high-performance triangle-ray evaluation engine that
leverages much computer graphics research on maintaining ray coherency
and fast KD-Tree traversal. In all, the system is capable of
evaluation several million rays per second allowing for real-time
interactive ray-tracing of faceted models.
Benchmark Suite
The BRL-CAD Benchmark Suite is a system performance analysis
benchmark that tests the performance of a given system's CPU, memory,
cache coherency, kernel context switching, and compiler optimization
capabilities. The benchmark provides a linearly comparable metric of
overall system performance that may be used to quantitatively evaluate
the relative performance of a given system, particular compilers,
@@ -31,111 +71,93 @@ performance test is based on a real-world CPU intensive application of
ray-tracing, providing a reliable metric of actual system performance
that may be compared across more than two decades of computing.
= Geometry Conversion (GCV) =
Image Processing Tools
There are many image converters (e.g. pix-*, bw-*, *-pix,
*-bw, pix*, bw*), image processing, and image manipulation tools in
the package that provide basic image management. The processing tools
support several common formats including PNG, RLE, PPM, PS, and SUN
images as well as a variety of image processing tools that work on raw
image data.
Included are a variety of importers and exporters for various geometry
file formats (e.g. g-* and *-g). Exporters include DXF, EUCLID, NFF,
OBJ, STL, TANKILL, VRML, X3D, and OpenGL vertex array buffers.
Importers include CY, DXF, ENF, EUCLID, FAST4, NASTRAN, PLY, STL,
TANKILL, and VIEWPOINT. BRL-CAD also provides a Unigraphics/NX
exporter application as well as a Pro/Engineer export plug-in. This
includes LIBGCV.
= Image Conversion (ICV) =
There are many image converters (e.g. pix-*, bw-*, *-pix, *-bw, pix*,
bw*), image processing, and image manipulation tools in the package
that provide basic image management. The processing tools support
several common formats including PNG, RLE, PPM, PS, and SUN images as
well as a variety of image processing tools that work on raw image
data. This includes LIBICV.
There are a variety of signal processing utilities (e.g. *mod, ifft,
dfft, s-i, i-d, cv, wavelet) in the package that categorically
Signal processing
There are a variety of signal processing utilities (e.g. *mod,
ifft, dfft, s-i, i-d, cv, wavelet) in the package that categorically
manipulate raw data streams according to specified criteria. These
manipulations include data conversion and filtering capabilities as
well as various transformations including discrete and non-discrete
Fast Fourier transforms (FFT) and wavelet decomposition. It may make
sense to merge this capability into ICV.
Fast Fourier transforms (FFT) and wavelet decomposition.
= Network Package Library =
Geometry converters
Included are a variety of importers and exporters for various
geometry file formats (e.g. g-* and *-g). Exporters include DXF,
EUCLID, NFF, OBJ, STL, TANKILL, VRML, X3D, and OpenGL vertex array
buffers. Importers include CY, DXF, ENF, EUCLID, FAST4, NASTRAN, PLY,
STL, TANKILL, and VIEWPOINT. BRL-CAD also provides a Unigraphics/NX
exporter application as well as a Pro/Engineer export plug-in.
The libpkg Network Package Library (PKG) interface implements a
client-server network connection that multiplexes synchronous and
asynchronous messages across stream connections. PKG provides a
simple interface for managing client/server connections in a
distributed environment, providing a non-blocking interface that
accepts arbitrary data messages of arbitrary length.
Raytracers
Included are a variety of ray-tracers for analyzing geometry
for either visualization or geometric purposes. This includes the
"rt" ray-tracer, the "rtedge" and "rthide" hidden-line edge
ray-tracers, "rtarea" for computing exposed and presented surface
areas, "rtshot" for single-query ray analysis, the "rtxray" X-Ray
transport ray-tracer, the "nirt" interactive ray-evaluation
ray-tracer, the "lgt" interactive shaded image ray-tracer, as well as
"rtweight" and "g_qa" for computing mass, volume,
overlaps/interferences, and more.
= ttcp =
ttcp
The "Test Transmission Control Protocol" tool is a network
throughput performance benchmark tool used to evaluate the performance
of TCP and UDP network connections. TTCP may also be used as an
excellent tool for bootstrapping hosts onto the network by forming a
communication pipe between two machines. This communication pipe may
be used to transfer files to a remote system that does not otherwise
have a means available to receive files as well as for the evaluation
of raw throughput performance of the network connection between the
two systems. TTCP includes support for sourcing to/from memory,
variable packet sizes, and loading metrics. TTCP is described as a
standard testing tool for TCP implementors via Network Working Group
RFC 2398.
The "Test Transmission Control Protocol" tool is a network throughput
performance benchmark tool used to evaluate the performance of TCP and
UDP network connections. TTCP may also be used as an excellent tool
for bootstrapping hosts onto the network by forming a communication
pipe between two machines. This communication pipe may be used to
transfer files to a remote system that does not otherwise have a means
available to receive files as well as for the evaluation of raw
throughput performance of the network connection between the two
systems. TTCP includes support for sourcing to/from memory, variable
packet sizes, and loading metrics. TTCP is described as a standard
testing tool for TCP implementers via Network Working Group RFC 2398.
JOVE
"Jonathan's Own Version [of] Emacs" (JOVE) is a simple
lightweight Emacs-like text editor. JOVE provides common Emacs
keyboard bindings as well as an assortment of useful editing features
including interactive shell windows and language-specific modes while
using minimal CPU, memory, and disk requirements comparable to the vi
editor.
= Geometry Modeling Kernel =
autogen.sh
Part of the build system, autogen.sh is a bootstrap script
that effectively implements the majority of autoreconf in POSIX shell
script format while accounting for a variety of common system
configuration issues, common project configuration issues, and common
GNU Build System (GBS, i.e. autoconf, automake, and libtool) bugs.
The autogen.sh bootstrap script automatically works around many of
those common issues for the user and/or reports the problems in what
is generally a considerably more human-readable form than that
normally provided by the GBS toolset output. Additionally, the script
will ensure that users have minimum and consistent versions of the GBS
tools installed.
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, libmultispectral, and the ray-trace interface application
back-end.
Example Geometry
BRL-CAD geometry database files are platform independent files
that are used to store solid geometry models. There are several
example database models that have been made openly available (db/*.g)
that cover a wide range of example solid model geometry including
basic parts, buildings, procedural geometry, and military vehicles.
This modeling kernel provides fundamental geometric representation,
ray-trace analysis, and geometric processing capabilities via a
high-performance procedural C API designed for multithreaded
processing and fast ray-intersection evaluation.
The geometry kernel directly supports the representation and
evaluation of implicit and explicit form primitive objects including
arbitrary polyhedron, toroids, generalized conics, ellipsoids, NURBS,
meshes, parabolics, hyperbolics, and more. Also supported are
Constructive Solid Geometry (CSG) expressions, boundary representation
(BREP) objects, 2D sketches, 3D extrusions, height fields,
pipe/cabling construction, and more.
= Geometry Engine =
This is a C++ geometry kernel API. This product is intentionally in a
separate repository so that it's conceptually and technically
implemented on top of BRL-CAD's core libraries. The design intent is
similar to the ACIS, Granite, and Parasolid geometry modeling APIs.
= Geometry Service =
This is a geometry management network service. It's a geometry server
with a socket protocol interface that provides user access controls,
versioning, and edit history tracking. At it's core, application
developers connect to the service for storing and obtaining geometry.
The service supports an extended set of geometry queries. This
product is similar in design to other network/socket services such as
Apache and MySQL.
= Example Geometry =
BRL-CAD geometry database files are platform independent files that
are used to store solid geometry models. There are several example
database models that have been made openly available (db/*.g) that
cover a wide range of example solid model geometry including basic
parts, buildings, procedural geometry, and military vehicles.
= Documentation =
Over the years, extensive documentation has been written for BRL-CAD
including many manual pages, quick reference sheets, and a detailed
tutorial series. The tutorial series covers an introduction to the
package, details on the modeling philosophies, an introduction to the
MGED solid modeler, a more advanced geometry modeling techniques
guide, and provides principles of effective modeling. The tutorials
take a user through many guided exercises that build upon each other
working towards more complex exercise examples the show some of the
basic modeling and processing capabilities possible.
Documentation
Over the years, extensive documentation has been written for
BRL-CAD including many manual pages, quick reference sheets, and a
detailed tutorial series. The tutorial series covers an introduction
to the package, details on the modeling philosophies, an introduction
to the MGED solid modeler, a more advanced geometry modeling
techniques guide, and provides principles of effective modeling. The
tutorials take a user through many guided exercises that build upon
each other working towards more complex exercise examples the show
some of the basic modeling and processing capabilities possible.
Image Conversion Library
Does not currently exist.
+1 -9
View File
@@ -1,14 +1,6 @@
BRL-CAD on AIX README
=====================
Dec. 15, 2011 - As of this date, it has been some time since an AIX
build of BRL-CAD has been tested, and thus far it has NOT been tested
b with the new CMake build system.
Kitware provides an AIX powerpc binary for CMake, see
http://www.cmake.org/cmake/resources/software.html
Building BRL-CAD under AIX is fairly straightforward using a correctly
installed version on the GCC compiler. If, however, you are using the
IBM Visual Age compiler, then there are additional manual compilation
@@ -24,7 +16,7 @@ Problems encountered in our build environment using strict compliance
does mostly work though we ran into errors in the standard C library
headers.
Using the "extended" compliance mode resolved the standard C library
Using the "extended" complaince mode resolved the standard C library
header issues, but introduces problems in the compilation of BRL-CAD
as the compiler then disables the provision of the __STDC__
preprocessor symbol. BRL-CAD then defaults back to K&R mode, which
+22 -10
View File
@@ -1,16 +1,28 @@
BRL-CAD on BSD README
=====================
BRL-CAD is frequently compiled under various variants of
BSD including FreeBSD, NetBSD, OpenBSD, and even the original
4.3 BSD (though now rare) - FreeBSD is the most common BSD
platform tested, not counting Mac OSX. See the README.VAX
document for additional details that pertain to building
BRL-CAD on a VAX running BSD.
Included below are details on building under one of the various BSD
variants. BRL-CAD is continuously compiled under various variants of
BSD including FreeBSD, NetBSD, OpenBSD, Darwin, and even the original
4.3 BSD (though now rare). See the README.VAX document for additional
details that pertain to building BRL-CAD on a VAX running BSD.
CMake binaries for *BSD operating systems are not distributed
by Kitware, but should be available through standard *BSD
packaging mechanisms. Failing that, CMake can be bootstrapped
without much difficulty on most modern Unix-style platforms.
The only compilation issue worth noting, is that newer versions of
libtool have a bug where they do not install the .la files causing
libtool to report warnings. Examples of such messages in the output
during install include:
libtool: install: warning: `../../src/libfb/libfb.la' has not been installed in `/usr/brlcad/lib'
libtool: install: warning: `../../src/libbu/libbu.la' has not been installed in `/usr/brlcad/lib'
Those warnings are not cause for concern. A simple workaround to
quell the warnings is to manually copy/install all the .la files in
one step to the install library directory before performing the final
'sudo make install' step:
find . -name \*.la -exec cp {} /usr/brlcad/lib/. \;
After that, a 'sudo make install' (or whatever means you use to go
root) should work just fine and the warnings should go away.
BRL-CAD is included in the FreeBSD Ports system.
+38 -12
View File
@@ -5,19 +5,24 @@ Building on IRIX is one of the most tricky platforms to support
without installing up-to-date compilation tools. That said, the build
has and should work just fine with either the MIPSPro or GCC
compilers. The best performance is usually achieved with the MIPSPro
compiler, whereas GCC will compile faster with less fuss.
compiler, whereas GCC will compile faster with less fuss. For
convenience, here are some example compilation scenarios:
Kitware provides CMake binaries for IRIX64 platforms:
http://www.cmake.org/cmake/resources/software.html
For IRIX 32-bit unoptimized /usr/brlcad build:
export SGI_ABI=-n32
./configure CC=cc
For IRIX 64-bit unoptimized /usr/brlcad build:
export SGI_ABI=-64
./configure CC=cc CFLAGS=-64 LDFLAGS=-64 --enable-64bit-build
Parallel building
-----------------
For parallel compilation on IRIX, the -P option enables parallel
build mode and the PARALLEL environment variable sets the number
of CPUs (default is two):
For IRIX 32-bit optimized production release build:
export SGI_ABI=-n32
./configure CC=cc --enable-optimized --enable-everything --prefix=/usr/brlcad/rel-MAJOR.MINOR.PATCH/mips32
PARALLEL=4 make -P
For IRIX 64-bit optimized production release build:
export SGI_ABI=-64
./configure CC=cc CFLAGS=-64 LDFLAGS=-64 --enable-64bit-build --enable-optimized --enable-everything --prefix=/usr/brlcad/rel-MAJOR.MINOR.PATCH/mips64
Potential problems you may encounter
@@ -41,11 +46,32 @@ Symptom: GCC crashes during compilation with internal errors
Description: Certain versions of the gcc compiler are known to crash
with internal error messages, for example on src/mged/animedit.c, when
using optimization flags (i.e. -O3).
using --enable-optimized (i.e. -O3).
Workaround: Compile in whatever directory is failing with -O0 instead:
cd src/mged
sed -i "s/ -O3 / -O0 /g" CMakeFiles/mged.dir/flags.make
make
make CFLAGS="-O0"
cd ../..
make
---
Symptom: Linker reports symbol(s) missing
Description: Depending on how libraries are set up for compilation,
libtool convenience libraries may result in unresolved symbols during
compilation. The specific problem is that the .al libtool archive
convenience library (not to be confused with usual .la libtool
archives) that is listed as a LIBADD inclusion results in having
symbols embedded with a .l tag instead of .lo or .o, causing the
libtool script to erroneously leave those .l files (that should have
been .lo libtool object files) and their associated symbols out of the
compilation. (e.g. nmg_rt_isect.l, nurb_reverse.l, and wdb_comb_std.l)
Workaround: Either rerun autogen.sh so that the libtool wrapper script
is rebuilt (being sure to have the latest libtool, automake, and
autoconf installed), edit the Makefile.am files so that the
convenience library objects files are directly listed on the LIBADD,
or compile static (--disable-shared).
+26 -72
View File
@@ -6,41 +6,23 @@ Linux distributions.
Table of Contents
-----------------
Parallel Builds
64-bit Compile
32-bit Compile
Arch Linux
Ubuntu/Debian
PPC64 Linux
Parallel Builds
---------------
BRL-CAD compilation can take advantage of multiple CPUs. With
Make based builds, this is done using the "-j" flag - e.g. a
six core machine will build faster using "make -j6" to utilize
all cores.
64-bit Compile (on a platform that defaults to 32-bit)
64-bit Compile
--------------
Supply configure options as follows:
cmake ../brlcad -DBRLCAD_WORD_SIZE=32BIT
32-bit Compile (on a platform that defaults to 64-bit)
--------------
cmake ../brlcad -DBRLCAD_WORD_SIZE=64BIT
* Note that in both of the above situations you need both a compiler that
works in the alternate mode and system libraries of the correct type.
./configure CFLAGS=-m64 CXXFLAGS=-m64 LDFLAGS=-m64 --enable-64bit-build --enable-optimized --enable-all --prefix=/usr/brlcad/rel-MAJOR.MINOR.PATCH
Arch Linux
----------
An example PKGBUILD and needed scripts are provided in misc/archlinux.
Review and edit the PKGBUILD to suit your preferred configuration and
build situation (e.g. building from a tarball vs building from SVN).
build situation (eg. building from a tarball vs building from SVN).
Run `makepkg` in that directory to build the package.
@@ -51,73 +33,45 @@ Users of Ubuntu, Debian, and other similar packaging distributions of
Linux will need to ensure that a few essentials are in place before
you will be able to compile BRL-CAD.
Following the build instructions in the INSTALL file. You will need:
Following the build instructions in the INSTALL file, if you are
starting from configure then 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)
All three of those have implicit dependencies on other packages.
If you are starting from autogen.sh you will need a few additional
tools that comprise the GNU Autotool toolset:
autoconf (2.50+, e.g. 2.59)
automake (1.6+, e.g. 1.9)
libtool (1.4+, e.g. 1.5)
All three of those have implicit dependencies on things like m4, perl,
cpp, and more.
If you installed automake version 1.4, you will need to install 1.9
and update the alternatives entry for automake so that it refers to
version 1.9 and not version 1.4:
sudo update-alternatives automake /usr/bin/automake-1.9
You will also want to make sure that you have the X11 development
headers installed:
apt-get install xserver-xorg-dev libx11-dev libxi-dev libxext-dev
Other development packages needed to build on Debian-based platforms:
for building the Tcl/Tk libraries: libfontconfig-dev
for OpenGL: libglu1-mesa-dev
Note there is a supported Debian package generation script in file
'sh/make_deb.sh' which can function only on a Debian or Ubuntu system.
It can be used like so:
$ cd <BRL-CAD source directory>
# get help for the script:
$ ./sh/make_deb.sh
# create a binary package:
$ ./sh/make_deb.sh -b
You can customize the script's cmake build options by modifying the
file 'misc/debian/rules'. Note that the BRL-CAD source directory
should be deleted and recreated for each new attempt at package
generation.
apt-get install xserver-xorg-dev libx11-dev libxi-dev
Required: make (>= 3.8.0), bison, flex, xserver-xorg-dev, libx11-dev, libxi-dev
Optional: libpng-dev, zlib1g-dev, tcl8.5-dev (>= 8.5), tk8.5-dev (>= 8.5), tcl3-dev, itk3-dev, iwidgets4, blt-dev
Redhat/Fedora
-------------
Development packages needed to build on Redhat/Fedora platforms:
libXext-devel
libXi-devel
freetype-devel
fontconfig-devel
mesa-libGL-devel
To determine what particular version of Redhat or Fedora you are
using, check these files:
To determine what particular version of Redhat or Fedora you are using, check
these files:
cat /etc/redhat-release
cat /etc/fedora-release
Note there is a supported rpm package generation script in file
'sh/make_rpm.sh' which can only function on a Fedora or openSUSE
system. It can be used like so:
$ cd <BRL-CAD source directory>
# create an rpm file:
$ ./sh/make_rpm.sh
It is also possible to create an RPM package using CPack with the
make package build target, on systems with the proper RPM tools.
PPC64 Linux
-----------
+34 -48
View File
@@ -11,31 +11,26 @@ Table of Contents
-----------------
Introduction
Table of Contents
CMake
X11 Window Server
Supported Versions
Mac OS X 10.2
Parallel Builds
Bugs
CMake
-----------------
Kitware provides Mac OSX compilations of CMake:
http://www.cmake.org/cmake/resources/software.html
X11 Window Server
-----------------
You'll need to install an X11 server if you would like to build Tk and
have a graphical user interface. Apple's X11 is the recommended X
Window Server, but XQuartz should work too and is often newer than the
official Apple version: http://xquartz.macosforge.org
Window Server, though XDarwin should work suitably as well. Be sure
to install the developer headers and libraries from the X11 Software
Developers Kit (SDK), which is usually a separate installation
package.
Supported Versions
------------------
BRL-CAD is generally only "extensively" tested by the developers on
the latest released version of Mac OS X. That is to say that
the latest released version of Mac OS X only. That is to say that
although the BRL-CAD package should build on prior versions of the Mac
OS X operating system, they are generally and eventually not
maintained and will require additional effort to obtain a build.
@@ -43,6 +38,19 @@ Compiling on 10.3 or 10.4 should complete successfully. Due to a
variety of significant application programming interface issues in
early releases of Mac OS X, versions prior to 10.2 are unsupported.
Mac OS X 10.2
-------------
Compiling directly on Mac OS X 10.2 requires additional effort. When
compiling from source, a libtool script is generated after running
autogen.sh that gets used during compilation. The version of
glibtoolize shipped with 10.2 is non-functional with respect to
convenience libraries, a feature that BRL-CAD requires. That means
that you will need to obtain the generated libtool script from other
means. You can either run autogen.sh on a different machine that has
a newer version of libtool installed or you can download a source
disribution where autogen.sh has already been run for you on a
relatively new system.
Parallel Builds
---------------
As many workstation and server systems shipped by Apple are
@@ -50,47 +58,23 @@ multiprocessor systems, you can enjoy the benefits of decreased
compile times by utilizing the "-j" option to make. After running
configure, run "make -j2" to build on a 2-processor system.
Universal Builds
----------------
Universal Builds and 64-bit Compilation
---------------------------------------
Universal builds have not been fully vetted due to how BRL-CAD
serializes data to disk. BRL-CAD's CMake logic is not currently
set up to support this type of build, but plans to in the future.
serializes data to disk. It is possible to make a universal build,
but whether the build behaves correctly has not yet been validated and
as such is not recommended.
CMake and Mac OSX
-----------------
On a default configuration, CMake has some problems performing parallel
builds on OSX - typically this will manifest itself as a series of
"too many open files" errors. So far, the way to work around this in
OSX 10.5 is to set the following system control variables to 50,000:
kern.maxfiles
kern.maxfilesperproc
(check the current values using "sysctl <variable>" on the command line)
and up the maxfiles limit in /etc/launchd.conf:
limit maxfiles 50000 unlimited
This is not widely tested, and OSX has quite a few limit settings that
may or may not apply (and may change from one version to the next.) As
we get a better feel for various platforms we can assemble a table of
required settings. Other programs have this issue as well, so searching
online may prove fruitful.
So far, if parallel building doesn't work due to the above issue a
non-parallel build will still succeed. Another workaround is to build
just subdirectories (e.g. src/other, doc, etc.) individually and then
do a toplevel make in non-parallel mode to finalize the build.
OpenSceneGraph and OSX
----------------------
For 32bit OSX builds of an X11+OpenSceneGraph BRL-CAD:
cmake .. -DBRLCAD_BUNDLED_LIBS=BUNDLED -DBRLCAD_ENABLE_OSG=ON
-DBRLCAD_REGEX=SYSTEM -DBRLCAD_WORD_SIZE=32BIT -DOSG_WINDOWING_SYSTEM=X11
Compiling 64-bit on Mac OS X is possible but will not occur by merely
specifying the --enable-64-bit configure flag. You must specify
additional CFLAGS/CXXFLAGS/CPPFLAGS/LDFLAGS to get a 64-bit
compilation. The exact values for these flags depends on environment
and is beyond the scope of this document -- if you don't know what
settings you need, you probably shouldn't be compiling. That said,
this just might work for you:
./configure CFLAGS=-m64 CXXFLAGS=-m64 LDFLAGS=-m64 --enable-64bit
Tips
----
@@ -104,6 +88,8 @@ 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.
Cheers!
-53
View File
@@ -1,53 +0,0 @@
BRL-CAD: A Vibrant Open Source Model
+ intro
- speaker
- old vs. new (Rurel's joke about old farmer and his young farmhand)
+ overview
- history, players
Mike Muuss [author of ping]
- license
- languages (Ohloh stats)
+ important technical features
- database format
- tools
- libraries
- use of other FOSS libraries
- road map
+ other features
+ community
- players (Ohloh stats)
+ process
- Source Forge
- API changes
- deprecation policy
- release procedures
- version control
- bug tracking
- policy
- outreach
+5 -36
View File
@@ -1,44 +1,13 @@
BRL-CAD on Solaris README
=========================
In recent years, there have been a variety of Solaris-style operating
systems that have appeared, following Sun's open-source release of
OpenSolaris. OpenSolaris itself doesn't seem to be especially active, but
another derivative system called OpenIndiana has appeared, based on the
illumos kernel - the Solaris file will be the place to add any notes
needed to build on such derivative systems, as well as Solaris proper.
Kitware does not provide a pre-compiled binary for CMake on Solaris
type systems. To bootstrap from the source code, try the following:
(You probably want to use gmake and gcc/g++ for this...)
1. Download the source from http://www.cmake.org/cmake/resources/software.html
2. unzip the tarball: gunzip cmake-X.Y.Z.tar.gz
3. open the tarball: tar -xvf cmake-X.Y.Z.tar
4. cd cmake-X.Y.Z
5. CXX=g++ ./bootstrap -prefix=/home/user/cmake-install (or your preferred directory)
6. gmake
7. gmake install
Then (if you installed to somewhere other than a system dir) add the
bin directory to your path:
csh: setenv PATH /home/user/cmake-install/bin:$PATH
bash: export PATH=/home/user/cmake-install/bin:$PATH
From there, you should be good to build BRL-CAD. The most recent tests
of the Sun Studio compiler suggest that there are issues to resolve,
so (unless you want to fix those issues, which would be welcome!) you
probably want to use the GCC compiler suite to build BRL-CAD as well:
CC=gcc CXX=g++ cmake ../brlcad
If while compiling you encounter an error "Text relocation remains
against symbol" along with some number of lines following, it usually
means that the build has attempted to link a static system library
into a shared library being compiled (e.g. attempting to link a system
libz.a into the png library distributed in src/other/libpng being
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.
compiled as libpng.so).
The fix/workaround is pretty simple. Either install a shared verison
of the system library (e.g. libz.so) or run configure with the
-mimpure-text linker option: ./configure LDFLAGS=-mimpure-text
+10 -20
View File
@@ -7,36 +7,26 @@ Benchmark suite. Through the 80's and most of the 90's, BRL-CAD was
compiled for and maintained on VGR running 4.3 BSD until the hardware
was finally decommissioned.
BRL-CAD has been successfully compiled for and run under the simh
BRL-CAD has been successfuly compiled for and run under the simh
Computer History Simulation Project's VAX simulator. Using this
simulator, it's feasible to install one of the BSD variants
(e.g. NetBSD) and the GCC compiler.
(e.g. NetBSD) and using the GCC compiler, obtain a compilation of
BRL-CAD with minimal effort. As of the last effort involved in
compiling BRL-CAD under this environment, there were a few steps
necessary that include the following:
No one has tried bootstrapping CMake on a VAX simh NetBSD image yet, so it
is not known what problems may occur - the basic bootstrap procedure is:
1. Download the source from http://www.cmake.org/cmake/resources/software.html
2. unzip the tarball: gunzip cmake-X.Y.Z.tar.gz
3. open the tarball: tar -xvf cmake-X.Y.Z.tar
4. cd cmake-X.Y.Z
5. CXX=g++ ./bootstrap -prefix=/home/user/cmake-install (or your preferred directory)
6. gmake
7. gmake install
As of the last effort involved in compiling BRL-CAD under this
environment (using GNU Autotools), there were a few steps
necessary that included the following:
- Define the preprocessor symbol "vax".
- Define the preprocessor symbol "vax"
./configure CPPFLAGS=-Dvax
- Disable compilation of libfft and sig. The FFT library builds
convolution kernels that are too large for the usual VAX memory
sizes.
edit src/Makefile.am and remove libfft and sig lines
- Compile against libm.a instead of libm.so. The shared object
library (at least under NetBSD) is buggy and will cause run-time
bus errors (i.e. rt will crash). With CMake, you might try:
-DM_LIBRARY=/usr/lib/libm.a
bus errors (i.e. rt will crash).
make LIBM=/usr/lib/libm.a
After those steps, you should at least be able to perform a benchmark
compilation (i.e. "make benchmark"), raytrace images, and obtain
+22 -61
View File
@@ -1,67 +1,28 @@
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
Scriptable Install System (NSIS) tool is also required.
Compilation of BRL-CAD under Windows is performed in one of three
ways. The first and usually most readily attainable build process is
to install BRL-CAD under the Mingw or Cygwin compatibility
environments where the build steps are the same as on the other
platforms (documented in the INSTALL file).
In principle, BRL-CAD can be built using CMake and environments like
Cygwin and/or Mingw/Msys, but the is largely untested and infrequently
supported. Enhancements or bug reports are welcome.
The second approach is to compile using MSVC 8 (2005) using the build
files in the misc/win32-msvc8 directory. The main brlcad.sln solution
file is in the brlcad directory. This approach will compile the vast
majority of the package and is the method utilized when making a
binary release of BRL-CAD for Windows. This will compile 'mged',
'rt', most of the converters, many of the other geometry analysis
tools, and more. In all, it compiles all of the BRL-CAD libraries and
about half of the available BRL-CAD utilities.
Visual Studio
-------------
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
*required* to have a separate build directory, but with Windows and
Visual Studio this is the only tested configuration. Once those the
sources are obtained and the build directory is created, run the CMake
application and specify the source and build directories.
Once CMake has the correct directory settings, select Configure. If
this is the first time running Configure with this build directory,
CMake will prompt you to select a generator. Look for your version of
Visual Studio and select it. Configuration should now proceed.
It is normal for configuration to be a long process on Windows. Once
it is complete, you should see a list of red highlighted entries
appear in the CMake interface. Change any settings that appear to
need changing and press Configure again. The second pass should be
shorter. If no new red lines appear, the configuration is complete.
The final CMake step, after completing Configuration, is to select
Generate to create Visual Studio project files in the build directory.
Once this is done, you may quit CMake.
Navigate to your build directory. You should see a BRLCAD solution
file for Visual Studio. Double-click that file, and Visual Studio
should launch. It will load the targets (a default configuration of
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 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)
The third approach is to compile using CMake using the build files
in the misc/win32-msvc directory. This approach, however, will ONLY
currently build the core libraries together with their C++ interface
in rt^3 and is intended for 3rd party applications that link against
BRL-CAD as a geometry engine or ray-trace library.
Special thanks to Jonathan Bonomo for the Windows installer that uses
the Nullsoft Scriptable Install System (i.e. NSIS) that replaces the
former InstallShield installer. The NSIS scripts files are in
misc/nsis/.
-323
View File
@@ -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:
+26 -23
View File
@@ -179,6 +179,9 @@ BRL-CAD to STEP
BRL-CAD to IGES
********************************************************************************
Below are some thoughts and notes about specific issues related to the above
topics - may be useful as comments at some point, or at least food for thought.
@@ -192,7 +195,7 @@ BRL-CAD to IGES
* 1. Intersection - for a point, there are three possible categories of of intersection:
* * Identical - point values identical and all bound values identical
*
* * * * * * * * *
* * * * * * * * *
* * *
* * 1 2 *
* * * *
@@ -203,8 +206,8 @@ BRL-CAD to IGES
* * Contained - values not all identical but bounds of the point of interest all smaller than bounds of
* point it is being compared to
*
*
* * * * * * * * * * * * * * * * * * * * *
*
* * * * * * * * * * * * * * * * * * * * *
* * 1 * * *
* * * * * * * * * * * * * * *
* * * * * * * 1 * *
@@ -219,26 +222,26 @@ BRL-CAD to IGES
* bound of one point is equal to the lower bound of the other - this is defined to be
* overlapping.)
*
*
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * *
* * 1 * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * 1 * * * * 1 * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * 2 * *
* * 2 * * 2 * * * * * * * * * *
* * * * * * *
*
* * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * *
* * 1 * * * * * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * 1 * * * * 1 * *
* * * * * * * * * * * * *
* * * * * * * * * * * * * * * * * * * * * 2 * *
* * 2 * * 2 * * * * * * * * * *
* * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * *
*
*
*
* 2. Outside - "If the points are not identical in value and/or error bounds, is the point of interest and its error
* bounds contained or overlapping with the comparison point, or vice versa? If not, the point of interest is
* bounds contained or overlapping with the comparison point, or vice versa? If not, the point of interest is
* outside the comparison point.
*
* Contained and Overlapping points present a problem. Take the case where two points have an overlapping bound
* and a third point must decide its relationship with each of them:
*
* * * * * * * * *
* * * * * * * * *
* * *
* * 1 *
* * *
@@ -249,12 +252,12 @@ BRL-CAD to IGES
* * * * *
* * * * *
* * * * * * * * * * * * * * * * *
*
*
* Point 1 and Point 2 overlap and may intersect. When Point 3 evaluates its relationships with Point 1 and
* Point 2, it finds that it overlaps and may intersect Point 1, but it does NOT overlap Point 3. This means
* that Point 1 may intersect Point 2 OR Point 3, but NOT both at the same time. Any assumption of equality
* tht Point 1 may intersect Point 2 OR Point 3, but NOT both at the same time. Any assumption of equality
* involving any of these three points must decide how to handle this situation, and the decision must be both
* consistent and reproducible. The possible decisions are:
* consistent and reproducable. The possible decisions are:
*
* 1 = 2, 1 != 3
* 1 != 2, 1 = 3
@@ -264,17 +267,17 @@ BRL-CAD to IGES
* points which might impact the decisions of which points are identical in this particular case) and resolve the
* question amongst all of them. One possibility would be to assemble all the guaranteed non-equalities among
* the set, search for the shortest distance between values among the remaining possible relationships, and assign
* intersection status based on those results. (This may not be sufficient - bounding box size may also be
* important.) For the original two points supplied, the question of intersection or non-intersection is now
* intersection status based on those results. (This may not be sufficient - bounding box size may also be
* important.) For the original two points supplied, the question of intersection or non-intersection is now
* resolved as long as no geometry changes are made to any element that has bounds overlapping their individual
* bound.
*
*
* Once this near space evaluation is done, each point's list of intersecting and non-intersecting points is updated.
* A query routine with two points can first check the points' own intersection/non-intersection lists to see if
* the answer is already pre-determined. If it is not, determining via the bounds inside/outside is straightforward
* and deterministic and it cannot be intersecting.
*
* One question is what to do when the geometry DOES change. New geometry may potentially change the decisions
* on what is and is not intersecting - perhaps it should? Potential trouble there with overlapping vs. non-
* on what is and is not intersecting - perhaps it should? Potential trouble there with overlaping vs. non-
* overlapping regions.
*/
*/
-122
View File
@@ -1,122 +0,0 @@
Consolidated from an e-mail thread and several e-mail messages by Sean
to the BRL-CAD developers list in Jun 2013 which includes this message:
https://sourceforge.net/mailarchive/forum.php?thread_name=02c584af-d1ad-4d23-9837-1412eed14350%40me.com&forum_name=brlcad-devel
> 4. Finally we will get rid of wireframes. However, we will be able
> to easily enable or disable shaded geometry or vice versa.
We're not getting rid of wireframes. Shaded display geometry becoming
the default, however, is already planned and in the works. NURBS
surface-surface intersections (Wu's project) are required for that to
happen.
...
Making wireframes not be the default is one of several reasons why
we've been working on NURBS infrastructure. Not understanding why
this is required given our representation format is usually an
indication that someone does not yet understand the fundamental
problem... which is not meant to be taken in a negative way. MOST
people don't have experience with our particular problem domain which
is specific to having mathematically-based implicit geometry
representations along with boolean operations.
When most people say shaded display, they usually think of OpenGL,
Direct3D, games, other modeling systems, etc. Those systems are
driven by polygons (triangles). To have that style of shaded display,
you have to have polygons. We do not have polygons. We do not have a
robust method for getting polygons. NURBS gives us a robust method.
When we can 1) convert any geometry to NURBS, 2) evaluate any
booleans, and 3) tessellate NURBS robustly, it will be possible to
have robust shaded displays for all geometry. #1 was finished last
year primarily thanks to Cliff and Wu. #3 was finished just this year
primarily due to Keith. Work on #2 is underway and is scheduled to be
finished this year..
It's been a while since I've had to succinctly describe the problem
and solution, so hopefully that is all understandable to everyone.
There are several independent tasks that will need to be completed is
anyone wants to help us get there more quickly. ;)
...
> Sean, are those tasks grouped somewhere in the TODO list, or?
Not in such a succinct form because there is a lot of interrelation
with other tasks/projects. E.g., one can frame reliable STEP NURBS
import is just as important for shaded displays because users usually
want to view their own existing data. Or once we have robust boolean
evaluation of NURBS, most of our converters will need to be updated to
use the new method ... that's a lot of work. :)
Some tasks that come to mind related to shaded displays are:
* library routine for boolean evaluation of NURBS
* library routine for non-solid NURBS tessellation (capability exists,
but not as formal API)
* library routine for solid NURBS tessellation (capability exists, but
not as formal API)
* libgcv routine to perform NURBS boolean evaluation and tessellation
* connecting "facetize" command to use libgcv (solid tessellation)
* migrate current converter polygonal mesh boolean evaluation method
of NMG-based converters to libgcv
* updating all NMG-based exporters to use new libgcv routine, retain
old method as legacy option
* updating mged/archer to utilize boolean evaluated NURBS as a
visualization mode
Other useful but maybe not strictly necessary tasks:
* optimize NURBS prep
* connecting "E" and "ev" commands to use libgcv (non-solid or solid)
* implement support for plate-mode NURBS
* update STEP and 3DM converters to support non-solid NURBS import via
plate-mode
* libgcv routine to perform NURBS healing (close near-solid NURBS
geometries)
* update NURBS importers to with option to perform healing on import
* update NURBS ray tracing to perform reparameterization/healing
during prep
* update IGES importer to import NURBS directly
* implement OBJ NURBS import support
* parallelize single-object NURBS prep (particularly the surface tree
building)
* parallelize boolean evaluation of NURBS
* parallelize NURBS tessellation
* refactor libdm API to better support (polygonal,curve,point) display
lists
* refactor libdm implementation to re-encapsulate platform-specific
logic (no #ifdefs in public headers)
* review old bspline NURBS logic, integrate useful portions, then
remove the rest
* formally document our BREP/NURBS primitive, capabilities and
limitations
That's just off the top of my head. There are undoubtedly other tasks
involved but that's a partial list. Some/many of them are already in
the TODO file, but many are not yet. Feel free to
expand/incorporate/ignore. ;)
+1 -1
View File
@@ -105,7 +105,7 @@ 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
each arc crossed from root to leaf normally gets its matrix multipled 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.
+2 -2
View File
@@ -151,7 +151,7 @@ Issues:
more efficient edge checking, evaluation optimization, etc...
The current issue seems to be that we're missing surfaces altogether or
The current issue seems to be that we're missing surfaces altogther or
getting extra intersections! or something funky is happening during
trimming and edge checking. (BTW Pro/E seems to output overlapping
surfaces, relying on the outer boundary loop to trim it - this implies
@@ -169,7 +169,7 @@ other bit of code was causing a problem, I tried to mark it with XXX.
-- Conceptual/Implementation Issues --
model-space curve pullback to surface domain for trimming (introduces
possible errors while trimming (i.e. at an edge it's possible both
possible errors while trimming (i.e. at an edge its possible both
surfaces can be trimmed because of inaccuracies of sampling)...
multiple intersections found
+117
View File
@@ -0,0 +1,117 @@
.TH BW 5 BRL-CAD
.\" B W . 5
.\" BRL-CAD
.\"
.\" Copyright (c) 2005-2011 United States Government as represented by
.\" the U.S. Army Research Laboratory.
.\"
.\" Redistribution and use in source (Docbook format) and 'compiled'
.\" forms (PDF, PostScript, HTML, RTF, etc), with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code (Docbook format) must retain the
.\" above copyright notice, this list of conditions and the following
.\" disclaimer.
.\"
.\" 2. Redistributions in compiled form (transformed to other DTDs,
.\" converted to PDF, PostScript, HTML, RTF, and other formats) 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 documentation without specific prior
.\" written permission.
.\"
.\" THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\".\".\"
.SH NAME
bw \- Black and White image file format and utilities
.SH FORMAT
A
.I bw
file contains sequences of pixels.
Each pixel is stored as one \fBunsigned char\fR, and thus
ranges in intensity from 0 (black) to 255 (white).
The first pixel in a
.I bw
file is the lower left corner of the image.
The pixels proceed from left-to-right across each scanline,
with scanlines being written from the bottom to the top of the image.
.PP
By convention,
.I bw
images are usually square, and thus their dimensions
can be determined by the file size. If this is not the case, often
only the file width need be known by a program reading the file. History
has left us with two "standard" sizes, 512x512 and the "higher" 1024x1024.
A common practice for other file sizes is to include the file width in
the filename.
.PP
At some time in the future
.I bw
files will probably get self-typing headers so that parameters such as
their size can be automatically determined by programs.
.SH UTILITIES
.B bw-fb
display a .bw format image on a framebuffer.
.br
.B fb-bw
produce a .bw file from a framebuffer image.
.br
.B bw-pix
convert a .bw file to a color .pix file.
.br
.B pix-bw
convert a color .pix file to a .bw file.
.br
.B bwstat
gives statistics concerning a .bw file.
.br
.B bwhist
displays a histogram on a framebuffer.
.br
.B bwmod
a filter to shift and scale pixel intensities.
.br
.B bwdiff
yields the difference between two .bw files.
.br
.B bwrect
extracts an arbitrary rectangle from a .bw file.
.br
.B bwcrop
maps any quadrilateral in a .bw file into any rectangle.
.br
.B bwrot
rotates, reverses, or inverts a .bw file.
.br
.B bwscale
scales a .bw file larger or smaller.
.br
.B bwfilter
a variety of 3x3 kernel filters for .bw images.
.br
.B bw3-pix
merges three .bw files into one .pix file.
.br
.B pix-bw3
separates .pix file RGB colors into three .bw files.
.br
.SH FILES
file.bw
.SH SEE ALSO
brlcad(1), pix(5), and above named programs.
+95
View File
@@ -0,0 +1,95 @@
.TH CMAP 5 BRL-CAD
.\" C M A P . 5
.\" BRL-CAD
.\"
.\" Copyright (c) 2005-2011 United States Government as represented by
.\" the U.S. Army Research Laboratory.
.\"
.\" Redistribution and use in source (Docbook format) and 'compiled'
.\" forms (PDF, PostScript, HTML, RTF, etc), with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\"
.\" 1. Redistributions of source code (Docbook format) must retain the
.\" above copyright notice, this list of conditions and the following
.\" disclaimer.
.\"
.\" 2. Redistributions in compiled form (transformed to other DTDs,
.\" converted to PDF, PostScript, HTML, RTF, and other formats) 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 documentation without specific prior
.\" written permission.
.\"
.\" THIS DOCUMENTATION 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 DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\".\".\"
.SH NAME
cmap \- Framebuffer colormap file format and utilities
.SH FORMAT
A
.I cmap
file is a storage format for framebuffer colormaps.
It is an ascii file with one line per colormap entry.
In order to accommodate colormaps of any "depth" (number
of bits per entry), 16 bit unsigned integers were selected
(see
.IR libfb (3)
for a discussion of the C program interface to colormaps).
A value of zero corresponds to full off, or black, a
value of 65535 decimal or ffff hexidecimal corresponds to
full on, or white. A given device will use as many of
the "leftmost" bits as it can support.
.PP
Each line of the file has a decimal colormap index, followed
by a tab character, and then three 4 digit
hexadecimal values, separated by spaces, which correspond to
the red, green, and blue, channels. Any blank lines or lines
beginning with non-numeric characters are ignored, and can thus
be used for comments.
.PP
There is no requirement for all 256 entries to be specified.
What is done with any unspecified entries is up to the individual
programs using the colormap.
.SH EXAMPLE
The beginning of an eight bit inverse video colormap might look
as follows:
.sp 1
.nf
# Inverse video colormap
0 ff00 ff00 ff00
1 fe00 fe00 fe00
2 fd00 fd00 fd00
3 fc00 fc00 fc00
4 fb00 fb00 fb00
.sp 1
.SH UTILITIES
.B fb-cmap
save a colormap from a framebuffer.
.br
.B cmap-fb
load a saved colormap into a framebuffer.
.br
.B fbcmap
loads one of several "standard" colormaps.
.br
.B fbgamma
loads gamma correcting colormaps.
.SH FILES
file.cm
.SH SEE ALSO
brlcad(1), and above named programs.
-48
View File
@@ -1,48 +0,0 @@
BRL-CAD Code Review
===================
...what to look for during a review...
Legal:
* proper copyright statement and compatible license?
* any indication contribution disagrees with copyright assignment?
* if incorporating 3rd party code, prefer bsd/mit-style options
Architecture:
* proper location in hierarchy?
* proper file name(s)?
* is a dependency being introduced?
* is a cyclic dependency being introduced?
* are any global variables being introduced?
Design:
* is public API minimized?
* is a platform symbol being used?
* does the change reduce or violate modularity?
* is the approach being taken reasonable?
* is the code easy to understand?
Testing:
* compiles cleanly?
* are warnings handled cleanly?
* any blatant logic errors?
* are all data inputs checked properly, sanitized?
* if fixing a bug more than once, is there a test?
* is a unit test warranted?
* are there major robustness issues?
Documentation:
* if publicly visible, is NEWS updated?
* if public API changed, is CHANGES updated?
* if public API introduced, does every symbol have a comment?
* if interface changed, are man page or other docs updated?
* are numeric constants documented?
* is suspicious, complex, risky code commented?
Code:
* conforms with style and coding standards?
* proper indentation, formatting, whitespace?
* are symbol names consistent?
* is duplication being introduced, refactoring warranted?
* is there undocumented dead / commented-out code?
* can any code be replaced with library calls?
-17
View File
@@ -1,17 +0,0 @@
These are some notes about using text manipulation tools to try taking the csv
text files from GCI's transcription work and formatting them as comgeom files.
I don't think they're fully working as yet, but certainly they are a starting
point.
tr "\r" "\n" < in_raw.csv > in.csv
Solid table:
awk -F, 'BEGIN {widthlist = "3 3 10 10 10 10 10 10 10"; split (widthlist, widths, " ")}{for(i=1;i<=NF;i++){printf "%-*s", widths[i],$i};printf "\n"}' in.csv
Region table:
awk -F, 'BEGIN {widthlist = "5 2 5 7 7 7 7 7 7 7 2 5 10"; split (widthlist, widths, " ")}{for(i=1;i<=NF;i++){printf "%-*s", widths[i],$i};printf "\n"}' in.csv
Ident table:
awk -F, 'BEGIN {widthlist = "10 10 10 43 3 3"; split (widthlist, widths, " ")}{for(i=1;i<=NF;i++){printf "%-*s", widths[i],$i};printf "\n"}' in.csv
+24 -13
View File
@@ -2,6 +2,11 @@ BRL-CAD Concurrent Versions System Policy and Guidelines
========================================================
**********************************************************************
NOTE: THESE INSTRUCTIONS ARE OUT-OF-DATE AS BRL-CAD NOW USES
SUBVERSION INSTEAD OF CVS. CONSULT WITH CAUTION AS SOME PORTIONS ARE
@@ -9,6 +14,12 @@ STILL RELEVANT BUT OTHERS THAT ARE CVS-SPECIFIC ARE NOT.
**********************************************************************
The document includes a set of requirements and recommended procedures
for how to effectively use CVS with this project. Included are
details on checking code in and out, effective use of commit messages,
@@ -32,7 +43,7 @@ the following general rules should always be adhered to:
for correct and proper functionality.
4. Commit and update frequently. Large or complicated changes should
be broken up into smaller succinct commits as best possible to make
be broken up into smaller succint commits as best possible to make
reviewing easier. Commit working code early and commit often.
5. Be consistent and informative. Tags need to follow a consistent
@@ -88,7 +99,7 @@ OVERVIEW
The intent of this document is to cover the broad aspects of how
CVS is to be organized and used. This includes branch management,
tag naming conventions, checking sources in and out, and other
relevant usage policy.
relevent usage policy.
CVS branches should be used to separate out the various types of
source code revisions. These include:
@@ -105,7 +116,7 @@ OVERVIEW
maintenance branch may and should exist for making patch releases.
Finally, various experimental and developer undertakings that may
benefit by being isolated from changes to HEAD or STABLE, or would
likewise be disruptive to normal HEAD functionality, may live on
likewise be distruptive to normal HEAD functionality, may live on
a branch of their own.
It's very important that the main CVS HEAD revision be a "mostly"
@@ -142,7 +153,7 @@ CHECKING OUT SOURCES
will checkout using the default implicit :ext: method and will
need to provide an authorized username. Be sure to use the "-P"
checkout option to remove (prune) empty directories. The "-z9"
global CVS option is encouraged to minimize network utilization.
global CVS option is encouraged to minimze network utilization.
FROM HEAD:
@@ -446,7 +457,7 @@ TAG NAMING CONVENTIONS
FORMAT FOR MISCELLANEOUS TAGS:
For everything else, the basic structure of the tags still
applies. Lower case, dash-separated, and hopefully succinctly
applies. Lower case, dash-separated, and hopefully succintly
informative tag names should be used. Dates are highly
recommended as CVS tags are not associated by date, but rather
to the individual revision of a file.
@@ -519,7 +530,7 @@ MAKING A RELEASE
In this example, brlcad is an unmodified top-level source
directory and "brlcad.modified" is a top-level source directory
that has been modified. That same patch file may then be applied
to a checkout and committed to CVS.
to a checkout and commited to CVS.
If there is an active maintenance branch that a patch was started
from, it is generally easier to apply the patch to the maintenance
@@ -530,7 +541,7 @@ MAKING A RELEASE
chunks. See the patch manual documentation for more details.
Failing any of the above, patches may also be applied manually.
This is often even desirable to become more familiar with the
This is often even desireable to become more familiar with the
changes being made providing an opportunity for a healthy peer
review.
@@ -546,14 +557,14 @@ MERGING A BRANCH
Regardless if the branch is a maintenance branch or the STABLE
branch, the fundamental "action" in performing a merge is called a
CVS join. You can join code committed to one branch revision into
CVS join. You can join code commited to one branch revision into
another branch revision by passing the "-j" option to the cvs
update command. It's important to note that joins occur from code
that is already committed.
Once the code is joined, it may be committed to CVS. If you have
changes on a branch that have not yet been committed, they should
first be committed before attempting the join.
changes on a branch that have not yet been commited, they should
first be commited before attempting the join.
MERGING A BRANCH INTO HEAD:
@@ -578,12 +589,12 @@ MERGING A BRANCH
The comment should contain or be the keyword of the branch being
merged in. For example, "premerge-20040315-windows" indicates a
merge that occurred on March 15th, 2004, from the windows-branch.
merge that occured on March 15th, 2004, from the windows-branch.
If there are any conflicts, they would of course need to be
manually resolved. Once any conflicts are resolved and the
sources are tested for functionality, the changes could then be
committed to HEAD. Be careful to notice any file additions or
commited to HEAD. Be careful to notice any file additions or
deletions as CVS, generally speaking, will not manage those for
you until they are committed.
@@ -706,7 +717,7 @@ USAGE TIPS
way to cope. If you still REALLY need to move a directory, a
little find scripting can make it easy. In case you didn't get
the hint DO NOT MOVE/RENAME DIRECTORIES unless there's a _very_
good reason. This implicitly means that extra care and thought
good reason. This implictly means that extra care and thought
should be made when naming new directories to be added to the
repository.
+374
View File
@@ -0,0 +1,374 @@
-*- coding: utf-8 -*-
BRL-CAD Deprecation Log
=======================
Included below is a deprecation log and notes for 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.
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:
a) during a major release (e.g. going from 7.*.* to 8.*.*)
b) during a minor release provided the change was publicly announced
as deprecated beforehand AND sufficient deprecation warning was
given via either i) three minor releases included the deprecation
notice, or ii) three months passed since deprecation
c) during a minor release provided there still exists an equivalent
alternative interface that will not impose an undue burden on users
or developers (see "MINIMALLY IMPACTING API CHANGES" below)
d) during a patch release provided you can correctly prove P = NP
If a change will intentionally replace or remove functionality, then
they should be then marked as deprecated first. Otherwise, changes to
interfaces that are never publicly announced, not installed, or are
not part of publicly available documentation are fair game to change
as needed.
Where feasible, interfaces should be visibly marked as deprecated
either during compile-time with #warning pre-processor declarations or
during run-time with print statements.
The items listed below are interfaces that are deprecated or obsolete,
categorized by the release in which the change was made. If the
change involved a rename/removal of a routine, both the original and
new names should be listed for reference.
**************
* DEPRECATED *
**************
7.18
----
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]
dbconcat -> db concat [deprecated 7.18]
dbupgrade -> db upgrade [deprecated 7.18]
dbversion -> db version [deprecated 7.18]
dbfind -> search [deprecated 7.18]
debug* -> debug [deprecated 7.18]
comb_std -> comb [deprecated 7.18]
comb_color -> comb [deprecated 7.18]
combmem -> comb [deprecated 7.18]
kill(*) -> kill [deprecated 7.18]
rotobj -> rot [deprecated 7.18]
qvrot -> rot -q -v [deprecated 7.18]
qorot -> rot -q [deprecated 7.18]
([amov])rot -> rot -([amv]) [deprecated 7.18]
([op])scale -> sca -(p) [deprecated 7.18]
([op])translate -> tra -(p) [deprecated 7.18]
nmg_(*) -> nmg (*) [deprecated 7.18]
bot_(*) -> bot (*) [deprecated 7.18]
[so]ed -> edit [deprecated 7.18]
[tr]ed -> edit -t [deprecated 7.18]
ls -oA -> ls -O [deprecated 7.18]
draw -oA -> draw -O [deprecated 7.18]
erase -oA -> erase -O [deprecated 7.18]
erase_all -> erase -r [deprecated 7.18]
move_all -> move -r [deprecated 7.18]
query_ray -> nirt [deprecated 7.18]
vdraw -> draw -v [deprecated 7.18]
vnirt -> nirt -v [deprecated 7.18]
vquery_ray -> nirt -v [deprecated 7.18]
xpush -> push -x [deprecated 7.18]
7.16
----
struct bu_structparse 'i' format
'i' -> '%p' [deprecated 7.16]
SGI-specific tools
pl-sgi -> pl-fb [ deprecated 7.16 ]
Dunn camera and Canon printer tools
dunncolor [ deprecated 7.16 ]
dunnsnap [ deprecated 7.16 ]
canonize [ deprecated 7.16 ]
reserved attributes and case-sensitivity
id -> region_id [deprecated 7.16]
GIFTmater -> material_id [deprecated 7.16]
GIFT_MATERIAL -> material_id [deprecated 7.16]
mat -> material_id [deprecated 7.16]
AIRCODE -> air [deprecated 7.16]
rgb -> color [deprecated 7.16]
oshader -> shader [deprecated 7.16]
genptr_t/GENPTR_NULL
genptr_t -> void* [deprecated 7.16]
.pl file suffix
.pl -> .plot3 [deprecated 7.16]
*-pl
*-pl -> *-plot3 [deprecated 7.16]
pl*
pl* -> plot3* [deprecated 7.16]
any-png.sh
use pix tools [deprecated 7.16]
cadbug.sh
use sf.net tracker [deprecated 7.16]
cray.sh
obsolete hardware [deprecated 7.16]
pixwrite.sh
obsolete hardware [deprecated 7.16]
pixread.sh
obsolete hardware [deprecated 7.16]
sgisnap.sh
obsolete hardware [deprecated 7.16]
include/bu.h
bu_argv0() -> bu_basename(bu_argv0_full_path()); [deprecated 7.16]
include/raytrace.h
rt_prep_timer() -> bu_timer() [deprecated 7.16]
rt_get_timer() -> bu_elapsed() [deprecated 7.16]
mged
make_bb -> bb [deprecated 7.16]
7.14
----
include/dm_color.h
dm_color.h -> dm.h [deprecated 7.14]
include/fb.h
FB_WPIXEL -> fb_wpixel [deprecated 7.14]
src/gtools
g_[toolname] -> g[toolname] [deprecated 7.14]
src/other/jove
jove -> emacs [deprecated 7.14]
include/raytrace.h
rt_fdiff -> NEAR_ZERO [deprecated 7.14]
rt_reldiff -> NEAR_ZERO [deprecated 7.14]
DIR_* -> RT_DIR_* [deprecated 7.14]
include/bu.h
bu_fopen_uniq -> fopen [deprecated 7.14]
%S format specifier -> %V format specifier for bu_vls [deprecated 7.14]
mged
tops -g -u -> now default behavior [deprecated 7.14]
-n option -> -c option [deprecated 7.14]
bots, per_line [deprecated 7.14]
include/vmath.h
VADD2_2D -> V2ADD2 [deprecated 7.14]
VSUB2_2D -> V2SUB2 [deprecated 7.14]
MAGSQ_2D -> MAG2SQ [deprecated 7.14]
VDOT_2D -> V2DOT [deprecated 7.14]
VMOVE_2D -> V2MOVE [deprecated 7.14]
VSCALE_2D -> V2SCALE [deprecated 7.14]
VJOIN1_2D -> V2JOIN1 [deprecated 7.14]
7.12
----
include/raytrace.h
rt_functab size -> growing ft_label and new callbacks [deprecated 7.12]
include/vmath.h
ELEMENTS_PER_PT -> ELEMENTS_PER_POINT
HVECT_LEN -> ELEMENTS_PER_HVECT
HPT_LEN -> ELEMENTS_PER_HPOINT
srt/librt/cmd.c
rt_split_cmd() -> bu_argv_from_string() [deprecated 7.12]
src/rt/viewarea.c
terminology and output format [deprecated 7.12]
src/libbu/parallel.c
bu_get_load_average(), remove [deprecated 7.12]
include/raytrace.h
RT_HIT_NORM -> RT_HIT_NORMAL [deprecated 7.12]
pre 7.0
-------
include/raytrace.h
struct hit.hit_point -> RT_HIT_POINT [deprecated pre-7.0]
struct hit.hit_normal -> RT_HIT_NORMAL [deprecated pre-7.0]
************
* OBSOLETE *
************
7.18.2
------
RT_HIT_NORM -> RT_HIT_NORMAL [deprecated pre-7.0]
g-shell.rect renamed to g-shell-rect [minor tool rename]
7.18.0
------
include/raytrace.h
db_free_external -> bu_free_external [deprecated pre-7.0]
include/wdb.h
mk_fastgen_region() -> mk_comb() [deprecated 7.12]
src/librt/bomb.c
rt_bomb() -> bu_bomb() [deprecated 7.10]
include/machine.h
machine.h -> common.h && bu.h [deprecated 7.10]
src/vas4
vas4, remove [deprecated 7.12]
7.16.4
------
include/raytrace.h
get_solidbitv() -> rt_get_solidbitv() [deprecated 7.16]
7.14.4
------
include/pkg.h
uses size_t for lengths in API calls
include/bu.h
bu_association() [unused]
7.14.0
------
include/raytrace.h
GET_HITMISS -> NMG_GET_HITMISS
mged
edcolor -> color -e
include/vmath.h
PI -> M_PI
M_SQRT2_DIV2 -> M_SQRT1_2
7.12.6
------
mged
binary -> bo [rename]
7.12.4
------
include/mater.h
rt_material_head -> rt_material_head() [deprecated 7.12]
include/raytrace.h
removed iterator from NMG_CK_HITMISS_LIST
include/bu.h
BU_QFLSTR -> BU_FLSTR
7.12.2
------
include/wdb.h
mk_trc() -> mk_trc_h() and mk_trc_top() [deprecated pre-7.0]
mk_bsolid() [deprecated pre-7.0]
mk_bsurf() [deprecated pre-7.0]
mk_strsol() -> mk_dsp(), mk_ebm(), mk_vol(), mk_submodel() [deprecated pre-7.0]
mk_rcomb(), mk_fcomb(), mk_memb() -> mk_lcomb() and mk_addmember() [deprecated pre-7.0]
mk_fwrite_internal() [deprecated pre-7.0]
7.12.0
------
include/common.h
NATURAL_IEEE -> bu_byteorder() == BU_BIG_ENDIAN || defined(WORDS_BIGENDIAN)
REVERSE_IEEE -> bu_byteorder() == BU_LITTLE_ENDIAN
include/bu.h
bu_log(char *, ...) -> bu_log(const char *, ...) [const]
bu_flog(FILE *, char *, ...) -> bu_flog(FILE *, const char *, ...) [const]
bu_vls_printf(struct bu_vls *, char *) -> bu_vls_printf(struct bu_vls *, const char *) [const]
bu_vls_sprintf(struct bu_vls *, char *) -> bu_vls_sprintf(struct bu_vls *, const char *) [const]
include/wdb.h
removed mk_poly() [deprecated pre-7.0]
removed mk_polysolid() [deprecated pre-7.0]
removed mk_fpoly() [deprecated pre-7.0]
removed write_shell_as_polysolid() [deprecated 6.0]
include/bu.h
char *bu_brlcad_path() -> const char *bu_brlcad_path() [const]
include/bn.h
bn_mat_zero() -> MAT_ZERO() [deprecated pre-7.0]
bn_mat_idn() -> MAT_IDN() [deprecated pre-7.0]
bn_mat_copy() -> MAT_COPY() [deprecated pre-7.0]
include/compat4.h
compat4.h -> bu.h && bn.h [deprecated 5.0]
include/raytrace.h
rt_overlap_quietly() -> struct application.a_logoverlap = rt_silent_logoverlap [deprecated pre 7.0]
include/bu.h
bu_brlcad_path() -> bu_brlcad_root() || bu_brlcad_data() [deprecated 7.4]
bu_tcl_brlcad_path() -> bu_tcl_brlcad_root() || bu_tcl_brlcad_data() [deprecated 7.4]
include/fb.h
fb_log(char *fmt) -> fb_log(const char *fmt) [const]
include/noalias-prag.h
removed [non-stdc]
include/noalias.h
removed [non-stdc]
src/librt/wdb_obj.c -> src/librt/db_obj.c
removed wdb_tree_cmd(), added dgo_tree_cmd() [rename]
mged
dbbinary -> binary [rename]
7.10.4
------
include/msr.h [pre 7.0]
msr.h -> bu.h
include/rtlist.h [pre 7.0]
rtlist.h -> bu.h
include/rtstring.h [pre 7.0]
rtstring.h -> bu.h
include/shortvect.h [pre 7.0]
include/shortvect-pr.h [pre 7.0]
7.10.2
------
include/raytrace.h
rt_version -> rt_version() [private]
include/[library].h (several)
[library]_version -> [library]_version() [private]
***********************************
* MINIMALLY IMPACTING API CHANGES *
***********************************
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 minor release. Examples of such changes include
renaming an interface, reordering parameters, adding new parameters to
an interface for previously implicit or restricted behavior, and
removing unused parameters.
Basically, the impact can usually be considered minor if a static
regular expression search-and-replace is all that is needed to update.
Included in following are various minimally impacting API changes that
have been identified in reverse chronological order. As expressions
are not extensively tested, use with caution.
s/db_shader_mat(/rt_shader_mat(/g
db_shader_mat() renamed to rt_shader_mat() [7.18]
s/rt_get_seg(/rt_alloc_sed_block(/g
rt_get_seg() renamed to rt_alloc_seg_block() [7.18]
s/db_get_directory(/db_alloc_directory_block(/g
db_get_directory() renamed to db_alloc_directory_block() [7.18]
s/db_get_directory_size(/db_directory_size(/g
db_get_directory_size() renamed to db_directory_size() [7.18]
s/db_get_version(/db_version(/g
db_get_version() renamed to db_version() [7.18]
s/VAPPROXEQUAL(/VNEAR_EQUAL(/g
VAPPROXEQUAL() renamed to VNEAR_EQUAL() [7.18]
s/bu_vlb_getBufferLength(/bu_vlb_buflen(/g
bu_vlb_getBufferLength() remamed to bu_vlb_buflen() [7.18]
s/bu_vlb_getBuffer(/bu_vlb_addr(/g
bu_vlb_getBuffer() remamed to bu_vlb_addr() [7.18]
s/nmg_struct_counts(/nmg_pr_m_struct_counts(/g
nmg_struct_counts() renamed to nmg_pr_m_struct_counts() [7.18]
s/bu_ptbl(\([^,]*\),[[:space:]]*BU_PTBL_INIT\([^)]*\))/bu_ptbl_init(\1, 64, "init")/g
s/bu_ptbl(\([^,]*\),[[:space:]]*BU_PTBL_RST\([^)]*\))/bu_ptbl_reset(\1)/g
s/bu_ptbl(\([^,]*\),[[:space:]]*BU_PTBL_INS\([^)]*\))/bu_ptbl_ins(\1\2)/g
s/bu_ptbl(\([^,]*\),[[:space:]]*BU_PTBL_LOC\([^)]*\))/bu_ptbl_locate(\1\2)/g
s/bu_ptbl(\([^,]*\),[[:space:]]*BU_PTBL_ZERO\([^)]*\))/bu_ptbl_zero(\1\2/g
s/bu_ptbl(\([^,]*\),[[:space:]]*BU_PTBL_INS_UNIQUE\([^)]*\))/bu_ptbl_ins_unique(\1\2)/g
s/bu_ptbl(\([^,]*\),[[:space:]]*BU_PTBL_RM\([^)]*\))/bu_ptbl_rm(\1\2)/g
s/bu_ptbl(\([^,]*\),[[:space:]]*BU_PTBL_CAT\([^)]*\))/bu_ptbl_cat(\1\2)/g
s/bu_ptbl(\([^,]*\),[[:space:]]*BU_PTBL_FREE\([^)]*\))/bu_ptbl_free(\1)/g
bu_ptbl() removed [7.18]
s/rt_ptalloc();/(struct rt_pt_node *)bu_malloc(sizeof(struct rt_pt_node), "rt_pt_node");/g
rt_ptalloc() removed [7.16]
s/rt_db_free_internal(\([^,]+\),[^)]*)/rt_db_free_internal(\1)/g
struct resource pointer parameter removed [7.14]
-62
View File
@@ -1,62 +0,0 @@
# We need various configuration files set up for DocBook processing tools
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/brlcad/)
# First, define the commands to expand the third party components we will need to handle
# DocBook processing from their archives into the build directory
include(${CMAKE_CURRENT_SOURCE_DIR}/resources/other/expand.cmake)
# Rework CMake binary and source paths for DocBook templates - if we
# have spaces in the paths, they will cause a problem.
string(REPLACE " " "%20" DOCBOOK_BINARY_DIR "${CMAKE_BINARY_DIR}")
string(REPLACE " " "%20" DOCBOOK_SOURCE_DIR "${CMAKE_SOURCE_DIR}")
# Common stylesheets for all DocBook sources
if(BRLCAD_EXTRADOCS_HTML OR BRLCAD_EXTRADOCS_PDF OR BRLCAD_EXTRADOCS_MAN OR BRLCAD_EXTRADOCS_PHP OR BRLCAD_EXTRADOCS_PPT)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/brlcad/brlcad-common.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/resources/brlcad/brlcad-common.xsl)
# Fonts definition
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/brlcad/brlcad-fonts.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/resources/brlcad/brlcad-fonts.xsl)
# Wordpress
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/brlcad/wordpress.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/resources/brlcad/wordpress.xsl)
endif(BRLCAD_EXTRADOCS_HTML OR BRLCAD_EXTRADOCS_PDF OR BRLCAD_EXTRADOCS_MAN OR BRLCAD_EXTRADOCS_PHP OR BRLCAD_EXTRADOCS_PPT)
# Files for PDF products
if(BRLCAD_EXTRADOCS_PDF)
# Apache FOP needs a couple of config files set up
set(srcdir ${CMAKE_CURRENT_SOURCE_DIR})
configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/fop.xconf.in ${CMAKE_BINARY_DIR}/doc/docbook/fop.xconf)
endif(BRLCAD_EXTRADOCS_PDF)
# Include CMake macros for DocBook.
include(${BRLCAD_SOURCE_DIR}/misc/CMake/DocBook.cmake)
# For the html files, we need brlcad.css
if(NOT CMAKE_CONFIGURATION_TYPES)
configure_file(css/brlcad.css ${CMAKE_BINARY_DIR}/${DOC_DIR}/html/css/brlcad.css)
else(NOT CMAKE_CONFIGURATION_TYPES)
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER "${CFG_TYPE}" CFG_TYPE_UPPER)
configure_file(css/brlcad.css ${CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}}/${DOC_DIR}/html/css/brlcad.css)
endforeach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
endif(NOT CMAKE_CONFIGURATION_TYPES)
install(FILES css/brlcad.css DESTINATION ${DOC_DIR}/html/css)
add_subdirectory(articles)
add_subdirectory(books)
add_subdirectory(lessons)
add_subdirectory(presentations)
add_subdirectory(specifications)
add_subdirectory(system)
CMAKEFILES(README fop.xconf.in log4j.properties resources)
CMAKEFILES(README.DB_authors_notes)
CMAKEFILES(css/brlcad.css)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+122
View File
@@ -0,0 +1,122 @@
XSLTPROC_FLAGS=-nonet -xinclude
XSL_XHTML_STYLESHEET=$(top_srcdir)/doc/docbook/resources/standard/xsl/xhtml-1_1/docbook.xsl
XSL_MAN_STYLESHEET=$(top_srcdir)/doc/docbook/resources/standard/xsl/manpages/docbook.xsl
XSL_FO_STYLESHEET=$(top_srcdir)/doc/docbook/resources/standard/xsl/fo/docbook.xsl
.xml.html:
@mkdir -p $$(dirname $@)
$(XSLTPROC) $(XSLTPROC_FLAGS) -o $@ $(XSL_XHTML_STYLESHEET) $?
.xml.1:
$(XSLTPROC) $(XSLTPROC_FLAGS) $(XSL_MAN_STYLESHEET) $?
@dir="$$(dirname $@)" && mkdir -p $$dir && mv '$(@F)' $$dir
.xml.3:
$(XSLTPROC) $(XSLTPROC_FLAGS) $(XSL_MAN_STYLESHEET) $?
@dir="$$(dirname $@)" && mkdir -p $$dir && mv '$(@F)' $$dir
.xml.5:
$(XSLTPROC) $(XSLTPROC_FLAGS) $(XSL_MAN_STYLESHEET) $?
@dir="$$(dirname $@)" && mkdir -p $$dir && mv '$(@F)' $$dir
.xml.nged:
$(XSLTPROC) $(XSLTPROC_FLAGS) $(XSL_MAN_STYLESHEET) $?
@dir="$$(dirname $@)" && mkdir -p $$dir && mv '$(@F)' $$dir
.fo.pdf: .xml.fo
$(APACHEFOP) -c fop.xconf $? -pdf $@
.xml.fo:
@mkdir -p $$(dirname $@)
$(XSLTPROC) $(XSLTPROC_FLAGS) -o $@ $(XSL_FO_STYLESHEET) $?
include $(srcdir)/articles/en/Makefile.am
include $(srcdir)/books/en/Makefile.am
include $(srcdir)/lessons/en/Makefile.am
include $(srcdir)/lessons/es/Makefile.am
include $(srcdir)/specifications/en/Makefile.am
include $(srcdir)/system/man1/en/Makefile.am
include $(srcdir)/system/man3/en/Makefile.am
include $(srcdir)/system/man5/en/Makefile.am
include $(srcdir)/system/mann/en/Makefile.am
if BUILD_DOCS
BUILT_SOURCES = \
$(BUILTARTICLES_ENHTML) \
$(BUILTARTICLES_ENPDF) \
$(BUILTLESSONS_ENHTML) \
$(BUILTLESSONS_ENPDF) \
$(BUILTBOOKS_ENHTML) \
$(BUILTBOOKS_ENPDF) \
$(BUILTSPECS_ENHTML) \
$(BUILTSPECS_ENPDF) \
$(BUILTMAN_ENHTML) \
$(BUILTMAN_ENPDF) \
$(BUILTMAN3_ENHTML) \
$(BUILTMAN3_ENPDF) \
$(BUILTMAN5_ENHTML) \
$(BUILTMAN5_ENPDF) \
$(BUILTMANN_ENHTML) \
$(BUILTMANN_ENPDF) \
$(BUILTLESSONS_ESHTML) \
$(BUILTLESSONS_ESPDF)
BUILTMAN_EN_SOURCES = \
${man1DOCBOOK_EN:xml=1} \
${man3DOCBOOK_EN:xml=3} \
${man5DOCBOOK_EN:xml=5} \
${mannDOCBOOK_EN:xml=nged}
man_MANS = \
$(BUILTMAN_EN_SOURCES)
else
BUILT_SOURCES =
BUILTMAN_EN_SOURCES =
endif
CLEANFILES = \
$(BUILTMAN_EN_SOURCES) \
$(BUILT_SOURCES)
EXTRA_DIST = \
${articlesDOCBOOK_EN_IMAGES} \
${articlesDOCBOOK_EN} \
${booksDOCBOOK_EN_IMAGES} \
${booksDOCBOOK_EN} \
${lessonsDOCBOOK_EN_IMAGES} \
${lessonsDOCBOOK_EN} \
${lessonsDOCBOOK_ES_IMAGES} \
${lessonsDOCBOOK_ES} \
${man1DOCBOOK_EN} \
${man3DOCBOOK_EN} \
${man5DOCBOOK_EN} \
${mannDOCBOOK_EN} \
${mannINTRO_EN} \
${specificationsDOCBOOK_EN} \
README \
articles/en/Makefile.am \
articles/en/images/tire_fig12.svg \
articles/en/images/tire_fig13.svg \
books/README \
books/en/Makefile.am \
books/en/tutorial_series_authors.xml \
catalog.xml \
fop.xconf.in \
lessons/en/Makefile.am \
lessons/es/Makefile.am \
log4j.properties \
resources \
specifications/en/Makefile.am \
system/README \
system/man1/en/Makefile.am \
system/mann/mged_cmd_template.xml \
system/man3/en/Makefile.am \
system/man5/en/Makefile.am \
system/mann/en/Makefile.am
include $(top_srcdir)/misc/Makefile.defs
+23 -188
View File
@@ -1,15 +1,14 @@
This directory holds the DocBook (DB) documentation for BRL-CAD. Over
time, this should become the repository for all tutorials, man pages,
and other non-autogenerated, formatted documentation for BRL-CAD.
This directory holds the Docbook documentation for BRL-CAD - over time,
this should become the repository for all tutorials, man pages, and other
non-autogenerated, formatted documentation for BRL-CAD.
The xsl stylesheets for docbook are presently in the
"resources/other/standard" directory.
The xsl stylesheets for docbook are present in the resources directory.
The current structure is as follows:
articles/
Individual articles on specific topics - oed and tire live here,
as well as the articles that made up the appendices of Vol III.
as well as the articles that made up the appendices of VolIII.
books/
Either compilations of smaller documents into large works, or
@@ -22,204 +21,40 @@ lessons/
lessons that made up Volume II.
resources/
The DocBook xsl files are contained within the "other"
subdirectory. Also included there are various directories and
files associated with DB validation, fonts, and hyphenation.
The "brlcad" subdirectory contains files customized for
BRL-CAD products including common files and images.
The DocBook xsl files are contained within the
"standard" subdirectory. Custom files will be organized under
this directory in the future.
system/
Documentation similar to traditional Unix "man" pages - focused
documentation on specific parts of BRL-CAD. There is a template
for authors of mged command man pages at:
documentation on specific parts of BRL-CAD.
./system/mann/mged_cmd_template.xml
English documents (the only language documentation is written in within
svn as of Sept. 2008) are in en subdirectories. Other languages, when
implemented, will use standard two character sub directories.
presentations/
Copies of briefings (slides or slides converted to documents,
e.g., "Introduction to Tcl/Tk."
LANGUAGE CONSIDERATIONS
-----------------------
English documents are in 'en' sub-directories. Other languages are
found in standard two-character sub-directories. See, for example,
the Spanish translations in 'lessons/es'. Currently, the following
language codes may be found in various sub-directories:
* en - English
* es - Spanish
* hy - Armenian
* it - Italian
* ru - Russian
See <http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes> for one
listing of ISO language codes.
English DocBook source files are expected to be ASCII with xhtml
unicode markup for non-ASCII symbols. Other language source files
should be in UTF-8.
Notes on equation generation in svg, lists of common symbols and their
unicode DB symbols, and other notes on DB authoring tips are found in
the file 'README.DB_authors_notes'.
The text character code requirements may eventually be enforced by a
pre-commit hook script.
CONVERTING MAN FORMAT TO DOCBOOK
---------------------------------
The doclifter program (available in a Debian or Ubuntu distribution)
can give a first-order conversion from the man page format (roff,
nroff, troff, or groff) to DocBook xml.
DOCBOOK PROCESSING
------------------
Currently there are three products generated from DB source:
* man pages
* html documents
* pdf documents
There are some external tools required in order to produce those
documents:
For all DB documents (man, html, and pdf):
* xsltproc
a program that comes with libxslt (see http://xmlsoft.org/XSLT/)
* saxon-he
an Open Source java xslt processor (capable of using XSLT 2.0
and the new DB XSLT 2.0 stylesheets released on 2011-08-25
[not yet used or provided with BRL-CAD]) (see
http://saxon.sourceforge.net/)
For pdf documents:
* fop
a java program provided by the Apache Software Foundation; note
that a minimum of version 1.0 is required to use the
hyphenation binaries provided in the resources sub-directory
(see http://xmlgraphics.apache.org/fop/). Also, version 1.0
has some new font support features and we recommend using that
version (or later) for DB processing.
* Java
a working Java run-time environment
* scribus
an Open Source page layout program; use to convert eps to svg
(see http://www.scribus.net)
For checking the well-formedness of any xml document:
* xmllint
a program that comes with libxml2 (see http://xmlsoft.org/)
For creating and editing svg equations:
* LibreOffice
a free office suite whose text editor can be used to create
and edit equations and export them to MathML (mml) files (see
http://www.libreoffice.org/)
* Inkscape
a powerful and free vector drawing editor (see
http://inkscape.org)
* math2svg
a program (from the SVGMath suite) to convert MathML xml
format to SVG xml format (see
http://http://grigoriev.ru/svgmath/ and
http://sourceforge.net/projects/svgmath/)
Note that the output sometimes needs further editing either
manually or by inkscape.
See this link for help in installing fop 1.0 and saxon-he on Ubuntu:
http://johnbokma.com/mexit/2011/07/04/
VALIDATION
----------
It is possible to add a validation step to DocBook compilation by
defining the CMake variable BRLCAD_EXTRADOCS_VALIDATE to ON.
By default, this will use xmllint to validate the xml files as
they are built.
In order to use a different validation program the user must obtain some
external tools that are not presently part of the BRL-CAD package:
For the 'msv' validation method (a recommended method):
* msv
Oracle Multi-Schema XML Validator (MSV) (see http://msv.java.net/)
* Java
a working Java run-time environment
For the 'nvdl' validation method:
* onvdl.jar
a Java jar file with the oNVDL validation tool (see
https://sourceforge.net/projects/onvdl/
* Java
a working Java run-time environment
For the 'rnv' validation method:
* rnv
http://sourceforge.net/projects/rnv/
* expat library
present in most Linux/Unix distributions, see
http://expat.sourceforge.net/
To use these tools, a <toolname>.cmake.in file must be present
in the misc/CMake source directory. This file tells CMake how
to run the tool in question. Examples for msv and rnv are already
present - see misc/CMake/rnv.cmake.in and misc/CMake/msv.cmake.in
Once the correct file is present, configure CMake with options
similar to the following (alter for your specific tool):
cmake .. -DBRLCAD_EXTRADOCS_VALIDATE=ON -DVALIDATE_EXECUTABLE=msv
OTHER CONSIDERATIONS
--------------------
These documents make extensive use of the XInclude modular
documentation specification. Consequently, the contents of any one
particular "document" may be scattered over many other documents.
This design direction is intended to allow re-use of standard
definitions and descriptions in multiple documents serving multiple
purposes. When a definition is updated for one document,
re-generation of other documents will incorporate the update as well
without requiring redundant editing.
These documents make extensive use of the XInclude modular documentation
specification, and as a consequence the contents of any one particular
"document" may be scattered over many other documents. This design
direction is intended to allow re-use of standard definitions and
descriptions in multiple documents serving multiple purposes. When
a definition is updated for one document, re-generation of other documents
will incorporate the update as well without requiring redundant editing.
Caution - the BRL-CAD build logic is not aware of the interlinking of
various xml files using xinclude. This means that a change on one document
may make other output files out of date, and this will not trigger a
re-build of those files automatically.
re-build of those file automatically.
Notes:
* When rendered to html output and placed on a server, there may arise
a problem where the server supplies the page as ISO-8859-1 encoded
despite them actually using UTF-8. To combat this problem in the
case of the Apache web server, an .htaccess file in the directory
case of the Apache web server, an .htaccess file in the directory
with the line:
AddDefaultCharset UTF-8
AddDefaultCharset UTF-8
should let Apache know to use UTF-8 encoding for these pages.
-275
View File
@@ -1,275 +0,0 @@
DOCBOOK CHARACTERS AND SYMBOLS
------------------------------
Some special characters for DB inline equations:
LE &#x2264; less than or equal to
GE &#x2265; greater than or equal to
x &#x00D7; multiply
div &#x00F7; divide
add &#x002B; add
pm &#x00B1; plus or minus
ne &#x2260; not equal to
dot &#x2219; dot operator (multiply)
pi &#x03C0; small Greek letter pi
Pi &#x03A0; capital Greek letter Pi
Dashes:
figure dash &#x2012;
en dash &#x2013;
em dash &#x2014;
quotation dash &#x2015;
swung dash &#x2053;
Some unicode characters for spaces (see p. 330 in Bob Stayton's book):
&#x00A0; &nbsp; no-break space
&#x2002; &ensp; en space, half the width of an em space
&#x2003; &emsp; em space, usually equal to the type size of the font
&#x2004; &emsp13; 1/3 em
&#x2005; &emsp14; 1/4 em
&#x2006; 1/6 em
&#x2007; &numsp; width of a digit
&#x2008; &puncsp; width of narrow punctuation
&#x2009; &thinsp; 1/5 em
&#x200A; &hairsp; thinner than thin space
Other symbols:
&#x00A9; copyright
&#x00AE; registered sign
&#x00B0; degree symbol
&#x2120; service mark
&#x2122; trade mark
Note that the space character should butt against the adjacent
characters.
SVG EQUATIONS
-------------
To include fancier equations, do the following:
Use LibreOffice Math to write the equation. Save the file as X.mml
where X is a suitable name.
Example mml file:
<?xml version="1.0" encoding="UTF-8"?>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mrow>
<mrow>
<msub>
<mi>P</mi>
<mi>k</mi>
</msub>
</mrow>
</mrow>
<annotation encoding="StarMath 5.0">P_{k} = P_{{k}_{MAX}} left lbrace 1 -e^{[-k_{1}(x - x_{0})^{k_{2}}]} right rbrace </annotation>
</semantics>
</math>
Edit the file to remove the "semantics" element. Ensure you add the
mml file to version control.
Use SVGMath to convert the file to a graphic:
math2svg -s -o X.svg X.mml
Or you can use the bash script "make-svg.sh" (requires editing to suit
user preferences and paths) which creates the svg file in a
user-defined subdirectory and uses xmllint to format it ready for
further editing either with Inkscape or by hand.
Use Inkscape to view the svg file and edit it if necessary. Be sure
to add the new file to version control in the text subdirectory.
Include the svg file in the desired place in DocBook source like this:
<equation id="X">
<title>General closed-form damage function formula</title>
<informalfigure>
<mediaobject>
<imageobject role='xhtml'>
<!-- centering title taken care of in css -->
<imagedata
width='3in' scalefit='1'
fileref="./X.svg"
/>
</imageobject>
<imageobject role='fo'>
<imagedata
align='center'
format="SVG"
fileref="./X.svg"
/>
</imageobject>
</mediaobject>
</informalfigure>
</equation>
SVG AND PDF FONT PROBLEMS
-------------------------
Note there can be font problems for pdf with complex equations. Querying the
fop mailing list sheds light on the situation:
<quote>
from: Vincent Hennebert vhennebert@gmail.com via xmlgraphics.apache.org
sender-time: Sent at 05:07 (GMT+01:00). Current time there: 2:23 PM.
reply-to: fop-users@xmlgraphics.apache.org
to: fop-users@xmlgraphics.apache.org
date: Tue, Apr 19, 2011 at 05:07
subject: Re: Missing Font for SVG to PDF Output
mailing list: <fop-users.xmlgraphics.apache.org>; mailed by xmlgraphics.apache.org
...
Make sure that the family name you declare in fop.xconf matches the
name under which the font is known on the system.
Let's take the font "Linux Libertine" an example. Java would know this
font under that name. Since Batik uses the Java font system, it will
also use that name and pass it on to FOP. So you must have a
font-triplet in your fop.xconf that matches that name:
<font embed-url="libertine.ttf">
<font-triplet name="Linux Libertine" style="normal" weight="normal"/>
</font>
If you use something else, FOP will find no match for "LinuxLibertine"
and will fall back to a default font.
You can use the
java.awt.GraphicsEnvironment.getAvailableFontFamilyNames method to
know under which names Java registers the fonts on your system. Of
course, be sure to also use those names in the SVG file.
</quote>
MARKS FOR ITEMIZED LIST
-----------------------
Itemized list symbols defined in the docbook/fo stylesheets that work with the
current BRL-CAD environment:
<xsl:choose>
<xsl:when test="$itemsymbol='none'"></xsl:when>
<xsl:when test="$itemsymbol='disc'">&#x2022;</xsl:when>
<xsl:when test="$itemsymbol='bullet'">&#x2022;</xsl:when>
<xsl:when test="$itemsymbol='endash'">&#x2013;</xsl:when>
<xsl:when test="$itemsymbol='emdash'">&#x2014;</xsl:when>
<xsl:when test="$itemsymbol='square'">&#x25A0;</xsl:when>
<xsl:when test="$itemsymbol='box'">&#x25A0;</xsl:when>
<xsl:when test="$itemsymbol='smallblacksquare'">&#x25AA;</xsl:when>
<xsl:when test="$itemsymbol='circle'">&#x25CB;</xsl:when>
<xsl:when test="$itemsymbol='opencircle'">&#x25CB;</xsl:when>
<xsl:when test="$itemsymbol='whitesquare'">&#x25A1;</xsl:when>
<xsl:when test="$itemsymbol='smallwhitesquare'">&#x25AB;</xsl:when>
<xsl:when test="$itemsymbol='round'">&#x25CF;</xsl:when>
<xsl:when test="$itemsymbol='blackcircle'">&#x25CF;</xsl:when>
<xsl:when test="$itemsymbol='whitebullet'">&#x25E6;</xsl:when>
<xsl:when test="$itemsymbol='triangle'">&#x2023;</xsl:when>
<xsl:when test="$itemsymbol='point'">&#x203A;</xsl:when>
<xsl:otherwise>&#x25CF;</xsl:otherwise><!-- bullet -->
</xsl:choose>
The default marks for html nested itemized lists are:
disc
circle
square
and they appear as small marks in html. Note that html only
recognizes those mark names so we accept those defaults and they look
okay.
For pdf, the same mark names appear too large and we have customized
the defaults marks as follows:
<xsl:template name="next.itemsymbol">
<xsl:param name="itemsymbol" select="'default'"/>
<xsl:choose>
<!-- Change this list if you want to change the order of symbols -->
<xsl:when test="$itemsymbol = 'bullet'">whitebullet</xsl:when>
<xsl:when test="$itemsymbol = 'whitebullet'">smallblacksquare</xsl:when>
<xsl:otherwise>bullet</xsl:otherwise>
</xsl:choose>
</xsl:template>
For non-default pdf list markers modify the 'mark' attribute for the
<itemizedlist>, e.g.,
<itemizedlist mark='bullet'> <!-- a small black dot -->
...
<itemizedlist mark='whitebullet'> <!-- a small white circle -->
EPS AND OTHER GRAPHICS
----------------------
eps and pdf are not handled well in fop currently.
Use png or tiff for html and svg for fop.
Use scribus (http://www.scribus.net) to convert eps to svg.
Use gimp (http://www.gimp.org) to scale or edit png images.
To center an image in html, use css:
div.mediaobject {
text-align: center;
}
A TEMPLATE FOR A FORMAL FIGURE AND INCLUDED IMAGES
--------------------------------------------------
To better control images for html and pdf, use different attributes
according to role in the DB source. Following is a template that
gives the basic attributes to do that. Note the filerefs are the
same, but, in this case, the image widths are specified differently.
It sometimes it takes a bit of trial and error to get the right
attributes and values. See Reference 2, p. 290, for much more detail.
<!-- ************************************ -->
<figure>
<title>???</title>
<mediaobject>
<imageobject role='html'>
<imagedata
align="center"
contwidthwidth='4.5in' scalefit='1'
fileref="./images/vbox/"
/>
</imageobject>
<imageobject role='fo'>
<imagedata
align="center"
width='4.5in' scalefit='1'
fileref="./images/vbox/"
/>
</imageobject>
<textobject>
<phrase>a picture</phrase>
</textobject>
</mediaobject>
</figure>
REFERENCES
----------
1. Norman Walsh, "DocBook 5: The Definitive Guide," May 2010, O'Reilly
Media, Inc., Sebastopol, CA, ISBN: 978-0-596-80502-9.
2. Bob Stayton, "DocBook XSL: The Complete Guide," Fourth Edition,
September 2007, Sagehill Enterprises, Santa Cruz, CA, ISBN:
978-0-9741521-3-4.
-36
View File
@@ -1,36 +0,0 @@
# Style sheet for XSLT transformation to article HTML pages
if(BRLCAD_EXTRADOCS_HTML)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl)
endif(BRLCAD_EXTRADOCS_HTML)
if(BRLCAD_EXTRADOCS_PHP)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl)
endif(BRLCAD_EXTRADOCS_PHP)
# Files for PDF products
if(BRLCAD_EXTRADOCS_PDF)
# Style sheet for XSLT transformation to PDF
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/../resources/brlcad/brlcad-article-fo-stylesheet.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-fo-stylesheet.xsl)
endif(BRLCAD_EXTRADOCS_PDF)
# For HTML and FO (FO is an intermediate file used in the
# XML->PDF transformation) we use variables to hold the full
# stylesheet path.
set(XSL_PHP_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/wordpress.xsl")
set(XSL_HTML_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-xhtml-stylesheet.xsl")
set(XSL_FO_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/brlcad-article-fo-stylesheet.xsl")
add_subdirectory(en)
add_subdirectory(hy)
add_subdirectory(it)
add_subdirectory(ru)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-171
View File
@@ -1,171 +0,0 @@
set(articles_EN
TEMPLATE.xml
about.xml
animation_tutorial.xml
build_pattern.xml
build_region.xml
camo_shader.xml
ebm_primitive.xml
gcv.xml
ged.xml
mgedrc.xml
nirt.xml
oed.xml
pipes.xml
projection_shader.xml
tire.xml
mged.xml
main_menu.xml
)
set(articles_EN_IMAGES
images/Lee_tux.gif
images/animtbl.gif
images/build_pattern_fig01.png
images/build_pattern_fig02.png
images/build_pattern_fig03.png
images/build_pattern_fig04.png
images/build_pattern_fig05.png
images/build_pattern_fig06.png
images/build_pattern_fig07.png
images/build_region_fig01.png
images/build_region_fig02.png
images/build_region_fig03.png
images/build_region_fig04.png
images/dagtbl.gif
images/ebm_primitive_fig01.png
images/ebm_primitive_fig02.png
images/ebm_primitive_fig03.png
images/ell.mpg
images/ell_sm.gif
images/ell_ssm.gif
images/equation.gif
images/film.gif
images/fn.gif
images/gcv_architecture.png
images/gcv_unsupported_tessellation.png
images/gcv_using_gdiff.png
images/matrix.gif
images/mgedrc_fig01.png
images/mgedrc_fig02.png
images/mgedrc_fig03.png
images/moss.mpg
images/moss_sm.gif
images/moss_ssm.gif
images/nirt_fig01.png
images/nirt_fig02.png
images/nirt_fig03.png
images/nirt_fig04.png
images/nirt_fig05.png
images/nirt_fig06.png
images/nirt_fig07.png
images/nirt_fig08.png
images/nirt_fig09.png
images/nirt_fig10.png
images/nirt_fig11.png
images/nirt_fig12.png
images/nirt_fig13.png
images/nirt_fig14.png
images/nirt_fig15.png
images/nirt_fig16.png
images/nirt_fig17.png
images/nirt_fig18.png
images/nirt_fig19.png
images/nirt_fig20.png
images/nirt_fig21.png
images/nirt_fig22.png
images/nirt_fig23.png
images/nirt_fig24.png
images/oed_fig01.png
images/oed_fig02.png
images/oed_fig03.png
images/oed_fig04.png
images/oed_fig05.png
images/oed_fig06.png
images/oed_fig07.png
images/oed_fig08.png
images/oed_fig09.png
images/oed_fig10.png
images/oed_fig11.png
images/oed_fig12.png
images/oed_fig13.png
images/pipes_fig01.png
images/pipes_fig02.png
images/pipes_fig03.png
images/pipes_fig04.png
images/pipes_fig05.png
images/pipes_fig06.png
images/pipes_fig07.png
images/pipes_fig08.png
images/pipes_fig09.png
images/pipes_fig10.png
images/pipes_fig11.png
images/pipes_fig12.png
images/pipes_fig13.png
images/projection_shader_fig01.png
images/projection_shader_fig02.png
images/projection_shader_fig03.png
images/projection_shader_fig04.png
images/projection_shader_fig05.png
images/projection_shader_fig06.png
images/projection_shader_fig07.png
images/tire_fig01.png
images/tire_fig02.png
images/tire_fig03.png
images/tire_fig04.png
images/tire_fig05.png
images/tire_fig06.png
images/tire_fig07.png
images/tire_fig08.png
images/tire_fig09.png
images/tire_fig10.png
images/tire_fig11.png
images/tire_fig12.png
images/tire_fig13.png
images/tire_fig14.png
images/trans.gif
images/transboth.gif
images/transboth_sm.gif
images/v_eqn1.gif
images/v_eqn2.gif
images/azel.jpg
images/az_el.gif
images/az_el.jpg
images/az_el_sm.gif
images/base.gif
images/base.jpg
images/bool.gif
images/coord-axes.gif
images/cup_and_mug.gif
images/cup_and_mug_small.gif
images/cup_out+in.gif
images/cup_outside.gif
images/cup_w_handle.gif
images/faceplate.gif
images/faceplate_menu.gif
images/faceplate_menu_sm.gif
images/faceplate_sm.gif
images/fillet.gif
images/fillet.jpg
images/handle.gif
images/handle.jpg
images/mug_camo.gif
images/mug_camo.jpg
images/mug_green.gif
images/mug_green.jpg
images/prims.gif
images/rim.gif
images/rim.jpg
)
ADD_DOC(articles_EN_IMAGES html/articles/en/images)
ADD_DOCBOOK("HTML;PHP;PDF" articles_EN articles/en articles_EN_IMAGES_cp)
CMAKEFILES(images/tire_fig12.svg images/tire_fig13.svg)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+120
View File
@@ -0,0 +1,120 @@
articlesDOCBOOK_EN = \
articles/en/build_pattern.xml \
articles/en/build_region.xml \
articles/en/ebm_primitive.xml \
articles/en/mgedrc.xml \
articles/en/nirt.xml \
articles/en/oed.xml \
articles/en/pipes.xml \
articles/en/projection_shader.xml \
articles/en/tire.xml
articlesDOCBOOK_EN_IMAGES = \
articles/en/images/build_pattern_fig01.png \
articles/en/images/build_pattern_fig02.png \
articles/en/images/build_pattern_fig03.png \
articles/en/images/build_pattern_fig04.png \
articles/en/images/build_pattern_fig05.png \
articles/en/images/build_pattern_fig06.png \
articles/en/images/build_pattern_fig07.png \
articles/en/images/build_region_fig01.png \
articles/en/images/build_region_fig02.png \
articles/en/images/build_region_fig03.png \
articles/en/images/build_region_fig04.png \
articles/en/images/ebm_primitive_fig01.png \
articles/en/images/ebm_primitive_fig02.png \
articles/en/images/ebm_primitive_fig03.png \
articles/en/images/mgedrc_fig01.png \
articles/en/images/mgedrc_fig02.png \
articles/en/images/mgedrc_fig03.png \
articles/en/images/nirt_fig01.png \
articles/en/images/nirt_fig02.png \
articles/en/images/nirt_fig03.png \
articles/en/images/nirt_fig04.png \
articles/en/images/nirt_fig05.png \
articles/en/images/nirt_fig06.png \
articles/en/images/nirt_fig07.png \
articles/en/images/nirt_fig08.png \
articles/en/images/nirt_fig09.png \
articles/en/images/nirt_fig10.png \
articles/en/images/nirt_fig11.png \
articles/en/images/nirt_fig12.png \
articles/en/images/nirt_fig13.png \
articles/en/images/nirt_fig14.png \
articles/en/images/nirt_fig15.png \
articles/en/images/nirt_fig16.png \
articles/en/images/nirt_fig17.png \
articles/en/images/nirt_fig18.png \
articles/en/images/nirt_fig19.png \
articles/en/images/nirt_fig20.png \
articles/en/images/nirt_fig21.png \
articles/en/images/nirt_fig22.png \
articles/en/images/nirt_fig23.png \
articles/en/images/nirt_fig24.png \
articles/en/images/oed_fig01.png \
articles/en/images/oed_fig02.png \
articles/en/images/oed_fig03.png \
articles/en/images/oed_fig04.png \
articles/en/images/oed_fig05.png \
articles/en/images/oed_fig06.png \
articles/en/images/oed_fig07.png \
articles/en/images/oed_fig08.png \
articles/en/images/oed_fig09.png \
articles/en/images/oed_fig10.png \
articles/en/images/oed_fig11.png \
articles/en/images/oed_fig12.png \
articles/en/images/oed_fig13.png \
articles/en/images/pipes_fig01.png \
articles/en/images/pipes_fig02.png \
articles/en/images/pipes_fig03.png \
articles/en/images/pipes_fig04.png \
articles/en/images/pipes_fig05.png \
articles/en/images/pipes_fig06.png \
articles/en/images/pipes_fig07.png \
articles/en/images/pipes_fig08.png \
articles/en/images/pipes_fig09.png \
articles/en/images/pipes_fig10.png \
articles/en/images/pipes_fig11.png \
articles/en/images/pipes_fig12.png \
articles/en/images/pipes_fig13.png \
articles/en/images/projection_shader_fig01.png \
articles/en/images/projection_shader_fig02.png \
articles/en/images/projection_shader_fig03.png \
articles/en/images/projection_shader_fig04.png \
articles/en/images/projection_shader_fig05.png \
articles/en/images/projection_shader_fig06.png \
articles/en/images/projection_shader_fig07.png \
articles/en/images/tire_fig01.png \
articles/en/images/tire_fig02.png \
articles/en/images/tire_fig03.png \
articles/en/images/tire_fig04.png \
articles/en/images/tire_fig05.png \
articles/en/images/tire_fig06.png \
articles/en/images/tire_fig07.png \
articles/en/images/tire_fig08.png \
articles/en/images/tire_fig09.png \
articles/en/images/tire_fig10.png \
articles/en/images/tire_fig11.png \
articles/en/images/tire_fig12.png \
articles/en/images/tire_fig13.png \
articles/en/images/tire_fig14.png
articlesDOCBOOK_ENhtmldir = $(BRLCAD_DATA)/html/articles/en
articlesDOCBOOK_ENhtml_DATA = \
$(BUILTARTICLES_ENHTML)
BUILTARTICLES_ENHTML = \
${articlesDOCBOOK_EN:xml=html}
articlesDOCBOOK_ENhtmlimagesdir = $(BRLCAD_DATA)/html/articles/en/images
articlesDOCBOOK_ENhtmlimages_DATA = \
$(articlesDOCBOOK_EN_IMAGES)
if BUILD_PDF_DOCS
BUILTARTICLES_ENPDF = ${articlesDOCBOOK_EN:xml=pdf}
endif
articlesDOCBOOK_ENpdfdir = $(BRLCAD_DATA)/pdf/articles/en
articlesDOCBOOK_ENpdf_DATA = $(BUILTARTICLES_ENPDF)
-160
View File
@@ -1,160 +0,0 @@
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
<info>
<title>Article Title</title>
<author>
<personname>
<firstname>Firstname</firstname>
<othername>Middlename</othername>
<surname>Lastname</surname>
</personname>
<!-- optional e-mail address -->
<affiliation>
<orgname>BRL-CAD Open Source</orgname>
<address>
<email>devs@brlcad.org</email>
</address>
</affiliation>
</author>
</info>
<section xml:id="some-descriptive-tag">
<!-- the xml:id tag is just something descriptive that you can
reference if you wanted to use CSS to modify the layout. -->
<para>
First paragraph goes here.
</para>
<literallayout>
<command>benchmark TIMEFRAME=1 run</command>
</literallayout>
<note>
<para>
The preceding <application>benchmark</application> command
example can get a lot more complex.
</para>
</note>
<para>
When you run the <command>benchmark</command> with
the <option>help</option> option, you might see this output:
<literallayout><computeroutput><prompt>sean@gcc1-power7 bin]$</prompt><command>benchmark</command> help
Usage: ./benchmark [command(s)] [OPTION=value] [RT_OPTIONS]
Available commands:
clean
...
</computeroutput></literallayout>
</para>
<para>
Another paragraph with embedded list is shown here. Each
paragraph gets its own para and should be wrapped for
readability and localized context diff comparisons.
<info><title>A list of items:</title></info>
<itemizedlist mark="bullet"><listitem><para>
Bullet item 1.
</para></listitem><listitem><para>
Bullet item 2.
</para></listitem></itemizedlist>
</para>
</section>
<section xml:id="another-tag-for-main-body">
<title>Breaking up the flow into sections</title>
<para>
You can use sections to group sections of your document
together, but they are not necessary.
</para>
<figure>
<info>
<title>Example embedded image text.</title>
</info>
<mediaobject>
<imageobject role="html">
<!--
NOTE: fileref will normally be something like
"../../articles/en/images/nirt_fig02.png" NOT http: URL
-->
<imagedata align="center" fileref="http://brlcad.org/images/logo/BRL-CAD_gear_logo_w_name_256.png" format="PNG" width="256"/>
</imageobject>
<imageobject role="fo">
<!--
NOTE: fileref will normally be something like
"../../articles/en/images/nirt_fig02.png" NOT http: URL
-->
<imagedata align="center" fileref="http://brlcad.org/images/logo/BRL-CAD_gear_logo_w_name_256.png" format="PNG" width="256"/>
</imageobject>
<caption>
<para>
Image caption text.
</para>
</caption>
</mediaobject>
</figure>
<para>
Another image, but rendered inline
<inlinemediaobject><imageobject role="html"><imagedata fileref="http://brlcad.org/images/logo/BRL-CAD_gear_logo_64x64.png" format="PNG" width="64"/></imageobject><imageobject role="fo"><imagedata fileref="http://brlcad.org/images/logo/BRL-CAD_gear_logo_64x64.png" format="PNG" width="64"/></imageobject></inlinemediaobject>
with the paragraph text.
</para>
<para>
More paragraphs...
</para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>Type</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>ell</entry>
<entry>Generalized Ellipsoid</entry>
</row>
<row>
<entry>arb8</entry>
<entry>Arbitrary Regular Polyhedron with up to 8 vertices</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<section>
<caution>
<para>
There's a lot more you can do with Docbook/XML. Search the web for references and examples:
</para>
<itemizedlist>
<listitem>
<para>
<link xlink:href="http://www.docbook.org/tdg5/en/html/article.html">
http://www.docbook.org/tdg5/en/html/article.html
</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="http://www.openoffice.org/xml/xmerge/docbook/UserGuide.html">
http://www.openoffice.org/xml/xmerge/docbook/UserGuide.html
</link>
</para>
</listitem>
</itemizedlist>
</caution>
</section>
</section>
</article>
-99
View File
@@ -1,99 +0,0 @@
<article xmlns="http://docbook.org/ns/docbook" version="5.0">
<info>
<title>About BRL-CAD</title>
<author>
<personname>
<firstname>Christopher</firstname>
<othername>Sean</othername>
<surname>Morrison</surname>
</personname>
<affiliation>
<orgname>BRL-CAD Open Source</orgname>
<address>
<email>devs@brlcad.org</email>
</address>
</affiliation>
</author>
</info>
<section xml:id="article-body">
<para>
BRL-CAD is a powerful cross-platform Open Source combinatorial
Constructive Solid Geometry (CSG) solid modeling system that
includes interactive 3D solid geometry editing, high-performance
ray-tracing support for rendering and geometric analysis,
network-distributed framebuffer support, image and
signal-processing tools, path-tracing and photon mapping support
for realistic image synthesis, a system performance analysis
benchmark suite, an embedded scripting interface, and libraries
for robust high-performance geometric representation and
analysis.
</para>
<para>
For more than 20 years, BRL-CAD has been the primary tri-service
solid modeling CAD system used by the U.S. military to model
weapons systems for vulnerability and lethality analyses. The
solid modeling system is frequently used in a wide range of
military, academic, and industrial applications including in the
design and analysis of vehicles, mechanical parts, and
architecture. The package has also been used in radiation dose
planning, medical visualization, computer graphics education,
CSG concepts and modeling education, and system performance
benchmark testing among other purposes.
</para>
<para>
BRL-CAD supports a great variety of geometric representations
including an extensive set of traditional CSG primitive implicit
solids such as boxes, ellipsoids, cones, and tori, as well as
explicit solids made from closed collections of Uniform B-Spline
Surfaces, Non-Uniform Rational B-Spline (NURBS) surfaces,
n-Manifold Geometry (NMG), and purely faceted mesh geometry.
All geometric objects may be combined using boolean
set-theoretic CSG operations including union, intersection, and
difference.
</para>
<para>
BRL-CAD has been under active development with a portability
heritage that includes systems such as a DEC VAX-11/780 running
4.3 BSD; DECStations running ULTRIX; Silicon Graphics 3030, 4D
"IRIS", O2, Onyx, and Origin systems running various versions of
IRIX; Sun Microsystems Sun-3 and Sun-4 Sparcs running SunOS; the
Cray 1, Cray X-MP, Cray Y-MP, and Cray 2 running UNICOS; DEC
Alpha AXP running OSF/1; Apple Macintosh II running A/UX;
iPSC/860 Hypercube running NX/2; the Alliant FX/8, FX/80, and
FX/2800; Gould/Encore SEL PowerNode6000/9000 and NP1; NeXT
workstations; IBM RS/6000; HPPA 9000/700 running HPUX;
Ardent/Stardent; Encore Multi-Max; and much more.
</para>
<para>
BRL-CAD is a collection of more than 400 tools, utilities, and
applications comprising more than a million lines of source
code. The package is intentionally designed to be extensively
cross-platform and is actively developed on and maintained for
many common operating system environments including BSD,
Linux, Solaris, Mac OS X, and Windows among others. BRL-CAD is
distributed in binary and source code form as free open source
software (FOSS), provided under Open Source Initiative (OSI)
approved license terms.
</para>
<note>
<para>
Mike Muuss began the initial architecture and design of
BRL-CAD back in 1979. Development as a unified package began
in 1983. The first public release was made in 1984. BRL-CAD
became an open source project on 21 December 2004.
</para>
</note>
</section>
</article>

Some files were not shown because too many files have changed in this diff Show More