Compare commits

..
265 Commits
Author SHA1 Message Date
Clifford Yapp 48bce25478 d-bindings code moved into trunk's misc directory for storage - closing branch for now as it is inactive. If work resumes branch can be revived. (svn branch delete)
svn:revision:68381
svn:branch:d-binding
svn:account:starseeker
2016-07-20 00:55:06 +00:00
Clifford Yapp 5af0ef509c Sync with trunk thru r68370
svn:revision:68377
svn:branch:d-binding
svn:account:starseeker
2016-07-19 20:18:36 +00:00
Clifford Yapp 3fa844578a Sync with trunk thru r68300
svn:revision:68302
svn:branch:d-binding
svn:account:starseeker
2016-07-14 17:04:26 +00:00
Clifford Yapp 9fe54f1ac2 Sync with trunk thru r66800
svn:revision:68300
svn:branch:d-binding
svn:account:starseeker
2016-07-14 16:41:55 +00:00
Clifford Yapp 40087fb856 Sync with trunk thru r62800
svn:revision:68298
svn:branch:d-binding
svn:account:starseeker
2016-07-14 16:24:47 +00:00
Clifford Yapp 84d8a6bf91 Sync with trunk thru r61800
svn:revision:68297
svn:branch:d-binding
svn:account:starseeker
2016-07-14 16:00:47 +00:00
Clifford Yapp 3d582adce2 Sync with trunk thru r61600
svn:revision:68296
svn:branch:d-binding
svn:account:starseeker
2016-07-14 15:40:28 +00:00
Clifford Yapp f9c029783d Hmm... something causing trouble with large merges here... Sync with trunk thru r61550
svn:revision:68295
svn:branch:d-binding
svn:account:starseeker
2016-07-14 15:39:25 +00:00
Clifford Yapp 391b395437 Sync with trunk thru r61500
svn:revision:68294
svn:branch:d-binding
svn:account:starseeker
2016-07-14 15:06:45 +00:00
Clifford Yapp 23aef78357 Sync with trunk thru r61290
svn:revision:68291
svn:branch:d-binding
svn:account:starseeker
2016-07-14 01:11:15 +00:00
Thomas Browder 2bf3f5104a check body lines that haven
svn:revision:61324
svn:branch:d-binding
svn:account:tbrowder2
2014-06-14 11:30:05 +00:00
Thomas Browder e0dea3fc80 tidy format
svn:revision:61323
svn:branch:d-binding
svn:account:tbrowder2
2014-06-14 11:21:54 +00:00
Thomas Browder 7dfe541443 add comment
svn:revision:61322
svn:branch:d-binding
svn:account:tbrowder2
2014-06-14 11:13:47 +00:00
Thomas Browder 7ba33c55f6 add hash of all D types
svn:revision:61321
svn:branch:d-binding
svn:account:tbrowder2
2014-06-14 11:08:06 +00:00
Thomas Browder cc6220eb28 use correct map and array for 32-bit
svn:revision:61320
svn:branch:d-binding
svn:account:tbrowder2
2014-06-14 10:57:01 +00:00
Thomas Browder 88df739505 extract type conversion code to its own function; change var name text to line for more clarity
svn:revision:61319
svn:branch:d-binding
svn:account:tbrowder2
2014-06-13 22:02:16 +00:00
Thomas Browder 2eea0ff106 ws
svn:revision:61318
svn:branch:d-binding
svn:account:tbrowder2
2014-06-13 21:59:45 +00:00
Thomas Browder be50d00358 add a var to indicate 64- or 32-bit architecturs; make choice of maps 'automatic' based on that var's value
svn:revision:61317
svn:branch:d-binding
svn:account:tbrowder2
2014-06-13 21:58:57 +00:00
Thomas Browder 29ff3b8141 add known limitations
svn:revision:61316
svn:branch:d-binding
svn:account:tbrowder2
2014-06-13 21:56:08 +00:00
Thomas Browder df7e4ae3a7 add an iterate option and better failure reporting
svn:revision:61296
svn:branch:d-binding
svn:account:tbrowder2
2014-06-13 11:41:49 +00:00
Thomas Browder 321c979db0 add more test cases
svn:revision:61290
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 21:47:46 +00:00
Thomas Browder 1a8c813195 correct D form (null is a value, not a type)
svn:revision:61289
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 21:14:29 +00:00
Thomas Browder ec08190be8 oops, forgot the asterisks (duh)
svn:revision:61285
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 20:10:24 +00:00
Thomas Browder 350ecdcead hopefully not bragging too soon
svn:revision:61284
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 19:21:56 +00:00
Thomas Browder 202169f326 first stab at a null detector regex
svn:revision:61283
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 19:20:50 +00:00
Thomas Browder 90bb4979e2 take it away for now because preprocessing should have rewritten it to some other form--it will take a more complex regex
svn:revision:61282
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 18:56:53 +00:00
Thomas Browder a62c8f7ae8 add NULL to the conversion map
svn:revision:61281
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 18:51:47 +00:00
Thomas Browder 9f5a5d7c53 add a bit more reporting info (need to return number of objects from the final conversion functio to do that); simplify some code
svn:revision:61278
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 18:11:06 +00:00
Thomas Browder 74658e80e0 in the output D file report which C objects actually needed conversion
svn:revision:61276
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 17:55:47 +00:00
Thomas Browder 3fc6341743 organize D conversion processing cleaner; factor out some debug code into a separate function
svn:revision:61275
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 17:46:13 +00:00
Thomas Browder db023abc61 correct typo
svn:revision:61270
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 14:17:04 +00:00
Thomas Browder 5cb0e31bdd start refactoring conversion code back into its own subroutine; put regexes in their own module
svn:revision:61268
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 13:34:32 +00:00
Thomas Browder 7159fabc5b rethink conversion function; use power of regexes
svn:revision:61266
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 12:21:45 +00:00
Thomas Browder 68b40efb10 reset name hash for every input file (each is a separate D module with its own namespace)
svn:revision:61265
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 12:19:50 +00:00
Thomas Browder e6c4c5a24d typo
svn:revision:61264
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 12:17:40 +00:00
Thomas Browder 739462832f add somw more test objects
svn:revision:61263
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 11:25:15 +00:00
Thomas Browder 2475f052de add another shared function; format
svn:revision:61262
svn:branch:d-binding
svn:account:tbrowder2
2014-06-12 11:24:11 +00:00
Thomas Browder 90f30fc903 add new shared function
svn:revision:61248
svn:branch:d-binding
svn:account:tbrowder2
2014-06-11 18:59:51 +00:00
Thomas Browder a3ab11d360 change var 'orig_line' to more descriptive 'c_line'
svn:revision:61238
svn:branch:d-binding
svn:account:tbrowder2
2014-06-11 11:10:08 +00:00
Thomas Browder b7840fb79a add info; fix typo
svn:revision:61237
svn:branch:d-binding
svn:account:tbrowder2
2014-06-11 11:08:26 +00:00
Thomas Browder 3c1f7f4942 add missing variants in 32-bit map; comment out dup lines in maps; add preferred 32-bit map key order
svn:revision:61236
svn:branch:d-binding
svn:account:tbrowder2
2014-06-11 11:07:37 +00:00
Thomas Browder e852d522ed ws
svn:revision:61235
svn:branch:d-binding
svn:account:tbrowder2
2014-06-11 11:06:20 +00:00
Thomas Browder 56d9029c89 add some ID info for reference
svn:revision:61225
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 16:58:00 +00:00
Thomas Browder 0e0da6bf9e expose a new, 4th object type
svn:revision:61224
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 16:56:18 +00:00
Thomas Browder 99d9020f52 first three object types pass conversion
svn:revision:61223
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 16:55:03 +00:00
Thomas Browder ef07ac1e0b first two object type pass conversion
svn:revision:61222
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 16:06:29 +00:00
Thomas Browder 5f181bd8ca define a test header for incremental work and possible future regression tests
svn:revision:61221
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 16:05:30 +00:00
Thomas Browder 5c220b6d32 add notes about conversion
svn:revision:61216
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 12:40:55 +00:00
Thomas Browder 9c177806de turn off debug line--we have a good compile of our first object in bu.h (hooray)
svn:revision:61215
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 12:37:04 +00:00
Thomas Browder 5ae689dc53 we're checking compilation only
svn:revision:61214
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 12:34:53 +00:00
Thomas Browder 7c8a1cb216 check the regex construction
svn:revision:61213
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 12:33:55 +00:00
Thomas Browder fda8d3701e the D lang wiki has some missing map values
svn:revision:61212
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 12:32:51 +00:00
Thomas Browder 4fa63c885f now have a complte data flow from initial read through checking final solution with a D build; now to start tweaking conversion object type by object type
svn:revision:61210
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 12:13:03 +00:00
Thomas Browder a3f546f80d remove unneeded module
svn:revision:61208
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 12:01:06 +00:00
Thomas Browder fc736f17ad remove dead code
svn:revision:61207
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 11:57:34 +00:00
Thomas Browder 2da8da30a0 making incremental progress
svn:revision:61206
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 11:52:34 +00:00
Thomas Browder 470ad9bdb8 zero in on final data flow
svn:revision:61205
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 11:10:56 +00:00
Thomas Browder 757bb51c83 implement c_line_to_d_line function
svn:revision:61204
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 11:09:59 +00:00
Thomas Browder 941387dfa7 turn off pretty_print
svn:revision:61203
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 11:08:30 +00:00
Thomas Browder cc703efd86 use new consolidated functions
svn:revision:61201
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 01:13:45 +00:00
Thomas Browder 8e1ddc5ec9 make an array of keys for setting type map checking order
svn:revision:61200
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 01:12:56 +00:00
Thomas Browder b4344140f8 stub in new functions for final conversion
svn:revision:61199
svn:branch:d-binding
svn:account:tbrowder2
2014-06-10 01:11:54 +00:00
Thomas Browder bbb5b372cc move C to D type maps to globals module
svn:revision:61198
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 23:19:41 +00:00
Thomas Browder f50be24af4 turn on D pretty printing
svn:revision:61197
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 23:02:56 +00:00
Thomas Browder 37cf22cb01 now distinguish between C and D code (a WIP)
svn:revision:61196
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 22:49:12 +00:00
Thomas Browder f71fc9b948 tweak the object lines; fill in the actual pretty printing function
svn:revision:61192
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 22:01:49 +00:00
Thomas Browder 516528da5c revert to full object analysis
svn:revision:61191
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 22:00:27 +00:00
Thomas Browder bb3aa1dfa4 pretty print to a file
svn:revision:61190
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 21:50:53 +00:00
Thomas Browder 5cb86cba91 remove spaces before parens
svn:revision:61188
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 21:07:58 +00:00
Thomas Browder c14e4a2e20 add the object pretty printing; add '-x c' option for gcc
svn:revision:61187
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 20:48:37 +00:00
Thomas Browder 843342faee add pretty printing and extraction
svn:revision:61186
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 20:47:01 +00:00
Thomas Browder 2f1751808d use the pretty_print option; document the test option; add a short test file
svn:revision:61185
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 20:45:59 +00:00
Thomas Browder 5affc0e858 add a pretty_print option
svn:revision:61184
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 20:44:22 +00:00
Thomas Browder 9f4fa1cb0f add some blank lines
svn:revision:61183
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 20:41:39 +00:00
Thomas Browder dbb40f3a41 forgot true ending
svn:revision:61182
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 20:19:18 +00:00
Thomas Browder 32cba07c2f move useful funcs into own module for sharing
svn:revision:61181
svn:branch:d-binding
svn:account:tbrowder2
2014-06-09 20:15:51 +00:00
Thomas Browder d408cd4e65 update ignored files
svn:revision:61166
svn:branch:d-binding
svn:account:tbrowder2
2014-06-06 14:58:10 +00:00
Thomas Browder 0e09298946 continue making mods to handle C or D grammar
svn:revision:61165
svn:branch:d-binding
svn:account:tbrowder2
2014-06-06 14:57:18 +00:00
Thomas Browder ac78f82469 update the comment
svn:revision:61164
svn:branch:d-binding
svn:account:tbrowder2
2014-06-06 11:39:00 +00:00
Thomas Browder 1126d4854f rename file to relect its purpose; add capability to handle on of two grammars: C or D
svn:revision:61163
svn:branch:d-binding
svn:account:tbrowder2
2014-06-06 11:32:00 +00:00
Thomas Browder c490298a43 rename file to relect its purpose; add capability to handle on of two grammars: C or D (preliminary file move commit) 2014-06-06 11:32:00 +00:00
Thomas Browder 8cce6850fb add D grammar in BNF form
svn:revision:61161
svn:branch:d-binding
svn:account:tbrowder2
2014-06-06 10:58:59 +00:00
Thomas Browder 7b9b2382df put debug dump code into a subroutine
svn:revision:61150
svn:branch:d-binding
svn:account:tbrowder2
2014-06-05 22:39:35 +00:00
Thomas Browder dca186e061 start working on the real purpose of the program: converting grammar formats
svn:revision:61144
svn:branch:d-binding
svn:account:tbrowder2
2014-06-05 18:36:33 +00:00
Thomas Browder 37eb671823 add two new (to me) modules from Damian Conway
svn:revision:61142
svn:branch:d-binding
svn:account:tbrowder2
2014-06-05 18:14:14 +00:00
Thomas Browder 5c103f76c6 add ending msg
svn:revision:61141
svn:branch:d-binding
svn:account:tbrowder2
2014-06-05 17:52:21 +00:00
Thomas Browder 39f73d1d88 start using new Perl features such as 'say <string>' instead of 'print <string newline>
svn:revision:61140
svn:branch:d-binding
svn:account:tbrowder2
2014-06-05 17:38:51 +00:00
Thomas Browder b0d32ce1fe update info
svn:revision:61139
svn:branch:d-binding
svn:account:tbrowder2
2014-06-05 17:36:11 +00:00
Thomas Browder 7d41e65cb7 update data flow; put parse tree actions in an if block for action only if parse is successful
svn:revision:61130
svn:branch:d-binding
svn:account:tbrowder2
2014-06-05 01:39:45 +00:00
Thomas Browder 92015b36b8 work and data flow looking better--still deciding on intermediate files and formats
svn:revision:61120
svn:branch:d-binding
svn:account:tbrowder2
2014-06-04 19:17:41 +00:00
Thomas Browder e968b6f179 work flow back on track--will need another intermediate file since the current C grammar parser can't handle comments
svn:revision:61105
svn:branch:d-binding
svn:account:tbrowder2
2014-06-04 14:25:54 +00:00
Thomas Browder 84b47ed710 remove parsing from chunk extraction module (decouple the two independent processes); better handle processing flow (a WIP)
svn:revision:61099
svn:branch:d-binding
svn:account:tbrowder2
2014-06-04 11:40:43 +00:00
Thomas Browder 04f2026166 new option '-n=X' for number of chunks; eliminate chunkparse option
svn:revision:61098
svn:branch:d-binding
svn:account:tbrowder2
2014-06-04 11:38:58 +00:00
Thomas Browder e39385cfdb correct comment
svn:revision:61070
svn:branch:d-binding
svn:account:tbrowder2
2014-06-02 20:03:48 +00:00
Thomas Browder e63d29b86b now all issues are solved--reads and writes grammar correctly
svn:revision:61069
svn:branch:d-binding
svn:account:tbrowder2
2014-06-02 18:48:26 +00:00
Thomas Browder 7cf8b8ab03 whew, formatting issues solved, still no WHILE
svn:revision:61068
svn:branch:d-binding
svn:account:tbrowder2
2014-06-02 18:29:20 +00:00
Thomas Browder 0272153b00 issues still open
svn:revision:61067
svn:branch:d-binding
svn:account:tbrowder2
2014-06-02 17:55:12 +00:00
Thomas Browder 24e3328da9 restore spaces for the productions in CAPS
svn:revision:61062
svn:branch:d-binding
svn:account:tbrowder2
2014-06-02 14:49:45 +00:00
Thomas Browder b0922c00ca replace leading spaces with tabs for ease of reproducing
svn:revision:61061
svn:branch:d-binding
svn:account:tbrowder2
2014-06-02 14:42:17 +00:00
Thomas Browder ff381330c3 reading grammar mostly ok but one issue remains (plus minor formatting differences): WHILE is being missed
svn:revision:61060
svn:branch:d-binding
svn:account:tbrowder2
2014-06-02 12:21:46 +00:00
Thomas Browder a82a121372 rename to clarify contents
svn:revision:61059
svn:branch:d-binding
svn:account:tbrowder2
2014-06-02 10:24:43 +00:00
Thomas Browder 65f3b314e4 zeroing in on it
svn:revision:61053
svn:branch:d-binding
svn:account:tbrowder2
2014-06-01 23:46:33 +00:00
Thomas Browder b95d782b47 getting a grip on analyzing the C grammar file
svn:revision:61051
svn:branch:d-binding
svn:account:tbrowder2
2014-06-01 22:59:03 +00:00
Thomas Browder 2435d028ea simplify function names; start adding capability for full-header parser processing rather than in chunks
svn:revision:61050
svn:branch:d-binding
svn:account:tbrowder2
2014-06-01 20:16:09 +00:00
Thomas Browder 9bb41d07ef thanks to Perl module Data::Structure::Util I can now read the C syntax tree--a necessary step to getting acces to parts to modify for conversion to D
svn:revision:61049
svn:branch:d-binding
svn:account:tbrowder2
2014-06-01 19:52:13 +00:00
Thomas Browder b907be8fc4 convert to an argref for CExtract function args; close in D.pm
svn:revision:61048
svn:branch:d-binding
svn:account:tbrowder2
2014-06-01 17:25:29 +00:00
Thomas Browder 3e121e6c6c save work; improving syntax tree inspection
svn:revision:61047
svn:branch:d-binding
svn:account:tbrowder2
2014-06-01 17:03:09 +00:00
Thomas Browder 3787636ca1 one chunk processing still not working--invesigating
svn:revision:61045
svn:branch:d-binding
svn:account:tbrowder2
2014-05-31 20:34:28 +00:00
Thomas Browder 1a2334140b add another option for devel; correct module names in option vars; trying to isolate first C header chunk
svn:revision:61044
svn:branch:d-binding
svn:account:tbrowder2
2014-05-31 20:10:45 +00:00
Thomas Browder cf4bd16fef put var in lexical scope; enable early end if parse fails
svn:revision:61043
svn:branch:d-binding
svn:account:tbrowder2
2014-05-31 19:27:59 +00:00
Thomas Browder ac12b4987a put var in lexical scope
svn:revision:61042
svn:branch:d-binding
svn:account:tbrowder2
2014-05-31 19:25:23 +00:00
Thomas Browder 889572ccc2 add more options for development
svn:revision:61041
svn:branch:d-binding
svn:account:tbrowder2
2014-05-31 19:23:46 +00:00
Thomas Browder fa3866c33b add more options for development
svn:revision:61040
svn:branch:d-binding
svn:account:tbrowder2
2014-05-31 19:23:06 +00:00
Thomas Browder 8582591d29 move more globals to the G module
svn:revision:61039
svn:branch:d-binding
svn:account:tbrowder2
2014-05-31 18:53:53 +00:00
Thomas Browder d6ff33d13c add ability to declare number of chunks to attemtpt
svn:revision:61038
svn:branch:d-binding
svn:account:tbrowder2
2014-05-31 18:40:43 +00:00
Thomas Browder eef1df6abe refactoring; debugging
svn:revision:61037
svn:branch:d-binding
svn:account:tbrowder2
2014-05-31 16:04:57 +00:00
Thomas Browder be0efd42d1 add new globals module
svn:revision:61036
svn:branch:d-binding
svn:account:tbrowder2
2014-05-31 16:03:33 +00:00
Thomas Browder 93fa8acb56 correct C-to-D map hash names; rename key2 to reflect BRL-CAD specificity
svn:revision:61035
svn:branch:d-binding
svn:account:tbrowder2
2014-05-31 13:11:20 +00:00
Thomas Browder a1f6ffd0c2 add C reserved words; mapping from C to D for types; distinguish BRL-CAD types (plan to add new ones as discovered)
svn:revision:61032
svn:branch:d-binding
svn:account:tbrowder2
2014-05-31 11:42:29 +00:00
Thomas Browder 69e57d3876 clean up white space handling; use the correct final string for a processed object
svn:revision:61029
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 23:19:39 +00:00
Thomas Browder 2351744056 correct output line numbering
svn:revision:61028
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 23:05:34 +00:00
Thomas Browder 82577a2182 use the correct array for final output
svn:revision:61027
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 23:02:05 +00:00
Thomas Browder 700ce342ef correct formatting in print statement
svn:revision:61026
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 22:58:30 +00:00
Thomas Browder 4797b6c6e1 remove dead code; correct puntuation in arrays
svn:revision:61025
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 22:57:37 +00:00
Thomas Browder 2a0466d7d2 outout processed lines to the final .d file
svn:revision:61020
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 20:31:49 +00:00
Thomas Browder 245cc19205 send ouput to array
svn:revision:61019
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 20:10:28 +00:00
Thomas Browder 8e74baefed comment unused code; in convert1final use arrays for output
svn:revision:61018
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 20:09:24 +00:00
Thomas Browder af2512089f rename vars for current package name; isolate parsing code to the convert1final subroutine
svn:revision:61015
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 17:29:54 +00:00
Thomas Browder cf1600d01f add info
svn:revision:61014
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 17:28:37 +00:00
Thomas Browder af3fb6e8a4 add chunkparse for the develop option
svn:revision:61013
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 17:13:06 +00:00
Thomas Browder 75ea78099e improve intermediate file naming and handling; eliminate some unneeded code; comment out code that may never be used
svn:revision:61012
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 17:01:44 +00:00
Thomas Browder 4562ca6a4b use better empty-line determination
svn:revision:61011
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 16:38:08 +00:00
Thomas Browder add08fb01a use improved comment stripper
svn:revision:61010
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 16:22:43 +00:00
Thomas Browder 7f9291e6d9 add more debugging code
svn:revision:61009
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 15:56:49 +00:00
Thomas Browder 796184bf3b add catchall option; correct empty line determination
svn:revision:61008
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 15:39:40 +00:00
Thomas Browder 38a0b30bc1 rename CParse.pm to CExtract.pm to better indicate purpose; change package name where used or identified
svn:revision:61007
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 15:17:59 +00:00
Thomas Browder a088eff3e6 rename CParse.pm to CExtract.pm to better indicate purpose; change package name where used or identified (preliminary file move commit) 2014-05-30 15:17:59 +00:00
Thomas Browder 2313893e1e improve help and option handling
svn:revision:61006
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 15:13:41 +00:00
Thomas Browder 729a56ef60 add new chunkparse option
svn:revision:61005
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 15:12:40 +00:00
Thomas Browder 336e9078bf play with Data::Dumper options
svn:revision:61004
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 15:11:57 +00:00
Thomas Browder 1536cac896 add and start implementing new option for chunk parsing to ease analyzing syntax tree
svn:revision:61003
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 15:11:06 +00:00
Thomas Browder 34ba909ae3 restore module to its original purpose: extracting C objects fom a header for partial P::RD parsing
svn:revision:61000
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 15:01:01 +00:00
Thomas Browder 32954f7a9a default should be 0
svn:revision:60999
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 14:44:44 +00:00
Thomas Browder 8781a2ef73 add info
svn:revision:60998
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 14:43:57 +00:00
Thomas Browder 574b292c84 add info on plans
svn:revision:60994
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 11:39:31 +00:00
Thomas Browder 3a4ed678c9 working on parsing routine
svn:revision:60993
svn:branch:d-binding
svn:account:tbrowder2
2014-05-30 01:29:34 +00:00
Thomas Browder 74160bf14d remove extra spaces
svn:revision:60983
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 21:44:33 +00:00
Thomas Browder 522d872980 start a grammar extractor
svn:revision:60982
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 21:43:57 +00:00
Thomas Browder f58f62d3d2 change function name to reflect purpose
svn:revision:60974
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 21:03:04 +00:00
Thomas Browder 7bc8a5abf1 comment out bad code temporarily
svn:revision:60972
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 20:42:19 +00:00
Thomas Browder c96949e85f add missing backslashes and % doubler; add to comment and correct typo
svn:revision:60971
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 20:41:32 +00:00
Thomas Browder d7f6ae0d6a rename to better reflect purpose is to gen multiple modules
svn:revision:60970
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 20:30:38 +00:00
Thomas Browder b89dc57f54 tidy output msg
svn:revision:60969
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 20:29:45 +00:00
Thomas Browder 4baccb2c18 update ignore list
svn:revision:60968
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 20:18:25 +00:00
Thomas Browder a14aff8c09 stuff old code away; rename functions for clarity
svn:revision:60967
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 20:17:08 +00:00
Thomas Browder c7c27bf69b add the second grammar version to the auto-gen script
svn:revision:60966
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 20:15:18 +00:00
Thomas Browder 4b3926cf51 remove old manual parsing code; refactor module for handling the P::RD parse tree
svn:revision:60965
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 20:14:27 +00:00
Thomas Browder df9dd97894 remove old, unused code
svn:revision:60964
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 20:12:21 +00:00
Thomas Browder 51833e43a2 add a function to the C header to test function parsing during development
svn:revision:60963
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 20:07:37 +00:00
Thomas Browder ce0267f64e start another grammar version for manual production rules
svn:revision:60962
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 20:06:20 +00:00
Thomas Browder 122d81b61d add note to avoid confusion
svn:revision:60961
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 20:05:12 +00:00
Thomas Browder 5c9898f7ec remove unhelpful file
svn:revision:60954
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 17:48:09 +00:00
Thomas Browder a893921606 eliminate unneeded code
svn:revision:60949
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 15:57:28 +00:00
Thomas Browder 5be23a6e2f working on a syntax tree inspector routine--first step in deciding on class construction
svn:revision:60948
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 15:47:16 +00:00
Thomas Browder 755420b1c4 remove obsolete module
svn:revision:60947
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 15:05:24 +00:00
Thomas Browder 6857cd1d1e remove unneeded subroutines; comment out possibly unneeded code
svn:revision:60946
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 15:04:30 +00:00
Thomas Browder 7ffdcce7eb finally getting a good autotree dump of entire parse tree
svn:revision:60945
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 13:36:49 +00:00
Thomas Browder 9821e3c861 now have working process for extracting parsed node data--need to expand to more nodes
svn:revision:60944
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 12:51:30 +00:00
Thomas Browder a42aab645e collecting more parse info
svn:revision:60943
svn:branch:d-binding
svn:account:tbrowder2
2014-05-29 02:15:35 +00:00
Thomas Browder a2545327da save work--now have some communication with the CGrammer module in the calling function--hurray
svn:revision:60932
svn:branch:d-binding
svn:account:tbrowder2
2014-05-28 17:26:30 +00:00
Thomas Browder f4ab2e60d4 rename Perl module for clarity; change to the new name inside modules using it
svn:revision:60930
svn:branch:d-binding
svn:account:tbrowder2
2014-05-28 15:37:32 +00:00
Thomas Browder 6f83ecfb7a change package name before renaming file
svn:revision:60929
svn:branch:d-binding
svn:account:tbrowder2
2014-05-28 15:32:58 +00:00
Thomas Browder ac26d90977 add ignores
svn:revision:60928
svn:branch:d-binding
svn:account:tbrowder2
2014-05-28 15:28:32 +00:00
Thomas Browder fbae73e6d8 turn off execution--using for inspiration and code reuse only
svn:revision:60927
svn:branch:d-binding
svn:account:tbrowder2
2014-05-28 15:24:23 +00:00
Thomas Browder 8b7f4af58e add more ignores
svn:revision:60921
svn:branch:d-binding
svn:account:tbrowder2
2014-05-28 11:43:38 +00:00
Thomas Browder 32d1faaac6 add file from P::RD source
svn:revision:60920
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 23:00:47 +00:00
Thomas Browder a341fcea86 save work
svn:revision:60919
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 22:58:51 +00:00
Thomas Browder f8df020c8b ignore files
svn:revision:60918
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 22:58:14 +00:00
Thomas Browder 7c1e508c13 make demo work without args
svn:revision:60917
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 22:55:57 +00:00
Thomas Browder eac22af6b0 add more data output to see what's taking place
svn:revision:60916
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 22:54:58 +00:00
Thomas Browder dbb64f5883 reformat doc lines to be readable in a reasonable window width
svn:revision:60915
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 22:53:42 +00:00
Thomas Browder aeb8cf9a3e make demo with no args do something
svn:revision:60914
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 22:52:16 +00:00
Thomas Browder 068ad61fe2 make demo with no args do something
svn:revision:60913
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 22:51:48 +00:00
Thomas Browder a543755210 make demo with no args do something
svn:revision:60912
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 22:51:01 +00:00
Thomas Browder 1922e3ef77 correct var name
svn:revision:60911
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 22:49:46 +00:00
Thomas Browder 2a2b1b021d add missing apostrophe; tidy format a bit
svn:revision:60910
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 22:49:09 +00:00
Thomas Browder ea3881844c put a limit on the output; separate compound assignment statement
svn:revision:60909
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 22:47:20 +00:00
Thomas Browder 994ff003ae fill in the blanks for a working program
svn:revision:60908
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 22:45:43 +00:00
Thomas Browder b931972b43 can't use switches with the env method
svn:revision:60894
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 14:28:01 +00:00
Thomas Browder c3a9086317 add master script to run all demos
svn:revision:60892
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 13:57:35 +00:00
Thomas Browder 4ef06c450f make scripts self-executable
svn:revision:60891
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 13:56:27 +00:00
Thomas Browder eb32742eda rename to avoid confusion with executable scripts
svn:revision:60890
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 13:55:24 +00:00
Thomas Browder 3b31e86b67 split Perl script into an executable and a README
svn:revision:60889
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 13:37:51 +00:00
Thomas Browder 8640e86732 split Perl script into an executable and a README as the original author suggested
svn:revision:60888
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 13:32:02 +00:00
Thomas Browder b4d0c5159a add original demos from P::RD current source on githup
svn:revision:60887
svn:branch:d-binding
svn:account:tbrowder2
2014-05-27 13:21:06 +00:00
Thomas Browder 3927e239d7 better parsing--most C code recognized
svn:revision:60882
svn:branch:d-binding
svn:account:tbrowder2
2014-05-26 13:26:10 +00:00
Thomas Browder 72a9afc7e2 ignore the auto-generated file
svn:revision:60870
svn:branch:d-binding
svn:account:tbrowder2
2014-05-25 21:06:31 +00:00
Thomas Browder f554940385 be sure to return last_index to make read progress
svn:revision:60869
svn:branch:d-binding
svn:account:tbrowder2
2014-05-25 21:05:27 +00:00
Thomas Browder 3602f85cbb use a shell script to generate a compiled C grammar Perl module
svn:revision:60868
svn:branch:d-binding
svn:account:tbrowder2
2014-05-25 21:04:38 +00:00
Thomas Browder f099b5cad6 remove grammar from module and put in a text file for later processing
svn:revision:60867
svn:branch:d-binding
svn:account:tbrowder2
2014-05-25 21:03:31 +00:00
Thomas Browder 531d0f17ad save work
svn:revision:60829
svn:branch:d-binding
svn:account:tbrowder2
2014-05-23 14:39:20 +00:00
Thomas Browder ba8502a8c3 good object parse ID from bu.h
svn:revision:60811
svn:branch:d-binding
svn:account:tbrowder2
2014-05-23 02:45:44 +00:00
Thomas Browder 910cec73cb move RD examples to won sub-dir
svn:revision:60790
svn:branch:d-binding
svn:account:tbrowder2
2014-05-22 12:47:51 +00:00
Thomas Browder 91e5392f23 add a new module to encapsulate a C parser
svn:revision:60788
svn:branch:d-binding
svn:account:tbrowder2
2014-05-22 12:44:50 +00:00
Thomas Browder fffc551e34 add another example of Parse-RecDescent use
svn:revision:60786
svn:branch:d-binding
svn:account:tbrowder2
2014-05-22 12:44:00 +00:00
Thomas Browder 9abd13645c make prog a usable one
svn:revision:60785
svn:branch:d-binding
svn:account:tbrowder2
2014-05-22 12:42:49 +00:00
Thomas Browder c4f16eec4b make a new test option for ease of development
svn:revision:60784
svn:branch:d-binding
svn:account:tbrowder2
2014-05-22 12:41:58 +00:00
Thomas Browder 641d929fad correct var names; playing with conversion routines (WIP)
svn:revision:60782
svn:branch:d-binding
svn:account:tbrowder2
2014-05-22 12:41:09 +00:00
Thomas Browder a7206d520f save work--working on C parsing solutions using Damian Conway;s Parser::RecDescent
svn:revision:60775
svn:branch:d-binding
svn:account:tbrowder2
2014-05-21 21:15:09 +00:00
Thomas Browder 133e9dbba8 add exmple C parser from CPAN.org
svn:revision:60773
svn:branch:d-binding
svn:account:tbrowder2
2014-05-21 20:05:23 +00:00
Thomas Browder 9317cc6b35 save ignore info
svn:revision:60767
svn:branch:d-binding
svn:account:tbrowder2
2014-05-21 14:58:26 +00:00
Thomas Browder 44ab21e252 formalize generating modules of treee data; improve usage var
svn:revision:60766
svn:branch:d-binding
svn:account:tbrowder2
2014-05-21 14:44:51 +00:00
Thomas Browder 307fe8455c add class module for parsing header objects
svn:revision:60765
svn:branch:d-binding
svn:account:tbrowder2
2014-05-21 14:41:51 +00:00
Thomas Browder dcb5895497 collect unknown keys2 and insert into CParse.pm; update new module references
svn:revision:60751
svn:branch:d-binding
svn:account:tbrowder2
2014-05-20 14:04:26 +00:00
Thomas Browder 4734dee9a6 track needed work
svn:revision:60749
svn:branch:d-binding
svn:account:tbrowder2
2014-05-20 10:51:54 +00:00
Thomas Browder cfa374fcb6 put storage info for paths into own module
svn:revision:60748
svn:branch:d-binding
svn:account:tbrowder2
2014-05-20 01:49:41 +00:00
Thomas Browder afcf863b6a add hash of Phobos (D std library) module names
svn:revision:60745
svn:branch:d-binding
svn:account:tbrowder2
2014-05-20 00:05:03 +00:00
Thomas Browder 1399ef710c check point a good waypoint; new module for path handling abstraction
svn:revision:60744
svn:branch:d-binding
svn:account:tbrowder2
2014-05-19 23:52:05 +00:00
Thomas Browder a76a8c28e6 redesigning layout and module mapping for better generality
svn:revision:60742
svn:branch:d-binding
svn:account:tbrowder2
2014-05-19 23:14:56 +00:00
Thomas Browder 95b70d425e plan is coming together
svn:revision:60735
svn:branch:d-binding
svn:account:tbrowder2
2014-05-19 21:13:34 +00:00
Thomas Browder d6f3f2940e save work--method 1 is looking hopeful...
svn:revision:60727
svn:branch:d-binding
svn:account:tbrowder2
2014-05-19 18:59:11 +00:00
Thomas Browder 0d7e7a6ff6 add a module for parsing-specific code
svn:revision:60726
svn:branch:d-binding
svn:account:tbrowder2
2014-05-19 18:58:20 +00:00
Thomas Browder 7e92098753 concentrating on method 1 now as most likely without external help
svn:revision:60721
svn:branch:d-binding
svn:account:tbrowder2
2014-05-19 16:15:06 +00:00
Thomas Browder d1fd349d6e getting some info from gcc parser...
svn:revision:60715
svn:branch:d-binding
svn:account:tbrowder2
2014-05-19 12:39:40 +00:00
Thomas Browder a547a34511 add function and new Perl module to parse the tu file (conversion method 3)
svn:revision:60714
svn:branch:d-binding
svn:account:tbrowder2
2014-05-19 12:12:21 +00:00
Thomas Browder 32f03554c4 add new reference to help
svn:revision:60713
svn:branch:d-binding
svn:account:tbrowder2
2014-05-19 11:16:48 +00:00
Thomas Browder af5caf7356 adding 3rd conversion method using GCC::TranslationUnit; improve arg input choice of conversion method
svn:revision:60712
svn:branch:d-binding
svn:account:tbrowder2
2014-05-19 11:14:11 +00:00
Thomas Browder 2c77cb63c6 begin a function to extract a C statement from a header
svn:revision:60711
svn:branch:d-binding
svn:account:tbrowder2
2014-05-19 01:27:54 +00:00
Thomas Browder 13c50d6c59 tidy format
svn:revision:60710
svn:branch:d-binding
svn:account:tbrowder2
2014-05-18 23:52:51 +00:00
Thomas Browder f79100269d more refactoring and generalizing
svn:revision:60709
svn:branch:d-binding
svn:account:tbrowder2
2014-05-18 23:38:33 +00:00
Thomas Browder 9badd6fbac refactoring to have a master convert function which iterates over the input files and chooses actions and conversion functions based on the conversion method selected
svn:revision:60708
svn:branch:d-binding
svn:account:tbrowder2
2014-05-18 23:14:03 +00:00
Thomas Browder de1d6cac1e bail with fatal error if no mode is selected
svn:revision:60707
svn:branch:d-binding
svn:account:tbrowder2
2014-05-18 21:09:20 +00:00
Thomas Browder 83186dd2db add code for 2nd conversion method; remove file flattening code into own function
svn:revision:60706
svn:branch:d-binding
svn:account:tbrowder2
2014-05-18 21:04:29 +00:00
Thomas Browder 035e3d1d41 keep notes on development
svn:revision:60705
svn:branch:d-binding
svn:account:tbrowder2
2014-05-18 19:02:26 +00:00
Thomas Browder 98fe3329fe correct typo
svn:revision:60704
svn:branch:d-binding
svn:account:tbrowder2
2014-05-18 18:09:31 +00:00
Thomas Browder 6fd4789733 currently interface file sources are in a subdir
svn:revision:60703
svn:branch:d-binding
svn:account:tbrowder2
2014-05-18 16:06:16 +00:00
Thomas Browder 5eea1c2829 add function to used dstep for conversion
svn:revision:60702
svn:branch:d-binding
svn:account:tbrowder2
2014-05-18 16:05:00 +00:00
Thomas Browder 9b0f251b34 refactor the gcc processing code; add more debugging
svn:revision:60701
svn:branch:d-binding
svn:account:tbrowder2
2014-05-18 00:16:22 +00:00
Thomas Browder d7e2dda237 record start of a new included file
svn:revision:60700
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 22:24:24 +00:00
Thomas Browder 0fc00be687 use readline instead of the <> operator to handle array of file handles properly; add more debugging code; add check of header dir sub-dir for handling new format of public headers; using complete file names
svn:revision:60699
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 21:47:28 +00:00
Thomas Browder 65811708b5 add file list to report option; use complete paths for file names
svn:revision:60698
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 21:44:20 +00:00
Thomas Browder 06c9405a92 for development define one input file to use
svn:revision:60697
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 19:34:40 +00:00
Thomas Browder 230fb92bef use the di dir; make suffix defs readonly vars; report which dirs are being used; collect files in defined places (not just local as before)
svn:revision:60696
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 19:31:09 +00:00
Thomas Browder 3a5a4ff6e0 use .d for interface file suffix; use a defined sub-dir for D interface files
svn:revision:60695
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 18:59:19 +00:00
Thomas Browder 15fca74b97 typo
svn:revision:60693
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 18:42:21 +00:00
Thomas Browder 51e85bf1c8 handle the aux headers in a more general manner
svn:revision:60692
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 18:39:21 +00:00
Thomas Browder 6567a53a4d define a hard-wired path for installed BRL-CAD headers; check for the presence of that dir on execution
svn:revision:60691
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 18:30:00 +00:00
Thomas Browder 9111344f0d add a makefile and a D program test driver for libbu
svn:revision:60690
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 18:28:38 +00:00
Thomas Browder fac9f4624d move D bindings code to its own directory
svn:revision:60689
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 14:28:21 +00:00
Thomas Browder 1a0e68e57f eliminate unneeded var as alias for current input file pointer
svn:revision:60687
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 11:58:51 +00:00
Thomas Browder e0e0f31f3d remove tmp intermediate files unless one is debugging
svn:revision:60686
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 11:54:26 +00:00
Thomas Browder e1dcddced8 rename to reflect D convention of interface files with implementation details having a .d suffix instead of a .di (from discussion on D learning e-mail list)
svn:revision:60685
svn:branch:d-binding
svn:account:tbrowder2
2014-05-17 11:44:00 +00:00
Thomas Browder c008252c77 using another intermediate file; getting closer to doing rudimentary D conversions
svn:revision:60671
svn:branch:d-binding
svn:account:tbrowder2
2014-05-16 21:21:44 +00:00
Thomas Browder 0fd5a1d4ed refactor; add a cleaning option; correct file generation object
svn:revision:60659
svn:branch:d-binding
svn:account:tbrowder2
2014-05-16 13:22:22 +00:00
Thomas Browder 79edc85eba move vars and funcs to D module; improve md5hash handling; make file status vars readonly
svn:revision:60658
svn:branch:d-binding
svn:account:tbrowder2
2014-05-16 11:38:43 +00:00
Thomas Browder 3c92bf8b06 add convenience module; include two funcs for easier use of persistent file hashes in one file
svn:revision:60657
svn:branch:d-binding
svn:account:tbrowder2
2014-05-16 10:58:08 +00:00
Thomas Browder 068edf08a1 correct output file handling--next need to process the output file some more
svn:revision:60656
svn:branch:d-binding
svn:account:tbrowder2
2014-05-16 01:26:42 +00:00
Thomas Browder df2ce9971e refactor; working on logic for reprocessing files
svn:revision:60655
svn:branch:d-binding
svn:account:tbrowder2
2014-05-16 01:06:09 +00:00
Thomas Browder 599d34e3a9 rename file for correct interface file suffix convention; more refactoring; correct errors and option handling; tidy help; change all instances of '.d' to '.di' for the correct interface file name convention
svn:revision:60654
svn:branch:d-binding
svn:account:tbrowder2
2014-05-15 22:54:22 +00:00
Thomas Browder ef16b22176 rename file for correct interface file suffix convention; more refactoring; correct errors and option handling; tidy help; change all instances of '.d' to '.di' for the correct interface file name convention (preliminary file move commit) 2014-05-15 22:54:22 +00:00
Thomas Browder 59883a4e94 some refactoring; add long help; define second mode; add option for single file conversion; prepare for multipl conversion methods
svn:revision:60651
svn:branch:d-binding
svn:account:tbrowder2
2014-05-15 21:47:55 +00:00
Thomas Browder 57bec90626 implement '-report' option
svn:revision:60646
svn:branch:d-binding
svn:account:tbrowder2
2014-05-15 20:14:47 +00:00
Thomas Browder 18d2629d0e report header file status
svn:revision:60640
svn:branch:d-binding
svn:account:tbrowder2
2014-05-15 12:29:18 +00:00
Thomas Browder 39d8b83719 add utility to convert .h to .d files for the D language
svn:revision:60639
svn:branch:d-binding
svn:account:tbrowder2
2014-05-14 23:54:47 +00:00
Thomas Browder 5747ee1b0f creating a private branch of trunk for work on D binding
svn:revision:60615
svn:branch:d-binding
svn:account:tbrowder2
2014-05-14 10:15:33 +00:00
12319 changed files with 3355987 additions and 3136393 deletions
+12 -113
View File
@@ -111,7 +111,7 @@ Hanes, Jeff
U.S. Army Ballistic Research Laboratory
U.S. Army Research Laboratory
Johnson, Christopher T.
Johnson, Christopher T. <cjohnson@cyberpaladin.com>
nicknames cjohnson
1989 February
Cray Research, Inc.
@@ -119,7 +119,7 @@ Geometric Solutions, Inc.
Paladin Software
JRMTech, Inc.
Butler, Lee A.
Butler, Lee A. <butler@arl.army.mil>
nicknames butler, lbutler
1989 July
U.S. Army Ballistic Research Laboratory
@@ -131,7 +131,7 @@ nicknames pjt
U.S. Army Ballistic Research Laboratory
U.S. Army Research Laboratory
Markowski, Michael J.
Markowski, Michael J. <michael.markowski@arl.army.mil>
nicknames mmark, mm
1991 June
U.S. Army Ballistic Research Laboratory
@@ -141,7 +141,7 @@ nicknames gdurf
1992 August
ARL Student Hire / Carnegie Mellon University
Anderson, John R.
Anderson, John R. <jra@arl.army.mil>
nicknames jra, johnranderson
1993 May
U.S. Army Ballistic Research Laboratory
@@ -178,7 +178,7 @@ nicknames tranese
2001 March
U.S. Army Research Laboratory
Hartley, Robert F.
Hartley, Robert F. <hartley@vt.edu>
nicknames hartley
2002 August
ARL Student Hire / Virginia Tech
@@ -189,7 +189,7 @@ nicknames twingy, justin
Quantum Research International, Inc.
U.S. Army Research Laboratory
Greenwald, Erik
Greenwald, Erik <erikg@arl.army.mil> **
nicknames erikg, erikgreenwald
2003 November
U.S. Army Research Laboratory
@@ -213,12 +213,12 @@ nicknames indianlarry
SURVICE Engineering, Inc.
U.S. Army Research Laboratory
Weiss, Richard
Weiss, Richard **
nicknames r_weiss
2008 December
U.S. Army Research Laboratory
Browder, Thomas M. Jr.
Browder, Thomas M. Jr. **
nicknames tbrowder2
2008 June
ManTech International Corporation
@@ -230,7 +230,7 @@ nicknames n_reed
ARL Student Hire / University of Maryland, Baltimore County
Quantum Research International, Inc.
Moore, Jr., Carl G.
Moore, Jr., Carl G. **
nicknames cmoore, carlmoore
2011 October
U.S. Army Research Laboratory
@@ -243,7 +243,7 @@ Weaver, Earl P.
1980
U.S. Army Ballistic Research Laboratory
Davisson, Edwin O.
Davisson, Edwin O. **
U.S. Army Research Laboratory
Rogers, David
@@ -263,7 +263,7 @@ U.S. Army Research Laboratory
Kregel, Dwayne **
SURVICE Engineering, Inc.
Weaver, Stephanie 'Rain'
Weaver, Stephanie 'Rain' **
2009 June
ARL Student Hire / Bridgewater College
@@ -279,7 +279,6 @@ Schueler, Betty J.
Edwards, Eric
SURVICE Engineering, Inc.
Open Source (Doc Camp)
Kregel, Dwayne
SURVICE Engineering, Inc.
@@ -335,37 +334,6 @@ Perez, Alex
2012 November
Open Source (GCI)
Singh, Harmanpreet
nicknames harmanpreet
2013 October
Open Source (Doc Camp)
Kamga, Isaac
nicknames Izak, iiizzzaaakkk
2013 October
Open Source (Doc Camp)
Check, Nyah
nicknames Ch3ck
2013 October
Open Source (Doc Camp)
Scott Nesbitt
2013 October
Open Source (Doc Camp)
Wood, David
2013 November
Open Source (GCI)
Agarwal, Yatharth
2013 November
Open Source (GCI)
McDonald, Rob
2013 November
Open Source
Tannous, Marc
2014 December
Open Source (GCI)
@@ -385,10 +353,6 @@ nicknames sofat
2015 June
Open Source (GSoC)
Sieu, Jeff
2017 December
Open Source (GCI)
CODE CONTRIBUTIONS
------------------
@@ -721,11 +685,6 @@ Govindjee, Arjun
2012 December
Open Source (GCI)
Ramirez, Daniel
nicknames javamonn
2012 December
Open Source (GCI)
Nagy, Csaba
nicknames ncsaba
2013 April
@@ -803,7 +762,7 @@ nicknames huskmate13
2014 January
Open Source
Granroth, Gustave
Gustave Granroth
2014 May
Open Source
@@ -861,58 +820,6 @@ Hanji, Param
2016 March
Open Source (GSoC)
Wu, Bojian
2016 June
Open Source (GSoC)
Bagavathy, Rakshika
nicknames tandoorichick
2016 October
Open Source (GSoC)
Gao, Tianyue
2016 December
Open Source (GCI)
Rathore, Shubham
nicknames gabbar1947
2017 April
Open Source
nicknames Rakete1111
2017 November
Open Source
Narayan, Saran
nicknames sharannyn
2018 April
Open Source (GSoC)
Shinde, Chetan
nicknames chetanshinde911
2019 April
Open Source (GSoC)
Haydar, Ali
nicknames lois221
2019 May
Open Source (GSoC)
Suthar, Rishabh
nicknames yamhai, rishabhsuthar32
2020 March
Open Source (GSoC)
Vaidya, Sahil
nicknames sahilvaidya99
2020 April
ARL Student Hire / University of Texas at Austin
Das, Sumagna
nicknames sumagnadas
2020 May
Open Source
SPECIAL THANKS
--------------
@@ -1219,14 +1126,6 @@ nicknames bchepkwny
2015 December
Open Source
Sagarwal
2017 January
Open Source (GCI)
Liu, Jeffrey
2019 December
Open Source (GCI)
CORPORATE AND ORGANIZATION SUPPORT
----------------------------------
+37 -144
View File
@@ -15,143 +15,9 @@ on-going issues.
Recent Bugs
-----------
* fbclear -c appears to hang indefinitely inside pkg_bwaitfor,
possible protocol mismatch or capability removed/changed in fbserv.
* dbupgrade -r produces an invalid rhc with the default v5 rhc produced
by MGED with "make rhc rhc"
* apparently all four BRL-CAD Tutorial Series volumes are missing from
our bibliography...
* Tessellating an ETO with a normal tolerance results in stack
smashing due to bad logic in recursive algorithm: set norm 2;
facetize my.eto my.bot;. Observed infinite recursion in both
make_ellipse4() in eto.c and (after adding max recursion test) in
paint_face() in manif.c:190
* bot_dump -o file.obj is possibly generating invalid OBJ files.
tested on two different pieces of software including xcode and cura,
both failed to read our obj files where stl worked.
* mater -d information stored in the .g file doesn't survive a
garbage collection operation.
* fix checker.sh script and/or overlap GUI so that the latter will
read the resulting overlap pairings file from the prior.
alternatively, need to be able to run overlap check on server
without GUI, so could implement an overlaps file output option to be
run via mged -c.
* running 'put' on geometry that is already displayed results in a NaN
view (at least View and Eye_pos parameters are non) despite geometry
still being displayed. this causes 'rt' to fly into an infinite
loop, presumably trying to increment rays from the eye position.
* icv dpix support is not cross-platform (it writes out native, reads
in assuming same encoding). regression tests fail on big endian.
* creating an object with a slashes in the name (e.g., cp foo foo/R)
results in an object that cannot be deleted/renamed. bad behavior
presumably extends to any name with path separators.
* mirror command rejects brep solids and turns faces inside-out when
mirroring a comb with brep solids below it.
* rtsil command works if do what usage says and redirect output to
file, but mentions .pix when data is actually .bw; and using the -o
option results in a black image. it is also inconsistent, writing a
black silhouette on a white background, instead of black on white
and missing background color options.
* make sph sph
clone -i 1 -t 1000 0 0 -n 100 sph
kill sph
g line sph*
clone -i 1 -t 0 1000 0 -n 100 line
kill line
g square line*
clone -i 1 -t 0 0 1000 -n 100 square
... never returns ...
This should be merely 1M spheres, but something chokes. Could be
somewhere in the Tk layer. Maybe somewhere in the db layer. Maybe
something is corrupted by clone when it
* If we draw any form, then trace it using rt, then change of database
(by clicking file>open and selecting another database), badness
ensues. One report has quitting the rt window causing a segfault.
Another (confirmed) hung mged (stuck/inf loop).
* annotation bugs:
in sph1.s sph 0 0 0 10
in ann1.s annot 0 0 0 test1 10 10 3 1
in ann2.s annot 30 30 30 test2 40 40 3 1
# ann2.s's label looks wrong, points at origin?
in ann3.s annot 0 0 0 1 10 10 3 1
# using numbers for a label results in no label
* make eto eto
tol norm 1
facetize eto.bot eto
[crashes due to excessive recursion]
* crash in rt_bot_xform() due to a bot being marked as having face
normals, but didn't. bot probably written wrong via conversion
to/from obj or asc. found importing teapot.
* rtedge with perspective is wrong. it fills in nearly entire faces,
vertically in particular. it's worse on small sized renders, and
gets better the larger the render size (indicating there's some
neighbor distance coming into play that is not affected by
max_dist). eoes not happen in non-perspective ray-traces.
* a character is (still) sometimes captured by the cursor box. steps
to reproduce:
1) write a word on the mged command prompt ("e.g. hello")
2) select the word to end of line with mouse
3) paste the word (e.g., middle mouse) and press enter
4) type "hello" again and press enter
you should now see an "o" in the yellow cursor box. sometimes
you'll see the "o" after step 3. running "clear" resets the cursor.
* get_regions tcl command doesn't respond well to situations where
child object names in combs have dashes (the "-" character) in
names. It tries to interpret the dash as an argument delimiter.
Looks like this may be only in situations where the "-" is the
lead character and on Windows? Been hard to reproduce...
* dsp does not facetize correctly with zero elevation areas in the
data - need robustness improvements
* dsp primitives specifying data using Windows style file paths
don't work.
* attempting to create a dsp using a binary object caused a crash on
Linux - need to figure out if this was caused by feeding it the wrong
kind of binary object or some other error...
* screengrab on windows does not work
* Recursive submodel predictably goes infinite, need stack-based
db_walk_tree(): mged> in submodel submodel submodel grid test.g
* running rt -s20 -F file.pix ... does not result in an 20x20 image
being written out. it ends up being 512x512.
* running rt -C255/0/0 -o file.pix ... does not result in the
background color getting used. It does work with -F file.pix, going
through libfb instead of libicv.
* ogl display manager and framebuffer are creating windows with
transparent backgrounds (the glClear color is not being drawn) on
Linux. Presumably a driver-related issue, alpha channel, or expose
event issue. Inspecting further, it may be related to environments
where shmget() fails (or is requested via /dev/oglp) and we get
private memory -- looks like private memory is not initialized
(observed on Mac 10.6, Windows, and Ubuntu Linux using 7.26).
* 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.
@@ -202,6 +68,14 @@ Recent Bugs
* report of g-iges crashing (on Windows) when exporting a 1.2MB BoT
mesh (presumably imported via stl-g). worked for smaller models.
* ogl display manager and framebuffer are creating windows with
transparent backgrounds (the glClear color is not being drawn) on
Linux. Presumably a driver-related issue, alpha channel, or expose
event issue. Inspecting further, it may be related to environments
where shmget() fails (or is requested via /dev/oglp) and we get
private memory -- looks like private memory is not initialized
(observed on Mac 10.6).
* autoview [scale] isn't updating the wireframe when opening a
database, drawing geometry, then running autoview. the status bar
shows the scale change, but the graphics window remains unaffected
@@ -236,6 +110,9 @@ Recent Bugs
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
@@ -346,6 +223,9 @@ Recent Bugs
sub-1sec fps, Z/B after rotating wireframe but before update
finishes drawing.
* rtedge help shows redirection to a file working, but it does not
seem to work (zero-file results).
* report of rt aborting randomly on 64-bit with camo shader.
* mged raytrace fails with simple "raytrace failed" message when using
@@ -366,12 +246,12 @@ Recent Bugs
* hyp tessellation routine creates bot that does not raytrace
* hyp used in a boolean with other objects (even unions) does not
raytrace
* if you attach a display manager in tk-mged, kill the window, then
quit, mged crashes on exit.
* CMD-b and CMD-f navigates the mged command window text widget on Mac
and trivially causes problems with the cursor and text injection.
* mged segfaults when drawing lots of solids at once (e.g. draw *.s)
* mged command mode doesn't display the output of multiple
@@ -407,6 +287,11 @@ Recent Bugs
display manager window. mged classic mode, where there is no
parent window, exhibits the bad rotate behavior immediately.
* rtedge fills in nearly entire faces of an object when executing on a
model that is in perspective mode. Effects really bad on small sized
renders, and gets better the larger the render size. Does not happen
in non-perspective ray-traces.
* infinite light sources close to objects result in unexpected/bad
light behavior. example is a 1m sph light about 5m from a box about
1k x 1k x 1k in size. setting make each light be red, green, and
@@ -451,10 +336,9 @@ Recent Bugs
* File->Export seems to not work on Windows
* xpush fails to properly create a hierarchy killing existing objects
resulting in dangling references. This may have been fixed by
r69256, but a model that exposes the issue has to be tested to be
sure.
* xpush fails to properly create a hierarchy leaving some as top-level
objects and killing other existing objects resulting in dangling
references.
* mged on Mac OS X will crash on an X11 call if compiled against
system Tcl/Tk (at least on 10.4 linking against 8.4), see TODO
@@ -531,6 +415,8 @@ Recent Bugs
* overlap tool in mged encourages very inefficient CSG operations
(e.g. a simple bolt with an entire hull armor subtracted)
* a character is (still) sometimes captured by the cursor box
* permute (in mged) requires apply or save before 'new' vertex values
will function properly as keypoints.
@@ -571,6 +457,13 @@ Recent Bugs
* triangulation of some pipe in toyjeep.g fails (rather reliably) on
some given bend. fails in nmg_triangulate model().
* tgc reports one hit errors though hit point has 0,0,0 direction
implying that maybe the point was supposedly deleted.
* rtedge is not respecting the -c"set" options. needs to give some
indication that they were parsed too since it ignores unrecognized
values apparently.
* fbhelp sends some of the output to stdout and some to stderr...
* debugbu 2 immediately reports a bu_vls_free() error.. apparently
+168 -509
View File
@@ -2,203 +2,152 @@
BRL-CAD Interface Change Policy
===============================
This policy describes formal rules for changing an interface that
potentially impacts developers or users. The scope is limited to
public interfaces including developer application programming
interfaces (APIs), user application command-line interfaces (CLIs),
and graphical user interfaces (GUIs). The policy aims to balance
developer agility with interface stability.
Included below are details of BRL-CAD public interface changes that
potentially impact external developers and users. Public interfaces
include developer application programming interface (API) calls as
well as user application command-line interface (CLI) and graphical
user interface (GUI) behaviors. Changes are characterized as:
1) those affecting a new interface,
2) being minimally impacting, or
3) requiring adherence to deprecation policy.
This policy is intentionally designed to balance developer agility,
helping accelerate development, with interface stability, helping
preserve application developer and user investments.
All changes to BRL-CAD are expected to conform to this change policy.
Changes MUST either be:
A) MINIMALLY IMPACTING, or
B) FORMALLY DEPRECATED.
NEW INTERFACE
-------------
Changes to interfaces that have been recently introduced are often
subject to further change and should not yet be relied upon by
application developers or users until they stabilize. They are
allowed to change from release to release and are not subject to
change policy restrictions until they have been included in at least
TWO releases without any change.
MINIMALLY IMPACTING
-------------------
Changes deemed "minimally impacting" can be made at any time. For a
change to be considered as such, its effect must be strictly limited.
Most are itemized under MINIMALLY IMPACTING CHANGES. They MUST be:
If a change to an interface has a suitable and completely equivalent
alternative, the change is deemed to be "minimally impacting" and can
be made during any release. Examples of such changes include renaming
an interface, reordering parameters, adding optional parameters,
adding additional parameters for previously implicit behavior, and
removing unused parameters.
A.1) a relatively new interface
Interfaces introduced recently are often subject to rapid
development change. New interfaces are not subject to formal
deprecation rules until they have been included in at least
TWO releases without change.
A.2) an appreciably broken interface
Interfaces that have been unusable for at least TWO releases
may be fixed, changed, or removed without notice. A broken
interface is one that does not perform its intended function
and does not have secondary utility.
A.3) an elementary change
Simple changes that are trivially accommodated without
conditional logic or manual inspection can be made at will.
It includes mechanical changes that can be automatically
updated by a single static regular expression substitution.
Examples include renaming, reordering parameters, adding
optional parameters, eliminating a duplicate equivalent
interface, adding parameters for implicit behavior, and
removing unused parameters.
Generally, the impact can usually be considered minimally impacting if
a static regular expression search-and-replace is all that is needed
to update calling code, and no manual intervention is required.
FORMALLY DEPRECATED
-------------------
DEPRECATION POLICY
------------------
Changes not minimally impacting must follow formal deprecation
process. This defers significant changes to major release points or
requires public notification in advance. Changes are documented in
this file first as DEPRECATED CHANGES then later as OBSOLETED CHANGES.
An interface may be changed:
If a change will intentionally alter, replace, or remove functionality
that has been documented and published in at least TWO releases, it
must first be announced as DEPRECATED. Otherwise, changes to
interfaces that have not been publicly announced or are not publicly
documented for at least two releases may be changed without notice.
B.1) during a major release (e.g. from 7.*.* to 8.*.*)
The general practice is that public interface changes may go from
deprecated to obsolete, whereby previous behavior is removed or
changed, during one of the following events:
Any change may be made without notice. Major version number
releases imply intrinsic incompatibility or interface change.
a) during a major release (e.g. going from 7.*.* to 8.*.*)
B.2) during a minor release (e.g., from 7.26.* to 7.28.*)
b) during a minor release provided the change was publicly announced
as deprecated beforehand AND sufficient deprecation warning was
given via i) TWO minor releases included the deprecation notice,
and ii) at least THREE months (90 days) have passed since the
deprecation was announced
The interface must be publicly deprecated beforehand with
advance notice given in at least TWO minor releases and after
at least 90 days elapsed since initial release announcement.
c) during any release provided there still exists an EQUIVALENT
alternative interface that does not impose an undue burden on users
or developers (see "MINIMALLY IMPACTING")
Public interfaces scheduled for change should be noted in this file
and visibly marked in the source code. This marking may be the
DEPRECATED keyword on function declarations, #warning "DEPRECATED ..."
pre-processor statements, @DEPRECATED source code comments, and
combinations thereof.
Public interfaces scheduled for removal should be visibly marked as
deprecated during compilation with the DEPRECATED keyword on function
declarations, with #warning "DEPRECATED ..." pre-processor statements,
and with @DEPRECATED in source code comments. Where users are not
adversely affected, a run-time DEPRECATION statement may be printed.
Where usage is not adversely affected, a run-time statement may be
displayed (typically "DEPRECATION WARNING: ..."). All call references
and documentation should be updated prior to obsoleting.
Whenever published functionality is finally removed, move its entry
from the DEPRECATED section below to the REMOVED section for the
version in which it was removed. Make sure the entry retains a
reference to the version in which the item was marked as deprecated.
EXAMPLES
--------
Example #1: rt_shootray() removal
Example #1: Say we decided during 7.50.3 development to remove
rt_shootray() from the API without a replacement. That does NOT
qualify as "minimally impacting" because there's no replacement and
rt_shootray() has been published and documented in more than two
releases. We'd annotate the deprecation in the CHANGES file, mark the
function as DEPRECATED in the API header, and post the 7.50.4 release.
The soonest that function could be removed would be in the 7.54.0
release during 7.53 development. It could NOT be removed in 7.54.2
since it's a patch version, prior to the 7.54 release line, nor even
during 7.54.0 if less than 90 days had passed since 7.50.6 was posted.
It's decided during 7.50.3 development to remove the rt_shootray()
function. That does NOT qualify as "minimally impacting" because
there's no equivalent replacement and rt_shootray() has been published
and documented in more than two releases. The function gets listed as
DEPRECATED in the CHANGES file, marked as DEPRECATED in the API
header, and is published via the 7.50.4 release.
The soonest that function could be removed / obsoleted would be in
7.54.0 during 7.53.* development provided more than 90 days had passed
since the initial announcement. It could NOT be removed in 7.54.2 as
that's a patch version, prior to 7.54, nor during 7.54.0 if less than
90 days had passed since 7.50.6 was posted.
Example #2: bu_log() mod
It's decided during 7.48.1 development to modify bu_log() by adding an
additional optional enum parameter denoting a message type, e.g.,
bu_log(INFO, ...). This change is considered "minimally impacting"
because it can be characterized by a simple regular expression (e.g.,
"s/bu_log\(/bu_log(INFO, /g)" and calling codes are trivially
accommodated. All calls to bu_log() should be updated to the new form
prior to change announcement.
The function could be changed at any time so long as it's documented
under MINIMALLY IMPACTING CHANGES.
Example #2: Say we decide during 7.48.0 development to modify bu_log()
by adding a new additional enum parameter denoting a message type.
This change is considered minimally impacting because it can be
characterized by a simple regular expression (e.g.,
s/bu_log(/bu_log(PRINT, /g). Updates to calling codes are considered
trivial. The change would get documented in the CHANGES file and all
calls that can be updated must be updated at that time.
**********************************************************************
*** DEPRECATED CHANGES ***
**********************************************************************
(reverse chronological order)
**************
* DEPRECATED *
**************
The interfaces announced below are scheduled to significantly change
or be removed. They are categorized by the release in which
deprecation was first announced. If the interface change involved a
removal or transition, both the original and new interface names are
generally listed for reference.
Items marked with a "'" (single quote) are undocumented and may be
The items listed below are interfaces that are deprecated. They are
categorized by the release in which the change was made. If the
change involved a removal of a command or function, both the original
and new names should be listed for reference. If an item is marked
with a "'" (single quote), that means it was not documented and may be
removed at any time.
7.32
----
include/bg/chull.h
All functions returning point arrays instead of index arrays.
Will be replaced by similarly named functions returning
indexes into provided points array, to allow the caller
to decide if new arrays are needed. [deprecated 7.32]
bg_polyline_2d_chull, bg_2d_chull, bg_3d_coplanar_chull,
bg_3d_chull
MGED gui
The following will be removed from MGED's menu bar (unused
features, can be accomplished another way, or will be exposed
only as lower level settings when there are sensible defaults
that are seldom changed.)
Settings->Mouse Behavior->Pick Raytrace-Object(s)
7.30
----
~/.density
automatic reading of .density file in home directory
materials need to be specified or imported [deprecated 7.28]
btclsh, bwish
Emacs key binding emulation
achieved by running btclsh in Emacs [deprecated 7.30]
include/bu/redblach.h
All redblack related functions, structures and macros
defined in libbu's redblack.h. Functions are:
bu_rb_create, bu_rb_delete, bu_rb_diagnose_tree,
bu_rb_summarize_tree, bu_rb_extreme, bu_rb_neighbor,
bu_rb_curr, bu_rb_free, bu_rb_insert, bu_rb_is_uniq,
bu_rb_set_uniqv, bu_rb_uniq_all_off, bu_rb_uniq_all_on,
bu_rb_uniq_on, bu_rb_uniq_off, bu_rb_rank, bu_rb_select,
bu_rb_search, bu_rb_walk
Use C++ containers set/map from std [deprecated 7.30]
nirt
Behavior available under the --old flag [deprecated 7.30]
7.28
----
include/bu/malloc.h
bu_ck_malloc_ptr, bu_mem_barriercheck, bu_prmem
replaced by modern memory analyzers [deprecated 7.28]
include/rt/mem.h
rt_memprint [deprecated 7.28]
include/vmath.h
VCOMB3, VCOMB3N, VJOIN4
Removed as inconsistent and unused API [deprecated 7.28]
MGED commands
?devel, ?lib, aproposdevel, aproposlib, %, animmate, db_glob,
debugbu, debugdir, debuglib, debugmem, debugnmg, expand,
loadtk, match, memprint, preview, regdebug, regdef, rmats, rrt,
savekey, shaded_mode, sync
Removed as part of distillation effort [deprecated 7.28]
libtermio, libcursor
Public API scope reduction - any client code that needs
to interact with the terminal at these levels should handle
what is needed locally.
7.26
----
ray tracing tools
lgt : functionally replaced by nirt
rtcell', rtfrac', rtpp, rtrad', rtrange, rtray, rtregis, rtsil'
Removed as part of distillation effort [deprecated 7.26]
converter tools
cy-g, euclid-g, euclid_format', euclid_unformat', g-euclid,
g-euclid1', g-tankill, intaval-g.py, viewpoint-g : obsolete formats
plot3-X, plot3-hpgl, plot3-tek : obsolete interface, see overlay command
plot3debug, xyz-plot3 : see plot3-asc,asc-plot3
bot-bldxf', bot_shell-vtk, g-nmg, nmg-bot, nmg-rib, nmg-sgp',
poly-bot, rt_bot_faces, : primitive-specific converters
Removed as part of distillation effort [deprecated 7.26]
image tools
cmap-fb, fb-cmap, fbcmrot : colormap support obsolete
fbed, cell-fb : outside scope
fbscanplot, polar-fb, pp-fb, bw-imp, pixinfo.sh : obsolete
png_info : incorporating into icv
pixpaste : outside scope, license
alias-pix' : incorporating into icv
asc2pix' : incorporating into icv
pix-yuv', yuv-pix' : obsolete non-standard format
texturescale : obsolete implementation
Removed as part of distillation effort [deprecated 7.26]
video & animation tools
anim_*', fbanim, chan_add', chan_mult, chan_permute,
pixflip-fb' : outside scope
pixfields', pixfieldsep' : outside scope
orbit.sh, rtwalk, scriptsort, script-tab', tabinterp, tabsup,
azel, bary
Removed as part of distillation effort [deprecated 7.26]
signal analysis tools
a-d', d-a', bw-a', i-a', u-a' : incorporating into cv
@@ -207,13 +156,31 @@ signal analysis tools
f-d', f-i', d-f', i-f', u-f', u-bw' : incorporating into cv
d2-c', double-asc' : incorporating into cv
Removed as part of distillation effort [deprecated 7.26]
infrared & shapefactor tools
all_sf', if-X, ifdisp, pictx, showterm, firpass, secpass, shapefact
ssamp-bw, ssampview', ssampview.tcl'
Removed as part of distillation effort [deprecated 7.26]
misc tools
fix_polysolids' : obsolete primitive
remapid : superseded by reid+remat
buffer : unnecesary network/stream buffering tool
hex : superseded by hexdump
Removed as part of distillation effort [deprecated 7.26]
include/bu/ptbl.h
BU_PTBL_BASEADDR, BU_PTBL_LASTADDR, BU_PTBL_END
Removed as private implementation detail [deprecated 7.26
include/bu/hash.h
bu_hash_tbl_find, bu_set_hash_value, bu_get_hash_value, bu_get_hash_key,
bu_hash_tbl_add, bu_hash_tbl_print, bu_hash_tbl_free, bu_hash_tbl_first,
bu_hash_tbl_next, bu_hash_tbl_traverse, public structs bu_hash_entry and
bu_hash_tbl will be made private.
Replaced with new API [deprecated 7.26]
include/bu/cmd.h
remove struct bu_cmdhist and struct bu_cmdhist_obj [deprecated 7.26]
BU_CMDHIST_NULL, BU_CMDHIST_OBJ_NULL, bu_cmdhist_histor, bu_cmdhist_add,
bu_cmdhist_curr, bu_cmdhist_nest, bu_cmdhist_prev [deprecated 7.26]
fb-rle, rle-fb, bw-rle, pix-rle, rle-pix
All tools focused specifically on the RLE image format. [deprecated 7.26]
nirt
-T - use LIBRT_BOT_MINTIE environment variable instead [deprecated 7.26]
all global variables
@@ -227,6 +194,7 @@ include/raytrace.h
tcl_obj_to_fastf_array tcl_list_to_int_array
tcl_list_to_fastf_array *_tcl_*, removal of all tcl-specific
API functions [deprecated 7.26]
db_regexp_match_all() -> db_ls() [deprecated 7.26]
include/rt/solid.h
shouldn't be public API - this level of detail belongs inside the display
manager [deprecated 7.26]
@@ -240,6 +208,8 @@ include/tclcad.h
tclcad_bn_mat_print tclcad_rt_parse_ray tclcad_rt_pr_cutter
tclcad_rt_pr_hit tclcad_rt_rt tclcad_rt_import_from_path, removal of all
tcl-specific API functions [deprecated 7.26]
pixcut, pixpaste
copyright cleanup [deprecated 7.26]
librt, fast4-g
removal of CLINE entity support [deprecated 7.26]
mged
@@ -252,9 +222,19 @@ mged
expand was regex were wrong - uses bu_fnmatch.) [deprecated 7.26]
pathlist, paths -> replaced by search [deprecated 7.26]
burst
remove termlib-based interactive menu interface [deprecated 7.26]
7.24
----
fbed, pp-fb
removes termcap use, no known users [deprecated 7.24]
include/raytrace librt
db_full_path_list_add(), db_free_full_path_list() [deprecated 7.24]
db_search_formplan(), db_search_freeplan(), db_search_full_paths() [deprecated 7.24]
db_search_unique_objects(), struct db_full_path_list [deprecated 7.24]
src/irprep
all_sf, firpass, ir-X, irdisp, pictx, secpass, shapefact, showterm [deprecated 7.24]
include/raytrace.h librt
RT_DBHASH and RT_DBNHASH [deprecated 7.24]
@@ -264,6 +244,12 @@ include/raytrace.h librt
nmg_model_break_e_on_v -> nmg_break_e_on_v [deprecation 7.22]
RT_GET_TREE -> BU_GET [deprecation 7.22]
RT_FREE_TREE -> BU_PUT [deprecation 7.22]
include/bu.h
bu_parse_mm() [deprecated 7.22]
librtserver
becoming stand-alone project, removes optional java dependency [deprecated 7.22]
mged
em, e_muves, l_muves, lm, read_muves, and t_muves MUVES-specific commands [deprecated 7.22]
7.20
----
@@ -279,6 +265,7 @@ GNU Autotools configure compatibility script
./configure -> cmake . [deprecated 7.20]
include/raytrace.h
rt_load_attrs() -> rt_gettrees_and_attrs() or db5_import_attributs() [deprecated 7.20]
db_regexp_match() -> !bu_fnmatch() [deprecated 7.20]
7.18
----
@@ -368,88 +355,13 @@ include/raytrace.h
struct hit.hit_normal -> RT_HIT_NORMAL [deprecated pre-7.0]
**********************************************************************
*** OBSOLETED CHANGES ***
**********************************************************************
(reverse chronological order)
7.30.2
------
ray tracing tools
lgt : functionally replaced by nirt
rtcell', rtfrac', rtpp, rtrad', rtrange, rtray, rtregis
Removed as part of distillation effort [deprecated 7.26]
converter tools
cy-g, euclid-g, euclid_format', euclid_unformat', g-euclid,
g-euclid1', g-tankill, intaval-g.py, viewpoint-g : obsolete formats
plot3-X, plot3-hpgl, plot3-tek : obsolete interface, see overlay command
plot3debug, xyz-plot3 : see plot3-asc,asc-plot3
bot-bldxf', bot_shell-vtk, g-nmg, nmg-bot, nmg-rib, nmg-sgp',
poly-bot, rt_bot_faces, : primitive-specific converters
Removed as part of distillation effort [deprecated 7.26]
image tools
cmap-fb, fb-cmap, fbcmrot : colormap support obsolete
fbed, cell-fb : outside scope
fbscanplot, polar-fb, bw-imp, pixinfo.sh : obsolete
png_info : incorporating into icv
pix-yuv', yuv-pix' : obsolete non-standard format
texturescale : obsolete implementation
pixcut, pixpaste : license, copyright cleanup
Removed as part of distillation effort [deprecated 7.26]
video & animation tools
anim_*', fbanim, chan_add', chan_mult, chan_permute,
pixflip-fb' : outside scope
pixfields', pixfieldsep' : outside scope
orbit.sh, rtwalk, scriptsort, script-tab', tabinterp, tabsup,
azel, bary
Removed as part of distillation effort [deprecated 7.26]
infrared & shapefactor tools
all_sf', if-X, ifdisp, pictx, showterm, firpass, secpass, shapefact
Removed as part of distillation effort [deprecated 7.26]
misc tools
fix_polysolids' : obsolete primitive
remapid : superseded by reid+remat
buffer : unnecessary network/stream buffering tool
hex : superseded by hexdump
Removed as part of distillation effort [deprecated 7.26]
fb-rle, rle-fb, bw-rle, pix-rle, rle-pix
All tools focused specifically on the RLE image format. [deprecated 7.26]
burst
remove termlib-based interactive menu interface [deprecated 7.26]
include/bu/hash.h
bu_hash_tbl_find, bu_set_hash_value, bu_get_hash_value, bu_get_hash_key,
bu_hash_tbl_add, bu_hash_tbl_print, bu_hash_tbl_free, bu_hash_tbl_first,
bu_hash_tbl_next, bu_hash_tbl_traverse, public structs bu_hash_entry and
bu_hash_tbl will be made private.
Replaced with new API [deprecated 7.26]
***********
* REMOVED *
***********
7.30.0
------
fbed, pp-fb
removes termcap use, no known users [deprecated 7.24]
src/irprep
all_sf, firpass, ir-X, irdisp, pictx, secpass, shapefact, showterm [deprecated 7.24]
include/raytrace librt
db_full_path_list_add(), db_free_full_path_list() [deprecated 7.24]
db_search_formplan(), db_search_freeplan(), db_search_full_paths() [deprecated 7.24]
db_search_unique_objects(), struct db_full_path_list [deprecated 7.24]
db_regexp_match() -> !bu_fnmatch() [deprecated 7.20]
db_regexp_match_all() -> db_ls() [deprecated 7.26]
mged
em, e_muves, l_muves, lm, read_muves, and t_muves MUVES-specific commands [deprecated 7.22]
include/bu.h
bu_parse_mm() [deprecated 7.22]
7.28.0
------
rt -f framerate
removed [minimally impacting]
pixdsplit, rt -d
removed, broken tool [minimally impacting]
libmultispectral, rttherm, ssamp-bw, ssampview, ssampview.tcl
removed, broken tools [minimally impacting]
dem-g
removed, superseded by gcv+GDAL [minimally impacting]
Below are the interfaces that have followed deprecation policy or were
deemed minimally impacting and, regardless, are now no longer a part
of BRL-CAD.
7.26.0
------
@@ -482,7 +394,7 @@ Dunn camera and Canon printer tools
genptr_t/GENPTR_NULL
genptr_t -> void* [deprecated 7.16]
include/bu.h
bu_argv0() -> bu_basename(bu_argv0_full_path(), NULL) [deprecated 7.16]
bu_argv0() -> bu_basename(bu_argv0_full_path()); [deprecated 7.16]
include/dm_color.h
dm_color.h -> dm.h [deprecated 7.14]
include/fb.h
@@ -512,7 +424,7 @@ mged
SGI-specific tools
pl-sgi -> pl-fb [deprecated 7.16]
src/gtools
g_diff, g_lint, g_qa, g_transfer -> gdiff, glint, gqa, gtransfer [deprecated 7.14]
g_[toolname] -> g[toolname] [deprecated 7.14]
src/librt/cmd.c
rt_split_cmd() -> bu_argv_from_string() [deprecated 7.12]
any-png.sh
@@ -692,29 +604,22 @@ include/[library].h (several)
[library]_version -> [library]_version() [private]
**********************************************************************
*** MINIMALLY IMPACTING CHANGES ***
**********************************************************************
(forward chronological order)
***********************************
* MINIMALLY IMPACTING API CHANGES *
***********************************
All minimally impacting changes are listed by release as regular
expressions. Unless noted otherwise, expressions are shown using Perl
syntax (i.e., the '(', ')', and '|' characters pertain to
subexpression captures, escaping with '\' matches literally.
Expressions should apply via:
Included in following are various minimally impacting API changes that
have been identified in chronological order. As expressions are not
extensively tested, use with caution.
perl -0777 -pi -e 'EXPRESSION' FILE
To apply an expression to an entire source tree, the following pattern
may work:
Unless noted otherwise, expressions are shown using Perl syntax and
may need adjustment (particularly quoting of '(', ')', and '|'
characters) for other environments. Most expressions will apply with:
perl -0777 -pi -e 'EXPRESSION' FILE
To apply them to an entire SVN checkout, the following pattern is useful:
find . -type f -not -path "*.svn/*" -regex '.*\(c\|cpp\|cxx\|h\|hpp\)$' -exec perl -0777 -pi -e 'EXPRESSION' {} \;
find src \( -name '*.c' -or -name '*.cxx' -or -name '*.cpp' -or -name '*.h' -or -name '*.hxx' -or -name '*.hpp' -or -name '*.java' -or -name '*.f' -or -name '*.sh' -or -name '*.tcl' -or -name '*.tk' -or -name '*.itcl' -or -name '*.itk' -or -name '*.pl' -or -name '*.php' -or -name '*.inc' -or -name '*.mged' -or -name '*.y' -or -name '*.l' -or -name '*.yy' \) -not \( -name other -or -regex '.*/other/.*' -or -name tools -or -regex '.*/misc/tools/.*' -or -regex '.*/\.[^\.].*' -or -regex '.*~' -or -regex '.*/#.*' \)
Expressions are minimally tested, use with caution. Make a backup.
6.0 (sed lines)
---
g/struct structparse/s//struct bu_structparse/g
@@ -1305,249 +1210,3 @@ s/bu_dir_list/bu_file_list/g
bu_dir_list -> bu_file_list [7.25]
s/BU_FNMATCH_NOMATCH/1/g
don't use an explicit define for the non-matching case [7.25]
s/bu_basename\(([^\)]*)\)/bu_basename(\1, NULL)/g
pass NULL argument to get a dynamically allocated buffer back [7.25]
7.28
----
s/bu_free_array/bu_free_args/g
fixed misleading name [7.26]
s/(#[[:space:]]*include[[:space:]]+["<])bu\/rb\.h/\1bu\/redblack.h/g
clearer header name [7.26]
s/rt_plot_vlblock/bn_plot_vlblock/g
s/rt_vlist_to_uplot/bn_vlist_to_uplot/g
move vlist functions to libbn [7.26]
s/rt_nurb_bezier/nmg_nurb_bezier/g
s/rt_nurb_c_split/nmg_nurb_c_split/g
s/rt_nurb_free_cnurb/nmg_nurb_free_cnurb/g
s/rt_nurb_free_snurb/nmg_nurb_free_snurb/g
s/rt_nurb_intersect/nmg_nurb_intersect/g
s/rt_nurb_new_cnurb/nmg_nurb_new_cnurb/g
s/rt_nurb_new_snurb/nmg_nurb_new_snurb/g
s/rt_nurb_s_eval/nmg_nurb_s_eval/g
s/rt_nurb_s_norm/nmg_nurb_s_norm/g
s/rt_nurb_uv_hit/nmg_nurb_uv_hit/g
s/rt_arc2d_to_cnurb/nmg_arc2d_to_cnurb/g
s/rt_join_cnurbs/nmg_join_cnurbs/g
s/rt_nurb_c_eval/nmg_nurb_c_eval/g
s/rt_nurb_c_print/nmg_nurb_c_print/g
s/rt_nurb_kvgen/nmg_nurb_kvgen/g
s/rt_nurb_kvmerge/nmg_nurb_kvmerge/g
s/rt_nurb_s_print/nmg_nurb_s_print/g
s/rt_nurb_s_refine/nmg_nurb_s_refine/g
s/rt_bez_check/nmg_bez_check/g
s/rt_nurb_back_solve/nmg_nurb_back_solve/g
s/rt_nurb_basis_eval/nmg_nurb_basis_eval/g
s/rt_nurb_c_bound/nmg_nurb_c_bound/g
s/rt_nurb_c_check/nmg_nurb_c_check/g
s/rt_nurb_c_diff/nmg_nurb_c_diff/g
s/rt_nurb_c_refine/nmg_nurb_c_refine/g
s/rt_nurb_c_xsplit/nmg_nurb_c_xsplit/g
s/rt_nurb_calc_oslo/nmg_nurb_calc_oslo/g
s/rt_nurb_cinterp/nmg_nurb_cinterp/g
s/rt_nurb_clean_cnurb/nmg_nurb_clean_cnurb/g
s/rt_nurb_clip_srf/nmg_nurb_clip_srf/g
s/rt_nurb_crv_copy/nmg_nurb_crv_copy/g
s/rt_nurb_crv_flat/nmg_nurb_crv_flat/g
s/rt_nurb_curvature/nmg_nurb_curvature/g
s/rt_nurb_doolittle/nmg_nurb_doolittle/g
s/rt_nurb_eval_crv/nmg_nurb_eval_crv/g
s/rt_nurb_forw_solve/nmg_nurb_forw_solve/g
s/rt_nurb_free_oslo/nmg_nurb_free_oslo/g
s/rt_nurb_gen_knot_vector/nmg_nurb_gen_knot_vector/g
s/rt_nurb_knot_index/nmg_nurb_knot_index/g
s/rt_nurb_kvcheck/nmg_nurb_kvcheck/g
s/rt_nurb_kvcopy/nmg_nurb_kvcopy/g
s/rt_nurb_kvextract/nmg_nurb_kvextract/g
s/rt_nurb_kvknot/nmg_nurb_kvknot/g
s/rt_nurb_kvmult/nmg_nurb_kvmult/g
s/rt_nurb_kvnorm/nmg_nurb_kvnorm/g
s/rt_nurb_map_oslo/nmg_nurb_map_oslo/g
s/rt_nurb_mesh_diff/nmg_nurb_mesh_diff/g
s/rt_nurb_mk_poly/nmg_nurb_mk_poly/g
s/rt_nurb_p_mat/nmg_nurb_p_mat/g
s/rt_nurb_plot_cnurb/nmg_nurb_plot_cnurb/g
s/rt_nurb_plot_snurb/nmg_nurb_plot_snurb/g
s/rt_nurb_poly/nmg_nurb_poly/g
s/rt_nurb_pr_crv/nmg_nurb_pr_crv/g
s/rt_nurb_pr_kv/nmg_nurb_pr_kv/g
s/rt_nurb_pr_mesh/nmg_nurb_pr_mesh/g
s/rt_nurb_pr_oslo/nmg_nurb_pr_oslo/g
s/rt_nurb_print_pt_type/nmg_nurb_print_pt_type/g
s/rt_nurb_project_srf/nmg_nurb_project_srf/g
s/rt_nurb_region_from_srf/nmg_nurb_region_from_srf/g
s/rt_nurb_s_bound/nmg_nurb_s_bound/g
s/rt_nurb_s_check/nmg_nurb_s_check/g
s/rt_nurb_s_diff/nmg_nurb_s_diff/g
s/rt_nurb_s_flat/nmg_nurb_s_flat/g
s/rt_nurb_s_plot/nmg_nurb_s_plot/g
s/rt_nurb_s_split/nmg_nurb_s_split/g
s/rt_nurb_s_xsplit/nmg_nurb_s_xsplit/g
s/rt_nurb_scopy/nmg_nurb_scopy/g
s/rt_nurb_sinterp/nmg_nurb_sinterp/g
s/rt_nurb_solve/nmg_nurb_solve/g
s/rt_nurb_to_poly/nmg_nurb_to_poly/g
rename old nurbs functions intertwined with nmg to use nmg prefix [7.27]
s/RTG.NMG_debug/nmg_debug/g
make nmg debug flag top level, like libbu's [7.27]
s/BU_ASSERT(_[A-Z_]+)\(([^,]+|.*\(.*,.*\)),([^,]+|.*\(.*,.*\)),([^,]+|.*\(.*,.*\))\);/BU_ASSERT(\2\3\4);/g
consolidated BU_ASSERT_PTR, BU_ASSERT_LONG, BU_ASSERT_SIZE_T, BU_ASSERT_SSIZE_T, BU_ASSERT_DOUBLE [7.27]
s/BU_FLSTR/CPP_FILELINE/g
symbol now owned by common.h, not specific to libbu [7.27]
s/vert_root/bn_vert_tree/g
s/create_vert_tree[[:space:]]*\(/bn_vert_tree_create\(/g
s/create_vert_tree_w_norms[[:space:]]*\(/bn_vert_tree_create_w_norms\(/g
s/free_vert_tree[[:space:]]*\(/bn_vert_tree_destroy\(/g
s/Add_vert[[:space:]]*\(([^,]*,)([^,]*,)([^,]*,)([^,]*,)/bn_vert_tree_add\(\4\1\2\3/g
s/Add_vert_and_norm[[:space:]]*\(([^,]*,)([^,]*,)([^,]*,)([^,]*,)([^,]*,)([^,]*,)([^,]*,)/bn_vert_tree_add_w_norm\(\7\1\2\3\4\5\6/g
s/clean_vert_tree[[:space:]]*\(/bn_vert_tree_clean\(/g
symbols renamed per convention with their library prefix [7.27]
s/BU_DEBUG_MEM_CHECK/0/g
s/DEBUG_MEM_FULL/0/g
developer debugging symbols removed [7.27]
s/bu_dirname\(/bu_path_dirname\(/g
s/bu_basename\(/bu_path_basename\(/g
s/bu_normalize\(/bu_path_normalize\(/g
s/bu_argv_from_path\(/bu_path_to_argv\(/g
renamed path functons with proper group label [7.27]
s/bu_fnmatch\(/bu_path_match\(/g
s/BU_FNMATCH_LEADING_DIR/0x0/g
s/BU_FNMATCH_/BU_PATH_MATCH/g
renamed for consistency, simplified [7.27]
s/bu_path_canonicalize[[:space:]]*\(([^,]*)/bu_realpath(\1, NULL/g
duplicate functionality consolidated to bu_realpath() [7.27]
s/gqa(.*)-p/gqa\1-p ""/g
gqa now takes a prefix for plot file output
s/bu_same_file/bu_file_same/g
s/bu_realpath/bu_file_realpath/g
s/bu_suspend_interrupts/bu_interrupt_suspend/g
s/bu_restore_interrupts/bu_interrupt_restore/g
renamed for API consistency [7.27]
s/bu_brlcad_data[[:space:]]*\(/bu_brlcad_root("share/"/g
replaced by new BU API
s/struct[[:space:]]*ged_run_rt/struct ged_subprocess/g
7.30
----
s/BU_DEBUG_MEM_LOG/0/g
bu memory debugging API removed [7.29]
s/ged_count_tops/ged_who_argc/g
s/ged_build_tops/ged_who_argv/g
functions renamed as they pertain to 'who' listings, not 'tops' [7.30]
s/rt_tess_tol/bg_tess_tol/g
s/RT_TESS_TOL_MAGIC/BG_TESS_TOL_MAGIC/g
s/RT_TESS_TOL_INIT_ZERO/BG_TESS_TOL_INIT_ZERO/g
s/RT_CK_TESS_TOL/BG_CK_TESS_TOL/g
moved librt tolerances to libbg [7.30]
s/DEBUG_PT_FU/DEBUG_PNT_FU/g
s/DIST_PT2_PT2/DIST_PNT2_PNT2/g
s/DIST_PT2_PT2_SQ/DIST_PNT2_PNT2_SQ/g
s/DIST_PT_PLANE/DIST_PNT_PLANE/g
s/DIST_PT_PT/DIST_PNT_PNT/g
s/DIST_PT_PT_SQ/DIST_PNT_PNT_SQ/g
s/V3PT_IN_RPP/V3PNT_IN_RPP/g
s/V3PT_IN_RPP_TOL/V3PNT_IN_RPP_TOL/g
s/V3PT_OUT_RPP_TOL/V3PNT_OUT_RPP_TOL/g
s/WDB_METABALLPT_NULL/WDB_METABALL_PNT_NULL/g
s/_ged_cm_lookat_pt/_ged_cm_lookat_pnt/g
s/_ged_get_metaball_i_pt/_ged_get_metaball_i_pnt/g
s/add_metaballpt/metaball_add_pnt/g
s/add_pipept/pipe_add_pnt/g
s/append_pipept/pipe_append_pnt/g
s/bg_3d_polygon_mk_pts_planes/bg_3d_polygon_make_pnts_planes/g
s/bg_pt_in_polygon/bg_pnt_in_polygon/g
s/bn_3pts_collinear/bn_3pnts_collinear/g
s/bn_3pts_distinct/bn_3pnts_distinct/g
s/bn_dist_line3_pt3/bn_dist_line3_pnt3/g
s/bn_dist_pt2_along_line2/bn_dist_pnt2_along_line2/g
s/bn_dist_pt2_lseg2/bn_dist_pnt2_lseg2/g
s/bn_dist_pt3_along_line3/bn_dist_pnt3_along_line3/g
s/bn_dist_pt3_line3/bn_dist_pnt3_line3/g
s/bn_dist_pt3_lseg3/bn_dist_pnt3_lseg3/g
s/bn_dist_pt3_pt3/bn_dist_pnt3_pnt3/g
s/bn_dist_pt_lseg/bn_dist_pnt_lseg/g
s/bn_distsq_line3_pt3/bn_distsq_line3_pnt3/g
s/bn_distsq_pt3_lseg3_v2/bn_distsq_pnt3_lseg3_v2/g
s/bn_isect_pt2_lseg2/bn_isect_pnt2_lseg2/g
s/bn_isect_pt_lseg/bn_isect_pnt_lseg/g
s/bn_mat_scale_about_pt/bn_mat_scale_about_pnt/g
s/bn_mat_xform_about_pt/bn_mat_xform_about_pnt/g
s/bn_mk_plane_3pts/bn_make_plane_3pnts/g
s/bn_mkpoint_3planes/bn_make_pnt_3planes/g
s/bn_npts_distinct/bn_npnts_distinct/g
s/bn_pt2_pt2_equal/bn_pnt2_pnt2_equal/g
s/bn_pt3_pt3_equal/bn_pnt3_pnt3_equal/g
s/bn_sph_pts/bn_sph_pnts/g
s/bn_table_delete_sample_pts/bn_table_delete_sample_pnts/g
s/del_pipept/pipe_del_pnt/g
s/delete_metaballpt/metaball_delete_pnt/g
s/delete_pipept/pipe_pnt_delete/g
s/exported_pipept/exported_pipe_pnt/g
s/find_arb_edge_nearest_pt/find_arb_edge_nearest_pnt/g
s/find_botpt_nearest_pt/find_bot_pnt_nearest_pnt/g
s/find_metaballpt_nearest_pt/find_metaball_pnt_nearest_pnt/g
s/find_nearest_ars_pt/find_ars_nearest_pnt/g
s/find_pipept_nearest_pt/find_pipe_pnt_nearest_pnt/g
s/ged_add_metaballpt/ged_metaball_add_pnt/g
s/ged_append_pipept/ged_pipe_append_pnt/g
s/ged_delete_metaballpt/ged_metaball_delete_pnt/g
s/ged_delete_pipept/ged_pipe_pnt_delete/g
s/ged_find_arb_edge_nearest_pt/ged_find_arb_edge_nearest_pnt/g
s/ged_find_botpt_nearest_pt/ged_find_bot_pnt_nearest_pnt/g
s/ged_find_metaballpt_nearest_pt/ged_find_metaball_pnt_nearest_pnt/g
s/ged_find_pipept_nearest_pt/ged_find_pipe_pnt_nearest_pnt/g
s/ged_mat_scale_about_pt/ged_mat_scale_about_pnt/g
s/ged_move_botpt/ged_bot_move_pnt/g
s/ged_move_botpts/ged_bot_move_pnts/g
s/ged_move_metaballpt/ged_metaball_move_pnt/g
s/ged_move_pipept/ged_pipe_move_pnt/g
s/ged_prepend_pipept/ged_pipe_prepend_pnt/g
s/ins_pipept/pipe_ins_pnt/g
s/jitter_start_pt/jitter_start_pnt/g
s/kdtree_get_pt/kdtree_get_pnt/g
s/mat_scale_about_pt/mat_scale_about_pnt/g
s/metaballpt/metaball_pnt/g
s/mk_add_pipe_pt/mk_add_pipe_pnt/g
s/move_botpt/bot_move_pnt/g
s/move_botpts/bot_move_pnts/g
s/move_metaballpt/metaball_move_pnt/g
s/move_pipept/pipe_move_pnt/g
s/move_pipept/pipe_move_pnt/g
s/nmg_class_pt_f/nmg_class_pnt_f/g
s/nmg_class_pt_fu_except/nmg_class_pnt_fu_except/g
s/nmg_class_pt_l/nmg_class_pnt_l/g
s/nmg_class_pt_lu_except/nmg_class_pnt_lu_except/g
s/nmg_class_pt_s/nmg_class_pnt_s/g
s/nmg_classify_pt_loop/nmg_classify_pnt_loop/g
s/nmg_find_pt_in_face/nmg_find_pnt_in_face/g
s/nmg_find_pt_in_lu/nmg_find_pnt_in_lu/g
s/nmg_find_pt_in_model/nmg_find_pnt_in_model/g
s/nmg_find_pt_in_shell/nmg_find_pnt_in_shell/g
s/nmg_get_interior_pt/nmg_get_interior_pnt/g
s/nmg_move_edge_thru_pt/nmg_move_edge_thru_pnt/g
s/nmg_nurb_print_pt_type/nmg_nurb_print_pnt_type/g
s/pipept/pipe_pnt/g
s/prepend_pipept/pipe_prepend_pnt/g
s/rt_arb_add_pt/rt_arb_add_pnt/g
s/rt_ell_16pts/rt_ell_16pnts/g
s/rt_metaballpt_print/rt_metaball_pnt_print/g
s/rt_pipept_print/rt_pipe_pnt_print/g
s/rt_pr_pt/rt_pr_partition/g
s/rt_pr_pt_vls/rt_pr_partition_vls/g
s/rt_pt_node/rt_pnt_node/g
s/rt_pt_sort/rt_pnt_sort/g
s/rt_vls_metaballpt/rt_metaball_pnt_vls/g
s/rt_vls_pipept/rt_pipe_pnt_vls/g
s/split_pipept/pipe_split_pnt/g
s/tclcad_bn_dist_pt2_lseg2/tclcad_bn_dist_pnt2_lseg2/g
s/tclcad_bn_mat_xform_about_pt/tclcad_bn_mat_xform_about_pnt/g
s/wdb_metaballpt/wdb_metaball_pnt/g
s/wdb_pipept/wdb_pipe_pnt/g
renamed points from pt to pnt for consistency [7.30]
s/proe-brl/creo-brl/g
replaced by newer creo plugin [7.30]
7.32
----
s/facetall.sh/mged -c facetize/g
replaced by more improved facetize command [7.30]
+1134 -1832
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -101,7 +101,7 @@ arranged. This includes an implicit assignment of copyright for any
and all contributions being made. The following notice should be
prominent in the BRL-CAD sources:
Copyright (c) 1984-2020 United States Government as represented by
Copyright (c) 1984-2016 United States Government as represented by
the U.S. Army Research Laboratory.
Contact
+15
View File
@@ -0,0 +1,15 @@
## 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)
+41656 -17036
View File
File diff suppressed because it is too large Load Diff
+93 -103
View File
@@ -263,6 +263,10 @@ routines needed for the manipulation and analysis of Non-Uniform
Rational BSpline based boundary representations.
Depends on: libbg libbn libbu OpenNURBS
libcursor: The cursor library is a lightweight cursor manipulation
library similar to curses but with less overhead.
Depends on: termlib
libdm: The display manager library contains the logic for generalizing
a drawable context. This includes the ability to output
drawing/plotting instructions to a variety of devices such as X11,
@@ -281,6 +285,13 @@ libfft: The Fast-Fourier Transform library is a signal processing
library for performing FFTs or inverse FFTs efficiently.
Depends on: libm
libmultispectral: The multispectral optics library is a separate
compilation mode of the optics library where support for additional
bands of energy are added. By providing a defined spectrum of energy,
the raytrace library will produce different signal analyses for a
given set of geometry.
Depends on: librt libbn libbu libtcl
liboptical: The optical library is the basis for BRL-CAD's shaders.
This includes shaders such as the Phong and Cook-Torrence lighting
models, as well as various visual effects such as texturing, marble,
@@ -398,30 +409,30 @@ SOURCE CODE LANGUAGES
The vast majority of BRL-CAD is written in ANSI C with the intent to
be strictly conformant to the C standard. A majority of the MGED
geometry editor is written in a combination of C, Tcl/Tk, and Incr
Tcl/Tk. The BRL-CAD Benchmark and utility scripts are written in what
should be POSIX-compliant Bourne Shell Script. The build system uses
the CMake build tool. An initial implementation of a BRL-CAD Geometry
Server is written in PHP.
Tcl/Tk. The BRL-CAD Benchmark, build system, and utility scripts are
written in what should be POSIX-compliant Bourne Shell Script. An
initial implementation of a BRL-CAD Geometry Server is written in PHP.
With release 7.28, BRL-CAD intends to conform strictly with the 2011
ANSI/ISO standards for C and C++ language compilation
(ISO/IEC 9899:2011, i.e. C11 and ISO/IEC 14882:2011, i.e. C++11).
Support for use of necessary non-standard system facilities is
handled by build system declarations and preprocessor defines driven
by build configuration tests. The working feature set for normal
development should be widely supported C++11 features and the subset
of C11 that is also valid (and widely supported) C++11.
With release 7.0, BRL-CAD has moved forward and worked toward making
all of BRL-CAD C code conform strictly with the ANSI/ISO standard for
C language compilation (ISO/IEC 9899:1990, i.e. c89). Support for
older compilers and older K&R-based system facilities is being
migrated to build system declarations, preprocessor defines, or being
removed outright. It's okay to make modifications that assume
compiler conformance with the ANSI C standard (c89).
C++ is used as an implementation language within libraries, but there
are no public C++ APIs in use outside of OpenNURBS. For new work,
public library APIs should expose only C function calls and data
except in very specific cases (should be discussed with the
development team ahead of time to get consensus on the necessity.)
There is currently no C++ interface to the core BRL-CAD libraries.
There are a few tools and enhancements to libraries that are
implemented in C++ (the new BREP object type in librt, for example),
and C++ is used underneath quite a number of libraries, but there is
presently no public C++ API in use outside of OpenNURBS.
There is a C++ interface to the core BRL-CAD libraries called MOOSE
that is maintained in a separate repository. It is developed with
separation in order to avoid mixing C++ semantics into existing APIs
and to ensure clean separation of responsibilities and modularity.
While C++ as an implementation language of new tools and new library
interfaces is not prohibited, the mixing of C++ semantics and C++ code
(including simple // style comments) in the existing C files is not
allowed. As new interfaces are developed, new contributors become
involved, and C++ code integration becomes more prevalent, the
contributor guidelines will become reinforced with more details.
CODING STYLE & STANDARDS
@@ -507,15 +518,11 @@ system headers.
Language Compliance:
Features of C that conform to the ISO/IEC 9899:2011 C standard (C11)
and the ISO/IEC 14882:2011 C++ standard (C++11) are generally the
baseline for strict language conformance, with the caveat that
features deprecated in subsequent standards or not widely/reliably
implemented on OS/compiler platforms targeted by BRL-CAD should be
avoided. When writing in C coders should keep their code within the
subset of C shared by the C and C++ standards - while not currently
strictly enforced, full C++ only build support is a long term project
goal.
Features of C that conform to the ISO/IEC 9899-1990 C standard (C90)
are generally the baseline for strict language conformance. As
BRL-CAD used to be K&R syntax conformant, there remains an on-going
effort to ensure a full conversion to a standards compliant ISO C
implementation.
Code Conventions:
@@ -541,7 +548,7 @@ math for portability and performance reasons. When floating point
comparisons are necessary, use the NEAR_EQUAL and NEAR_ZERO macros
with a specified tolerance or the EQUAL and ZERO macros where a
tolerance is indeterminate (all the macros are available by including
vmath.h). Examples:
bn.h, part of libbn). Examples:
For known tolerances:
@@ -562,27 +569,17 @@ variables should be utilized instead of the standard C facility:
bu_malloc() instead of malloc()
bu_calloc() instead of calloc()
bu_realloc() instead of realloc()
bu_fgets() instead of fgets()
bu_free() instead of free()
bu_log() instead of printf()
bu_bomb() instead of abort()
bu_exit() instead of printf()+exit()
bu_snooze() instead of sleep(), usleep(), nanosleep()
bu_dirname() instead of dirname()
bu_getopt() instead of getopt()
bu_opterr instead of opterr
bu_optind instead of optind
bu_optopt instead of optopt
bu_optarg instead of optarg
bu_file_delete() instead of unlink(), rmdir(), and remove()
bu_path_basename() instead of basename()
bu_path_dirname() instead of dirname()
bu_path_match() instead of fnmatch()
bu_log() instead of printf()
bu_fgets() instead of fgets()
bu_sort() instead of qsort()
bu_strdup() instead of strdup()
bu_strlcat() instead of strcat(), strncat(), and strlcat()
bu_strlcpy() instead of strcpy(), strncpy(), and strlcpy()
@@ -590,6 +587,8 @@ variables should be utilized instead of the standard C facility:
bu_strcasecmp() and BU_STR_EQUIV() instead of stricmp()/strcasecmp()
bu_strncmp() instead of strncmp()
bu_strcasecmp() instead of strnicmp()/strncasecmp()
bu_file_delete() instead of unlink(), rmdir(), and remove()
bu_sort() instead of qsort()
Similarly, ANSI C functions are preferred over the BSD and POSIX
interfaces. The following functions should be used:
@@ -831,16 +830,19 @@ it better?" and add documentation accordingly.
All public library functions and most private or application functions
should be appropriately documented using Doxygen/Javadoc style
comments. This minimally means that you need to add an additional
asterisk to a comment that precedes your functions. Public functions
must be exported and imported using per-library macros that precede
public symbol declarations (e.g., BU_EXPORT int func();). Example:
comments. Without getting into the advanced details, this minimally
means that you need to add an additional asterisk to a comment that
precedes your functions:
/**
* Computes the answer to the meaning of life, the universe, and
* everything.
*/
MYLIB_EXPORT int mylib_function();
int
the_answer(void)
{
return 42;
}
TESTING & DEBUGGING
@@ -1077,7 +1079,10 @@ number follows a common convention where the three numbers represent:
{MAJOR_VERSION}.{MINOR_VERSION}.{PATCH_VERSION}
All "development" builds use an odd number for the minor version. All
"release" builds use an even number for the minor version.
"release" builds use an even number for the minor version. Patched
versions should include a release count:
{MAJOR_VERSION}.{MINOR_VERSION}.{PATCH_VERSION}[-{RELEASE_COUNT}]
The MAJOR_VERSION should only increment when it is deemed that a
significant amount of major changes have accumulated, new features
@@ -1099,13 +1104,9 @@ backwards incompatible in some manner should increment the patch
version number.
If it becomes necessary to update a posted release, use and increment
the AMEND_COUNT format outlined below. The first posted release is
implicitly the "-0" release (e.g., 7.10.2 is implicitly 7.10.2-0) with
subsequent updated releases incrementing the count (e.g., 7.10.2-1).
See the "AMENDING A RELEASE" section below for guidelines on when a
release should be amended in lieu of a new PATCH_VERSION release.
{MAJOR_VERSION}.{MINOR_VERSION}.{PATCH_VERSION}[-{AMEND_COUNT}]
the RELEASE_COUNT. The first posted release is implicitly the "-0"
release count (e.g., 7.10.2 is implicitly 7.10.2-0) with subsequent
updated releases incrementing the count (e.g., 7.10.2-1).
NAMING A SOURCE RELEASE
@@ -1199,35 +1200,33 @@ necessary convention by a binary package management system. Examples:
zip
AMENDING A RELEASE
PATCHING A RELEASE
------------------
Should it become necessary to modify a release after it has been
tagged, uploaded, and announced, a release amendment may be issued.
Releases that are neither tagged, uploaded, or announced are subject
to at-will change and re-tagging.
Amendments to source releases are expressed as a sequence of one or
more patch files that are to be applied sequentially. Patch files may
be descriptively named but must be incrementally numbered. The
uploaded release notes and/or README file(s) should instruct users
building from source to download and apply all available patch files
in order.
Should it become necessary to patch a release that has already been
posted and announced, the mechanism is to post patch files for the
source release and update the uploaded release notes README file.
Example: stop_rt_crashing-0.patch and fix_fbserv-1.patch
For binary builds, it's recommended to just "move on" and let issues
It's expected that all patch files are independent and will be applied
sequentially. They should be consistently and incrementally numbered.
Users should be instructed in the release notes README to download and
apply all available patch files.
For binary releases, it's recommended to just "move on" and let issues
become resolved in the next release unless there's a critical security
or data corruption issue involved. That said, binary releases may be
re-posted with a modified name per the convention described in VERSION
NUMBERS & COMPATIBILITY.
or significant data corruption issue involved. If it becomes
necessary to repost a release, use the RELEASE_COUNT file name
convention described in VERSION NUMBERS & COMPATIBILITY.
Example: BRL-CAD-7.12.2.dmg is superseded by BRL-CAD-7.12.2-1.dmg
Older binary releases may be moved to the hidden attic folder, though
not necessary or recommended except where critical vulnerabilities are
involved. Releases are preserved for historic record and should never
be deleted once announced.
Patched binary releases may be moved to the hidden attic folder if
critical, though not necessary or recommended. They are preserved for
historic record and should never be deleted once announced. Releases
not yet been announced may be updated within two days of being posted
without involving a patch.
MAKING A RELEASE
@@ -1264,23 +1263,19 @@ Release steps are as follows:
PREV=[[last_trunk_rev]]
echo "PREV=$PREV"
svn co https://svn.code.sf.net/p/brlcad/code/brlcad/branches/RELEASE brlcad.RELEASE
svn co svn://svn.code.sf.net/p/brlcad/code/brlcad/branches/RELEASE brlcad.RELEASE
cd brlcad.RELEASE
svn merge https://svn.code.sf.net/p/brlcad/code/brlcad/trunk@$PREV https://svn.code.sf.net/p/brlcad/code/brlcad/trunk@HEAD .
#####################################################################
# 02: Test the merge.
# NON-AUTO: Confirm versioning in include/conf/.
# BRLCAD_VERSION_AMEND may be defined during CMake for an
# amendment build.
mkdir -p .build && cd .build
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release && make
# NON-AUTO: Manually check rt, mged, and archer.
# Manually check rt, mged, and archer.
bin/rt # should report usage with correct library versions
bin/mged -c test.g "make sph sph ; draw sph ; rt ; after 1000 ; l sph" # create, view and list info about a sphere
bin/mged -c test.g "make sph sph ; draw sph ; rt" # pops up a sphere
bin/mged # displays gui, run: opendb test.g ; draw sph ; rt
bin/archer # displays gui, run: opendb test.g ; draw sph ; rt
@@ -1335,8 +1330,6 @@ Release steps are as follows:
#####################################################################
# 09: Sync RELEASE to STABLE branch:
# Update the NEWS release date for the current release to today's date
# NON-AUTO: Review the log and obtain the last merge revision
# number from comments.
svn log --stop-on-copy https://svn.code.sf.net/p/brlcad/code/brlcad/branches/STABLE | less
@@ -1408,32 +1401,32 @@ Release steps are as follows:
SFUSERNAME=`ls ~/.subversion/auth/svn.simple/* | xargs -n 1 grep -A4 sourceforge | tail -1`
echo "SFUSERNAME=$SFUSERNAME MAJOR=$MAJOR MINOR=$MINOR PATCH=$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net create
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH"
# create binary dirs (as needed)
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH"
# upload source dist and any binaries
scp brlcad-$MAJOR.$MINOR.$PATCH* "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
scp brlcad-$MAJOR.$MINOR.$PATCH* "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
# extract and upload release notes to source dir
cat ../NEWS | tr '\n' '@' | perl -p -e "s/.*?(@---[[:space:]@-]*[0-9]{4}-[0-9]{2}-[0-9]{2}[[:space:]]*Release[[:space:]]*${MAJOR}\.${MINOR}\.${PATCH}[[:space:]@-]*.*?)@---.*/\1/" | tr '@' '\n' > README-${MAJOR}-${MINOR}-${PATCH}.txt
cat ../NEWS | tr '\n' '@' | perl -pi -e "s/.*?(@---[[:space:]@-]*[0-9]{4}-[0-9]{2}-[0-9]{2}[[:space:]]*Release[[:space:]]*${MAJOR}\.${MINOR}\.${PATCH}[[:space:]@-]*.*?)@---.*/\1/" | tr '@' '\n' > README-${MAJOR}-${MINOR}-${PATCH}.txt
echo "Release notes for $MAJOR.$MINOR.$PATCH" && echo "==="
cat README-$MAJOR-$MINOR-$PATCH.txt && echo "==="
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
# NON-AUTO: Following the NAMING A BINARY RELEASE convention,
# upload any release binaries and platform-specific release notes.
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH/."
# NON-AUTO: Be sure to mark binaries as default download, then
# close shell session
@@ -1463,9 +1456,6 @@ Release steps are as follows:
Slackware maintainer
http://slackbuilds.org/result/?search=brlcad
Fedora maintainer
https://fedoraproject.org/wiki/User:Germano#Contact
#####################################################################
# 18: Announce the new release.
+116 -76
View File
@@ -1,6 +1,8 @@
The Installation Guide to BRL-CAD
=================================
Please read this document if you are interested in installing BRL-CAD.
This document covers the basics of installing BRL-CAD from either a
source or binary distribution. Please see the 'Reporting Problems'
section if you run into any trouble installing BRL-CAD.
@@ -52,32 +54,35 @@ below. The rest of this quick installation section is only relevant
to source code distributions of BRL-CAD.
For the impatient or simplistic, the following steps should compile,
test, and install an optimized BRL-CAD quickly into the
/usr/brlcad/rel-VERSION directory if CMake is already installed:
test, and install an optimized BRL-CAD quickly into the /usr/brlcad/rel-X.Y.Z
directory if CMake is installed on your system:
tar -zxvf brlcad-VERSION.tar
mkdir brlcad-VERSION/build
cd brlcad-VERSION/build
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
make -j4
make check
make install
gunzip brlcad-X.Y.Z.tar.gz
tar -xvf brlcad-X.Y.Z.tar
mkdir brlcad-build
cd brlcad-build
cmake ../brlcad-X.Y.Z -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
make
make benchmark
make regress
make install # as root, e.g. sudo make install
See the REPORTING PROBLEMS section of this document to report any
problems or the INSTALLING FROM SOURCE section for more comprehensive
If any of the listed steps fail, then something unexpected happened.
See the REPORTING PROBLEMS section of this document to report the
problem or the INSTALLING FROM SOURCE section for more comprehensive
instructions.
Once installed, add /usr/brlcad/rel-VERSION/bin to your path, and you should be
Once installed, add /usr/brlcad/rel-X.Y.Z/bin to your path, and you should be
able to run any of the 400+ applications that constitute BRL-CAD. For
example, to run the MGED solid modeler:
PATH=/usr/brlcad/rel-VERSION/bin:$PATH ; export PATH
PATH=/usr/brlcad/rel-X.Y.Z/bin:$PATH ; export PATH
mged
If you use tcsh or another C-shell based command shell, use this
instead:
set path=( /usr/brlcad/rel-VERSION/bin $path ) ; rehash
set path=( /usr/brlcad/rel-X.Y.Z/bin $path ) ; rehash
mged
@@ -123,10 +128,9 @@ always be loaded first, regardless of the presence of a "local" copy.
Mac OS X Disk Mounting Image:
Mount the .dmg and run the Installer .pkg contained therein. This
will install into /usr/brlcad/rel-X.Y.Z and will only require
confirming that your environment is set up properly (i.e. add
/usr/brlcad/rel-X.Y.Z/bin to your path) as described in the Quick
Installation section.
will install into /usr/brlcad/rel-X.Y.Z and will only require confirming that
your environment is set up properly (i.e. add /usr/brlcad/rel-X.Y.Z/bin to your
path) as described in the Quick Installation section.
INSTALLING FROM SOURCE
@@ -240,14 +244,6 @@ performance evaluation), enable BRLCAD_FLAGS_OPTIMIZATION:
-DBRLCAD_FLAGS_OPTIMIZATION=ON
Profile-guided optimization builds are possible via two-pass
compilation. Compile with this flag set, run the benchmark suite,
clean the build, and then compile again with this flag set. Supported
compilers will utilize data from the first pass to guide optimization,
typically resulting in a significant performance increase:
-DBRLCAD_PGO=ON
See the CONFIGURATION OPTIONS below for more details on all of the
possible settings.
@@ -293,31 +289,19 @@ or on operating systems set up to use sudo:
TESTING FUNCTIONALITY
---------------------
The primary build target to validate a compilation of BRL-CAD is:
make check
That runs a trio of test sets including "benchmark", "regress", and
"unit". The first set is a performance test that also validates
whether ray tracing behavior is correct:
To test BRL-CAD before installation, you can run the BRL-CAD benchmark.
The benchmark will report if the results are correct, testing a
majority of the core functionality of BRL-CAD in addition to testing
your system's performance:
make benchmark
The second test set is our regression tests that run a host of
rigorous integration tests and validate essential behavior:
Note that the benchmark target will build ONLY the pieces required for
the benchmark tests, unless a general make has already been performed.
For more testing, you can run the regression test suite:
make regress
The third set runs unit tests that validate low-level behavior in
BRL-CAD's core libraries:
make unit
Last but not least, one may simply run all available tests, though
note that some tests will intentionally fail:
make test
POST-INSTALLATION
-----------------
@@ -430,6 +414,28 @@ EXPERIMENTAL!
Aliases: ENABLE_ALL_CXX
--- ENABLE_POSIX_COMPLIANCE ---
Build with strict POSIX compliance checking. Defaults to OFF.
Causes compiler options to be set for strict compliance with the
minimum C and C++ standards acceptable according to current BRL-CAD
policy. The current minimum C standard is ??.
There is no currently defined minimum C++ standard.
Aliases: ENABLE_POSIX
--- ENABLE_STRICT_COMPILER_STANDARD_COMPLIANCE ---
Build with strict ISO C compliance checking. Defaults to OFF.
Causes C compiler options to be set for strict compliance with the
appropriate ISO C standard.
Aliases: STRICT_ISO_C
--- BRLCAD_EXTRADOCS ---
The core option that enables and disables building of BRL-CAD's
@@ -530,15 +536,36 @@ first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_ZLIB, ENABLE_LIBZ
--- BRLCAD_PNG ---
--- BRLCAD_TINYCTHREAD ---
Option for enabling and disabling compilation of the Portable Network
Graphics library provided with BRL-CAD's source distribution. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Option for enabling and disabling compilation of the tinycthread library
provided with BRL-CAD's source distribution. Default is AUTO,
responsive to the toplevel BRLCAD_BUNDLED_LIBS option and testing
first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_PNG
Aliases: ENABLE_TINYCTHREAD
--- BRLCAD_FREETYPE ---
Option for enabling and disabling compilation of the FreeType
libraries provided with BRL-CAD's source code. Default is AUTO, responsive to
the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_FREETYPE
--- BRLCAD_TERMLIB ---
Option for enabling and disabling compilation of the termlib library
provided with BRL-CAD's source distribution. Default is AUTO,
responsive to the toplevel BRLCAD_BUNDLED_LIBS option and testing
first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO. (Except when building with Visual Studio, where it is
disabled. Windows does not support the termlib API.)
Aliases: ENABLE_TERMLIB
--- BRLCAD_NETPBM ---
@@ -551,6 +578,17 @@ version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_NETPBM
--- BRLCAD_PNG ---
Option for enabling and disabling compilation of the Portable Network
Graphics library provided with BRL-CAD's source distribution. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_PNG
--- BRLCAD_UTAHRLE ---
Option for enabling and disabling compilation of the Utah Raster
@@ -638,6 +676,19 @@ BRLCAD_ENABLE_TK is OFF.
Aliases: ENABLE_TKHTML
--- BRLCAD_TKPNG ---
Option for enabling and disabling compilation of the tkpng PNG image
viewing package provided with BRL-CAD's source distribution. Default
is AUTO, auto-enabling if the BRLCAD_TCL option is set to BUNDLED and
testing first for a system version if BRLCAD_TCL is set to AUTO or
SYSTEM. If BRLCAD_TKPNG is set to BUNDLED, local copy is built even if
a system version is present. This package will be disabled if
BRLCAD_ENABLE_TK is OFF.
Aliases: ENABLE_TKPNG
--- BRLCAD_TKTABLE ---
Option for enabling and disabling compilation of the Tktable graphical
@@ -661,14 +712,14 @@ version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_OPENNURBS
--- BRLCAD_SPSR ---
--- BRLCAD_SPR ---
Option for enabling and disabling compilation of the Screened Poisson
Surface Reconstruction library provided with BRL-CAD's source code.
Default is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option
and testing first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Option for enabling and disabling compilation of the PoissonRecon library
provided with BRL-CAD's source code. Default is AUTO, responsive to
the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_SPSR
Aliases: ENABLE_SPR
--- BRLCAD_SC ---
@@ -713,26 +764,15 @@ AUTO.
Aliases: ENABLE_GDIAM
--- BRLCAD_PROJ4 ---
--- BRLCAD_BULLET ---
Option for enabling and disabling compilation of the PROJ.4 geographic
projection library provided with BRL-CAD's source code. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Option for enabling and disabling compilation of the Bullet Realtime
Physics Simulation Libraries provided with BRL-CAD's source
distribution. Default is AUTO, responsive to the toplevel
BRLCAD_BUNDLED_LIBS option and testing first for a system version
if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_PROJ4
--- BRLCAD_GDAL ---
Option for enabling and disabling compilation of the GDAL geographic
library provided with BRL-CAD's source code. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_GDAL
Aliases: ENABLE_BULLET
+13 -402
View File
@@ -10,385 +10,28 @@ descriptive text that emphasizes or further describes significant
changes made. See document footer for additional details.
----------------------------------------------------------------------
--- 2020-xx-xx Release 7.32.2 ---
--- 2016-07-XX Release 7.26.2 ---
----------------------------------------------------------------------
* added MGED stat command for reporting of object info - Cliff Yapp
* corrected examples in gdiff man page - Cliff Yapp
* fixed help message for -F option on gdiff command - Cliff Yapp
* fixed mged -c bomb attaching to graphical displays - Sean Morrison
* fixed titlebar bug opening .g with filename spaces - Sean Morrison
----------------------------------------------------------------------
--- 2020-09-14 Release 7.32.0 ---
----------------------------------------------------------------------
This major release of BRL-CAD introduces significant updates to core
library infrastructure. The update includes restructuring of nearly
all of BRL-CAD's display infrastructure in preparation for upcoming
significant GUI changes. This release also fixes over fifty of
BRL-CAD's command-line utilities so they work properly on Windows.
This is likely the last major release of BRL-CAD on Subversion
infrastructure with BRL-CAD's imminent migration to Git.
* added basic example to remrt man page - Cliff Yapp, Sean Morrison
* added new 'nburst' version of classic burst tool - Cliff Yapp
* added 'bot set' command for low level BoT manipulation - Cliff Yapp
* report semantic strings for 'bot get' mode/orientation - Cliff Yapp
* added new manual page for the libicv library - Sumagna Das
* added -size filter to MGED search command - Cliff Yapp
* upgraded Tcl/Tk from 8.5.19 to 8.6.10 - Cliff Yapp
* bundled zlib & libpng use API prefix and library suffix - Cliff Yapp
* extensive improvements to OpenCL ray trace pipeline - Rishabh Suthar
* improved rtweight density value warnings - Sean Morrison, Cliff Yapp
* added perception-based hdtv and hdr modes for pix-bw - Sean Morrison
* fixed semi-transparent DM and FB windows on Linux - Cliff Yapp
* improved rtweight manual page - Sean Morrison
* added line reporting TCP listening port to remrt output - Cliff Yapp
* added help options support (-h,-?) to asc2dsp and g2asc - Cliff Yapp
* fixed crash when drawing a VOL with missing data - Cliff Yapp
* facetall.sh script is replaced by MGED facetize command - Cliff Yapp
* dynamic LIBGED command loading in MGED & Archer - Cliff Yapp
* removed MGED "Display Manager" switching menu options - Cliff Yapp
* dynamic LIBDM display manager loading in MGED & Archer - Cliff Yapp
* fixed 'idents' crash when running in a read-only dir - Sean Morrison
* fixed fb tools w/ redirected files and cv on Windows - Sean Morrison
* expanded 'bo' command docs with a DSP input example - Sean Morrison
* fixed 'in' making joint, superell, & script objects - Sean Morrison
* Creo converter always writes out CREO_NAME attribute - Sean Morrison
* improved gdiff -F filtering option behavior - Cliff Yapp
* improved gdiff command verbosity reporting options - Cliff Yapp
* improved Combination Editor button behaviors in MGED - Sean Morrison
* added 'asc' geometry import and export support to gcv - Cliff Yapp
* consistent usage taxonomy for ident-related commands - Sean Morrison
* added units label to the Archer in-scene scale graphic - Cliff Yapp
* added framebuffer capture option to screengrab command - Cliff Yapp
* added framebuffer writing option to overlay command - Cliff Yapp
* added tree search option to 'whichid' and 'whichair' - Cliff Yapp
* changed 'whichid' and 'whichair' to print ranges of unused IDs
- Nick Reed, Cliff Yapp
* improved output path sorting of search command - Cliff Yapp
* added "bot extrude" command for making ARB6s from bots - Cliff Yapp
* added 3dm-g failure message about supported versions - Cliff Yapp
* fixed bw-png writing corrupted png files on Windows - Sean Morrison
* added MGED 'dm type' subcommand for reporting DM type - Cliff Yapp
* improved vdeck input support for Windows text files - Sean Morrison
* fixed MGED 'plot' & 'brep plot' commands on Windows - Sean Morrison
* fixed numerous image utilities reading binary input files on Windows
- Sean Morrison, Cliff Yapp
----------------------------------------------------------------------
--- 2020-07-24 Release 7.30.10 ---
----------------------------------------------------------------------
* added 3dm-g failure message about supported versions - Cliff Yapp
* fixed MGED "in" command support for datums - Sean Morrison
* fixed bw-png writing corrupted png files on Windows - Sean Morrison
----------------------------------------------------------------------
--- 2020-05-08 Release 7.30.8 ---
----------------------------------------------------------------------
* added gchecker tool to generate MGED overlap inputs - Cliff Yapp
* improved behavior of MGED overlap checker GUI - Nick Reed
* fixed startup dimensions of overlap checker window - Nick Reed
* fixed rtedge line drawing color when using -W flag - Cliff Yapp
* added -F option to lint cmd to test specifc solid types - Cliff Yapp
* added support to MGED for zooming with mouse wheel - Cliff Yapp
* fixed solid editing wireframe drawing in MGED - Nick Reed
* added .r suffixes to region names in 3dm-g conversion - Cliff Yapp
----------------------------------------------------------------------
--- 2020-03-19 Release 7.30.6 ---
----------------------------------------------------------------------
* fixed transparent drawing in MGED - Nick Reed
* fixed solid NURBS brep intersection testing - Cliff Yapp
* removed extra blank line after commands in MGED GUI - Sean Morrison
* minor improvement to NURBS ray tracing performance - Sean Morrison
* added "plate" object type filter to search command - Cliff Yapp
* fixed latent logging bug during facetize on Windows - Bob Parker
* fixed bug closing rt framebuffer windows on Windows - Sean Morrison
* added EBM support for reading from database objects - Jeffrey Liu
----------------------------------------------------------------------
--- 2019-12-05 Release 7.30.4 ---
----------------------------------------------------------------------
* enhanced attr list command to support reporting values - Cliff Yapp
* updated FAA Generic Twin example FASTGEN model - Cliff Yapp
* fixed handling of duplicate FASTGEN object names - Cliff Yapp
* update gqa/rtweight man pages to reference mater -d - Cliff Yapp
* overlay command accepts file patterns (e.g., *.plot) - Cliff Yapp
* changed mged escape key binding to reset mouse mode - Sean Morrison
* removed default xXyYzZ0 rate rotation key bindings - Sean Morrison
* improved tessellation of nearly coplanar surfaces - John Anderson
* fixed annotations display on Windows - Daniel Roßberg, Ali Haydar
* fixed rtedge and rtwizard occlusion object edge bug - Sean Morrison
* rt* tools no longer force outputs to be read-only - Sean Morrison
* fixed bug listing annotations with short label strings - Ali Haydar
* improved support for label placement in annotations - Ali Haydar
* fixed bug in annotation object bounding box calculation - Ali Haydar
* fixed an annotation leader line bug affecting display - Ali Haydar
* fixed 'burst' crash when run without options - Sean Morrison
* changed rtweight to not truncate long pathnames - Sean Morrison
* added new ball bearing example geometry model - Sean Morrison
* added new manual page for the clone command - Sean Morrison
----------------------------------------------------------------------
--- 2019-04-03 Release 7.30.2 ---
----------------------------------------------------------------------
* fixed memory leak during obj-g and gcv import - Bojian Wu
* added new manual page for the clone command - Sean Morrison
* fixed crash calculating dsp bounding boxes - Sean Morrison
* fixed Windows temporary file removal for MGED commands (red, etc.)
- Cliff Yapp
* fixed librt NURBS cache issues under high load conditions
- Sean Morrison, Cliff Yapp
* added a copy subcommand to MGED's attr command - Cliff Yapp
* fixed a locking condition in MGED's rtcheck command - Cliff Yapp
* added support for >=< prefixes for mater -d get options - Cliff Yapp
* fixed brlman lookup location of html manual pages - Cliff Yapp
* fixed rt -t top-to-bottom parallel rendering option - Sean Morrison
* added a 'flip' normals command to MGED's brep command - Cliff Yapp
* added rtweight support for in-.g density information - Cliff Yapp
* improved usability of vol primitives w/ missing data - Sean Morrison
----------------------------------------------------------------------
--- 2019-02-25 Release 7.30.0 ---
----------------------------------------------------------------------
This major release of BRL-CAD is the first release requiring
compiler support for the C++11 language standard when building.
(This change is not user visible, but will be significant to those
using BRL-CAD in their own software development efforts.)
This release introduces a new "-d" option to the mater command,
supporting direct embedding of .density file information in a
.g database for use by commands such as gqa and rtweight.
Also present in this release are a fix for commands that work with
multiple .g files and support for raytracing MGED scenes with large
numbers of active objects.
A number of commands and tools previously listed as deprecated are
removed in this release, including in particular MGED commands
specific to MUVES.
* added rtweight -d option for specifying density file - Cliff Yapp
* added material density management to "mater" command - Cliff Yapp
* use full paths for OBJ objects in "bot dump" command - Cliff Yapp
* added -v high precision option to MGED 'center' command - Cliff Yapp
* fixed crash when using dbconcat and dup together in MGED
- Cliff Yapp, Sean Morrison
* renamed MGED "ps" command to "postscript" - Cliff Yapp
* removed MGED commands em, e_muves, l_muves, lm, read_muves, t_muves
- Cliff Yapp
* removed deprecated irprep tools - Cliff Yapp
* removed deprecated fbed and pp-fb framebuffer tools - Cliff Yapp
* fixed rt support for specifying large object lists - Cliff Yapp
* new 'gex' tool for low-level .g file exploration - Tom Browder
* added support for command-line editing of metaballs - Sean Morrison
* added manual page for the 'get' command - Cliff Yapp
* improved speed of "bot chull" convex hull generation - Cliff Yapp
----------------------------------------------------------------------
--- 2018-11-30 Release 7.28.2 ---
----------------------------------------------------------------------
This is a patch release, applying several logic fixes and build system
corrections.
* fixed incorrect handling of NURBS near-miss points near edges
- Cliff Yapp, Keith Bowman
* fixed support for large files on 64-bit Windows - Cliff Yapp
* fixed analyze command calculation of BoT volume - Keith Bowman
* fixed problem merging .g files containing dsp data - Cliff Yapp
* fixed infinite loop in OverlapTools GUI - Cliff Yapp
----------------------------------------------------------------------
--- 2018-10-01 Release 7.28.0 ---
----------------------------------------------------------------------
This major release of BRL-CAD incorporates a new feature for caching
of raytrace acceleration structures used when working with explicit
boundary representation (BREP) Non-uniform Rational Basis Spline
(NURBS) solids. This will result in significant improvements to
run times when repeatedly raytracing BREP solids.
Support for terrain import has been significantly expanded with the
addition of a new Geospatial Data Abstraction Library (GDAL) based
importer to the gcv conversion tool. GDAL brings with it support for
dozens of different terrain data formats.
Also new in this release are a greatly improved graphical geometry
overlap resolving tool and support in the MGED search command for
an "exec" option which will allow users to execute MGED commands
on search results.
The MGED facetize command for generating polygonal geometry from
BRL-CAD objects has received significant attention, including the
incorporation of a "per-region" conversion mode, new conversion
methodologies and usability enhancements.
* fixed crash mixing flat and full path MGED searches - Cliff Yapp
* improved MGED ls command's help message - Cliff Yapp
* added -exec option to MGED's search command - Peter Pronai
* added new MGED 'lint' command for finding bad geometry - Cliff Yapp
* improved lingering framebuffer CPU utilization - Sean Morrison
* updated 'draw -S' option to work with shaded objects - Bob Parker
* fixed numerous fb* command bugs w/ X11 framebuffers - Sean Morrison
* extended fbpoint support to more varied framebuffers - Sean Morrison
* improved gqa plot file handling and documentation - Sean Morrison
* improved rt usage reporting with categorized options - Sean Morrison
* removed rt -f framerate option for animating shaders - Sean Morrison
* removed "pixd" support: rt -d option and pixdsplit - Sean Morrison
* fixed fbserv timeout errors on some BSD platforms - Cezar Elnazli
* fixed rtcheck bug handling reversed overlap pairs - Saran Narayan
* new workflow GUI for detecting and fixing geometry overlap errors
- Sean Morrison, Nick Reed, Saran Narayan
* fixed gqa printing wrong grid size on no overlaps - Saran Narayan
* fixed pix-png creating corrupt PNG files on Windows - Sean Morrison
* added "check overlaps" menu option to Archer - Saran Narayan
* improved 'idents' command portability - Daniel Ramirez, Cliff Yapp
* changed remrt/rtsrv to no longer report overlaps - Sean Morrison
* improved GUI of MGED's Overlap Tool - Saran Narayan
* fixed geopmetry directory building bug in remrt/rtsrv - Sean Morrison
* fixed gcv problem with full paths on Windows - Cliff Yapp
* removed precision limitation in NIRT input parsing - Cliff Yapp
* added new example geometry models: chess and die pieces - Jeff Sieu
* new 'openid' command for listing available region IDs - Nick Reed
* improved triangle mesh error detection for "bot check" command
- Nick Reed, Cliff Yapp, Jon Engbert
* fixed graphical mode initial page loading in brlman - Cliff Yapp
* added gcv import support for 20+ terrain formats - Cliff Yapp
* added 'bot_dump' command to MGED - Nick Reed
* ported MGED 'screengrab' command to Windows - Nick Reed
* removed spectral tracing: libmultispectral & rttherm - Cliff Yapp
* sped up raytracing by 10% - Cezar Elnazli
----------------------------------------------------------------------
--- 2017-09-22 Release 7.26.4 ---
----------------------------------------------------------------------
This is a patch release, primary focused on updates to the build
system logic.
* upgraded libgdiam to version 1.0.3 - Cliff Yapp
* fixed MGED bindings behavior for c, A, P, and S chars - Bob Parker
* fixed gdiff usage statement - Sean Morrison
* removed anim.txt, sun.txt, tube.txt and movie.txt - Cliff Yapp
----------------------------------------------------------------------
--- 2017-06-10 Release 7.26.2 ---
----------------------------------------------------------------------
Among a variety of bugs fixed, the patch corrects a critical error in
BoT triangle mesh ray tracing. For improved performance, it also
changes the default frame buffer display behavior to fully buffer ray
tracing images instead of displaying them incrementally. A variety of
MGED commands see improvements too with 'ls' now supporting listing
objects by their on-disk size and the 'simulate' command applying
forces on objects (e.g., gravity) with greater ease. Not yet
complete, there is a new interface being developed for resolving
overlaps more efficiently, currently under development and usability
testing with select users. Lastly, a number of dependencies were
upgraded, including Tcl/Tk, in order to patch security vulnerabilities
and address portability issues.
* upgraded Tcl/Tk from 8.5.9 to 8.5.19 - Sean Morrison
* fixed background color setting in MGED - Cliff Yapp
* upgraded libpng to version 1.6.29 - Cliff Yapp
* upgraded zlib to version 1.2.11 - Cliff Yapp
* reduced 'shade_inputs' flipped normal reporting - Sean Morrison
* numerous 'simulate' command enhancements and fixes - Jon Engbert
* fixed rtweight .density file loading on Windows - Cliff Yapp
* fixed dsp handling of invalid uniform binary objects - Sean Morrison
* fixed brlman problem with viewing benchmark man page - Cliff Yapp
* fixed name of dbfind man page (was listed as 'find') - Cliff Yapp
* added -H option to ls for human readable size reporting - Cliff Yapp
* added -S option to ls command for size based sorting - Cliff Yapp
* improved 'loadview' command view script handling - Sean Morrison
* fixed TIE raytracing for zero thickness BoTs - Cliff Yapp
* added Wavefront OBJ File->Open GUI support in Archer - Cliff Yapp
* fixed attr show error printing large attribute values - Cliff Yapp
* fixed rt support for lights created prior to rel 6.0 - Sean Morrison
* fixed infinite loop bug in when using shadow lights - Sean Morrison
* removed man pages: erase_all, export_body, vrmgr, dall - Cliff Yapp
* fixed MGED 'c' command crash when run with bad arguments - Nick Reed
* added manual pages for the 'brlman' and 'man' commands - Cliff Yapp
* improved gdiff default grid spacing and tolerancing - Cliff Yapp
* updated brlman to support browsing all page categories - Cliff Yapp
* added support for .rtwizardrc configuration file - Cliff Yapp
* renamed MGED gdiff grid spacing -t option to -g - Cliff Yapp
* updated MGED gdiff default drawing options to -l -r - Cliff Yapp
* removed MGED gdiff -R option, now default behavior - Cliff Yapp
* replaced obsolete 'g_diff' manual page with 'gdiff' - Cliff Yapp
* improved 'keep' error message when file is not created - Cliff Yapp
* improved rtwizard window sizing and "RtWizard" titling - Cliff Yapp
* brep command attaches .brep suffix instead of _brep - Sean Morrison
* changed ogl & wgl framebuffer delayed write behavior - Sean Morrison
* upgraded freetype to version 2.6.5 - Cliff Yapp
* fix rtedge foreground/background color options - Jon Engbert
* support rt -C colors specified as 0-255 or 0.0-1.0 - Jon Engbert
* fixed xpush bug leaving stray top-level objects - Nick Reed
* removed MGED wrapper 'mged.bat' batch script on Windows - Cliff Yapp
* upgraded zlib to version 1.2.8 - Cliff Yapp
----------------------------------------------------------------------
--- 2016-08-08 Release 7.26.0 ---
--- 2016-06-XX 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.
This major release update of BRL-CAD culminates several years of
development efforts to provide robust boundary representation (BREP)
NURBS import and ray tracing support. Our NURBS capability gets us a
step closer to full hybrid representation modeling, supporting
seamless transitioning and mixing of boundary representation geometry
(e.g., NURBS or polygonal meshes) with implicit representation
geometry (e.g., primitives with CSG).
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
* mass-deprecation of 121 command-line utilities - BRL-CAD Developers
* 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
@@ -397,7 +40,7 @@ performance ray tracing pipeline.
* 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 issue preserving color/shader info with 3dm-g - Jon Engbert
* 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
@@ -405,16 +48,6 @@ performance ray tracing pipeline.
* 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
@@ -432,7 +65,6 @@ performance ray tracing pipeline.
* 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
@@ -444,7 +76,6 @@ performance ray tracing pipeline.
* 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
@@ -456,19 +87,15 @@ performance ray tracing pipeline.
* 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
* improved help option consistency across numerous tools - 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
@@ -477,13 +104,11 @@ performance ray tracing pipeline.
* updated libregex to apply a fix for CVE-2015-2305 - Cliff Yapp
* upgraded libpng to version 1.6.20 - Cliff Yapp
* added command window option for pasting tree view paths - Nick Reed
* improved 'bb' command digits and units output - Keith Bowman
* improved robustness of bb command oriented box option - Peter Amidon
* added example NURBS B-Rep geometry files from NIST - Cliff Yapp
* removed "high resolution" options from all commands - Carl Moore
* improved performance of archer loading large BoT models - Nick Reed
* added evaluated shaded drawing preference mode and menu - Nick Reed
* fixed .mgedrc creation corruption with closed database - Cliff Yapp
* extensive improvements to NURBS Boolean evaluation - Nick Reed
* added 'bot chull' for creating convex hull envelopes - Cliff Yapp
* new manual page for the g-voxel exporter - Mandarj
@@ -504,15 +129,12 @@ performance ray tracing pipeline.
* 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
@@ -530,33 +152,22 @@ performance ray tracing pipeline.
* 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
----------------------------------------------------------------------
+26 -12
View File
@@ -1,5 +1,5 @@
BRL-CAD
Release 7.32.2
Release 7.26.2
http://brlcad.org/
BRL-CAD is a powerful cross-platform open source combinatorial
@@ -31,7 +31,7 @@ TABLE OF CONTENTS
GETTING STARTED
---------------
----------------
This README file exists only to provide you a brief roadmap to the
contents of the BRL-CAD distribution.
@@ -69,20 +69,34 @@ contact one of the BRL-CAD developers.
COMPILE AND INSTALL
-------------------
In order to compile and install BRL-CAD from a source distribution,
the CMake ( http://www.cmake.org ) configuration tool is requird.
See the INSTALL file for details on configuring, compiling, and
installing BRL-CAD. In order to compile and install BRL-CAD from a
source distribution, the build tool CMake is required (minimum version
currently required is 2.8.4) - see the website at http://www.cmake.org
for source and binary installers. CMake is also available in many
Linux and *BSD distributions.
The following steps should result in a successful install:
Once CMake is installed, the following steps may be taken for a full
default install (starting with a source tarball):
tar -xvzf brlcad-VERSION.tar.gz
mkdir brlcad-VERSION/build
cd brlcad-VERSION/build
cmake .. -DBRLCAD_ENABLE_STRICT=OFF -DCMAKE_BUILD_TYPE=Release
make -j4
tar -xvzf brlcad-X.Y.Z.tar.gz
mkdir brlcad-build
cd brlcad-build
cmake ../brlcad-X.Y.Z
make
make install
See the INSTALL file for explanation of the various configuration
options available when building BRL-CAD.
where "X.Y.Z" is the version number of BRL-CAD. For those who prefer
a curses interface, substitute ccmake for cmake above. If the graphical
interface available from CMake is installed cmake-gui may be
substituted for cmake. These interfaces will display the various
configuration options available when building BRL-CAD, or the options
may be set directly via command line -D options.
The configure wrapper script may be substituted for cmake in the above
steps for a more autotools-like configuration experience.
Users on multiprocessor systems will be able to speed up their builds
by passing the -j option to make (e.g. make -j4, assuming GNU make).
Once the build completes and assuming you have proper filesystem
permissions, you should be able to begin the installation by running
+430 -689
View File
File diff suppressed because it is too large Load Diff
+14 -36
View File
@@ -2,82 +2,60 @@ add_subdirectory(ref)
include_directories(${BU_INCLUDE_DIRS})
add_definitions(-DCONSOLE)
add_definitions(
-DHAVE_CONFIG_H
-DBRLCADBUILD
-DCONSOLE
)
BRLCAD_ADDEXEC(pixcmp pixcmp.c libbu)
set(BARK_SOURCES
benchmark.c
compute.c
run.c
clean.c
)
BRLCAD_ADDEXEC(bark "${BARK_SOURCES}" libbu NO_STRICT NO_INSTALL TEST_USESDATA)
configure_file(run.sh "${CMAKE_CURRENT_BINARY_DIR}/benchmark" COPYONLY)
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/benchmark" DESTINATION ${BIN_DIR})
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/benchmark-${CMAKE_CFG_INTDIR}-done
COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/run.sh $<TARGET_FILE_DIR:bark>/benchmark
COMMAND "${CMAKE_COMMAND}" -E touch ${CMAKE_CURRENT_BINARY_DIR}/benchmark-${CMAKE_CFG_INTDIR}-done
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/run.sh
)
add_custom_target(benchmark_cp ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/benchmark-${CMAKE_CFG_INTDIR}-done)
set_target_properties(benchmark_cp PROPERTIES FOLDER "Benchmark")
if(CMAKE_CONFIGURATION_TYPES)
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER "${CFG_TYPE}" CFG_TYPE_UPPER)
DISTCLEAN(${CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}}/${BIN_DIR}/benchmark)
configure_file(run.sh ${CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}}/bin/benchmark COPYONLY)
endforeach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
else(CMAKE_CONFIGURATION_TYPES)
DISTCLEAN(${CMAKE_BINARY_DIR}/${BIN_DIR}/benchmark)
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(
CMakeLists.txt
lgt.sh
run.sh
try.sh
viewdiff.sh
)
CMAKEFILES(lgt.sh run.sh try.sh viewdiff.sh)
if(SH_EXEC AND TARGET m35.g)
if(SH_EXEC)
# CTest enabled short run of the benchmark suite
add_test(NAME benchmark COMMAND ${SH_EXEC} "$<TARGET_FILE_DIR:bark>/benchmark" run TIMEFRAME=1)
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 benchmark_cp
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)
set_target_properties(benchmark-check PROPERTIES FOLDER "Benchmark")
if(TARGET check)
add_dependencies(check benchmark-check)
endif(TARGET check)
# Full run of the benchmark suite
add_custom_target(benchmark
COMMAND ${SH_EXEC} $<TARGET_FILE_DIR:bark>/benchmark run
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 benchmark_cp
DEPENDS rt pixcmp BENCHMARK_PIX_cp PIX_LOG_cp
)
add_dependencies(benchmark bldg391.g m35.g moss.g sphflake.g star.g world.g)
set_target_properties(benchmark PROPERTIES FOLDER "Benchmark")
# benchmark cleanup targets
add_custom_target(benchmark-clean
${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clean
)
set_target_properties(benchmark-clean PROPERTIES FOLDER "Benchmark")
add_custom_target(benchmark-clobber
${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clobber
)
set_target_properties(benchmark-clobber PROPERTIES FOLDER "Benchmark")
endif(SH_EXEC AND TARGET m35.g)
endif(SH_EXEC)
# Local Variables:
# tab-width: 8
-946
View File
@@ -1,946 +0,0 @@
/* B E N C H M A R K . C
* BRL-CAD
*
* Copyright (c) 2011-2020 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
*
* 3. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/** @file benchmark.c
*
* This is the BRL-CAD Benchmark.
*
* The benchmark suite will test the performance of a system by
* iteratively rendering several well-known datasets into 512x512
* images where performance metrics are documented and fairly well
* understood. The local machine's performance is compared to the
* base system (called VGR) and a numeric "VGR" multiplier of
* performance is computed. This number is a simplified metric from
* which one may qualitatively compare cpu and cache performance,
* versions of BRL-CAD, and different compiler characteristics.
*
*/
#include "common.h"
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <sys/stat.h>
/* TODO - fall back on https://github.com/sandsmark/winuname for Windows? */
#ifdef HAVE_SYS_UTSNAME_H
# include <sys/utsname.h>
#endif
#include "bio.h"
#include "bu.h"
/* TODO: !!! probably will need variants of these */
int bu_exec(const char *program, void *data, struct bu_vls *out, struct bu_vls *err) {if (!program || !out || !err || !data) return 1; return 0;}
int bu_grep(const char *pattern, const char *input, int(*callback)(const char *line, void *data), void *data) {if (!pattern || !input || !data) return 1; if (!callback) bu_log("TODO: need default callback!!!\n"); return 0;}
int bu_file_glob(const char *pattern, char **paths) {if (!pattern || !paths) return 1; return 0;}
char *format_elapsed(double elapsed) {if (elapsed > 0) return "0 1 2"; return "-0 -1 -2";}
int perf(const struct bu_vls *vp, const char *items, const char *args[]) {if (!vp || !items || !args) return -1; return 0;}
double calculate_vgr(const struct bu_vls *summary) {if (!summary) return -0.0; return 0.0;}
extern int bench(const char *cmd);
/**
* this routine writes the provided argument(s) to a log file as well
* as echoing them to stdout if we're not in quiet mode.
*/
static void
record(const char *fmt, ...)
{
struct bu_vls str = BU_VLS_INIT_ZERO;
va_list ap;
const char *LOGFILE = getenv("LOGFILE");
const char *QUIET = getenv("QUIET");
if (!fmt) {
return;
}
va_start(ap, fmt);
bu_vls_vprintf(&str, fmt, ap);
va_end(ap);
if (!BU_STR_EQUAL(LOGFILE, "")) {
FILE *fp = fopen(LOGFILE, "a");
fprintf(fp, "%s", bu_vls_addr(&str));
}
if (bu_str_false(QUIET)) {
bu_log("%s", bu_vls_addr(&str));
}
bu_vls_free(&str);
}
static void
display(const char *fmt, ...)
{
struct bu_vls str = BU_VLS_INIT_ZERO;
va_list ap;
if (!fmt) {
return;
}
va_start(ap, fmt);
bu_vls_vprintf(&str, fmt, ap);
va_end(ap);
bu_log("%s", bu_vls_cstr(&str));
bu_vls_free(&str);
}
static void
sink(const char *fmt, ...)
{
if (!fmt) {
return;
}
}
/************************
* search for resources *
************************/
typedef enum {
executable=0x1,
file=0x2,
directory=0x4,
script=0x8
} look_for_type_t;
#define TYPE2STR(_t) \
((_t) == executable) ? "executable" : \
((_t) == file) ? "file" : \
((_t) == directory) ? "directory" : \
((_t) == script) ? "script" : \
"unknown"
static void
look_for(void (*verbose)(const char *, ...), look_for_type_t type, const char *label, const char *var, const char*paths[])
{
char *val;
/* utility function to search for a certain filesystem object in a
* list of paths.
*/
if (!var || !paths) {
return;
}
if (!verbose) {
verbose = sink;
}
verbose("Looking for %s\n", label);
/* get the value of the variable */
val = getenv(var);
if (val && (strlen(val) > 0)) {
if (label) {
verbose("...using %s from %s variable setting\n", val, var);
}
} else {
while (paths && *paths) {
int failed=0;
switch (type) {
default:
case directory:
/* should work without read bit */
if (!bu_file_directory(*paths)) {
failed=1;
}
/* fall through */
case executable:
case script:
if (!bu_file_executable(*paths)) {
failed=1;
}
break;
case file:
if (!bu_file_exists(*paths, NULL)) {
failed=1;
}
break;
}
if (!failed) {
verbose("...found %s %s\n", TYPE2STR(type), *paths);
bu_setenv(var, *paths, 1);
break;
}
paths++;
}
}
}
static void
set_if_unset(void (*echo)(const char *, ...), void (*verbose)(const char *, ...), const char *var, const char *val)
{
const char *setval = getenv(var);
if (!var || !val) {
return;
}
if (!echo) {
echo = sink;
}
if (!verbose) {
verbose = sink;
}
if (!setval || (strlen(setval) == 0)) {
verbose("%s=\"%s\"\n", var, val);
bu_setenv(var, val, 1);
}
setval = getenv(var);
echo("Using [%s] for %s\n", setval, var);
}
/* callback to bu_grep() */
static int
stashline(const char *line, void *data)
{
struct bu_vls *vls = (struct bu_vls *)data;
BU_CK_VLS(vls);
bu_vls_printf(vls, "%s\n", line);
return 0;
}
int
main(int ac, char *av[])
{
int arg;
struct bu_vls rtargs = BU_VLS_INIT_ZERO;
struct bu_vls str = BU_VLS_INIT_ZERO;
const char *RT = NULL;
const char *DB = NULL;
const char *PIX = NULL;
const char *LOG = NULL;
const char *CMP = NULL;
const char *ELP = NULL;
char root[MAXPATHLEN] = {0};
char db[MAXPATHLEN] = {0};
char pix[MAXPATHLEN] = {0};
char thisp[MAXPATHLEN] = {0};
char *argv[MAXPATHLEN] = {NULL};
struct bu_vls vp = BU_VLS_INIT_ZERO;
long MAXTIME = 0;
long TIMEFRAME = 0;
int64_t start = 0;
int ret = 0;
void (*verbose_echo)(const char *, ...) = sink;
void (*echo)(const char *, ...) = record;
bu_setprogname(av[0]);
/* process the argument list for commands */
for (arg=1; arg<ac; arg++) {
if (BU_STR_EQUAL(av[arg], "clean")) {
bu_setenv("CLEAN", "1", 1);
continue;
}
if (BU_STR_EQUAL(av[arg], "clobber")) {
bu_setenv("CLEAN", "1", 1);
bu_setenv("CLOBBER", "1", 1);
continue;
}
if (BU_STR_EQUAL(av[arg], "h")) {
bu_setenv("HELP", "1", 1);
continue;
}
if (BU_STR_EQUAL(av[arg], "help")) {
bu_setenv("HELP", "1", 1);
continue;
}
if (bu_strncasecmp(av[arg], "instruct", 8)) {
bu_setenv("INSTRUCTIONS", "1", 1);
continue;
}
if (BU_STR_EQUAL(av[arg], "start")) {
continue;
}
if (BU_STR_EQUAL(av[arg], "quiet")) {
bu_setenv("QUIET", "1", 1);
continue;
}
if (BU_STR_EQUAL(av[arg], "verbose")) {
bu_setenv("VERBOSE", "1", 1);
continue;
}
if (BU_STR_EQUAL(av[arg], "run")) {
bu_setenv("RUN", "1", 1);
continue;
}
if (strchr(av[arg], '=')) {
/* TODO: !!! make sure this still works */
char *var = bu_strdup(av[arg]);
char *val = strtok(var, "=");
if (var && val) {
bu_setenv(var, val, 1);
}
bu_free(var, "strdup av[arg]");
continue;
}
bu_log("WARNING: Passing unknown option [%s] to RT\n", av[arg]);
bu_vls_printf(&rtargs, " %s", av[arg]);
}
/***
* handle help before main processing
***/
if (bu_str_true(getenv("HELP"))) {
bu_log("Usage: %s [command(s)] [OPTION=value] [RT_OPTIONS]\n", av[0]);
bu_log("\n");
bu_log("Available commands:\n");
bu_log(" clean\n");
bu_log(" clobber\n");
bu_log(" help (this is what you are reading right now)\n");
bu_log(" instructions\n");
bu_log(" quiet\n");
bu_log(" verbose\n");
bu_log(" run (this is probably what you want)\n");
bu_log("\n");
bu_log("Available options:\n");
bu_log(" RT=/path/to/rt_binary (e.g., rt)\n");
bu_log(" DB=/path/to/reference/geometry (e.g. ../db)\n");
bu_log(" PIX=/path/to/reference/images (e.g., ../pix)\n");
bu_log(" LOG=/path/to/reference/logs (e.g., ../pix)\n");
bu_log(" CMP=/path/to/pixcmp_tool (e.g., pixcmp)\n");
bu_log(" ELP=/path/to/time_tool (e.g., elapsed.sh)\n");
bu_log(" TIMEFRAME=#seconds (default 32)\n");
bu_log(" MAXTIME=#seconds (default 300)\n");
bu_log(" DEVIATION=%%deviation (default 3)\n");
bu_log(" AVERAGE=#frames (default 3)\n");
bu_log("\n");
bu_log("Available RT options:\n");
bu_log(" -P# (e.g., -P1 to force single CPU)\n");
bu_log(" See the 'rt' manpage for additional options\n");
bu_log("\n");
bu_log("The BRL-CAD Benchmark tests the overall performance of a system\n");
bu_log("compared to a stable well-known baseline. The Benchmark calculates a\n");
bu_log("figure-of-merit for this system that may be directly compared to other\n");
bu_log("Benchmark runs on other system configurations.\n");
bu_log("\n");
bu_log("BRL-CAD is a powerful cross-platform open source solid modeling system.\n");
bu_log("For more information about BRL-CAD, see http://brlcad.org\n");
bu_log("\n");
bu_log("Run '%s instructions' or see the manpage for additional information.\n", av[0]);
bu_exit(1, NULL);
}
/***
* handle instructions before main processing
***/
if (bu_str_true(getenv("INSTRUCTIONS"))) {
bu_log("\n");
bu_log("This program runs the BRL-CAD Benchmark. The benchmark suite will\n");
bu_log("test the performance of a system by iteratively rendering several\n");
bu_log("well-known datasets into 512x512 images where performance metrics are\n");
bu_log("documented and fairly well understood. The local machine's\n");
bu_log("performance is compared to the base system (called VGR) and a numeric\n");
bu_log("\"VGR\" mulitplier of performance is computed. This number is a\n");
bu_log("simplified metric from which one may qualitatively compare cpu and\n");
bu_log("cache performance, versions of BRL-CAD, and different compiler\n");
bu_log("characteristics.\n");
bu_log("\n");
bu_log("The suite is intended to be run from a source distribution of BRL-CAD\n");
bu_log("after the package has been compiled either directly or via a make\n");
bu_log("build system target. There are, however, several environment\n");
bu_log("variables that will modify how the BRL-CAD benchmark behaves so that\n");
bu_log("it may be run in a stand-alone environment:\n");
bu_log("\n");
bu_log(" RT - the rt binary (e.g. ../src/rt/rt or /usr/brlcad/bin/rt)\n");
bu_log(" DB - the directory containing the reference geometry (e.g. ../db)\n");
bu_log(" PIX - the directory containing the reference images (e.g. ../pix)\n");
bu_log(" LOG - the directory containing the reference logs (e.g. ../pix)\n");
bu_log(" CMP - the name of a pixcmp tool (e.g. ./pixcmp or cmp)\n");
bu_log(" ELP - the name of an elapsed time tool (e.g. ../sh/elapsed.sh)\n");
bu_log(" TIMEFRAME - the minimum number of seconds each trace needs to take\n");
bu_log(" MAXTIME - the maximum number of seconds to spend on any test\n");
bu_log(" DEVIATION - the minimum sufficient %% deviation from the average\n");
bu_log(" AVERAGE - how many frames to average together\n");
bu_log(" VERBOSE - turn on extra debug output for testing/development\n");
bu_log(" QUIET - turn off all printing output (writes results to summary)\n");
bu_log(" INSTRUCTIONS - display detailed instructions\n");
bu_log(" RUN - start a benchmark analysis\n");
bu_log("\n");
bu_log("The TIMEFRAME, MAXTIME, DEVIATION, and AVERAGE options control how the\n");
bu_log("benchmark will proceed including how long it should take. Each\n");
bu_log("individual benchmark run will consume at least a minimum TIMEFRAME of\n");
bu_log("wallclock time so that the results can stabilize. After consuming at\n");
bu_log("least the minimum TIMEFRAME, additional frames may be computed until\n");
bu_log("the standard deviation from the last AVERAGE count of frames is below\n");
bu_log("the specified DEVIATION. When a test is run and it completes in less\n");
bu_log("than TIMEFRAME, the raytrace is restarted using double the number of\n");
bu_log("rays from the previous run. If the machine is fast enough, the\n");
bu_log("benchmark may accelerate the number or rays being fired. These\n");
bu_log("additional rays are hypersampled but without any jitter, so it's\n");
bu_log("effectively performing a multiplier amount of work over the initial\n");
bu_log("frame.\n");
bu_log("\n");
bu_log("Plese send your BRL-CAD Benchmark results to the developers along with\n");
bu_log("detailed system information to <devs@brlcad.org>. Include at least:\n");
bu_log("\n");
bu_log(" 0) Compiler name and version (e.g. gcc --version)\n");
bu_log(" 1) All generated log files (i.e. *.log* after benchmark completes)\n");
bu_log(" 2) Anything else you think might be relevant to performance\n");
bu_log("\n");
bu_log("The manual page has even more information and specific usage examples.\n");
bu_log("Run 'brlman benchmark'.\n");
bu_log("\n");
bu_exit(0, NULL);
}
/***
* handle clean/clobber before main processing
***/
if (bu_str_true(getenv("CLEAN"))) {
size_t i;
size_t cnt;
size_t num;
char cwd[MAXPATHLEN] = {0};
const char *tests[] = {"moss", "world", "star", "bldg391", "m35", "sphflake", NULL};
char **paths = NULL;
int printed = 0;
bu_log("\n");
if (bu_str_true(getenv("CLOBBER"))) {
bu_log("About to wipe out all benchmark images and log files in %s\n", bu_getcwd(cwd, MAXPATHLEN));
bu_log("Send SIGINT (type ^C) within 5 seconds to abort\n");
sleep(5);
} else {
bu_log("Deleting most benchmark images and log files in %s\n", bu_getcwd(cwd, MAXPATHLEN));
bu_log("Running '%s clobber' will remove run logs.\n", av[0]);
}
bu_log("\n");
for (i=0; tests[i]; i++) {
struct bu_vls pattern_str = BU_VLS_INIT_ZERO;
char *pattern[5] = {NULL, NULL, NULL, NULL, NULL};
size_t j;
/* rm -f $i.log $i.pix $i-[0-9]*.log $i-[0-9]*.pix */
bu_vls_printf(&pattern_str, "%s.log %s.pix %s-[0-9]*.log %s-[0-9]*.pix", tests[i], tests[i], tests[i], tests[i]);
bu_log("rm -f %s\n", bu_vls_cstr(&pattern_str));
j = bu_argv_from_string(pattern, 4, bu_vls_addr(&pattern_str));
while (j > 0) {
num = bu_file_glob(pattern[j-1], paths);
cnt = num;
while (num > 0) {
bu_file_delete(paths[num-1]);
num--;
}
bu_argv_free(cnt, paths);
paths = NULL;
j--;
}
bu_vls_free(&pattern_str);
}
if (bu_str_true(getenv("CLOBBER"))) {
/* NEVER automatically delete the summary file, but go
* ahead with the rest.
*/
num = bu_file_glob("benchmark-[0-9]*-run.log", paths);
cnt = num;
while (num > 0) {
bu_log("rm -f %s\n", paths[num-1]);
bu_file_delete(paths[num-1]);
num--;
}
bu_argv_free(cnt, paths);
paths = NULL;
}
if (bu_file_exists("summary", NULL)) {
if (!printed) {
bu_log("\nThe following files must be removed manually:\n");
printed=1;
}
bu_log("summary ");
}
num = bu_file_glob("benchmark-[0-9]*-run.log", paths);
cnt = num;
while (num > 0) {
if (!printed) {
bu_log("\nThe following files must be removed manually:\n");
printed=1;
}
bu_log("%s ", paths[num-1]);
num--;
}
bu_argv_free(cnt, paths);
paths = NULL;
if (printed) {
bu_log("\n");
}
if (bu_str_true(getenv("CLOBBER"))) {
bu_log("\nBenchmark clobber complete.\n");
} else {
bu_log("\nBenchmark clean complete.\n");
}
bu_exit(0, NULL);
}
/***
* B E G I N
***/
if (bu_str_false(getenv("RUN"))) {
bu_exit(1, "Type '%s help' for usage.\n", av[0]);
}
/* where to write results */
{
int fd;
const char *logfile;
bu_vls_printf(&str, "run-%d-benchmark.log", bu_process_id());
logfile = bu_vls_addr(&str);
bu_setenv("LOGFILE", logfile, 1);
fd = open(logfile, O_WRONLY|O_CREAT, S_IRUSR | S_IWUSR);
if (fd < 0 || !bu_file_writable(logfile)) {
if (!BU_STR_EQUAL(logfile, "/dev/null")) {
bu_log("ERROR: Unable to log to %s\n", logfile);
}
/* FIXME: not valid logfile on windows, use 'nul' */
bu_setenv("LOGFILE", "/dev/null", 1);
}
}
if (bu_str_true(getenv("QUIET"))) {
if (bu_str_true(getenv("VERBOSE"))) {
bu_log("Verbose output quelled by quiet option. Further output disabled.\n");
}
} else {
if (bu_str_true(getenv("VERBOSE"))) {
verbose_echo=display;
bu_log("Verbose output enabled\n");
}
}
{
struct bu_vls v = BU_VLS_INIT_ZERO;
char rfc2822[1024] = {0};
#ifdef HAVE_SYS_UTSNAME_H
struct utsname n;
time_t t = time(NULL);
strftime(rfc2822, sizeof(rfc2822), "%a, %d %b %Y %H:%M:%S %Z", localtime(&t));
if (uname(&n) == 0) {
bu_vls_printf(&v, "%s %s %s %s %s", n.sysname, n.nodename, n.release, n.version, n.machine);
} else {
bu_vls_strcat(&v, "unknown");
}
#endif
echo("B R L - C A D B E N C H M A R K\n");
echo("=================================\n");
echo("Running %s on %s\n", av[0], rfc2822);
echo("Logging output to %s\n", getenv("LOGFILE"));
echo("%s\n\n", bu_vls_addr(&v));
}
bu_dir(root, MAXPATHLEN, BU_DIR_BIN, NULL);
bu_dir(db, MAXPATHLEN, BU_DIR_DATA, "db", NULL);
bu_dir(pix, MAXPATHLEN, BU_DIR_DATA, "pix" , NULL);
bu_dir(thisp, MAXPATHLEN, BU_DIR_CURR, NULL);
bu_vls_printf(&vp,
"%s/rt "
"%s/rt "
"./rt",
root, thisp);
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
look_for(verbose_echo, executable, "the BRL-CAD raytracer", "RT", (const char **)argv);
bu_vls_trunc(&vp, 0);
bu_vls_printf(&vp,
"%s/moss.g "
"%s/db/moss.g "
"%s/../db/moss.g "
"./db/moss.g "
"./moss.g",
db, thisp, thisp);
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
look_for(verbose_echo, file, "a benchmark geometry directory", "DB", (const char **)argv);
bu_vls_trunc(&vp, 0);
if (getenv("DB") && !bu_file_directory(getenv("DB"))) {
bu_setenv("DB", bu_path_dirname(getenv("DB")), 1);
}
bu_vls_printf(&vp,
"%s/moss.pix "
"%s/pix/moss.pix "
"%s/../pix/moss.pix "
"%s/../../pix/moss.pix "
"%s/../../../pix/moss.pix "
"./pix/moss.pix "
"./moss.pix",
pix, thisp, thisp, thisp, thisp);
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
look_for(verbose_echo, file, "a benchmark reference image directory", "PIX", (const char **)argv);
bu_vls_trunc(&vp, 0);
if (getenv("PIX") && !bu_file_directory(getenv("PIX"))) {
bu_setenv("PIX", bu_path_dirname(getenv("PIX")), 1);
}
bu_vls_printf(&vp,
"%s "
"%s "
"%s/pix "
"%s/../pix "
"%s/../../pix "
"%s/../../../pix "
"./pix",
getenv("PIX"), pix, thisp, thisp, thisp, thisp);
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
look_for(verbose_echo, directory, "a benchmark reference log directory", "LOG", (const char **)argv);
bu_vls_trunc(&vp, 0);
bu_vls_printf(&vp,
"%s/pixcmp "
"%s/pixcmp "
"%s/bench/pixcmp "
"%s/../bench/pixcmp "
"./pixcmp",
root, thisp, thisp, thisp);
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
look_for(verbose_echo, executable, "a pixel comparison utility", "CMP", (const char **)argv);
bu_vls_trunc(&vp, 0);
/* FIXME: elapsed is no more */
bu_vls_printf(&vp,
"%s/elapsed.sh "
"%s/elapsed.sh "
"%s/sh/elapsed.sh "
"%s/../sh/elapsed.sh "
"%s/../../sh/elapsed.sh "
"%s/../../../sh/elapsed.sh "
"./elapsed.sh",
root, thisp, thisp, thisp, thisp, thisp);
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
look_for(verbose_echo, script, "a time elapsed utility", "ELP", (const char **)argv);
bu_vls_trunc(&vp, 0);
bu_free(root, "strdup root");
bu_free(db, "strdup db");
bu_free(pix, "strdup pix");
/*********************
* output parameters *
*********************/
/* sanity check, output all the final settings together */
RT = getenv("RT");
if (RT && strlen(RT) > 0) {
echo("Using [%s] for RT\n", RT);
} else {
bu_exit(1, "ERROR: Could not find the BRL-CAD raytracer\n");
}
DB = getenv("DB");
if (DB && strlen(DB) > 0) {
echo("Using [%s] for DB\n", DB);
} else {
bu_exit(1, "ERROR: Could not find the BRL-CAD database directory\n");
}
PIX = getenv("PIX");
if (PIX && strlen(PIX) > 0) {
echo("Using [%s] for PIX\n", PIX);
} else {
bu_exit(1, "ERROR: Could not find the BRL-CAD reference images\n");
}
LOG = getenv("LOG");
if (LOG && strlen(LOG) > 0) {
echo("Using [%s] for LOG\n", LOG);
} else {
bu_exit(1, "ERROR: Could not find the BRL-CAD reference logs\n");
}
CMP = getenv("CMP");
if (CMP && strlen(CMP) > 0) {
echo("Using [%s] for CMP\n", CMP);
} else {
bu_exit(1, "ERROR: Could not find the BRL-CAD pixel comparison utility\n");
}
ELP = getenv("ELP");
if (ELP && strlen(ELP) > 0) {
echo("Using [%s] for ELP\n", ELP);
} else {
bu_exit(1, "ERROR: Could not find the BRL-CAD time elapsed script\n");
}
/* determine the minimum time requirement in seconds for a single test run */
set_if_unset(echo, verbose_echo, "TIMEFRAME", "32");
/* approximate maximum time in seconds that a given test is allowed to take */
set_if_unset(echo, verbose_echo, "MAXTIME", "300");
{
MAXTIME = strtol(getenv("MAXTIME"), NULL, 0);
TIMEFRAME = strtol(getenv("TIMEFRAME"), NULL, 0);
if (MAXTIME < TIMEFRAME) {
bu_exit(1, "ERROR: MAXTIME must be greater or equal to TIMEFRAME\n");
}
}
/* maximum deviation percentage */
set_if_unset(echo, verbose_echo, "DEVIATION", "3");
/* maximum number of iterations to average */
set_if_unset(echo, verbose_echo, "AVERAGE", "3");
/* end of settings, separate the output */
echo("\n");
/**************************
* output run-time status *
**************************/
/* determine raytracer version */
echo("RT reports the following version information:\n");
{
struct bu_vls rtout = BU_VLS_INIT_ZERO;
struct bu_vls grep1 = BU_VLS_INIT_ZERO;
struct bu_vls grep2 = BU_VLS_INIT_ZERO;
RT = getenv("RT");
bu_exec(RT, NULL, &rtout, &rtout);
bu_grep("BRL-CAD", bu_vls_cstr(&rtout), stashline, (void *)&grep1);
bu_grep("Release", bu_vls_cstr(&grep1), stashline, (void *)&grep2);
if (bu_vls_strlen(&grep2) > 0) {
echo("%s\n", bu_vls_addr(&grep2));
} else {
echo("Unknown\n\n");
}
bu_vls_free(&grep2);
bu_vls_free(&grep1);
bu_vls_free(&rtout);
}
/* let the user know about how long this might take */
{
struct bu_vls elapsed = BU_VLS_INIT_ZERO;
double mintime = 6.0 * TIMEFRAME;
double maxtime = 6.0 * MAXTIME;
double estimate = 3.0 * mintime;
if (mintime < 1.0)
mintime = 0; /* zero is okay */
bu_vls_sprintf(&elapsed, "%s", format_elapsed(mintime));
echo("Minimum run time is %s\n", bu_vls_cstr(&elapsed));
if (maxtime < 1.0)
maxtime = 1.0; /* zero would be misleading */
bu_vls_sprintf(&elapsed, "%s", format_elapsed(maxtime));
echo("Maximum run time is %s\n", bu_vls_cstr(&elapsed));
if (estimate > maxtime)
estimate = maxtime;
echo("Estimated time is %s\n", format_elapsed(estimate));
}
/************************
* Run the actual tests *
************************/
start = bu_gettime();
echo("Running the BRL-CAD Benchmark tests... please wait ...\n\n");
ret += bench("moss");
ret += bench("world");
ret += bench("star");
ret += bench("bldg391");
ret += bench("m35");
ret += bench("sphflake");
echo("\n... Done.\n");
echo("Total testing time elapsed: %.2lfs\n", format_elapsed(bu_gettime() - start));
if (ret != 0) {
echo("\n");
echo("THE BENCHMARK ANALYSIS DID NOT COMPLETE SUCCESSFULLY.\n");
echo("\n");
echo("A benchmark failure means this is not a viable install of BRL-CAD. This may be\n");
echo("a new bug or (more likely) is a compilation configuration error. Ensure your\n");
echo("compiler has strict aliasing disabled, compilation is optimized, and you have\n");
echo("installed BRL-CAD (some platforms require this). If you still get a failure,\n");
echo("please report your configuration information to benchmark@brlcad.org\n");
echo("\n");
echo("Output was saved to %s from %s\n", LOG, bu_dir(NULL, 0, BU_DIR_CURR, NULL));
echo("Run '%s clean' to remove generated pix files.\n", av[0]);
echo("Benchmark testing failed.\n");
return 2;
}
/******************************
* compute and output results *
******************************/
{
struct bu_vls performance = BU_VLS_INIT_ZERO;
ret = perf(&performance, /*...!!!...*/"moss world star bldg391 m35 sphflake", (const char **)argv);
if (ret == 0) {
/* !!! write performance to summary */
}
echo("\n");
echo("The following files have been generated and/or modified:\n");
echo(" *.log ..... final log files for each individual raytrace test\n");
echo(" *.pix ..... final pix image files for each individual raytrace test\n");
echo(" *.log.* ... log files for previous frames and raytrace tests\n");
echo(" *.pix.* ... pix image files for previous frames and raytrace tests\n");
echo(" summary ... performance results summary, 2 lines per run\n");
echo("\n");
echo("Run '%s clean' to remove generated pix files.\n", av[0]);
echo("\n");
echo("Summary:\n");
echo("%s\n", bu_vls_cstr(&performance));
{
double vgr = calculate_vgr(&performance);
if (vgr > 0.0) {
echo("\n");
echo("#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#\n");
echo("Benchmark results indicate an approximate VGR performance metric of %ld\n", (long int)vgr);
echo("Logarithmic VGR metric is %.2lf (natural logarithm is %.2lf)\n", log10(vgr), log(vgr));
echo("#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#\n");
echo("\n");
echo("These numbers seem to indicate that this machine is approximately %ld times", (long int)vgr);
echo("faster than the reference machine being used for comparison, a VAX 11/780\n");
echo("running 4.3 BSD named VGR. These results are in fact approximately %.2lf", log10(vgr));
echo("orders of magnitude faster than the reference.\n");
echo("\n");
echo("Here are some other approximated VGR results for perspective:\n");
echo(" 120 on a 200MHz R5000 running IRIX 6.5\n");
echo(" 250 on a 500 MHz Pentium III running RedHat 7.1\n");
echo(" 550 on a dual 450 MHz UltraSPARC II running SunOS 5.8\n");
echo(" 1000 on a dual 500 MHz G4 PowerPC running Mac OS X 10.2\n");
echo(" 1500 on a dual 1.66 GHz Athlon MP 2000+ running RedHat 7.3\n");
echo(" 52000 on a 4x4 CPU 2.93 GHz Xeon running RHEL Server 5.4\n");
echo(" 65000 on a 512 CPU 400 MHz R12000 Running IRIX 6.5\n");
echo("\n");
}
}
}
{
/* TODO: !!! determine if this build is optimized or not */
/* TODO: !!! determine if this build has run-time debugging */
/* TODO: !!! determine if this build has compile-time debugging */
}
/* if this was a valid benchmark run, encourage submission of results. */
echo("You are encouraged to submit your benchmark results and system\n");
echo("configuration information to benchmark@brlcad.org\n");
echo(" ~~~~~~~~~~~~~~~~~~~~\n");
/* include information about the operating system and hardware in the log */
echo("Including additional kernel and hardware information in the log.\n\n");
/* TODO: !!! print out system information via sysctl/prtdiag/prtconf/hinv/etc */
bu_vls_free(&rtargs);
bu_vls_printf(&vp,
"%s/../share/brlcad/*.*.*/doc/benchmark.tr "
"%s/share/brlcad/*.*.*/doc/benchmark.tr "
"%s/share/brlcad/doc/benchmark.tr "
"%s/share/doc/benchmark.tr "
"%s/doc/benchmark.tr "
"%s/../doc/benchmark.tr "
"./benchmark.tr",
thisp, thisp, thisp, thisp, thisp, thisp);
bu_argv_from_string(argv, 32, bu_vls_addr(&vp));
bu_free(thisp, "dirname this");
look_for(NULL, file, "BENCHMARK_TR", "benchmark", (const char **)argv);
bu_vls_trunc(&vp, 0);
/* TODO: look for benchmark document here? */
echo("Output was saved to %s from %s\n", LOG, bu_dir(NULL, 0, BU_DIR_CURR, NULL));
echo("Benchmark testing complete.\n");
return 0;
}
/*
* Local Variables:
* tab-width: 8
* mode: C
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
-95
View File
@@ -1,95 +0,0 @@
/* C L E A N . C
* BRL-CAD
*
* Copyright (c) 2011-2020 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
*
* 3. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/** @file clean.c
*
* utility functions to clean output files
*
*/
#include "common.h"
#include "bu/file.h"
#include "bu/str.h"
#include "bu/vls.h"
/* TODO: !!! needed */
int bu_file_move(const char *fn1, const char *fn2) {if (!fn1 || !fn2) return -1; return 0;}
extern int bu_file_copy(const char *fn1, const char *fn2);
/**
* conditionally removes or saves any .pix or .log files output.
*/
void
clean_obstacles(const char *base_filename, int id)
{
struct bu_vls vp = BU_VLS_INIT_ZERO;
struct bu_vls vpid = BU_VLS_INIT_ZERO;
if (BU_STR_EMPTY(base_filename))
return;
/* look for an image file */
bu_vls_printf(&vp, "%s.pix", base_filename);
if (bu_file_exists(bu_vls_cstr(&vp), NULL)) {
bu_vls_printf(&vpid, "%s-%d.pix", base_filename, id);
if (bu_file_exists(bu_vls_cstr(&vpid), NULL)) {
bu_file_delete(bu_vls_cstr(&vp));
}
bu_file_move(bu_vls_cstr(&vp), bu_vls_cstr(&vpid));
}
/* look for a log file */
bu_vls_printf(&vp, "%s.log", base_filename);
if (bu_file_exists(bu_vls_cstr(&vp), NULL)) {
bu_vls_printf(&vpid, "%s-%d.log", base_filename, id);
if (bu_file_exists(bu_vls_cstr(&vpid), NULL)) {
bu_file_delete(bu_vls_cstr(&vp));
}
bu_file_move(bu_vls_cstr(&vp), bu_vls_cstr(&vpid));
}
}
/*
* Local Variables:
* tab-width: 8
* mode: C
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
-96
View File
@@ -1,96 +0,0 @@
/* C O M P U T E . C
* BRL-CAD
*
* Copyright (c) 2011-2020 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
*
* 3. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/** @file compute.c
*
* run and computation functions
*
*/
#include "common.h"
/**
* average [..numbers..]
*
* computes the integer average for a set of given numbers
*/
double
average(int ac, double av[])
{
double total = 0.0;
if (ac < 1)
return -0.0;
while (ac-- > 0) {
total += av[ac];
}
return total / ac;
}
double
variance(int ac, double av[])
{
double avg;
double err = 0.0;
double num = ac;
if (ac < 1)
return -0.0;
else if (ac == 1)
return 0.0;
avg = average(ac, av);
/* compute variance numerator for the population */
while (ac-- > 0) {
err += (av[ac] - avg) * (av[ac] - avg);
}
/* return the sample variance */
return err / (num - 1);
}
/*
* Local Variables:
* tab-width: 8
* mode: C
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
+1 -1
View File
@@ -2,7 +2,7 @@
# L G T . S H
# BRL-CAD
#
# Copyright (c) 2004-2020 United States Government as represented by
# Copyright (c) 2004-2016 United States Government as represented by
# the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
+12 -14
View File
@@ -1,7 +1,7 @@
/* P I X C M P . C
* BRL-CAD
*
* Copyright (c) 2004-2020 United States Government as represented by
* Copyright (c) 2004-2016 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This program is free software; you can redistribute it and/or
@@ -36,7 +36,6 @@
#endif
#include "bio.h"
#include "bu/app.h"
#include "bu/getopt.h"
#include "bu/log.h"
#include "bu/file.h"
@@ -77,7 +76,7 @@ usage(const char *name)
HIDDEN void
handle_i_opt(const char *arg, size_t *skip1, size_t *skip2)
handle_i_opt(const char *arg, off_t *skip1, off_t *skip2)
{
const char *endptr = arg;
if ((arg == NULL) || ((skip1 == NULL) && (skip2 == NULL))) {
@@ -123,19 +122,18 @@ main(int argc, char *argv[])
FILE *f2 = NULL;
struct stat sf1, sf2;
size_t matching = 0;
size_t off1 = 0;
size_t offmany = 0;
long matching = 0;
long off1 = 0;
long offmany = 0;
int c;
int list_pixel_values = 0;
int print_bytes = 0;
int silent = 0;
size_t f1_skip = 0;
size_t f2_skip = 0;
size_t bytes = 0;
off_t f1_skip = 0;
off_t f2_skip = 0;
bu_setprogname(argv[0]);
long int bytes = 0;
/* process opts */
while ((c = bu_getopt(argc, argv, "lbi:s")) != -1) {
@@ -208,7 +206,7 @@ main(int argc, char *argv[])
stat(argv[1], &sf2);
if (sf1.st_size != sf2.st_size) {
bu_exit(FILE_ERROR, "Different file sizes found: %s(%d) and %s(%d). Cannot perform pixcmp.\n", argv[0], (int)sf1.st_size, argv[1], (int)sf2.st_size);
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) {
@@ -217,7 +215,7 @@ main(int argc, char *argv[])
}
/* skip requested pixels/bytes in FILE1 */
if (f1_skip && fseek(f1, f1_skip, SEEK_SET)) {
if (f1_skip && bu_fseek(f1, f1_skip, SEEK_SET)) {
bu_log("ERROR: Unable to seek %zd %s%s in FILE1\n",
f1_skip,
print_bytes?"byte":"pixel",
@@ -227,7 +225,7 @@ main(int argc, char *argv[])
}
/* skip requested pixels in FILE2 */
if (f2_skip && fseek(f2, f2_skip, SEEK_SET)) {
if (f2_skip && bu_fseek(f2, f2_skip, SEEK_SET)) {
bu_log("ERROR: Unable to seek %zd %s%s in FILE2\n",
f1_skip,
print_bytes?"byte":"pixel",
@@ -303,7 +301,7 @@ main(int argc, char *argv[])
/* print summary */
if (!silent) {
printf("pixcmp %s: %8zd matching, %8zd off by 1, %8zd off by many\n",
printf("pixcmp %s: %8ld matching, %8ld off by 1, %8ld off by many\n",
print_bytes?"bytes":"pixels",
matching, off1, offmany);
}
-1
View File
@@ -22,7 +22,6 @@ BRLCAD_ADDDATA(PIX_LOG pix)
CMAKEFILES(${BENCHMARK_PIX})
CMAKEFILES(${PIX_LOG})
CMAKEFILES(CMakeLists.txt)
# Local Variables:
# tab-width: 8
-112
View File
@@ -1,112 +0,0 @@
/* R U N . C
* BRL-CAD
*
* Copyright (c) 2011-2020 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
*
* 3. The name of the author may not be used to endorse or promote
* products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
/** @file run.c
*
* run functions
*
*/
#include "common.h"
#include <stdlib.h>
#include "bu.h"
/* TODO: !!! obviously */
struct bu_vls bu_argv_to_string(int ac, const char *av[]) {struct bu_vls v = BU_VLS_INIT_ZERO; if (ac) {bu_vls_printf(&v, "%s", av[0]);} return v;}
int (*echo)(const char *, ...) = &bu_log;
extern int bu_exec(const char *program, void *data, struct bu_vls *out, struct bu_vls *err);
/**
* run file_prefix geometry hypersample [..rt args..]
* runs a single benchmark test assuming the following are preset:
*
* RT := path/name of the raytracer to use
* DB := path to the geometry file
*
* it is assumed that stdin will be the view/frame input
*/
int
run(int ac, char *av[])
{
int retval;
const char *run_geomname = av[0];
const char *run_geometry = av[1];
long int hypersample = strtod(av[2], NULL);
struct bu_vls args = BU_VLS_INIT_ZERO;
av += 3;
ac -= 3;
args = bu_argv_to_string(ac, (const char **)av);
echo("DEBUG: Running %s -B -M -s512 -H%ld -J0 %s -o %s.pix %s/%s.g %s\n", av[0], hypersample, args, run_geomname, run_geomname, run_geometry);
/* pipe(stdin_for_bu_exec); */
retval = bu_exec("program", NULL, NULL, NULL);
echo("DEBUG: Running %s returned %d\n", av[0], retval);
return retval;
}
/**
* runs a series of benchmark tests assuming the following are preset:
*
* TIMEFRAME := maximum amount of wallclock time to spend per test
*
* is is assumed that stdin will be the view/frame input
*/
int
bench(const char *test_name)
{
if (!test_name)
return -1;
/* FIXME: !!! lots missing here */
return 0;
}
/*
* Local Variables:
* tab-width: 8
* mode: C
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
+26 -48
View File
@@ -2,7 +2,7 @@
# R U N . S H
# BRL-CAD
#
# Copyright (c) 2004-2020 United States Government as represented by
# Copyright (c) 2004-2016 United States Government as represented by
# the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
@@ -70,29 +70,25 @@ LC_ALL=C
# commands that this script expects
for __cmd in echo pwd ; do
out=`echo "test" | $__cmd 2>&1`
echo "test" | $__cmd > /dev/null 2>&1
if test ! x$? = x0 ; then
echo "INTERNAL ERROR: $__cmd command is required"
echo " (output was [$out])"
exit 1
fi
done
out=`echo "test" | grep "test" 2>&1`
echo "test" | grep "test" > /dev/null 2>&1
if test ! x$? = x0 ; then
echo "INTERNAL ERROR: grep command is required"
echo " (output was [$out])"
exit 1
fi
out=`echo "test" | tr "test" "test" 2>&1`
echo "test" | tr "test" "test" > /dev/null 2>&1
if test ! x$? = x0 ; then
echo "INTERNAL ERROR: tr command is required"
echo " (output was [$out])"
exit 1
fi
out=`echo "test" | sed "s/test/test/" 2>&1`
echo "test" | sed "s/test/test/" > /dev/null 2>&1
if test ! x$? = x0 ; then
echo "INTERNAL ERROR: sed command is required"
echo " (output was [$out])"
exit 1
fi
@@ -395,14 +391,12 @@ fi
# where to write results
LOGFILE=run-$$-benchmark.log
if test -e $LOGFILE ; then
echo "WARNING: $LOGFILE already exists. Appending."
else
touch "$LOGFILE"
fi
touch "$LOGFILE"
if test ! -w "$LOGFILE" ; then
echo "WARNING: Unable to log to $LOGFILE"
LOGFILE=
if test ! "x$LOGFILE" = "x/dev/null" ; then
echo "ERROR: Unable to log to $LOGFILE"
fi
LOGFILE=/dev/null
fi
VERBOSE_ECHO=:
@@ -421,13 +415,7 @@ fi
$ECHO "B R L - C A D B E N C H M A R K"
$ECHO "================================="
$ECHO "Running $THIS on `date`"
if test "x$LOGFILE" != "x" ; then
$ECHO "Logging output to $LOGFILE"
elif test "x$QUIET" != "x" ; then
$ECHO "Logging output to STDOUT"
else
$ECHO "Logging output is OFF"
fi
$ECHO "Logging output to $LOGFILE"
$ECHO "`uname -a 2>&1`"
$ECHO
@@ -596,11 +584,8 @@ else
$ECHO "Using [$ELP] for ELP"
fi
# stop git shell & msys2 arg manipulation
export MSYS_NO_PATHCONV=1 MSYS2_ARG_CONV_EXCL="-F/dev/debug"
# sanity check: make sure $RT runs
out=`eval \"$RT\" -s1 -F/dev/debug \"${DB}/moss.g\" LIGHT 2>&1`
# more sanity checks, make sure the binaries and scripts run
eval \"$RT\" -s1 -F/dev/debug \"${DB}/moss.g\" LIGHT > /dev/null 2>&1
ret=$?
if test ! "x${ret}" = "x0" ; then
$ECHO
@@ -608,30 +593,25 @@ if test ! "x${ret}" = "x0" ; then
"$RT"
$ECHO
$ECHO "ERROR: RT does not seem to work as expected"
$ECHO " (output was [$out])"
exit 2
fi
# sanity check: make sure $CMP runs
echo "" > tmp1
echo "" > tmp2
out=`echo "" | eval \"$CMP\" tmp1 tmp2 2>&1`
# 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
rm -f null
ret=$?
if test ! "x${ret}" = "x0" ; then
$ECHO
$ECHO "ERROR: CMP does not seem to work as expected"
$ECHO " (output was [$out])"
rm -f tmp1 tmp2
exit 2
fi
rm -f tmp1 tmp2
# sanity check: make sure $ELP runs
out=`eval \"$ELP\" 0 2>&1`
eval \"$ELP\" 0 > /dev/null 2>&1
if test ! "x${ret}" = "x0" ; then
$ECHO
$ECHO "ERROR: ELP does not seem to work as expected"
$ECHO " (output was [$out])"
exit 2
fi
@@ -691,8 +671,7 @@ $ECHO
# if expr works, let the user know about how long this might take
zero=`expr 1 - 1 2>&1`
if test "x$zero" = "x0" ; then
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
@@ -714,7 +693,6 @@ if test "x$zero" = "x0" ; then
$ECHO
else
$ECHO "WARNING: expr is unavailable, unable to compute statistics"
$ECHO " (output of 1 - 1 was [$zero])"
$ECHO
fi
@@ -881,13 +859,13 @@ sqrt ( ) {
if test "x$sqrt_number" = "x" ; then
$ECHO "ERROR: cannot compute the square root of nothing" 1>&2
exit 1
elif test $sqrt_number -lt 0 ; then
elif test $sqrt_number -lt 0 > /dev/null 2>&1 ; then
$ECHO "ERROR: square root of negative numbers is only in your imagination" 1>&2
exit 1
fi
sqrt_have_dc=yes
out=`echo "1 1 + p" | dc 2>&1`
echo "1 1 + p" | dc >/dev/null 2>&1
if test ! x$? = x0 ; then
sqrt_have_dc=no
fi
@@ -897,7 +875,7 @@ sqrt ( ) {
sqrt_root=`echo "$sqrt_number v p" | dc`
else
sqrt_have_bc=yes
out=`echo "1 + 1" | bc 2>&1`
echo "1 + 1" | bc >/dev/null 2>&1
if test ! "x$?" = "x0" ; then
sqrt_have_bc=no
fi
@@ -1247,13 +1225,13 @@ perf ( ) {
# see if we have a calculator
perf_have_dc=yes
out=`echo "1 1 + p" | dc 2>&1`
echo "1 1 + p" | dc >/dev/null 2>&1
if test ! x$? = x0 ; then
perf_have_dc=no
fi
perf_have_bc=yes
out=`echo "1 + 1" | bc 2>&1`
echo "1 + 1" | bc >/dev/null 2>&1
if test ! x$? = x0 ; then
perf_have_bc=no
fi
+1 -1
View File
@@ -2,7 +2,7 @@
# T R Y . S H
# BRL-CAD
#
# Copyright (c) 2004-2020 United States Government as represented by
# Copyright (c) 2004-2016 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-2020 United States Government as represented by
# Copyright (c) 2004-2016 United States Government as represented by
# the U.S. Army Research Laboratory.
#
# Redistribution and use in source and binary forms, with or without
Vendored
+32 -12
View File
@@ -10,9 +10,9 @@ while [ "$1" != "" ]
do
case $1
in
--enable-all) options="$options -DBRLCAD_BUNDLED_LIBS=BUNDLED";
--enable-all) options="$options -DBRLCAD_BUNDLED_LIBS=ON";
shift;;
--disable-all) options="$options -DBRLCAD_BUNDLED_LIBS=SYSTEM";
--disable-all) options="$options -DBRLCAD_BUNDLED_LIBS=OFF";
shift;;
--enable-opengl) options="$options -DBRLCAD_ENABLE_OPENGL=ON";
shift;;
@@ -70,6 +70,14 @@ do
shift;;
--disable-all-cxx) options="$options -DENABLE_ALL_CXX_COMPILE=OFF";
shift;;
--enable-posix) options="$options -DENABLE_POSIX_COMPLIANCE=ON";
shift;;
--disable-posix) options="$options -DENABLE_POSIX_COMPLIANCE=OFF";
shift;;
--strict-iso-c) options="$options -DENABLE_STRICT_COMPILER_STANDARD_COMPLIANCE=ON";
shift;;
--strict-iso-c) options="$options -DENABLE_STRICT_COMPILER_STANDARD_COMPLIANCE=OFF";
shift;;
--enable-docs) options="$options -DBRLCAD_EXTRADOCS=ON";
shift;;
--disable-docs) options="$options -DBRLCAD_EXTRADOCS=OFF";
@@ -118,14 +126,26 @@ do
shift;;
--disable-libz) options="$options -DBRLCAD_ZLIB=SYSTEM";
shift;;
--enable-png) options="$options -DBRLCAD_PNG=BUNDLED";
--enable-tinycthread) options="$options -DBRLCAD_TINYCTHREAD=BUNDLED";
shift;;
--disable-png) options="$options -DBRLCAD_PNG=SYSTEM";
--disable-tinycthread) options="$options -DBRLCAD_TINYCTHREAD=SYSTEM";
shift;;
--enable-freetype) options="$options -DBRLCAD_FREETYPE=BUNDLED";
shift;;
--disable-freetype) options="$options -DBRLCAD_FREETYPE=SYSTEM";
shift;;
--enable-termlib) options="$options -DBRLCAD_TERMLIB=BUNDLED";
shift;;
--disable-termlib) options="$options -DBRLCAD_TERMLIB=SYSTEM";
shift;;
--enable-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";
@@ -154,6 +174,10 @@ do
shift;;
--disable-tkhtml) options="$options -DBRLCAD_TKHTML=SYSTEM";
shift;;
--enable-tkpng) options="$options -DBRLCAD_TKPNG=BUNDLED";
shift;;
--disable-tkpng) options="$options -DBRLCAD_TKPNG=SYSTEM";
shift;;
--enable-tktable) options="$options -DBRLCAD_TKTABLE=BUNDLED";
shift;;
--disable-tktable) options="$options -DBRLCAD_TKTABLE=SYSTEM";
@@ -162,9 +186,9 @@ do
shift;;
--disable-opennurbs) options="$options -DBRLCAD_OPENNURBS=SYSTEM";
shift;;
--enable-spsr) options="$options -DBRLCAD_SPSR=BUNDLED";
--enable-spr) options="$options -DBRLCAD_SPR=BUNDLED";
shift;;
--disable-spsr) options="$options -DBRLCAD_SPSR=SYSTEM";
--disable-spr) options="$options -DBRLCAD_SPR=SYSTEM";
shift;;
--enable-scl) options="$options -DBRLCAD_SC=BUNDLED";
shift;;
@@ -190,13 +214,9 @@ do
shift;;
--disable-gdiam) options="$options -DBRLCAD_GDIAM=SYSTEM";
shift;;
--enable-proj4) options="$options -DBRLCAD_PROJ4=BUNDLED";
--enable-bullet) options="$options -DBRLCAD_BULLET=BUNDLED";
shift;;
--disable-proj4) options="$options -DBRLCAD_PROJ4=SYSTEM";
shift;;
--enable-gdal) options="$options -DBRLCAD_GDAL=BUNDLED";
shift;;
--disable-gdal) options="$options -DBRLCAD_GDAL=SYSTEM";
--disable-bullet) options="$options -DBRLCAD_BULLET=SYSTEM";
shift;;
--prefix=*) inputstr=$1;
options="$options -DCMAKE_INSTALL_PREFIX=${inputstr#--prefix=}";
+42 -177
View File
@@ -1,131 +1,3 @@
# There is quite a bit of shared logic for the various converters when it comes
# to building .g outputs, so we use a single function to manage the process and
# handle format-specific bits internally. TODO - we probably need to add
# optional argument support here later to support (say) specifying a specific
# COMGEOM or STEP format version...
function(ADD_G_TARGET in_model folder)
# Initialize
set(MODEL_TYPE "UNKNOWN")
# Get our root path
if(CMAKE_CONFIGURATION_TYPES)
set(bin_root "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
else(CMAKE_CONFIGURATION_TYPES)
set(bin_root "${CMAKE_BINARY_DIR}")
endif(CMAKE_CONFIGURATION_TYPES)
# Find our conversion type
set(model_types "3dm;asc;comgeom;fg4;stp")
foreach(mt ${model_types})
if("${MODEL_TYPE}" STREQUAL "UNKNOWN")
if("${in_model}" MATCHES ".${mt}$")
set(MODEL_TYPE "${mt}")
string(REGEX REPLACE "([0-9a-z]*).${mt}" "\\1" in_model_root "${in_model}")
endif("${in_model}" MATCHES ".${mt}$")
endif("${MODEL_TYPE}" STREQUAL "UNKNOWN")
endforeach(mt ${model_types})
if("${MODEL_TYPE}" STREQUAL "UNKNOWN")
message(FATAL_ERROR "Unable to identify input model type for file ${in_model}")
endif("${MODEL_TYPE}" STREQUAL "UNKNOWN")
# Find our output file and path
string(REPLACE "${CMAKE_SOURCE_DIR}/" "" rel_dir "${CMAKE_CURRENT_SOURCE_DIR}")
set(output_file ${DATA_DIR}/${rel_dir}/${in_model_root}.g)
set(log_file ${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.log)
# Make sure the output db target directories are there
if(CMAKE_CONFIGURATION_TYPES)
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/${CFG_TYPE}/${DATA_DIR}/${rel_dir}")
endforeach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
else(CMAKE_CONFIGURATION_TYPES)
file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/${DATA_DIR}/${rel_dir}")
endif(CMAKE_CONFIGURATION_TYPES)
#############################################################################
# Build logic
#############################################################################
# The 3DM conversion is rather different than the general pattern at the
# moment (However, the 3dm approach is probably the "wave of the future" in
# the sense that it uses libgcv...)
if(${MODEL_TYPE} STREQUAL "3dm")
set(INPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}")
set(OUTPUT_FILE "${output_file}")
# Use the model name for the script, since the output file is specific to this input
configure_file("${CMAKE_SOURCE_DIR}/db/conv_run.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake" @ONLY)
# Define the target
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND ${CMAKE_COMMAND} -DEXEC=$<TARGET_FILE:3dm-g> -P "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake"
DEPENDS 3dm-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
)
endif(${MODEL_TYPE} STREQUAL "3dm")
# The rest of the conversions follow the simpler/older pattern:
if(${MODEL_TYPE} STREQUAL "asc")
if (BRLCAD_ENABLE_TCL)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND asc2g "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}" ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
DEPENDS asc2g "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}"
)
endif (BRLCAD_ENABLE_TCL)
endif(${MODEL_TYPE} STREQUAL "asc")
if(${MODEL_TYPE} STREQUAL "comgeom")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND comgeom-g -v 5 ${CMAKE_CURRENT_SOURCE_DIR}/${in_model} ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} > ${log_file} 2>&1
DEPENDS comgeom-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
)
endif(${MODEL_TYPE} STREQUAL "comgeom")
if(${MODEL_TYPE} STREQUAL "fg4")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND fast4-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model} ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} > ${log_file} 2>&1
DEPENDS fast4-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
)
endif(${MODEL_TYPE} STREQUAL "fg4")
if(${MODEL_TYPE} STREQUAL "stp")
if (BRLCAD_ENABLE_STEP)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND step-g -O ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} ${CMAKE_CURRENT_SOURCE_DIR}/${in_model} > ${log_file} 2>&1
DEPENDS step-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
)
else (BRLCAD_ENABLE_STEP)
CMAKEFILES(${CMAKE_CURRENT_SOURCE_DIR}/${in_model})
endif (BRLCAD_ENABLE_STEP)
endif(${MODEL_TYPE} STREQUAL "stp")
if(NOT ${MODEL_TYPE} STREQUAL "asc" OR BRLCAD_ENABLE_TCL)
if(NOT ${MODEL_TYPE} STREQUAL "stp" OR BRLCAD_ENABLE_STEP)
add_custom_target(${in_model_root}.g ALL DEPENDS ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file})
set_target_properties(${in_model_root}.g PROPERTIES FOLDER "${folder}")
# Install logic
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
install(FILES ${CMAKE_CURRENT_BUILD_DIR_INSTALL}/${output_file} DESTINATION ${DATA_DIR}/${rel_dir})
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
# Clean-up
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${log_file}")
DISTCLEAN("${log_file}")
endif(NOT ${MODEL_TYPE} STREQUAL "stp" OR BRLCAD_ENABLE_STEP)
endif(NOT ${MODEL_TYPE} STREQUAL "asc" OR BRLCAD_ENABLE_TCL)
endfunction(ADD_G_TARGET in_model folder)
set(G_BENCHMARK_MODELS
bldg391.asc
m35.asc
@@ -136,9 +8,7 @@ set(G_BENCHMARK_MODELS
)
set(G_SAMPLE_MODELS
aet.asc
axis.asc
bearing.asc
boolean-ops.asc
castle.asc
cornell.asc
@@ -147,7 +17,6 @@ set(G_SAMPLE_MODELS
crod.asc
cube.asc
demo.asc
die.asc
galileo.asc
goliath.asc
havoc.asc
@@ -158,7 +27,6 @@ set(G_SAMPLE_MODELS
pic.asc
pinewood.asc
prim.asc
rounds.asc
tank_car.asc
terra.asc
toyjeep.asc
@@ -167,7 +35,43 @@ set(G_SAMPLE_MODELS
woodsman.asc
xmp.asc
)
add_subdirectory(chess)
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)
@@ -175,62 +79,23 @@ 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)
if(SH_EXEC)
set(conversion_g_files)
set(conversion_g_files_fp)
set(conversion_deps_list)
if (BRLCAD_ENABLE_TCL)
macro(Sh_Conversion_Test gfile depends_list)
add_custom_target(convert-${gfile} COMMAND ${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:mged> ${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${gfile})
set_target_properties(convert-${gfile} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
set_target_properties(convert-${gfile} PROPERTIES FOLDER "BRL-CAD Conversion Tests")
set(conversion_g_files ${conversion_g_files} ${gfile})
if(NOT "${depends_list}" STREQUAL "")
add_dependencies(convert-${gfile} ${depends_list})
set(conversion_deps_list ${conversion_deps_list} ${depends_list})
endif(NOT "${depends_list}" STREQUAL "")
endmacro(Sh_Conversion_Test)
foreach(g_input ${G_BENCHMARK_MODELS})
get_filename_component(GROOT "${g_input}" NAME_WE)
Sh_Conversion_Test(${GROOT}.g "mged")
endforeach(g_input ${G_BENCHMARK_MODELS})
foreach(g_input ${G_SAMPLE_MODELS})
get_filename_component(GROOT "${g_input}" NAME_WE)
Sh_Conversion_Test(${GROOT}.g "mged")
endforeach(g_input ${G_SAMPLE_MODELS})
list(REMOVE_DUPLICATES conversion_deps_list)
foreach(gfile ${conversion_g_files})
set(conversion_g_files_fp ${conversion_g_files_fp} "${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${gfile}")
endforeach(gfile ${conversion_g_files})
add_custom_target(convert COMMAND ${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:mged> ${conversion_g_files_fp})
set_target_properties(convert PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
set_target_properties(convert PROPERTIES FOLDER "BRL-CAD Conversion Tests")
add_dependencies(convert ${conversion_deps_list})
endif (BRLCAD_ENABLE_TCL)
endif(SH_EXEC)
CMAKEFILES(
${G_BENCHMARK_MODELS}
${G_SAMPLE_MODELS}
CMakeLists.txt
aet.rt
cornell.rt
cube.rt
db.php
include/ctype.inc
include/debug.inc
include
)
# Local Variables:
-68
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
-13
View File
@@ -1,13 +0,0 @@
#!/bin/sh
rt -M -p50 -W \
$*\
aet.g\
'diagram.r' \
<<EOF
viewsize 3.58095758486442e+00;
orientation 4.58468551319667e-01 5.46381543126676e-01 5.36927647047512e-01 4.50535790606452e-01;
eye_pt 2.16300884070308e+00 6.60866025843505e-01 3.68751836397137e-01;
start 0; clean;
end;
EOF
-43
View File
@@ -1,43 +0,0 @@
title {Single Row 7-ball Deep Groove 608Z Ball Bearing, 8mm ID x 22mm OD x 7mm}
units mm
put {ballgroove.s} tor V {0 0 0} H {0 1 0} r_a 7.5 r_h 2
put {innerringrightround.s} tor V {0 3.399999999999999911182158 0} H {0 1 0} r_a 4.099999999999999644728632 r_h 0.1000000000000000055511151
put {outerringmainin.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 9.599999999999999644728632} B {9.599999999999999644728632 0 0} C {0 0 9.599999999999999644728632} D {9.599999999999999644728632 0 0}
put {outerringmaincenter.s} tgc V {0 -3.399999999999999911182158 0} H {0 6.799999999999999822364316 0} A {0 0 11} B {11 0 0} C {0 0 11} D {11 0 0}
put {innerring2.s} tgc V {0 -3.399999999999999911182158 0} H {0 6.799999999999999822364316 0} A {0 0 5.400000000000000355271368} B {5.400000000000000355271368 0 0} C {0 0 5.400000000000000355271368} D {5.400000000000000355271368 0 0}
put {innerring2leftround.s} tor V {0 -3.399999999999999911182158 0} H {0 1 0} r_a 5.299999999999999822364316 r_h 0.1000000000000000055511151
put {outerringmaininrightround.s} tor V {0 3.399999999999999911182158 0} H {0 0.9999999999999998889776975 0} r_a 9.599999999999999644728632 r_h 0.1000000000000000055511151
put {outerringinner2.s} tgc V {0 -2.200000000000000177635684 0} H {0 4.400000000000000355271368 0} A {0 0 9.5} B {9.5 0 0} C {0 0 9.5} D {9.5 0 0}
put {outerringmainleftround.s} tor V {0 -3.399999999999999911182158 0} H {0 0.9999999999999998889776975 0} r_a 10.90000000000000035527137 r_h 0.1000000000000000055511151
put {outerring.r} comb region yes tree {u {u {u {u {u {u {u {u {u {- {- {l outerringmaincenter.s} {l outerringmainfullcut.s}} {l ballgroove.s}} {- {- {l outerringmainout.s} {l outerringmainin.s}} {l ballgroove.s}}} {- {- {l outerringinner.s} {l outerringinnercut.s}} {l ballgroove.s}}} {- {- {l outerringinner2.s} {l outerringinnercut2.s}} {l ballgroove.s}}} {l outerringmainleftround.s}} {l outerringmainrightround.s}} {l outerringmaininleftround.s}} {l outerringmaininrightround.s}} {l outerringinnerrightround.s}} {l outerringinnerleftround.s}}
attr set {outerring.r} {region} {R} {region_id} {1010} {material_id} {1} {los} {100}
put {innerring.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 5.299999999999999822364316} B {5.299999999999999822364316 0 0} C {0 0 5.299999999999999822364316} D {5.299999999999999822364316 0 0}
put {innerring.r} comb region yes tree {u {u {u {u {u {u {u {u {- {- {l innneroutercenter.s} {l ballgroove.s}} {l shaftcut1.s}} {- {- {l innerring.s} {l ballgroove.s}} {l shaftcut2.s}}} {- {- {l innerring2.s} {l ballgroove.s}} {l shaftcut1.s}}} {- {l innerlefttrc.s} {l shaftcut1.s}}} {- {l innerrighttrc.s} {l shaftcut1.s}}} {l innerring2leftround.s}} {l innerring2rightround.s}} {l innerringleftround.s}} {l innerringrightround.s}}
attr set {innerring.r} {region} {R} {region_id} {1004} {material_id} {1} {los} {100}
put {shaftcut2.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 4.099999999999999644728632} B {4.099999999999999644728632 0 0} C {0 0 4.099999999999999644728632} D {4.099999999999999644728632 0 0}
put {shaftcut1.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 4} B {4 0 0} C {0 0 4} D {4 0 0}
put {outerringinner.s} tgc V {0 -2.299999999999999822364316 0} H {0 4.599999999999999644728632 0} A {0 0 9.5} B {9.5 0 0} C {0 0 9.5} D {9.5 0 0}
put {innerringleftround.s} tor V {0 -3.399999999999999911182158 0} H {0 1 0} r_a 4.099999999999999644728632 r_h 0.1000000000000000055511151
put {outerringinnercut2.s} tgc V {0 -2.299999999999999822364316 0} H {0 4.599999999999999644728632 0} A {0 0 9} B {9 0 0} C {0 0 9} D {9 0 0}
put {outerringinnerrightround.s} tor V {0 2.200000000000000177635684 0} H {0 0.9999999999999998889776975 0} r_a 9.099999999999999644728632 r_h 0.1000000000000000055511151
put {innerrighttrc.s} tgc V {0 2.5 0} H {0 0.2000000000000000111022302 0} A {0 0 6.200000000000000177635684} B {6.200000000000000177635684 0 0} C {0 0 5.400000000000000355271368} D {5.400000000000000355271368 0 0}
put {outerringmaininleftround.s} tor V {0 -3.399999999999999911182158 0} H {0 0.9999999999999998889776975 0} r_a 9.599999999999999644728632 r_h 0.1000000000000000055511151
put {outerringinnercut.s} tgc V {0 -2.299999999999999822364316 0} H {0 4.599999999999999644728632 0} A {0 0 9.099999999999999644728632} B {9.099999999999999644728632 0 0} C {0 0 9.099999999999999644728632} D {9.099999999999999644728632 0 0}
put {innneroutercenter.s} tgc V {0 -2.5 0} H {0 5 0} A {0 0 6.200000000000000177635684} B {6.200000000000000177635684 0 0} C {0 0 6.200000000000000177635684} D {6.200000000000000177635684 0 0}
put {bearing} comb region no tree {u {u {l outerring.r} {l innerring.r}} {l balls.r}}
attr set {bearing} {shader} {glass}
put {balls.r} comb region yes tree {u {u {u {l ball101} {l ball201}} {u {l ball301} {l ball401}}} {u {u {l ball501} {l ball601}} {l ball701}}}
attr set {balls.r} {region} {R} {region_id} {1011} {material_id} {1} {los} {100}
put {innerlefttrc.s} tgc V {0 -2.5 0} H {0 -0.2000000000000000111022302 0} A {0 0 -6.200000000000000177635684} B {6.200000000000000177635684 0 0} C {0 0 -5.400000000000000355271368} D {5.400000000000000355271368 0 0}
put {ball701} ell V {1.836909530733565887317127E-15 0 -7.5} A {2 0 4.898425415289509032845672E-16} B {0 2 0} C {-4.898425415289509032845672E-16 0 2}
put {ball601} ell V {5.57358619108045960643949 0 -5.018479547691433673151096} A {1.338261212717715586961731 0 1.486289650954789154368996} B {0 2 0} C {-1.486289650954789154368996 0 1.338261212717715586961731}
put {ball501} ell V {7.386058147591560540945466 0 1.302361332501977386755243} A {-0.3472963553338606623732687 0 1.969615506024416040631309} B {0 2 0} C {-1.969615506024416040631309 0 -0.3472963553338606623732687}
put {ball401} ell V {3.521036720894181293317615 0 6.622106946441951969006823} A {-1.765895185717853754781004 0 0.9389431255717817226269517} B {0 2 0} C {-0.9389431255717817226269517 0 -1.765895185717853754781004}
put {ball301} ell V {-3.050524823068503366130244 0 6.851590932319505888870026} A {-1.827090915285201511153446 0 -0.8134732861516008606272976} B {0 2 0} C {0.8134732861516008606272976 0 -1.827090915285201511153446}
put {ball201} ell V {-7.277217947069973824625322 0 1.814414216997508377815507} A {-0.4838437911993355711182119 0 -1.940591452551992945885218} B {0 2 0} C {1.940591452551992945885218 0 -0.4838437911993355711182119}
put {ball101} ell V {-5.910080652050415217502177 0 -4.617461064942436799185543} A {1.231322950651316583403627 0 -1.576021507213444028394633} B {0 2 0} C {1.576021507213444028394633 0 1.231322950651316583403627}
put {outerringmainfullcut.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 9.5} B {9.5 0 0} C {0 0 9.5} D {9.5 0 0}
put {outerringmainout.s} tgc V {0 -3.5 0} H {0 7 0} A {0 0 10.90000000000000035527137} B {10.90000000000000035527137 0 0} C {0 0 10.90000000000000035527137} D {10.90000000000000035527137 0 0}
put {innerring2rightround.s} tor V {0 3.399999999999999911182158 0} H {0 1 0} r_a 5.299999999999999822364316 r_h 0.1000000000000000055511151
put {outerringinnerleftround.s} tor V {0 -2.200000000000000177635684 0} H {0 0.9999999999999998889776975 0} r_a 9.099999999999999644728632 r_h 0.1000000000000000055511151
put {outerringmainrightround.s} tor V {0 3.399999999999999911182158 0} H {0 0.9999999999999998889776975 0} r_a 10.90000000000000035527137 r_h 0.1000000000000000055511151
-25
View File
@@ -1,25 +0,0 @@
set(CHESS_PARTS
bishop.asc
chessboard.asc
king.asc
knight.asc
pawn.asc
queen.asc
rook.asc
)
foreach(piece ${CHESS_PARTS})
ADD_G_TARGET(${piece} "BRL-CAD Geometry Models/Sample/Chess")
endforeach(piece ${CHESS_PARTS})
CMAKEFILES(
${CHESS_PARTS}
CMakeLists.txt
)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-27
View File
@@ -1,27 +0,0 @@
title {Bishop by Jeff Sieu. Made for Google Code-in 2017}
units mm
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
put {bottometo.s} eto V {0 0 20} N {0 0 0.06032399549610674427402301} C {2.864077970686895735497046 1.71612229850775266370988 1.889299368274914403542653} r 7.634087276719064618646371 r_d 1.673109642593672896637713
put {head_fill.s} tgc V {0 0 58.80223912679091569088996} H {0 0 22.65963591768163354345234} A {5.387125525462328923254063 0 0} B {0 5.387125525462328923254063 0} C {5.200376920059111007788033 0 0} D {0 5.200376920059111007788033 0}
put {head_bulb.c} comb region no tree {u {u {u {l head_tip.s} {l headeto1.s}} {u {l headeto2.s} {l headeto3.s}}} {u {l headtor.s} {l head_fill.s}}}
put {head_tip.s} ell V {0 0 87.04042899999969051805238} A {4.122892005997910835901621 0 0} B {0 4.122892005997910835901621 0} C {0 0 1.842941974166217855568561}
put {headeto3.s} eto V {4.688718984760804335454747E-15 0 59.13440800000000763247954} N {-7.947115565380555332745523E-18 0 -0.06489312323286719474957351} C {-4.236592184243099801221888 2.53851689495714083477651 -2.794683321910145679112247} r 6.747558139033351665148075 r_d 2.154325975943817361724086
put {headeto2.s} eto V {0 0 69.75203000000003328295861} N {1.448859083826348923311558E-17 0 0.05915416121754862865955715} C {3.216284115722051861752107 0.07864296900740583295963404 7.027901354553716117834483} r 5.71636407530149437405953 r_d 5.245951427846474501848206
put {headeto1.s} eto V {0 0 78.93410500000000240561349} N {-6.702751448643837023482541E-18 0 -0.05473211911638976162608472} C {-4.89647969165551177894713 -1.380861880325698898275277 -7.149314636959307023289512} r 5.669699999999999739941359 r_d 2.770284953476933154092876
put {bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 8.61686192136895989790446 r_h 0.9710977822416242410952236
put {bodycut.s} tor V {0 0 44.99824699999995658572516} H {6.12323399573676603586882E-17 0 1} r_a 84.47809976324354863663757 r_h 78.38786126059979153524182
put {headtor.s} tor V {0 0 61.97812700000005747824616} H {3.061616997868383634231992E-16 0 1} r_a 8.239894264539179502548905 r_h 0.9722303169289367996697138
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
put {headcut.s} rpc V {12.21216100000001958392204 7.476746999999903664502199 83.68170200000177771926246} H {-23.87939453125 2.601874869850522123907568E-16 1.438855652391413561129983E-15} B {-6.645126338810317127466624E-16 -8.09669190546901518246159 -9.5641987525274494430505} r 1.903339211850920698054779
put {bishop.r} comb region yes tree {l bishop.c {1 0 0 0 0 1 0 0 0 0 1 0.960356 0 0 0 1}}
attr set {bishop.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
put {bishop.c} comb region no tree {u {u {l head.c} {l body.c}} {l bottom.c}}
put {scene.g} comb region no tree {u {l bishop.r} {l tile.r}}
put {body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 56.83007219556699851636949} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
put {tile.r} comb region yes tree {l tile.s}
attr set {tile.r} {oshader} {plastic {sh 1}} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
put {body.c} comb region no tree {u {- {l body.s} {l bodycut.s}} {l bodytor.s}}
put {head.c} comb region no tree {- {l head_bulb.c} {l headcut.s}}
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
-83
View File
@@ -1,83 +0,0 @@
title {Chessboard by Jeff Sieu. Made for Google Code-in 2017}
units mm
put {board_cuts.c} comb region no tree {u {u {l boardcut1.s} {l boardcut2.s}} {u {l boardcut3.s} {l boardcut4.s}}}
put {tiles_dark.r} comb region yes tree {l tiles_dark.c}
attr set {tiles_dark.r} {oshader} {plastic} {region} {R} {shader} {plastic {re 0.1 sp 0.8 di 0.2}} {region_id} {1000} {material_id} {1} {los} {100} {color} {75/45/47}
put {wood_plane.s} arb8 V1 {313.5 -313.5 -15} V2 {313.5 313.5 -15} V3 {313.5 313.5 5} V4 {313.5 -313.5 5} V5 {-313.5 -313.5 -15} V6 {-313.5 313.5 -15} V7 {-313.5 313.5 5} V8 {-313.5 -313.5 5}
put {tiles_dark.c} comb region no tree {u {u {u {u {u {l a1.s} {l c1.s}} {u {l e1.s} {l g1.s}}} {u {u {l b2.s} {l d2.s}} {u {l f2.s} {l h2.s}}}} {u {u {u {l a3.s} {l c3.s}} {u {l e3.s} {l g3.s}}} {u {u {l b4.s} {l d4.s}} {u {l f4.s} {l h4.s}}}}} {u {u {u {u {l a5.s} {l c5.s}} {u {l e5.s} {l g5.s}}} {u {u {l b6.s} {l d6.s}} {u {l f6.s} {l h6.s}}}} {u {u {u {l a7.s} {l c7.s}} {u {l e7.s} {l g7.s}}} {u {u {l b8.s} {l d8.s}} {u {l f8.s} {l h8.s}}}}}}
put {boardcut4.s} tgc V {-313.5 -313.5 5} H {-3.839267715326952574428091E-14 627 3.839267715326952574428091E-14} A {3.749399456654646756500121E-32 -6.123233995736770226692379E-16 10} B {42.75 2.617682533177467341666965E-15 0} C {3.74939945665464456697127E-32 -6.123233995736766282387853E-16 10} D {42.75 2.617682533177467341666965E-15 0}
put {boardcut3.s} tgc V {313.5 -313.5 5} H {-627 0 3.839267715326952574428091E-14} A {6.123233995736770226692379E-16 0 10} B {0 42.75 0} C {6.123233995736766282387853E-16 0 10} D {0 42.75 0}
put {boardcut2.s} tgc V {313.5 -313.5 5} H {-3.839267715326952574428091E-14 627 3.839267715326952574428091E-14} A {3.749399456654646756500121E-32 -6.123233995736770226692379E-16 10} B {42.75 2.617682533177467341666965E-15 0} C {3.74939945665464456697127E-32 -6.123233995736766282387853E-16 10} D {42.75 2.617682533177467341666965E-15 0}
put {boardcut1.s} tgc V {313.5 313.5 5} H {-627 0 3.839267715326952574428091E-14} A {6.123233995736770226692379E-16 0 10} B {0 42.75 0} C {6.123233995736766282387853E-16 0 10} D {0 42.75 0}
put {border.r} comb region yes tree {- {- {l wood_plane.s} {l tiles.c}} {l board_cuts.c}}
attr set {border.r} {oshader} {plastic} {region} {R} {shader} {plastic {re 0.1 sp 0.8 di 0.2}} {region_id} {1002} {material_id} {1} {los} {100} {color} {245/227/174}
put {tiles.c} comb region no tree {u {l tiles_light.r} {l tiles_dark.r}}
put {board.g} comb region no tree {u {l tiles.c} {l border.r}}
put {tiles_light.r} comb region yes tree {l tiles_light.c}
attr set {tiles_light.r} {oshader} {plastic} {region} {R} {shader} {plastic {re 0.1 sp 0.8 di 0.2}} {region_id} {1001} {material_id} {1} {los} {100} {color} {255/255/255}
put {h8.s} arb8 V1 {228 171 0} V2 {228 228 0} V3 {228 228 5} V4 {228 171 5} V5 {171 171 0} V6 {171 228 0} V7 {171 228 5} V8 {171 171 5}
put {g8.s} arb8 V1 {171 171 0} V2 {171 228 0} V3 {171 228 5} V4 {171 171 5} V5 {114 171 0} V6 {114 228 0} V7 {114 228 5} V8 {114 171 5}
put {f8.s} arb8 V1 {114 171 0} V2 {114 228 0} V3 {114 228 5} V4 {114 171 5} V5 {57 171 0} V6 {57 228 0} V7 {57 228 5} V8 {57 171 5}
put {h7.s} arb8 V1 {228 114 0} V2 {228 171 0} V3 {228 171 5} V4 {228 114 5} V5 {171 114 0} V6 {171 171 0} V7 {171 171 5} V8 {171 114 5}
put {e8.s} arb8 V1 {57 171 0} V2 {57 228 0} V3 {57 228 5} V4 {57 171 5} V5 {0 171 0} V6 {0 228 0} V7 {0 228 5} V8 {0 171 5}
put {g7.s} arb8 V1 {171 114 0} V2 {171 171 0} V3 {171 171 5} V4 {171 114 5} V5 {114 114 0} V6 {114 171 0} V7 {114 171 5} V8 {114 114 5}
put {d8.s} arb8 V1 {0 171 0} V2 {0 228 0} V3 {0 228 5} V4 {0 171 5} V5 {-57 171 0} V6 {-57 228 0} V7 {-57 228 5} V8 {-57 171 5}
put {f7.s} arb8 V1 {114 114 0} V2 {114 171 0} V3 {114 171 5} V4 {114 114 5} V5 {57 114 0} V6 {57 171 0} V7 {57 171 5} V8 {57 114 5}
put {h6.s} arb8 V1 {228 57 0} V2 {228 114 0} V3 {228 114 5} V4 {228 57 5} V5 {171 57 0} V6 {171 114 0} V7 {171 114 5} V8 {171 57 5}
put {c8.s} arb8 V1 {-57 171 0} V2 {-57 228 0} V3 {-57 228 5} V4 {-57 171 5} V5 {-114 171 0} V6 {-114 228 0} V7 {-114 228 5} V8 {-114 171 5}
put {e7.s} arb8 V1 {57 114 0} V2 {57 171 0} V3 {57 171 5} V4 {57 114 5} V5 {0 114 0} V6 {0 171 0} V7 {0 171 5} V8 {0 114 5}
put {g6.s} arb8 V1 {171 57 0} V2 {171 114 0} V3 {171 114 5} V4 {171 57 5} V5 {114 57 0} V6 {114 114 0} V7 {114 114 5} V8 {114 57 5}
put {b8.s} arb8 V1 {-114 171 0} V2 {-114 228 0} V3 {-114 228 5} V4 {-114 171 5} V5 {-171 171 0} V6 {-171 228 0} V7 {-171 228 5} V8 {-171 171 5}
put {d7.s} arb8 V1 {0 114 0} V2 {0 171 0} V3 {0 171 5} V4 {0 114 5} V5 {-57 114 0} V6 {-57 171 0} V7 {-57 171 5} V8 {-57 114 5}
put {f6.s} arb8 V1 {114 57 0} V2 {114 114 0} V3 {114 114 5} V4 {114 57 5} V5 {57 57 0} V6 {57 114 0} V7 {57 114 5} V8 {57 57 5}
put {h5.s} arb8 V1 {228 0 0} V2 {228 57 0} V3 {228 57 5} V4 {228 0 5} V5 {171 0 0} V6 {171 57 0} V7 {171 57 5} V8 {171 0 5}
put {a8.s} arb8 V1 {-171 171 0} V2 {-171 228 0} V3 {-171 228 5} V4 {-171 171 5} V5 {-228 171 0} V6 {-228 228 0} V7 {-228 228 5} V8 {-228 171 5}
put {c7.s} arb8 V1 {-57 114 0} V2 {-57 171 0} V3 {-57 171 5} V4 {-57 114 5} V5 {-114 114 0} V6 {-114 171 0} V7 {-114 171 5} V8 {-114 114 5}
put {e6.s} arb8 V1 {57 57 0} V2 {57 114 0} V3 {57 114 5} V4 {57 57 5} V5 {0 57 0} V6 {0 114 0} V7 {0 114 5} V8 {0 57 5}
put {g5.s} arb8 V1 {171 0 0} V2 {171 57 0} V3 {171 57 5} V4 {171 0 5} V5 {114 0 0} V6 {114 57 0} V7 {114 57 5} V8 {114 0 5}
put {b7.s} arb8 V1 {-114 114 0} V2 {-114 171 0} V3 {-114 171 5} V4 {-114 114 5} V5 {-171 114 0} V6 {-171 171 0} V7 {-171 171 5} V8 {-171 114 5}
put {d6.s} arb8 V1 {0 57 0} V2 {0 114 0} V3 {0 114 5} V4 {0 57 5} V5 {-57 57 0} V6 {-57 114 0} V7 {-57 114 5} V8 {-57 57 5}
put {f5.s} arb8 V1 {114 0 0} V2 {114 57 0} V3 {114 57 5} V4 {114 0 5} V5 {57 0 0} V6 {57 57 0} V7 {57 57 5} V8 {57 0 5}
put {h4.s} arb8 V1 {228 -57 0} V2 {228 0 0} V3 {228 0 5} V4 {228 -57 5} V5 {171 -57 0} V6 {171 0 0} V7 {171 0 5} V8 {171 -57 5}
put {a7.s} arb8 V1 {-171 114 0} V2 {-171 171 0} V3 {-171 171 5} V4 {-171 114 5} V5 {-228 114 0} V6 {-228 171 0} V7 {-228 171 5} V8 {-228 114 5}
put {c6.s} arb8 V1 {-57 57 0} V2 {-57 114 0} V3 {-57 114 5} V4 {-57 57 5} V5 {-114 57 0} V6 {-114 114 0} V7 {-114 114 5} V8 {-114 57 5}
put {e5.s} arb8 V1 {57 0 0} V2 {57 57 0} V3 {57 57 5} V4 {57 0 5} V5 {0 0 0} V6 {0 57 0} V7 {0 57 5} V8 {0 0 5}
put {g4.s} arb8 V1 {171 -57 0} V2 {171 0 0} V3 {171 0 5} V4 {171 -57 5} V5 {114 -57 0} V6 {114 0 0} V7 {114 0 5} V8 {114 -57 5}
put {b6.s} arb8 V1 {-114 57 0} V2 {-114 114 0} V3 {-114 114 5} V4 {-114 57 5} V5 {-171 57 0} V6 {-171 114 0} V7 {-171 114 5} V8 {-171 57 5}
put {d5.s} arb8 V1 {0 0 0} V2 {0 57 0} V3 {0 57 5} V4 {0 0 5} V5 {-57 0 0} V6 {-57 57 0} V7 {-57 57 5} V8 {-57 0 5}
put {f4.s} arb8 V1 {114 -57 0} V2 {114 0 0} V3 {114 0 5} V4 {114 -57 5} V5 {57 -57 0} V6 {57 0 0} V7 {57 0 5} V8 {57 -57 5}
put {h3.s} arb8 V1 {228 -114 0} V2 {228 -57 0} V3 {228 -57 5} V4 {228 -114 5} V5 {171 -114 0} V6 {171 -57 0} V7 {171 -57 5} V8 {171 -114 5}
put {a6.s} arb8 V1 {-171 57 0} V2 {-171 114 0} V3 {-171 114 5} V4 {-171 57 5} V5 {-228 57 0} V6 {-228 114 0} V7 {-228 114 5} V8 {-228 57 5}
put {c5.s} arb8 V1 {-57 0 0} V2 {-57 57 0} V3 {-57 57 5} V4 {-57 0 5} V5 {-114 0 0} V6 {-114 57 0} V7 {-114 57 5} V8 {-114 0 5}
put {e4.s} arb8 V1 {57 -57 0} V2 {57 0 0} V3 {57 0 5} V4 {57 -57 5} V5 {0 -57 0} V6 {0 0 0} V7 {0 0 5} V8 {0 -57 5}
put {g3.s} arb8 V1 {171 -114 0} V2 {171 -57 0} V3 {171 -57 5} V4 {171 -114 5} V5 {114 -114 0} V6 {114 -57 0} V7 {114 -57 5} V8 {114 -114 5}
put {b5.s} arb8 V1 {-114 0 0} V2 {-114 57 0} V3 {-114 57 5} V4 {-114 0 5} V5 {-171 0 0} V6 {-171 57 0} V7 {-171 57 5} V8 {-171 0 5}
put {d4.s} arb8 V1 {0 -57 0} V2 {0 0 0} V3 {0 0 5} V4 {0 -57 5} V5 {-57 -57 0} V6 {-57 0 0} V7 {-57 0 5} V8 {-57 -57 5}
put {f3.s} arb8 V1 {114 -114 0} V2 {114 -57 0} V3 {114 -57 5} V4 {114 -114 5} V5 {57 -114 0} V6 {57 -57 0} V7 {57 -57 5} V8 {57 -114 5}
put {h2.s} arb8 V1 {228 -171 0} V2 {228 -114 0} V3 {228 -114 5} V4 {228 -171 5} V5 {171 -171 0} V6 {171 -114 0} V7 {171 -114 5} V8 {171 -171 5}
put {a5.s} arb8 V1 {-171 0 0} V2 {-171 57 0} V3 {-171 57 5} V4 {-171 0 5} V5 {-228 0 0} V6 {-228 57 0} V7 {-228 57 5} V8 {-228 0 5}
put {c4.s} arb8 V1 {-57 -57 0} V2 {-57 0 0} V3 {-57 0 5} V4 {-57 -57 5} V5 {-114 -57 0} V6 {-114 0 0} V7 {-114 0 5} V8 {-114 -57 5}
put {e3.s} arb8 V1 {57 -114 0} V2 {57 -57 0} V3 {57 -57 5} V4 {57 -114 5} V5 {0 -114 0} V6 {0 -57 0} V7 {0 -57 5} V8 {0 -114 5}
put {g2.s} arb8 V1 {171 -171 0} V2 {171 -114 0} V3 {171 -114 5} V4 {171 -171 5} V5 {114 -171 0} V6 {114 -114 0} V7 {114 -114 5} V8 {114 -171 5}
put {b4.s} arb8 V1 {-114 -57 0} V2 {-114 0 0} V3 {-114 0 5} V4 {-114 -57 5} V5 {-171 -57 0} V6 {-171 0 0} V7 {-171 0 5} V8 {-171 -57 5}
put {d3.s} arb8 V1 {0 -114 0} V2 {0 -57 0} V3 {0 -57 5} V4 {0 -114 5} V5 {-57 -114 0} V6 {-57 -57 0} V7 {-57 -57 5} V8 {-57 -114 5}
put {f2.s} arb8 V1 {114 -171 0} V2 {114 -114 0} V3 {114 -114 5} V4 {114 -171 5} V5 {57 -171 0} V6 {57 -114 0} V7 {57 -114 5} V8 {57 -171 5}
put {h1.s} arb8 V1 {228 -228 0} V2 {228 -171 0} V3 {228 -171 5} V4 {228 -228 5} V5 {171 -228 0} V6 {171 -171 0} V7 {171 -171 5} V8 {171 -228 5}
put {a4.s} arb8 V1 {-171 -57 0} V2 {-171 0 0} V3 {-171 0 5} V4 {-171 -57 5} V5 {-228 -57 0} V6 {-228 0 0} V7 {-228 0 5} V8 {-228 -57 5}
put {c3.s} arb8 V1 {-57 -114 0} V2 {-57 -57 0} V3 {-57 -57 5} V4 {-57 -114 5} V5 {-114 -114 0} V6 {-114 -57 0} V7 {-114 -57 5} V8 {-114 -114 5}
put {e2.s} arb8 V1 {57 -171 0} V2 {57 -114 0} V3 {57 -114 5} V4 {57 -171 5} V5 {0 -171 0} V6 {0 -114 0} V7 {0 -114 5} V8 {0 -171 5}
put {g1.s} arb8 V1 {171 -228 0} V2 {171 -171 0} V3 {171 -171 5} V4 {171 -228 5} V5 {114 -228 0} V6 {114 -171 0} V7 {114 -171 5} V8 {114 -228 5}
put {b3.s} arb8 V1 {-114 -114 0} V2 {-114 -57 0} V3 {-114 -57 5} V4 {-114 -114 5} V5 {-171 -114 0} V6 {-171 -57 0} V7 {-171 -57 5} V8 {-171 -114 5}
put {d2.s} arb8 V1 {0 -171 0} V2 {0 -114 0} V3 {0 -114 5} V4 {0 -171 5} V5 {-57 -171 0} V6 {-57 -114 0} V7 {-57 -114 5} V8 {-57 -171 5}
put {f1.s} arb8 V1 {114 -228 0} V2 {114 -171 0} V3 {114 -171 5} V4 {114 -228 5} V5 {57 -228 0} V6 {57 -171 0} V7 {57 -171 5} V8 {57 -228 5}
put {a3.s} arb8 V1 {-171 -114 0} V2 {-171 -57 0} V3 {-171 -57 5} V4 {-171 -114 5} V5 {-228 -114 0} V6 {-228 -57 0} V7 {-228 -57 5} V8 {-228 -114 5}
put {c2.s} arb8 V1 {-57 -171 0} V2 {-57 -114 0} V3 {-57 -114 5} V4 {-57 -171 5} V5 {-114 -171 0} V6 {-114 -114 0} V7 {-114 -114 5} V8 {-114 -171 5}
put {e1.s} arb8 V1 {57 -228 0} V2 {57 -171 0} V3 {57 -171 5} V4 {57 -228 5} V5 {0 -228 0} V6 {0 -171 0} V7 {0 -171 5} V8 {0 -228 5}
put {b2.s} arb8 V1 {-114 -171 0} V2 {-114 -114 0} V3 {-114 -114 5} V4 {-114 -171 5} V5 {-171 -171 0} V6 {-171 -114 0} V7 {-171 -114 5} V8 {-171 -171 5}
put {d1.s} arb8 V1 {0 -228 0} V2 {0 -171 0} V3 {0 -171 5} V4 {0 -228 5} V5 {-57 -228 0} V6 {-57 -171 0} V7 {-57 -171 5} V8 {-57 -228 5}
put {a2.s} arb8 V1 {-171 -171 0} V2 {-171 -114 0} V3 {-171 -114 5} V4 {-171 -171 5} V5 {-228 -171 0} V6 {-228 -114 0} V7 {-228 -114 5} V8 {-228 -171 5}
put {c1.s} arb8 V1 {-57 -228 0} V2 {-57 -171 0} V3 {-57 -171 5} V4 {-57 -228 5} V5 {-114 -228 0} V6 {-114 -171 0} V7 {-114 -171 5} V8 {-114 -228 5}
put {b1.s} arb8 V1 {-114 -228 0} V2 {-114 -171 0} V3 {-114 -171 5} V4 {-114 -228 5} V5 {-171 -228 0} V6 {-171 -171 0} V7 {-171 -171 5} V8 {-171 -228 5}
put {a1.s} arb8 V1 {-171 -228 0} V2 {-171 -171 0} V3 {-171 -171 5} V4 {-171 -228 5} V5 {-228 -228 0} V6 {-228 -171 0} V7 {-228 -171 5} V8 {-228 -228 5}
put {tiles_light.c} comb region no tree {u {u {u {u {u {l b1.s} {l d1.s}} {u {l f1.s} {l h1.s}}} {u {u {l a2.s} {l c2.s}} {u {l e2.s} {l g2.s}}}} {u {u {u {l b3.s} {l d3.s}} {u {l f3.s} {l h3.s}}} {u {u {l a4.s} {l c4.s}} {u {l e4.s} {l g4.s}}}}} {u {u {u {u {l b5.s} {l d5.s}} {u {l f5.s} {l h5.s}}} {u {u {l a6.s} {l c6.s}} {u {l e6.s} {l g6.s}}}} {u {u {u {l b7.s} {l d7.s}} {u {l f7.s} {l h7.s}}} {u {u {l a8.s} {l c8.s}} {u {l e8.s} {l g8.s}}}}}}
put {b} comb region no tree {l board.g}
-35
View File
@@ -1,35 +0,0 @@
title {King by Jeff Sieu. Made for Google Code-in 2017}
units mm
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
put {bottometo.s} eto V {0 0 20} N {0 0 0.06032399549610674427402301} C {2.864077970686895735497046 1.71612229850775266370988 1.889299368274914403542653} r 8.344052226122400384156208 r_d 1.673109642593672896637713
put {crossbase.s} arb8 V1 {-1.399999999999999911182158 -2.100000000000000088817842 98.5} V2 {-1.399999999999999911182158 2.100000000000000088817842 98.5} V3 {1.399999999999999911182158 2.100000000000000088817842 98.5} V4 {1.399999999999999911182158 -2.100000000000000088817842 98.5} V5 {-1.399999999999999911182158 -3 94} V6 {-1.399999999999999911182158 3 94} V7 {1.399999999999999911182158 3 94} V8 {1.399999999999999911182158 -3 94}
put {crossrpp2.s} arb8 V1 {1.399999999999999911182158 -5.5 97.84354270490985072683543} V2 {1.399999999999999911182158 5.5 97.84354270490985072683543} V3 {1.399999999999999911182158 5.5 102.5708639999999007841325} V4 {1.399999999999999911182158 -5.5 102.5708639999999007841325} V5 {-1.399999999999999911182158 -5.5 97.84354270490985072683543} V6 {-1.399999999999999911182158 5.5 97.84354270490985072683543} V7 {-1.399999999999999911182158 5.5 102.5708639999999007841325} V8 {-1.399999999999999911182158 -5.5 102.5708639999999007841325}
put {crossrpp1.s} arb8 V1 {1.399999999999999911182158 -2 93.79999999999999715782906} V2 {1.399999999999999911182158 2 93.79999999999999715782906} V3 {1.399999999999999911182158 2 104.7999999999999971578291} V4 {1.399999999999999911182158 -2 104.7999999999999971578291} V5 {-1.399999999999999911182158 -2 93.79999999999999715782906} V6 {-1.399999999999999911182158 2 93.79999999999999715782906} V7 {-1.399999999999999911182158 2 104.7999999999999971578291} V8 {-1.399999999999999911182158 -2 104.7999999999999971578291}
put {crowncut1.s} eto V {0 0 81.72700899999993850997271} N {0 0 0.6853489141366997383642001} C {7.936978064717960634766314 0.7583105325216803471732874 14.21238543732845016620558} r 19.09763828673395735791019 r_d 8.357084880198749843316364
put {crossrcc2.s} tgc V {0 0 90.50940899999976352319209} H {0 0 3.460360060764851031223088} A {5.74552092081112419919009 0 0} B {0 5.74552092081112419919009 0} C {5.74552092081112419919009 0 0} D {0 5.74552092081112419919009 0}
put {crosscap1.s} arb8 V1 {1.399999999999999911182158 -2 104.7999999999999971578291} V2 {1.399999999999999911182158 2 104.7999999999999971578291} V3 {-1.399999999999999911182158 2 104.7999999999999971578291} V4 {-1.399999999999999911182158 -2 104.7999999999999971578291} V5 {1.399999999999999911182158 0 106.7999999999999971578291} V6 {1.399999999999999911182158 0 106.7999999999999971578291} V7 {-1.399999999999999911182158 0 106.7999999999999971578291} V8 {-1.399999999999999911182158 0 106.7999999999999971578291}
put {crossrcc1.s} tgc V {0 0 92.2746839999997803261067} H {0 0 2.791740440327786565433144} A {4.517371551035873622481631 0 0} B {0 4.517371551035873622481631 0} C {4.517371551035873622481631 0 0} D {0 4.517371551035873622481631 0}
put {crowntop.s} ell V {0 0 89.56678299999987302726367} A {14.0447366829880344596404 0 0} B {0 14.44069976610209771195059 0} C {0 0 3.638257540532901401775234}
put {crownrcc.s} tgc V {0 0 74.52245129853007199471904} H {0 0 15.07198012589280011752635} A {14.92710113237911251360401 0 0} B {0 14.92710113237911251360401 0} C {14.92710113237911251360401 0 0} D {0 14.92710113237911251360401 0}
put {bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 9.461224391138355116481762 r_h 0.9710977822416242410952236
put {bodyjut.s} ell V {0 0 63.05140500000015180148694} A {13.30005660511547738167337 0 0} B {0 13.30005660511547738167337 0} C {0 0 3.569547284150617283415841}
put {bodycut.s} tor V {0 0 52.17296999999997808572516} H {6.12323399573676603586882E-17 0 1} r_a 107.7000000000000028421709 r_h 101.8122462061219977158544
put {necktor.s} tor V {0 0 75.48642500000005384208634} H {3.061616997868383634231992E-16 0 1} r_a 8.239894264539179502548905 r_h 0.9722303169289367996697138
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
put {necketo.s} eto V {4.688718984760806702037463E-15 0 73.78394899999960898639983} N {-6.414480946927261832397496E-18 0 -0.05237821183539019542774184} C {-3.419547585807252154666003 2.04895324878489937248105 -2.255716904279041923331306} r 6.983691090436433768218194 r_d 1.738855162288100331124951
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
put {cross.c} comb region no tree {u {u {u {l crossbase.s} {l crosscap1.s}} {u {l crossrpp1.s} {l crossrpp2.s}}} {u {l crossrcc1.s} {l crossrcc2.s}}}
put {crown.c} comb region no tree {u {- {l crownrcc.s} {l crowncut1.s}} {- {l crowntop.s} {l crownrcc.s}}}
attr set {crown.c} {inherit} {1}
put {scene.g} comb region no tree {u {l king.r} {l tile.r}}
put {body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 69.67849364592308347710059} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
put {king.r} comb region yes tree {l king.c {1 0 0 0 0 1 0 0 0 0 1 0.960356 0 0 0 1}}
attr set {king.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
put {tile.r} comb region yes tree {l tile.s}
attr set {tile.r} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
put {body.c} comb region no tree {u {u {- {l body.s} {l bodycut.s}} {l bodytor.s}} {l bodyjut.s}}
put {king.c} comb region no tree {u {u {u {l cross.c} {l neck.c}} {u {l crown.c} {l body.c}}} {l bottom.c}}
put {neck.c} comb region no tree {u {u {l necketo.s} {l necktor.s}} {l neck_filler.s}}
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
put {neck_filler.s} tgc V {0 0 72.44353981907315187527274} H {0 0 8.98374965637291111875129} A {7.656920043513968821002891 0 0} B {0 7.656920043513968821002891 0} C {7.142477262139500737703202 0 0} D {0 7.142477262139500737703202 0}
-37
View File
@@ -1,37 +0,0 @@
title {Knight by Jeff Sieu. Made for Google Code-in 2017}
units mm
put {nosebridge.s} tgc V {9.352709000000004380126484 -3.525789999999890511617195 80.78344850000023313896236} H {-19.14158212483127030623109 -1.101398557933205700619376E-15 -4.008762911514063843746032E-16} A {3.673940397442060361078391E-16 -5.638155724715451455608672 -2.052120859954011056203171} B {0 -1.636701665453711651565527 4.496800868217849078689596} C {3.673940397442060361078391E-16 -5.638155724715451455608672 -2.052120859954010612113962} D {0 -1.636701665453711651565527 4.496800868217849078689596}
put {bottomtor2.s} tor V {0 0 9.596580000000059840203903} H {6.12323399573676603586882E-17 0 1} r_a 13.70450855072022378067231 r_h 3.825815710827906279689614
put {bottomtor1.s} tor V {0 0 28.10273999999994032350514} H {6.12323399573676603586882E-17 0 1} r_a 12.58196306773280248592073 r_h 1.732851834446541783307794
put {bodysidecutleft.s} tgc V {53.6557214677912170941454 -33.67507614822139316856919 95.69336050000360671674571} H {-20.22449106457484546695014 143.9047313715058749039599 6.169122640972837335375385E-15} A {41.33529643904953587707496 5.809297064214792527536702 -2.55302085840457415599758} B {-6.045441934467547184794967 -0.8496314556149066055112939 -99.81347984218669466827123} C {41.33529643904953587707496 5.809297064214792527536702 -2.55302085840457415599758} D {-6.045441934467546296616547 -0.8496314556149064944889915 -99.81347984218669466827123}
put {headsidecutleft.s} tgc V {22.4313670000000300319698 -28.39713199999998138878254 66.36153450000099951466837} H {6.936023102199139422907592 58.60216329849748717606417 21.47832101088326695048636} A {20.34482858059398324712674 -2.407969144867709410107182 0} B {0.8235739520514423483987798 6.958341187070909761303028 -19.25132668795071921863382} C {20.34482858059398324712674 -2.407969144867709410107182 0} D {0.8235739520514423483987798 6.958341187070909761303028 -19.25132668795071921863382}
put {bottometo.s} eto V {0 0 20} N {0 0 0.06032399549610674427402301} C {2.864077970686895735497046 1.71612229850775266370988 1.889299368274914403542653} r 12.40790665756528099450406 r_d 1.673109642593672896637713
put {bodyrcc2.s} tgc V {1.17739012233862844939333E-14 11.10387200000011453937532 69.77637950000288924456981} H {0 -6.924928138629929286196329 19.02608369223165496464389} A {13.69742765710896037489874 0 0} B {0 12.87137169313410289817057 4.684796170477387278197057} C {13.69742765710896037489874 0 0} D {0 12.87137169313410289817057 4.684796170477387278197057}
put {bodycut.s} tor V {0 0 44.16302899999998743396645} H {6.12323399573676603586882E-17 0 1} r_a 107.6761975244730109579905 r_h 97.57911721751440836669644
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 12.99673099698723177652937 r_d 4.265499428605880716247611
put {bodyrcc.s} tgc V {1.177390122338628764937692E-14 -5.261487999999998166344994 23.35826750000251195160672} H {0 28.82813499219855302158066 49.9317944939421209937791} A {18.70346099816892859735162 0 0} B {0 16.19767236310574887170333 -9.351730499084462522318972} C {18.70346099816892859735162 0 0} D {0 16.19767236310574887170333 -9.351730499084462522318972}
put {headrcc.s} tgc V {2.364945229490083123615446E-14 -22.43134200000001854391485 70.83590250000071364411269} H {0 21.66504172617712953297087 7.885430312463741486794788} A {8.668888204531146612907833 0 0} B {0 2.96493438618794336036899 -8.146090276215920411573279} C {8.668888204531146612907833 0 0} D {0 2.96493438618794336036899 -8.146090276215920411573279}
put {bodybottomsph.s} ell V {0 0 60.84612300000016915646484} A {33.54831727294207155409822 0 0} B {0 33.54831727294207155409822 0} C {0 0 33.54831727294207155409822}
put {toptor.s} tor V {-1.290968171125081238436545E-14 26.0108720000002442418463 8.970701999999491249582206} H {1 0 0} r_a 65.14638440000000230156729 r_h 16.28659610000000057539182
put {earcut.s} tgc V {6.942508314766508912183652E-14 -13.66162200000000304100922 85.5714520000014005063349} H {0 30.34242292565693688288775 11.04373878045554668858586} A {5 0 0} B {0 2.052120859954011500292381 -5.638155724715449679251833} C {5 0 0} D {0 2.052120859954011500292381 -5.638155724715449679251833}
put {knight.r} comb region yes tree {l knight.c {1 0 0 0 0 1 0 0 0 0 1 0.960356 0 0 0 1}}
attr set {knight.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
put {bottom.c} comb region no tree {u {u {u {l bottometo.s} {l bottomtor1.s}} {u {l bottomtor2.s} {l baseeto.s}}} {l base_filler.s}}
put {bodyfrontcutright.s} tgc V {-13.74871600000018645459932 -33.1595789999997947461452 63.90854050000422859056926} H {-41.4843562340515603636959 49.43913057838897628926134 -5.652944372718708048669131E-15} A {-20.4576653316778021007849 -17.16601943455906820190648 -3.9911764866229089143701} B {4.529143121461073562272759 3.800402322767091778388249 -39.56063453447669076012971} C {-20.4576653316778021007849 -17.16601943455906820190648 -3.9911764866229089143701} D {4.529143121461073562272759 3.800402322767091778388249 -39.56063453447669076012971}
put {eararb.s} arb8 V1 {-26.90565549999994132690517 -0.4176225000000420295442893 84.91516750000046442892199} V2 {-26.90565549999994132690517 7.334443121211129401615381 86.28206582524249768084701} V3 {26.30018901632412564595143 7.334443121211129401615381 86.28206582524249768084701} V4 {26.30018901632412564595143 -0.4176225000000420295442893 84.91516750000046442892199} V5 {-26.90565549999994132690517 2.091511985363494030565334 93.35068228383262578518043} V6 {-26.90565549999994132690517 2.091511985363494030565334 93.35068228383262578518043} V7 {26.300189016324097224242 2.091511985363494030565334 93.35068228383262578518043} V8 {26.300189016324097224242 2.091511985363494030565334 93.35068228383262578518043}
put {knight.c} comb region no tree {u {u {l head.c} {l body.c}} {u {l base.c} {l bottom.c}}}
put {mouth.s} arb8 V1 {-14.69511850000539787686193 -22.33384350000072160469244 67.49057449999915547778073} V2 {-14.69511850000507457991716 -22.33384350000071805197877 65.1856549462537060435352} V3 {14.5501529284419532928041 -22.33384350000074292097452 65.18565494625448764054454} V4 {14.55015292844173302455602 -22.3338435000007464736882 67.49057449999935442974675} V5 {-14.69511850000531438809048 -12.88574518707542360118623 69.9097041027158496717675} V6 {-14.69511850000531438809048 -12.88574518707542360118623 69.9097041027158496717675} V7 {14.55015292844241514558234 -12.88574518707783234106046 69.90970410271543755698076} V8 {14.55015292844241514558234 -12.88574518707783234106046 69.90970410271543755698076}
put {bodyfrontcut.s} tgc V {-30.07391999999968135171002 -30.49249499999977786046657 57.49796150000538830227015} H {64.53820143527930497384659 5.398293464965921771651639E-15 1.446468374443825363721499E-15} A {1.653406732298293568477734E-15 -23.38457478442728287859609 13.50109054667402830318679} B {2.449293598294706907385594E-15 -20 -34.64101615137754208717524} C {1.653406732298293568477734E-15 -23.38457478442728287859609 13.50109054667402830318679} D {2.449293598294706907385594E-15 -20 -34.64101615137754208717524}
put {scene.g} comb region no tree {u {l knight.r} {l tile.r}}
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
put {tile.r} comb region yes tree {l tile.s}
attr set {tile.r} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
put {base.s} tgc V {0 0 5.912562917080187219198706} H {0 0 23.32946212598685420402944} A {20.43520228184366160917307 0 0} B {0 20.43520228184366160917307 0} C {20.43520228184366160917307 0 0} D {0 20.43520228184366160917307 0}
put {body.c} comb region no tree {u {- {- {- {- {- {n {n {l bodyrcc.s} {l bodybottomsph.s}} {l bodysidesph.s}} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l bodyfrontcutleft.s}} {l bodyfrontcutright.s}} {l bodyfrontcut.s}} {- {- {- {- {- {- {- {- {n {n {l bodyrcc2.s} {l bodysidesph.s}} {l toptor.s}} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l bodyfrontcutleft.s}} {l bodyfrontcutright.s}} {l bodyfrontcut.s}} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l bodyfrontcut.s}}}
put {base.c} comb region no tree {u {u {u {u {l bottomtor1.s} {l bottomtor1.s}} {- {- {l base.s} {l bodycut.s}} {l bottomtor1.s}}} {l bottomtor1.s}} {l bottomtor1.s}}
put {head.c} comb region no tree {u {u {- {- {- {- {- {n {l headrcc.s} {l toptor.s}} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l headsidecutleft.s}} {l headsidecutright.s}} {l mouth.s}} {- {- {- {- {l nosebridge.s} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l headsidecutleft.s}} {l headsidecutright.s}}} {- {- {- {- {- {l eararb.s} {l bodysidecutleft.s}} {l bodysidecutright.s}} {l headsidecutleft.s}} {l headsidecutright.s}} {l earcut.s}}}
put {bodyfrontcutleft.s} tgc V {13.74871600000018645459932 -33.1595789999997947461452 63.90854050000422859056926} H {41.48435623405157457455061 49.43913057838896918383398 -5.65294437271870647094732E-15} A {20.45766533167779854807122 -17.16601943455906820190648 -3.99117648662290935845931} B {-4.529143121461062904131722 3.800402322767092222477459 -39.56063453447669076012971} C {20.45766533167779854807122 -17.16601943455906820190648 -3.99117648662290935845931} D {-4.529143121461062904131722 3.800402322767092222477459 -39.56063453447669076012971}
put {bodysidecutright.s} tgc V {-53.6557214677912170941454 -33.67507614822139316856919 95.69336050000360671674571} H {20.22449106457484901966382 143.9047313715058749039599 6.169122640972837335375385E-15} A {-41.33529643904954298250232 5.809297064214777428503567 -2.553020858404567494659432} B {6.045441934467558731114423 -0.8496314556149066055112939 -99.81347984218669466827123} C {-41.33529643904954298250232 5.809297064214777428503567 -2.553020858404567494659432} D {6.045441934467559619292842 -0.8496314556149064944889915 -99.81347984218669466827123}
put {headsidecutright.s} tgc V {-22.4313670000000300319698 -28.39713199999998138878254 66.36153450000099951466837} H {-6.936023102199119882982359 58.60216329849748717606417 21.47832101088326695048636} A {-20.34482858059398324712674 -2.407969144867712074642441 0} B {-0.8235739520514422373764774 6.958341187070909761303028 -19.2513266879507227713475} C {-20.34482858059398324712674 -2.407969144867712074642441 0} D {-0.8235739520514422373764774 6.958341187070909761303028 -19.2513266879507227713475}
put {bodysidesph.s} ell V {1.591615728102624416351318E-12 -17.12677000000023497250368 59.51325500000131540900838} A {40 0 0} B {0 40 0} C {0 0 57.67733156681060791015625}
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
-51
View File
@@ -1,51 +0,0 @@
title {Pawn by Jeff Sieu. Made for Google Code-in 2017}
units mm
put {crowninset.s} tgc V {0 0 58} H {0 0 0.5999999999999999777955395} A {16.89118510350817103926602 0 0} B {0 16.89118510350817103926602 0} C {16.89118510350817103926602 0 0} D {0 16.89118510350817103926602 0}
put {crowninner.s} tgc V {0 0 4} H {0 0 6} A {10.16165733953459060501245 0 0} B {0 10.16165733953459060501245 0} C {11.34243115837037585436065 0 0} D {0 11.34243115837037585436065 0}
put {crowninsetsolid.s} tgc V {0 0 58} H {0 0 0.5999999999999999777955395} A {12.45527182860042714196425 0 0} B {0 12.45527182860042714196425 0} C {12.45527182860042714196425 0 0} D {0 12.45527182860042714196425 0}
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 9.486078136436923102792207 r_h 3.825815710827906279689614
put {bottometo.s} eto V {0 0 20} N {0 0 0.05994492135330928977987597} C {2.846080192311732925958268 1.705338238468419920224051 1.877427068825471501156699} r 5.027862554501921543703702 r_d 1.662595872768639404526425
put {1_bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 10.44723380101833853927928 r_h 0.9710977822416242410952236
put {1_bodycut.s} tor V {0 0 41} H {6.12323399573676603586882E-17 0 1} r_a 86.63076947877770805916953 r_h 78.38786126059979153524182
put {1_bodyeto.s} eto V {-0.2528320000000000011830537 0 53} N {0 0 0.03930267507158188844407221} C {11.02968444236560330296015 0 11.02968444236560330296015} r 16.28367943394245997978942 r_d 4.327199580192768735287245
put {1_baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
put {1_bodytop.c} comb region no tree {- {l bodytop.s} {l 1_bodyeto.s}}
put {crowncut3.s} arb8 V1 {-13.99038105676657828269072 5.767949192431094829203175 4} V2 {11.9903810567665729536202 -9.232050807568883854514752 4.000000000000001776356839} V3 {11.9903810567665729536202 -9.232050807568883854514752 10.00000000000000355271368} V4 {-13.99038105676657828269072 5.767949192431094829203175 10} V5 {-11.99038105676654808462445 9.232050807568848327377964 4} V6 {13.99038105676657472997704 -5.767949192431118810020507 4.000000000000001776356839} V7 {13.99038105676657472997704 -5.767949192431118810020507 10.00000000000000355271368} V8 {-11.99038105676654808462445 9.232050807568848327377964 10}
put {crowncut2.s} arb8 V1 {-11.99038105676656940090652 -9.232050807568908723510503 3.999999999999998223643161} V2 {13.99038105676658183540439 5.767949192431108151879471 3.99999999999999866773237} V3 {13.99038105676658538811807 5.767949192431077065634781 10.00000000000000355271368} V4 {-11.99038105676654453191077 -9.232050807568926487078897 10} V5 {-13.99038105676658716447491 -5.767949192431157889870974 3.99999999999999866773237} V6 {11.99038105676657472997704 9.232050807568862538232679 3.99999999999999911182158} V7 {11.990381056766564071836 9.232050807568855432805321 10.00000000000000355271368} V8 {-13.99038105676657472997704 -5.767949192431152560800456 10}
put {crowncut1.s} arb8 V1 {1.999999999999999777955395 -14.99999999999999822364316 4} V2 {1.999999999999999777955395 14.99999999999999822364316 4} V3 {1.999999999999999777955395 14.99999999999999822364316 10} V4 {1.999999999999999777955395 -14.99999999999999822364316 10} V5 {-1.999999999999999777955395 -14.99999999999999822364316 4} V6 {-1.999999999999999777955395 14.99999999999999822364316 4} V7 {-1.999999999999999777955395 14.99999999999999822364316 10} V8 {-1.999999999999999777955395 -14.99999999999999822364316 10}
put {crownrcc.s} tgc V {0 0 -2.292185375575158445826673} H {0 0 12.29218537557515844582667} A {14.16165733953459238136929 0 0} B {0 14.16165733953459238136929 0} C {14.16165733953459238136929 0 0} D {0 14.16165733953459238136929 0}
put {1_bottom.c} comb region no tree {u {u {l 1_bottometo.s} {l 1_bottomtor.s}} {u {l 1_baseeto.s} {l 1_base_filler.s}}}
put {bodyjut.s} tgc V {0 0 42} H {0 0 2.264716425774114583191476} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
put {bodytor.s} tor V {0 0 25.00000000000000355271368} H {6.12323399573676603586882E-17 0 1} r_a 6.146768722816724483948292 r_h 0.8241116028491989320414746
put {bodytop.s} tgc V {0 0 45.57436401080622090375982} H {0 0 10.23282399021384136972301} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
put {bodycut.s} tor V {0 0 37.96582364986083035773845} H {6.12323399573676603586882E-17 0 1} r_a 67.81451175298326461415854 r_h 63.43019393270687800168162
put {bodyeto.s} eto V {-0.2528320000000000011830537 0 53} N {0 0 0.03930267507158188844407221} C {11.02968444236560330296015 0 11.02968444236560330296015} r 16.28367943394245997978942 r_d 4.327199580192768735287245
put {baseeto.s} eto V {0 0 4.281399000000007504240784} N {-4.792704526346514451144025E-18 0 -0.03913540238445389202182056} C {8.160812227361974535710942 -1.196165406603733272206114 -3.847323061096424634541791} r 9.284537665853610732824563 r_d 3.736676917349199378293179
put {necketo.s} eto V {0 0 40.72638399999996039468897} N {-3.291837815534646033062117E-18 0 -0.02687989563869803977258499} C {4.168219486530275297297976 -0.6109538876782616423355421 -1.965060156692675530365477} r 5.706605353654313539379928 r_d 2.566512146398107763189955
put {bodytop.c} comb region no tree {u {l head.s} {l necketo.s}}
put {1_scene.g} comb region no tree {u {l rook.r {1 0 0 -58 0 1 0 0 0 0 1 0 0 0 0 1}} {l 1_tile.r {1 0 0 -58 0 1 0 0 0 0 1 0 0 0 0 1}}}
put {1_base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
put {1_body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 49.90908570176724623479458} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
put {1_tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
put {1_tile.r} comb region yes tree {l 1_tile.s}
attr set {1_tile.r} {region} {R} {color} {255/255/255} {los} {100} {material_id} {1} {region_id} {1000} {shader} {plastic {re 0.5 sh 1}}
put {1_body.c} comb region no tree {u {u {- {l 1_body.s} {l 1_bodycut.s}} {l 1_bodytor.s}} {l bodyjut.s}}
put {crown.c} comb region no tree {u {- {- {- {- {- {l crownrcc.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}} {l crowninner.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut1.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut2.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut3.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowninset.s}} {l crowninsetsolid.s}}
put {scene.g} comb region no tree {u {l pawn.r} {l tile.r}}
put {body.s} tgc V {0 0 -0.6898679999999998146975599} H {0 0 42.85638383046779154028627} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
put {pawn.r} comb region yes tree {l pawn.c {1 0 0 0 0 1 0 0 0 0 1 0.991685000000004 0 0 0 1}}
attr set {pawn.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
put {rook.r} comb region yes tree {l rook.c {1 0 0 0 0 1 0 0 0 0 1 1.090422 0 0 0 1}}
attr set {rook.r} {region} {R} {color} {255/255/217} {los} {100} {material_id} {1} {region_id} {1000} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}}
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
put {tile.r} comb region yes tree {l tile.s}
attr set {tile.r} {oshader} {plastic {sh 1}} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
put {body.c} comb region no tree {u {- {l body.s} {l bodycut.s}} {l bodytor.s}}
put {pawn.c} comb region no tree {u {u {l top.c} {l body.c}} {u {l bottom.c} {l bodytop.c}}}
put {rook.c} comb region no tree {u {u {l crown.c} {l 1_body.c}} {u {l 1_bottom.c} {l 1_bodytop.c}}}
put {head.s} ell V {0 0 52.26777799999997853319655} A {10.18854239405582262634198 0 0} B {0 10.18854239405582262634198 0} C {0 0 10.18854239405582262634198}
put {top.c} comb region no tree {u {l head.s} {l necketo.s}}
put {1_bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
put {1_bottometo.s} eto V {0 0 20} N {0 0 0.07140720069529053748436098} C {3.390289200472452524337541 2.031421963671408370544214 2.236416504815224470803514} r 9.036682630367613100474955 r_d 1.980506679827312765951319
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {14.57675099872487578522851 0 0} B {0 14.57675099872487578522851 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
-44
View File
@@ -1,44 +0,0 @@
title {Queen by Jeff Sieu. Made for Google Code-in 2017}
units mm
put {crown_fill.s} tgc V {0 0 85.4996148325125346900677} H {0 0 3.961725628291488110477303} A {13.92497241322581302824801 0 0} B {0 13.92497241322581302824801 0} C {10.3643310870127276501762 0 0} D {0 10.3643310870127276501762 0}
put {crown_main.c} comb region no tree {u {u {- {- {l crownrcc.s} {l crowncut1.s}} {l crowncut2.s}} {- {- {l crown_fill.s} {l crowncut2.s}} {l crownrcc.s}}} {- {- {- {l crowneto1.s} {l crownrcc.s}} {l crowncut2.s}} {l crown_fill.s}}}
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
put {bottometo.s} eto V {0 0 20} N {0 0 0.06032399549610674427402301} C {2.864077970686895735497046 1.71612229850775266370988 1.889299368274914403542653} r 7.93389995193779462567818 r_d 1.673109642593672896637713
put {head_fill.s} tgc V {0 0 67.65223912679090290112072} H {0 0 22.65963591768163354345234} A {5.387125525462328923254063 0 0} B {0 5.387125525462328923254063 0} C {5.200376920059111007788033 0 0} D {0 5.200376920059111007788033 0}
put {crowncut2.s} tgc V {0 0 86.89911600000084490602603} H {0 0 6.858375356511876574927555} A {9.438877285833902064382528 0 0} B {0 9.438877285833902064382528 0} C {15.49844917074207906182437 0 0} D {0 15.49844917074207906182437 0}
put {crowncut1.s} eto V {0 0 77.72700899999993850997271} N {0 0 0.6853489141366997383642001} C {7.936978064717960634766314 0.7583105325216803471732874 14.21238543732845016620558} r 19.09763828673395735791019 r_d 8.357084880198749843316364
put {crowneto1.s} eto V {1.577721810442023610823457E-30 0 87.39109400000032223942981} N {-1.573547818886363209483057E-17 0 -0.04282997677321952190165888} C {-1.665828485074095866025345 -1.27132480626570165682665 -1.898428097677101966667124} r 12.13000000000000078159701 r_d 1.123246664863733368378007
put {crownell8.s} ell V {-13.73660800000212844906855 2.220446049250313080847263E-14 87.68836799997369269021874} A {0 -2.442952198710223399302777 1.005777905178345307186806E-16} B {3.658968546871206317661063 0 3.323573023963026340510396} C {-0.7091037075487675034324297 0 0.7806623003868651267112}
put {crownell7.s} ell V {-9.713248667302867289663482 9.713248667302899264086591 87.68836799997369269021874} A {-1.727428065822585123711974 -1.727428065822585123711974 1.005777905178345307186806E-16} B {2.587281471640917818177741 -2.587281471640917818177741 3.323573023963026340510396} C {-0.5014120401722559350332631 0.5014120401722559350332631 0.7806623003868651267112}
put {crownell6.s} ell V {2.220446049250313080847263E-14 13.73660800000212844906855 87.68836799997369269021874} A {-2.442952198710223399302777 0 1.005777905178345307186806E-16} B {0 -3.658968546871206317661063 3.323573023963026340510396} C {0 0.7091037075487675034324297 0.7806623003868651267112}
put {crownell5.s} ell V {9.713248667302899264086591 9.713248667302867289663482 87.68836799997369269021874} A {-1.727428065822585123711974 1.727428065822585123711974 1.005777905178345307186806E-16} B {-2.587281471640917818177741 -2.587281471640917818177741 3.323573023963026340510396} C {0.5014120401722559350332631 0.5014120401722559350332631 0.7806623003868651267112}
put {crownell4.s} ell V {13.73660800000212844906855 -2.220446049250313080847263E-14 87.68836799997369269021874} A {0 2.442952198710223399302777 1.005777905178345307186806E-16} B {-3.658968546871206317661063 0 3.323573023963026340510396} C {0.7091037075487675034324297 0 0.7806623003868651267112}
put {crownell3.s} ell V {9.713248667302867289663482 -9.713248667302899264086591 87.68836799997369269021874} A {1.727428065822584901667369 1.727428065822584901667369 1.005777905178345307186806E-16} B {-2.587281471640917818177741 2.587281471640917818177741 3.323573023963026340510396} C {0.5014120401722559350332631 -0.5014120401722559350332631 0.7806623003868651267112}
put {crownell2.s} ell V {-2.220446049250313080847263E-14 -13.73660800000212844906855 87.68836799997369269021874} A {2.442952198710222955213567 0 1.005777905178345307186806E-16} B {0 3.658968546871206317661063 3.323573023963026340510396} C {0 -0.7091037075487675034324297 0.7806623003868651267112}
put {crownell1.s} ell V {-9.713248667302899264086591 -9.713248667302867289663482 87.68836799997369269021874} A {1.727428065822584679622764 -1.727428065822584679622764 1.005777905178345307186806E-16} B {2.587281471640917818177741 2.587281471640917818177741 3.323573023963026340510396} C {-0.5014120401722559350332631 -0.5014120401722559350332631 0.7806623003868651267112}
put {crownrcc.s} tgc V {0 0 70.52245129853007199471904} H {0 0 15.07198012589280011752635} A {14.92710113237911251360401 0 0} B {0 14.92710113237911251360401 0} C {14.92710113237911251360401 0 0} D {0 14.92710113237911251360401 0}
put {head_tip.s} ell V {0 0 94.91151499999973850663082} A {3.119016812725599496758377 0 0} B {0 3.119016812725599496758377 0} C {0 0 1.345488882629591875783603}
put {crownell.c} comb region no tree {u {u {u {l crownell1.s} {l crownell2.s}} {u {l crownell3.s} {l crownell4.s}}} {u {u {l crownell5.s} {l crownell6.s}} {u {l crownell7.s} {l crownell8.s}}}}
put {headeto1.s} eto V {0 0 89.57779000000000735326466} N {-5.519803738384860362821316E-18 0 -0.04507261801711288928817822} C {-4.376792271273803436315575 -1.09418866449798435347418 -4.1289869793813673837235} r 4.82069915201276888438997 r_d 2.281365997196153738713065
put {bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 9.140689709069368618088447 r_h 0.9710977822416242410952236
put {bodyjut.s} ell V {0 0 57.95812100000001976241037} A {13.30005660511547738167337 0 0} B {0 13.30005660511547738167337 0} C {0 0 3.569547284150617283415841}
put {bodycut.s} tor V {0 0 46.43319499999997646000338} H {6.12323399573676603586882E-17 0 1} r_a 84.47809976324354863663757 r_h 78.38786126059979153524182
put {necktor.s} tor V {0 0 70.41021300000004146113497} H {3.061616997868383634231992E-16 0 1} r_a 8.239894264539179502548905 r_h 0.9722303169289367996697138
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
put {necketo.s} eto V {4.688718984760804335454747E-15 0 67.98440800000000194813765} N {-7.947115565380555332745523E-18 0 -0.06489312323286719474957351} C {-4.236592184243099801221888 2.53851689495714083477651 -2.794683321910145679112247} r 6.747558139033351665148075 r_d 2.154325975943817361724086
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
put {queen.r} comb region yes tree {l queen.c {1 0 0 0 0 1 0 0 0 0 1 0.960356 0 0 0 1}}
attr set {queen.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
put {crown.c} comb region no tree {- {l crown_main.c} {l crownell.c}}
attr set {crown.c} {inherit} {1}
put {queen.c} comb region no tree {u {u {u {l head.c} {l neck.c}} {u {l crown.c} {l body.c}}} {l bottom.c}}
put {scene.g} comb region no tree {u {l queen.r} {l tile.r}}
put {body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 59.45235824170033822611003} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
put {tile.r} comb region yes tree {l tile.s}
attr set {tile.r} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
put {body.c} comb region no tree {u {u {- {l body.s} {l bodycut.s}} {l bodytor.s}} {l bodyjut.s}}
put {neck.c} comb region no tree {u {u {l necketo.s} {l necktor.s}} {l neck_filler.s}}
put {head.c} comb region no tree {u {u {l head_tip.s} {l headeto1.s}} {l head_fill.s}}
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
put {neck_filler.s} tgc V {5.044847376139677212870351E-16 0.11939600000000516466514 64.39600271525775099235034} H {0 0 13.56002315446382588959295} A {7.491481711620123995487575 0 0} B {0 7.491481711620123995487575 0} C {7.491481711620123995487575 0 0} D {0 7.491481711620123995487575 0}
-30
View File
@@ -1,30 +0,0 @@
title {Rook by Jeff Sieu. Made for Google Code-in 2017}
units mm
put {crowninset.s} tgc V {0 0 58} H {0 0 0.5999999999999999777955395} A {16.89118510350817103926602 0 0} B {0 16.89118510350817103926602 0} C {16.89118510350817103926602 0 0} D {0 16.89118510350817103926602 0}
put {crowninner.s} tgc V {0 0 4} H {0 0 6} A {10.16165733953459060501245 0 0} B {0 10.16165733953459060501245 0} C {11.34243115837037585436065 0 0} D {0 11.34243115837037585436065 0}
put {crowninsetsolid.s} tgc V {0 0 58} H {0 0 0.5999999999999999777955395} A {12.45527182860042714196425 0 0} B {0 12.45527182860042714196425 0} C {12.45527182860042714196425 0 0} D {0 12.45527182860042714196425 0}
put {bottomtor.s} tor V {0 0 9} H {6.12323399573676603586882E-17 0 1} r_a 11.78466675885103676080234 r_h 3.825815710827906279689614
put {bottometo.s} eto V {0 0 20} N {0 0 0.07140720069529053748436098} C {3.390289200472452524337541 2.031421963671408370544214 2.236416504815224470803514} r 9.036682630367613100474955 r_d 1.980506679827312765951319
put {crowncut3.s} arb8 V1 {-13.99038105676657828269072 5.767949192431094829203175 4} V2 {11.9903810567665729536202 -9.232050807568883854514752 4.000000000000001776356839} V3 {11.9903810567665729536202 -9.232050807568883854514752 10.00000000000000355271368} V4 {-13.99038105676657828269072 5.767949192431094829203175 10} V5 {-11.99038105676654808462445 9.232050807568848327377964 4} V6 {13.99038105676657472997704 -5.767949192431118810020507 4.000000000000001776356839} V7 {13.99038105676657472997704 -5.767949192431118810020507 10.00000000000000355271368} V8 {-11.99038105676654808462445 9.232050807568848327377964 10}
put {crowncut2.s} arb8 V1 {-11.99038105676656940090652 -9.232050807568908723510503 3.999999999999998223643161} V2 {13.99038105676658183540439 5.767949192431108151879471 3.99999999999999866773237} V3 {13.99038105676658538811807 5.767949192431077065634781 10.00000000000000355271368} V4 {-11.99038105676654453191077 -9.232050807568926487078897 10} V5 {-13.99038105676658716447491 -5.767949192431157889870974 3.99999999999999866773237} V6 {11.99038105676657472997704 9.232050807568862538232679 3.99999999999999911182158} V7 {11.990381056766564071836 9.232050807568855432805321 10.00000000000000355271368} V8 {-13.99038105676657472997704 -5.767949192431152560800456 10}
put {crowncut1.s} arb8 V1 {1.999999999999999777955395 -14.99999999999999822364316 4} V2 {1.999999999999999777955395 14.99999999999999822364316 4} V3 {1.999999999999999777955395 14.99999999999999822364316 10} V4 {1.999999999999999777955395 -14.99999999999999822364316 10} V5 {-1.999999999999999777955395 -14.99999999999999822364316 4} V6 {-1.999999999999999777955395 14.99999999999999822364316 4} V7 {-1.999999999999999777955395 14.99999999999999822364316 10} V8 {-1.999999999999999777955395 -14.99999999999999822364316 10}
put {crownrcc.s} tgc V {0 0 -2.292185375575158445826673} H {0 0 12.29218537557515844582667} A {14.16165733953459238136929 0 0} B {0 14.16165733953459238136929 0} C {14.16165733953459238136929 0 0} D {0 14.16165733953459238136929 0}
put {bodyjut.s} tgc V {0 0 42} H {0 0 2.264716425774114583191476} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
put {bodytor.s} tor V {0 0 25} H {6.12323399573676603586882E-17 0 1} r_a 10.44723380101833853927928 r_h 0.9710977822416242410952236
put {bodytop.s} tgc V {0 0 45.57436401080622090375982} H {0 0 10.23282399021384136972301} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
put {bodycut.s} tor V {0 0 41} H {6.12323399573676603586882E-17 0 1} r_a 86.63076947877770805916953 r_h 78.38786126059979153524182
put {bodyeto.s} eto V {-0.2528320000000000011830537 0 53} N {0 0 0.03930267507158188844407221} C {11.02968444236560330296015 0 11.02968444236560330296015} r 16.28367943394245997978942 r_d 4.327199580192768735287245
put {baseeto.s} eto V {0 0 5} N {-5.470978323999804257192075E-18 0 -0.04467392825269222295103688} C {9.315747832292275987242647 -1.365449293915910411456593 -4.391804451322707691929281} r 10.59850529883725656077331 r_d 4.265499428605880716247611
put {bodytop.c} comb region no tree {- {l bodytop.s} {l bodyeto.s}}
put {bottom.c} comb region no tree {u {u {l bottometo.s} {l bottomtor.s}} {u {l baseeto.s} {l base_filler.s}}}
put {crown.c} comb region no tree {u {- {- {- {- {- {l crownrcc.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}} {l crowninner.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut1.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut2.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowncut3.s {1 0 0 0 0 1 0 0 0 0 1 58 0 0 0 1}}} {l crowninset.s}} {l crowninsetsolid.s}}
put {scene.g} comb region no tree {u {l rook.r} {l tile.r}}
put {body.s} tgc V {0 0 5.912562917080187219198706} H {0 0 49.90908570176724623479458} A {14.1579783735264754795935 0 0} B {0 14.1579783735264754795935 0} C {14.1579783735264754795935 0 0} D {0 14.1579783735264754795935 0}
put {rook.r} comb region yes tree {l rook.c {1 0 0 0 0 1 0 0 0 0 1 1.090422 0 0 0 1}}
attr set {rook.r} {region} {R} {shader} {plastic {re 0.1 sp 0.9 di 0.1 sh 50 ex 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/217}
put {tile.s} arb8 V1 {28.5 -28.5 0} V2 {28.5 28.5 0} V3 {28.5 28.5 -1} V4 {28.5 -28.5 -1} V5 {-28.5 -28.5 0} V6 {-28.5 28.5 0} V7 {-28.5 28.5 -1} V8 {-28.5 -28.5 -1}
put {tile.r} comb region yes tree {l tile.s}
attr set {tile.r} {oshader} {plastic {sh 1}} {region} {R} {shader} {plastic {re 0.5 sh 1}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
put {body.c} comb region no tree {u {u {- {l body.s} {l bodycut.s}} {l bodytor.s}} {l bodyjut.s}}
put {rook.c} comb region no tree {u {u {l crown.c} {l body.c}} {u {l bottom.c} {l bodytop.c}}}
put {base_filler.s} tgc V {0 0 -0.8138631382182293094729175} H {0 0 12.74035922868059600432389} A {16.38855503646686528895771 0 0} B {0 16.38855503646686528895771 0} C {9.863417071382475143082047 0 0} D {0 4.931708535691237571541023 0}
+28 -3
View File
@@ -2,13 +2,38 @@ 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_G_TARGET(${comgeom_input} "BRL-CAD Geometry Models/Sample")
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(
${COMGEOM_V5_MODELS}
CMakeLists.txt
README_ADA073408
ADA073408_inputs.tar.gz
)
-41
View File
@@ -1,41 +0,0 @@
string(REPLACE "\\" "" GCV_EXEC "${EXEC}")
set(INPUT_FILE "@INPUT_FILE@")
set(OUTPUT_FILE "@OUTPUT_FILE@")
set(BIN_DIR "@BIN_DIR@")
# NOTE: OUTPUT_FILE needs to be defined in terms of a path relative to the root
# of the build diretory, not as an absolute path. Since that root may change
# at runtime in multiconfig builds, the full output path cannot be encoded
# directly into the generated script.
get_filename_component(OF_ABS "${OUTPUT_FILE}" ABSOLUTE)
if ("${OF_ABS}" STREQUAL "${OUTPUT_FILE}")
message(FATAL_ERROR "Absoute output file path \"${OUTPUT_FILE}\" supplied for conversion of \"${INPUT_FILE}\" - path must be relative.")
endif ("${OF_ABS}" STREQUAL "${OUTPUT_FILE}")
# Because the build directory changes at runtime in multiconfig builds, we
# need to deduce its current value from GCV_EXEC.
get_filename_component(CBDIR "${GCV_EXEC}" DIRECTORY)
string(REGEX REPLACE "${BIN_DIR}$" "" CROOT "${CBDIR}")
# BRLCAD_ROOT is the hammer that makes certain we are running
# things found in the build directory.
set(ENV{BRLCAD_ROOT} "${CROOT}")
# Now that we know the root, finalize the full path output file location
set(OUTPUT_FILE "${CROOT}/${OUTPUT_FILE}")
execute_process(
COMMAND "${GCV_EXEC}" -o "${OUTPUT_FILE}" "${INPUT_FILE}"
RESULT_VARIABLE conv_result OUTPUT_VARIABLE conv_log ERROR_VARIABLE conv_log
)
if(conv_result)
message(FATAL_ERROR "[geometry conversion] Failure: ${conv_result}\n${GCV_EXEC} -o \"${OUTPUT_FILE}\" \"${INPUT_FILE}\"\n\n${conv_log}")
endif(conv_result)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+1 -1
View File
@@ -2,7 +2,7 @@
# C U B E . R T
# BRL-CAD
#
# Copyright (c) 2004-2020 United States Government as represented by
# Copyright (c) 2004-2016 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 @@
/* D B . P H P
* BRL-CAD
*
* Copyright (c) 2004-2020 United States Government as represented by
* Copyright (c) 2004-2016 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This library is free software; you can redistribute it and/or
-45
View File
@@ -1,45 +0,0 @@
title {A Die by Jeff Sieu. Made for Google Code-in 2017}
units mm
put {body_outer.r} comb region yes tree {l body_outer.c}
attr set {body_outer.r} {oshader} {plastic} {region} {R} {shader} {plastic {re 0.1 ri 1.4 sh 12}} {region_id} {1000} {material_id} {1} {los} {100} {color} {255/255/255}
put {body_inner.r} comb region yes tree {l body_inner.c}
attr set {body_inner.r} {oshader} {plastic} {region} {R} {shader} {plastic {sp 0.9 di 0.1}} {region_id} {1001} {material_id} {1} {los} {100} {color} {0/0/0}
put {body_outer.c} comb region no tree {- {- {n {l body_rpp.s} {l body_sphere.s}} {l dots.c}} {l body_inner.c}}
put {body_inner.c} comb region no tree {- {n {l body_rpp_inner.s} {l body_sphere_inner.s}} {l dots.c}}
put {cube_edges.c} comb region no tree {u {u {l cube_rcc1.s} {l cube_rcc2.s}} {l cube_rcc3.s}}
put {cube_rcc3.s} tgc V {8 10 8} H {0 -20 0} A {0 0 -2} B {2 0 0} C {0 0 -2} D {2 0 0}
put {cube_rcc2.s} tgc V {8 8 10} H {0 0 -20} A {0 2 0} B {2 0 0} C {0 2 0} D {2 0 0}
put {cube_rcc1.s} tgc V {10 8 8} H {-20 0 0} A {0 0 2} B {0 2 0} C {0 0 2} D {0 2 0}
put {body_rpp_inner.s} arb8 V1 {9.900000000000000355271368 -9.900000000000000355271368 -9.900000000000000355271368} V2 {9.900000000000000355271368 9.899999999999986144416653 -9.900000000000000355271368} V3 {9.900000000000000355271368 9.899999999999986144416653 9.900000000000000355271368} V4 {9.900000000000000355271368 -9.900000000000000355271368 9.900000000000000355271368} V5 {-9.899999999999922195570434 -9.900000000000000355271368 -9.900000000000000355271368} V6 {-9.899999999999922195570434 9.899999999999986144416653 -9.900000000000000355271368} V7 {-9.899999999999922195570434 9.899999999999986144416653 9.900000000000000355271368} V8 {-9.899999999999922195570434 -9.900000000000000355271368 9.900000000000000355271368}
put {body_rpp.s} arb8 V1 {10 -10 -10} V2 {10 9.999999999999985789145285 -10} V3 {10 9.999999999999985789145285 10} V4 {10 -10 10} V5 {-9.999999999999921840299066 -10 -10} V6 {-9.999999999999921840299066 9.999999999999985789145285 -10} V7 {-9.999999999999921840299066 9.999999999999985789145285 10} V8 {-9.999999999999921840299066 -10 10}
put {body_sphere_inner.s} ell V {0 0 0} A {13.4143020316096475141876 0 0} B {0 13.4143020316096475141876 0} C {0 0 13.4143020316096475141876}
put {dots6.c} comb region no tree {u {u {u {l sph61.s} {l sph62.s}} {u {l sph63.s} {l sph64.s}}} {u {l sph65.s} {l sph66.s}}}
put {dots5.c} comb region no tree {u {u {u {l sph51.s} {l sph52.s}} {u {l sph53.s} {l sph54.s}}} {l sph55.s}}
put {dots4.c} comb region no tree {u {u {l sph41.s} {l sph42.s}} {u {l sph43.s} {l sph44.s}}}
put {dots3.c} comb region no tree {u {u {l sph31.s} {l sph32.s}} {l sph33.s}}
put {dots2.c} comb region no tree {u {l sph21.s} {l sph22.s}}
put {dots1.c} comb region no tree {l sph11.s}
put {sph66.s} ell V {5.5 -12 -3.5} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
put {sph65.s} ell V {-5.5 -12 -3.49999999999999955591079} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
put {sph55.s} ell V {12 4.5 4.5} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph64.s} ell V {-5.5 -12 3.5} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
put {sph54.s} ell V {12 -4.5 4.5} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph63.s} ell V {5.5 -12 3.5} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
put {sph44.s} ell V {-3.5 -3.5 12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph53.s} ell V {12 -4.5 -4.5} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph62.s} ell V {0 -12 -3.5} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
put {sph43.s} ell V {-3.5 3.5 12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph52.s} ell V {12 4.5 -4.5} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph61.s} ell V {0 -12 3.50000000000000044408921} A {2.751840000000000063806738 0 0} B {0 2.751840000000000063806738 0} C {0 0 2.751840000000000063806738}
put {sph33.s} ell V {-4.5 -4.5 -12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph42.s} ell V {3.5 -3.5 12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph51.s} ell V {12 0 0} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph32.s} ell V {0 0 -12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph41.s} ell V {3.5 3.5 12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph22.s} ell V {-11.99999999999999822364316 3.49999999999999911182158 3.49999999999999911182158} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph31.s} ell V {4.5 4.5 -12} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph21.s} ell V {-11.99999999999998934185896 -3.50000000000000088817842 -3.50000000000000088817842} A {2.86650000000000027000624 0 0} B {0 2.86650000000000027000624 0} C {0 0 2.86650000000000027000624}
put {sph11.s} ell V {0 12.5 0} A {2.211859722021807250769143 1.981446994437259911947535 1.852442813782255726096082} B {-1.916905671313780867848209 2.832975207637170811381111 -0.7414338272552269959447813} C {-1.919153255314234307604693 -0.5460030047066275482592346 2.875540210372395932836298}
put {dots.c} comb region no tree {u {u {u {l dots1.c} {l dots2.c}} {u {l dots3.c} {l dots4.c}}} {u {l dots5.c} {l dots6.c}}}
put {die.g} comb region no tree {u {l body_outer.r} {l body_inner.r}}
put {body_sphere.s} ell V {0 0 0} A {13.51430203160964715891623 0 0} B {0 13.51430203160964715891623 0} C {0 0 13.51430203160964715891623}
+27 -4
View File
@@ -3,16 +3,39 @@ set(FAA_SAMPLE_MODELS
Generic_Twin.fg4
)
foreach(faa_input ${FAA_SAMPLE_MODELS})
ADD_G_TARGET(${faa_input} "BRL-CAD Geometry Models/Sample")
endforeach(faa_input ${FAA_SAMPLE_MODELS})
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}
CMakeLists.txt
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
+74319 -208548
View File
File diff suppressed because it is too large Load Diff
-5
View File
@@ -6,8 +6,3 @@ DOT/FAA/AR-04/16
Office of Aviation Research
Washington, D.C. 20591
http://www.tc.faa.gov/its/worldpac/techrpt/AR04-16.pdf
(Note: the Generic Twin images in that report show the model
prior to its most recent updates, which are reflected in the
version included in BRL-CAD.)
+92 -20
View File
@@ -1,35 +1,107 @@
set(NIST_SAMPLE_MODELS
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_7-10.3dm
NIST_MBE_PMI_11.stp
)
set(NIST_SAMPLE_3DM_MODELS
NIST_MBE_PMI_7-10.3dm
)
foreach(im ${NIST_SAMPLE_MODELS})
ADD_G_TARGET(${im} "BRL-CAD Geometry Models/Sample")
endforeach(im ${NIST_SAMPLE_MODELS})
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(
${NIST_SAMPLE_MODELS}
CMakeLists.txt
README
pdf/1.pdf
pdf/2.pdf
pdf/3.pdf
pdf/4.pdf
pdf/5.pdf
pdf/6.pdf
pdf/7-10_assem.pdf
pdf/7.pdf
pdf/8.pdf
pdf/9.pdf
pdf/10.pdf
pdf/11.pdf
)
pdf
)
# Local Variables:
# tab-width: 8
-24
View File
@@ -1,24 +0,0 @@
title {Example rounding methods}
units mm
put {m2cuttop.tor} tor V {0 0 500} H {0 0 1} r_a 250 r_h 50
put {m2bottom.tor} tor V {0 0 -450} H {0 0 1} r_a 200 r_h 50
put {cylinder.rcc} tgc V {0 0 -500} H {0 0 1000} A {250 0 0} B {0 250 0} C {250 0 0} D {0 250 0}
put {fillends.rcc} tgc V {0 0 -550} H {0 0 1100} A {0 -200 0} B {200 0 0} C {0 -200 0} D {200 0 0}
put {filltop.rcc} tgc V {0 0 500} H {0 0 50} A {0 -200 0} B {200 0 0} C {0 -200 0} D {200 0 0}
put {bottom.tor} tor V {0 0 -500} H {0 0 -1} r_a 200 r_h 50
put {cylinder.r} comb region yes tree {l cylinder.rcc}
attr set {cylinder.r} {region} {R} {region_id} {1003} {material_id} {1} {los} {100}
put {m2top.tor} tor V {0 0 450} H {0 0 1} r_a 200 r_h 50
put {m2cutbottom.tor} tor V {0 0 -500} H {0 0 1} r_a 250 r_h 50
put {method3.r} comb region yes tree {l method3}
attr set {method3.r} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
put {method2.r} comb region yes tree {l method2}
attr set {method2.r} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
put {method1.r} comb region yes tree {l method1}
attr set {method1.r} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
put {top.tor} tor V {0 0 500} H {0 0 1} r_a 200 r_h 50
put {method3} comb region no tree {u {u {u {l cylinder.rcc} {l top.tor}} {u {l bottom.tor} {l filltop.rcc}}} {l fillbottom.rcc}}
put {method2} comb region no tree {u {u {- {- {l cylinder.rcc} {l m2cuttop.tor}} {l m2cutbottom.tor}} {l m2top.tor}} {l m2bottom.tor}}
put {method1} comb region no tree {u {u {l cylinder.rcc} {l fillends.rcc}} {u {l top.tor} {l bottom.tor}}}
put {fillbottom.rcc} tgc V {0 0 -550} H {0 0 50} A {0 -200 0} B {200 0 0} C {0 -200 0} D {200 0 0}
put {all.g} comb region no tree {u {u {l method1.r {1 0 0 1000 0 1 0 -1000 0 0 1 0 0 0 0 1}} {l method2.r {1 0 0 1000 0 1 0 0 0 0 1 0 0 0 0 1}}} {u {l method3.r {1 0 0 1000 0 1 0 1000 0 0 1 0 0 0 0 1}} {l cylinder.r}}}
+159 -372
View File
File diff suppressed because it is too large Load Diff
+41 -69
View File
@@ -1,31 +1,42 @@
verbose_add_subdirectory(doc docbook)
if(BRLCAD_EXTRADOCS)
verbose_add_subdirectory(doc docbook)
else(BRLCAD_EXTRADOCS)
CMAKEFILES(docbook)
endif(BRLCAD_EXTRADOCS)
verbose_add_subdirectory(doc html)
verbose_add_subdirectory(doc legal)
CMAKEFILES(parsers)
set(documentation_DATA
BRL-CAD.bib
GITHUB
IDEAS
PROJECTS
README.AIX
README.BSD
README.IRIX
README.Linux
README.MacOSX
README.Windows
README.BSD
README.Solaris
README.VAX
checklist.txt
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
notes/TODO.BREP
notes/TODO.shaded_displays
notes/brep.txt
notes/bu_opt_design_notes.txt
notes/cvs.txt
notes/editors.txt
notes/history.txt
notes/hypot.txt
notes/mater.txt
notes/matrix.txt
pre_BRL-CAD.bib
editors.txt
ged.tr
history.txt
hypot.txt
irprep.tr
mater.txt
matrix.txt
)
ADD_DOC(documentation_DATA ".")
@@ -194,11 +205,16 @@ set(documentation_mged_old_DATA
mged/wm-leg1.ps
mged/wm-prims.ps
mged/wm-tube.ps
notes/ecosystem.dot
notes/regions.txt
notes/rounding.txt
notes/tool_categories.txt
mk.tr
movie.txt
old-mged.tr
pkg.tr
regions.txt
rounding.txt
sun.txt
tube.txt
tool_categories.txt
ecosystem.dot
)
ADD_DOC(documentation_mged_old_DATA mged_old)
@@ -206,57 +222,13 @@ configure_file(pad_file.xml.in "${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml" @ONLY)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml" DESTINATION ${DOC_DIR})
CMAKEFILES(
CMakeLists.txt
README.OSCON-2014
STARTERS
STRATEGY
notes/bsd_semaphore_bug.txt
notes/cmake_paths/CMakeLists.txt
notes/cmake_paths/README.txt
notes/cmake_paths/dir_info.c
notes/cmake_paths/test.cmake.in
notes/cmake_vars.txt
notes/csv_to_comgeom.txt
notes/implicit_constraints.txt
notes/lcov.txt
csv_to_comgeom.txt
implicit_constraints.txt
pad_file.xml.in
)
# Generic C/C++ examples
CMAKEFILES(
notes/c_cxx_patterns/01_basic_C/CMakeLists.txt
notes/c_cxx_patterns/01_basic_C/main.c
notes/c_cxx_patterns/01_basic_C/nlib.c
notes/c_cxx_patterns/01_basic_C/nlib.h
notes/c_cxx_patterns/02_hidden_C/CMakeLists.txt
notes/c_cxx_patterns/02_hidden_C/main.c
notes/c_cxx_patterns/02_hidden_C/nlib.c
notes/c_cxx_patterns/02_hidden_C/nlib.h
notes/c_cxx_patterns/03_PImpl_C/CMakeLists.txt
notes/c_cxx_patterns/03_PImpl_C/main.c
notes/c_cxx_patterns/03_PImpl_C/nlib.c
notes/c_cxx_patterns/03_PImpl_C/nlib.h
notes/c_cxx_patterns/04_hidden_CXX/CMakeLists.txt
notes/c_cxx_patterns/04_hidden_CXX/main.c
notes/c_cxx_patterns/04_hidden_CXX/nlib.cxx
notes/c_cxx_patterns/04_hidden_CXX/nlib.h
notes/c_cxx_patterns/05_PImpl_CXX/CMakeLists.txt
notes/c_cxx_patterns/05_PImpl_CXX/main.c
notes/c_cxx_patterns/05_PImpl_CXX/nlib.cxx
notes/c_cxx_patterns/05_PImpl_CXX/nlib.h
notes/c_cxx_patterns/CMakeLists.txt
notes/c_cxx_patterns/README
)
# Notes about parser generators
CMAKEFILES(
notes/parsers/bison_to_lemon.txt
notes/parsers/flex_to_re2c.txt
notes/parsers/templates/CMakeLists.txt
notes/parsers/templates/main.c
notes/parsers/templates/main.h
notes/parsers/templates/parser.lemon
notes/parsers/templates/scanner.perplex
notes/parsers/writing_perplex_lemon_parsers.txt
trunk_hierarchy.org
)
# Local Variables:
-60
View File
@@ -1,60 +0,0 @@
Notes about development with the Github hosting platform.
--------------------------------------------------------------------------------
Using Github Actions to iteratively debug problems.
Github's runners (build platforms for it's Actions CI system) offer a way to
test platforms we don't otherwise have access to. Sometimes, if we need to
iteratively test inputs being supplied to tools on those platforms to diagnose
a problem, the full configure/build/test cycle can be a very slow way to
proceed.
A way forward in this case is to create a temporary local repository with a
checking of the binary version of BRL-CAD used for the specific platform in
question, along with test inputs and an action defined to run the specific test
in question. (REMEMBER - github repos are public, so only define and use inputs
suitable for public consumption!)
For the below example, we created a repository with the Windows binary install
and a README file explaining what the test is doing:
-rw-rw-r-- 1 user user 72 Sep 23 17:52 README
drwxrwxr-x 3 user user 12288 Sep 24 07:41 bin
drwxrwxr-x 4 user user 4096 Sep 23 17:49 libexec
drwxrwxr-x 13 user user 4096 Sep 23 17:50 lib
drwxrwxr-x 5 user user 4096 Sep 23 17:49 include
drwxrwxr-x 16 user user 4096 Sep 23 17:50 share
drwxrwxr-x 8 user user 4096 Sep 24 07:42 .git
drwxrwxr-x 3 user user 4096 Sep 23 17:53 .github
Then, in the .github/workflows directory we create a .yml file to trigger the
test whenever we push a change. For this example we were wanting to test the
benchmark script, so we create a .github/workflows/benchmark.yml file with the
following contents:
name: benchhmark
on: [push]
jobs:
bench:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
# https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#adding-a-system-path
- run: echo '::add-path::{C:\Program Files\Git\bin}'
- run: sh.exe ./bin/benchmark run
This allowed developers to iteratively adjust the bin/benchmark shell script
and test the results in the compilation Windows environment, *without* having
to perform the full compilation cycle on Windows each time. Once a working
benchmark script was identified it was added back to the primary repository and
the test repo deleted.
--------------------------------------------------------------------------------
Debugging flags can be added to the actions environment for a given repo:
https://github.community/t/ci-access-to-shell-session/17250
(Note: the "Secrets" label is misleading in this particular case - that is
the mechanism by which the values are introduced into the runner environment,
but there are no actual secrets contained in the values of the debugging
variables.)
+1 -1
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)
+2 -1
View File
@@ -86,7 +86,8 @@ testing tool for TCP implementers via Network Working Group RFC 2398.
This product does not yet exist but is a long term goal. It's
basically several of the core libraries form BRL-CAD's geometry
modeling kernel including the present libbu, libbn, librt, libwdb,
liboptical, and the ray-trace interface application back-end.
liboptical, libmultispectral, and the ray-trace interface application
back-end.
This modeling kernel provides fundamental geometric representation,
ray-trace analysis, and geometric processing capabilities via a
+35
View File
@@ -0,0 +1,35 @@
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
steps that will be necessary. In particular, the IBM compiler and
associated standard C library headers are inconsistent with respect to
ANSI/POSIX compliance compiler options.
The IBM compiler supports a variety of compliance options, the two of
particular relevance to building BRL-CAD (in terms of being the close
to obtaining a functional compile) are the strict compliance
(-qlanglvl=stdc89) or "extended" compliance (-qlanglvl=extc89) modes.
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
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
the compiler verbosely refuses to compile. The "quick fix" that has
been used in the past is to simply swap the compiler between the two
modes as when one fails (e.g. strict), the other usually succeeds
(e.g. extended). Barring that working, you can use extended mode and
define __STDC__ manually.
+51
View File
@@ -0,0 +1,51 @@
BRL-CAD on IRIX README
======================
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.
Kitware provides CMake binaries for IRIX64 platforms:
http://www.cmake.org/cmake/resources/software.html
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):
PARALLEL=4 make -P
Potential problems you may encounter
------------------------------------
Symptom: MIPSPro linker reports symbol(s) missing
Description: There's a known bug in the MIPSpro linker involving
rpaths that are too long (namely longer than 255 characters) so care
should be taken to not compile in directories that are too deep. The
way this bug is usually seen is that the build will fail during
compilation where unresolved symbols are reported during linking,
symbols that are correctly included in the libraries being linked.
Workaround: It is usually sufficient to retry the compile from a
shorter path. (e.g., /tmp instead of /some/deep/path/to/brlcad)
---
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).
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
cd ../..
make
+10 -60
View File
@@ -53,10 +53,10 @@ you will be able to compile BRL-CAD.
Following the build instructions in the INSTALL file. You will need:
gcc (6+, e.g. 6.0.3)
g++ (6+, e.g. 6.0.3)
gcc (3+, e.g. 4.0.3)
g++ (3+, e.g. 4.0.3)
make (e.g. gnu make 3.8.0)
cmake (3.0.2 or newer)
cmake (2.8.8 or newer)
All three of those have implicit dependencies on other packages.
@@ -89,56 +89,16 @@ should be deleted and recreated for each new attempt at package
generation.
Redhat/CentOS/Fedora
Redhat/Fedora
-------------
If you don't already have the necessary development tools:
Development packages needed to build on Redhat/Fedora platforms:
yum install gcc gcc-c++ cmake
Development packages for building on Redhat/Fedora platforms:
yum install libX11-devel
yum install libXext-devel # optional
yum install libXi-devel # optional
yum install freetype-devel # optional
yum install fontconfig-devel # optional
yum install mesa-libGL-devel # optional
If you wish to create rpm packages, you'll need rpmbuild
yum install rpm-build # optional
When setting up older versions for building BRL-CAD, it is sometimes
necessary to install some non-default compilation tools in addition to the
usual dependencies. (The default toolchain is sometimes too old to
properly build BRL-CAD, if the compilers don't support sufficiently modern
standards.) The following example is for CentOS 7:
yum install centos-release-scl
yum install devtoolset-7
Then to run within that environment:
scl enable devtoolset-7 bash
The CMake version is often too old as well. One way forward is to download the
source code and bootstrap it (do this within the devtoolset enabled bash):
sudo yum install openssl-devel
curl -L -o cmake-3.18.2.tar.gz https://github.com/Kitware/CMake/releases/download/v3.18.2/cmake-3.18.2.tar.gz
tar -xvf cmake-3.18.2.tar.gz
cd cmake-3.18.2
./bootstrap --prefix=/opt/cmake
make -j3 && make install
export PATH=/opt/cmake/bin
From there, with the devtoolset enabled and the PATH set to include the new
CMake, it should be possible to proceed normally with the build.
-------
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:
@@ -146,8 +106,6 @@ 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:
@@ -160,14 +118,6 @@ system. It can be used like so:
It is also possible to create an RPM package using CPack with the
make package build target, on systems with the proper RPM tools.
-------
One issue encountered running CentOS in VirtualBox - networking
is off by default. To enable, look for a file in
/etc/sysconfig/network-scripts/ called something like enp0s3 and
set ONBOOT=yes (see https://unix.stackexchange.com/a/79273)
PPC64 Linux
-----------
+53
View File
@@ -0,0 +1,53 @@
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
-17
View File
@@ -42,20 +42,3 @@ compiled as libpng.so). If this happens, it likely indicates a problem
with the CMake build logic and should be reported as a bug - you may also
need to install a shared version of the library. Another possibility
would be to add -mipure-text to the linker flags.
OpenIndiana
-----------
To build with gcc and CMake on OpenIndiana, you need to install the
following packages:
pkg install pkg:/developer/gcc-7
pkg install pkg:/developer/build/cmake
pkg install pkg:/developer/versioning/subversion
pkg install pkg:/system/header
pkg install pkg:/developer/lexer/flex
(Note that gcc-7 building doesn't work as of 2017-08-23 - the above
install list is a starting point, but the repo currently doesn't
build and isn't close to building. It may be an older gcc would
have better luck...)
+9 -74
View File
@@ -3,19 +3,13 @@ BRL-CAD on Windows README
The usual way to build BRL-CAD for Windows is to use the CMake build
system generator and the Microsoft Visual Studio C++ (MSVC) compiler.
Recent versions of both are recommended. If generating an installer,
the following options are available and supported:
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.
Nullsoft Scriptable Install System (NSIS) - generates a. .exe installer
WiX Toolset - generates an MSI installer.
These tools must be installed separately - they are not included with
CMake or Visual Studio.
Note: In principle BRL-CAD can be built using CMake and environments
like Cygwin and/or Mingw/Msys, but they are largely untested and
infrequently supported. Enhancements or bug reports are welcome.
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.
Visual Studio
-------------
@@ -49,68 +43,9 @@ BRL-CAD on Windows will generate over 800 of them) and a large list of
targets will appear. To build everything look for a target named
ALL_BUILD. Start compiling that target.
Once compilation is successfully complete, you can find the compiled
executables in a 'bin' directory in your build directory. For
example, mged.exe would be in brlcad-svn-trunk\.build\Debug\bin if
brlcad-svn-trunk\.build is the build directory specified to CMake and
CMAKE_BUILD_TYPE was set to Debug.
You may want to produce an NSIS installer. If so, locate a target
named PACKAGE and run it. The end result should be an .exe file
capable of installing BRL-CAD.
Working with MSI files
----------------------
The WiX Toolset's MSI file, in addition to the standard interactive
graphical install, also supports a command line based silent
install. (See, for example, https://stackoverflow.com/a/25230485)
msiexec.exe /i c:\BRL-CAD-7.32.0_win64.msi /QN /L*V "C:\Temp\brlcad_install.log"
The logging step is not required but is recommended to allow for
easier understanding of any issues that might arise.
===========================================
=== Setting a specific SDK version ===
If a particular version of the Windows SDK is needed, it is specified
with CMAKE_SYSTEM_VERSION (for example, to use 10.0.15063.0 the user
would define a New Entry in the CMake GUI before running configure,
make the variable CMAKE_SYSTEM_VERSION as a string type, and assign the
value of 10.0.15063.0.)
Note that for this to work the SDK version in question must be
installed on the system. To see what versions are installed,
look for Windows SDK installs in the "Apps & Features" Setup
interface.
===========================================
=== Notes on Visual Studio 14 2015 ===
In order to build this version (required to build the Creo 3 converter)
with CMake, you must ensure that Microsoft's "rc.exe" program is
installed and findable by CMake.
To install "rc.exe", run or re-run the Visual Studio installer and enable
Visual C++ components and "Visual Studio Extensibility Tools Update 1" under
the "Common Tools" section.
The extensibility tools can become unselected by default in some
configurations. Verify "rc.exe" is installed in:
"C:\Program Files (x86)\Windows Kits\8.1\bin\x64"
Add that directory to your "Path" user variable so CMake will be able to
locate the rc executable.
See:
https://stackoverflow.com/questions/43847542/rc-exe-no-longer-found-in-vs-2015-command-prompt
======================================
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!!!)
-----
-24
View File
@@ -278,27 +278,3 @@ BRL-CAD to IGES
* on what is and is not intersecting - perhaps it should? Potential trouble there with overlapping vs. non-
* overlapping regions.
*/
SOLID NURBS RAYTRACING ROBUSTNESS IMPROVEMENT/REFINEMENT
One of the difficult tasks with solid raytracing is determining reliably when we're inside or outside in cases where
BRep edges don't exactly join up geometrically. OpenNURBS has tolerances which define such shapes as "valid", but the
mathematics of the ray interesection will still report wonky results once hit points get inside those tolerance regions.
We have resolution logic that tries to handle ambiguous cases, but one potential technique we are not currently using
would use the bounding box information from the NURBS prep trees to augment that logic's robustness (or, more precisely,
bound the portions of the ray segment within which point ambiguities need to be resolved.)
The current thought is to use the not-on-surface-point bounding box points (which we can categorize as inside or outside
relative to the surface they are bounding by construting vectors from on surface points to those points and comparing
them to the surface normal vectors) and the surface points themselves to construct an outer and inner bounding volume
for the BRep (to be reliable, we would also have to take care that we refine enough to avoid self intersections in
those volumes.) The overall bounding box of the outer volume should always be larger than that of the inner volume,
so a comparison of those would allow us to flip them if the "wrong" box is too big to deal with a BRep with inverted
surface normals. (Might actually also allow us to reliably detect and fix such BReps, but that's a different topic.)
Once we have the outer bounding volume, we intersect that along with the NURBS BRep itself and use the ray segments
from the outer bounding volume as bounding regions within which we resolve any point ambiguities. This should allow
us to "locally" resolve issues in such a way that doesn't accidentally flag (say) a grazing corner hit as the in
hit for a clean hit pair much further down the shotline (which will result in a long "solid" segment through empty
space.)
+145
View File
@@ -0,0 +1,145 @@
Date: Fri, 30 Oct 87 3:58:14 EST
From: Phil Dykstra <phil@BRL.ARPA>
Subject: Re: Animation querry.
I have been meaning to put a few notes together about animation in
BRL-CAD for some time now. Your message presses the point so here's
a really quick basic overview. Note that animation control is
still very early and experimental. Don't be surprised if much of
it changes in the future.
------
The earliest form of animation was just changing the viewpoint.
So that RT could ray trace the "current" MGED view, a -M flag was
added which tells RT to read the viewing matrix from stdin.
This matrix is written on six lines in the form:
viewsize
xpos ypos zpos
[4x4 rotation matrix, 4 elements per line]
Such data can be saved along with an RT shell script by the "saveview"
command in MGED. To get just this data (i.e. without the shell script),
the "savekey" command can be used. Thus one can save a string of
viewpoint keyframes via "savekey." ["Times" can also be added to
the keyframes for the purposes of some interpolation programs.]
Several tools were written (not in the distribution) which generate
sequences of such views, interpolate a set a keyframes, etc.
The "rmats" command was added to allow a file of these views to be
read in to MGED so you could watch the keyframes go by. Feeding the
same data to RT (via the -M flag) computes an image for each view.
The views either go to the frame buffer, or if an output filename
is given, they go into files with frame number suffixes.
Animation previews are typically made via low resolution ray traces,
composited into one large image via "pixtile," and viewed on a frame
buffer via "fbanim" (preferably one with hardware pan and zoom).
Later we wished to articulate the models themselves, so a command
script language was created for RT. These are also fed to RT
via the -M flag. RT figures out whether it is given the old form
above or a real script. An animation description script contains
transformation matrices to be applied to the model tree. A simple
one might look like:
start 42;
clean;
anim frob/nitz matrix rmul
1 0 0 1
0 1 0 2
0 0 1 0
0 0 0 0;
end;
etc.
start - says to start frame number 42.
clean - make RT clean up after itself (this may not be needed any more...).
anim - says to apply an matrix animation to the arc connecting frob to
nitz. The type of matrix operation is a right multiply (choices
include right or left multiply, replace, or reroot (i.e. world
coordinates)).
end - tells it to go ahead and shoot this frame.
Eventually there will be things besides "matrix" animations to allow
material properties etc. to be animated.
Various outboard tools generate motions, merge animation scripts
together, allow the previewing/editing of motions, etc. For the
most part these tools are sufficiently ad hoc and experimental
that we aren't giving any of them away yet. Next year some time....
-------
I didn't explain any of it in much detail, but hopefully it
gives you an overview. One of these days we will write some
more about it - like when we start including some motion tools.
==============================
Date: Fri, 30 Oct 87 16:42:14 EST
From: Phil Dykstra <phil@BRL.ARPA>
Subject: Re: Animation querry.
Here's a bit more about the matrix operations available in RT
animation scripts.
-----
RT Matrix Animation Operations:
==============================
In BRL-CAD, matrices are handled in their usual mathematical form
(the transpose of the Newman and Sproull "computer graphics form").
That is, a matrix looks like this:
r1 r2 r3 dx
r4 r5 r6 dy
r7 r8 r9 dz
0 0 0 1/s
Points are *column* vectors, so a point is transformed by:
newpoint = Matrix * oldpoint;
Thus the world coordinate system is on the "left" end of a stack of
matrix operations; the local coordinate system being that of the point
on the extreme right.
In walking a model tree (such as "prep'ing" the model for ray tracing),
each arc crossed from root to leaf normally gets its matrix multiplied on
the right side of the current matrix stack[1]. Rigid body articulations
of a model can then be described by changing or adding matrices at the
appropriate points in this stack.
The matrix animation operations currently recognized by RT are:
rstack replace the entire stack up to this point
rarc replace the matrix on the specified arc
rboth replace the entire stack and the arc matrix
rmul arc = arc * Matrix
lmul arc = Matrix * arc
The path specifying where in the model tree the operation is to
be applied can either be an absolute path, e.g.
/body/left/arm/hand
which would affect the arc between the left arm of body and the hand
(note that hand need not be a leaf), or it can be a "wildcard", e.g.
arm/hand
would mean the arc between arm and hand anywhere in the model tree, i.e.
it is not restricted to the left one as above. Finally a wildcard like
arm
means the arc before any node called arm.
-------------------------
[1] It is interesting to note that our "right multiply" operation
corresponds exactly to the SGI Iris multmatrix() command. The later
pre-multiplies the matrix stack, but the matrix stack post-multiplies
any points being transformed! In fact, if one looks at the Iris at the
geometry engine level, one finds that it works with matrices in the
usual mathematical form - the gl2 library transposes them in and out of
N&S form.
+849
View File
@@ -0,0 +1,849 @@
.\" $Header$
.\" groff -t -ms -X benchmark.tr
.\" groff -t -ms benchmark.tr | print-postscript
.\"
.\" sort '-t ' +7nr -8
.de BR
\fB\\$1\fR\\$2
..
.TL
The BRL-CAD Benchmark Suite
.AU
Michael John Muuss
.AU
Charles M. Kennedy
.AU
Lee A. Butler
.AI
The U.S. Army Research Laboratory
.PP
This document describes the BRL-CAD Benchmark Suite Methodology, and
the Ray-Tracing Figure of Merit (RTFM) used to judge the computational
performance of different computer systems.
.PP
The core of the test is the \fBrt\fR ray-tracing program. The results
for each processor are determined by running a benchmark test of the
RT ray-tracing program on each of the sample databases provided. The
\fBrt\fR program requires a binary database for input ("db/xxx.g"),
and produces a binary image as output ("bench/xxx.pix"), along with a
log file ("bench/xxx.log"). Each run will produce a 512x512x24 bit
color shaded image in a "bench/xxx.pix" file, and a run log in
"bench/xxx.log". Reference copies of the images are provided as
"pix/xxx.pix" and "pix/xxx.log". The sample databases provided are
processed in order of increasing difficulty, and each produces a
colorful image. In each picture there are two light sources; the
primary source is located near the center of the model (the white
ball), and the secondary light source is located at the "eye"
position.
.NH 1
The Benchmark Models
.LP
moss.g -- This is a simple model, containing a yellow torus, a green
ellipsoid, a bluish cube, a pink truncated (distorted) cone, all
sitting on a blue plate. Note the shadowing, and "specular splash".
.sp
world.g -- The same model as moss.g, but with various rendering
features enabled. The model is enclosed in a hollow cloud sphere.
The plate is a mirror, the egg is crystal, the box has a debugging
texture map applied.
.sp
star.g -- A familiar sight to Star Trek fans; a low-detail exterior of
the ship "Enterprise". The hull is white, with some other structures
in other colors. The small red object in the foreground is the
shuttlecraft Galileo, to scale.
.sp
bldg391.g -- An exploded view of a two-story imaginary computer site,
including various walls, red stairways, green disk drives, etc. The
lower floor is a mirror, the upper floor is glass.
.sp
m35.g -- A truck.
.sp
sphflake.g -- A sphereflake.
.NH 1
MACHINE INDEPENDENCE
.PP
To make the benchmark distribution machine independent, the databases
are provided in an ASCII format in the "db" directory, and
ascii-to-binary converters are provided in the "conv" directory. The
setup command "\fBcake benchmark\fR" (see the document \fIInstalling
the BRL-CAD Package\fR) will automatically compile and run the
converters.
.PP
If you are running this benchmark on a non-UNIX machine that has
difficulty writing binary streams, change the "-o file.pix" flag to
"-O file.a_pix" and RT will write an ASCII form directly. For more
discussion, consult the doc/pix.5 and conv/asc2pix.1 manual pages.
.PP
The reference images are distributed in binary BRL-CAD
.BR pix (5)
format. Earlier releases distributed the reference images in the
portable ASCII form, and then converted them to the binary form. This
consumed a significant amount of extra storage on UNIX machines, so
this practice was discontinued. It is assumed that anyone attempting
to benchmark a system that can not read pure binary files will at
least have access to a UNIX system. That UNIX system can be used to
convert the reference images to the portable ASCII form with the
.BR pix2asc (1)
tool, and then those images may be sent to the machine under test.
.PP
Information about modifying the benchmark to run on a particular
system may be found in the document \fIInstalling the BRL-CAD
Package\fR. For a detailed explanation of various hardware specific
modifications necessary to take advantage of parallel processing, see
the document \fIWorkstations, Networking, Distributed Graphics, and
Parallel Processing\fR. Implementations for several different types
of hardware in use at ARL are included.
.PP
If you encounter difficulty with running the benchmark, you might wish
to build the full BRL-CAD package, to take advantage of the image
tools in determining the nature of the problem. For example, one
system suffered from a compiler bug that made TGC solids vanish, while
another system had difficulties with the light visibility
calculations.
.NH 1
OBTAINING CORRECT RESULTS
.PP
The benchmark timings are not considered valid unless the correct
results are given. Make sure that the answers match the reference
files to within plus-or-minus one in each color (see pixdiff(1)).
Slight variations in the calculated pixels are generally attributable
to variations in floating point precision. You may wish to compare
the execution times and log file remarks from your tests (in the
"bench/xxx.log" files) with the VAX-11/780 (with hardware FPA) times
which are given in the "pix/xxx.log" files. The log file for sphflake
has yet to be run on the same system, causing weighted results. It's
still useful and informative, however, for deriving performance
statistics. The reference images are also located in the "pix/"
directory.
.PP
For example, if you are running the benchmark on a Cray XMP, the
world.pix and bldg391.pix images will have a single byte in the blue
channel off by 1, out in the cloud background. This is not to be
considered an error.
.NH 1
BENCHMARK IMAGE DISPLAY
.PP
If you have a suitable framebuffer, you may wish to display the images
generated by the benchmark, and compare them to the reference images.
This section assumes that you have successfully compiled the full set
of BRL-CAD software, not just the benchmark portion. Programs for
dealing with images are in the "util" directory. To display a
\fBpix\fR(5) file on a framebuffer, set environment variable FB_FILE
(see \fBbrlcad\fR(1) for details), and run \fBpix-fb\fR. Note that by
leaving FB_FILE unset, your default display will be used.
.sp
.nf
.ft B
cd bench
pix-fb moss.pix
.ft R
.fi
.sp
If the images computed on your machine do not match the reference
images, the program "util/pixdiff" will compute a pix file that will
highlight the differences for you, and report a summary of bytes
equal, off-by-1, and off-by-many, e.g.,
.sp
.ft B
pixdiff moss.pix ../pix/moss.pix \(or pix-fb
.ft R
.fi
.sp
For a display of the relative magnitude of the differences at each
pixel, use "util/bwdiff" instead, e.g.,
.sp
.nf
.ft B
bwdiff moss.pix ../pix/moss.pix \(or pix-fb
.ft R
or
.ft B
bwdiff moss.pix ../pix/moss.pix \(or \\
bwmod -s 128 -m 4 -a 128 \(or pix-fb
.ft R
.fi
.sp
and for statistics on the differences, use
.sp
.ft B
bwdiff moss.pix ../pix/moss.pix \(or pixstat
.ft R
.ne 8i
.NH 1
THE COMPETITION
.PP
The full benchmark takes about 9 CPU hours on a VAX-11/780, so you
should scale your expectations accordingly.
.PP
Here is a sampling of some systems that have been tested, with as much
information about the configuration as could be obtained. Some
systems have a great many options for small things that can affect
performance, such as memory interleaving.
.LP
.TS
center box;
l l.
System Name Configuration
_ _
axposf DEC Alpha 4000/710, 256M, OSF/1 V3.0 \(dg
ex-art Pentium-P90, 16MB, 256K cache, BSD/OS 2.0,
hawks 486DX/33, 24MB, 256K cache, BSD/OS 2.0
orac 486/100, 20MB, No cache, BSD/OS 2.0 (laptop)
pk Cray C90, C916/161024, UNICOS 8.0.2.4
vapor SGI, 18* 75 MHz R8000 IP21, 1024M RAM 8-way, Irix 6.0
vblt 66 MHz 486DX2/66, 16M RAM, Linux 1.1.73
vgr DEC VAX-11/780 w/FPA, 64M RAM, 4.3 BSD
vision Sun-3/280 w/68881 FPA, 16M RAM, SunOS 4.1.1
voyage SGI, 4* 25 MHz R3000 IP7, 56M RAM, Irix 4.0.1
whiz SGI Ingido**2, 100 MHz IP22, 96M RAM, Irix 5.2
waffle SGI, 4* 25 MHz R3000 IP7, 64M RAM, Irix 4.0.5 (heavy network use)
warp Sun SPARCstation 5, 32M RAM, SunOS 4.1.4
wax SGI, 24* 150 MHz R4400 IP19, 1024M RAM 4-way, Irix 5.2
wilson SGI, 8* 100 MHz R4400 IP19, 1024M RAM 8-way, Irix 5.2
wilted Sun-4/25 ELC, 16M RAM, SunOS 4.1.1
wimp 33 MHz 386DX/33 w/387, 256k cache, 16M RAM, BSDI 2.0beta2
wimpy Sun SS10BSX-GX, 2* 50 MHz SuperSPARC, 64M RAM, SunOS 5.4
wizard SGI Ingido**2, 150 MHz IP22, 96M RAM, Irix 5.3
.TE
\(dg The Alpha was heavily loaded while the benchmark was being run.
DEC requires us to show the load average at the time:
.br
03:28 up 18 days, 10:59, 7 users, load average: 2.00, 2.00, 2.08
.NH 1
BENCHMARK RESULTS
.PP
In the tradition of Dongarra, the Rays/sec figure is considered the
"RT Figure of Merit" (RTFM). Note that the RTFM can only be compared
between different runs on the \fIsame\fR database; it is not
meaningful to compare RTFM numbers between different databases. The
Rays/sec number for a multi-processor machine is for "aggregate CPU
cluster seconds", rather than rays/total CPU seconds (which remains
fairly constant on good parallel machines).
.PP
The statistics are recorded in an easily understood format, with all
results for a particular configuration listed on a single line. The
numbers reported are the rays/sec (RTFM) figure. Entries denoted with
a dagger ("\(dg") produced incorrect results. Entries denoted with a
dash ("-") were not available and should be considered differently
than those entries with a dagger. Generally the results are not
available because time constraints prevented running the complete set
of databases.
.fi
.br
.ne 8i
.NH 1
RELEASE 4.4 STATISTICS (4-Jan-1995)
.PP
There is very little difference in RTFM numbers between Release 4.0
and Release 4.4, so they can be usefully compared. In some cases the
4.4 performance is slower due to the use of shared libraries. For
example "vision" dropped from 1.33 to 1.22 due to the shared
libraries. For most users reducing the disk consumption from 300
MBytes to 30 MBytes makes this a reasonable tradeoff. However, for
the best performance, use non-shared libraries.
.LP
.TS H
expand box;
l | n n n n n | n | l.
H/W Moss World Star Bldg M35 Mean S/W Notes
_
.TH
vapor 810.91 1091.39 1012.63 1027.25 1092.85 1007 -P18 static
vapor 773.8 1038.7 979.49 970.91 1036.62 959.9 -P17
vapor 732.85 1021.69 968.93 922.62 1024.15 934.04 -P18 (SW lock)
wax 769.38 940.83 953.36 924.7 1050.14 927.68 -P24
vapor 730.17 994.97 934.43 917.1 987.83 912.9 -P16
wax 725.26 957.68 927.61 932.67 992.75 907.19 -P24
wax 756.95 915.96 940.43 903.45 966.09 896.57 -P23
vapor 686.8 939.63 897.72 884.39 927.16 867.14 -P15
wax 691.18 853.75 887.17 859.32 933.41 844.96 -P21
wax 724.73 683.08 890.87 900.82 939.31 827.76 -P22
vapor 645.32 881.18 843.23 801.41 859.26 806.08 -P14
wax 637.28 757.74 820.21 871.37 877.6 792.84 -P20
vapor 608.12 835.84 795.36 759.95 806.32 761.11 -P13
_
wax 606.98 784.3 754.46 799.95 794.52 748.04 -P19
wax 590.16 758.23 794.06 794.52 757.79 738.95 -P18
wax 579.29 722.35 787.55 720.26 754.65 712.82 -P17
vapor 571.14 783.72 740.47 697.24 746.72 707.85 -P12
wax 553.72 697.1 744.21 663.61 723.03 676.33 -P16
vapor 534.85 716.58 685.87 656.25 685.77 655.86 -P11
wax 519.01 655.57 690.95 651.9 663.92 636.27 -P15
wax 475.88 637.33 665.38 608.31 653.99 608.17 -P14
vapor 499.46 663.26 633.48 614.58 624.34 607.02 -P10
wax 449.16 591.54 616.21 590.59 614.25 572.35 -P13
vapor 463.3 598.34 575.07 555.62 560.89 550.64 -P9
wax 424.71 556.8 595.02 521.63 538.78 527.38 -P12
vapor 424.89 534.5 509.85 497.63 503.99 494.17 -P8
wax 391.66 490.63 545.28 488.57 508.96 485.02 -P11
wax 315.45 472.03 525.47 442.37 461.44 443.35 -P10
vapor 381.1 467.67 440.13 425.57 442.04 431.3 -P7
wax 309.35 426.37 386.11 417.85 434.96 394.92 -P9
vapor 336.55 392.2 390.72 373.92 380.03 374.68 -P6
_
wax 307.6 361.32 396.07 380.17 380.74 365.18 -P8
wax 245.87 332.33 362.5 338.62 331.39 322.14 -P7
vapor 288.45 327.78 328.76 314.54 320.16 315.93 -P5
wax 254.82 255.29 299.93 302.08 256.54 273.73 -P6
wilson 223.01 265.17 287.8 262.19 269.62 261.55 -P8
vapor 240.6 269.93 266.46 253.99 259.05 258 -P4
wax 215.96 231.65 221.78 248.63 221.45 227.89 -P5
wax 177.94 185.27 213.74 201.64 197.27 195.17 -P4
vapor 187.58 198.84 202.28 191.94 194.74 195.07 -P3
wax 120.4 138.01 162.12 159.36 141.33 144.24 -P3
vapor 130.61 140.04 134.88 129.38 129.78 132.93 -P2
wax 100.83 102.09 111.12 87.26 98.62 99.98 -P2
wimpy 99.10 95.78 92.15 97.51 96.65 96.23 -P2
wimpy 82.14 93.60 92.17 103.59 82.22 90.74 -P2
_
axposf 81.05 82.27 86.72 84.36 79.28 82.73 -P1
vapor 79.68 77.7 73.89 71.38 70.06 74.54 -P1 static
vapor 69.34 70.14 67.52 65.55 66.69 67.84 -P1 shared
wizard 63.8 55.86 68.97 73.21 61.56 64.68
wax 62.28 58.58 65.24 67.39 59.31 62.56 -P1
wax 59.08 56.06 61.45 64.4 56.11 59.42 -P1
voyage 52.78 55.44 58.19 58.03 52.41 55.37 -P4
pk 64.89 55.71 48.01 49.50 53.43 54.30 -P1
waffle 38.56 47.63 62.36 59.62 51.20 51.87 -P4
wimpy 50.17 48.82 50.46 55.12 49.27 50.76 -P1
wimpy 47.80 43.23 51.37 54.10 46.23 48.54 -P1
weber 46.53 43.45 50.88 50.33 46.03 47.44 -P1
wilson 41.16 39.54 45.98 42.93 34.82 40.88 -P1
whiz 36.25 31.08 37.21 39.62 36.98 36.22
warp 19.88 21.33 23.71 24.19 22.60 22.34
ex-art 16.89 18.54 22.98 26.97 25.57 22.19
orac 7.57 8.23 10.72 12.43 11.30 10.05
wilted 9.58 9.53 10.66 10.53 9.87 10.03
hawks 3.64 4.17 5.71 6.90 6.23 5.33
vblt 4.85 4.89 5.29 5.24 4.90 5.03
wimp 1.16 1.34 1.82 2.25 2.06 1.72
vision 1.07 1.23 1.23 1.31 1.26 1.22 -P1
vgr 1.0 1.0 1.0 1.0 1.0 1.0
.TE
.br
.ne 8i
.NH 1
THE OLD COMPETITION
.PP
These are the definitions for systems measured in previous tests.
.LP
.TS
center box;
l l.
System Name Configuration
_ _
alliant Alliant FX/8 (8 CEs, 9 IPs, 64 Mbytes), Concentrix 3.0
amber HP 9000/720, 32 MB memory
amsaa-seer Gould PN 9080, w/MACCs, UTX 2.0, 4x4Mb mem boards
ardec-3 Pyramid 90Mx, Dual-CPU, OSx 2.5, 16 Mbytes
bob Cray-2, SN 2009, 4.3ns clock
cor3 Pyramid MIS-12T/3, OSx 192
patton Cray X-MP/48, SN213, UNICOS 5.0, 8.5ns clock
uy1 Cray Y-MP8/2128, UNICOS 5.1.11
shpcrc2 IBM RS/6000, AIX 3.1
slc1 Macintosh II, 68020, 68881, AUX 1.1, GCC 1.39
spark Gould PN 9050, no MACC, UTX 2.0, 2x4Mb mem boards
sws2 Convex C120, 16 Mbytes, Convex Unix 6.2.32.2
vector Alliant FX/80 (8 ACEs, 6 IPs, 32 Mbytes), Concentrix
venom Alliant FX/8 (8 CEs, 6 IPs, 32 Mbytes), Concentrix
vgr VAX 780, FPA, 4.3 BSD
virus Sun-3/50, 15 Mhz clock, 12 Mhz 68881, Sun UNIX 3.2
vista SGI 3030, w/FP chip, UNIX release 3.5
vmb Gould PN 9080, no MACCs, UTX 2.0, 12x1Mb mem boards
vhs Silicon Graphics 4D/60T, 12.5 Mhz clock 16 MB memory
ovoyage Silicon Graphics 4D/120, 16.7 Mhz clock 16 MB memory
taylor Silicon Graphics 4D/220, 25 Mhz clock 16 MB memory
crim Silicon Graphics 4DCRIMS 50Mhz clock 128 MB memory
wiltse Silicon Graphics 4D R4000 50Mhz clock
c1east T{
Convex C1 XP (2 IOPs, 4 Multibus, 64 Mbytes),
S/W 6.0.1.12
T}
elxsi-gnu Elxsi 6420, BSD 4.2 16 MB
elxsi-gnuy Elxsi 6420, Sys Vr2, 16MB
elxsi-m1 Elxsi 6410, BSD 4.2 16 MB
hep Denelcor HEP, 4 PEMs
indigo SGI Iris 3030, FPA, GL2-W3.5
mseries T{
MIPS Mseries, Release 0.6, UMIPS 2.1, 16 MB of R2350 RAM.
R2000 CPU rev 5.0, R2010 FP rev 2.0
T}
multiflow Multiflow Trace 7/200 (PRELIMINARY)
nova T{
Sun SPARCserver 490, 32 Mb, 33 MHz clock, 33 MHz TI 8847 FPU, SunOS 4.1.1B
T}
rh2 Tektronix, Motorola 88000
snm2 Cray 1-M, SN2, UNICOS 2.0
sws1 Convex C1, ConvexOS 9.1 48MB memory
tek4132 Tektronix 4132, 32082 fpp, UTek 2.3
utah-gr VAX 785, FPA, 4.3 BSD
utah-cs VAX 8600, FPA, 4.3 BSD
veto Sun 4/260 32MB memory Sun UNIX 4.0.3
violet VaxStationII GPX, Ultrix 1.2
vision Sun-3/280, 16 MB memory
vortac Sun-3/160, 16.67 Mhz clock, 12 Mhz 68881, Sun 3.2
walrus Silicon Graphics 4D/280 25 Mhz clock 64 MB memory Irix 3.3.1
whiz Silicon Graphics 4D/240 25 Mhz clock 56 MB memory Irix 3.3.1
whisper Sun SPARCStation 1+
wilted Sun SPARCstation ELC , Diskless, 12MB memory Sun UNIX 4.1.1
worm Silicon Graphics 4D/280 25 Mhz clock 64 MB memory Irix 3.3.1
.TE
.br
.ne 8i
.NH 1
OLD BENCHMARK RESULTS
.PP
These are the results of previous benchmarks.
.NH 1
RELEASE 1.20 STATISTICS (12-Feb-1987)
.LP
.TS H
expand box;
l l | n n n n | n | l.
A/* H/W Moss World Star Bldg Mean S/W Notes
_
.TH
Rays tek4132 80.5 44.0 33.9 31.4 ? UTek 2.3
*vgr tek4132 0.72 0.69 0.62 0.62 ?
_
Rays violet 107.7 57.3 44.7 44.1 ? Ultrix 1.2
*vgr violet 0.96 0.90 0.81 0.87 ?
_
Rays violet 119.0 63.0 50.0 46.3 ? Ultrix 1.2,
*vgr violet 1.06 0.99 0.91 0.91 ? w/fast_sqrt
_
Rays vgr 112.1 63.6 55.0 50.7 ? BSD 4.3
*vgr vgr 1.0 1.0 1.0 1.0 1.0
_
Rays indigo 115.9 85.3 \(dg 101.8 ? GL2-W3.5
*vgr indigo 1.03 1.34 \(dg 2.01 ?
_
Rays vista 116.4 86.0 \(dg 102.3 ? SGI UNIX 3.5
*vgr vista 1.04 1.35 \(dg 2.02 ?
_
Rays virus 127.3 69.9 57.0 52.4 ? Sun UNIX 3.2
*vgr virus 1.14 1.10 1.04 1.03 ?
_
Rays vortac 148.2 81.0 65.8 60.7 ? Sun UNIX 3.2
*vgr vortac 1.32 1.27 1.20 1.20 ?
_
Rays utah-gr 191.8 105.8 89.9 86.5 ? 4.3 BSD
*vgr utah-gr 1.71 1.66 1.64 1.71 ?
_
Rays ardec-3 - 68.4 57.2 - ? OSx 2.5
*vgr ardec-3 - 1.08 1.04 - ?
_
Rays elxsim1 380.5 232.2 204.8 189.3 ? BSD 4.2
*vgr elxsim1 3.39 3.65 3.72 3.73 ?
_
Rays spark 413.4 232.0 213.8 211.9 ? UTX 2.0
*vgr spark 3.69 3.65 3.89 4.18 ?
_
Rays vmb 413.9 233.4 210.6 212.6 ? UTX 2.0
*vgr vmb 3.69 3.67 3.83 4.19 ?
_
Rays c1east 454.8 252.4 205.6 192.3 ? Convex UNIX 6.0.1.12,
*vgr c1east 4.06 3.97 3.74 3.80 ? vanilla cc
_
Rays seer 460.7 263.2 246.8 241.0 ? UTX 2.0
*vgr seer 4.11 4.14 4.49 4.75 ?
_
Rays venom 492.9 228.0 180.0 157.1 ? Concentrix 2.0
*vgr venom 4.40 3.58 3.27 3.10 ?
_
Rays elxgnu 520.6 315.4 264.4 242.0 ? BSD 4.2
*vgr elxgnu 4.64 4.96 4.81 4.77 ?
_
Rays utah-cs 521.1 292.1 237.4 216.2 ? BSD 4.3
*vgr utah-cs 4.64 4.59 4.32 4.27 ?
_
Rays c1east 521.6 285.3 230.5 215.1 ? Convex UNIX 6.0.1.12,
*vgr c1east 4.66 4.49 4.20 4.24 ? vc -O1 (scalar)
_
Rays c1east 527.7 287.4 228.7 210.0 ? Convex UNIX 6.0.1.12,
*vgr c1east 4.71 4.52 4.16 4.14 ? vc -O2 (vector)
_
Rays elxgnuy 644.7 349.3 264.6 242.1 ? System Vr2
*vgr elxgnuy 5.75 5.49 4.81 4.77 ?
_
Rays mflow 845.2 439.5 313.1 338.9 ? (preliminary)
*vgr mflow 7.54 6.91 5.69 6.68 ?
_
Rays venom 904.9 424.6 349.3 312.6 ? Concentrix 2.0,
*vgr venom 8.07 6.68 6.35 6.17 ? 2 CEs, no vectors
_
Rays venom 1375.5 650.0 523.4 459.9 ? Concentrix 2.0,
*vgr venom 12.27 10.22 9.52 9.07 ? 3 CEs, no vectors
_
Rays venom 1813.5 845.5 686.0 600.7 ? Concentrix 2.0,
*vgr venom 16.17 13.29 12.47 11.85 ? 4 CEs, no vectors
_
Rays venom 2364.1 1104.4 870.2 775.9 ? Concentrix 2.0,
*vgr venom 21.08 17.36 15.82 15.3 ? 5 CEs, no vectors
_
Rays snm2 2492.9 - - - ? Unicos 2.0,
*vgr snm2 22.24 - - - ? no vectors, no optim
_
Rays hep 2502.0 - - - ? 1 PEM, npsw=10
*vgr hep 22.32 - - - ?
_
Rays venom 2811.4 1319.0 1051.6 918.0 ? Concentrix 2.0,
*vgr venom 25.08 20.74 19.12 18.1 ? 6 CEs, no vectors
_
Rays venom 3248.8 1533.0 1232.3 1065.9 ? Concentrix 2.0,
*vgr venom 28.98 24.10 22.41 21.02 ? 7 CEs, no vectors
_
Rays patton 3453.3 1514.3 1271.2 1027.3 ? COS V115BF2
*vgr patton 30.81 23.81 23.11 20.26 ? 1 CPU, no vectors
_
Rays venom 3677.3 1724.2 1375.4 1208.4 ? Concentrix 2.0,
*vgr venom 32.80 27.11 25.01 23.83 ? 8 CEs, no vectors
_
Rays alliant 3972.9 1840.0 1457.2 1266.4 ? Concentrix 3.0,
*vgr alliant 35.44 28.93 26.49 24.98 ? 8 CEs, no vectors
_
Rays hep 4055.9 - - - ? 1 PEM, npsw=40
*vgr hep 36.18 - - - ?
_
Rays patton 6856.6 - 2522.2 - ? COS V115BF2
*vgr patton 61.16 - 45.86 - ? 2 CPUs, no vectors
_
Rays patton 10205.1 - 3749.9 - ? COS V115BF2
*vgr patton 91.04 - 68.18 - ? 3 CPUs, no vectors
_
Rays patton 13320.2 - 4955.6 - ? COS V115BF2
*vgr patton 118.82 - 90.10 - ? 4 CPUs, no vectors
.TE
.NH 1
RELEASE 2.3 STATISTICS (2-Nov-1987)
.LP
.TS H
expand box;
l l | n n n n | n | l.
A/* H/W Moss World Star Bldg Mean S/W Notes
_
.TH
Rays vgr 118.8 64.9 36.5 34.2 ? BSD 4.3
*vgr vgr 1.0 1.0 1.0 1.0 1.0
_
Rays vmb 375.4 218.6 186.4 196.2 ? UTX 2.0
*vgr vmb 3.16 3.37 5.11 5.74 ?
_
Rays venom 468.2 221.7 166.1 144.9 ? Concentrix 3.0,
*vgr venom 3.94 3.42 4.55 4.24 ? 1 CE, no vectors
_
Rays sws2 471.9 258.4 202.5 186.4 ? Convex Unix 6.2.32.2
*vgr sws2 3.97 3.98 5.55 5.45 ? vanilla cc -O
_
Rays vector 656.6 301.6 221.1 195.0 ? Concentrix 3.0,
*vgr vector 5.53 4.65 6.06 5.70 ? 1 ACE, no vectors
_
Rays venom 827.3 424.0 327.1 287.9 ? Concentrix 3.0,
*vgr venom 6.96 6.53 8.96 8.42 ? 2 CEs, no vectors
_
Rays vhs 958.3 545.6 447.0 414.1 ? -O2 optimization
*vgr vhs 8.07 9.41 12.25 12.11 ?
_
Rays mseries 988.3 603.5 515.6 491.6 ?
*vgr mseries 8.32 9.29 14.13 14.37 ?
_
Rays vector 1280.9 596.8 436.7 389.2 ? Concentrix 3.0,
*vgr vector 10.78 9.19 11.96 11.38 ? 2 ACEs, no vectors
_
Rays venom 1288.7 630.6 486.4 428.0 ? Concentrix 3.0,
*vgr venom 10.85 9.72 13.33 12.51 ? 3 CEs, no vectors
_
Rays venom 1732.9 853.2 645.4 560.1 ? Concentrix 3.0,
*vgr venom 14.59 13.15 17.68 16.38 ? 4 CEs, no vectors
_
Rays bob 1856.7 801.9 574.1 500.3 ? 1 CPU, UNICOS 3.0,
*vgr bob 15.63 12.36 15.73 15.62 ? CC -O
_
Rays vector 1952.1 881.7 647.6 578.8 ? Concentrix 3.0,
*vgr vector 16.43 13.58 17.74 16.92 ? 3 ACEs, no vectors
_
Rays venom 2158.4 1031.3 797.3 703.1 ? Concentrix 3.0,
*vgr venom 18.17 15.89 21.84 20.56 ? 5 CEs, no vectors
_
Rays bob 2346.1 1127.4 751.0 677.2 ? 1 CPU UNICOS 4.0
*vgr bob 19.75 17.37 20.57 19.80 ? CC -O
_
Rays bob 2423.5 1045.7 719.3 609.4 ? 1 CPU, UNICOS 3.0,
*vgr bob 20.40 16.11 19.71 17.82 ? VCC -O
_
Rays vector 2546.2 1170.0 867.2 758.7 ? Concentrix 3.0,
*vgr vector 21.43 18.03 23.76 22.18 ? 4 ACEs, no vectors
_
Rays venom 2633.7 1232.7 943.4 839.5 ? Concentrix 3.0,
*vgr venom 22.17 18.99 25.85 24.55 ? 6 CEs, no vectors
_
Rays venom 2769.4 1393.3 1098.1 971.6 ? Concentrix 3.0,
*vgr venom 23.31 21.47 30.08 28.41 ? 7 CEs, no vectors
_
Rays vector 3131.2 1453.8 1065.8 945.4 ? Concentrix 3.0,
*vgr vector 26.36 22.40 29.20 27.64 ? 5 ACEs, no vectors
_
Rays venom 3368.7 1605.3 1231.3 1095.11 ? Concentrix 3.0,
*vgr venom 28.36 24.73 33.73 32.02 ? 8 CEs, no vectors
_
Rays patton 3456.5 1691.8 1169.0 1043.6 ? 1 CPU, UNICOS 2.1
*vgr patton 29.10 26.07 32.03 30.51 ? no vectors
_
Rays vector 3686.4 1688.6 1259.1 1129.0 ? Concentrix 3.0,
*vgr vector 31.03 26.02 34.49 33.01 ? 6 ACEs, no vectors
_
Rays vector 4140.3 1953.0 1463.3 1299.7 ? Concentrix 3.0,
*vgr vector 34.85 30.09 40.09 38.00 ? 7 ACEs, no vectors
_
Rays bob 4641.7 2243.4 1498.2 1358.1 ? 2 CPUs, UNICOS 4.0
*vgr bob 39.07 34.57 41.05 39.71 ? CC -O
_
Rays vector 4712.2 2226.3 1649.0 1469.7 ? Concentrix 3.0,
*vgr vector 39.66 34.30 45.18 42.97 ? 8 ACEs, no vectors
_
Rays bob 6884.9 3422.4 2267.7 2034.3 ? 3 CPUs, UNICOS 4.0
*vgr bob 57.95 52.73 62.13 59.48 ? CC -O
_
Rays bob 9477.1 4484.7 2947.0 2832.9 ? 4 CPUs, UNICOS 4.0
*vgr bob 79.77 69.10 80.76 82.83 ? CC -O
.TE
.NH 1
RELEASE 3.0 STATISTICS (10-Oct-1988)
.LP
.TS H
expand box;
l l | n n n n | n | l.
A/* H/W Moss World Star Bldg Mean S/W Notes
_
.TH
Abs vgr 138.85 67.15 54.48 49.11 77.39 BSD 4.3
*vgr vgr 1.00 1.00 1.00 1.00 1.00 w/FPA
_
Abs sdm 163.56 76.98 59.79 52.51 88.21 SunOS 3.4
*vgr sdm 1.17 1.14 1.09 1.06 1.11 w/68881
_
Abs ardec-3 417.95 212.43 177.01 160.73 242.03 9820, OSx 4.1
*vgr ardec-3 3.01 3.16 3.24 3.27 3.17 -P 1
_
Abs spark 443.84 216.92 190.42 192.82 261.00 UTX 2.0
*vgr spark 3.19 3.23 3.49 3.92 3.37 no MACC
_
Abs vmb 482.28 226.33 191.52 193.04 273.29 UTX 2.0
*vgr vmb 3.47 3.37 3.51 3.93 3.57 no MACC
_
Abs sws2 546.23 255.45 183.10 163.85 287.15 Convex 6.2.32.2
*vgr sws2 3.93 3.80 3.36 3.33 3.60 /bin/cc
_
Abs sun4 767.7 373.7 315.5 284.5 435.6 Unix 3.5
*vgr sun4 5.52 5.56 5.79 5.79 5.62 -O2 optim
_
Abs video 940.33 469.30 399.21 367.64 544.12 UNIX 2.0
*vgr video 6.77 6.98 7.32 7.48 7.13 -O2
_
Abs vhs 954.81 471.90 409.78 392.55 557.26 IRix 3.1
*vgr vhs 6.87 7.02 7.52 7.99 7.45 Parallel, -P1
_
Abs bob 2602.68 1078.25 712.39 642.42 1258.93 UNICOS 4.0, /bin/cc
*vgr bob 21.22 18.17 15.39 13.98 17.19 -P 1
_
Abs vector 3811.68 1469.80 1060.50 921.21 1815.79 Alliant 3.0
*vgr vector 27.45 21.88 19.46 18.75 21.88 -P 5
_
Abs vector 4515.09 1751.94 1266.49 1090.85 2156.09 Alliant 3.0
*vgr vector 32.51 26.08 23.24 22.21 26.01 -P 6
_
Abs patton 4550.67 1920.15 1298.61 1153.02 2230.61 UNICOS 3.0, /bin/cc
*vgr patton 37.10 32.36 28.05 25.09 30.65 -P 1
_
Abs vector 5130.74 2004.49 1438.97 1261.36 2458.89 Alliant 3.0
*vgr vector 36.95 29.85 26.41 25.68 29.72 -P 7
_
Abs bob 5186.24 2132.17 1409.10 1273.72 2500.30 UNICOS 4.0, /bin/cc
*vgr bob 42.28 35.93 30.44 27.71 34.09 -P 2
_
Abs vector 5813.76 2260.61 1638.31 1422.82 2783.87 Alliant 3.0
*vgr vector 41.87 33.66 30.07 28.97 33.64 -P 8
_
Abs amber 5901.29 2702.65 2096.35 1893.41 3148.42
*vgr amber 42.50 40.24 38.47 38.55 39.94 -P 1
_
Abs bob 7934.12 3392.98 2119.11 1929.74 3843.98 UNICOS 4.0, /bin/cc
*vgr bob 64.69 57.18 45.78 41.99 52.41 -P 3
_
Abs patton 8898.79 3782.55 2559.48 2292.13 4383.23 UNICOS 3.0, /bin/cc
*vgr patton 72.56 63.75 55.30 49.88 60.37 -P 2
_
Abs bob 10734.52 4436.61 2883.53 2617.47 5168.03 UNICOS 4.0, /bin/cc
*vgr bob 87.52 74.77 62.30 56.96 70.38 -P 4
_
Abs patton 13078.79 5631.95 3832.88 3416.90 6490.13 UNICOS 3.0, /bin/cc
*vgr patton 106.64 94.92 82.81 74.36 89.68 -P 3
_
Abs patton 17157.78 7437.55 5073.58 4531.25 8550.04 UNICOS 3.0, /bin/cc
*vgr patton 139.90 125.35 109.62 98.61 118.37 -P 4
.TE
.bp
.NH 1
RELEASE 3.7 STATISTICS (19-June-1989)
.LP
.TS H
expand box;
l l | n n n n n | n | l.
A/* H/W Moss World Star Bldg M35 Mean CPU
_
.TH
Abs vgr 128.64 54.47 45.17 40.35 49.02 63.53 1
*vgr vgr 1.00 1.00 1.00 1.00 1.00 1.00
_
Abs rh2 1704.56 791.31 599.81 549.74 589.01 846.88 1
*vgr rh2 13.25 14.52 13.27 13.62 12.01 13.33
_
Abs spark 435.69 208.59 176.76 177.69 174.67 234.68 1
*vgr spark 3.53 3.61 4.17 4.29 3.40 3.80
_
Abs vhs 973.11 475.00 384.62 351.12 343.44 505.45 1
*vgr vhs 7.56 8.72 8.51 8.70 7.00 8.09
_
Abs whisper 1118.35 561.81 473.52 439.76 509.26 620.54 1
*vgr whisper 8.69 10.31 10.48 10.89 10.38 10.15
_
Abs nova 2024.80 976.01 790.17 732.35 ? 1130.83 1
*vgr nova 15.74 17.92 17.49 18.15 ? 17.32
_
Abs ovoyage 1969.57 1001.21 862.77 809.61 786.11 1085.85 2
*vgr ovoyage 15.31 18.38 19.10 20.06 16.03 17.77
_
Abs taylor 2446.98 1076.24 912.03 837.56 799.58 1214.47 1
*vgr taylor 19.02 19.75 20.19 20.75 16.31 19.20
_
Abs worm 2671.46 1218.49 966.76 859.61 932.18 1329.70 1
*vgr worm 20.76 22.36 21.40 21.30 19.01 20.96
_
Abs viper 3255.73 1368.96 1102.71 1039.37 1008.15 1554.98 8
*vgr viper 25.30 25.13 24.41 25.75 20.56 24.23
_
Abs vector 3956.86 1625.23 1234.03 1137.36 1121.41 1814.97 8
*vgr vector 30.75 29.83 27.31 28.18 22.87 27.78
_
Abs taylor 4730.05 2225.56 1742.09 1590.57 1551.78 2368.01 2
*vgr taylor 36.76 40.85 38.56 39.41 31.65 37.44
_
Abs worm 5017.85 2309.86 1894.92 1708.27 1791.11 2544.40 2
*vgr worm 39.00 42.40 41.95 42.33 36.53 40.44
_
Abs worm 7082.79 3359.99 2740.50 2502.03 2594.37 3655.93 3
*vgr worm 55.05 61.68 60.67 62.00 52.92 58.46
_
Abs worm 8664.78 4162.53 3323.46 3115.36 3378.75 4528.97 4
*vgr worm 67.35 76.41 73.57 77.20 68.92 72.69
_
Abs worm 10072.1 5016.57 4032.60 3855.90 4043.11 5404.06 5
*vgr worm 78.29 92.09 89.27 95.56 82.47 87.53
_
Abs worm 11678.4 5752.20 4758.80 4493.16 4700.52 6276.60 6
*vgr worm 90.78 105.60 105.35 111.35 95.88 101.79
_
Abs worm 12282.3 6021.31 5394.36 4908.98 5141.71 6749.72 7
*vgr worm 95.47 110.54 119.42 121.65 104.89 110.39
_
Abs worm 12158.3 5913.50 5784.67 5327.66 5505.71 6937.96 8
*vgr worm 94.51 108.56 128.06 132.03 112.31 115.09
_
Abs patton 16028.8 7289.7 4827.9 4392.5 20829.2 53368.1 4
*vgr patton 124.6 133.83 106.88 108.85 106.23 116.07
.TE
.bp
.NH 1
RELEASE 4.0 STATISTICS
.LP
.TS H
expand box;
l l | n n n n n | n | l.
A/* H/W Moss World Star Bldg M35 Mean CPU
_
.TH
Abs vgr 137.82 67.23 56.39 53.91 69.25 76.92 1
*vgr vgr 1.00 1.00 1.00 1.00 1.00 1.00
_
Abs slc1 153.63 80.95 62.94 60.48 ? 71.60 1
*vgr slc1 1.12 1.20 1.12 1.13 ? .91
_
Abs vision 165.85 89.78 76.44 75.78 96.18 100.80 1
*vgr vision 1.21 1.33 1.36 1.42 1.36 1.33
_
Abs vmb 381.92 195.11 178.78 186.62 214.31 231.34 1
*vgr vmb 2.78 2.90 3.18 3.49 3.03 3.07
_
Abs sws1 636.26 288.76 212.99 210.18 271.02 323.84 1
*vgr sws1 4.64 4.30 3.79 3.93 3.83 4.09
_
Abs veto 827.25 436.38 361.89 348.99 422.19 479.34 1
*vgr veto 6.03 6.50 6.45 6.54 5.97 6.29
_
Abs vhs 1040.44 500.52 436.90 415.15 496.30 577.86 1
*vgr vhs 7.59 7.46 7.79 7.78 7.02 7.52
_
Abs cor3 1203.14 553.22 445.45 398.79 534.18 626.95 1
*vgr cor3 8.78 8.24 7.94 7.47 7.55 7.99
_
Abs wilted 1556.66 800.18 722.95 708.21 858.90 929.38 1
*vgr wilted 11.36 11.93 12.89 13.27 12.15 12.32
_
Abs shpcrc2 2274.36 1041.79 915.99 854.30 1110.23 1239.33 1
*vgr shpcrc2 16.59 15.53 16.33 16.01 15.70 16.03
_
Abs walrus 2291.38 1094.04 960.07 892.67 1066.31 1260.89 1
*vgr walrus 16.72 16.31 17.12 16.72 15.08 16.39
_
Abs walrus 4010.55 2019.34 1767.75 1685.19 2029.78 2302.52 2
*vgr walrus 29.27 30.11 31.52 31.58 28.71 30.23
_
Abs patton 5235.87 2108.02 1509.85 1507.81 2132.01 2498.71 1
*vgr patton 38.21 31.43 26.92 28.25 30.15 30.99
_
Abs crim 4679.97 2246.04 2143.07 1936.85 2224.65 2646.11 1
*vgr crim 34.15 33.49 38.22 36.29 31.47 34.72
_
Abs uy1 6220.79 2474.97 1742.33 1748.73 2464.90 2930.34 1
*vgr uy1 45.40 36.90 31.07 32.77 34.86 36.20
_
Abs wiltse 5785.83 2737.06 2473.66 2310.58 2699.06 3201.23 1
*vgr wiltse 42.22 40.81 44.11 43.30 38.18 41.72 -mips1
_
Abs walrus 5743.85 2938.73 2513.24 2446.85 2858.84 3300.30 3
*vgr walrus 41.92 43.82 44.82 45.85 40.44 43.37
_
Abs wiltse 7093.51 3458.89 2887.77 2730.62 3199.08 3873.97 1
*vgr wiltse 51.77 51.57 51.50 51.17 45.25 50.25 -mips2
_
Abs walrus 7131.48 3613.02 3262.01 3048.77 3594.35 4129.92 4
*vgr walrus 52.05 53.87 58.17 57.13 50.84 54.41
_
Abs whiz 7159.01 3655.65 3355.85 3132.36 3655.02 4191.57 4
*vgr whiz 52.25 54.51 59.85 58.70 51.70 55.40
_
Abs walrus 7698.43 4119.06 3889.37 3690.27 4244.30 4728.28 5
*vgr walrus 56.18 61.42 69.36 69.15 60.04 63.23
_
Abs walrus 8718.08 4625.56 4469.49 4295.53 4765.40 5374.81 6
*vgr walrus 63.63 68.97 79.71 80.50 67.41 72.04
_
Abs walrus 8937.71 4882.66 4911.99 4601.09 5335.14 5733.71 7
*vgr walrus 65.23 72.81 87.60 86.22 75.47 77.46
_
Abs walrus 9300.31 5136.17 5243.14 5112.23 5318.45 6022.06 8
*vgr walrus 67.88 76.59 93.51 95.80 75.23 81.80
_
.TE
.bp
.NH 1
ADDITIONAL STATISTICS
.PP
It would be greatly appreciated if you would e-mail any statistics
that you gather to the BRL-CAD developers, including: the ``summary''
file produced by the benchmark script, which BRL-CAD release was used,
the manufacturer of the machine, hardware model name/number, software
version numbers (OS and compiler), presence or absence of floating
point hardware, processor cache sizes, bus and memory speeds, and the
local host name (preferably an Internet or UUCP host name) of the
specific machine used.
View File
-77
View File
@@ -1,77 +0,0 @@
BRL-CAD Code Review Checklist
=============================
Included below is a list of criteria used when reviewing code changes.
While not comprehensive, it's a good checklist for new contributors to
evaluate against their changes prior to submission. The checklist is
part of common criteria used for core development and peer review.
The answer to all questions should be "yes".
Legal
-----
00. Are all changes under legally compatible license? No GPL, no NC.
01. Are all contributors documented? AUTHORS if new.
02. Do all new files have correct license header, copyright line, year?
Organization
------------
03. Are changes in an appropriate location with similar/related logic?
04. Do all new files have a consistent name? c/cpp/h extension.
05. Do the changes NOT introduce a cyclic dependency?
Style
-----
06. Does the file have the right style footer?
07. Is the code indented consistently? 4 char per level, 8 char tabs.
08. Is whitespace correct (no EOL spaces, internal tabs, or space around ops)?
09. Are braces consistent with existing code? Typically BSD KNF / K&R style.
Documentation
-------------
10. Publicly visible changes / features are documented? NEWS entry.
11. Does referencing documentation reflect interface changes? Check manpages.
12. Are new public symbols documented? Doxygen comment in include/ dir.
13. Are changed public symbols documented? CHANGES entry, DEPRECATED comment.
14. Is all dead or conditional debugging code documented? Comment or remove.
15. Are new numeric constants documented? Comment or eliminate.
Declaration
-----------
16. Do changed files include and only include headers in use by that file?
17. Are new public symbols named consistently? Prefixed according to library.
18. Are new private symbols NOT prefixed like they're public?
19. Are new functions NOT referenced in other files marked static?
20. Are new global variables avoided? No new ones allowed in libraries.
Definition
----------
21. Do changes avoid platform/compiler-specific constructs? libbu exempt.
22. Do new structures / classes have static size? No preprocessor toggles.
23. Do changes avoid exact floating point math? Use NEAR_EQUAL, see vmath.h
24. Do changes use wrapped system functions? See libbu API and HACKING.
25. Do changes avoid duplication, or refactor accordingly to shared code?
Compilation
-----------
26. Does the code compile without warnings? All enabled.
27. Reasonable to think changes will trivially compile on all major platforms?
Testing
-------
28. Are any new inputs checked, sanitized?
29. For changes fixing a recurrant bug, is there an accompanying test?
30. Does performance testing pass and NOT decrease? No slow downs.
31. Do all regression tests pass? No new failures.
The following guidelines are also desirable ideals, but not as
strictly measurable:
** should minimize new public API, less is more
** should leverage standard libraries and standards, C++11 in particular
** should leverage demonstrably robust 3rd-party dependencies
** should resist new 3rd-party dependencies with duplicate functionality
** should keep code robust to different configurations and change
** should resist or eliminate changes not taken to some useful completion
** should prefer simple over complex or clever, except that which has merit
+48
View File
@@ -0,0 +1,48 @@
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?
View File
-24
View File
@@ -15,8 +15,6 @@ TABLE OF CONTENTS
Project Name
Internet Resources
Keywords & Categories
Mission
Community Overview
Terse Description (70 characters or less)
Short Description (255 characters or less)
Brief Description (512 characters or less)
@@ -117,28 +115,6 @@ interface bindings to a subset of the provided ray-trace and geometry
representation facilities. Includes a PHP geometry server interface.
MISSION
-------
BRL-CAD's open source development is persistently and passionately
obsessed with implementing a robust, powerful, flexible, and
comprehensive solid modeling system that provides faithful
high-performance geometric representation, efficient and intuitive
geometry editing, conversion support for all common solid geometry
formats, and geometric analysis tools for 3D computer-aided design
(CAD).
COMMUNITY OVERVIEW
------------------
BRL-CAD is developed by a collective of open source contributors all
around the world. Over the project's lifetime, there have been more
than 65 direct committing contributors to BRL-CAD and many more
indirect contributors and supporters. BRL-CAD has been an open source
project since 2004 expanding and accelerating development ever since.
TERSE DESCRIPTION (70-char)
-----------------
+31 -29
View File
@@ -1,17 +1,27 @@
# Define a build target that builds a no-op executable, so we can ensure
# a target for generator expression use regardless of other changes elsewhere
# in the build system
add_executable(db_dir_info db_dir_info.c)
set_target_properties(db_dir_info PROPERTIES FOLDER "DocBook")
# We need various configuration files set up for DocBook processing tools
add_subdirectory(resources)
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
@@ -19,21 +29,20 @@ if(BRLCAD_EXTRADOCS_PDF)
configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/fop.xconf.in ${CMAKE_BINARY_DIR}/doc/docbook/fop.xconf)
endif(BRLCAD_EXTRADOCS_PDF)
# For the html files, we need brlcad.css
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/brlcad_css-${CMAKE_CFG_INTDIR}-done
COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/css/brlcad.css $<TARGET_FILE_DIR:db_dir_info>/${RBIN_DIR}/${DOC_DIR}/html/css/brlcad.css
COMMAND "${CMAKE_COMMAND}" -E touch ${CMAKE_CURRENT_BINARY_DIR}/brlcad_css-${CMAKE_CFG_INTDIR}-done
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/css/brlcad.css
)
add_custom_target(brlcad_css DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/brlcad_css-${CMAKE_CFG_INTDIR}-done)
set_target_properties(brlcad_css PROPERTIES FOLDER "DocBook")
install(FILES css/brlcad.css DESTINATION ${DOC_DIR}/html/css)
DISTCLEAN(${CMAKE_CFG_INTDIR}/${DOC_DIR}/html/css/brlcad.css)
# 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)
@@ -41,16 +50,9 @@ add_subdirectory(presentations)
add_subdirectory(specifications)
add_subdirectory(system)
set(ignore_files
CMakeLists.txt
README
README.DB_authors_notes
css/brlcad.css
db_dir_info.c
fop.xconf.in
log4j.properties
)
CMAKEFILES(${ignore_files})
CMAKEFILES(README fop.xconf.in log4j.properties resources)
CMAKEFILES(README.DB_authors_notes)
CMAKEFILES(css/brlcad.css)
# Local Variables:
# tab-width: 8
+44 -4
View File
@@ -149,11 +149,51 @@ See this link for help in installing fop 1.0 and saxon-he on Ubuntu:
VALIDATION
----------
It is possible to add a validation step to DocBook compilation by defining the
CMake variable BRLCAD_EXTRADOCS_VALIDATE to ON. This will use xmllint to
validate the xml files as they are built.
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
By default, this option is enable if the BRL-CAD strict build is enabled.
OTHER CONSIDERATIONS
--------------------
+1 -157
View File
@@ -23,167 +23,11 @@ set(XSL_PHP_STYLESHEET "${CMAKE_CURRENT_BINARY_DIR}/../resources/brlcad/wordpres
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")
set(articles_EN
TEMPLATE.xml
about.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
overlap_tool.xml
)
set(articles_EN_IMAGES
images/Lee_tux.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/ebm_primitive_fig01.png
images/ebm_primitive_fig02.png
images/ebm_primitive_fig03.png
images/gcv_architecture.png
images/gcv_unsupported_tessellation.png
images/gcv_using_gdiff.png
images/mgedrc_fig01.png
images/mgedrc_fig02.png
images/mgedrc_fig03.png
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/overlap_tool_fig01.gif
images/overlap_tool_fig02.gif
images/overlap_tool_fig03.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/base.gif
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
)
if(BRLCAD_EXTRADOCS)
ADD_DOC(articles_EN_IMAGES articles/images)
else(BRLCAD_EXTRADOCS)
CMAKEFILES(${articles_EN_IMAGES})
endif(BRLCAD_EXTRADOCS)
ADD_DOCBOOK("HTML;PHP;PDF" articles_EN articles articles_EN_IMAGES_cp)
CMAKEFILES(
CMakeLists.txt
images/tire_fig12.svg
images/tire_fig13.svg
)
add_subdirectory(en)
add_subdirectory(hy)
add_subdirectory(it)
add_subdirectory(ru)
CMAKEFILES(CMakeLists.txt)
# Local Variables:
# tab-width: 8
# mode: cmake
+171
View File
@@ -0,0 +1,171 @@
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
@@ -82,14 +82,14 @@
<imageobject role="html">
<!--
NOTE: fileref will normally be something like
"../../articles/images/nirt_fig02.png" NOT http: URL
"../../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/images/nirt_fig02.png" NOT http: URL
"../../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>
File diff suppressed because it is too large Load Diff
@@ -2,7 +2,7 @@
<info><title>Using the Build Pattern Tool</title>
<xi:include href="../books/tutorial_series_authors.xml" xpointer="Intro_MGED_Tutorial_Series_III_authors"/>
<xi:include href="../../books/en/tutorial_series_authors.xml" xpointer="Intro_MGED_Tutorial_Series_III_authors"/>
<legalnotice>
<para>Approved for public release; distribution is unlimited</para>
@@ -77,10 +77,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/build_pattern_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_pattern_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/build_pattern_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_pattern_fig01.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -131,7 +131,7 @@ part.s26 part.s26-1 part.s27 part.s28 part.s28+1 part.s28-1 part.s29
thorough and name each primitive, region, and assembly properly. Consider
the following example:
<inlinemediaobject><imageobject role="html"><imagedata fileref="../../articles/images/build_pattern_fig07.png"/></imageobject><imageobject role="fo"><imagedata fileref="../../articles/images/build_pattern_fig07.png"/></imageobject></inlinemediaobject>
<inlinemediaobject><imageobject role="html"><imagedata fileref="../../articles/en/images/build_pattern_fig07.png"/></imageobject><imageobject role="fo"><imagedata fileref="../../articles/en/images/build_pattern_fig07.png"/></imageobject></inlinemediaobject>
</para>
<para>
Top-level duplications copy the patterned object and reference its entire
@@ -186,10 +186,10 @@ part.s26 part.s26-1 part.s27 part.s28 part.s28+1 part.s28-1 part.s29
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/build_pattern_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_pattern_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/build_pattern_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_pattern_fig02.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -243,10 +243,10 @@ part.s26 part.s26-1 part.s27 part.s28 part.s28+1 part.s28-1 part.s29
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/build_pattern_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_pattern_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/build_pattern_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_pattern_fig03.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -269,10 +269,10 @@ part.s26 part.s26-1 part.s27 part.s28 part.s28+1 part.s28-1 part.s29
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/build_pattern_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_pattern_fig04.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/build_pattern_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_pattern_fig04.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -282,10 +282,10 @@ part.s26 part.s26-1 part.s27 part.s28 part.s28+1 part.s28-1 part.s29
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/build_pattern_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_pattern_fig05.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/build_pattern_fig05.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_pattern_fig05.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -310,10 +310,10 @@ part.s26 part.s26-1 part.s27 part.s28 part.s28+1 part.s28-1 part.s29
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/build_pattern_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_pattern_fig06.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/build_pattern_fig06.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_pattern_fig06.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -2,7 +2,7 @@
<info><title>Using the build_region Command</title>
<xi:include href="../books/tutorial_series_authors.xml" xpointer="Intro_MGED_Tutorial_Series_III_authors"/>
<xi:include href="../../books/en/tutorial_series_authors.xml" xpointer="Intro_MGED_Tutorial_Series_III_authors"/>
<legalnotice>
<para>Approved for public release; distribution is unlimited</para>
@@ -48,10 +48,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/build_region_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_region_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/build_region_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_region_fig01.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -70,10 +70,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/build_region_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_region_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/build_region_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_region_fig02.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -107,10 +107,10 @@ u wgn.s2 + wgn.s2+1 - wgn.s2-1
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/build_region_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_region_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/build_region_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_region_fig03.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -125,10 +125,10 @@ u wgn.s2 + wgn.s2+1 - wgn.s2-1
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/build_region_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_region_fig04.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/build_region_fig04.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/build_region_fig04.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -2,7 +2,7 @@
<info><title>Using the Extruded Bitmap Primitive</title>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../books/tutorial_series_authors.xml" xpointer="Intro_MGED_Tutorial_Series_III_authors"/>
<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../books/en/tutorial_series_authors.xml" xpointer="Intro_MGED_Tutorial_Series_III_authors"/>
<legalnotice>
<para>Approved for public release; distribution is unlimited</para>
@@ -27,10 +27,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/ebm_primitive_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/ebm_primitive_fig01.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/ebm_primitive_fig01.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/ebm_primitive_fig01.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -39,10 +39,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/ebm_primitive_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/ebm_primitive_fig02.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/ebm_primitive_fig02.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/ebm_primitive_fig02.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -51,10 +51,10 @@
<mediaobject>
<imageobject role="html">
<imagedata align="center" fileref="../../articles/images/ebm_primitive_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/ebm_primitive_fig03.png" format="PNG"/>
</imageobject>
<imageobject role="fo">
<imagedata align="center" fileref="../../articles/images/ebm_primitive_fig03.png" format="PNG"/>
<imagedata align="center" fileref="../../articles/en/images/ebm_primitive_fig03.png" format="PNG"/>
</imageobject>
</mediaobject>
</figure>
@@ -34,7 +34,7 @@
<title>GCV architecture</title>
<mediaobject>
<imageobject>
<imagedata fileref="../../articles/images/gcv_architecture.png"/>
<imagedata fileref="../../articles/en/images/gcv_architecture.png"/>
</imageobject>
</mediaobject>
</figure>
@@ -283,7 +283,7 @@ LIBGCV_ADD_PLUGIN(foo "foo_read.c" "librt;libbu")
<title>Tessellation of incompatible entities</title>
<mediaobject>
<imageobject>
<imagedata fileref="../../articles/images/gcv_unsupported_tessellation.png"/>
<imagedata fileref="../../articles/en/images/gcv_unsupported_tessellation.png"/>
</imageobject>
</mediaobject>
</figure>
@@ -341,7 +341,7 @@ LIBGCV_ADD_PLUGIN(foo "foo_read.c" "librt;libbu")
<title>Using MGED's gdiff utility</title>
<mediaobject>
<imageobject>
<imagedata fileref="../../articles/images/gcv_using_gdiff.png"/>
<imagedata fileref="../../articles/en/images/gcv_using_gdiff.png"/>
</imageobject>
</mediaobject>
</figure>

Before

Width:  |  Height:  |  Size: 145 KiB

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

Before

Width:  |  Height:  |  Size: 322 KiB

After

Width:  |  Height:  |  Size: 322 KiB

Before

Width:  |  Height:  |  Size: 360 KiB

After

Width:  |  Height:  |  Size: 360 KiB

Before

Width:  |  Height:  |  Size: 467 KiB

After

Width:  |  Height:  |  Size: 467 KiB

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Before

Width:  |  Height:  |  Size: 501 KiB

After

Width:  |  Height:  |  Size: 501 KiB

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Before

Width:  |  Height:  |  Size: 226 KiB

After

Width:  |  Height:  |  Size: 226 KiB

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 125 KiB

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 124 KiB

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