Compare commits

..
559 Commits
Author SHA1 Message Date
Christopher Sean Morrison b8555311ab Work on prep caching can now proceed on trunck since it's intended for inclusion in the next release, and the branch is merged.
(svn branch delete)

svn:revision:68946
svn:branch:prep-cache
svn:account:brlcad
2016-09-30 18:38:37 +00:00
Christopher Sean Morrison af392687da merge from trunk r68930 to branch
svn:revision:68931
svn:branch:prep-cache
svn:account:brlcad
2016-09-29 01:35:48 +00:00
Vasco Alexandre da Silva Costa 76588845b4 Fix compilation error due to uninitialized variable.
svn:revision:68930
svn:branch:trunk
svn:account:vasco_costa
2016-09-28 22:19:09 +00:00
Clifford Yapp 2f301301dc initialize separator char (build problem reported by Vasco Alexandre da Silva Costa)
svn:revision:68929
svn:branch:trunk
svn:account:starseeker
2016-09-28 22:12:48 +00:00
Clifford Yapp 5f87e31fbe Fix while test and apply mk_bot fixes (thanks to Vasco Alexandre da Silva Costa for catching these)
svn:revision:68928
svn:branch:trunk
svn:account:starseeker
2016-09-28 22:01:42 +00:00
Clifford Yapp cccbb20313 in-src-dir regress-repository needs to ignore mime.c
svn:revision:68927
svn:branch:trunk
svn:account:starseeker
2016-09-28 20:54:08 +00:00
Clifford Yapp 81ad51c607 Restore original tests for on/off for the nN and yY cases to make unit testing work again. Need to check if the new behavior was/is preferred - if so, need to update tests.
svn:revision:68926
svn:branch:trunk
svn:account:starseeker
2016-09-28 18:34:41 +00:00
Clifford Yapp 2e5feec0fa unused variable
svn:revision:68925
svn:branch:trunk
svn:account:starseeker
2016-09-28 14:54:22 +00:00
Christopher Sean Morrison 2ae9129190 need to upgrade d/dir shader strings if we're going to remove them
svn:revision:68924
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:56:27 +00:00
Christopher Sean Morrison eaff7ac3d4 multiple bugs found, invokes regression test requirement.
svn:revision:68923
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:54:52 +00:00
Christopher Sean Morrison 097366c64a group the gdiff options together, man page movement is arguably not visible.
svn:revision:68922
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:52:03 +00:00
Christopher Sean Morrison 09f03c24e8 gdiff now uses a 100mm default tolerance and a default grid spacing based on the bounding box. (consolidated two gdiff default changes into one entry)
svn:revision:68921
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:48:51 +00:00
Christopher Sean Morrison fb0efdf9df consolidate man page removals, removed erase_all, export_body, vrmgr, dall. also avoid using ' - ' in description as it breaks automatic parsing of names.
svn:revision:68920
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:42:35 +00:00
Christopher Sean Morrison caee842dd7 brlman and man(n) now have manual pages. (reworded for clarity)
svn:revision:68919
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:38:02 +00:00
Christopher Sean Morrison 987e65c886 jon added support for specifying colors using 0 to 255 or 0.0 to 1.0 ranges to all of the rt/rtedge/etc tools
svn:revision:68918
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:35:54 +00:00
Christopher Sean Morrison 3843675da9 g_diff man page is replaced by gdiff man page. consolidate into one line item.
svn:revision:68917
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:31:46 +00:00
Christopher Sean Morrison 1182df5a2b slight tweak for readability. original note: Improve keep error reporting when file can not be created.
svn:revision:68916
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:29:03 +00:00
Christopher Sean Morrison 72d094f706 consolidate all of the rtwizard window sizing changes into one entry: 1) this addresses user request from Josh Baker to have rtwizard name its window something other than the generic 'tk' to make it easier to find when minimized. 2) If the user sets the hierarchy view width, we want that width to stay constant between windows. Also uniformly initialize to width 250 rather than on the lenght of the file name. 3) Have the default rtwizard image size key off of the mgedObj size. Can be overridden by the FbPage.
svn:revision:68915
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:27:32 +00:00
Christopher Sean Morrison 139820db71 directional lights created prior to rel 6.0 used the 'd {x y z}' notation to specify their direction. this was changed to t/target, which broke all light sources and required the modeler to redefine the light. this undoes the regression, restoring the ability to read the old .g files without error by putting recognition for d/dir keywords back.
svn:revision:68914
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:19:48 +00:00
Christopher Sean Morrison eb1dbb4d38 fix a regression introduced way back in 2000 (r19476) that breaks old models with directional light sources. this was long before we had deprecation policy, but a detrimental regression nonetheless when the d/dir keyword was changed to t/target without adding any logic to upgrade the old shader strings. restore the ability to read those geometry files and have their lights work by adding d/dir back to the list of recognized keywords.
svn:revision:68913
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:14:08 +00:00
Christopher Sean Morrison e6a0cf467b fixed an infinite loop bug in rt that was occurring on non-infinite light sources that cast shadows. the logic for initializing sample points (so we cast shadows in the shape of the light) was faulty causing it to never terminate. fixed logic and added additional protection in 68911.
svn:revision:68912
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:08:21 +00:00
Christopher Sean Morrison fefc22ae25 fix infinite loop bug in rt when using non-infinite shadow-casting lights. multiple issues going on, first being to not loop indefinitely when calling rt_shootray to find light samples if we don't acquire the sample (for whatever reason). since light samples were being randomly created using BN_RANDOM which has a *very* small cycle, use that limit as termination criteria here. probably want a better way (and better randomness).
the second problem was introduced in 28642 when I was apparently chasing a null derefernce, I'd added an if(&array) check.  as always true, it was logically harmless until in 65111 jon noticed the always true logic and presumed the intent was if(array) which made the logic always false thus causing light sources to never get initialized and samples to spin infinitely.

svn:revision:68911
svn:branch:trunk
svn:account:brlcad
2016-09-28 13:03:34 +00:00
Christopher Sean Morrison 81d3143ad8 add some basic input/output protection to make sure we don't clobber an existing output
svn:revision:68910
svn:branch:trunk
svn:account:brlcad
2016-09-28 02:54:19 +00:00
Clifford Yapp cea2f5d150 use full path
svn:revision:68909
svn:branch:trunk
svn:account:starseeker
2016-09-27 22:07:31 +00:00
Clifford Yapp b73757c425 need <stdexcept> include for C++ to get std::invalid_argument
svn:revision:68908
svn:branch:trunk
svn:account:starseeker
2016-09-27 21:51:32 +00:00
Clifford Yapp e582ff7ccd Set up a convenience directory for test work that needs to be added to the build but shouldn't be accidently swept into a svn commit.
svn:revision:68907
svn:branch:trunk
svn:account:starseeker
2016-09-27 21:39:29 +00:00
Jonathan Engbert 723eb585a1 remove duplicate code; add descriptions to file headers
svn:revision:68906
svn:branch:trunk
svn:account:ejno
2016-09-27 16:49:06 +00:00
Clifford Yapp 7307d8a4d1 Upgrade bullet to 2.83.7, since it builds and the simulate command example shows the same behavior (albeit incorrect...)
svn:revision:68905
svn:branch:trunk
svn:account:starseeker
2016-09-26 14:51:43 +00:00
Clifford Yapp c76f25114d switch ordering to match
svn:revision:68904
svn:branch:trunk
svn:account:starseeker
2016-09-26 00:54:08 +00:00
Clifford Yapp cda061f0da tweak option and docs
svn:revision:68903
svn:branch:trunk
svn:account:starseeker
2016-09-26 00:52:57 +00:00
Clifford Yapp eb2c0af395 If we told k-g to aggregate all element_shell objects, use a different name than uncategorized for the resulting BoT.
svn:revision:68902
svn:branch:trunk
svn:account:starseeker
2016-09-26 00:35:21 +00:00
Clifford Yapp 701e169d04 Rather than the mess of separate files, put the maps in with the BoT as attributes.
svn:revision:68901
svn:branch:trunk
svn:account:starseeker
2016-09-26 00:20:34 +00:00
Christopher Sean Morrison 1a87432796 implement better option handling so we can add a -f force flag for upgrading a v5 to v5 (forward-compatible changes)
svn:revision:68900
svn:branch:trunk
svn:account:brlcad
2016-09-25 13:41:18 +00:00
Clifford Yapp d501ba2676 Print vertex and face maps that relate k file id numbers to vertex and bot faces if we're converting all ELEMENT_SHELL elements into a single BoT (under those conditions, there is a unique mapping.)
svn:revision:68899
svn:branch:trunk
svn:account:starseeker
2016-09-24 20:03:02 +00:00
Clifford Yapp cad0bcca67 update name in file
svn:revision:68898
svn:branch:trunk
svn:account:starseeker
2016-09-24 19:01:58 +00:00
Clifford Yapp f66f238159 Might as well... - go with the k-g name for keyword file converter
svn:revision:68897
svn:branch:trunk
svn:account:starseeker
2016-09-24 19:01:06 +00:00
Clifford Yapp 0f02324132 add options support to dyn-g, and add a flag to aggregate all ELEMENT_SHELL elements into a single bot.
svn:revision:68896
svn:branch:trunk
svn:account:starseeker
2016-09-23 18:37:26 +00:00
Christopher Sean Morrison 5bca30b524 add the original aet model, used to diagram the view azimuth elevation twist vectors, as-is issues and all. note twist is going in the wrong direction and there is some top-level trash.
svn:revision:68895
svn:branch:trunk
svn:account:brlcad
2016-09-23 18:36:38 +00:00
Clifford Yapp 707e1e064d Dyna allows CSV separated data, in addition to the column width convention. I'm not sure, but I think some of their more verbose/advanced input conventions may prefer this formatting. We'll need to support it eventually, but it doesn't work yet so at least provide an informative error message.
svn:revision:68894
svn:branch:trunk
svn:account:starseeker
2016-09-23 15:33:45 +00:00
Clifford Yapp 2853d4f849 Somewhat surprisingly, encountered files that have actual whitespace filled columns when defining nodes. Assume zero is what's intended and don't warn.
svn:revision:68893
svn:branch:trunk
svn:account:starseeker
2016-09-23 14:46:23 +00:00
Clifford Yapp 31e309eff7 If we don't have any nodes, we don't have enough information to create geometry (no xyz point coordinates. bail.
svn:revision:68892
svn:branch:trunk
svn:account:starseeker
2016-09-23 14:37:27 +00:00
Clifford Yapp 1d216ec4c9 Clear up a number of issues with the dyn-g importer - handle situations where we have solids but no parts, use PID in region names to ensure uniqueness, tighten string matching for * keywords, and don't make an arb8 if the node numbers in the higher columns are duplicates.
svn:revision:68891
svn:branch:trunk
svn:account:starseeker
2016-09-22 22:33:00 +00:00
Robert Parker 3217379bc5 Added png2fb.c back in.
svn:revision:68890
svn:branch:trunk
svn:account:bob1961
2016-09-22 19:23:33 +00:00
Robert Parker 850ab2f938 Forgot to add png2fb.c
svn:revision:68889
svn:branch:trunk
svn:account:bob1961
2016-09-22 18:55:44 +00:00
Clifford Yapp 8a5792bbe4 For the moment, disable the src/other freetype build. We either need to bring in our own version of fontconfig to avoid conflicts with system libs, or figure out how to customize our version of freetype to not use fontconfig.
svn:revision:68888
svn:branch:trunk
svn:account:starseeker
2016-09-22 15:37:15 +00:00
Clifford Yapp 55ee9b9637 Right now we only handle four columns - don't read beyond that, even if there is something there...
svn:revision:68884
svn:branch:trunk
svn:account:starseeker
2016-09-21 23:54:47 +00:00
Clifford Yapp b546b30f29 skip comment lines
svn:revision:68883
svn:branch:trunk
svn:account:starseeker
2016-09-21 23:32:50 +00:00
Clifford Yapp c3325fba30 Generate arbs from element_solid information
svn:revision:68882
svn:branch:trunk
svn:account:starseeker
2016-09-21 22:59:09 +00:00
Christopher Sean Morrison 16ac14e006 geometry URL and VFS were discussed at length in the geometry service work. need to revisit the url design.
svn:revision:68881
svn:branch:trunk
svn:account:brlcad
2016-09-21 20:23:56 +00:00
Christopher Sean Morrison e8f9d9d3f1 insert a_no_booleans segments sorted, not just to the head of the list
svn:revision:68880
svn:branch:trunk
svn:account:brlcad
2016-09-21 16:36:47 +00:00
Robert Parker fe3ceb723f Change default nbflag settings for mouse_ray and pane_mouse_ray to 0.
svn:revision:68879
svn:branch:trunk
svn:account:bob1961
2016-09-21 16:24:26 +00:00
Clifford Yapp 82387e3972 refactor mesh creation out of main loop.
svn:revision:68878
svn:branch:trunk
svn:account:starseeker
2016-09-21 15:51:06 +00:00
Clifford Yapp 94d6f32686 Start setting up to process ELEMENT_SOLID objects as well as ELEMENT_SHELL
svn:revision:68868
svn:branch:trunk
svn:account:starseeker
2016-09-20 21:27:16 +00:00
Clifford Yapp 2e402294b6 For consistency/clarity, use solid_report rather than report.
svn:revision:68866
svn:branch:trunk
svn:account:starseeker
2016-09-20 17:53:30 +00:00
Robert Parker bc4a78f510 Updated cadwidgets::Ged::report to call solid_report which was renamed from report.
svn:revision:68865
svn:branch:trunk
svn:account:bob1961
2016-09-20 16:03:47 +00:00
Daniel Rossberg 52619bf92a included the bag-of-triangles in the Windows DLL build
svn:revision:68863
svn:branch:trunk
svn:account:d_rossberg
2016-09-20 06:50:13 +00:00
Christopher Sean Morrison d58776328d about/db/info commands could also report file timestamp info. need to make sure this is thought through better.
svn:revision:68858
svn:branch:trunk
svn:account:brlcad
2016-09-20 04:05:25 +00:00
Christopher Sean Morrison 3342a38c9b going to need a way to query the cache, generalizes a fair bit.
svn:revision:68857
svn:branch:trunk
svn:account:brlcad
2016-09-20 04:00:43 +00:00
Christopher Sean Morrison 7d682bb049 some more thoughts on analyze command/subcommands, though this alternate still needs even more kiss
svn:revision:68856
svn:branch:trunk
svn:account:brlcad
2016-09-20 03:54:34 +00:00
Christopher Sean Morrison ab1d95803e reviewing commands is center attention, so might make sense to tidy up
svn:revision:68855
svn:branch:trunk
svn:account:brlcad
2016-09-20 03:30:40 +00:00
Christopher Sean Morrison 50ad55d730 'purge' may be a good candidate replacement for garbage_collect since it avoids some other connotations and would generalize well to some other purposes (including unpurging). expand notes on audit and a geometry calculator (liking gc).
svn:revision:68854
svn:branch:trunk
svn:account:brlcad
2016-09-20 03:29:07 +00:00
Clifford Yapp adc0079d6c Part objects appear to have meaningful names - grab them for the regions.
svn:revision:68853
svn:branch:trunk
svn:account:starseeker
2016-09-19 21:08:12 +00:00
Clifford Yapp 4f43985e35 Make some regions to and hierarchy to organize things a bit.
svn:revision:68852
svn:branch:trunk
svn:account:starseeker
2016-09-19 20:21:29 +00:00
Clifford Yapp 4caf0e7f89 flip triangles around - this needs more careful study to determine the right way to create these...
svn:revision:68851
svn:branch:trunk
svn:account:starseeker
2016-09-19 19:51:15 +00:00
Clifford Yapp 491de8009f Import the individual element shell lines with part groupings, one bot per part id.
svn:revision:68850
svn:branch:trunk
svn:account:starseeker
2016-09-19 19:45:09 +00:00
Clifford Yapp fb225306af We need CPACK_PACKAGING_INSTALL_PREFIX if we're doing an RPM...
svn:revision:68848
svn:branch:trunk
svn:account:starseeker
2016-09-19 15:06:15 +00:00
Clifford Yapp 034eaf5f5a Still crude and limited to the point of being essentially nonfunctional, but since it can at least import something it's time to checkpoint. Working in importer for DYNA finite element models - examples can be found at http://www.ncac.gwu.edu/vml/models.html
svn:revision:68847
svn:branch:trunk
svn:account:starseeker
2016-09-19 01:06:21 +00:00
Clifford Yapp 03c902805b Rename example header defining protocol.
svn:revision:68846
svn:branch:trunk
svn:account:starseeker
2016-09-18 17:31:28 +00:00
Clifford Yapp 9f5f7795ce More simplification of the example, demonstrate data going back from client to server.
svn:revision:68845
svn:branch:trunk
svn:account:starseeker
2016-09-18 17:29:14 +00:00
Clifford Yapp f8a29c6be2 start simplifying my old attempt at understanding libpkg. Can send basic data from server to client now and assemble data in the client as exmplified by all_msgs collecting vls. Still need to demonstrate sending more interesting stuff from client back to server...
svn:revision:68844
svn:branch:trunk
svn:account:starseeker
2016-09-18 02:21:16 +00:00
Christopher Sean Morrison fb93b8a806 dgn support
svn:revision:68843
svn:branch:trunk
svn:account:brlcad
2016-09-15 00:22:44 +00:00
Clifford Yapp 8aa06f58af Clean export_body out of other docs
svn:revision:68842
svn:branch:trunk
svn:account:starseeker
2016-09-12 04:06:02 +00:00
Clifford Yapp 423a535a5d dall does not appear to be an existing MGED command - clean up docs
svn:revision:68841
svn:branch:trunk
svn:account:starseeker
2016-09-12 04:02:31 +00:00
Clifford Yapp ba60cb4be1 remove other references to erase_all
svn:revision:68840
svn:branch:trunk
svn:account:starseeker
2016-09-12 03:56:24 +00:00
Clifford Yapp 60c6330764 shell -> shells
svn:revision:68839
svn:branch:trunk
svn:account:starseeker
2016-09-12 01:24:50 +00:00
Clifford Yapp d1c8f36ce1 shell command is actually 'shells' command
svn:revision:68838
svn:branch:trunk
svn:account:starseeker
2016-09-12 01:24:01 +00:00
Jonathan Engbert 5f2e5f3d9d merge from trunk to r68836
svn:revision:68837
svn:branch:prep-cache
svn:account:ejno
2016-09-11 18:38:44 +00:00
Clifford Yapp 0bbddce34a Technically user visible - moved man pages to correct category and remove obsolete man pages
svn:revision:68836
svn:branch:trunk
svn:account:starseeker
2016-09-11 02:29:25 +00:00
Clifford Yapp 97d26f085d looks like a few of the proc-db man pages ended up in mann - moved back to man1, and deleted a couple pages that refer to commands no longer present in the system.
svn:revision:68835
svn:branch:trunk
svn:account:starseeker
2016-09-11 02:26:27 +00:00
Clifford Yapp 846c9c1f36 vrmgr no longer appears anywhere in the source code - remove references in docs
svn:revision:68834
svn:branch:trunk
svn:account:starseeker
2016-09-11 02:24:31 +00:00
Clifford Yapp ff6f657da0 Fix manvolnum and CMakeList.txt files
svn:revision:68833
svn:branch:trunk
svn:account:starseeker
2016-09-11 02:19:25 +00:00
Clifford Yapp 82d1dddb62 Move more command man pages from mann to man1
svn:revision:68832
svn:branch:trunk
svn:account:starseeker
2016-09-11 02:17:22 +00:00
Clifford Yapp d0d3ee08ff Fix manvolnum entries
svn:revision:68831
svn:branch:trunk
svn:account:starseeker
2016-09-11 02:12:02 +00:00
Clifford Yapp 7fa708efef Move three command line man pages from mann to man1
svn:revision:68830
svn:branch:trunk
svn:account:starseeker
2016-09-11 02:10:18 +00:00
Clifford Yapp 1b4c962ad5 export_body is not a command in archer or mged - remove man page
svn:revision:68829
svn:branch:trunk
svn:account:starseeker
2016-09-11 01:54:14 +00:00
Clifford Yapp 30e4e15cb5 erase_all is not a command in archer or mged - remove man page
svn:revision:68828
svn:branch:trunk
svn:account:starseeker
2016-09-11 01:52:29 +00:00
Clifford Yapp 5eb5af1d51 need to check mann man pages to make sure they're actually describing commands.
svn:revision:68827
svn:branch:trunk
svn:account:starseeker
2016-09-10 21:48:22 +00:00
Clifford Yapp fda9e6a51b looks like png2fb.c wasn't added?
svn:revision:68826
svn:branch:trunk
svn:account:starseeker
2016-09-10 17:47:04 +00:00
Robert Parker 33dbfb8811 Added fb_read_png(), ged_png2fb() and the tcl interface to it. This provides a way to directly load png files into a framebuffer.
svn:revision:68823
svn:branch:trunk
svn:account:bob1961
2016-09-09 16:18:17 +00:00
Nicholas Reed d3d974bb05 mark recent sync revisions as merged
svn:revision:68821
svn:branch:trunk
svn:account:n_reed
2016-09-07 19:50:03 +00:00
Nicholas Reed 77e4edc1f1 Merge cleanup. Merge 68252 and 68521 changes from trunk. Manually add a subset of changes from 68567 and 68637 that were missed in previous merges. Record 68235 changes as merged.
svn:revision:68820
svn:branch:brep-debug
svn:account:n_reed
2016-09-07 19:36:50 +00:00
Robert Parker 082ab097b3 Update RtControl::clear to call libged's fbclear.
svn:revision:68819
svn:branch:trunk
svn:account:bob1961
2016-09-07 16:33:00 +00:00
Robert Parker 3d8dcc589e Forgot to remove the "eval" from fit_png_image.
svn:revision:68818
svn:branch:trunk
svn:account:bob1961
2016-09-07 15:31:32 +00:00
Clifford Yapp bb7341ea7c Update glint man page contents as well as file name - see if this fixes install, was still generating g_lint.1 file
svn:revision:68817
svn:branch:trunk
svn:account:starseeker
2016-09-07 14:25:12 +00:00
Robert Parker f5ab83fbb9 Call V2UNITIZE instead of VUNITIZE in ged_polygon_fill_segments().
svn:revision:68816
svn:branch:trunk
svn:account:bob1961
2016-09-06 18:15:17 +00:00
Robert Parker d65df65270 Use %zu for size_t.
svn:revision:68815
svn:branch:trunk
svn:account:bob1961
2016-09-06 18:13:43 +00:00
Clifford Yapp a961613015 Fix overriding of image dimensions by FbPage
svn:revision:68814
svn:branch:trunk
svn:account:starseeker
2016-09-06 16:35:34 +00:00
Clifford Yapp 33102a1337 mark variables as advanced
svn:revision:68813
svn:branch:trunk
svn:account:starseeker
2016-09-06 13:35:21 +00:00
Clifford Yapp bb2cabe9bf Have man page for brlman now
svn:revision:68812
svn:branch:trunk
svn:account:starseeker
2016-09-04 02:42:57 +00:00
Clifford Yapp de13bada1f Instead of recommending users do it, let's just do it by default - use the bounding box to guess an initial tolerance.
svn:revision:68811
svn:branch:trunk
svn:account:starseeker
2016-09-03 19:36:28 +00:00
Clifford Yapp a86b7317b4 MGED gdiff -t option does something quite different from command line version - rename to avoid confusion.
svn:revision:68810
svn:branch:trunk
svn:account:starseeker
2016-09-03 19:19:56 +00:00
Clifford Yapp fadc0c6f7c ws
svn:revision:68809
svn:branch:trunk
svn:account:starseeker
2016-09-03 19:17:03 +00:00
Clifford Yapp 173db9fa6a Correct tolerance description for command line gdiff
svn:revision:68808
svn:branch:trunk
svn:account:starseeker
2016-09-03 19:06:11 +00:00
Clifford Yapp d96179b372 If we have an MGED size, display it in the Fbpage size settings for clarity.
svn:revision:68807
svn:branch:trunk
svn:account:starseeker
2016-09-03 18:59:24 +00:00
Clifford Yapp 865cd8dcc7 In the interest of completeness, add man pages for brlman command and MGED man command.
svn:revision:68806
svn:branch:trunk
svn:account:starseeker
2016-09-03 18:43:07 +00:00
Clifford Yapp a99074fd23 more copy/paste
svn:revision:68805
svn:branch:trunk
svn:account:starseeker
2016-09-03 18:19:17 +00:00
Clifford Yapp a48323ddf3 copy/paste strikes again
svn:revision:68804
svn:branch:trunk
svn:account:starseeker
2016-09-03 18:04:11 +00:00
Clifford Yapp 914e0da08a Use the cadwidgets accordian widget to list all man pages in the brlman browser - it is no longer necessary to restart the graphical version in order to view a man page from another category.
svn:revision:68803
svn:branch:trunk
svn:account:starseeker
2016-09-03 17:54:05 +00:00
Clifford Yapp ea5515feb3 -t tolerance is numerical, not unit based
svn:revision:68802
svn:branch:trunk
svn:account:starseeker
2016-09-03 17:47:09 +00:00
Clifford Yapp d8b7b0e90e ws
svn:revision:68801
svn:branch:trunk
svn:account:starseeker
2016-09-03 14:48:49 +00:00
Clifford Yapp 585a6fdcf0 real work will be done in man_browser
svn:revision:68800
svn:branch:trunk
svn:account:starseeker
2016-09-03 14:48:28 +00:00
Clifford Yapp acfef05b9c start setting up for using the accordian widget in the man viewer. Probably a lot of work here...
svn:revision:68799
svn:branch:trunk
svn:account:starseeker
2016-09-03 02:16:41 +00:00
Clifford Yapp 47da8205ce To offset the always-adjust-all-pane-sizes behavior of the new rtwizard pane widget, add support for a .rtwizardrc file that will allow users to save their preferred size and pane position.
svn:revision:68798
svn:branch:trunk
svn:account:starseeker
2016-09-03 02:11:19 +00:00
Christopher Sean Morrison abb001e6d5 make a semicolon required
svn:revision:68797
svn:branch:trunk
svn:account:brlcad
2016-09-02 16:09:38 +00:00
Clifford Yapp 51ab479cfe add semicolons for better indenting
svn:revision:68796
svn:branch:trunk
svn:account:starseeker
2016-09-02 15:57:29 +00:00
Clifford Yapp fcfbb433bc Windows build broke - see if we can make the OPENNURBS vars contain what's needed.
svn:revision:68795
svn:branch:trunk
svn:account:starseeker
2016-09-02 14:59:22 +00:00
Clifford Yapp 442d1809bb tag UMASK_EXEC as advanced
svn:revision:68794
svn:branch:trunk
svn:account:starseeker
2016-09-02 14:53:13 +00:00
Clifford Yapp 80603d90d3 Start trying to clean up and rationalize the CPack logic a bit. There's probably a better way to organize all this...
svn:revision:68793
svn:branch:trunk
svn:account:starseeker
2016-09-02 13:58:36 +00:00
Christopher Sean Morrison 1ab203b8f4 convert garbage_collect to libged
svn:revision:68792
svn:branch:trunk
svn:account:brlcad
2016-09-02 05:40:36 +00:00
Christopher Sean Morrison 4e5dfb7ba1 update few more remaining references to the g_ prefixed commands
svn:revision:68791
svn:branch:trunk
svn:account:brlcad
2016-09-02 05:38:39 +00:00
Christopher Sean Morrison c252fb6895 last straggler directly testing for yes/y converted to bu_str_true()
svn:revision:68790
svn:branch:trunk
svn:account:brlcad
2016-09-02 05:34:11 +00:00
Christopher Sean Morrison a0478246c5 couldn't find any indication or direct need to recognize single-char 't' and 'f' for representing string true/false.
svn:revision:68789
svn:branch:trunk
svn:account:brlcad
2016-09-02 04:58:08 +00:00
Christopher Sean Morrison 65e360c592 no need for any of this to use case-sensitive equality comparisons. use equiv and bu_str_true/false.
svn:revision:68788
svn:branch:trunk
svn:account:brlcad
2016-09-02 04:54:54 +00:00
Christopher Sean Morrison e4100107a0 note that they are case-insensitive
svn:revision:68787
svn:branch:trunk
svn:account:brlcad
2016-09-02 04:53:10 +00:00
Clifford Yapp fec7217657 Clean up MGED gdiff a bit: set default tolerance to something sane rather than the minimum distance, don't draw common segments unless asked for, dispense with -R option since no other behavior is currently available, add man page.
svn:revision:68786
svn:branch:trunk
svn:account:starseeker
2016-09-02 04:27:21 +00:00
Christopher Sean Morrison 1b2c7d7bda er, .h not .hh
svn:revision:68785
svn:branch:trunk
svn:account:brlcad
2016-09-02 04:06:54 +00:00
Christopher Sean Morrison a2cb4a5ff0 g_qa renamed gqa
svn:revision:68784
svn:branch:trunk
svn:account:brlcad
2016-09-02 03:55:30 +00:00
Christopher Sean Morrison f7abbced76 g_lint was renamed to glint, so rename the manual page to match
svn:revision:68783
svn:branch:trunk
svn:account:brlcad
2016-09-02 03:54:38 +00:00
Christopher Sean Morrison 0cd27323b8 needs more cross-platform testing, but mac build doesn't need any of these zlib include dirs or linkages. presumably added for opennurbs. if needed, probably should be included in OPENNURBS_LIBRARIES and that used instead of OPENNURBS_LIBRARY.
svn:revision:68782
svn:branch:trunk
svn:account:brlcad
2016-09-02 03:49:31 +00:00
Christopher Sean Morrison e5d9ff6782 apparently this was copied from zlib's
svn:revision:68781
svn:branch:trunk
svn:account:brlcad
2016-09-02 03:46:45 +00:00
Clifford Yapp 711f7fcbbd g_diff man page is replaced by gdiff man page.
svn:revision:68780
svn:branch:trunk
svn:account:starseeker
2016-09-02 03:42:58 +00:00
Clifford Yapp 4907d34845 Taking a page from Archer, use the iwidget panedwindow rather than tk's version. Untested as yet, but this should fix the crashing issue we were seeing on Windows when the panedwindow sash was agressively dragged (or slowly with no mouse let-up). The new behavior is that the windows are not redrawn until the mouse is released. Also has the side-effect of maintaining the *relative* ratio of the left and right panel sizes rather than expanding only the right panel size - I suspect a work-around for that may be possible but I haven't tried to implement it yet. In the meantime, this should be an overall improvement in behavior.
svn:revision:68779
svn:branch:trunk
svn:account:starseeker
2016-09-02 03:17:38 +00:00
Christopher Sean Morrison 492835dc8e no longer needs the include path for zlib.h
svn:revision:68778
svn:branch:trunk
svn:account:brlcad
2016-09-01 04:54:12 +00:00
Christopher Sean Morrison 37e246d4ee remove zlib.h as it's only used to set the png compression level. number suffices just fine and avoids the include path dependency.
svn:revision:68777
svn:branch:trunk
svn:account:brlcad
2016-09-01 04:51:46 +00:00
Christopher Sean Morrison af8e2fb2c6 copypasta. zlib.h is not used in these files.
svn:revision:68776
svn:branch:trunk
svn:account:brlcad
2016-09-01 04:48:20 +00:00
Christopher Sean Morrison ccec365a50 zlib.h is not used here
svn:revision:68775
svn:branch:trunk
svn:account:brlcad
2016-09-01 04:47:25 +00:00
Robert Parker 0189d30f2e Use %zu for size_t.
svn:revision:68774
svn:branch:trunk
svn:account:bob1961
2016-08-31 20:53:20 +00:00
Clifford Yapp 6bc0a6ac13 merge latest changes from upstream
svn:revision:68773
svn:branch:trunk
svn:account:starseeker
2016-08-31 14:47:28 +00:00
Clifford Yapp 3b6f4c6edb Add another name to the map
svn:revision:68772
svn:branch:trunk
svn:account:starseeker
2016-08-31 14:28:01 +00:00
Clifford Yapp 146f56df33 Fill in a few more names in the account-map
svn:revision:68771
svn:branch:trunk
svn:account:starseeker
2016-08-31 13:43:51 +00:00
Clifford Yapp 640cd13856 burst is now (at least in a basic sense) on Windows
svn:revision:68770
svn:branch:trunk
svn:account:starseeker
2016-08-31 13:16:01 +00:00
Clifford Yapp 18cc6228f0 more BRLCAD_INCLUDE_DIRS uses
svn:revision:68769
svn:branch:trunk
svn:account:starseeker
2016-08-31 11:54:35 +00:00
Clifford Yapp 8d275c15ac repository fixed, no longer need to skip these commits
svn:revision:68768
svn:branch:trunk
svn:account:starseeker
2016-08-31 03:59:28 +00:00
Clifford Yapp 02c2bb210c sync r68521 through r68639 changes from trunk
svn:revision:68643
svn:branch:brep-debug
svn:account:starseeker
2016-08-31 02:09:14 +00:00
Clifford Yapp b479a3eaf6 sync r68235 through r68249 changes from trunk
svn:revision:68642
svn:branch:brep-debug
svn:account:starseeker
2016-08-31 02:07:58 +00:00
Clifford Yapp 31f41388db sync r68283 through r68520 changes from trunk
svn:revision:68641
svn:branch:brep-debug
svn:account:starseeker
2016-08-31 02:06:41 +00:00
Clifford Yapp d2cf0f0a65 sync r68252 through r68266 changes from trunk
svn:revision:68640
svn:branch:brep-debug
svn:account:starseeker
2016-08-31 02:05:26 +00:00
Clifford Yapp b71bdbcbcb Looks like bwish also needs isystem
svn:revision:68767
svn:branch:trunk
svn:account:starseeker
2016-08-30 12:01:01 +00:00
Clifford Yapp 127cd7f7c3 Another case where we need isystem
svn:revision:68766
svn:branch:trunk
svn:account:starseeker
2016-08-30 11:38:54 +00:00
Clifford Yapp 17f38681c7 openbsd exposed a directory where we weren't sorting the directories - X11 got included without isystem, which resulted in an error.
svn:revision:68765
svn:branch:trunk
svn:account:starseeker
2016-08-30 02:07:31 +00:00
Clifford Yapp 674f3a5ac5 Have the default rtwizard image size key off of the mgedObj size. Can be overridden by the FbPage.
svn:revision:68764
svn:branch:trunk
svn:account:starseeker
2016-08-29 17:27:56 +00:00
Clifford Yapp f25a5dcb48 If the user sets the hierarchy view width, we want that width to stay constant between windows. Also uniformly initialize to width 250 rather than on the lenght of the file name.
svn:revision:68763
svn:branch:trunk
svn:account:starseeker
2016-08-29 15:51:33 +00:00
Clifford Yapp b48648e608 Improve keep error reporting when file can not be created.
svn:revision:68762
svn:branch:trunk
svn:account:starseeker
2016-08-29 13:27:49 +00:00
Jonathan Engbert 4b4b4958c6 check that all data has been deserialized
svn:revision:68761
svn:branch:prep-cache
svn:account:ejno
2016-08-26 15:41:55 +00:00
Robert Parker 33fb370dc1 Change signature of cadwidgets::Ged::fit_png_image.
svn:revision:68760
svn:branch:trunk
svn:account:bob1961
2016-08-26 14:59:19 +00:00
Robert Parker db794f9bc0 Fix for windows -- need calls to setmode() with O_BINARY to prevent translation of stdin and stdout.
svn:revision:68759
svn:branch:trunk
svn:account:bob1961
2016-08-26 13:43:03 +00:00
Jonathan Engbert ddc58d6889 only cache if ft_prep_serialize is set
svn:revision:68758
svn:branch:prep-cache
svn:account:ejno
2016-08-25 18:37:03 +00:00
Jonathan Engbert 22867344ce calculate uuids using db5_raw_internal.body only
svn:revision:68757
svn:branch:prep-cache
svn:account:ejno
2016-08-25 17:45:34 +00:00
Jonathan Engbert 95e45d9ea6 move BBNode::intersectedBy() implementation to source file
svn:revision:68756
svn:branch:prep-cache
svn:account:ejno
2016-08-25 13:21:44 +00:00
Jonathan Engbert 91ddb53d81 move constructor implementations to source file
svn:revision:68755
svn:branch:prep-cache
svn:account:ejno
2016-08-25 13:08:35 +00:00
Jonathan Engbert 2ecd21e696 close the cache
svn:revision:68754
svn:branch:prep-cache
svn:account:ejno
2016-08-24 22:33:40 +00:00
Jonathan Engbert c2fee18f56 use memory pooling
svn:revision:68753
svn:branch:prep-cache
svn:account:ejno
2016-08-24 21:48:41 +00:00
Jonathan Engbert bd8a4c5cf4 call bvh->BuildBBox()
svn:revision:68752
svn:branch:prep-cache
svn:account:ejno
2016-08-24 21:43:33 +00:00
Jonathan Engbert e03f1ec7bb don't exit immediately after prepping
svn:revision:68751
svn:branch:prep-cache
svn:account:ejno
2016-08-24 19:09:20 +00:00
Jonathan Engbert df4da9b4b5 implement functab serialization function for BREPs, using bu_cv*() rather than CRC-checked openNURBS archives; revert removing the memory allocations for STL data structures from the public brep classes, along with memory pooling for now (will need to be modified)
svn:revision:68750
svn:branch:prep-cache
svn:account:ejno
2016-08-24 19:08:13 +00:00
Jonathan Engbert 267620bd6a add functab entry for serialization/deserialization of prep data; implement an initial architecture for caching primitives during prep that uses a .g database for storage
svn:revision:68749
svn:branch:prep-cache
svn:account:ejno
2016-08-24 19:01:32 +00:00
Jonathan Engbert 4ab12e426d merge from trunk to r68747
svn:revision:68748
svn:branch:prep-cache
svn:account:ejno
2016-08-24 18:45:42 +00:00
Robert Parker f66835c961 Added a function to fit a png image within a specified area while maintaining the aspect ratio.
svn:revision:68747
svn:branch:trunk
svn:account:bob1961
2016-08-24 18:13:16 +00:00
Jonathan Engbert bde8a3b6d6 add a note regarding lifetime of SurfaceTree objects in bbbp.faces
svn:revision:68746
svn:branch:trunk
svn:account:ejno
2016-08-24 14:29:08 +00:00
Christopher Sean Morrison 33c2684f49 include an example how to use bu_gettime()
svn:revision:68745
svn:branch:trunk
svn:account:brlcad
2016-08-24 14:24:34 +00:00
Clifford Yapp f2a43d7afb The enum trick triggers the C++ warning flag - just go with int
svn:revision:68744
svn:branch:trunk
svn:account:starseeker
2016-08-24 02:42:13 +00:00
Clifford Yapp cdd622e1ba Revert commits 61337 and r61598. The former broke some BoT raytracing situations, and the latter is causing more subtle issues with an isolated bot region reporting one raytracing result and the same region below another comb reporting a different result.
svn:revision:68743
svn:branch:trunk
svn:account:starseeker
2016-08-23 19:47:29 +00:00
Jonathan Engbert a44b604161 'bytes' can be const
svn:revision:68742
svn:branch:trunk
svn:account:ejno
2016-08-22 20:24:22 +00:00
Jonathan Engbert a3537fa971 handle namespaces correctly in byte form
svn:revision:68741
svn:branch:trunk
svn:account:ejno
2016-08-22 20:13:37 +00:00
Jonathan Engbert 7f736fa6c5 implement UUIDv5 generation in bu_uuid_create()
svn:revision:68740
svn:branch:trunk
svn:account:ejno
2016-08-22 20:04:31 +00:00
Jonathan Engbert b5e1d690c4 update documentation for rtedge
svn:revision:68739
svn:branch:trunk
svn:account:ejno
2016-08-22 17:59:49 +00:00
Jonathan Engbert ff874119fd use bu_color_from_str() for 'set color_var=value' commands in rtedge and rt (fixes consistency of the 'set background=' command of these tools); allow ',' as a separator in bu_color_from_str()
svn:revision:68738
svn:branch:trunk
svn:account:ejno
2016-08-22 17:42:27 +00:00
Jonathan Engbert 5617d925e9 set the byte offsets at run time as done in view.c
svn:revision:68737
svn:branch:trunk
svn:account:ejno
2016-08-22 15:55:06 +00:00
Jonathan Engbert b634a0c8bf attempt to fix the msvc build error
svn:revision:68736
svn:branch:trunk
svn:account:ejno
2016-08-22 15:36:34 +00:00
Clifford Yapp 980670066b Put back the rtedge changes in preparation for debugging.
svn:revision:68735
svn:branch:trunk
svn:account:starseeker
2016-08-22 15:04:16 +00:00
Clifford Yapp 99e09b2d7e Only use the newer APIs if they're actually there.
svn:revision:68734
svn:branch:trunk
svn:account:starseeker
2016-08-22 00:54:01 +00:00
Clifford Yapp 8da727770d Update to latest from https://github.com/krf/kdevplatform/blob/master/cmake/modules/FindSubversionLibrary.cmake and quell a few warnings
svn:revision:68733
svn:branch:trunk
svn:account:starseeker
2016-08-22 00:36:21 +00:00
Clifford Yapp b8daadab0a update svn2git url, make a note to check out --svn-branches and see if it would be useful
svn:revision:68732
svn:branch:trunk
svn:account:starseeker
2016-08-20 03:11:39 +00:00
Clifford Yapp c5ee3fafce Blegh. What a nightmare. The damage done to the embree branch in the 683** commit series by subversion's corruption of r63809 apparently wasn't repaired well enough for svn-all-fast-export to make sense of it. Just skip this whole mess in the git conversion - at this point it'd be way easier to go back to the last clean revision and manually extract anything we need.
svn:revision:68731
svn:branch:trunk
svn:account:starseeker
2016-08-20 02:59:47 +00:00
Clifford Yapp 9d09d679b7 Request from Josh to have rtwizard name its window something other than the generic 'tk' to make it easier to find when minimized.
svn:revision:68730
svn:branch:trunk
svn:account:starseeker
2016-08-20 01:48:12 +00:00
Clifford Yapp 7e84d4a118 embree branch is in this category
svn:revision:68729
svn:branch:trunk
svn:account:starseeker
2016-08-20 01:21:39 +00:00
Clifford Yapp 66f430815d Add some more closed branches to the archiving script.
svn:revision:68728
svn:branch:trunk
svn:account:starseeker
2016-08-20 01:19:09 +00:00
Clifford Yapp 17161141a3 Add names to commit ids when they can be found in the AUTHORS file. Still a few I don't have info for...
svn:revision:68727
svn:branch:trunk
svn:account:starseeker
2016-08-19 22:16:20 +00:00
Clifford Yapp 973e8ef6c7 Add missing names to account-map - found via http://stackoverflow.com/questions/2494984/how-to-get-a-list-of-all-subversion-commit-author-usernames
svn:revision:68726
svn:branch:trunk
svn:account:starseeker
2016-08-19 22:07:09 +00:00
Clifford Yapp fd69508fed Update svn2git/svn-all-fast-export to latest version from https://github.com/svn-all-fast-export/svn2git
svn:revision:68725
svn:branch:trunk
svn:account:starseeker
2016-08-19 21:49:15 +00:00
Daniel Rossberg 15958c9d5d after the last revert we have here no variable 'color' any more
svn:revision:68722
svn:branch:trunk
svn:account:d_rossberg
2016-08-19 08:31:12 +00:00
Clifford Yapp b829c059e0 don't ignore what's not there
svn:revision:68721
svn:branch:trunk
svn:account:starseeker
2016-08-18 18:04:04 +00:00
Clifford Yapp bdf469ddb9 Revert 68597 - Windows MSVC build fails complaining about non-static initializers for view_parse.
svn:revision:68720
svn:branch:trunk
svn:account:starseeker
2016-08-18 18:02:34 +00:00
Clifford Yapp e63283031c With the performance issue not using the list(FILTER feature entails, shelve the CMake repository regression script for now. Have more important things that need doing short term, so let svn history keep this and not clutter up the tree.
svn:revision:68719
svn:branch:trunk
svn:account:starseeker
2016-08-18 17:42:52 +00:00
Christopher Sean Morrison 43309d75a5 report / solid_report is not documented, archer is not announced
svn:revision:68718
svn:branch:trunk
svn:account:brlcad
2016-08-18 04:01:39 +00:00
Christopher Sean Morrison 638101bcde try to make sure our include paths come first regardless of when they they were added
svn:revision:68717
svn:branch:trunk
svn:account:brlcad
2016-08-18 03:50:00 +00:00
Christopher Sean Morrison 9ccafd1fb6 mark /usr/local/include as a SYSTEM path
svn:revision:68716
svn:branch:trunk
svn:account:brlcad
2016-08-18 03:48:43 +00:00
Christopher Sean Morrison e789f5fe51 woot! pedro giffuni found 100+ spelling mistakes using code-spell
svn:revision:68715
svn:branch:trunk
svn:account:brlcad
2016-08-18 02:24:16 +00:00
Clifford Yapp e0e83b5138 unlikely, but add the ged_report -> ged_solid_report mapping just in case.
svn:revision:68714
svn:branch:trunk
svn:account:starseeker
2016-08-18 02:09:25 +00:00
Clifford Yapp ad0d2af335 This may be technically user visible in archer... ged_report should be much more general than this functionality, so go with the mged solid_report version of things and free up 'report'. TODO - the summary command needs a lot more oomph - should it become a proper report command?
svn:revision:68713
svn:branch:trunk
svn:account:starseeker
2016-08-18 02:07:58 +00:00
Christopher Sean Morrison 8662890856 make a trailing semicolon required for the macro by turning it into a do/while(0)
svn:revision:68712
svn:branch:trunk
svn:account:brlcad
2016-08-18 02:07:38 +00:00
Christopher Sean Morrison 38c447c9e0 pedro's got a newer llvm and is tearing through new code checks. this one: stray semicolons.
svn:revision:68711
svn:branch:trunk
svn:account:brlcad
2016-08-18 02:02:43 +00:00
Clifford Yapp c6642bca66 rename report.c file in libged to match its actual command.
svn:revision:68710
svn:branch:trunk
svn:account:starseeker
2016-08-18 02:00:19 +00:00
Clifford Yapp c48ebab268 we don't want tkcon hijacking dir on the MGED command prompt.
svn:revision:68709
svn:branch:trunk
svn:account:starseeker
2016-08-17 20:48:29 +00:00
Christopher Sean Morrison eb4ca049c6 note to self, need to check usages
svn:revision:68708
svn:branch:trunk
svn:account:brlcad
2016-08-17 20:32:06 +00:00
Christopher Sean Morrison 96f94a0739 add recognition for on/off as boolean string values for cmake-style compatibility and convenience with env var string parsing. removed t/T/f/F for true/false, but still need to make sure nobody was relying on that shorthand (tcladjust in particular). made all testing case-insensitive. fixed the unreachable final return.
svn:revision:68707
svn:branch:trunk
svn:account:brlcad
2016-08-17 20:30:15 +00:00
Christopher Sean Morrison 3716f55c49 might as well be consistent. this doesn't matter on platforms lacking /usr/include (e.g., windows)
svn:revision:68706
svn:branch:trunk
svn:account:brlcad
2016-08-17 03:20:07 +00:00
Christopher Sean Morrison 538384898d really go the distance to ensure /usr/local/include is included in the compilation cppflags, not just during cmake
svn:revision:68705
svn:branch:trunk
svn:account:brlcad
2016-08-17 03:14:33 +00:00
Christopher Sean Morrison 34db9398bf not strictly valid, but good enough for printing a debug line and should quell the conversion warning. go to an integer type before going to void. note that compilers have extreme flexibility as to how they encode function pointers, so the value printed is essentially meaningless (it could be a string)
svn:revision:68704
svn:branch:trunk
svn:account:brlcad
2016-08-17 02:42:18 +00:00
Christopher Sean Morrison c9c56095f0 check both in subdir and not for a system uuid.h
svn:revision:68703
svn:branch:trunk
svn:account:brlcad
2016-08-17 02:28:32 +00:00
Christopher Sean Morrison 8339d9dedd check for uuid.h not stashed into a subdir too. observed install path on FreeBSD
svn:revision:68702
svn:branch:trunk
svn:account:brlcad
2016-08-17 02:27:07 +00:00
Clifford Yapp 435877e601 remove debugging printout
svn:revision:68701
svn:branch:trunk
svn:account:starseeker
2016-08-16 21:54:29 +00:00
Clifford Yapp ca004636cd consolidate build file tests. Unfortunately, this seems to be appreciably slower...
svn:revision:68700
svn:branch:trunk
svn:account:starseeker
2016-08-16 19:54:04 +00:00
Clifford Yapp 872a541e07 try another approach to list filtering... maybe a tiny bit faster, but not a lot.
svn:revision:68699
svn:branch:trunk
svn:account:starseeker
2016-08-16 19:23:29 +00:00
Clifford Yapp 2fa7bb6217 Make a macro to replace the filter subcommand - this implementation is much slower, will have to revisit.
svn:revision:68698
svn:branch:trunk
svn:account:starseeker
2016-08-16 16:55:04 +00:00
Clifford Yapp b5d26f3c5d Report based on consolidated results, rather than per-symbol.
svn:revision:68697
svn:branch:trunk
svn:account:starseeker
2016-08-16 15:53:26 +00:00
Christopher Sean Morrison 3b73a762a9 cast needed to turn the function pointer into a void pointer (reported by pedro giffuni)
svn:revision:68696
svn:branch:trunk
svn:account:brlcad
2016-08-16 15:51:55 +00:00
Christopher Sean Morrison f62a03b0b9 make the brep command apply a convention consistent with a few other places in our code, using .[PRIMNAME] (i.e., '.brep' here instead of _brep). probably want to reconcile with facetize and nmg commands doing similar format conversions (e.g., make 'facetize [-o new] old' output old.bot or old.nmg accordingly when a new name is not specified and make brep have a -o named output option.
svn:revision:68695
svn:branch:trunk
svn:account:brlcad
2016-08-16 14:10:51 +00:00
Christopher Sean Morrison bdfdd6735f freebsd 11 defines ALIGN() in param.h so use a different name here.
svn:revision:68694
svn:branch:trunk
svn:account:brlcad
2016-08-16 13:52:17 +00:00
Christopher Sean Morrison 39d7451ab1 bad format conversion, %0p is undefined. just print the pointer. (reported by pedro giffuni)
svn:revision:68693
svn:branch:trunk
svn:account:brlcad
2016-08-16 13:40:16 +00:00
Clifford Yapp 7f98b160f9 remove MACH from os platform symbols list
svn:revision:68692
svn:branch:trunk
svn:account:starseeker
2016-08-15 21:19:30 +00:00
Clifford Yapp 500f705150 Use a customized version of unifdef to identify and report symbols in the source code. Appears to be both fast and robust.
svn:revision:68691
svn:branch:trunk
svn:account:starseeker
2016-08-15 21:15:25 +00:00
Christopher Sean Morrison 81969d1c56 tweak the regex to match symbols ending on the end of line. remove MACH as it's really a hardware platform.
svn:revision:68690
svn:branch:trunk
svn:account:brlcad
2016-08-15 19:36:16 +00:00
Clifford Yapp c401925350 Tweak regex, fix quick test for line
svn:revision:68689
svn:branch:trunk
svn:account:starseeker
2016-08-15 19:16:36 +00:00
Clifford Yapp 6c4c2a0e29 Make the cmake outputs a bit closer to the repository.sh output. CMake matching is slower than repository.h, but we're also catching some cases like src/mged/qray.h:38: #ifndef _WIN32 that I'm not seeing in the repository.sh output. Maybe it's time to see if the unifdef program can be used to do the symbol extraction piece, rather than cobbling together regex patterns...
svn:revision:68688
svn:branch:trunk
svn:account:starseeker
2016-08-15 15:58:42 +00:00
Clifford Yapp caeee72919 start working on new regex match
svn:revision:68687
svn:branch:trunk
svn:account:starseeker
2016-08-15 15:32:18 +00:00
Christopher Sean Morrison 4b8dc4a334 all hial hiaku
svn:revision:68686
svn:branch:trunk
svn:account:brlcad
2016-08-15 15:00:55 +00:00
Clifford Yapp 2f930ae23a More logic tweaks.
svn:revision:68685
svn:branch:trunk
svn:account:starseeker
2016-08-15 14:56:22 +00:00
Clifford Yapp 579665617e printing tweaks
svn:revision:68684
svn:branch:trunk
svn:account:starseeker
2016-08-15 14:47:44 +00:00
Clifford Yapp 2e45134d25 set up so we can run all tests with a single variable define.
svn:revision:68683
svn:branch:trunk
svn:account:starseeker
2016-08-15 14:35:09 +00:00
Christopher Sean Morrison b1f587b1b9 reduce the number of Tcl symbols in libdm. don't need to be using TCL_OK/ERROR when we have equivalent API.
svn:revision:68682
svn:branch:trunk
svn:account:brlcad
2016-08-15 00:00:10 +00:00
Christopher Sean Morrison 2a9c3b6353 manually do case insensitive matching instead of relying on grep to do it for us since cmake doesn't expose an insensitive option during regex matching.
svn:revision:68681
svn:branch:trunk
svn:account:brlcad
2016-08-14 22:41:30 +00:00
Christopher Sean Morrison f4885c98c4 there are now 160 with the endif/else cmake lines dropped and new platform detections added
svn:revision:68680
svn:branch:trunk
svn:account:brlcad
2016-08-14 22:34:56 +00:00
Christopher Sean Morrison c8e429893a rename the SGI() helper macro to SGIINFO() so it matches the structure (and avoids false-positive platform matches)
svn:revision:68679
svn:branch:trunk
svn:account:brlcad
2016-08-14 22:19:24 +00:00
Christopher Sean Morrison 0bf5e19995 oops, remove temp code to isolate the platform tests
svn:revision:68678
svn:branch:trunk
svn:account:brlcad
2016-08-14 22:18:03 +00:00
Christopher Sean Morrison 75bfc771c9 order of magnitude speedup, do all platforms at once with one monster regex. still separating headers from sources from build logic since they're categorically different work to fix them.
svn:revision:68677
svn:branch:trunk
svn:account:brlcad
2016-08-14 22:08:53 +00:00
Christopher Sean Morrison 1858a8421d former platform regex was quite suboptimal. go with a simpler but more relevant test for platform symbols used in a logical context. also, expand the list of platforms considerably (intentionally avoiding a few platform names that also double as standard names). performance needs rework as it now runs longer with more symbols being tested.
svn:revision:68676
svn:branch:trunk
svn:account:brlcad
2016-08-14 21:53:46 +00:00
Christopher Sean Morrison 99efa63c67 oops, this needs to be an extended regex due to the or construct (thx to cliff for noticing no header matches were being reported)
svn:revision:68675
svn:branch:trunk
svn:account:brlcad
2016-08-14 19:17:21 +00:00
Clifford Yapp ac37d2a5e4 Wrap the list filtering in macro calls, and have the functions define what they need.
svn:revision:68674
svn:branch:trunk
svn:account:starseeker
2016-08-14 14:39:14 +00:00
Clifford Yapp a50a618260 Don't bother scanning the CMake Find*.cmake modules.
svn:revision:68673
svn:branch:trunk
svn:account:starseeker
2016-08-14 14:28:17 +00:00
Clifford Yapp 1f035f9094 Try to get a bit smarter about avoiding expensive regex tests, begin setting up to run one test per script execution.
svn:revision:68672
svn:branch:trunk
svn:account:starseeker
2016-08-14 01:28:51 +00:00
Christopher Sean Morrison 5e078a50b8 eliminate exposing tcl types and symbols in ged's public header, cast accordingly
svn:revision:68671
svn:branch:trunk
svn:account:brlcad
2016-08-13 19:55:54 +00:00
Christopher Sean Morrison da2f91f2d6 add Caterpillar2 as a maintainer for fedora
svn:revision:68670
svn:branch:trunk
svn:account:brlcad
2016-08-13 19:40:07 +00:00
Clifford Yapp 2961820275 Do less expensive matching tests before we go for the all-upregex match, although we have to be careful with this - common.h test, for example, looks for either system includes or common.h so we can't rely on a simple qualification test there. If this works as well as it seems to now, cuts execution time from about 70 seconds to a little over 30. repository.sh is about 21, so if we can execute individual tests in parallel we should get a significant speed up overall.
svn:revision:68669
svn:branch:trunk
svn:account:starseeker
2016-08-13 19:35:39 +00:00
Clifford Yapp 9a9c85dbca add common.h
svn:revision:68668
svn:branch:trunk
svn:account:starseeker
2016-08-13 15:05:45 +00:00
Clifford Yapp 6a3872e58b common.h and ged.h get included regardless
svn:revision:68667
svn:branch:trunk
svn:account:starseeker
2016-08-13 15:04:57 +00:00
Clifford Yapp d983577f09 Only include common.h once
svn:revision:68666
svn:branch:trunk
svn:account:starseeker
2016-08-13 15:03:57 +00:00
Clifford Yapp e5d37cf7fb There are a few 'public' headers that do have one or both of bio and bnetwork in them - excempt them from this check, since it hasn't been a regress-repository breaker...
svn:revision:68665
svn:branch:trunk
svn:account:starseeker
2016-08-13 15:03:19 +00:00
Clifford Yapp 1a85d5f2fe list a few more files and patterns we don't want to examine
svn:revision:68664
svn:branch:trunk
svn:account:starseeker
2016-08-13 14:56:02 +00:00
Clifford Yapp aa4226d91d Add common.h to pkg.h, unless/until we find out there's a reason not to...
svn:revision:68663
svn:branch:trunk
svn:account:starseeker
2016-08-13 14:50:34 +00:00
Clifford Yapp d719cf3714 another unistd include when we have bio
svn:revision:68662
svn:branch:trunk
svn:account:starseeker
2016-08-13 13:55:32 +00:00
Clifford Yapp d92825fc39 Add a mechanism to exclude files in the build directory, should it be located in the source directory. Can't do anything about the in-src-dir case (yet) but this is a start...
svn:revision:68661
svn:branch:trunk
svn:account:starseeker
2016-08-13 13:54:33 +00:00
Clifford Yapp 280d3c67a7 libpkg appears to be excluded from the normal repository regression tests, but I'm not seeing any reason to keep the stdio includes when bio.h is included... go ahead and remove for now.
svn:revision:68660
svn:branch:trunk
svn:account:starseeker
2016-08-13 13:51:04 +00:00
Christopher Sean Morrison 8e5fccda06 make the remainder of the dm device callback signatures all consistently return int
svn:revision:68659
svn:branch:trunk
svn:account:brlcad
2016-08-13 02:33:16 +00:00
Clifford Yapp c777071f6e fix header label
svn:revision:68658
svn:branch:trunk
svn:account:starseeker
2016-08-12 21:24:22 +00:00
Clifford Yapp 1de85edc91 Explain why we're undeffing _BU_ATTR_NORETURN in this test.
svn:revision:68657
svn:branch:trunk
svn:account:starseeker
2016-08-12 21:09:22 +00:00
Clifford Yapp cdb1eba0ac Consolidate the red-black tree files into one .c file, rename header. Should compare this to the implementations in jemalloc (http://www.canonware.com/rb/), openbsd (http://www.canonware.com/download/rb/tree/) and sudo (https://github.com/millert/sudo/blob/master/plugins/sudoers/redblack.c) for correctness and performance.
svn:revision:68656
svn:branch:trunk
svn:account:starseeker
2016-08-12 21:07:02 +00:00
Clifford Yapp 2cf372c0b2 When we turn off strict, the _BU_ATTR_NORETURN is causing problems with bu_badmagic in the test case (where we do in fact return.) Since we do return here, undo the _BU_ATTR_NORETURN locally.
svn:revision:68655
svn:branch:trunk
svn:account:starseeker
2016-08-12 19:47:58 +00:00
Clifford Yapp e826c3c00c OK, gcc didn't like that.
svn:revision:68654
svn:branch:trunk
svn:account:starseeker
2016-08-12 18:49:36 +00:00
Clifford Yapp 074e3def0f Do void cast for p printf type
svn:revision:68653
svn:branch:trunk
svn:account:starseeker
2016-08-12 18:20:05 +00:00
Christopher Sean Morrison 432060c9e7 spent some time debugging the mac initialization issue. looks like it's ogl-specific and double-buffer-specific, fixed by doing a swap buffer after 'gui' command completes. this is achieved by calling dm_set_bg(). several dm funcs swap the backbuffer, but setting the color explicitly gives clear intent despite it being unclear why this is needed or why the front buffer contains garbage.
svn:revision:68652
svn:branch:trunk
svn:account:brlcad
2016-08-12 07:30:23 +00:00
Christopher Sean Morrison 5bc725ccef dm_reshape() was declared and is in the callback table, but was not implemented. provide it, and change the return type to be consistent with the other callbacks.
svn:revision:68651
svn:branch:trunk
svn:account:brlcad
2016-08-12 07:19:44 +00:00
Christopher Sean Morrison 07984b3946 might not survive release, but definitely user-visible if it does. changed framebuffers to delay writes until the full frame is complete. this is worse usability on long-run rendering since there's no interactive feedback, but considerably better usability on the more common case of things that take sub-second or even sub-minute rendering time. hopefully the osg framebuffer will make this all obsolete.
svn:revision:68650
svn:branch:trunk
svn:account:brlcad
2016-08-12 05:01:35 +00:00
Christopher Sean Morrison 63a2104081 ditto on windows, give delayed writes a trial test.
svn:revision:68649
svn:branch:trunk
svn:account:brlcad
2016-08-12 04:47:58 +00:00
Christopher Sean Morrison f298fb68de test impact of making delayed writes the default. boosts interactive performance of transient buffers. the slowdown caused by flushing updates is more than an order of magnitude now and unbearably increases as the framebuffer size increases.
svn:revision:68648
svn:branch:trunk
svn:account:brlcad
2016-08-12 04:40:07 +00:00
Christopher Sean Morrison f7c5d44cb3 promote items specifically important to the next two months and demote items not strictly necessary (because they've not new issues)
svn:revision:68647
svn:branch:trunk
svn:account:brlcad
2016-08-12 02:58:27 +00:00
Christopher Sean Morrison f0c0afeab0 more time-sensitive code patches; add another exponential algorithm noticed
svn:revision:68646
svn:branch:trunk
svn:account:brlcad
2016-08-12 00:56:46 +00:00
Christopher Sean Morrison 308a333b23 old bugs are not necessarily priority, nor are 'newer' ones that have now become really old. restoring shelved code is important, though, as they will diverge quickly and cost more over time.
svn:revision:68645
svn:branch:trunk
svn:account:brlcad
2016-08-12 00:44:59 +00:00
Nicholas Reed 8a6afda787 mark sync revisions as merged
svn:revision:68644
svn:branch:trunk
svn:account:n_reed
2016-08-11 20:36:22 +00:00
Christopher Sean Morrison ee9009c1c5 rename bu_free_array() to bu_free_args() as it specifically does not free an array, it free's the pointers contained therein (args in an argv array)
svn:revision:68639
svn:branch:trunk
svn:account:brlcad
2016-08-11 20:15:05 +00:00
Christopher Sean Morrison f8bb8c4cf7 the rename was minimally impacting and completed
svn:revision:68638
svn:branch:trunk
svn:account:brlcad
2016-08-11 20:13:51 +00:00
Christopher Sean Morrison 53a59cd196 pull a few priority items up already
svn:revision:68637
svn:branch:trunk
svn:account:brlcad
2016-08-11 20:01:59 +00:00
Nicholas Reed bb89784fb1 sync r68146 through r68249 changes from trunk
svn:revision:68636
svn:branch:brep-debug
svn:account:n_reed
2016-08-11 19:58:21 +00:00
Christopher Sean Morrison 4711570d1b brep is no longer optional (coincidentally, c++ is no longer optional too .. public headers still need to work for c-only projects)
svn:revision:68635
svn:branch:trunk
svn:account:brlcad
2016-08-11 19:55:29 +00:00
Christopher Sean Morrison af0d9d74f6 simplify the precision handling so tie.h rules and it's fully toggled on TIE_PRECISION. this may fix float-mode, which didn't seem to be working on quick test.
svn:revision:68634
svn:branch:trunk
svn:account:brlcad
2016-08-11 05:20:28 +00:00
Christopher Sean Morrison d743f85822 significant refactoring to replace XGLUE with new CPP_XGLUE macro. reduce some of the macro complexity by denoting tie's primary macro-encased API in uppercase, and eliminating some that merely affect declaration.
svn:revision:68633
svn:branch:trunk
svn:account:brlcad
2016-08-11 03:01:40 +00:00
Christopher Sean Morrison 28cbffb3a6 pass the args through for clarity
svn:revision:68632
svn:branch:trunk
svn:account:brlcad
2016-08-11 02:28:00 +00:00
Clifford Yapp a962ec1982 For these libbu types, include the libbu subheaders rather than declaring them.
svn:revision:68631
svn:branch:trunk
svn:account:starseeker
2016-08-10 20:55:16 +00:00
Jonathan Engbert 770e753287 add forward declaration
svn:revision:68630
svn:branch:trunk
svn:account:ejno
2016-08-10 20:07:57 +00:00
Jonathan Engbert 8812c089e8 add forward declarations for bu_attribute_value_set and rt_db_internal
svn:revision:68629
svn:branch:trunk
svn:account:ejno
2016-08-10 20:00:34 +00:00
Jonathan Engbert bcb019d5d3 simplify formatting of floating-point values
svn:revision:68628
svn:branch:trunk
svn:account:ejno
2016-08-10 18:49:26 +00:00
Jonathan Engbert 36c6da5453 remove use of enum class
svn:revision:68627
svn:branch:trunk
svn:account:ejno
2016-08-10 18:33:38 +00:00
Jonathan Engbert 6b285867ca add forward declaration of struct rt_comb_internal
svn:revision:68626
svn:branch:trunk
svn:account:ejno
2016-08-10 16:27:30 +00:00
Clifford Yapp 00c0ce30d5 Devs seldom build without strict compilation flags (by design) but that means the non-strict build case is seldom tested. Sounds like a case for distcheck-full.
svn:revision:68625
svn:branch:trunk
svn:account:starseeker
2016-08-10 15:40:38 +00:00
Clifford Yapp fd456acb20 While we're at it, make sure other missing docbook command setting is more obvious.
svn:revision:68624
svn:branch:trunk
svn:account:starseeker
2016-08-10 15:27:04 +00:00
Clifford Yapp 3ea231ab62 Johnathan reproduced the failure of docbook to build with the BRLCAD_ENABLE_STRICT variable - turns out the error message was deceptive: rather than the xml input file being missing, the actual issue was XMLLINT_EXECUTABLE not being set. The root cause turns out to be that when the conversion was made to do all docbook processing for a single input file in a single cmake script, the non-validating case was never tested. Validation was *always* on, despite the original intent to have BRLCAD_ENABLE_STRICT control whether to do DocBook validation, and when strict was turned off the DocBook logic still tried to validate but without knowing where the necessary tool was. Fix is two-fold - improve the error message so the missing executable won't report in such a way that it looks like the error is a missing xml file, and go back to respecting BRLCAD_ENABLE_STRICT for validation.
svn:revision:68623
svn:branch:trunk
svn:account:starseeker
2016-08-10 15:22:21 +00:00
Christopher Sean Morrison 9246488783 reading from stdin, not -i in-place file
svn:revision:68622
svn:branch:trunk
svn:account:brlcad
2016-08-10 06:51:06 +00:00
Christopher Sean Morrison 2d3c213006 frs is no longer broken up into subdirs
svn:revision:68621
svn:branch:trunk
svn:account:brlcad
2016-08-10 00:48:05 +00:00
Clifford Yapp b907495620 Set up the symbol tests so we can run one test per symbol - don't know if that'll be better for speed, but in theory it may make the regex checking logic simpler per-process...
svn:revision:68620
svn:branch:trunk
svn:account:starseeker
2016-08-09 21:26:51 +00:00
Jonathan Engbert 07644d988a add includes for header dependencies
svn:revision:68619
svn:branch:trunk
svn:account:ejno
2016-08-09 17:31:10 +00:00
Jonathan Engbert 86c3950bbb merge from trunk to r68614
svn:revision:68618
svn:branch:prep-cache
svn:account:ejno
2016-08-09 14:18:04 +00:00
Christopher Sean Morrison a611e2452b merge final release notes from RELEASE
svn:revision:68614
svn:branch:trunk
svn:account:brlcad
2016-08-09 04:33:13 +00:00
Christopher Sean Morrison 9bcf40401f tweak wording
svn:revision:68613
svn:branch:RELEASE
svn:account:brlcad
2016-08-09 04:25:28 +00:00
Christopher Sean Morrison 2d808f4cb8 shove deprecation to the top of the list
svn:revision:68612
svn:branch:RELEASE
svn:account:brlcad
2016-08-09 04:01:48 +00:00
Christopher Sean Morrison ef4908f6f4 update the date
svn:revision:68610
svn:branch:RELEASE
svn:account:brlcad
2016-08-09 03:58:36 +00:00
Christopher Sean Morrison 85c9989e32 Expand the release notes.
svn:revision:68609
svn:branch:RELEASE
svn:account:brlcad
2016-08-09 03:57:43 +00:00
Clifford Yapp 7a93dd1033 Note to set this up for parallel running. Right now this CMake script is ~3.5 times slower than repository.sh - there may be ways to optimize the scripts themselves, but we can also set up lots of individual CTest runs of different parts of the tests in parallel...
svn:revision:68608
svn:branch:trunk
svn:account:starseeker
2016-08-09 00:37:27 +00:00
Clifford Yapp 147b7f9967 reporting tweak
svn:revision:68607
svn:branch:trunk
svn:account:starseeker
2016-08-09 00:32:28 +00:00
Clifford Yapp 07b9f8a26f Improve common.h test
svn:revision:68606
svn:branch:trunk
svn:account:starseeker
2016-08-08 23:43:18 +00:00
Clifford Yapp 1ab5ab5b34 Report line numbers on API usage failures.
svn:revision:68605
svn:branch:trunk
svn:account:starseeker
2016-08-08 23:19:33 +00:00
Clifford Yapp e10cfe5fa8 CURR_LINE -> cline
svn:revision:68604
svn:branch:trunk
svn:account:starseeker
2016-08-08 21:17:13 +00:00
Clifford Yapp 52a8b76f2d remove refactoring copy/paste
svn:revision:68603
svn:branch:trunk
svn:account:starseeker
2016-08-08 21:10:25 +00:00
Clifford Yapp f5e5ed661f use while loop pattern, turn other checks back on. more to do, but shaping up
svn:revision:68602
svn:branch:trunk
svn:account:starseeker
2016-08-08 21:08:26 +00:00
Clifford Yapp cf94d1d2f2 file(STRINGS ...) in CMake isn't up to giving us correct line numbers. After some misadventures looking into whether grep could be bundled as a portable utility, finally realized that we can use the FIND and SUBSTRING subcommands of CMake's own STRING command to chop up the text the way we need. Only the last platform_symbol_usage_test function has the correct solution implemented - need to fix the rest and clean up, but wanted to checkpoint what appears to be a working state. Probably need to make this while loop more robust - test what happens if there's not newline at the end of file, for example...
svn:revision:68601
svn:branch:trunk
svn:account:starseeker
2016-08-08 20:19:48 +00:00
Jonathan Engbert 469911520b must check that return value is zero before checking errno
svn:revision:68600
svn:branch:trunk
svn:account:ejno
2016-08-08 20:18:54 +00:00
Jonathan Engbert 151f13d9c4 update NEWS
svn:revision:68599
svn:branch:trunk
svn:account:ejno
2016-08-08 16:45:28 +00:00
Jonathan Engbert 8f070b9a32 modify error message
svn:revision:68598
svn:branch:trunk
svn:account:ejno
2016-08-08 16:01:56 +00:00
Jonathan Engbert aa6b599972 fix rtedge foreground/background colors; modify the -C flag for rt/rtedge to take a range in 0-255 or in 0-1; update documentation
svn:revision:68597
svn:branch:trunk
svn:account:ejno
2016-08-08 15:57:18 +00:00
Jonathan Engbert b9072c0ada ensure that errno is zero before calling strtol()/strtod()
svn:revision:68596
svn:branch:trunk
svn:account:ejno
2016-08-08 15:02:56 +00:00
Jonathan Engbert 7b9c3aa726 add bu_color_from_str() function to convert 0..255 or 0.0..1.0 r/g/b strings
svn:revision:68595
svn:branch:trunk
svn:account:ejno
2016-08-08 14:51:42 +00:00
Jonathan Engbert 4b6bdca910 fix: preserve signs of ensure-non-zero floats; display an error message when an input model exceeds fg4 limitations
svn:revision:68594
svn:branch:trunk
svn:account:ejno
2016-08-06 15:33:16 +00:00
Jonathan Engbert 574321c602 remove unused function warning
svn:revision:68593
svn:branch:trunk
svn:account:ejno
2016-08-06 14:01:01 +00:00
Christopher Sean Morrison cf7de0fc33 update the install path to the right location too
svn:revision:68592
svn:branch:trunk
svn:account:brlcad
2016-08-06 13:48:07 +00:00
Christopher Sean Morrison d39c9f7fef compile and install the plot3-dm tool's scripts into the proper corresponding directory, overlooked during the massive pl->plot3 renaming
svn:revision:68591
svn:branch:trunk
svn:account:brlcad
2016-08-06 04:42:12 +00:00
Christopher Sean Morrison 54f9846256 try colors that should be more safe for a variety of colorblindnesses
svn:revision:68590
svn:branch:trunk
svn:account:brlcad
2016-08-06 04:41:07 +00:00
Clifford Yapp 85993e37d5 Checkpoint work on a CMake based replacement for repository.sh. Probably somewhere between 50% and 70% complete - don't have the WIN32 et. al. checks yet, but have versions of the rest of it.
svn:revision:68589
svn:branch:trunk
svn:account:starseeker
2016-08-05 21:58:07 +00:00
Clifford Yapp 328728d61b Look for C++11 flags rather than C++98
svn:revision:68588
svn:branch:trunk
svn:account:starseeker
2016-08-05 15:52:49 +00:00
Jonathan Engbert 644bf1efac use bu_heap pooling; currently all BB/BR nodes must be pooled although it doesn't provide a significant improvement except when loading from cache; need to determine whether a deleted node was created with pooling or not
svn:revision:68587
svn:branch:prep-cache
svn:account:ejno
2016-08-05 15:44:41 +00:00
Robert Parker 1f83a50d21 Update the code for setting the last selected directory.
svn:revision:68586
svn:branch:RELEASE
svn:account:bob1961
2016-08-05 14:52:23 +00:00
Robert Parker eefe7d5cfd Update the code for setting the last selected directory.
svn:revision:68585
svn:branch:trunk
svn:account:bob1961
2016-08-05 14:51:37 +00:00
Clifford Yapp e18fbf77ee tweak comment
svn:revision:68584
svn:branch:trunk
svn:account:starseeker
2016-08-04 21:30:25 +00:00
Clifford Yapp 8a43b81fb2 Try again to do a proper umask test without benefit of WIN32. While we're at it, try to use execute_process as well.
svn:revision:68583
svn:branch:trunk
svn:account:starseeker
2016-08-04 21:26:32 +00:00
Clifford Yapp 1bcb87c7f9 Nick handled LOD config dialog issue.
svn:revision:68582
svn:branch:trunk
svn:account:starseeker
2016-08-04 21:25:43 +00:00
Nicholas Reed 4b7dc82dae Follow up r68502. Access to cmdprefix option and gedcmd var set from it must happen after itk_initialize.
svn:revision:68581
svn:branch:trunk
svn:account:n_reed
2016-08-04 20:32:46 +00:00
Jonathan Engbert c9c0b7fbdc remove some svn merge text
svn:revision:68580
svn:branch:RELEASE
svn:account:ejno
2016-08-04 19:46:41 +00:00
Jonathan Engbert 2b1818a429 add a simple memory arena implementation for experimental timing purposes
svn:revision:68579
svn:branch:prep-cache
svn:account:ejno
2016-08-04 16:06:16 +00:00
Clifford Yapp 95a651ad5b The LoD dialog is not happy in MGED
svn:revision:68578
svn:branch:trunk
svn:account:starseeker
2016-08-04 15:58:33 +00:00
Clifford Yapp a9f0db57bf Unfortunately, r68559 doesn't work as hoped on Windows. Revert in RELEASE - in trunk, we will need to come up with a smarter failure check than empty string. The Windows output string for failure when trying to run umask is not empty.
svn:revision:68577
svn:branch:RELEASE
svn:account:starseeker
2016-08-03 22:47:58 +00:00
Clifford Yapp 99e880109e Update ChangeLog with commits from r68572, svn:mergeinfo
svn:revision:68573
svn:branch:RELEASE
svn:account:starseeker
2016-08-03 21:40:56 +00:00
Christopher Sean Morrison 458ae71dab cherry pick a slew of commits from trunk that get the top-level files nearly matching as well as a bunch of other low-risk recent activity. found a few (improtant) commits missed. doing final release tree diffing to make sure nothing else important is missing.
svn:revision:68572
svn:branch:RELEASE
svn:account:brlcad
2016-08-03 19:51:57 +00:00
Clifford Yapp 3831d7dd77 Don't wipe out these two files if doing in_src_dir distcheck
svn:revision:68571
svn:branch:trunk
svn:account:starseeker
2016-08-03 19:31:15 +00:00
Christopher Sean Morrison b0ae6b2697 ready to go...
svn:revision:68570
svn:branch:trunk
svn:account:brlcad
2016-08-03 19:14:44 +00:00
Jonathan Engbert 33bce1c722 merge from trunk to r68568
svn:revision:68569
svn:branch:prep-cache
svn:account:ejno
2016-08-03 14:19:52 +00:00
Christopher Sean Morrison eedb172b53 update comment as db_tops is no more what is called
svn:revision:68568
svn:branch:trunk
svn:account:brlcad
2016-08-03 02:57:39 +00:00
Jonathan Engbert 2cd46031df remove some needlessly dynamic allocations of SurfaceTree, some of which were not freed
svn:revision:68567
svn:branch:trunk
svn:account:ejno
2016-08-02 21:04:46 +00:00
Jonathan Engbert fba86ea2bb merge from trunk to r68564
svn:revision:68566
svn:branch:prep-cache
svn:account:ejno
2016-08-02 20:31:56 +00:00
Jonathan Engbert 8a5cd78968 remove redundant member BBNode::m_face
svn:revision:68565
svn:branch:prep-cache
svn:account:ejno
2016-08-02 20:30:21 +00:00
Clifford Yapp 3c9e9977b9 looks like these moved...
svn:revision:68564
svn:branch:trunk
svn:account:starseeker
2016-08-02 20:24:42 +00:00
Jonathan Engbert 44ac5c2c9b 'brep_specific' owns 'brep'; delete it as well
svn:revision:68563
svn:branch:trunk
svn:account:ejno
2016-08-02 20:18:47 +00:00
Clifford Yapp 5cc50c3c8e update dist files
svn:revision:68562
svn:branch:trunk
svn:account:starseeker
2016-08-02 19:03:51 +00:00
Jonathan Engbert 528c115ba5 fix: st1, st2 were not deleted; fix 'throw new ...'
svn:revision:68561
svn:branch:trunk
svn:account:ejno
2016-08-02 18:02:59 +00:00
Clifford Yapp b87335f530 librtserver is gone and documented, remove 7.22 deprecation
svn:revision:68560
svn:branch:trunk
svn:account:starseeker
2016-08-02 17:45:11 +00:00
Clifford Yapp e84a3cb0dd Try using exec_program to check for umask. execute_process is a problem on systems without an explicit umask command (i.e. those that let the shell handle it) so a more elaborate test may be needed if CMake removes exec_program (it is deprecated.)
svn:revision:68559
svn:branch:trunk
svn:account:starseeker
2016-08-02 17:20:23 +00:00
Clifford Yapp 8dbe594fc2 Add common.h to satisfy regress-repository
svn:revision:68558
svn:branch:trunk
svn:account:starseeker
2016-08-02 16:28:18 +00:00
Clifford Yapp 13e3010152 The autoheader.cmake script is supposed to contain platform defines, in that it catalogs them.
svn:revision:68557
svn:branch:trunk
svn:account:starseeker
2016-08-02 16:26:15 +00:00
Clifford Yapp af57cb3acb Update changelog with additional changes from trunk (manually selected).
svn:revision:68556
svn:branch:RELEASE
svn:account:starseeker
2016-08-02 15:50:33 +00:00
Clifford Yapp 4dfd7b8cbe added a number of NEWS items for changes.
svn:revision:68555
svn:branch:trunk
svn:account:starseeker
2016-08-02 15:37:11 +00:00
Clifford Yapp bb04093231 Pull in updates to NEWS file
svn:revision:68554
svn:branch:RELEASE
svn:account:starseeker
2016-08-02 15:35:31 +00:00
Clifford Yapp 9a698390ac Removed pixread.sh and pixwrite.sh - obsolete hardware
svn:revision:68553
svn:branch:trunk
svn:account:starseeker
2016-08-02 15:31:31 +00:00
Clifford Yapp 041740df92 removed cray.sh and sgisnap.sh; obsolete hardware
svn:revision:68552
svn:branch:trunk
svn:account:starseeker
2016-08-02 15:30:23 +00:00
Clifford Yapp 019da55ada Removed cadbug.sh script - use sourceforge tracker to get this information
svn:revision:68551
svn:branch:trunk
svn:account:starseeker
2016-08-02 15:28:31 +00:00
Clifford Yapp 394c3b051b Removed any-png.sh script
svn:revision:68550
svn:branch:trunk
svn:account:starseeker
2016-08-02 15:27:37 +00:00
Clifford Yapp 359f7feb7c removed the librtserver interface. The modern approach to this, if it is needed, would start with something like swig.
svn:revision:68549
svn:branch:trunk
svn:account:starseeker
2016-08-02 15:15:22 +00:00
Clifford Yapp 32c41a1339 removed old bot specific per_line command
svn:revision:68548
svn:branch:trunk
svn:account:starseeker
2016-08-02 15:10:31 +00:00
Clifford Yapp 8c112f0ac8 tops -g -u behavior is now default.
svn:revision:68547
svn:branch:trunk
svn:account:starseeker
2016-08-02 15:05:33 +00:00
Clifford Yapp 113e70f17e Removed the long deprecated -n option for mged - replaced with -c.
svn:revision:68546
svn:branch:trunk
svn:account:starseeker
2016-08-02 14:53:54 +00:00
Clifford Yapp 5675d70662 Removed obsolete MGED commands pl, pov and polybinout.
svn:revision:68545
svn:branch:trunk
svn:account:starseeker
2016-08-02 14:52:35 +00:00
Clifford Yapp c720464ebf Removed UtahRLE image tools from BRL-CAD install - they're a 3rd party toolset for a seldom used format,and are available as external installs if needed. The part needed for BRL-CAD's tools is libutahrle.
svn:revision:68544
svn:branch:trunk
svn:account:starseeker
2016-08-02 14:50:20 +00:00
Christopher Sean Morrison 766cb65395 echo commands that modify the db
svn:revision:68543
svn:branch:trunk
svn:account:brlcad
2016-08-02 06:19:29 +00:00
Christopher Sean Morrison 76164385ac add callbacks to know who is drawn and who we previously drew, so we can be sure to erase pairings as they are traversed in the list. also actually enable the comb processing, adding a little protection to make sure we don't try to double-subtract
svn:revision:68542
svn:branch:trunk
svn:account:brlcad
2016-08-02 06:07:36 +00:00
Christopher Sean Morrison 01b1eba0a8 count the number of right-side ops, so we only try to wrap when there are multiple entries. we can only wrap once, so if the wrapped form is found, we assume the subtractions are overlap cleanup (so we don't just keep wrapping incessantly).
svn:revision:68541
svn:branch:trunk
svn:account:brlcad
2016-08-02 05:04:48 +00:00
Christopher Sean Morrison fe4f4437c8 implemented basic safe subtraction logic. it introspects the two regions, wraps them if it finds more than one union (really needs to wrap when sum of ops > 1 but needs more testing), and then subtracts either the wrapped comb or the single entry if there was only one
svn:revision:68540
svn:branch:trunk
svn:account:brlcad
2016-08-02 04:43:57 +00:00
Christopher Sean Morrison 64896c59f9 add another callback to display geometry as it's selected along with a selection event handler that draws items automatically as they are selected
svn:revision:68539
svn:branch:trunk
svn:account:brlcad
2016-08-02 02:32:42 +00:00
Christopher Sean Morrison 49d932c8f2 hook in a basic callback mechanism so mged/archer's command logic can remain separate from the gui code
svn:revision:68538
svn:branch:trunk
svn:account:brlcad
2016-08-02 01:47:43 +00:00
Clifford Yapp 7adb8cb5e2 Pull in lc command change (r68536)
svn:revision:68537
svn:branch:RELEASE
svn:account:starseeker
2016-08-01 21:02:49 +00:00
Clifford Yapp 823979e427 Make lc command's -d and -s options match old script behavior.
svn:revision:68536
svn:branch:trunk
svn:account:starseeker
2016-08-01 20:59:18 +00:00
Clifford Yapp 435fafd84f Not a release blocker, but we need to make metaball input smarter.
svn:revision:68535
svn:branch:trunk
svn:account:starseeker
2016-08-01 20:06:00 +00:00
Clifford Yapp 0084c78020 Don't attempt to assign a metaball point unless we have enough args. Reported by Josh Baker.
svn:revision:68534
svn:branch:trunk
svn:account:starseeker
2016-08-01 20:02:27 +00:00
Clifford Yapp d4167a525b Can't reproduce original issue, plus over 10000 commits ago so getting hard to build.
svn:revision:68533
svn:branch:trunk
svn:account:starseeker
2016-08-01 19:33:51 +00:00
Clifford Yapp 8f25c20f45 Merge in various changes from trunk. Review TODO list is not quite done yet, but this should help.
svn:revision:68532
svn:branch:RELEASE
svn:account:starseeker
2016-08-01 19:14:13 +00:00
Clifford Yapp bf5efe25f0 Pull in fix for BRL-CAD configure summary printing (r68397)
svn:revision:68531
svn:branch:RELEASE
svn:account:starseeker
2016-08-01 18:54:37 +00:00
Clifford Yapp c31c91c088 More tweaks for Windows
svn:revision:68530
svn:branch:trunk
svn:account:starseeker
2016-08-01 18:35:01 +00:00
Christopher Sean Morrison 1f89856948 prev and next buttons respect the current sort ordering as originally intended
svn:revision:68529
svn:branch:trunk
svn:account:brlcad
2016-08-01 17:20:16 +00:00
Clifford Yapp 142372d3ea Fix static target names
svn:revision:68528
svn:branch:trunk
svn:account:starseeker
2016-08-01 15:51:26 +00:00
Christopher Sean Morrison 3036bb7d72 need to figure out how to bind keys better, but this gets up/down arrows going once we make a selection. noticed that numeric ordering was assumed, need to fix that.
svn:revision:68527
svn:branch:trunk
svn:account:brlcad
2016-08-01 05:44:57 +00:00
Christopher Sean Morrison 979f8d333f fully functional prev/next buttons while keeping the list view properly on the current selection. even handles toggling from multi-selection to next/prev item.
svn:revision:68526
svn:branch:trunk
svn:account:brlcad
2016-08-01 05:22:37 +00:00
Christopher Sean Morrison 56480e60b2 add prev/next buttons for simpler navigation control and stub in layering for invoking mged commands
svn:revision:68525
svn:branch:trunk
svn:account:brlcad
2016-08-01 04:05:11 +00:00
Clifford Yapp 763a2c2cae Does not appear to be a bug in 7.24.4
svn:revision:68524
svn:branch:trunk
svn:account:starseeker
2016-07-29 19:50:19 +00:00
Clifford Yapp f9e3619a7d Rob did indeed provide the fix for r58475. Add to authors - we haven't announced g-step yet, so not yet considered published.
svn:revision:68523
svn:branch:trunk
svn:account:starseeker
2016-07-29 19:39:33 +00:00
Clifford Yapp 250f829e98 Credit Yatharth Agarwal and David Wood for improvements to DocBook image inclusion during 2013 GCI.
svn:revision:68522
svn:branch:trunk
svn:account:starseeker
2016-07-29 19:33:54 +00:00
Clifford Yapp 2bf35c8586 Bob added fbclear command to Archer (r61516)
svn:revision:68521
svn:branch:trunk
svn:account:starseeker
2016-07-29 19:26:46 +00:00
Clifford Yapp e034b94d5b This looks like it was a debugging feature, not present in current code.
svn:revision:68520
svn:branch:trunk
svn:account:starseeker
2016-07-29 19:24:23 +00:00
Christopher Sean Morrison 4517d9aba2 add left/right buttons and tweak the layout. just about ready to process.
svn:revision:68519
svn:branch:trunk
svn:account:brlcad
2016-07-29 19:23:35 +00:00
Clifford Yapp 995405c62b Minor improvement to rtedge help (r63132)
svn:revision:68518
svn:branch:trunk
svn:account:starseeker
2016-07-29 19:22:21 +00:00
Clifford Yapp 49db9ee03e Per Sean, commit r64637 from drossenberg almost certainly fixed mysterious errors during dbconcat and db_opens with duplicate names found
svn:revision:68517
svn:branch:trunk
svn:account:starseeker
2016-07-29 19:18:12 +00:00
Clifford Yapp fd16e0e50c Tom improved v5 specification formatting and added a timestamp proposal (r58325)
svn:revision:68516
svn:branch:trunk
svn:account:starseeker
2016-07-29 18:43:55 +00:00
Clifford Yapp 2fa094e37d couple minor changes to tire's help command
svn:revision:68515
svn:branch:trunk
svn:account:starseeker
2016-07-29 18:40:05 +00:00
Clifford Yapp 21a79b07c5 When using a separate command window, have Archer remember its position. Added a -geometry option to ArcherCore for the archer script to use; lets us avoid excess flashing by only calling wm geometry once. (r58146)
svn:revision:68514
svn:branch:trunk
svn:account:starseeker
2016-07-29 18:31:23 +00:00
Clifford Yapp 4fb2eae529 Add an example for the search command - searching for color attributes on regions (r58147)
svn:revision:68513
svn:branch:trunk
svn:account:starseeker
2016-07-29 18:28:33 +00:00
Clifford Yapp ecea529d3f Added a new manual page explaining what STEP is all about. (r64314)
svn:revision:68512
svn:branch:trunk
svn:account:starseeker
2016-07-29 18:20:04 +00:00
Clifford Yapp 87fd0731d9 Added -param option to search that will searching based on internal parameters of an object (as opposed to general attributes) provided those internal attributes have a tcl list representation. (r61168)
svn:revision:68511
svn:branch:trunk
svn:account:starseeker
2016-07-29 18:15:37 +00:00
Clifford Yapp 07b051c4e5 this change was evidently reverted in subsequent work - current attr set is not case insensitive.
svn:revision:68510
svn:branch:trunk
svn:account:starseeker
2016-07-29 18:08:12 +00:00
Jonathan Engbert 81cd591939 merge with trunk to r68507
svn:revision:68509
svn:branch:prep-cache
svn:account:ejno
2016-07-29 13:44:09 +00:00
Jonathan Engbert d8019da060 open fstreams in binary mode
svn:revision:68508
svn:branch:prep-cache
svn:account:ejno
2016-07-29 13:42:43 +00:00
Christopher Sean Morrison d38e800174 print the final 'volume estimate' via printf so awk doesn't resort to scientific notation and with a width specifier to we get a constant number of digits after the deimal.
svn:revision:68507
svn:branch:trunk
svn:account:brlcad
2016-07-29 05:52:07 +00:00
Christopher Sean Morrison 7accdb1957 this shell script is not intended for inclusion in the distribution, but it's currently the workhorse for the tcl GUI. it shoots a 16-view grid of rays and aggregates all the overlap information into a table for prioritization (based on a rough volume estimate). it also captures plot information for subsequent display. this script should go away once the functionality gets recoded in tcl, but this was faster to get started with.
svn:revision:68506
svn:branch:trunk
svn:account:brlcad
2016-07-29 03:00:48 +00:00
Christopher Sean Morrison 3fd4264986 this is the current status, providing a fully functional table view with selection, sorting, scrolling, automatic width adjustment, and automatic row coloring. next up is hooking it to mged.
svn:revision:68505
svn:branch:trunk
svn:account:brlcad
2016-07-29 02:52:20 +00:00
Christopher Sean Morrison 1ff3a63f17 later made more sense to combine the class and proc together so the public facade really is just the proc, not proc+megawidget.
svn:revision:68504
svn:branch:trunk
svn:account:brlcad
2016-07-29 02:48:29 +00:00
Christopher Sean Morrison 2f552862c5 stub in the preliminary files I'd started with in the development of a new geometry overlap resolution interface. started with a shell of a proc and itcl class.
svn:revision:68503
svn:branch:trunk
svn:account:brlcad
2016-07-29 02:44:23 +00:00
Christopher Sean Morrison c6ddf3ee1a itk_init is supposed to happen after adding components so it can update the option list accordingly
svn:revision:68502
svn:branch:trunk
svn:account:brlcad
2016-07-28 22:34:48 +00:00
Jonathan Engbert 3a3aae546c merge from trunk to r68500
svn:revision:68501
svn:branch:prep-cache
svn:account:ejno
2016-07-27 13:20:35 +00:00
Christopher Sean Morrison ce9d952878 need RT_TXT_OUTPUT on most of these tools, otherwise they crash or abort due to NULL outfp never getting initialized. found the problem with rtcheck -o crashing.
svn:revision:68500
svn:branch:trunk
svn:account:brlcad
2016-07-27 13:15:38 +00:00
Jonathan Engbert 53b5dcf014 fix warning (left-shift of negative value)
svn:revision:68499
svn:branch:trunk
svn:account:ejno
2016-07-27 03:46:21 +00:00
Christopher Sean Morrison 07d41f14f3 getting ray tracing working in parallel on windows was primarily made real by two GCI students (in 2012/2013) that implemented the critical bits in parallel and semaphore, applied and reworked by daniel and myself. never announced the change as it continued to be a topic of tweaks and debugging for a while, but now it's been in stable active use for a while and warrants broader recognition. instant visible and substantial performance improvement, depending on the number of cores available.
svn:revision:68498
svn:branch:trunk
svn:account:brlcad
2016-07-27 00:43:40 +00:00
Christopher Sean Morrison 8498635d55 denote the added argument on bu_basename
svn:revision:68497
svn:branch:trunk
svn:account:brlcad
2016-07-27 00:22:19 +00:00
Christopher Sean Morrison c6a7a36959 heavily modify and restore the return and first arg of bu_basename() to still return the buffer and take the constant path. the gci change in r59475 introduced a non-minimally impacting change that would have needed to go through deprecation announcement. the restored sig (char*bu_basename(const char*, char*)) will cause a warning but is compatible with the prior (char*bu_basename(const char*)) and is minimally impacting with a NULL buffer argument. the real benefit with the new form is that some callers can pass a buffer (e.g., stack-allocated) instead of requiring dynamic allocation, so some are updated to take advantage of this.
svn:revision:68496
svn:branch:trunk
svn:account:brlcad
2016-07-27 00:18:40 +00:00
Christopher Sean Morrison 34a0237cea update the example with the second argument now that bu_basename takes two
svn:revision:68495
svn:branch:trunk
svn:account:brlcad
2016-07-26 23:38:02 +00:00
Christopher Sean Morrison 3c7c349433 diagnostic pragmas (as generally used to disable warnings) are evil. no longer needed as the warnings were addressed in other ways.
svn:revision:68494
svn:branch:trunk
svn:account:brlcad
2016-07-26 22:48:45 +00:00
Jonathan Engbert 0a035f1f89 remove some allocations
svn:revision:68493
svn:branch:prep-cache
svn:account:ejno
2016-07-26 18:09:44 +00:00
Clifford Yapp 12bc74d38d Fix build - gcc 4.9.2 wiped out on these two...
svn:revision:68492
svn:branch:trunk
svn:account:starseeker
2016-07-26 16:11:05 +00:00
Jonathan Engbert 580008bb24 add glibc malloc() instrumentation; remove some memory allocations
svn:revision:68491
svn:branch:prep-cache
svn:account:ejno
2016-07-26 15:32:07 +00:00
Christopher Sean Morrison 6e47bd7d4a misleading and inconsistent, set input filename to "-" as if the users specified that (even if these tools probably don't yet consistently support that syntax
svn:revision:68490
svn:branch:trunk
svn:account:brlcad
2016-07-26 05:26:08 +00:00
Christopher Sean Morrison 56b507adc9 last remaining scan string conversions to CPP_SCAN() so we can minimize/eliminate the chance of having sizes get out of sync over time. consolidates the size definitions into a single preprocessor define that gets reused accordingly.
svn:revision:68489
svn:branch:trunk
svn:account:brlcad
2016-07-26 04:58:02 +00:00
Christopher Sean Morrison 37f6deab43 update lots of seemingly arbitrary name size limits, similarly copy+pasted or templated off each other. promote them all to a much bigger size since we're talking somewhat arbitrary name limits, check and print that size accordingly without duplicating the actual nubmers
svn:revision:68488
svn:branch:trunk
svn:account:brlcad
2016-07-26 04:45:36 +00:00
Christopher Sean Morrison 38a970c868 consolidate scanning lengths into one place
svn:revision:68487
svn:branch:trunk
svn:account:brlcad
2016-07-26 04:42:42 +00:00
Christopher Sean Morrison c666d8bc73 reduce magic number instances down to a single occurance.
svn:revision:68486
svn:branch:trunk
svn:account:brlcad
2016-07-26 04:38:11 +00:00
Christopher Sean Morrison 5a664c12a1 eliminate a slew of magic numbers in favor of singular defines per value and reused accordingly. increased the size of some buffers where it looked like it shouldn't matter how big they get.
svn:revision:68485
svn:branch:trunk
svn:account:brlcad
2016-07-26 04:37:23 +00:00
Christopher Sean Morrison 4bb917d88c add a convenience macro to help with scanning into string buffers where we want to bounds-check the input by specifying in %{NUM}s form, stringified
svn:revision:68484
svn:branch:trunk
svn:account:brlcad
2016-07-26 04:35:21 +00:00
Jonathan Engbert 30eca320b1 make an attempt at fixing the loop (looks like what could have been intended)
svn:revision:68483
svn:branch:trunk
svn:account:ejno
2016-07-26 02:03:43 +00:00
Jonathan Engbert 367173ab3e fix a number of warnings identified by gcc/clang
svn:revision:68482
svn:branch:trunk
svn:account:ejno
2016-07-26 01:59:54 +00:00
Jonathan Engbert b618631b8a first check for duplicates among geometry ids so that they aren't modified if there is a conflict within another object table (geometry are more likely to be referenced)
svn:revision:68481
svn:branch:trunk
svn:account:ejno
2016-07-25 16:34:18 +00:00
Christopher Sean Morrison 984f18b0a6 common includes stdint.h
svn:revision:68480
svn:branch:trunk
svn:account:brlcad
2016-07-25 04:09:37 +00:00
Christopher Sean Morrison 5e20d19cff warning message consistency, using WARNING:
svn:revision:68479
svn:branch:trunk
svn:account:brlcad
2016-07-25 03:58:48 +00:00
Christopher Sean Morrison a790fa2b6e cliff improved the rtwizard docs to better explain command line usage.
svn:revision:68478
svn:branch:trunk
svn:account:brlcad
2016-07-25 03:49:18 +00:00
Jonathan Engbert 623e57996b use size_t
svn:revision:68475
svn:branch:trunk
svn:account:ejno
2016-07-22 16:24:43 +00:00
Clifford Yapp ebd07e4ea4 Note upgrade to libpng 1.6.23
svn:revision:68469
svn:branch:trunk
svn:account:starseeker
2016-07-21 23:10:00 +00:00
Nicholas Reed a870e5d8ce changes to support pdf export
svn:revision:68468
svn:branch:brep-debug
svn:account:n_reed
2016-07-21 22:41:41 +00:00
Christopher Sean Morrison be8c3e1836 cliff improved the search command's manual page with a list of the -params parameters that can be specified.
svn:revision:68467
svn:branch:trunk
svn:account:brlcad
2016-07-21 22:41:31 +00:00
Christopher Sean Morrison a56675e710 keith added conversion timings output to the step importer, telling how long it takes to load and convert
svn:revision:68466
svn:branch:trunk
svn:account:brlcad
2016-07-21 22:32:25 +00:00
Christopher Sean Morrison 948f264ec4 keith fixed the face validation check so that it no longer tests the normal against the distance tol, instead checking the dot product against the parallel tol. this improved ray tracing and bounding boxes of really tiny triangles with edges at/near the distance tol. (r61337)
svn:revision:68465
svn:branch:trunk
svn:account:brlcad
2016-07-21 22:28:41 +00:00
Christopher Sean Morrison d8a908ee05 we're all in, need brep support
svn:revision:68464
svn:branch:trunk
svn:account:brlcad
2016-07-21 22:19:59 +00:00
Christopher Sean Morrison a6abc0755c bob fixed (in r61402) the fork+exec method being used on windows in rtwizard where edge drawing and ghosting were not working.
svn:revision:68463
svn:branch:trunk
svn:account:brlcad
2016-07-21 22:17:47 +00:00
Christopher Sean Morrison b4d1dd4ddb cliff made fast4-g import CCONE1 even when they have an illegal thickness. previously discarded them, but now imports as volume cones. (r61433)
svn:revision:68462
svn:branch:trunk
svn:account:brlcad
2016-07-21 22:14:33 +00:00
Christopher Sean Morrison 5e49dc9990 note where things left off with the joint articulation work (both the old system and the new joint objects) from the big bullet branch merge (r62451)
svn:revision:68461
svn:branch:trunk
svn:account:brlcad
2016-07-21 22:05:58 +00:00
Christopher Sean Morrison dba4c4d0a6 keith fixed the bb command volume reporting, which was returning mm^3 instead of the localized units. also increased precision beyond one digit past the decimal, reported by a user having problems with sub-inch boxes.
svn:revision:68460
svn:branch:trunk
svn:account:brlcad
2016-07-21 21:50:14 +00:00
Christopher Sean Morrison 941546716a jon added a -f vertex fuse option to obj-g that fuses verticies within a given tolerance. this helps the solidity detection work but is slower (hence off by default).
svn:revision:68459
svn:branch:trunk
svn:account:brlcad
2016-07-21 21:45:32 +00:00
Christopher Sean Morrison 5e4c91c2a2 remove dead code
svn:revision:68458
svn:branch:trunk
svn:account:brlcad
2016-07-21 20:50:57 +00:00
Christopher Sean Morrison e3ceeef66b note the 2013 doc camp team (save for sean and cliff which already have core status) under documentation.
svn:revision:68457
svn:branch:trunk
svn:account:brlcad
2016-07-21 20:31:07 +00:00
Christopher Sean Morrison 0ae2cbb7eb remove the extern C wrappings as all our headers should now be properly wrapped for the caller
svn:revision:68455
svn:branch:trunk
svn:account:brlcad
2016-07-21 19:06:30 +00:00
Christopher Sean Morrison 4c3b3ebaf3 use the decl wrappers from common
svn:revision:68454
svn:branch:trunk
svn:account:brlcad
2016-07-21 18:56:31 +00:00
Christopher Sean Morrison 553f3a737c the tk apps need to specify their tcl/tk library deps. not necessarily coupled to X11 either (e.g., aqua)
svn:revision:68453
svn:branch:trunk
svn:account:brlcad
2016-07-21 18:55:42 +00:00
Christopher Sean Morrison e55a054663 the headers properly wrap themselves with BEGIN/END_DECLS, so don't need to manually wrap them here
svn:revision:68452
svn:branch:trunk
svn:account:brlcad
2016-07-21 18:19:37 +00:00
Christopher Sean Morrison 5d0fa07237 nothing temporary about it after two years, remove dead comments
svn:revision:68451
svn:branch:trunk
svn:account:brlcad
2016-07-21 18:16:42 +00:00
Clifford Yapp b050758aed Upgrade to latest Itcl/Itk 3.4. Mostly this is a test - this version of Itcl/Itk runs archer with 8.5, but not with 8.6
svn:revision:68449
svn:branch:trunk
svn:account:starseeker
2016-07-21 16:28:20 +00:00
Clifford Yapp de2aab562c Looks like stray comma got added
svn:revision:68448
svn:branch:trunk
svn:account:starseeker
2016-07-21 16:25:50 +00:00
Christopher Sean Morrison a8980c85f7 bob's addition of fbclear to archer is user vis worth mention
svn:revision:68444
svn:branch:trunk
svn:account:brlcad
2016-07-21 04:31:35 +00:00
Christopher Sean Morrison 0e6acd458d looks like 61494 is user vis
svn:revision:68443
svn:branch:trunk
svn:account:brlcad
2016-07-21 04:30:23 +00:00
Clifford Yapp 6be8b182a2 Added license file
svn:revision:68442
svn:branch:trunk
svn:account:starseeker
2016-07-21 04:27:11 +00:00
Clifford Yapp b008752919 Add Ayam license file. Think it's just the brep icons so far, but should check to see if there are others that improve on what we're currently using. Should probably come up with some way to use icv to autogenerate the boolean variations at build time...
svn:revision:68441
svn:branch:trunk
svn:account:starseeker
2016-07-21 04:26:38 +00:00
Christopher Sean Morrison f4d2e0aff4 Cliff not just removed support for old rle format, he removed the deprecated tools. thus, user visible and needing a final callout
svn:revision:68440
svn:branch:trunk
svn:account:brlcad
2016-07-21 04:23:37 +00:00
Christopher Sean Morrison 2545495d55 lastname, firstname - credit gustave with his windows SMP support contributions
svn:revision:68439
svn:branch:trunk
svn:account:brlcad
2016-07-21 04:21:33 +00:00
Christopher Sean Morrison f7675851dc added copyrighted images, but must preserve attribution and copyright notice from ayam dev
svn:revision:68438
svn:branch:trunk
svn:account:brlcad
2016-07-21 04:19:56 +00:00
Christopher Sean Morrison 9c9db202d4 lowercase high res flag no longer exists, so adapt to uppwercase one remaining
svn:revision:68436
svn:branch:trunk
svn:account:brlcad
2016-07-21 03:56:15 +00:00
Christopher Sean Morrison ab012b5133 high resolution flags no longer exist. -h is still reserved, albeit for help now
svn:revision:68435
svn:branch:trunk
svn:account:brlcad
2016-07-21 03:49:12 +00:00
Christopher Sean Morrison db2a2e0b98 clearly denote floating point
svn:revision:68434
svn:branch:trunk
svn:account:brlcad
2016-07-21 03:39:40 +00:00
Christopher Sean Morrison 82bd5bb37f ws cleanup and change >= 180 back to > 179
svn:revision:68433
svn:branch:trunk
svn:account:brlcad
2016-07-21 03:35:25 +00:00
Christopher Sean Morrison 93323bdb2b in the process of making rt's manual page match rtedge, he incorrectly migrated a comment about -o disabling parallel processing. that's only true with rtedge because of how it seeks around the buffer and needs this in order
svn:revision:68432
svn:branch:trunk
svn:account:brlcad
2016-07-21 03:31:17 +00:00
Christopher Sean Morrison a58e93768c 63406 needs docs if 7.24.6 matrix editing doesn't work.
svn:revision:68431
svn:branch:trunk
svn:account:brlcad
2016-07-21 03:27:21 +00:00
Christopher Sean Morrison f661766ed8 generalize carl's work to more than just help options -- he worked on overall command option consistency as well as making many manual pages more consistent.
svn:revision:68430
svn:branch:trunk
svn:account:brlcad
2016-07-21 03:26:52 +00:00
Clifford Yapp 70115d5b95 Don't print html twice.
svn:revision:68397
svn:branch:trunk
svn:account:starseeker
2016-07-20 15:25:52 +00:00
Clifford Yapp 71de9997e0 Add tbrowder's d-bindings work to misc in trunk, in preparation for closing the branch.
svn:revision:68380
svn:branch:trunk
svn:account:starseeker
2016-07-20 00:53:43 +00:00
Clifford Yapp 5513f15ab4 Sync with trunk thru r68370
svn:revision:68376
svn:branch:brep-debug
svn:account:starseeker
2016-07-19 19:59:14 +00:00
Clifford Yapp d610a37bce Sync with trunk thru r68370
svn:revision:68374
svn:branch:prep-cache
svn:account:starseeker
2016-07-19 19:33:58 +00:00
Jonathan Engbert 3035d44041 merge with trunk to r68289
svn:revision:68293
svn:branch:prep-cache
svn:account:ejno
2016-07-14 14:20:28 +00:00
Jonathan Engbert b3a25ce066 formatting
svn:revision:68292
svn:branch:prep-cache
svn:account:ejno
2016-07-14 14:13:52 +00:00
Jonathan Engbert cc9e5f5b94 implement compression of prep cache data
svn:revision:68267
svn:branch:prep-cache
svn:account:ejno
2016-07-13 19:02:02 +00:00
Clifford Yapp 0fa26a3c1b Merge in llvm detected fix from r68247
svn:revision:68258
svn:branch:RELEASE
svn:account:starseeker
2016-07-12 16:21:27 +00:00
Clifford Yapp 753166a241 Merge in update to 3dm-g running during build - commits 68216,68245-68246
svn:revision:68257
svn:branch:RELEASE
svn:account:starseeker
2016-07-12 16:19:52 +00:00
Clifford Yapp 5f3f95252d Merge NEWS updates to RELEASE thru r68252
svn:revision:68253
svn:branch:RELEASE
svn:account:starseeker
2016-07-12 16:00:19 +00:00
Jonathan Engbert 036707d11d commit experimental BREP prep-caching code
svn:revision:68237
svn:branch:prep-cache
svn:account:ejno
2016-07-07 20:25:44 +00:00
Jonathan Engbert 95faa7d517 create a branch for experiments/development on caching of librt prep data
svn:revision:68236
svn:branch:prep-cache
svn:account:ejno
2016-07-07 19:52:36 +00:00
Clifford Yapp a1bd6a8ace Merge changes through 68168, avoiding r68133 for release.
svn:revision:68169
svn:branch:RELEASE
svn:account:starseeker
2016-06-24 20:38:47 +00:00
Clifford Yapp af0de10b6c pull CMake tweak into RELEASE.
svn:revision:68148
svn:branch:RELEASE
svn:account:starseeker
2016-06-22 18:25:50 +00:00
Clifford Yapp f4c4bc49c1 pull a few more tweaks/fixes from trunk
svn:revision:68143
svn:branch:RELEASE
svn:account:starseeker
2016-06-22 15:33:26 +00:00
Clifford Yapp d10e13ed5e grab burst termlib interface deprecation.
svn:revision:68140
svn:branch:RELEASE
svn:account:starseeker
2016-06-22 14:54:01 +00:00
Robert Parker a5812933bb Added a preference for hiding subtracted geometry.
svn:revision:68138
svn:branch:RELEASE
svn:account:bob1961
2016-06-21 17:54:11 +00:00
Robert Parker 59c67c6210 Expose the option to hide subtracted geometry in cadwidgets::Ged
svn:revision:68137
svn:branch:RELEASE
svn:account:bob1961
2016-06-21 17:51:42 +00:00
Clifford Yapp 0059dfb147 merge of trunk to RELEASE branch, r68127 through r68131
svn:revision:68132
svn:branch:RELEASE
svn:account:starseeker
2016-06-17 19:38:04 +00:00
Clifford Yapp 6fa0267909 merge of trunk to RELEASE branch, r68124 through r68127
svn:revision:68128
svn:branch:RELEASE
svn:account:starseeker
2016-06-16 20:53:55 +00:00
Clifford Yapp 913f945142 merge of trunk to RELEASE branch, r68119 through r68122
svn:revision:68123
svn:branch:RELEASE
svn:account:starseeker
2016-06-16 15:03:49 +00:00
Clifford Yapp 663f4e5a5e merge of trunk to RELEASE branch, r68100 through r68119
svn:revision:68120
svn:branch:RELEASE
svn:account:starseeker
2016-06-16 14:36:35 +00:00
Clifford Yapp edf734952a merge of trunk to RELEASE branch, r61055 through r68108
svn:revision:68111
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 21:46:16 +00:00
Clifford Yapp e7ffc564ca Try merge --record-only to see if we can further clean up mergeinfo...
svn:revision:68108
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 21:15:54 +00:00
Clifford Yapp 45d4e7c02b Managed to miss handle a few things, looks like - manually fix remaining differences between trunk 68099 and RELEASE branch. As of this commit the two should be fully synced.
svn:revision:68101
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 01:44:00 +00:00
Clifford Yapp 22788c0742 update to trunk r68099
svn:revision:68100
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 01:39:41 +00:00
Clifford Yapp 32c7fd35b2 update to trunk r68000
svn:revision:68099
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 01:38:37 +00:00
Clifford Yapp 1abd7cee70 update to trunk r67000
svn:revision:68098
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 01:32:36 +00:00
Clifford Yapp e0847a3c4a update to trunk r66000
svn:revision:68097
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 01:18:06 +00:00
Clifford Yapp 8b593328a0 update to trunk r65000
svn:revision:68096
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 01:14:54 +00:00
Clifford Yapp ebedcf2576 update to trunk r64000
svn:revision:68095
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 01:03:59 +00:00
Clifford Yapp 163949479a update to trunk r63500
svn:revision:68094
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 01:02:07 +00:00
Clifford Yapp 649af61ed2 update to trunk r63000
svn:revision:68093
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 00:59:36 +00:00
Clifford Yapp 33bf11c2d8 update to trunk r62500
svn:revision:68092
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 00:41:33 +00:00
Clifford Yapp 8c320f1f0d update to trunk r62000
svn:revision:68091
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 00:37:57 +00:00
Clifford Yapp 050b9fd532 update to trunk r61700
svn:revision:68090
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 00:26:58 +00:00
Clifford Yapp 474c4b3a26 update to trunk r61600
svn:revision:68089
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 00:24:27 +00:00
Clifford Yapp 5243b44a43 update to trunk r61500
svn:revision:68088
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 00:20:32 +00:00
Clifford Yapp 62db17e8bb update to trunk r61400
svn:revision:68087
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 00:17:45 +00:00
Clifford Yapp b18f9afc4f update to trunk r61300
svn:revision:68086
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 00:16:34 +00:00
Clifford Yapp e59a165445 Ugh. Comparing trunk 61200 with current state shows a lot of differences. Let's see if we can sync contents here and avoid future issues.
svn:revision:68085
svn:branch:RELEASE
svn:account:starseeker
2016-06-15 00:07:36 +00:00
Clifford Yapp 074cbe6394 merge through 61200, resolving numerious conflicts
svn:revision:68084
svn:branch:RELEASE
svn:account:starseeker
2016-06-14 21:32:35 +00:00
Clifford Yapp eb818553b1 merge through 61085, resolving some conflicts
svn:revision:68083
svn:branch:RELEASE
svn:account:starseeker
2016-06-14 21:24:21 +00:00
Clifford Yapp c036c7483d merge through 61078
svn:revision:68082
svn:branch:RELEASE
svn:account:starseeker
2016-06-14 21:20:59 +00:00
Clifford Yapp 30597d52cd Merge commit range 61055-61076 from trunk. If I'm interpreting the logs correctly that's the last 'full' sync point, and this is going to have to be incremental due to all the subsequent changes for patch releases, etc.
svn:revision:68081
svn:branch:RELEASE
svn:account:starseeker
2016-06-14 21:08:10 +00:00
Clifford Yapp ef5c10b2d9 The merge command is complaining about these commits, which appear to be empty?? add to mergeinfo to see if we can set up for a reintegrate merge.
svn:revision:68079
svn:branch:RELEASE
svn:account:starseeker
2016-06-14 20:41:11 +00:00
Christopher Sean Morrison e65e71af9e not needed to build, but quell our distchecking cmake rule and update readme.
svn:revision:66169
svn:branch:RELEASE
svn:account:brlcad
2015-09-08 18:08:35 +00:00
Christopher Sean Morrison 2dd75271e4 7.24.4 is a special patch release for arl
svn:revision:66164
svn:branch:RELEASE
svn:account:brlcad
2015-09-08 16:07:35 +00:00
Christopher Sean Morrison 5ba43ca42b oops, don't forget mergeinfo
svn:revision:66138
svn:branch:RELEASE
svn:account:brlcad
2015-08-31 22:22:27 +00:00
Christopher Sean Morrison 7d5d134674 merge c66133 from trunk
svn:revision:66135
svn:branch:RELEASE
svn:account:brlcad
2015-08-31 21:54:42 +00:00
Christopher Sean Morrison 4ef3df65bb merge r66124 through r66126 which restores behavior for a subtle floating point issue in tgc/rec shotlining. not the end-state, but consistent behavior for patch release.
svn:revision:66129
svn:branch:RELEASE
svn:account:brlcad
2015-08-31 16:50:10 +00:00
Christopher Sean Morrison f2adcfe51c merge the remainder of datum work based on log activity including the following revisions: 65613,65627,65648,65649,65729,65743,65754,65763,65764,65775,65842.
svn:revision:66108
svn:branch:RELEASE
svn:account:brlcad
2015-08-29 01:14:43 +00:00
Christopher Sean Morrison eb692c8560 more quellage
svn:revision:66107
svn:branch:RELEASE
svn:account:brlcad
2015-08-29 01:04:09 +00:00
Christopher Sean Morrison 590adaae04 compilation quellage not seen on trunk due to the different header inclusions.
svn:revision:66106
svn:branch:RELEASE
svn:account:brlcad
2015-08-29 00:52:48 +00:00
Christopher Sean Morrison 6982696262 stub the 7.24.4 patch release section, bump the patch revision
svn:revision:66105
svn:branch:RELEASE
svn:account:brlcad
2015-08-29 00:11:42 +00:00
Christopher Sean Morrison 833326baa0 merge initial datum support from c65612 and c65614 with a bit of conflict resolution due to header movement
svn:revision:66104
svn:branch:RELEASE
svn:account:brlcad
2015-08-29 00:03:55 +00:00
Clifford Yapp 0d2f94048d We're CMake only now - not going to patch up config_win.h
svn:revision:66103
svn:branch:RELEASE
svn:account:starseeker
2015-08-28 18:49:33 +00:00
Clifford Yapp 3f95252364 More HIDDEN updates.
svn:revision:66102
svn:branch:RELEASE
svn:account:starseeker
2015-08-28 18:41:33 +00:00
Clifford Yapp 6d3aafd437 Merge r57642 - HIDDEN causing problems on Windows build.
svn:revision:66101
svn:branch:RELEASE
svn:account:starseeker
2015-08-28 18:32:52 +00:00
Clifford Yapp bbd4ba4149 math.h may have INFINITY definition.
svn:revision:66100
svn:branch:RELEASE
svn:account:starseeker
2015-08-28 18:20:27 +00:00
Clifford Yapp 177945aa1d Since the MSVC tests don't seem to be functioning reliably in this version and I'm not sure what other pieces are needed from trunk, take the direct approach just for the patch release.
svn:revision:66098
svn:branch:RELEASE
svn:account:starseeker
2015-08-28 13:47:36 +00:00
Clifford Yapp 2783e7a2dc The isinf and isnan tests don't seem to be working correctly with this merge... must need more than just these changes. Revert for now.
svn:revision:66097
svn:branch:RELEASE
svn:account:starseeker
2015-08-28 13:11:48 +00:00
Clifford Yapp a6cf28a581 Pull in MSVC build fix from r62446
svn:revision:66096
svn:branch:RELEASE
svn:account:starseeker
2015-08-28 13:04:47 +00:00
Clifford Yapp 7f4064a56d Grab some of the Windows checks needed with newer MSVC
svn:revision:66095
svn:branch:RELEASE
svn:account:starseeker
2015-08-28 01:14:57 +00:00
Clifford Yapp 7cea6d989d Apply a few more changes to the build logic, working towards Windows building - the build-time path reporting was causing more problems than it was worth, removed from ident.
svn:revision:66094
svn:branch:RELEASE
svn:account:starseeker
2015-08-28 00:49:12 +00:00
Clifford Yapp c37b0a717a Fix build errors.
svn:revision:66093
svn:branch:RELEASE
svn:account:starseeker
2015-08-27 22:22:54 +00:00
Clifford Yapp 50550b7569 Minimal CMake updates for CMake >=3.0
svn:revision:66092
svn:branch:RELEASE
svn:account:starseeker
2015-08-27 22:10:29 +00:00
Christopher Sean Morrison acd8226424 ugh, wrong year went unnoticed
svn:revision:61075
svn:branch:RELEASE
svn:account:brlcad
2014-06-03 02:46:14 +00:00
Christopher Sean Morrison 5211a52da6 final version bump and doc update for 7.24.2 release
svn:revision:61063
svn:branch:RELEASE
svn:account:brlcad
2014-06-02 14:50:25 +00:00
Christopher Sean Morrison 2af424c3c0 looking like today is finally release day.
svn:revision:61057
svn:branch:RELEASE
svn:account:brlcad
2014-06-02 03:09:47 +00:00
Christopher Sean Morrison 676e60cd81 merge trunk c61054 to get the updated ChangeLog for release. next release should use this revision instead of the usual date range due to having to cherry-pick so many subsequent merges.
svn:revision:61055
svn:branch:RELEASE
svn:account:brlcad
2014-06-02 03:04:58 +00:00
Christopher Sean Morrison 26f88345b4 incorporate mergeinfo changes .. does latter svn still use these?
svn:revision:60992
svn:branch:RELEASE
svn:account:brlcad
2014-05-29 23:54:51 +00:00
Christopher Sean Morrison 4f161f1288 merge c60988 from trunk which consequently fixes the placement of the summary text at the top.
svn:revision:60989
svn:branch:RELEASE
svn:account:brlcad
2014-05-29 22:53:16 +00:00
Christopher Sean Morrison eee4dc7821 merge c60561 from trunk to disable Bullet unless it's explicitly enabled. fixes default build failure when system Bullet is incompatible.
svn:revision:60987
svn:branch:RELEASE
svn:account:brlcad
2014-05-29 22:42:03 +00:00
Christopher Sean Morrison a27b51eb3f merge 60979:60981 from trunk to get support builds with a busted wish binary
svn:revision:60984
svn:branch:RELEASE
svn:account:brlcad
2014-05-29 21:45:41 +00:00
Christopher Sean Morrison d446ec891b merge c60957 from trunk to get the release summary
svn:revision:60958
svn:branch:RELEASE
svn:account:brlcad
2014-05-29 19:11:20 +00:00
Christopher Sean Morrison 10534edb75 turn off the repository check for this release. issues reported in the latest version of the file are not current with these sources.
svn:revision:60803
svn:branch:RELEASE
svn:account:brlcad
2014-05-22 19:22:21 +00:00
Christopher Sean Morrison 309869e1db merge just repository.sh from trunk (through HEAD) since it has a fix for screwy pathnames, hopefully the only distcheck-full failure
svn:revision:60777
svn:branch:RELEASE
svn:account:brlcad
2014-05-21 23:22:57 +00:00
Christopher Sean Morrison e4ddf13359 undo/revert r57291 from the release branch since the changes look very suspicious from a logic standpoint, and it looks like all the changes eventually were undone on trunk.
svn:revision:60680
svn:branch:RELEASE
svn:account:brlcad
2014-05-17 03:15:39 +00:00
Christopher Sean Morrison f9f1d12029 mergeinfo
svn:revision:60678
svn:branch:RELEASE
svn:account:brlcad
2014-05-17 02:46:24 +00:00
Christopher Sean Morrison e6c258811b merge c60674,c60676 from trunk
svn:revision:60677
svn:branch:RELEASE
svn:account:brlcad
2014-05-16 22:21:46 +00:00
Christopher Sean Morrison ea32c284b4 merge c60672 from trunk
svn:revision:60673
svn:branch:RELEASE
svn:account:brlcad
2014-05-16 22:04:27 +00:00
Christopher Sean Morrison 979ee5e6be merge r60635 from trunk
svn:revision:60636
svn:branch:RELEASE
svn:account:brlcad
2014-05-14 20:40:22 +00:00
Christopher Sean Morrison d2543e6097 sync changes with trunk since these are advance notices, r36844:60628
svn:revision:60629
svn:branch:RELEASE
svn:account:brlcad
2014-05-14 18:00:39 +00:00
Christopher Sean Morrison 5c2508d61b merge r60615:60617 from trunk to avoid introducing a bug this release.
svn:revision:60618
svn:branch:RELEASE
svn:account:brlcad
2014-05-14 14:55:17 +00:00
Christopher Sean Morrison d8dc1e5496 merge 60591 from trunk
svn:revision:60601
svn:branch:RELEASE
svn:account:brlcad
2014-05-13 13:55:30 +00:00
Christopher Sean Morrison 6b231400f3 merge r60517 from trunk to branch, noting the libpng upgrade (fixing CVE 2014-0333)
svn:revision:60518
svn:branch:RELEASE
svn:account:brlcad
2014-05-06 22:54:41 +00:00
Clifford Yapp 8fde86211b g-dot is complaining about brlcad_ident being unused, so go ahead and use it for something.
svn:revision:60516
svn:branch:RELEASE
svn:account:starseeker
2014-05-06 21:53:48 +00:00
Clifford Yapp 3b93c52981 Upgrade libpng to 1.6.10 (CVE-2014-0333)
svn:revision:60515
svn:branch:RELEASE
svn:account:starseeker
2014-05-06 21:51:17 +00:00
Clifford Yapp 39acf36dd7 include string.h for strlen
svn:revision:60514
svn:branch:RELEASE
svn:account:starseeker
2014-05-06 21:47:07 +00:00
Clifford Yapp 7cd5eb486a Make rcodes command messages a little more informative (trunk r60427)
svn:revision:60513
svn:branch:RELEASE
svn:account:starseeker
2014-05-06 21:34:41 +00:00
Clifford Yapp 23249c58bd Fix ellipsoid routine for the inside command. (trunk r60426)
svn:revision:60512
svn:branch:RELEASE
svn:account:starseeker
2014-05-06 21:32:01 +00:00
Clifford Yapp df4f4d9763 Need to make sure we restore the bu_log redirects after running bu_cmd on wdb_newcmds - otherwise, we lose bu_log output at MGED command prompt (seen when using reid, for example - trunk r60425)
svn:revision:60511
svn:branch:RELEASE
svn:account:starseeker
2014-05-06 21:30:19 +00:00
Clifford Yapp e0580476c8 pull doc fix from r60332
svn:revision:60509
svn:branch:RELEASE
svn:account:starseeker
2014-05-06 21:24:58 +00:00
Clifford Yapp 4b41f9b12c Added a -s option for rtwizard that mimics the one rt provides - sets the image to a square size of n pixels. (trunk r60278)
svn:revision:60508
svn:branch:RELEASE
svn:account:starseeker
2014-05-06 21:22:26 +00:00
Clifford Yapp 518f128c69 Add a dialog allowing the user to manually set the view center to rtwizard's View menu (user requested feature, merged from trunk r60274).
svn:revision:60507
svn:branch:RELEASE
svn:account:starseeker
2014-05-06 21:16:50 +00:00
Clifford Yapp 2e740ec95c It looks like the default initial rtwizard window size wasn't quite large enough for the contents, which resulted in the buttons being compressed (apparently they are first in the 'we have to make something smaller' list). Use an iniital size large enough to avoid widget compression - change is due to user request. (fix merged from trunk r60273).
svn:revision:60506
svn:branch:RELEASE
svn:account:starseeker
2014-05-06 21:13:43 +00:00
Christopher Sean Morrison be40bdae06 merge r60458 into RELEASE from trunk, pulling the blatant 1-char affinity bug fix
svn:revision:60501
svn:branch:RELEASE
svn:account:brlcad
2014-05-06 16:08:49 +00:00
Christopher Sean Morrison 67cde43115 merge r60489 from trunk to remove inline (wasn't intentional)
svn:revision:60496
svn:branch:RELEASE
svn:account:brlcad
2014-05-05 20:54:32 +00:00
Christopher Sean Morrison a24dad686e merge 60491 from trunk noting improved grazing hit behavior
svn:revision:60492
svn:branch:RELEASE
svn:account:brlcad
2014-05-05 19:09:53 +00:00
848 changed files with 37911 additions and 62482 deletions
+4
View File
@@ -0,0 +1,4 @@
/bin
/lib
/build
/testing
+33 -1
View File
@@ -279,6 +279,7 @@ Schueler, Betty J.
Edwards, Eric
SURVICE Engineering, Inc.
Open Source (Doc Camp)
Kregel, Dwayne
SURVICE Engineering, Inc.
@@ -334,6 +335,37 @@ 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)
@@ -762,7 +794,7 @@ nicknames huskmate13
2014 January
Open Source
Gustave Granroth
Granroth, Gustave
2014 May
Open Source
+12 -5
View File
@@ -163,7 +163,7 @@ infrared & shapefactor tools
misc tools
fix_polysolids' : obsolete primitive
remapid : superseded by reid+remat
buffer : unnecesary network/stream buffering tool
buffer : unnecessary network/stream buffering tool
hex : superseded by hexdump
Removed as part of distillation effort [deprecated 7.26]
include/bu/ptbl.h
@@ -246,8 +246,6 @@ include/raytrace.h librt
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]
@@ -394,7 +392,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()); [deprecated 7.16]
bu_argv0() -> bu_basename(bu_argv0_full_path(), NULL) [deprecated 7.16]
include/dm_color.h
dm_color.h -> dm.h [deprecated 7.14]
include/fb.h
@@ -424,7 +422,7 @@ mged
SGI-specific tools
pl-sgi -> pl-fb [deprecated 7.16]
src/gtools
g_[toolname] -> g[toolname] [deprecated 7.14]
g_diff, g_lint, g_qa, g_transfer -> gdiff, glint, gqa, gtransfer [deprecated 7.14]
src/librt/cmd.c
rt_split_cmd() -> bu_argv_from_string() [deprecated 7.12]
any-png.sh
@@ -1210,3 +1208,12 @@ 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]
+112 -74
View File
@@ -584,29 +584,45 @@ endif(_orig_lang)
# generated packages, the resulting packages may behave badly when installed.
# In particular, RPM packages may improperly reset permissions on core
# directories such as /usr.
macro(CHECK_UMASK umask_val status_var)
function(check_umask umask_val status_var)
string(REGEX REPLACE "[^x]" "" umask_x "${umask_val}")
string(REGEX REPLACE "[^r]" "" umask_r "${umask_val}")
string(LENGTH "${umask_r}" UMASK_HAVE_R)
set(${status_var} 0)
set(${status_var} 0 PARENT_SCOPE)
if(UMASK_HAVE_R AND "${umask_x}" STREQUAL "xxx")
set(${status_var} 1)
set(${status_var} 1 PARENT_SCOPE)
endif(UMASK_HAVE_R AND "${umask_x}" STREQUAL "xxx")
endmacro(CHECK_UMASK)
# Note - umask is not always an executable, so we can't use find_program
# to determine whether the umask check is appropriate.
IF(NOT WIN32)
exec_program(umask ARGS -S OUTPUT_VARIABLE umask_curr)
endfunction(check_umask)
# Note - umask is not always an executable, so find_program wont' necessarily
# determine whether the umask check is appropriate. If we don't find an
# executable, follow up to see if we can use sh to get the info.
find_program(UMASK_EXEC umask)
mark_as_advanced(UMASK_EXEC)
if(NOT UMASK_EXEC)
# If we don't have a umask cmd, see if sh -c "umask -S" works
execute_process(COMMAND sh -c "umask -S" OUTPUT_VARIABLE umask_out)
# Check if we've got something that looks like a umask output
if("${umask_out}" MATCHES "^u=.*g=.*o=.*")
set(UMASK_EXEC sh)
set(UMASK_EXEC_ARGS -c "umask -S")
endif("${umask_out}" MATCHES "^u=.*g=.*o=.*")
else(NOT UMASK_EXEC)
set(UMASK_EXEC_ARGS -S)
endif(NOT UMASK_EXEC)
if(UMASK_EXEC)
execute_process(COMMAND ${UMASK_EXEC} ${UMASK_EXEC_ARGS} OUTPUT_VARIABLE umask_curr)
string(STRIP "${umask_curr}" umask_curr)
CHECK_UMASK("${umask_curr}" UMASK_OK)
if (NOT UMASK_OK)
check_umask("${umask_curr}" UMASK_OK)
if(NOT UMASK_OK)
message(" ")
message(WARNING "umask is set to ${umask_curr} - this setting is not recommended if one of the goals of this build is to generate packages. Use 'umask 022' for improved package behavior.")
if(SLEEP_EXEC)
execute_process(COMMAND ${SLEEP_EXEC} 1)
endif(SLEEP_EXEC)
endif (NOT UMASK_OK)
ENDIF(NOT WIN32)
endif(NOT UMASK_OK)
endif(UMASK_EXEC)
#---------------------------------------------------------------------
# Unfortunately, CMake doesn't give you variables with current day,
@@ -652,9 +668,14 @@ if(CMAKE_CONFIGURATION_TYPES AND NOT "${CMAKE_CONFIGURATION_TYPES}" STREQUAL "De
endif(CMAKE_CONFIGURATION_TYPES AND NOT "${CMAKE_CONFIGURATION_TYPES}" STREQUAL "Debug;Release")
#---------------------------------------------------------------------
# We want to check /usr/local by default, so add it
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} /usr/local)
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} /usr/local/include)
# We want to check /usr/local by default, so add it if it exists
if (IS_DIRECTORY /usr/local)
set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} /usr/local)
if (IS_DIRECTORY /usr/local/include)
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} /usr/local/include)
include_directories(AFTER SYSTEM /usr/local/include)
endif (IS_DIRECTORY /usr/local/include)
endif (IS_DIRECTORY /usr/local)
#---------------------------------------------------------------------
@@ -1560,8 +1581,21 @@ else()
else("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
CHECK_C_FLAG("std=gnu89")
endif("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
CHECK_CXX_FLAG("std=gnu++98")
CHECK_CXX_FLAG("std=gnu++11" VARS CXX11_FLAG)
if(NOT CXX11_FLAG)
CHECK_CXX_FLAG("std=gnu++0x" VARS CXX11_FLAG)
if(NOT CXX11_FLAG)
CHECK_CXX_FLAG("std=c++11" VARS CXX11_FLAG)
if(NOT CXX11_FLAG)
CHECK_CXX_FLAG("std=c++0x" VARS CXX11_FLAG)
if(NOT MSVC AND NOT CXX11_FLAG)
message(WARNING "No working C++11 flag found.")
endif(NOT MSVC AND NOT CXX11_FLAG)
endif(NOT CXX11_FLAG)
endif(NOT CXX11_FLAG)
endif(NOT CXX11_FLAG)
endif()
# TODO - should be using this with MSVC, but it breaks the BUILD_SLEEP
# try_compile below with errors that appear to be coming from Windows
# headers??
@@ -1976,8 +2010,9 @@ BRLCAD_INCLUDE_FILE(termios.h HAVE_TERMIOS_H)
BRLCAD_INCLUDE_FILE(termlib.h HAVE_TERMLIB_H)
BRLCAD_INCLUDE_FILE(tinfo.h HAVE_TINFO_H)
BRLCAD_INCLUDE_FILE(ulocks.h HAVE_ULOCKS_H)
BRLCAD_INCLUDE_FILE(uuid.h HAVE_UUID_H) # for uuid_generate() on BSD
BRLCAD_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
BRLCAD_INCLUDE_FILE(uuid/uuid.h HAVE_UUID_UUID_H) # for uuid_generate() on Mac & Linux */
BRLCAD_INCLUDE_FILE(uuid/uuid.h HAVE_UUID_UUID_H) # for uuid_generate() on Mac & Linux
BRLCAD_INCLUDE_FILE(windows.h HAVE_WINDOWS_H) # for QueryPerformanceCounter() on Windows
# C++
@@ -2818,8 +2853,6 @@ if(NOT BRLCAD_IS_SUBBUILD)
configure_file("${BRLCAD_CMAKE_DIR}/source_archive_setup.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/source_archive_setup.cmake" @ONLY)
option(BRLCAD_VERSIONED_RPM_NAME "Incorporate BRL-CAD version into RPM package name" OFF)
mark_as_advanced(BRLCAD_VERSIONED_RPM_NAME)
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "BRL-CAD - a powerful cross-platform open source solid modeling system")
set(CPACK_PACKAGE_VENDOR "BRL-CAD Development Team")
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README")
@@ -2827,65 +2860,67 @@ if(NOT BRLCAD_IS_SUBBUILD)
set(CPACK_PACKAGE_VERSION_MAJOR ${BRLCAD_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${BRLCAD_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${BRLCAD_VERSION_PATCH})
if(BRLCAD_VERSIONED_RPM_NAME)
set(CPACK_RPM_PACKAGE_NAME "BRL-CAD_${BRLCAD_VERSION}")
endif(BRLCAD_VERSIONED_RPM_NAME)
if(UNIX)
set(CPACK_STRIP_FILES TRUE)
endif(UNIX)
# By default, we want debugging information
set(CPACK_STRIP_FILES FALSE)
if(UNIX)
# If we're not on Windows, set the install prefix and create
# TGZ and TBZ2 packages by default
if(NOT WIN32)
set(CPACK_PACKAGING_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
endif(UNIX)
if(UNIX AND NOT APPLE)
set(CPACK_GENERATOR TGZ TBZ2)
endif(NOT WIN32)
find_program(RPMBUILD_EXEC rpmbuild)
mark_as_advanced(RPMBUILD_EXEC)
if(RPMBUILD_EXEC)
# Since RPM packages present a particular problem with bad umask
# settings and RPM package building is enabled, raise the issue again
# with a longer wait time.
if (NOT UMASK_OK)
message(" ")
message(WARNING "umask is set to ${umask_curr} and RPM package building is enabled - this is not a 'standard' umask setting for BRL-CAD RPM packages. Double check that these umask permissions will have the desired results when installed - RPM packages can impact permissions on system directories such as /usr\nIf the umask settings need to be changed, it is recommended that the build directory be cleared and cmake re-run after the umask setting has been changed.")
if(SLEEP_EXEC)
execute_process(COMMAND ${SLEEP_EXEC} 5)
endif(SLEEP_EXEC)
endif (NOT UMASK_OK)
# If we have RPMBUILD and it's not explicitly disabled, assume we're making an RPM.
find_program(RPMBUILD_EXEC rpmbuild)
mark_as_advanced(RPMBUILD_EXEC)
if(RPMBUILD_EXEC AND NOT CPACK_RPM_SKIP)
set(CPACK_GENERATOR ${CPACK_GENERATOR} RPM)
set(CPACK_RPM_PACKAGE_LICENSE "LGPL 2.1")
set(CPACK_RPM_PACKAGE_GROUP "Applications/Engineering")
#set(CPACK_RPM_PACKAGE_NAME "brlcad_${BRLCAD_VERSION_MAJOR}_${BRLCAD_VERSION_MINOR}_${BRLCAD_VERSION_PATCH}")
#if(EXISTS /etc/redhat-release)
# file(READ /etc/redhat-release REDHAT_RELEASE)
# string(REGEX MATCH "[0-9]+" REDHAT_VERSION ${REDHAT_RELEASE})
# string(REGEX MATCH "Enterprise Linux" LINUX_DIST_TYPE ${REDHAT_RELEASE})
# if(LINUX_DIST_TYPE)
# set(LINUX_DIST_TYPE "el")
# else(LINUX_DIST_TYPE)
# set(LINUX_DIST_TYPE "rh")
# endif(LINUX_DIST_TYPE)
# set(CPACK_RPM_PACKAGE_RELEASE 1.${LINUX_DIST_TYPE}${REDHAT_VERSION})
#else(EXISTS /etc/redhat-release)
# #set(CPACK_RPM_PACKAGE_RELEASE 2)
#endif(EXISTS /etc/redhat-release)
endif(RPMBUILD_EXEC)
# Build an RPM by default if we have the tool. Out of the box, just
# build a "vanilla" RPM. For situations where we want more detail
# and versioning of the RPM, set the variable CMAKE_RPM_VERSION
# to the numerical "version" of the RPM: 1, 2, etc..
# Since RPM packages present a particular problem with bad umask
# settings and RPM package building is enabled, raise the issue again
# with a longer wait time.
if (NOT UMASK_OK)
message(" ")
message(WARNING "umask is set to ${umask_curr} and RPM package building is enabled - this is not a 'standard' umask setting for BRL-CAD RPM packages. Double check that these umask permissions will have the desired results when installed - RPM packages can impact permissions on system directories such as /usr\nIf the umask settings need to be changed, it is recommended that the build directory be cleared and cmake re-run after the umask setting has been changed.")
if(SLEEP_EXEC)
execute_process(COMMAND ${SLEEP_EXEC} 5)
endif(SLEEP_EXEC)
endif (NOT UMASK_OK)
set(CPACK_GENERATOR ${CPACK_GENERATOR} RPM)
set(CPACK_RPM_PACKAGE_LICENSE "LGPL 2.1")
set(CPACK_RPM_PACKAGE_GROUP "Applications/Engineering")
set(CPACK_RPM_PACKAGE_ARCHITECTURE "${CMAKE_SYSTEM_PROCESSOR}")
if(NOT CPACK_RPM_PACKAGE_RELEASE)
set(CPACK_RPM_PACKAGE_RELEASE 1)
endif(NOT CPACK_RPM_PACKAGE_RELEASE)
if(${CMAKE_WORD_SIZE} MATCHES "32BIT" AND ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
set(CPACK_PACKAGE_FILE_NAME "BRL-CAD_${BRLCAD_VERSION}_x86_${CMAKE_SYSTEM_NAME}_${CPACK_RPM_PACKAGE_RELEASE}")
else(${CMAKE_WORD_SIZE} MATCHES "32BIT" AND ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
set(CPACK_PACKAGE_FILE_NAME "BRL-CAD_${BRLCAD_VERSION}_${CMAKE_SYSTEM_PROCESSOR}_${CMAKE_SYSTEM_NAME}_${CPACK_RPM_PACKAGE_RELEASE}")
endif(${CMAKE_WORD_SIZE} MATCHES "32BIT" AND ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
else(UNIX AND NOT APPLE)
set(CPACK_PACKAGE_FILE_NAME "BRL-CAD_${BRLCAD_VERSION}_${CMAKE_SYSTEM_PROCESSOR}")
endif(UNIX AND NOT APPLE)
if(CPACK_RPM_VERSION)
set(CPACK_RPM_PACKAGE_NAME "brlcad_${BRLCAD_VERSION_MAJOR}_${BRLCAD_VERSION_MINOR}_${BRLCAD_VERSION_PATCH}")
# If we've got a Redhat release, include some info about the specific release in the name.
# Otherwise, just go generic.
if(EXISTS /etc/redhat-release)
file(READ /etc/redhat-release REDHAT_RELEASE)
string(REGEX MATCH "[0-9]+" REDHAT_VERSION ${REDHAT_RELEASE})
string(REGEX MATCH "Enterprise Linux" LINUX_DIST_TYPE ${REDHAT_RELEASE})
if(LINUX_DIST_TYPE)
set(LINUX_DIST_TYPE "el")
else(LINUX_DIST_TYPE)
set(LINUX_DIST_TYPE "rh")
endif(LINUX_DIST_TYPE)
set(CPACK_RPM_PACKAGE_RELEASE _${CPACK_RPM_VERSION}.${LINUX_DIST_TYPE}${REDHAT_VERSION})
else(EXISTS /etc/redhat-release)
set(CPACK_RPM_PACKAGE_RELEASE _${CPACK_RPM_VERSION})
endif(EXISTS /etc/redhat-release)
endif(CPACK_RPM_VERSION)
endif(RPMBUILD_EXEC AND NOT CPACK_RPM_SKIP)
if(${CMAKE_WORD_SIZE} MATCHES "32BIT" AND ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
set(CPACK_PACKAGE_FILE_NAME "BRL-CAD_${BRLCAD_VERSION}_${CMAKE_SYSTEM_NAME}_x86${CPACK_RPM_PACKAGE_RELEASE}")
else(${CMAKE_WORD_SIZE} MATCHES "32BIT" AND ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
set(CPACK_PACKAGE_FILE_NAME "BRL-CAD_${BRLCAD_VERSION}_${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR}${CPACK_RPM_PACKAGE_RELEASE}")
endif(${CMAKE_WORD_SIZE} MATCHES "32BIT" AND ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64")
if(WIN32)
set(CPACK_GENERATOR NSIS)
@@ -2905,10 +2940,12 @@ if(NOT BRLCAD_IS_SUBBUILD)
set(CPACK_WIX_UI_BANNER "${CMAKE_SOURCE_DIR}/misc/wix/brlcad_banner.bmp")
set(CPACK_WIX_UI_DIALOG "${CMAKE_SOURCE_DIR}/misc/wix/brlcad_dialog.bmp")
endif(BRLCAD_ENABLE_WIX)
if(CMAKE_CL_64)
set(CPACK_PACKAGE_FILE_NAME "BRL-CAD_${BRLCAD_VERSION}_win64")
else(CMAKE_CL_64)
set(CPACK_PACKAGE_FILE_NAME "BRL-CAD_${BRLCAD_VERSION}_win32")
endif(CMAKE_CL_64)
endif(WIN32)
if(CMAKE_CL_64)
set(CPACK_PACKAGE_FILE_NAME "BRL-CAD_${BRLCAD_VERSION}_x64")
endif(CMAKE_CL_64)
set(CPACK_SOURCE_GENERATOR TGZ TBZ2 ZIP)
set(CPACK_SOURCE_PACKAGE_FILE_NAME "brlcad-${BRLCAD_VERSION}")
@@ -2962,6 +2999,7 @@ if(NOT BRLCAD_IS_SUBBUILD)
# CREATE_DISTCHECK(TARGET_SUFFIX CMAKE_OPTS source_dir build_dir install_dir [custom_template])
CREATE_DISTCHECK(default_build_type "-DBRLCAD_BUNDLED_LIBS=AUTO" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install")
CREATE_DISTCHECK(no_tk "-DCMAKE_BUILD_TYPE=Debug -DBRLCAD_BUNDLED_LIBS=BUNDLED -DBRLCAD_ENABLE_TK=OFF" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install")
CREATE_DISTCHECK(no_strict "-DCMAKE_BUILD_TYPE=Debug -DBRLCAD_BUNDLED_LIBS=BUNDLED -DBRLCAD_ENABLE_STRICT=OFF" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install")
CREATE_DISTCHECK(autodetect_debug "-DCMAKE_BUILD_TYPE=Debug -DBRLCAD_BUNDLED_LIBS=AUTO" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install")
CREATE_DISTCHECK(autodetect_release "-DCMAKE_BUILD_TYPE=Release -DBRLCAD_BUNDLED_LIBS=AUTO" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install")
CREATE_DISTCHECK(odd_pathnames "-DCMAKE_BUILD_TYPE=Debug -DBRLCAD_BUNDLED_LIBS=BUNDLED" "1 Odd_ source dir ++" "1 Odd_ build dir ++" "1 Odd_ install dir ++")
+27 -27
View File
@@ -657,7 +657,7 @@
* [r67988] src/librt/primitives/nmg/nmg_misc.c:
this logic is quite complex. possibly not a proper fix, but we
were looping infinitely over an edgeuse list when trying to close
it when working with fuzing fewer than 3 edges. this successfull
it when working with fuzing fewer than 3 edges. this successful
avoids infinite looping by removing the edge from our remaining
edge list once we tried to process it. problem observed on
patch-g with ch53 model.
@@ -828,7 +828,7 @@
2016-05-24 18:54 starseeker
* [r67956] NEWS, src/libged/clone.c:
If you accidently tell clone to copy 0 objects it crashed. Return
If you accidentally tell clone to copy 0 objects it crashed. Return
RT_DIR_NULL instead.
2016-05-24 18:06 bob1961
@@ -1841,7 +1841,7 @@
src/shapes/wire.c, src/util/azel.c, src/util/bary.c,
src/util/double-asc.c, src/util/gencolor.c:
remove the various 'program continues running statements. while
some that are preceeded by a usage statement may be confusing
some that are preceded by a usage statement may be confusing
when the program doesn't exit, it's similarly redundant to tell
them that the program is running when that is evident (by the
program still running). maybe need to review these to see why
@@ -2752,7 +2752,7 @@
src/librt/search.c, src/librt/search.h:
Add -size and -fsize filters to the search command. The -size
option will filter based on individual object sizes. -fsize, by
comparison, filters based on the 'full' defintion of the object
comparison, filters based on the 'full' definition of the object
based on its hierarchy - i.e., for a comb, it will filter based
on that combs size summed with the sizes of all the objects below
the comb in the hierarchy. These options are intended to help
@@ -3704,7 +3704,7 @@
2016-03-24 16:26 starseeker
* [r67487] src/brlman/CMakeLists.txt, src/brlman/brlman.c:
Checkpoint work on C application verison of brlman
Checkpoint work on C application version of brlman
2016-03-24 15:11 brlcad
@@ -5936,7 +5936,7 @@
2016-03-01 11:40 d_rossberg
* [r67202] regress/icv/CMakeLists.txt:
there is no m35.bw.tbz2 (should it be created/commited in?)
there is no m35.bw.tbz2 (should it be created/committed in?)
2016-03-01 10:09 d_rossberg
@@ -6424,7 +6424,7 @@
2016-02-24 20:47 starseeker
* [r67130] src/libtclcad/tclcad_obj.c:
Not sure if argv[2] is persistant in memory for all uses of
Not sure if argv[2] is persistent in memory for all uses of
go_edited_paths entries - make a copy of the key to be sure and
free it when the values are freed.
@@ -6970,7 +6970,7 @@
* [r67043] doc/trunk_heirarchy.org, sh/CMakeLists.txt,
sh/fs2org.sh:
add script to generate an emacs org mode file representing a file
heirarchy along with the output for trunk
hierarchy along with the output for trunk
2016-02-03 18:57 brlcad
@@ -10597,7 +10597,7 @@
src/tclscripts/helpcomm.tcl, src/tclscripts/helplib.tcl,
src/tclscripts/hoc.tcl, src/tclscripts/igraph/GraphEditor.tcl,
src/tclscripts/igraph/igraph.tcl,
src/tclscripts/lib/Accordian.tcl,
src/tclscripts/lib/Accordion.tcl,
src/tclscripts/lib/CellPlot.tcl,
src/tclscripts/lib/ColorEntry.tcl,
src/tclscripts/lib/ComboBox.tcl, src/tclscripts/lib/Command.tcl,
@@ -11825,7 +11825,7 @@
2015-11-18 15:52 starseeker
* [r66589] include/bu/path.h:
Checkpoint glob work so it doesn't accidently get committed with
Checkpoint glob work so it doesn't accidentally get committed with
other stuff.
2015-11-18 15:30 starseeker
@@ -12645,7 +12645,7 @@
per line and a label with a convention implied for each label
type (e.g., PLATE was n planar points that formed a closed loop
followed by a triple-repeated depth point). to be really useful,
this interface needed to be integrated during aquisition (e.g.,
this interface needed to be integrated during acquisition (e.g.,
with mged running on a tablet) so that error points could be
deleted (instead of having a delete/undo convention in the point
stream) and progress viewed interactively.
@@ -14089,7 +14089,7 @@
2015-09-15 16:18 brlcad
* [r66224] CMakeLists.txt:
sync ; removal, although suprisingly worked
sync ; removal, although surprisingly worked
2015-09-15 16:17 brlcad
@@ -16751,7 +16751,7 @@
* [r65753] src/libanalyze/find_subtracted_shapes.cpp,
src/libanalyze/util.cpp:
This undoubtely needs a lot of refinement, but get a
This undoubtedly needs a lot of refinement, but get a
subtract/no-subtract decision from the ray tracing. Need more
context - for example, need to distinguish when a solid in a
candidate is removing positive material it shouldn't vs.
@@ -17280,7 +17280,7 @@
db/nist/pdf/8.pdf, db/nist/pdf/9.pdf:
NIST has released a number of additional public domain NURBS CAD
files - incorporate into build. The 7-10 assembly files are
currenly too slow as STEP files, so they've been added as a
currently too slow as STEP files, so they've been added as a
single 3dm file which attemps to place them in assembly
positions.
@@ -19734,7 +19734,7 @@
2015-06-15 00:54 starseeker
* [r65292] src/other/libz/CMakeLists.txt:
Don't add zlib1.rc if we're doing the custom command verison.
Don't add zlib1.rc if we're doing the custom command version.
2015-06-15 00:40 starseeker
@@ -23619,7 +23619,7 @@
Code up a proposed replacement for icv_guess_file_format with two
more special purpose functions. It seems cleaner to me to have
the image type identification and the path scrubber as separate
API components, but maybe all possibile applications will want
API components, but maybe all possible applications will want
the filename extracted - needs discussion.
2015-04-27 16:39 starseeker
@@ -23633,7 +23633,7 @@
* [r64736] include/bu/path.h, src/libbu/path.c,
src/libbu/tests/CMakeLists.txt,
src/libbu/tests/bu_path_component.c:
Add the ability to get protocal and address components from
Add the ability to get protocol and address components from
paths, based on the ':' character.
2015-04-27 14:18 carlmoore
@@ -25264,7 +25264,7 @@
functionality (like hostname reporting). plus, they introduce a
new convention in the caller code that complicates usage (HAVE_*
is already supposed to imply whether it's available for use,
i.e., working). we may need to introduce HAVE_DECL_* ammendments
i.e., working). we may need to introduce HAVE_DECL_* amendments
where an interface is available but not declared due to mode of
compilation.
@@ -25306,7 +25306,7 @@
* [r64568] misc/CMake/DiffCache.cmake:
The issue of reconfiguration pops up every now and then - write
out the reaons to a text file when it happens rather than
out the reasons to a text file when it happens rather than
requiring the dev to know to go into DiffCache.cmake and
uncomment the message lines.
@@ -30913,7 +30913,7 @@
* [r63660] src/libged/bot.c:
Checkpoint work done to add a chull option to the bot command
before I accidently commit it or revert it...
before I accidentally commit it or revert it...
2014-12-10 18:58 starseeker
@@ -33047,7 +33047,7 @@
* [r63151] include/bu/defines.h, include/vmath.h:
move INFINITY from libbu to libbn (vmath.h more specifically)
where it seems more apropriate. reviewing all the uses, they
where it seems more appropriate. reviewing all the uses, they
pertain to vmath in nearly all instances.
2014-10-10 19:59 brlcad
@@ -33350,7 +33350,7 @@
2014-10-03 15:31 brlcad
* [r63102] src/burst/grid.c:
use more robust VNEAR_EQUAL instead of the custom and mispelled
use more robust VNEAR_EQUAL instead of the custom and misspelled
'aproximation'
2014-10-03 15:29 brlcad
@@ -36344,7 +36344,7 @@
related to lower-level database handling than it is ray tracing
(arguably should go even lower level but we don't currently have
anything in-between and libbu feels too low. resort the unicode
handling in order of likely occurence.
handling in order of likely occurrence.
2014-09-15 17:46 brlcad
@@ -36515,7 +36515,7 @@
Adding this work for two reasons - 1) even though it is not a
major functionality boost, it does have the potential to collapse
the ogl and wgl dm/fb systems into a single, portable dm/fb and
2) it makes other efforts to actually use the scenegraph simplier
2) it makes other efforts to actually use the scenegraph simpler
from a changeset management perspective. Controlled by the
BRLCAD_ENABLE_OSG flag, which is off by default.
@@ -40400,7 +40400,7 @@
2014-07-24 14:04 vladbogo
* [r61909] src/libfb/if_qt.cpp:
Fixed the display problem that occured when the window wasn't a
Fixed the display problem that occurred when the window wasn't a
square.
2014-07-23 21:55 carlmoore
@@ -40683,7 +40683,7 @@
* [r61840] include/fb.h, src/libdm/dm-qt.cpp, src/libfb/if_qt.cpp:
Implemented a first version of the qt_open_existing function -
raytraced content can be displayed but it dissapears when
raytraced content can be displayed but it disappears when
raytracing is done.
2014-07-18 17:44 carlmoore
@@ -41167,7 +41167,7 @@
* [r61668] src/librt/primitives/brep/brep.cpp:
In crack checking code added additional handling for faces that
are truely adjacent in the BREP topology. Noticed crack issues
are truly adjacent in the BREP topology. Noticed crack issues
when dealing with tiny geometries where near misses with
non-adjacent faces more frequent.
+17 -14
View File
@@ -1401,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/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH"
# create binary dirs (as needed)
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"
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"
# upload source dist and any binaries
scp brlcad-$MAJOR.$MINOR.$PATCH* "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
scp brlcad-$MAJOR.$MINOR.$PATCH* "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
# extract and upload release notes to source dir
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
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
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/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/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/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/."
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/."
# NON-AUTO: Be sure to mark binaries as default download, then
# close shell session
@@ -1456,6 +1456,9 @@ 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.
-10
View File
@@ -546,16 +546,6 @@ first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
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
+87 -10
View File
@@ -13,25 +13,71 @@ changes made. See document footer for additional details.
--- 2016-07-XX Release 7.26.2 ---
----------------------------------------------------------------------
* fixed rt support for lights created prior to rel 6.0 - Sean Morrison
* fixed infinite loop bug in when using shadow lights - Sean Morrison
* removed man pages: erase_all, export_body, vrmgr, dall - Cliff Yapp
* added manual pages for the 'brlman' and 'man' commands - Cliff Yapp
* improved gdiff default grid spacing and tolerancing - Cliff Yapp
* updated brlman to support browsing all page categories - Cliff Yapp
* added support for .rtwizardrc configuration file - Cliff Yapp
* renamed MGED gdiff grid spacing -t option to -g - Cliff Yapp
* updated MGED gdiff default drawing options to -l -r - Cliff Yapp
* removed MGED gdiff -R option, now default behavior - Cliff Yapp
* replaced obsolete 'g_diff' manual page with 'gdiff' - Cliff Yapp
* improved 'keep' error message when file is not created - Cliff Yapp
* improved rtwizard window sizing and "RtWizard" titling - Cliff Yapp
* brep command attaches .brep suffix instead of _brep - Sean Morrison
* changed ogl & wgl framebuffer delayed write behavior - Sean Morrison
* upgraded libpng to version 1.6.23 - Cliff Yapp
* upgraded freetype to version 2.6.5 - Cliff Yapp
* upgraded zlib to version 1.2.8 - Cliff Yapp
* fix rtedge foreground/background color options - Jon Engbert
* support rt -C colors specified as 0-255 or 0.0-1.0 - Jon Engbert
----------------------------------------------------------------------
--- 2016-06-XX Release 7.26.0 ---
--- 2016-08-08 Release 7.26.0 ---
----------------------------------------------------------------------
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).
This major release of BRL-CAD culminates several years of development
effort to provide robust explicit boundary representation (BREP)
Non-uniform Rational Basis Spline (NURBS) import and ray tracing
analysis support. Compared to previous polygonal mesh (BoT) methods,
NURBS offer superior interoperability with other CAD systems, faithful
shape-preserving import, and significantly reduced model sizes. NURBS
may be imported from the ISO STEP (AP203) and Rhino 3DM file formats,
both with improved hierarchy preservation and entity support.
Unprecedented in BRL-CAD's history, this release initiates steps to
significantly reduce complexity and improve usability. Many features
are being consolidated, reorganized, and removed via BRL-CAD's
deprecation process. There are widespread documentation system
enhancements including new manual pages, improved command usage,
better help facilities, and more.
This release introduces the 'gcv' and 'icv' tools for geometry and
image conversion respectively. These plugin-architecture tools are
intended to eventually consolidate and replace all of BRL-CAD's
conversion and processing functionality into an easy universal
interface for users and application developers. GCV currently
supports import and export of STL, 3DM, OBJ, VRML, and FASTGEN
geometry as well as mesh decimation, facetization, and solidity
testing. The new FASTGEN exporter implements extensive compatibility
feature mapping for round-trip geometry conversion.
Ray tracing performance on Windows is vastly improved on symmetric
multiprocessing (SMP) multicore and multiple CPU systems. Implemented
as 'datum' objects, BRL-CAD provides new modeling support for
reference points, lines (axes), and planes. Major features still
under experimental development include NURBS Boolean evaluation, a new
marching cubes method for polygonal mesh export, rigging joints for
constrained geometry articulation, and an OpenCL-accelerated high
performance ray tracing pipeline.
* mass-deprecation of 121 command-line utilities - BRL-CAD Developers
* fixed bad args crash in metaball 'in' command - Cliff Yapp
* added manual page for lt comb child listing command - Cliff Yapp
* added lt -c option for specifying separation character - Bob Parker
* 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
@@ -48,6 +94,16 @@ geometry (e.g., primitives with CSG).
* 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
@@ -65,6 +121,7 @@ geometry (e.g., primitives with CSG).
* 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
@@ -76,6 +133,7 @@ geometry (e.g., primitives with CSG).
* 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
@@ -87,15 +145,19 @@ geometry (e.g., primitives with CSG).
* 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 help option consistency across numerous tools - Carl Moore
* improved command option and manual page consistency - Carl Moore
* added prefatory FASTGEN4 geometry export support - Jon Engbert
* added FASTGEN4 illegal thickness CCONE1 entity import - Cliff Yapp
* improved help message for 'tire' command - Cliff Yapp, Carl Moore
* improved option parsing and output options for gencolor - Carl Moore
* fixed saveview usage help string and running from archer - Nick Reed
* fixed and improved killtree man page - Nick Reed
* fixed composition bugs in pixmatte and pixmerge - Carl Moore
* fixed definition of "light year" in unit conversions - Cliff Yapp
* fixed duplicate name errors in dbconcat - Daniel Roßberg
* modernized documents and improved infrastructure - Hitesh Sofat
* added mirroring support for hrt primitive objects - Isaac Kamga
* added manual page documenting the STEP geometry format - Cliff Yapp
* ported the mged Overlap Tool to Windows - Sean Morrison
* improved NURBS prep performance for UV-remapped surfaces - Nick Reed
* fixed dbconcat -c crash when color table does not exist - Nick Reed
@@ -104,6 +166,7 @@ geometry (e.g., primitives with CSG).
* 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
@@ -129,12 +192,15 @@ geometry (e.g., primitives with CSG).
* 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
@@ -152,22 +218,33 @@ geometry (e.g., primitives with CSG).
* 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
----------------------------------------------------------------------
+61 -76
View File
@@ -18,34 +18,40 @@ tasks as they are completed.
THESE TASKS SHOULD HAPPEN BEFORE THE NEXT RELEASE
-------------------------------------------------
* quick check of CHANGES to make sure user-vis obsoletions are in NEWS
* add regression test for directional light sources
* fix regressions in lc -d and -s options
* update astyle
* regressed behavior in mged and archer: they seem to be defaulting
objects to black instead of white/gray. wireframes and default
black-background rendering make newly created objects practically
invisible.
* bundle primary rays in rt front end into postage stamps, shoot via
rt_shootrays(), modify to pass all rays down through the spatial
partitioning simultaneously
* check these commits for documentation:
58415 - NEWS, attributes are now case-insensitive (test: any or just standard ones?)
58147 - NEWS, improved search command documentation examples
58146 - NEWS, improved archer initialization, removed startup flashing
58145 - NEWS, minor but technically user visible and potentially significant if the assumptions made are incorrect (improved tire command usage statement)
58254 - NEWS, fixed bug you say? what bug?
58325 - NEWS, improved v5 specification formatting, added timestamp proposal
64637 - NEWS, almost certainly fixed mysterious errors during dbconcat and db_opens with duplicate names found
58475 - AUTHORS if user identified the fix (not just the bug), NEWS if g-step considered published
58594, 58608 - AUTHORS for mged tutorial fixes (doc or code contrib section), NEWS if user-vis
61168 - NEWS, new param option to search
64314 - NEWS, announce the new doc
63132 - NEWS, expanded rtedge usage
* create a catalog of all possible entity types. including distinct
parameterizations with sufficient variety that conveys the object's
parameterization options (e.g. ell as sphere, flat disc, long spike,
etc.). this is necessarily defined per object type and possibly
programmable. see src/proc-db/csgbrep.cpp for a basic start.
create a BRL-CAD .g with all possible object types embedded.
integrate into testing.
* create a catalog of all possible/distinct/useful shader settings.
see regress/shaders.sh for a basic start.
* readd support for vrml v1 to g-vrml so that users can select whether
they want v2 (default) or previous v1 output format via a
command-line switch. see http://brlcad.svn.sf.net/viewvc/brlcad/brlcad/trunk/conv/g-vrml.c?view=diff&pathrev=22798&r1=16900&r2=16901
* reinstate 'stat' and search -size, see r67636 through r67646
THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
-------------------------------------------------------
* update astyle
* turn on Bullet code (simulate command) unconditionally
* metaball in command input needs sanity checks and better
validation.
* integrate gen-registered-attributes-html output into website
@@ -57,42 +63,42 @@ THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
$ /usr/brlcad/rel-7.18.0/bin/brlcad-config rt
-L/usr/brlcad/rel-7.18.0/lib -m64 -L/usr/local/lib64 -L/usr/local/lib -pipe -fno-strict-aliasing -fno-common -fexceptions -ggdb3 -D_FORTIFY_SOURCE=2 -O3 -w -L/usr/brlcad/rel-7.18.0/lib -lrt -lbn -lbu -ltcl8.5 -ldl -lm -lpng14 -lz -lc -lpthread -lregex -lsysv -lopenNURBS
* bu_*_argv -> bu_argv_*
* OpenCL for enhanced performance boolweave sorting
* obsd stack crashers
* create boolweave+boolfinal unit tests to validate weaving behavior
and performance.
* rt moss.g facetize rt bot bug
* make sure we can run db_dirbuild() multiple times without creating
duplicate entries.
* invoke graphical with console, play nicely
* heap unit test needs to actually compare performance against system
allocation, not just do some work
THESE ARE UNSCHEDULED BACKLOG TASKS
-----------------------------------
* define geometry URL and VFS behavior
* change _mged_ command prefix to a simple '.' prefix to hide/protect
the built-in commands.
* sync tgc/rec shot() behavior, sort results for proper normal.
inspect t62 grazing with r653,r735 (tgc on an arb8) looking at ae0,0
and z=1524 (was hit/overlap, now misses).
* reinstate 'stat' and search -size, see r67636 through r67646
* turn on Bullet code (simulate command) unconditionally
* create a BRL-CAD .g with all possible object types embedded. The
csgbrep command is a good starting point, but only about half of
them.
* bundle primary rays in rt front end into postage stamps, shoot via
rt_shootrays(), modify to pass all rays down through the spatial
partitioning simultaneously
* resolve bot bin sort optimization crash, disabled during release
* closing the graphics window brings down X11 on Mac due to a bad
context. fix or revert recent close window behavior.
* havoc.g s.nos5g reliably exhibits the grazing edge bug where only
one hit point is being returned. to reproduce:
e s.nos5g ; ae 35 25 ; units mm ; center 26912.4 7089.08 7168.96 ; nirt
* obsd stack crashers
THESE ARE UNSCHEDULED BACKLOG TASKS
-----------------------------------
* closing the graphics window brings down X11 on Mac due to a bad
context. fix or revert recent close window behavior.
* resolve bot bin sort optimization crash, disabled during release
* rt moss.g facetize rt bot bug
* evaluate OpenMesh (http://www.openmesh.org) and OpenFlipper
(http://www.openflipper.org) for smoothing, decimation, and
@@ -110,11 +116,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* implement unit tests for bu dirent / stat API
* OpenCL for enhanced performance boolweave sorting
* create boolweave+boolfinal unit tests to validate weaving behavior
and performance.
* convert src/util/terrain.c to src/shapes/terrain.c writing out the
datafile to a binunif along with a referencing dsp. perhaps add
command line option to skip .g to retain prior datafile capability.
@@ -295,15 +296,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* Document a CLI feature list (prioritized).
* create a catalog of all possible entity types. including distinct
parameterizations with sufficient variety that conveys the object's
parameterization options (e.g. ell as sphere, flat disc, long spike,
etc.). this is necessarily defined per object type and possibly
programmable. see src/proc-db/csgbrep.cpp for a basic start.
* create a catalog of all possible/distinct/useful shader settings.
see regress/shaders.sh for a basic start.
* high-performance VOL for medical data visualization. consider
leveraging OpenVDB, PCL, Paraview/VTK, etc.
@@ -337,6 +329,12 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
functions until it provides some clear advantage (e.g., portability,
performance, and/or maintainability).
* rename the "joint2" articulation command (possibly also rename the
"joint" command) worked on when joint objects were implemented.
joint2 interfaces with the old text-file based articulation
interface, but conceivably should get updated when joint objects can
describe everything in the old text files.
* create a joint articulation (manually is good, automatic is better)
for the tin woodsman so he can move his arms, legs, neck, and head.
@@ -367,12 +365,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* convert all calls to BU_SETJUMP/BU_UNSETJUMP into familiar try/catch
logic layout using if/else.
* heap unit test needs to actually compare performance against system
allocation, not just do some work
* make sure we can run db_dirbuild() multiple times without creating
duplicate entries.
* re-do the sh/enumerate.sh script for CMake
* get bu_extern out of bu/parse.h into its own header file.
@@ -573,9 +565,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
is causing ipathpos to get incremented to a number larger than the
number of objects in the full path it's supposed to be referencing.
* change _mged_ command prefix to a simple '.' prefix to hide/protect
the built-in commands.
* refactor rt_mirror (src/librt/primitives/mirror.c) into the functab
* refactor rt_functab accessors to go through an api call or calls so
@@ -746,9 +735,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* fix the "(type)(size_t)val" hacks (using ints like ptrs, etc.)
* Mac OS X mouse input binding problem seems to be back with rotations
stalling during interactive use.
* pixdiff reports bytes, but reports incorrect (off-by-one) bytes for
.bw input files. cause is due to tool assuming input is rgb triplets
(even though output is bytes, wtf?). should probably report pixels
@@ -929,10 +915,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* refactor mged's signal handling to make it possible to safely
interrupt long-running commands
* readd support for vrml v1 to g-vrml so that users can select whether
they want v2 (default) or previous v1 output format via a
command-line switch. see http://brlcad.svn.sf.net/viewvc/brlcad/brlcad/trunk/conv/g-vrml.c?view=diff&pathrev=22798&r1=16900&r2=16901
* make Mac OS X universal binaries actually work.
* fully implement analyze for all primitives
@@ -1368,7 +1350,9 @@ LIBGED
optionally list everything
* improve performance of these commands that seem to have exponential
cost: bot_split, killtree
cost: bot_split, killtree, and
make s sph; make a arb8; sed a; e a; tra 0 0 500; r hemi u s - a; tol norm 1 ; facetize hemi.bot hemi
# compared to tol norm 2, # triangles is up ~20% but facetize is >200%
* translate lc command to libged (discovered in Feb. 2015 to have already
been done -- need information regarding when this was done and committed).
@@ -1840,7 +1824,6 @@ The following binaries are not yet available on Windows. The reason
is identified in parentheses.
bombardier (possibly just a problem with the build logic)
burst (TERMLIB)
enigma (not ported)
fbcolor (TERMLIB)
fbed (TERMLIB)
@@ -1867,6 +1850,9 @@ missing on Windows due to needing lex.
CONVERTERS
----------
* add gcv support for the Microstation file format (DGN), probably
leveraging http://dgnlib.maptools.org/ (MIT-licensed)
* integrate the submitted x3d-g (Web3D, VRML successor) importer
(pending patch on sf)
@@ -2274,7 +2260,6 @@ DOCUMENTATION
archer
bombardier
brlman
damdf
dauto
dauto2
Vendored
-4
View File
@@ -130,10 +130,6 @@ do
shift;;
--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";
+1
View File
@@ -8,6 +8,7 @@ set(G_BENCHMARK_MODELS
)
set(G_SAMPLE_MODELS
aet.asc
axis.asc
boolean-ops.asc
castle.asc
+68
View File
@@ -0,0 +1,68 @@
title {Untitled BRL-CAD Database}
units mm
put {xyzringtrc.s} tgc V {0.31168735027313232421875 0.31356084346771240234375 0.2343517243862152099609375} H {-0.02296111360192298889160156 -0.02476786263287067413330078 0.03948847576975822448730469} A {-0.003937630914151668548583984 -0.02411045134067535400390625 -0.01741208322346210479736328} B {0.02662250958383083343505859 -0.01068659685552120208740234 0.008777192793786525726318359} C {-3.937628207495436072349548E-05 -0.0002411044843029230833053589 -0.0001741207961458712816238403} D {0.0002662249607965350151062012 -0.0001068659257725812494754791 8.77717902767471969127655E-05}
put {viewdirtrc.s} tgc V {0.08660250157117843627929688 0.08660250157117843627929688 0.08660250157117843627929688} H {-0.07794228941202163696289062 -0.07794228941202163696289062 -0.07794228941202163696289062} A {0 0.02828427031636238098144531 -0.02828427031636238098144531} B {0.03265986219048500061035156 -0.01632993109524250030517578 -0.01632993109524250030517578} C {0 0.000212132028536871075630188 -0.000212132028536871075630188} D {0.0002449489838909357786178589 -0.0001224744919454678893089294 -0.0001224744919454678893089294}
put {twistpanel.r} comb region yes tree {l twistpanel.c}
attr set {twistpanel.r} {color} {232/198/232} {shader} {glass {tr 0.6}} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
put {xyzringcut.c} comb region no tree {- {- {- {- {- {- {- {- {- {- {l ringxyztor.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut4.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l viewdirrcc.s}} {l xyzcutrcc.s}} {l xyzringtrc.s}}
put {viewdirrcc.s} tgc V {0.779421329498291015625 0.779421329498291015625 0.779421329498291015625} H {-0.6928203105926513671875 -0.6928203105926513671875 -0.6928203105926513671875} A {0 0.007071067579090595245361328 -0.007071067579090595245361328} B {0.008164965547621250152587891 -0.004082482773810625076293945 -0.004082482773810625076293945} C {0 0.007071067579090595245361328 -0.007071067579090595245361328} D {0.008164965547621250152587891 -0.004082482773810625076293945 -0.004082482773810625076293945}
put {twistpanel.c} comb region no tree {- {- {- {l twistrcc.s} {l twisttor.s}} {l twisttrc.s}} {l viewdirrcc.s}}
put {ringxytor.s} tor V {0 0 0} H {0 0 1} r_a 0.5 r_h 0.009999999776482582092285156
put {twistring.r} comb region yes tree {l twistring.c}
attr set {twistring.r} {color} {232/198/232} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
put {xyringtrc.s} tgc V {0.3913685381412506103515625 0.3006020486354827880859375 -0.0009004921885207295417785645} H {-0.03143119439482688903808594 0.04401883110404014587402344 -0.0006720747915096580982208252} A {0.02089671231806278228759766 0.01464617997407913208007812 -0.01800444535911083221435547} B {-0.01446941774338483810424805 -0.01072130445390939712524414 -0.02551533468067646026611328} C {0.0002089670742861926555633545 0.0001464617671445012092590332 -0.0001800443860702216625213623} D {-0.0001446941751055419445037842 -0.0001072130180546082556247711 -0.0002551533398218452930450439}
put {xyzcutrcc.s} arb8 V1 {0.285196959972381591796875 0.223926544189453125 0.2792418301105499267578125} V2 {0.3270788453519344329833984 0.2655878327786922454833984 0.2198253460228443145751953} V3 {0.3691307827830314636230469 0.3075636327266693115234375 0.2788994473521597683429718} V4 {0.3272488489747047424316406 0.2659022919833660125732422 0.3383159413933753967285156} V5 {0.2260562554001808166503906 0.2832767628133296966552734 0.2791691728780278936028481} V6 {0.2679381202906370162963867 0.3249380290508270263671875 0.2197526805102825164794922} V7 {0.3099901042878627777099609 0.366913974285125732421875 0.2788267984578851610422134} V8 {0.2681080885231494903564453 0.3252525255084037780761719 0.3382433503866195678710938}
put {xyringcut.c} comb region no tree {- {- {- {- {- {- {- {- {- {l ringxytor.s} {l cut0.s}} {l cut1.s}} {l cut3.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l ringxyztor.s}} {l xycutrcc.s}} {l xyringtrc.s}}
put {testdisks.c} comb region no tree {u {- {- {- {l xyzrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {- {- {- {- {- {l xyrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut3.s}} {l cut0.s}}}
put {twistring.c} comb region no tree {u {- {- {l twisttor.s} {l twistcut.s}} {l twisttrc.s}} {l twisttrc.s}}
put {halfplane.s} half N {0 0 1} d -0.536277353763580322265625
put {halfplane.r} comb region yes tree {l halfplane.s}
attr set {halfplane.r} {color} {255/255/255} {shader} {stack {{phong {sp 0.05 di 0.95}} }} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
put {twisttor.s} tor V {0.449999988079071044921875 0.449999988079071044921875 0.449999988079071044921875} H {-0.577350269189625731058868 -0.577350269189625731058868 -0.577350269189625731058868} r_a 0.1500000016475442066177237 r_h 0.01000000030444709100962974
put {twistcut.s} part V {0.3950000000000000177635684 0.3850000000000000088817842 0.5649999999999999467092948} H {0.0003640000000000000114804 -0.0003699999999999999946917462 -0.0005000000000000000104083409} r_v 0.02800000000000000058286709 r_h 0.02800000000000000058286709
put {twisttrc.s} tgc V {0.37255561351776123046875 0.40711653232574462890625 0.57051956653594970703125} H {0.03641721233725547790527344 -0.03706122934818267822265625 -0.0005011741304770112037658691} A {0.01779515855014324188232422 0.01750466972589492797851562 -0.001385415205731987953186035} B {0.001156966434791684150695801 0.0007993413601070642471313477 0.02496042102575302124023438} C {0.0001779512967914342880249023 0.0001750463998178020119667053 -1.385413543175673112273216E-05} D {1.156978123617591336369514E-05 7.993325198185630142688751E-06 0.0002496042288839817047119141}
put {xyzpanel.r} comb region yes tree {l xyzcut.c}
attr set {xyzpanel.r} {color} {205/253/172} {shader} {glass {tr 0.6}} {region} {R} {region_id} {1003} {material_id} {1} {los} {100}
put {twistrcc.s} tgc V {0.4472982883453369140625 0.4472982883453369140625 0.4472982883453369140625} H {0.005773502867668867111206055 0.005773502867668867111206055 0.005773502867668867111206055} A {0 -0.1060660183429718017578125 0.1060660183429718017578125} B {0.1224744841456413269042969 -0.06123724207282066345214844 -0.06123724207282066345214844} C {0 -0.1060660183429718017578125 0.1060660183429718017578125} D {0.1224744841456413269042969 -0.06123724207282066345214844 -0.06123724207282066345214844}
put {xycutrcc.s} arb8 V1 {0.4098457992076873779296875 0.330240428447723388671875 -0.03679068386554718017578125} V2 {0.3675903864204883575439453 0.3863152638077735900878906 -0.03679068386160150305741467} V3 {0.3675903864204883575439453 0.3863152638077735900878906 0.03342260420322418212890625} V4 {0.4098457992100617008901509 0.3302404284445723536833839 0.03342260420322418212890625} V5 {0.3537709638476371765136719 0.2879850156605243682861328 -0.03679068386554718017578125} V6 {0.3115155547857284545898438 0.3440598426386713981628418 -0.03679068386160150305741467} V7 {0.3115155547857284545898438 0.3440598426386713981628418 0.03342260420322418212890625} V8 {0.3537709638476371765136719 0.2879850156605243682861328 0.03342260420322418212890625}
put {cutdisks.c} comb region no tree {- {- {- {- {- {l disks.c} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut3.s}} {l cut4.s}}
put {twistcut.s.backu} ell V {0.3945335447788238525390625 0.383843958377838134765625 0.5655720233917236328125} A {0.03095294535160064697265625 -0.0002858481311704963445663452 -0.0002035317302215844392776489} B {0.0002871743054129183292388916 0.03095294535160064697265625 0.0002016565413214266300201416} C {0.0002016565558733418583869934 -0.0002035317156696692109107971 0.03095364384353160858154297}
put {xyzring.r} comb region yes tree {u {l xyzringcut.c} {l xyzringtrc.s}}
attr set {xyzring.r} {color} {230/253/215} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1005} {material_id} {1} {los} {100}
put {viewdir.r} comb region yes tree {l viewdir.c}
attr set {viewdir.r} {color} {253/227/198} {shader} {phong {tr .1 ri 1.5 sh 2}} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
put {xypanel.r} comb region yes tree {l xycut.c}
attr set {xypanel.r} {color} {178/221/243} {shader} {glass {tr 0.6}} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
put {diagram.r} comb region no tree {u {u {u {l arrows.r} {l twistpanel.r}} {u {l twistring.r} {l xypanel.r}}} {u {u {l xyring.r} {l xyzpanel.r}} {u {l xyzring.r} {l viewdir.r}}}}
put {viewdir.c} comb region no tree {u {l viewdirrcc.s} {- {- {- {l viewdirtrc.s} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}}}
put {arrows.r} comb region yes tree {l coordinates.c}
attr set {arrows.r} {color} {217/217/254} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
put {xyring.r} comb region yes tree {u {l xyringcut.c} {l xyringtrc.s}}
attr set {xyring.r} {color} {206/230/242} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1004} {material_id} {1} {los} {100}
put {ground.s} ell V {0 0 -10000.08984375} A {10000 0 0} B {0 6.12303176911188629105709E-13 10000} C {0 -10000 6.12303176911188629105709E-13}
put {xyzcut.c} comb region no tree {- {- {- {- {- {- {- {- {- {- {- {l xyzrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut4.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l viewdirtrc.s}} {l viewdirrcc.s}} {l ringxyztor.s}} {l xyzringtrc.s}}
put {ground.r} comb region yes tree {l ground.c}
attr set {ground.r} {color} {255/255/255} {shader} {stack {{checker {b {192 192 192} s 8192.0}} {phong {sp 0.8 sh 4 em .5}} }} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
put {xyzrcc.s} tgc V {0.005014000460505485534667969 -0.004998999647796154022216797 7.123547086408665851564592E-19} H {-0.009999999776482582092285156 0.009999999776482582092285156 0} A {-0.356000006198883056640625 -0.356000006198883056640625 0} B {0 0 0.5} C {-0.356000006198883056640625 -0.356000006198883056640625 0} D {0 0 0.5}
put {ground.c} comb region no tree {l ground.s}
put {disks2.c} comb region no tree {u {- {- {- {- {l xyzrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l xyrcc.s}} {- {- {- {l xyrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}}}
put {light.s} ell V {-98.451141357421875 103.03456878662109375 200.0417633056640625} A {14 0 0} B {0 14 0} C {0 0 14}
put {light.r} comb region yes tree {l light.s}
attr set {light.r} {color} {255/255/255} {shader} {light {a 270 d {1 0 0} s 16 v 0}} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
put {xyrcc.s} tgc V {0 0 -0.004999999888241291046142578} H {0 0 0.009999999776482582092285156} A {0 -0.5 0} B {0.5 0 0} C {0 -0.5 0} D {0.5 0 0}
put {xycut.c} comb region no tree {- {- {- {- {- {- {- {- {- {- {- {l xyrcc.s} {l cut0.s}} {l cut1.s}} {l cut3.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l xyzrcc.s}} {l ringxytor.s}} {l viewdirtrc.s}} {l xyringtrc.s}} {l viewdirrcc.s}}
put {disks.c} comb region no tree {u {- {l xyzrcc.s} {l xyrcc.s}} {l xyrcc.s}}
put {rings.c} comb region no tree {u {l ringxytor.s} {l ringxyztor.s}}
put {ztec.s} tgc V {0 0 1} H {0 0 0.1000000014901161193847656} A {0.02999999932944774627685547 0 0} B {0 0.02999999932944774627685547 0} C {0.0003000000142492353916168213 0 0} D {0 0.0003000000142492353916168213 0}
put {ytec.s} tgc V {0 1 0} H {0 0.1000000014901161193847656 0} A {0.02999999932944774627685547 0 0} B {0 0 0.02999999932944774627685547} C {0.0003000000142492353916168213 0 0} D {0 0 0.0003000000142492353916168213}
put {xtec.s} tgc V {1 0 0} H {0.1000000014901161193847656 0 0} A {0 0.02999999932944774627685547 0} B {0 0 0.02999999932944774627685547} C {0 0.0003000000142492353916168213 0} D {0 0 0.0003000000142492353916168213}
put {zrcc.s} tgc V {0 0 0} H {0 0 1} A {0 -0.009999999776482582092285156 0} B {0.009999999776482582092285156 0 0} C {0 -0.009999999776482582092285156 0} D {0.009999999776482582092285156 0 0}
put {yrcc.s} tgc V {0 0 0} H {0 1 0} A {0 0 0.009999999776482582092285156} B {0.009999999776482582092285156 0 0} C {0 0 0.009999999776482582092285156} D {0.009999999776482582092285156 0 0}
put {xrcc.s} tgc V {0 0 0} H {1 0 0} A {0 0 -0.009999999776482582092285156} B {0 0.009999999776482582092285156 0} C {0 0 -0.009999999776482582092285156} D {0 0.009999999776482582092285156 0}
put {cut4.s} arb8 V1 {1 1 1} V2 {1 -1 1} V3 {-1 -1 1} V4 {-1 1 1} V5 {-1 -1 -1} V6 {-1 -1 -1} V7 {-1 -1 -1} V8 {-1 -1 -1}
put {cut3.s} arb8 V1 {1.010072231292724609375 1.0000178813934326171875 1.010089874267578125} V2 {1.010072231292724831419605 1.0000178813934326171875 -1.0000002384185791015625} V3 {-1.0000178813934326171875 -1.010072231292724609375 -1.0000002384185791015625} V4 {-1.0000178813934326171875 -1.010072231292724609375 1.01008987426757901317842} V5 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625} V6 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625} V7 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625} V8 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625}
put {cut2.s} arb8 V1 {1 -1 -1.0051000118255615234375} V2 {1 1 -1.0051000118255615234375} V3 {1 1 -0.0051000118255615234375} V4 {1 -1 -0.0051000118255615234375} V5 {-1 -1 -1.0051000118255615234375} V6 {-1 1 -1.0051000118255615234375} V7 {-1 1 -0.0051000118255615234375} V8 {-1 -1 -0.0051000118255615234375}
put {cut1.s} arb8 V1 {0 -1 -1} V2 {0 1 -1} V3 {0 1 1} V4 {0 -1 1} V5 {-1 -1 -1} V6 {-1 1 -1} V7 {-1 1 1} V8 {-1 -1 1}
put {cut0.s} arb8 V1 {1 -1 -1} V2 {1 0 -1} V3 {1 0 1} V4 {1 -1 1} V5 {-1 -1 -1} V6 {-1 0 -1} V7 {-1 0 1} V8 {-1 -1 1}
put {coordinates.c} comb region no tree {u {u {u {u {u {- {- {l xrcc.s} {l yrcc.s}} {l zrcc.s}} {- {- {l yrcc.s} {l xrcc.s}} {l zrcc.s}}} {- {- {l zrcc.s} {l xrcc.s}} {l yrcc.s}}} {l xtec.s}} {l ytec.s}} {l ztec.s}}
put {ringxyztor.s} tor V {0 0 0} H {-0.7071067811865475727373109 0.7071067811865475727373109 0} r_a 0.4999999914428644998132256 r_h 0.009999999670806607177109271
+1 -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 g_qa
* Perform basic geometric analysis using rtarea, rtweight, and gqa
* Write a procedural geometry tool (see examples in src/proc-db)
-25
View File
@@ -3386,11 +3386,6 @@
<link xlink:href="../../man1/en/g-var.php">G-var</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/g-vrml.php">G-vrml</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/g-x3d.php">G x3d</link>
@@ -4328,11 +4323,6 @@
<link xlink:href="../../mann/en/d.php">D</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/dall.php">Dall</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/db.php">DB</link>
@@ -4478,11 +4468,6 @@
<link xlink:href="../../mann/en/erase.php">Erase</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/erase_all.php">Erase All</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/ev.php">EV</link>
@@ -4503,11 +4488,6 @@
<link xlink:href="../../mann/en/expand.php">Expand</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/export_body.php">Export Body</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/extrude.php">Extrude</link>
@@ -5233,11 +5213,6 @@
<link xlink:href="../../mann/en/vquery_ray.php">Vquery Ray</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/vrmgr.php">Vrmgr</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/vrot.php">vrot</link>
+2 -142
View File
@@ -5162,9 +5162,6 @@ x delete character
<entry>
<link linkend="d">d</link>
</entry>
<entry>
<link linkend="dall">dall</link>
</entry>
<entry>
<link linkend="db">db</link>
</entry>
@@ -5247,9 +5244,6 @@ x delete character
<entry>
<link linkend="erase">erase</link>
</entry>
<entry>
<link linkend="erase_all">erase_all</link>
</entry>
<entry>
<link linkend="ev">ev</link>
</entry>
@@ -5261,9 +5255,6 @@ x delete character
<entry>
<link linkend="expand">expand</link>
</entry>
<entry>
<link linkend="export_body">export_body</link>
</entry>
<entry>
<link linkend="expand_comb">expand_comb</link>
</entry>
@@ -5714,9 +5705,6 @@ x delete character
<entry>
<link linkend="vquery_ray">vquery_ray</link>
</entry>
<entry>
<link linkend="vrmgr">vrmgr</link>
</entry>
<entry>
<link linkend="vrot">vrot</link>
</entry>
@@ -7918,8 +7906,7 @@ x delete character
explicitly displayed objects). Objects that are displayed as
members of explicitly displayed combinations cannot be deleted
from the display with this command (see
<link linkend="dall">dall</link> or
<link linkend="erase_all">erase_all</link>). Note that this
<link linkend="erase">erase -r</link>). Note that this
has no effect on the <emphasis>BRL-CAD</emphasis> database
itself. To actually remove objects from the database, use the
<link linkend="kill">kill</link> command.
@@ -7945,36 +7932,6 @@ x delete character
<para>
<emphasis role="strong"></emphasis>
</para>
<variablelist xml:id="dall">
<varlistentry>
<term>
dall <emphasis>&lt;objects</emphasis>&gt;
</term>
<listitem>
<para>
The <quote>dall</quote> command deletes the specified list of
objects from the <emphasis>mged</emphasis> display. This is a
synonym for the <link linkend="erase_all">erase_all</link>
command. This command will allow the user to delete objects
that have not been explicitly displayed (unlike the
<link linkend="d">d</link> command). Note that this has no
effect on the <emphasis>BRL-CAD</emphasis> database itself. To
actually remove objects from the database, use the
<link linkend="kill">kill</link> command.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Examples:
</term>
<listitem>
<para>
mged&gt; dall region1 shapea
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
– Delete <emphasis>region1</emphasis> and
<emphasis>shapea</emphasis> from the <emphasis>mged</emphasis>
@@ -9301,8 +9258,7 @@ x delete character
explicitly displayed objects). Objects that are displayed as
members of explicitly displayed combinations cannot be deleted
from the display with this command (see
<link linkend="dall">dall</link> or
<link linkend="erase_all">erase_all</link>). Note that this
<link linkend="erase">erase -r</link>). Note that this
has no effect on the <emphasis>BRL-CAD</emphasis> database
itself. To actually remove objects from the database, use the
<link linkend="kill">kill</link> command.
@@ -9327,36 +9283,6 @@ x delete character
<para>
<emphasis role="strong"></emphasis>
</para>
<variablelist xml:id="erase_all">
<varlistentry>
<term>
erase_all <emphasis>&lt;objects</emphasis>&gt;
</term>
<listitem>
<para>
The <quote>erase_all</quote> command deletes the specified
list of objects from the MGED display. This is a synonym for
the <link linkend="dall">dall</link> command. This command
will allow the user to delete objects that have not been
explicitly displayed (unlike the <link linkend="d">d</link> or
<link linkend="erase">erase</link> commands). Note that this
has no effect on the <emphasis>BRL-CAD</emphasis> database
itself. To actually remove objects from the database, use the
<link linkend="kill">kill</link> command.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Examples:
</term>
<listitem>
<para>
mged&gt; erase_all region1 shapea
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
– Delete <emphasis>region1</emphasis> and
<emphasis>shapea</emphasis> from the MGED display.
@@ -9536,28 +9462,6 @@ x delete character
<para>
<emphasis role="strong"></emphasis>
</para>
<para xml:id="export_body">
export_body object file
</para>
<para>
The <quote>export_body</quote> command is used to copy the contents
of the specified binary <emphasis>object</emphasis> into the
specified <emphasis>file</emphasis>. Currently, only binary objects
containing a uniform array of simple objects is supported.
</para>
<para>
Examples:
</para>
<para>
<literal></literal>
</para>
<para>
mged&gt; export_body bin_chars /home/fred/chars
</para>
<para>
– Copy the contents of <quote>bin_chars</quote> into the file
<quote>/home/fred/chars</quote>
</para>
<para xml:id="expand_comb">
expand_comb <emphasis>prefix comb …</emphasis>
</para>
@@ -16735,50 +16639,6 @@ EOF
<para>
<emphasis role="strong"></emphasis>
</para>
<variablelist xml:id="vrmgr">
<varlistentry>
<term>
vrmgr <emphasis>host</emphasis> {<emphasis>master</emphasis> |
<emphasis>slave</emphasis> | <emphasis>overview</emphasis>}
</term>
<listitem>
<para>
The <quote>vrmgr</quote> command establishes a link between
the current MGED display and a <emphasis>vrmgr</emphasis>
process running on the specified <emphasis>host</emphasis>.
The <emphasis>vrmgr</emphasis> program is a manager for
virtual reality displays using MGED. The
<emphasis>vrmgr</emphasis> process must be started on
<emphasis>host</emphasis> prior to executing the
<emphasis>vrmgr</emphasis> command in MGED. The second command
line argument to the <emphasis>vrmgr</emphasis> command is the
role of the current MGED display. The
<emphasis>master</emphasis> display controls the viewing
parameters of itself and all the <emphasis>slave</emphasis>
displays. The <emphasis>overview</emphasis> display acts as an
observer of the entire virtual reality process.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Examples:
</term>
<listitem>
<para>
mged&gt; vrmgr host1.brlcad.org master
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
– Set the current MGED display as the <emphasis>master</emphasis>
for the <emphasis>vrmgr</emphasis> process running on the host named
<emphasis>host1.brlcad.org.</emphasis>
</para>
<para>
<emphasis role="strong"></emphasis>
</para>
<variablelist xml:id="vrot">
<varlistentry>
<term>
@@ -2963,7 +2963,7 @@ comb comb_name u a - b + c
<para>
There are several ways to evaluate BRL-CAD geometry. These include
(1) rendering the image using rt, (2) checking for overlaps using rtcheck
(or the lesser-known/used g_lint or MGED's overlap tool), and (3) checking
(or the lesser-known/used glint or MGED's overlap tool), and (3) checking
for faulty material composition (e.g., densities) using rtweight.
</para>
<para>
@@ -2977,7 +2977,7 @@ comb comb_name u a - b + c
</para>
<para>
As subcomponents are organized into assemblies and the complexity of the
geometry increases, it is then a good practice to use rtcheck (or g_lint
geometry increases, it is then a good practice to use rtcheck (or glint
or the overlap tool) to help find any errors in the geometry and isolate
any problems.
</para>
+10 -3
View File
@@ -5,6 +5,7 @@ set(man1_EN
anim_track.xml
anim_turn.xml
ap-pix.xml
alias-pix.xml
asc-nmg.xml
asc-plot3.xml
asc2dsp.xml
@@ -12,6 +13,7 @@ set(man1_EN
azel.xml
bary.xml
benchmark.xml
brlman.xml
bot_dump.xml
bot_shell-vtk.xml
brep_simple.xml
@@ -87,6 +89,7 @@ set(man1_EN
fbzoom.xml
firpass.xml
g-acad.xml
g-dot.xml
g-dxf.xml
g-egg.xml
g-euclid.xml
@@ -104,16 +107,16 @@ set(man1_EN
g-voxel.xml
g-vrml.xml
g-x3d.xml
g-dot.xml
g2asc.xml
g_diff.xml
g_lint.xml
gastank.xml
gdiff.xml
gencolor.xml
gif-fb.xml
gif2fb.xml
glint.xml
gqa.xml
halftone.xml
handle.xml
hex.xml
icv.xml
iges-g.xml
@@ -132,6 +135,7 @@ set(man1_EN
obj-g.xml
patch-g.xml
pictx.xml
picket_fence.xml
pix-alias.xml
pix-bw.xml
pix-fb.xml
@@ -237,6 +241,9 @@ set(man1_EN
vdeck.xml
viewpoint-g.xml
wavelet.xml
window.xml
window_frame.xml
wire.xml
wdb_example.xml
)
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>ALIAS-PIX</refentrytitle>
<manvolnum>nged</manvolnum>
<manvolnum>1</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
-17
View File
@@ -284,23 +284,6 @@ are, by convention, lower case for file information,
and upper case for screen information.
Here's a list of some of the common options you may encounter:</para>
<variablelist remap='TP'>
<varlistentry>
<term><option>-h</option></term>
<listitem>
<para>The "high resolution" flag, increasing the default screen and file
size of 512x512
to 1024x1024. Has same effect as
<option>-s</option> 1024 (or <option>-S</option> 1024)
but exists as a convenient shorthand held over from the simple days
when framebuffers were square, and only came in two resolutions.
This historical usage unfortunately preempts this letter from use
as a height specifier, forcing that function to relocate under
protest to
<option>-n</option>,
which can be thought of as "number of scanlines", which isn't
too bad a mnemonic.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-i</option></term>
<listitem>
+109
View File
@@ -0,0 +1,109 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="brlman1">
<refmeta>
<refentrytitle>BRLMAN</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>brlman</refname>
<refpurpose>
a manual page viewer for BRL-CAD
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>brlman</command>
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
<arg choice="opt"><replaceable>manpage</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>
<command>brlman</command> provides manual page viewing capabilities for
BRL-CAD's programs, commands, libraries, and conventions (such as file
formats and attribute standards.) On Unix-type systems, its default
behavior is to wrap the system <command>man</command> command with the appropriate path
information to allow man to find and display BRL-CAD's man pages. On
systems without a <command>man</command> command, <command>brlman</command>
will instead launch a Tcl/Tk based graphical view that displays html
versions of the manual pages. Both versions are generated from the same
DocBook source files and contain the same information.
</para>
</refsection>
<refsection xml:id="brlman_options"><title>OPTIONS</title>
<variablelist remap="TP">
<varlistentry>
<term><emphasis remap="B" role="bold">-h</emphasis></term>
<listitem>
<para>
Prints help.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-g</emphasis></term>
<listitem>
<para>
Instructs <command>brlman</command> to use its graphical man page viewer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-L</emphasis></term>
<listitem>
<para>
Specify a language to use when selecting man pages.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-S [1 3 5 n]</emphasis></term>
<listitem>
<para>
Specify a particular section to use when searching for a man page. Useful when there are programs and MGED commands with the same names - the default man page returned will be that of the program, so <option>-S</option> can be used to specify the MGED page instead. Allowed sections are 1 (programs), 3 (libraries), 5 (conventions), and n (MGED).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">--no-gui</emphasis></term>
<listitem>
<para>
Instructs <command>brlman</command> <emphasis>not</emphasis> to use its graphical man page viewer, even in situations where there is no command line option. Primarily useful in scripting situations.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title>
<para>Clifford Yapp</para>
</refsection>
<refsection xml:id="copyright"><title>COPYRIGHT</title>
<para>
This software is Copyright (c) 2016 United States Government as
represented by the U.S. Army Rebrlman Laboratory.
</para>
</refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
<!-- vim: set shiftwidth=2 : -->
+1 -1
View File
@@ -97,7 +97,7 @@ to avoid having to create a font converter.</para>
</refsection>
<refsection xml:id="example"><title>EXAMPLE</title>
<para>fblabel -f "oldenglish.14" `fbpoint -h` "Hello"</para>
<para>fblabel -f "oldenglish.14" `fbpoint -H` "Hello"</para>
</refsection>
<refsection xml:id="see_also"><title>SEE ALSO</title>
-91
View File
@@ -1,91 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- lifted from troff+man by doclifter -->
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='g_diff1'>
<refmeta>
<refentrytitle>G_DIFF
</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
</refmeta>
<refnamediv>
<refname>g_diff</refname>
<refpurpose>a BRL-CAD differential geometry comparator</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>g_diff</command><arg choice='opt'>-m </arg>
<arg choice='opt'>-f </arg>
<arg choice='opt'>-v </arg>
<arg choice='plain'><replaceable>model1.g</replaceable></arg>
<arg choice='plain'><replaceable>model2.g</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para><command>g_diff</command>
compares the two BRL-CAD models specified on the command line. The results of this comparison
are written to standard out in a human readable form describing the changes from model1 to model2.
If the
<option>-m</option>
option is exercised, the output will be a script, readable by <command>mged(1)</command>, that will perform the
necessary changes to model1 to make it a copy of model2. The produced script makes extensive use
of the
<emphasis remap='I'>db get</emphasis>,
<emphasis remap='I'>db put</emphasis>,
and
<emphasis remap='I'>db adjust</emphasis>
commands in <command>mged(1)</command>. A few solid types are not supported by these commands, and changes involving these
solids are merely noted (the script will not actually be capable of performing all the changes in this case).
The
<option>-e</option>
option selections evolutionary mode, which attempts to guess if a change in a region is due to an evolutionary change or a reworking.
The output is similar to -m, but it is NOT mged readable.
The
<option>-f</option>
option requests that all floating point numerical comparisons be done in single precision rather
than the default double precision. This may be useful when comparing different format databases.
The
<option>-v</option>
option requests that the default attributes of each region in both files be checked for
consistency. Any inconsistencies are written to stderr.</para>
<para>The program returns 0 if the files being compared have no differences and non-zero otherwise.</para>
</refsect1>
<refsect1 xml:id='example'><title>EXAMPLE</title>
<para>The command</para>
<!-- .in +5 -->
<para>g_diff -m uncle.g aunt.g &gt; mged.script</para>
<!-- .in &bsol;-5 -->
<para>will create a file named "mged.script" that may be sourced in <command>mged(1)</command> to change
uncle.g into aunt.g .</para>
</refsect1>
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
<para><citerefentry><refentrytitle>mged</refentrytitle><manvolnum>1</manvolnum></citerefentry></para>
</refsect1>
<refsect1 xml:id='author'><title>AUTHOR</title>
<para>BRL-CAD Team</para>
</refsect1>
<refsect1 xml:id='copyright'><title>COPYRIGHT</title>
<para>This software is Copyright (c) 1999-2016 by the United States
Government as represented by U.S. Army Research Laboratory.</para>
</refsect1>
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
<para>Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;.</para>
</refsect1>
</refentry>
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>GASTANK</refentrytitle>
<manvolnum>nged</manvolnum>
<manvolnum>1</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
+324 -324
View File
@@ -1,100 +1,100 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='gdiff1'>
<refmeta>
<refentrytitle>GDIFF
</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
</refmeta>
<refmeta>
<refentrytitle>GDIFF
</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
</refmeta>
<refnamediv>
<refname>gdiff</refname>
<refpurpose>a BRL-CAD differential geometry comparator</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>gdiff</command>
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
<arg choice='plain'><replaceable>left_model.g</replaceable></arg>
<arg choice='opt'><replaceable>ancestor_model.g</replaceable></arg>
<arg choice='plain'><replaceable>right_model.g</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refnamediv>
<refname>gdiff</refname>
<refpurpose>a BRL-CAD differential geometry comparator</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>gdiff</command>
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
<arg choice='plain'><replaceable>left_model.g</replaceable></arg>
<arg choice='opt'><replaceable>ancestor_model.g</replaceable></arg>
<arg choice='plain'><replaceable>right_model.g</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para>
<command>gdiff</command> compares BRL-CAD models
specified on the command line, reporting differences according to the
specified options. It supports a plain "diff" comparison between two
files, as well as a "3-way" comparison that accepts a third file with
"ancestral" information that provides a context for the left and right
files.
</para>
<para>The following options are recognized:</para>
<variablelist remap="TP">
<varlistentry>
<term><option>-a</option></term>
<listitem>
<para>(two-way diff) Report objects added in right_model.g</para>
<para>(three-way diff) Report objects added in left_model.g and/or right_model.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<listitem>
<para>(two-way diff) Report objects deleted in right_model.g</para>
<para>(three-way diff) Report objects deleted in left_model.g and/or right_model.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-m</option></term>
<listitem>
<para>(two-way diff) Report objects modified in right_model.g</para>
<para>(three-way diff) Report objects that are different in left_model.g and/or right_model.g relative to ancestor.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem>
<para>(two-way diff) Report objects that are identical in left_model.g and right_model.g</para>
<para>(three-way diff) Report objects that are identical in ancestor_model.g, left_model.g and right_model.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-v #</option></term>
<listitem><para>Control the verbosity of the output. Zero will suppress all reporting and only the return value of the program will contain information, one will provide categorized lists of objects but no details on what changed, two will list each changed object preceded by a modifier, three will print more details for changed objects, and four will print all available information. All settings for this option will respect other constraints applied to the reporting output.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t #</option></term>
<listitem><para>Set the length tolerance used to compare numerical properties. Units are millimeters. Default value is RT_LEN_TOL.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-F "filter_string"</option></term>
<listitem><para>Apply filters to the diff output, using the same set of filters available in the <command>search</command> command's search. See the <command>search</command> manual page for more details.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-M merged_file.g</option></term>
<listitem><para>Merge the files being diffed into one output file.</para></listitem>
</varlistentry>
</variablelist>
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para>
<command>gdiff</command> compares BRL-CAD models
specified on the command line, reporting differences according to the
specified options. It supports a plain "diff" comparison between two
files, as well as a "3-way" comparison that accepts a third file with
"ancestral" information that provides a context for the left and right
files.
</para>
<para>The following options are recognized:</para>
<variablelist remap="TP">
<varlistentry>
<term><option>-a</option></term>
<listitem>
<para>(two-way diff) Report objects added in right_model.g</para>
<para>(three-way diff) Report objects added in left_model.g and/or right_model.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<listitem>
<para>(two-way diff) Report objects deleted in right_model.g</para>
<para>(three-way diff) Report objects deleted in left_model.g and/or right_model.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-m</option></term>
<listitem>
<para>(two-way diff) Report objects modified in right_model.g</para>
<para>(three-way diff) Report objects that are different in left_model.g and/or right_model.g relative to ancestor.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem>
<para>(two-way diff) Report objects that are identical in left_model.g and right_model.g</para>
<para>(three-way diff) Report objects that are identical in ancestor_model.g, left_model.g and right_model.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-v #</option></term>
<listitem><para>Control the verbosity of the output. Zero will suppress all reporting and only the return value of the program will contain information, one will provide categorized lists of objects but no details on what changed, two will list each changed object preceded by a modifier, three will print more details for changed objects, and four will print all available information. All settings for this option will respect other constraints applied to the reporting output.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t #</option></term>
<listitem><para>Set a numerical comparison tolerance used to compare numerical properties. Default value is RT_LEN_TOL, but be aware that this comparison is not aware of units.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-F "filter_string"</option></term>
<listitem><para>Apply filters to the diff output, using the same set of filters available in the <command>search</command> command's search. See the <command>search</command> manual page for more details.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-M merged_file.g</option></term>
<listitem><para>Merge the files being diffed into one output file.</para></listitem>
</varlistentry>
</variablelist>
<para>
The program returns 0 if the files being compared have no differences that satisfy
the user-supplied options, otherwise it returns the total number of differing objects that do
satisfy the supplied options. Default is to report all differences that rise above RT_LEN_TOL.
</para>
</refsect1>
<para>
The program returns 0 if the files being compared have no differences that satisfy
the user-supplied options, otherwise it returns the total number of differing objects that do
satisfy the supplied options. Default is to report all differences that rise above RT_LEN_TOL.
</para>
</refsect1>
<refsect1 xml:id='example'><title>EXAMPLES</title>
<refsect1 xml:id='example'><title>EXAMPLES</title>
<example><title>Default Diffing Results</title>
<para>
Running the default options on two pre-prepared examples of Moss World gives us a summary of the status of various objects:
<literallayout>
<computeroutput>
<para>
Running the default options on two pre-prepared examples of Moss World gives us a summary of the status of various objects:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff moss.g moss2.g</userinput>
M platform.r
M ellipse.s
@@ -107,29 +107,29 @@ M tor.r
D LIGHT
A tgc_new.s
A eto.s
</computeroutput>
</literallayout>
'M' denotes an object that was modified, 'D' is an object that was deleted, and 'A' is an object that was added.
</para>
</example>
</computeroutput>
</literallayout>
'M' denotes an object that was modified, 'D' is an object that was deleted, and 'A' is an object that was added.
</para>
</example>
<example><title>Alternate Diffing Result Outputs</title>
<para>
The <option>v</option> provides various styles of output, as follows:
</para>
<para>
<option>-v 0</option> (no output except the return code):
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 0 moss.g moss2.g</userinput>
</computeroutput>
</literallayout>
</para>
<example><title>Alternate Diffing Result Outputs</title>
<para>
The <option>v</option> provides various styles of output, as follows:
</para>
<para>
<option>-v 0</option> (no output except the return code):
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 0 moss.g moss2.g</userinput>
</computeroutput>
</literallayout>
</para>
<para>
<option>-v 1</option>:
<literallayout>
<computeroutput>
<para>
<option>-v 1</option>:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 1 moss.g moss2.g</userinput>
Added:
tgc_new.s, eto.s
@@ -139,15 +139,15 @@ LIGHT
Changed:
platform.r, ellipse.s, light.r, _GLOBAL, cone.s, cone.r, box.s, tor.r
</computeroutput>
</literallayout>
Objects are reported in lists, categorized by their status.
</para>
</computeroutput>
</literallayout>
Objects are reported in lists, categorized by their status.
</para>
<para>
<option>-v 2</option> (default):
<literallayout>
<computeroutput>
<para>
<option>-v 2</option> (default):
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 2 moss.g moss2.g</userinput>
M platform.r
M ellipse.s
@@ -160,15 +160,15 @@ M tor.r
D LIGHT
A tgc_new.s
A eto.s
</computeroutput>
</literallayout>
If verbosity is not specified, this is the default output.
</para>
</computeroutput>
</literallayout>
If verbosity is not specified, this is the default output.
</para>
<para>
<option>-v 3</option>:
<literallayout>
<computeroutput>
<para>
<option>-v 3</option>:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 3 moss.g moss2.g</userinput>
- "platform.r" tree(p): l platform.s
+ "platform.r" tree(p): - {l platform.s} {l cone.s}
@@ -199,17 +199,17 @@ A eto.s
D LIGHT
A tgc_new.s
A eto.s
</computeroutput>
</literallayout>
Verbosity 3 is a more detailed version of the previous setting, with each parameter in the modified objects reported in detail. '-' lines
show what was removed for a given attribute or parameter, and '+' lines contain the data that replaced them.
</para>
</computeroutput>
</literallayout>
Verbosity 3 is a more detailed version of the previous setting, with each parameter in the modified objects reported in detail. '-' lines
show what was removed for a given attribute or parameter, and '+' lines contain the data that replaced them.
</para>
<para>
<option>-v 4</option>:
<literallayout>
<computeroutput>
<para>
<option>-v 4</option>:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 4 moss.g moss2.g</userinput>
- "platform.r" tree(p): l platform.s
+ "platform.r" tree(p): - {l platform.s} {l cone.s}
@@ -255,70 +255,70 @@ A "eto.s" C(p): 3.448298656000062134552309 0 3.448298656000062134552309
A "eto.s" N(p): 0 0 0.01724149328000028000285049
A "eto.s" V(p): 8.533195938359670051909234 -11.04524849332910996224655 -1.403988582132086548881489
A "eto.s" DB5_MINORTYPE(p): eto
</computeroutput>
</literallayout>
Verbosity 4 is a fully detailed diff that contains all information added or removed.
</para>
</computeroutput>
</literallayout>
Verbosity 4 is a fully detailed diff that contains all information added or removed.
</para>
</example>
</example>
<example><title>Filtering Based on Difference Type</title>
<para>
The options <option>a</option>, <option>d</option>, <option>m</option>, and <option>u</option> control
which categories of diff results (added, deleted, modified, and unchanged) are reported. By default
added, deleted and modified items are reported, but once one of these four options is specified only
those specified are reported:
</para>
<para>
Report only objects added:
<literallayout>
<computeroutput>
<example><title>Filtering Based on Difference Type</title>
<para>
The options <option>a</option>, <option>d</option>, <option>m</option>, and <option>u</option> control
which categories of diff results (added, deleted, modified, and unchanged) are reported. By default
added, deleted and modified items are reported, but once one of these four options is specified only
those specified are reported:
</para>
<para>
Report only objects added:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -a moss.g moss2.g</userinput>
A tgc_new.s
A eto.s
</computeroutput>
</literallayout>
</para>
<para>
Report only objects deleted:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
</para>
<para>
Report only objects deleted:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -d moss.g moss2.g</userinput>
D LIGHT
</computeroutput>
</literallayout>
</para>
<para>
Report both added and deleted objects, but not modified objects:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
</para>
<para>
Report both added and deleted objects, but not modified objects:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -a -d moss.g moss2.g</userinput>
D LIGHT
A tgc_new.s
A eto.s
</computeroutput>
</literallayout>
</para>
<para>
Report unmodified objects:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
</para>
<para>
Report unmodified objects:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -u moss.g moss2.g</userinput>
ellipse.r
box.r
all.g
</computeroutput>
</literallayout>
</para>
</example>
ellipse.r
box.r
all.g
</computeroutput>
</literallayout>
</para>
</example>
<example><title>Filtering Results With Tolerance</title>
<para>
To eliminate differences in modifications that are too small to be of interest, the <option>t</option> is used. What
difference constitutes "too small" is up to the user - in this example, we will use 30 millimeters:
<literallayout>
<computeroutput>
<example><title>Filtering Results With Tolerance</title>
<para>
To eliminate differences in modifications that are too small to be of interest, the <option>t</option> is used. What
difference constitutes "too small" is up to the user - in this example, we will use 30 millimeters:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 3 -t 30.0 moss.g moss2.g</userinput>
- "platform.r" tree(p): l platform.s
+ "platform.r" tree(p): - {l platform.s} {l cone.s}
@@ -335,30 +335,30 @@ A eto.s
D LIGHT
A tgc_new.s
A eto.s
</computeroutput>
</literallayout>
Notice that ellipse.s, which was on earlier lists, is now filtered out. cone.s has a difference in the x coordinates
of the parameter V that is large enough to satisfy the tolerance filter, so that parameter stays in. Parameters that
are not strictly numerical comparisons, or those that are part of added or deleted objects, remain in the report.
</para>
</example>
</computeroutput>
</literallayout>
Notice that ellipse.s, which was on earlier lists, is now filtered out. cone.s has a difference in the x coordinates
of the parameter V that is large enough to satisfy the tolerance filter, so that parameter stays in. Parameters that
are not strictly numerical comparisons, or those that are part of added or deleted objects, remain in the report.
</para>
</example>
<example><title>Filtering Results With Search Filters</title>
<para>
The <emphasis>search</emphasis> filtering technique can be used to select specific subsets of the database to see
in reports, using the <option>F</option> option. For example, limiting the diff report to only objects of type elliptical torus:
<literallayout>
<computeroutput>
<example><title>Filtering Results With Search Filters</title>
<para>
The <emphasis>search</emphasis> filtering technique can be used to select specific subsets of the database to see
in reports, using the <option>F</option> option. For example, limiting the diff report to only objects of type elliptical torus:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -F "-type eto" moss.g moss2.g</userinput>
A eto.s
</computeroutput>
</literallayout>
</para>
<para>
Note that this option will work at all levels of verbosity:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
</para>
<para>
Note that this option will work at all levels of verbosity:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 4 -F "-type eto" moss.g moss2.g</userinput>
A "eto.s" r_d(p): 1.724149328000026404339451
A "eto.s" r(p): 13.79319462400021123471561
@@ -366,17 +366,17 @@ A "eto.s" C(p): 3.448298656000062134552309 0 3.448298656000062134552309
A "eto.s" N(p): 0 0 0.01724149328000028000285049
A "eto.s" V(p): 8.533195938359670051909234 -11.04524849332910996224655 -1.403988582132086548881489
A "eto.s" DB5_MINORTYPE(p): eto
</computeroutput>
</literallayout>
</para>
</example>
</computeroutput>
</literallayout>
</para>
</example>
<example><title>Combining Multiple Filters</title>
<para>
The various diff filters can be used together. For example, repeating the search
filter with ell types added to the accepted list produces the following:
<literallayout>
<computeroutput>
<example><title>Combining Multiple Filters</title>
<para>
The various diff filters can be used together. For example, repeating the search
filter with ell types added to the accepted list produces the following:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 4 -F "-type eto -or -type ell" moss.g moss2.g</userinput>
- "ellipse.s" C(p): 0 8.980256080627000869753829 8.980256080627000869753829
+ "ellipse.s" C(p): 0 1.561016355403846755933728 1.561016355403846755933728
@@ -393,13 +393,13 @@ A "eto.s" C(p): 3.448298656000062134552309 0 3.448298656000062134552309
A "eto.s" N(p): 0 0 0.01724149328000028000285049
A "eto.s" V(p): 8.533195938359670051909234 -11.04524849332910996224655 -1.403988582132086548881489
A "eto.s" DB5_MINORTYPE(p): eto
</computeroutput>
</literallayout>
</para>
<para>
If we now add the tolerance filter, we see ellipse.s is filtered out:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
</para>
<para>
If we now add the tolerance filter, we see ellipse.s is filtered out:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 4 -t 30.0 -F "-type eto -or -type ell" moss.g moss2.g</userinput>
D "LIGHT" C(p): 0 0 2.539999961852999810218989
D "LIGHT" B(p): 0 2.539999961852999810218989 0
@@ -412,23 +412,23 @@ A "eto.s" C(p): 3.448298656000062134552309 0 3.448298656000062134552309
A "eto.s" N(p): 0 0 0.01724149328000028000285049
A "eto.s" V(p): 8.533195938359670051909234 -11.04524849332910996224655 -1.403988582132086548881489
A "eto.s" DB5_MINORTYPE(p): eto
</computeroutput>
</literallayout>
ellipse.s satisfies the search filter, but is filtered by virtue of having no differences larger than 30 in its parameters.
</para>
</computeroutput>
</literallayout>
ellipse.s satisfies the search filter, but is filtered by virtue of having no differences larger than 30 in its parameters.
</para>
</example>
</example>
<example><title>Three Way Differences</title>
<para>
A "3-way" diff uses an ancestor file as a basis for evaluating the differences between two
other files. This ancestor provides a "context" in which it is possible to tell whether a
difference between two files is a) the product of a change in one but not the other in
comparison to the original or b) whether both have (incompatibly) changed in comparison
to the original. For example, if we compare moss2.g from the previous examples to a new
file moss3.g:
<literallayout>
<computeroutput>
<example><title>Three Way Differences</title>
<para>
A "3-way" diff uses an ancestor file as a basis for evaluating the differences between two
other files. This ancestor provides a "context" in which it is possible to tell whether a
difference between two files is a) the product of a change in one but not the other in
comparison to the original or b) whether both have (incompatibly) changed in comparison
to the original. For example, if we compare moss2.g from the previous examples to a new
file moss3.g:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff moss2.g moss3.g</userinput>
M platform.r
M ellipse.s
@@ -444,12 +444,12 @@ M all.g
M tor
A ellipse2.r
A LIGHT
</computeroutput>
</literallayout>
All we can tell is that these objects differ from each other. If, however, we add moss.g
to the comparison as an ancestor file:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
All we can tell is that these objects differ from each other. If, however, we add moss.g
to the comparison as an ancestor file:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff moss2.g moss.g moss3.g</userinput>
M platform.r
M ellipse.s
@@ -466,17 +466,17 @@ M tor
A(B) tgc_new.s
C eto.s
A(R) ellipse2.r
</computeroutput>
</literallayout>
We can now see that ellipse.r was deleted only from the right file (moss3.g) and was unchanged in moss2.g.
Similarly, we can tell that LIGHT wsa deleted from moss2.g, ellipse2.r was added in moss3.g, tgc_new.s was
added identically in both moss2.g and moss3.g, and eto.s is different in moss2.g and moss3.g in some fashion
that the ancestor file moss.g cannot help gdiff resolve (a conflict, denoted by 'C'.)
</para>
<para>
To delve deeper into the nature of the changes, we increase the verbosity with the <option>v</option> option:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
We can now see that ellipse.r was deleted only from the right file (moss3.g) and was unchanged in moss2.g.
Similarly, we can tell that LIGHT wsa deleted from moss2.g, ellipse2.r was added in moss3.g, tgc_new.s was
added identically in both moss2.g and moss3.g, and eto.s is different in moss2.g and moss3.g in some fashion
that the ancestor file moss.g cannot help gdiff resolve (a conflict, denoted by 'C'.)
</para>
<para>
To delve deeper into the nature of the changes, we increase the verbosity with the <option>v</option> option:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 3 moss2.g moss.g moss3.g</userinput>
M(L) "platform.r" tree(p): - {l platform.s} {l cone.s}
M(L) "ellipse.s" C(p): 0 1.561016355403846755933728 1.561016355403846755933728
@@ -502,64 +502,64 @@ M(R) "tor" r_a(p): 30.18139425891995841766402
A(B) tgc_new.s
C(LA!=RA) eto.s
A(R) ellipse2.r
</computeroutput>
</literallayout>
At this level of verbosity, we can now see that most of the modifications are from the left (moss2.g) file. M(L) denotes
a change that is present only in the left file - the right (moss3.g) agrees with the ancestor. Similarly, we can now see
that the deletion of ellipse.r, the addition of ellipse2.r and the change to all.g come from moss3.g. The conflict
on eto.s is that two add operations (one in moss2.g, one in moss3.g) produced different eto.s primitives - there is no
ancestor for eto.s in moss.g, so there is no way to identify one of the eto.s primitives as "correct" - they have equal
standing, and manual intervention is needed to determine which eto.s is the "correct" version.
</para>
</example>
</computeroutput>
</literallayout>
At this level of verbosity, we can now see that most of the modifications are from the left (moss2.g) file. M(L) denotes
a change that is present only in the left file - the right (moss3.g) agrees with the ancestor. Similarly, we can now see
that the deletion of ellipse.r, the addition of ellipse2.r and the change to all.g come from moss3.g. The conflict
on eto.s is that two add operations (one in moss2.g, one in moss3.g) produced different eto.s primitives - there is no
ancestor for eto.s in moss.g, so there is no way to identify one of the eto.s primitives as "correct" - they have equal
standing, and manual intervention is needed to determine which eto.s is the "correct" version.
</para>
</example>
<example><title>Complex Three Way Differences</title>
<para>
Conflicts can arise from situations other than incompatible additions - an incompatible modification
is also enough to trigger a conflict. Consider three ellipsoids, one of which is an ancestor, one of
which has had its A and B vectors modified, and the other of which has had its B and C vectors modified.
A three-way diff of these files reports a conflict:
<literallayout>
<computeroutput>
<example><title>Complex Three Way Differences</title>
<para>
Conflicts can arise from situations other than incompatible additions - an incompatible modification
is also enough to trigger a conflict. Consider three ellipsoids, one of which is an ancestor, one of
which has had its A and B vectors modified, and the other of which has had its B and C vectors modified.
A three-way diff of these files reports a conflict:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff ell_1.g ell_0.g ell_2.g</userinput>
C ell.s
</computeroutput>
</literallayout>
</computeroutput>
</literallayout>
However, closer inspection reveals that this conflict is different than the one reported above for the eto.s object:
<literallayout>
<computeroutput>
However, closer inspection reveals that this conflict is different than the one reported above for the eto.s object:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v3 ell_1.g ell_0.g ell_2.g</userinput>
C(LM!=RM) ell.s
</computeroutput>
</literallayout>
This notation indicates that a modification in the left side (ell_1.g) does not match a modification made in ell_2.g.
Unlike the eto.s, which reported an add conflict, this is a modification conflict triggered by incompatible, different
parameters. Indeed a full verbosity inspection:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
This notation indicates that a modification in the left side (ell_1.g) does not match a modification made in ell_2.g.
Unlike the eto.s, which reported an add conflict, this is a modification conflict triggered by incompatible, different
parameters. Indeed a full verbosity inspection:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v4 ell_1.g ell_0.g ell_2.g</userinput>
M(R) "ell.s" C(p): 0 0 300
C(A) "ell.s" B(p): 0 500 0
C(L) "ell.s" B(p): 0 510 0
C(R) "ell.s" B(p): 0 300 0
M(L) "ell.s" A(p): 1100 0 0
</computeroutput>
</literallayout>
reveals that the changes to the A and C parameters are <emphasis>not</emphasis> in conflict - it is the B parameter that
is causing the problem.
</para>
</example>
</computeroutput>
</literallayout>
reveals that the changes to the A and C parameters are <emphasis>not</emphasis> in conflict - it is the B parameter that
is causing the problem.
</para>
</example>
<example><title>Merging Files</title>
<para>
The last and most powerful feature of <command>gdiff</command> is to <emphasis>merge</emphasis> two or three different
geometry files into a single output file. This is most useful when an ancestor is available and a three way merge can
be performed - in the two way case, the "ancestor" is an empty file and the results will tend to include many more
conflicts. For example, the three way merge of the moss examples earlier:
<literallayout>
<computeroutput>
<example><title>Merging Files</title>
<para>
The last and most powerful feature of <command>gdiff</command> is to <emphasis>merge</emphasis> two or three different
geometry files into a single output file. This is most useful when an ancestor is available and a three way merge can
be performed - in the two way case, the "ancestor" is an empty file and the results will tend to include many more
conflicts. For example, the three way merge of the moss examples earlier:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -M moss_merged.g moss2.g moss0.g moss3.g</userinput>
M platform.r
M ellipse.s
@@ -583,12 +583,12 @@ CONFLICT(eto.s).right cone.s platform.s
all.g/ ellipse.s tgc_new.s
box.r/R ellipse2.r/R tor
box.s light.r/R tor.r/R
</computeroutput>
</literallayout>
The resulting file has only two conflict objects present - the same eto.s issue that was discussed earlier. Trying to
do the same merge <emphasis>without</emphasis> the ancestor file:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
The resulting file has only two conflict objects present - the same eto.s issue that was discussed earlier. Trying to
do the same merge <emphasis>without</emphasis> the ancestor file:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -M moss_2way_merge.g moss2.g moss3.g</userinput>
M platform.r
M ellipse.s
@@ -619,36 +619,36 @@ CONFLICT(ellipse.s).right ellipse.r/R
CONFLICT(eto.s).left ellipse2.r/R
CONFLICT(eto.s).right platform.s
CONFLICT(light.r).left/R tgc_new.s
</computeroutput>
</literallayout>
The result is far less clean, although the merge was still performed - in this latter case, the end user will have to
resolve many more conflicting object states manually.
</para>
</example>
</computeroutput>
</literallayout>
The result is far less clean, although the merge was still performed - in this latter case, the end user will have to
resolve many more conflicting object states manually.
</para>
</example>
</refsect1>
</refsect1>
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
<para><citerefentry><refentrytitle>search</refentrytitle><manvolnum>n</manvolnum></citerefentry></para>
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
<para><citerefentry><refentrytitle>search</refentrytitle><manvolnum>n</manvolnum></citerefentry></para>
</refsect1>
</refsect1>
<refsect1 xml:id='author'><title>AUTHOR</title>
<para>BRL-CAD Team</para>
<refsect1 xml:id='author'><title>AUTHOR</title>
<para>BRL-CAD Team</para>
</refsect1>
</refsect1>
<refsect1 xml:id='copyright'><title>COPYRIGHT</title>
<para>This software is Copyright (c) 2014-2016 by the United States
Government as represented by U.S. Army Research Laboratory.</para>
<refsect1 xml:id='copyright'><title>COPYRIGHT</title>
<para>This software is Copyright (c) 2014-2016 by the United States
Government as represented by U.S. Army Research Laboratory.</para>
</refsect1>
</refsect1>
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
<para>Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;.</para>
</refsect1>
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
<para>Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;.</para>
</refsect1>
</refentry>
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- lifted from troff+man by doclifter -->
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='g_lint1'>
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='glint1'>
<refmeta>
<refentrytitle>G_LINT
</refentrytitle>
@@ -10,13 +10,13 @@
</refmeta>
<refnamediv>
<refname>g_lint</refname>
<refname>glint</refname>
<refpurpose>a BRL-CAD geometry checker</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>g_lint</command> <arg choice='opt'><replaceable>options</replaceable></arg>
<command>glint</command> <arg choice='opt'><replaceable>options</replaceable></arg>
<arg choice='plain'><replaceable>model.g</replaceable></arg>
<arg choice='plain' rep='repeat'><replaceable>objects</replaceable></arg>
@@ -25,7 +25,7 @@
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para><command>g_lint</command>
<para><command>glint</command>
uses
<citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry>
to fire an array of parallel rays
@@ -144,7 +144,7 @@ The default is 0.</para>
<listitem>
<para>Specifies that one ray should be fired from the center of each grid cell.
By default,
<command>g_lint</command>
<command>glint</command>
fires a ray from one random point in each cell.</para>
</listitem>
</varlistentry>
@@ -170,7 +170,7 @@ The default is 100 mm.</para>
<term><option>-o</option></term>
<listitem>
<para>Causes
<command>g_lint</command>
<command>glint</command>
to include in each report
the model coordinates of the ray origination point.
These appear between the tag and the rest of the data.</para>
@@ -180,7 +180,7 @@ These appear between the tag and the rest of the data.</para>
<term><option>-p</option></term>
<listitem>
<para>Causes
<command>g_lint</command>
<command>glint</command>
to produce its reports as
<emphasis remap='I'>plot3(5)</emphasis>
drawing commands instead of ASCII text.
@@ -238,14 +238,14 @@ The default is 1.</para>
<term><option>-s</option></term>
<listitem>
<para>Causes
<command>g_lint</command>
<command>glint</command>
to collect all the overlap reports and sort them before printing them.
The reports for a given pair of regions
are printed contiguously,
and the clusters of reports for the various pairs of regions
appear in order of decreasing cumulative overlap length.
By default,
<command>g_lint</command>
<command>glint</command>
reports overlaps immediately and in the order of their discovery.</para>
</listitem>
</varlistentry>
@@ -281,7 +281,7 @@ ignores air regions.</para>
<term><option>-x</option><replaceable> bits</replaceable></term>
<listitem>
<para>Sets the
<command>g_lint</command>
<command>glint</command>
debug flags to
<emphasis remap='I'>bits</emphasis>.
See the
@@ -299,7 +299,7 @@ Note that some of the report types have no corresponding diagnostics.</para>
<para>The command</para>
<!-- .in +5 -->
<para>g_lint -a 35 -e 25 -c -g 1 -r 31 -t 0.01 <emphasis remap='I'>kitchen.g appliances</emphasis></para>
<para>glint -a 35 -e 25 -c -g 1 -r 31 -t 0.01 <emphasis remap='I'>kitchen.g appliances</emphasis></para>
<!-- .in &bsol;-5 -->
<para>fires a ray every millimeter and produces overlap reports
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>HANDLE</refentrytitle>
<manvolnum>nged</manvolnum>
<manvolnum>1</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>PICKET_FENCE</refentrytitle>
<manvolnum>nged</manvolnum>
<manvolnum>1</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
+1 -2
View File
@@ -290,7 +290,6 @@
The
<citerefentry><refentrytitle>pix-fb</refentrytitle><manvolnum>1</manvolnum></citerefentry>
utility can be used later to display ".pix" files.
Note that using -o disables parallel processing.
</para>
</listitem>
</varlistentry>
@@ -394,7 +393,7 @@
<term><option>-C #/#/#</option></term>
<listitem>
<para>sets the background color to the RGB value #/#/#, where each #
is in the range of 0 to 255.
is in the range of 0 to 255 or 0.0 to 1.0.
All non-background colors will be dithered away from this value.</para>
</listitem>
</varlistentry>
+15 -14
View File
@@ -61,7 +61,7 @@
<term><option>-. #</option></term>
<listitem>
<para>
selects the factor used in NUgrid algorithm. Default is 1.5 .
selects the factor used in NUgrid algorithm. Default is 1.5 .
</para>
</listitem>
</varlistentry>
@@ -70,7 +70,7 @@
<term><option>-, #</option></term>
<listitem>
<para>
selects which space partitioning algorithm to use
selects which space partitioning algorithm to use
</para>
</listitem>
</varlistentry>
@@ -106,7 +106,7 @@
<term><option>-d #</option></term>
<listitem>
<para>sets flag for reporting of pixel distances: 1 for on, 0 (default) for off.
(Each pixel is represented by 3 bytes of color information followed by 8 bytes
(Each pixel is represented by 3 bytes of color information followed by 8 bytes
for a double, in IEEE format, which gives the distance to the ray's first hit.
If the ray doesn't hit, a zero distance is reported by default
which causes <citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
@@ -379,7 +379,7 @@
<term><option>-C #/#/#</option></term>
<listitem>
<para>sets the background color to the RGB value #/#/#, where each #
is in the range of 0 to 255.
is in the range of 0 to 255 or 0.0 to 1.0.
All non-background colors will be dithered away from this value.</para>
</listitem>
</varlistentry>
@@ -388,7 +388,7 @@
<term><option>-D #</option></term>
<listitem>
<para>This is the "desired frame" flag, specifying the frame number to start with.
Used with animation scripts; specify the desired ending (kill-after) frame with
Used with animation scripts; specify the desired ending (kill-after) frame with
<option>-K #</option> .</para>
</listitem>
</varlistentry>
@@ -397,7 +397,7 @@
<term><option>-E #</option></term>
<listitem>
<para>sets the distance from the eye point to the center of the model RPP; default is
the square root of 2.
the square root of 2.
Only useful with auto-sizing, and conflicts with
<option>-M</option> .</para>
</listitem>
@@ -425,10 +425,10 @@
<varlistentry>
<term><option>-H #</option></term>
<listitem>
<para>This is the "hypersample" flag, specifying number of extra rays to fire for each pixel to
obtain more accurate results without needing to store the extra pixels. Automatically invokes
<para>This is the "hypersample" flag, specifying number of extra rays to fire for each pixel to
obtain more accurate results without needing to store the extra pixels. Automatically invokes
<option>-J 1</option>. The final colors of all rays are averaged together. Better results can be
obtained by simply increasing the resolution, and decimating the results with a filter such as
obtained by simply increasing the resolution, and decimating the results with a filter such as
<citerefentry><refentrytitle>pixhalve</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
@@ -621,7 +621,7 @@
<term><option>-+ #</option></term>
<listitem>
<para>specifies (setting argument to "t") that output is NOT binary (default is that it is).
<option>-+</option> is otherwise not implemented.
<option>-+</option> is otherwise not implemented.
</para>
</listitem>
</varlistentry>
@@ -672,8 +672,8 @@
<listitem>
<para>
set the color of the foreground (edges) to the
given r,g,b triple. The default is white
(255,255,255).
given r,g,b triple, where each of r,g,b, is in the range 0 to 255 or 0.0 to 1.0.
The default is white (255/255/255).
</para>
</listitem>
</varlistentry>
@@ -688,7 +688,8 @@
<listitem>
<para>
set the color of the background to the r,g,b
triple. The default is near-black (0,0,1).
triple, where each of r,g,b is in the range 0 to 255 or 0.0 to 1.0.
The default is near-black (0,0,1).
</para>
</listitem>
</varlistentry>
@@ -943,7 +944,7 @@
<para>
The command
<userinput>rtedge -s1024 -o new.pix -c"set fg=0,255,0 bg=255,0,0" havoc.g havoc</userinput>
<userinput>rtedge -s1024 -o new.pix -c"set fg=0/255/0 bg=255/0/0" havoc.g havoc</userinput>
changes the edge color to be green and the background color to be red.
</para>
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>WINDOW</refentrytitle>
<manvolnum>nged</manvolnum>
<manvolnum>1</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>WINDOW_FRAME</refentrytitle>
<manvolnum>nged</manvolnum>
<manvolnum>1</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>WIRE</refentrytitle>
<manvolnum>nged</manvolnum>
<manvolnum>1</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
+3 -12
View File
@@ -6,7 +6,6 @@ set(mann_EN
Z.xml
adc.xml
ae.xml
alias-pix.xml
all_sf.xml
analyze.xml
anim_cascade.xml
@@ -53,7 +52,6 @@ set(mann_EN
cp.xml
cpi.xml
d.xml
dall.xml
db.xml
db_glob.xml
dbconcat.xml
@@ -82,12 +80,10 @@ set(mann_EN
em.xml
eqn.xml
erase.xml
erase_all.xml
ev.xml
exists.xml
exit.xml
expand.xml
export_body.xml
extrude.xml
eye_pt.xml
facedef.xml
@@ -96,12 +92,11 @@ set(mann_EN
fracture.xml
g.xml
garbage_collect.xml
gastank.xml
gdiff.xml
gqa.xml
gr.xml
graph.xml
gui.xml
handle.xml
help.xml
helpdevel.xml
helplib.xml
@@ -133,6 +128,7 @@ set(mann_EN
lt.xml
make.xml
make_pnts.xml
man.xml
mater.xml
matpick.xml
memprint.xml
@@ -153,7 +149,6 @@ set(mann_EN
pathlist.xml
paths.xml
permute.xml
picket_fence.xml
plot.xml
prcolor.xml
prefix.xml
@@ -204,7 +199,7 @@ set(mann_EN
sed.xml
setview.xml
shader.xml
shell.xml
shells.xml
showmats.xml
size.xml
solids.xml
@@ -232,7 +227,6 @@ set(mann_EN
vnirt.xml
voxelize.xml
vquery_ray.xml
vrmgr.xml
vrot.xml
wcodes.xml
whatid.xml
@@ -240,9 +234,6 @@ set(mann_EN
whichair.xml
whichid.xml
who.xml
window.xml
window_frame.xml
wire.xml
wmater.xml
x.xml
xpush.xml
+1 -1
View File
@@ -31,7 +31,7 @@
<command>d</command> command (use the <command>who</command> command to see
a list of explicitly displayed objects). Objects that are displayed as members
of explicitly displayed combinations cannot be deleted from the display with
this command (see <command>dall</command> or <command>erase_all</command>).
this command (see <command>erase -r</command>).
Note that this has no effect on the <emphasis>BRL-CAD</emphasis> database
itself. To actually remove objects from the database, use the
<command>kill</command> command.
-62
View File
@@ -1,62 +0,0 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="dall">
<refmeta>
<refentrytitle>DALL</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>dall</refname>
<refpurpose>Deletes the specified list of objects from the <emphasis>mged</emphasis>
display. This is a synonym for the <command>erase_all</command>command.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>dall</command>
<arg choice="req" rep="norepeat"><replaceable>objects</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>
Deletes the specified list of objects from the <emphasis>mged</emphasis>
display. This is a synonym for the <command>erase_all</command> command.
This command will allow the user to delete objects that have not been explicitly
displayed (unlike the <command>d</command> command). Note that this has no effect on the
<emphasis>BRL-CAD</emphasis> database itself. To actually remove objects from the database,
use the <command>kill</command>command.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>
The example shows the use of the <command>dall</command> command to delete a
region and a shape from the <emphasis>mged</emphasis> display, even if they
have not been explicitly displayed.
</para>
<example><title>Delete a region and a shape from the <emphasis>mged</emphasis> display,
even if they have not been explicitly displayed.</title>
<para><prompt>mged&gt;</prompt> <userinput>dall region1 shapea</userinput></para>
<para>Deletes <emphasis>region1</emphasis> and <emphasis>shapea</emphasis> from
the <emphasis>mged</emphasis> display.</para>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
-60
View File
@@ -1,60 +0,0 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="erase_all">
<refmeta>
<refentrytitle>ERASE_ALL</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>erase_all</refname>
<refpurpose>Deletes the specified list of objects from the MGED display.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>erase_all</command>
<arg choice="req" rep="norepeat"><replaceable>objects</replaceable></arg>
<arg choice="opt" rep="norepeat"/>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Deletes the specified list of objects from the MGED display. It is a synonym for the <command>dall</command> command. It allows the user to delete objects that have not been explicitly displayed (unlike the <command>d </command> or <command>erase</command> commands). Note that this has no effect on the BRL-CAD database itself. To actually remove objects from the database, use the <command>kill</command> command.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>erase_all</command> command to delete two objects from the MGED display.
</para>
<example><title>Delete objects from the MGED display.</title>
<variablelist>
<varlistentry>
<term><prompt>mged&gt;</prompt> <userinput>erase_all region1 shapea</userinput></term>
<listitem>
<para>Two objects, <emphasis>region1</emphasis> and <emphasis>shapea</emphasis>, are deleted from the MGED display.
</para>
</listitem>
</varlistentry>
</variablelist>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
-59
View File
@@ -1,59 +0,0 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="export_body">
<refmeta>
<refentrytitle>EXPORT_BODY</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>export_body</refname>
<refpurpose>Copies the contents of the specified binary <emphasis>object</emphasis> into the specified <emphasis>file</emphasis>.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>export_body</command>
<arg choice="req" rep="norepeat"><replaceable>object file</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Copies the contents of the specified binary <emphasis>object</emphasis> into the specified <emphasis>file</emphasis>. Currently, only binary objects containing a uniform
array of simple objects are supported.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>export_body</command> command to copy the contents of a particular binary <emphasis>object</emphasis> into a specified <emphasis>file</emphasis>.
</para>
<example><title>Copy the contents of a binary object into a file.</title>
<variablelist>
<varlistentry>
<term><prompt>mged&gt;</prompt> <userinput>export_body bin_chars /home/fred/chars </userinput></term>
<listitem>
<para>Copies the contents of “bin_chars” into the file “/home/fred/chars.”
</para>
</listitem>
</varlistentry>
</variablelist>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
+129
View File
@@ -0,0 +1,129 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="gdiffn">
<refmeta>
<refentrytitle>GDIFF</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>gdiff</refname>
<refpurpose>
a BRL-CAD differential geometry comparator
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>gdiff</command>
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
<arg choice="plain"><replaceable>left_object</replaceable></arg>
<arg choice="plain"><replaceable>right_object</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>
<command>gdiff</command> compares BRL-CAD geometry objects using
LIBRT's solid raytracing capabilities and visualizes differences in
the display manager.
</para>
<para>
Red segments are those generated only from intersections with the <emphasis>left_obj</emphasis>
object while blue segments represent intersections unique to the <emphasis>right_obj</emphasis>
object. White segments represent intersections common to both objects. By default, only segments
unique to the left and/or right objects are displayed.
</para>
<para>
Users will want to pay careful attention to grid size. By default gdiff
will try to guess a reasonable grid spacing using the bounding boxes of the
objects in question, but depending on the visual quality of the result users
may want to adjust the spacing up or down. Be careful of specifying tolerances
that are too fine - performance will drop off rapidly as grid spacing becomes
very small.
</para>
</refsection>
<refsection xml:id="gdiff_mged_options"><title>OPTIONS</title>
<variablelist remap="TP">
<varlistentry>
<term><emphasis remap="B" role="bold">-h</emphasis></term>
<listitem>
<para>
Prints help.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-g #</emphasis></term>
<listitem>
<para>
Controls grid spacing. Units are mm.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-l</emphasis></term>
<listitem>
<para>
Visualize solid segments occurring only in the left object.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-r</emphasis></term>
<listitem>
<para>
Visualize solid segments occurring only in the right object.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-b</emphasis></term>
<listitem>
<para>
Visualize solid segments occurring in both the left and right object (i.e. common or shared volume).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-G</emphasis></term>
<listitem>
<para>
Report differences in grazing hits. By default, differences are reported only when they can be
verified by shooting parallel rays offset around the original shotline reporting a difference.
This options disables that filter.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title>
<para>Clifford Yapp</para>
</refsection>
<refsection xml:id="copyright"><title>COPYRIGHT</title>
<para>
This software is Copyright (c) 2016 United States Government as
represented by the U.S. Army Research Laboratory.
</para>
</refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
<!-- vim: set shiftwidth=2 : -->
+51
View File
@@ -0,0 +1,51 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man_MGED">
<refmeta>
<refentrytitle>MAN</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD MGED Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>man</refname>
<refpurpose>View manual pages.</refpurpose>
</refnamediv>
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>man</command>
<arg choice="req" rep="norepeat"><replaceable>cmdname</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>
Launches the <command>brlman</command> graphical man page viewer with
the man page documenting the specified MGED command name.
</para>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title>
<para>
BRL-CAD Team
</para>
</refsection>
<refsection xml:id="copyright"><title>COPYRIGHT</title>
<para>
This software is Copyright (c) 2016 United States Government as
represented by the U.S. Army Rebrlman Laboratory.
</para>
</refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
<!-- vim: set shiftwidth=2 : -->
@@ -1,4 +1,4 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="shell">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="shells">
<refmeta>
<refentrytitle>SHELL</refentrytitle>
@@ -8,7 +8,7 @@
</refmeta>
<refnamediv xml:id="name">
<refname>shell</refname>
<refname>shells</refname>
<refpurpose>Separates the specified NMG shape into its constituent shells.
</refpurpose>
</refnamediv>
-67
View File
@@ -1,67 +0,0 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="vrmgr">
<refmeta>
<refentrytitle>VRMGR</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD MGED Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>vrmgr</refname>
<refpurpose>Establishes a link between the current MGED display and a
<emphasis>vrmgr</emphasis> process running on the specified <emphasis>host</emphasis>.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>vrmgr</command>
<arg choice="req" rep="norepeat"><replaceable>host</replaceable></arg>
<group choice="opt" rep="norepeat">
<arg choice="req" rep="norepeat">master</arg>
<arg choice="req" rep="norepeat">slave</arg>
<arg choice="req" rep="norepeat">overview</arg>
</group>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Establishes a link between the current MGED display and a
<emphasis>vrmgr</emphasis> process running on the specified <emphasis>host</emphasis>. The <emphasis>vrmgr</emphasis> program is a manager for virtual reality displays using MGED. The <emphasis>vrmgr</emphasis> process must be started on <emphasis>host</emphasis> prior to executing the <command>vrmgr</command> command in MGED. The second command line argument to the <command>vrmgr</command> command is the role of the current MGED display. The <emphasis>master</emphasis> display controls the viewing parameters of itself and all the <emphasis>slave</emphasis> displays. The <emphasis>overview</emphasis> display acts as an observer of the entire virtual reality process.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>vrmgr</command> command to set the current MGED display as the master for the <emphasis>vrmgr</emphasis> process running on the host.
</para>
<example><title>Set the current MGED display as the master for the <emphasis>vrmgr</emphasis> process running on the host.
</title>
<para>
<prompt>mged&gt;</prompt><userinput>vrmgr host1.arl.army.mil master</userinput>
</para>
<para>Sets the current MGED display as the <emphasis>master</emphasis> for the <emphasis>vrmgr</emphasis> process running on the host named <emphasis>host1.arl.army.mil</emphasis>.
</para>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
+1 -1
View File
@@ -80,7 +80,7 @@ tops tree whatid whichair whichid</B>
Methods associated with
<A HREF="../librt/dg_obj.html#sect9">LIBRT's drawable geometry object</A>:<BR>
<DL>
<DD><B>assoc blast clear draw erase erase_all ev get_autoview
<DD><B>assoc blast clear draw erase ev get_autoview
illum label observer overlay report rt rtcheck vdraw who zap</B>
</DD>
</DL>
+1 -1
View File
@@ -56,7 +56,7 @@ The following commands are possible for drawable objects:
Methods associated with
<A HREF="../librt/dg_obj.html#sect9">LIBRT's drawable geometry object</A>:<BR>
<DL>
<DD><B>assoc blast clear draw erase erase_all ev get_autoview
<DD><B>assoc blast clear draw erase ev get_autoview
illum label observer overlay report rt rtcheck vdraw who zap</B>
</DD>
</DL>
+1 -1
View File
@@ -146,7 +146,7 @@ title tol tops tree whatid whichair whichid</B>
<P>
Methods associated with <A HREF="../librt/dg_obj.html#sect9">LIBRT's drawable geometry object</A>:<BR>
<DL>
<DD><B>blast clear draw erase erase_all ev
<DD><B>blast clear draw erase ev
get_autoview get_dgname illum label overlay
report rt rtcheck vdraw who zap</B>
</DD>
+2 -2
View File
@@ -80,13 +80,13 @@ region id based colors.
may be deleted with the ``erase'' command (use the <a href="#who">who</a>
command to see a list of explicitly displayed objects). Objects that are
displayed as members of explicitly displayed combinations cannot be
deleted from the display with this command (see <a href="#erase_all">erase_all</a>).
deleted from the display with this command (see <a href="#erase -r">erase -r</a>).
Note that this has no effect on the
<I>BRL&#173CAD</I> database itself. To actually remove objects from the
database, use the <a href="#kill">kill</a> command.
</DD>
<P>
<DT><I>dgName</I> <A NAME="erase_all"><B>erase_all</B></A> <I>&lt;objects&gt</I></DT>
<DT><I>dgName</I> <A NAME="erase -r"><B>erase -r</B></A> <I>&lt;objects&gt</I></DT>
<DD>Delete the specified list of objects from the display list.
This command will allow the user to delete objects
that have not been explicitly displayed (unlike the <a href="#erase">erase</a> command).
+2 -43
View File
@@ -110,8 +110,6 @@
<FONT SIZE=2><P></FONT><A HREF="#cpi"><FONT SIZE=2>cpi</FONT></A></TD>
<TD WIDTH="20%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#d"><FONT SIZE=2>d</FONT></A></TD>
<TD WIDTH="22%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#dall"><FONT SIZE=2>dall</FONT></A></TD>
<TD WIDTH="21%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#db"><FONT SIZE=2>db</FONT></A></TD>
</TR>
@@ -165,8 +163,6 @@
<FONT SIZE=2><P></FONT><A HREF="#em"><FONT SIZE=2>em</FONT></A></TD>
<TD WIDTH="20%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#erase"><FONT SIZE=2>erase</FONT></A></TD>
<TD WIDTH="22%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#erase_all"><FONT SIZE=2>erase_all</FONT></A></TD>
<TD WIDTH="21%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#ev"><FONT SIZE=2>ev</FONT></A></TD>
</TR>
@@ -174,8 +170,6 @@
<FONT SIZE=2><P></FONT><A HREF="#exit"><FONT SIZE=2>exit</FONT></A></TD>
<TD WIDTH="19%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#expand"><FONT SIZE=2>expand</FONT></A></TD>
<TD WIDTH="20%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#export_body"><FONT SIZE=2>export_body</FONT></A></TD>
<TD WIDTH="22%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#expand_comb"><FONT SIZE=2>expand_comb</FONT></A></TD>
<TD WIDTH="21%" VALIGN="MIDDLE">
@@ -467,9 +461,6 @@
<FONT SIZE=2><P></FONT><A HREF="#vnirt"><FONT SIZE=2>vnirt</FONT></A></TD>
<TD WIDTH="20%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#vquery_ray"><FONT SIZE=2>vquery_ray</FONT></A></TD>
<TD WIDTH="22%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#vrmgr"><FONT SIZE=2>vrmgr</FONT></A></TD>
<TD WIDTH="21%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#vrot"><FONT SIZE=2>vrot</FONT></A></TD>
</TR>
<TR><TD WIDTH="18%" VALIGN="MIDDLE">
@@ -1092,20 +1083,12 @@
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="d"></A>d</B> <I>&lt;objects</I>&gt;</DT>
<DD>The &quot;d&quot; command deletes the specified list of objects from the <I>mged</I> display. This is a synonym for the <A HREF="#erase">erase</A> command. Only objects that have been explicitly displayed may be deleted with the &quot;d&quot; command (use the <A HREF="#who">who</A> command to see a list of explicitly displayed objects). Objects that are displayed as members of explicitly displayed combinations cannot be deleted from the display with this command (see <A HREF="#dall">dall</A> or <A HREF="#erase_all">erase_all</A>). Note that this has no effect on the <I>BRL-CAD</I> database itself. To actually remove objects from the database, use the <A HREF="#kill">kill</A> command.</DD>
<DD>The &quot;d&quot; command deletes the specified list of objects from the <I>mged</I> display. This is a synonym for the <A HREF="#erase">erase</A> command. Only objects that have been explicitly displayed may be deleted with the &quot;d&quot; command (use the <A HREF="#who">who</A> command to see a list of explicitly displayed objects). Objects that are displayed as members of explicitly displayed combinations cannot be deleted from the display with this command (see <A HREF="#erase">erase -r</A>). Note that this has no effect on the <I>BRL-CAD</I> database itself. To actually remove objects from the database, use the <A HREF="#kill">kill</A> command.</DD>
<FONT SIZE=4><DT>Examples:</DT>
</FONT><TT><DD>mged&gt;</TT> <B>d region1 shapea</DD>
</DL>
</B><FONT SIZE=2><P>-- Delete <I>region1</I> and <I>shapea</I> from the <I>mged</I> display. </P>
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="dall"></A>dall</B> <I>&lt;objects</I>&gt;</DT>
<DD>The &quot;dall&quot; command deletes the specified list of objects from the <I>mged</I> display. This is a synonym for the <A HREF="#erase_all">erase_all</A> command. This command will allow the user to delete objects that have not been explicitly displayed (unlike the <A HREF="#d">d</A> command). Note that this has no effect on the <I>BRL-CAD</I> database itself. To actually remove objects from the database, use the <A HREF="#kill">kill</A> command.</DD>
<FONT SIZE=4><DT>Examples:</DT>
</FONT><TT><DD>mged&gt;</TT> <B>dall region1 shapea</DD>
</DL>
</B><FONT SIZE=2><P>-- Delete <I>region1</I> and <I>shapea</I> from the <I>mged</I> display. </P>
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="db"></A>db</B> <I>command</I> [<I>args...</I>]</DT>
@@ -1466,21 +1449,13 @@ l r230 r231 r232 r233 r234 r235 r236 r237 r238 r239 <BR>
<DD><HR ALIGN="RIGHT"></DD></DIR>
<B><DT>erase</B> <I>&lt;objects</I>&gt;</DT>
<DD>The &quot;erase&quot; command deletes the specified list of objects from the MGED<I> </I>display. This is a synonym for the <A HREF="#d">d</A> command. Only objects that have been explicitly displayed may be deleted with the &quot;erase&quot; command (use the <A HREF="#who">who</A> command to see a list of explicitly displayed objects). Objects that are displayed as members of explicitly displayed combinations cannot be deleted from the display with this command (see <A HREF="#dall">dall</A> or <A HREF="#erase_all">erase_all</A>). Note that this has no effect on the <I>BRL-CAD</I> database itself. To actually remove objects from the database, use the <A HREF="#kill">kill</A> command.</DD>
<DD>The &quot;erase&quot; command deletes the specified list of objects from the MGED<I> </I>display. This is a synonym for the <A HREF="#d">d</A> command. Only objects that have been explicitly displayed may be deleted with the &quot;erase&quot; command (use the <A HREF="#who">who</A> command to see a list of explicitly displayed objects). Objects that are displayed as members of explicitly displayed combinations cannot be deleted from the display with this command (see <A HREF="#erase">erase -r</A>). Note that this has no effect on the <I>BRL-CAD</I> database itself. To actually remove objects from the database, use the <A HREF="#kill">kill</A> command.</DD>
<FONT SIZE=4><DT>Examples:</DT>
</FONT><TT><DD>mged&gt;</TT> <B>erase region1 shapea</DD>
</DL>
</B><FONT SIZE=2><P>-- Delete <I>region1</I> and <I>shapea</I> from the MGED display. </P>
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="erase_all"></A>erase_all</B> <I>&lt;objects</I>&gt;</DT>
<DD>The &quot;erase_all&quot; command deletes the specified list of objects from the MGED display. This is a synonym for the <A HREF="#dall">dall</A> command. This command will allow the user to delete objects that have not been explicitly displayed (unlike the <A HREF="#d">d</A> or <A HREF="#erase">erase</A> commands). Note that this has no effect on the <I>BRL-CAD</I> database itself. To actually remove objects from the database, use the <A HREF="#kill">kill</A> command.</DD>
<FONT SIZE=4><DT>Examples:</DT>
</FONT><TT><DD>mged&gt;</TT> <B>erase_all region1 shapea</DD>
</DL>
</B><FONT SIZE=2><P>-- Delete <I>region1</I> and <I>shapea</I> from the MGED display. </P>
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="ev"></A>ev</B> [<I>-dfnrstuvwST</I>] [<I>-P#</I>] [-C#/#/#] &lt;<I>objects</I>&gt;</DT>
<DD>The &quot;ev&quot; command evaluates the <I>objects</I> specified by tessellating all <A HREF="#SOLID">primitive shapes</A> in the objects and then performing any <A HREF="#BOOLEAN">Boolean operations</A> specified in the <I>objects</I>. The result is then displayed in the MGED display according to the specified options:</DD>
</DL>
@@ -1528,13 +1503,6 @@ l r230 r231 r232 r233 r234 r235 r236 r237 r238 r239 <BR>
</B><FONT SIZE=2><P>-- Display a list of all database object names that end in &quot;.r&quot;. </P>
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="export_body"></A>export_body <I>object file </DT>
</B></I><DD>The &quot;export_body&quot; command is used to copy the contents of the specified binary <I>object</I> into the specified <I>file</I>. Currently, only binary objects containing a uniform array of simple objects is supported. </DD>
<DT></DT>
<FONT SIZE=4><DD>Examples: </DD>
</FONT><TT><DD>mged&gt;</TT> <B>export_body bin_chars /home/fred/chars</DD>
</B><DD>-- Copy the contents of &quot;bin_chars&quot; into the file &quot;/home/fred/chars&quot;</DD>
<DT><HR ALIGN="RIGHT"></DT>
<DT><b><a name="expand_comb"></a>expand_comb <i>prefix comb ...</i></DT>
<DD>The <i>expand_comb</i> will create a new combination object <i>prefix</i>.
For each Boolean node in the original tree of the combination a new
@@ -3510,15 +3478,6 @@ All textual arguments may be abbreviated by their first letter. </P>
<DT><A NAME="vquery_ray"></A>vquery_ray</B> <I>x y</DT>
</I><DD>Same as <A HREF="#vnirt">vnirt</A>.</DD>
</DL>
<FONT SIZE=2><P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="vrmgr"></A>vrmgr</B> <I>host</I> {<I>master</I> | <I>slave</I> | <I>overview</I>}</DT>
<DD>The &quot;vrmgr&quot; command establishes a link between the current MGED display and a <I>vrmgr</I> process running on the specified <I>host</I>. The <I>vrmgr</I> program is a manager for virtual reality displays using MGED. The <I>vrmgr</I> process must be started on <I>host</I> prior to executing the <I>vrmgr</I> command in MGED. The second command line argument to the <I>vrmgr</I> command is the role of the current MGED display. The <I>master</I> display controls the viewing parameters of itself and all the <I>slave</I> displays. The <I>overview</I> display acts as an observer of the entire virtual reality process.</DD>
<FONT SIZE=4><DT>Examples:</DT>
</FONT><TT><DD>mged&gt;</TT> <B>vrmgr host1.brlcad.org master</DD>
</DL><DIR>
</B><FONT SIZE=2><P>-- Set the current MGED display as the <I>master</I> for the <I>vrmgr</I> process running on the host named <I>host1.brlcad.org.</I> </P></DIR>
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
+1 -5
View File
@@ -1007,7 +1007,6 @@
****** [[file:../doc/docbook/system/mann/en/facedef.xml][facedef.xml]]
****** [[file:../doc/docbook/system/mann/en/rcc-cap.xml][rcc-cap.xml]]
****** [[file:../doc/docbook/system/mann/en/quit.xml][quit.xml]]
****** [[file:../doc/docbook/system/mann/en/vrmgr.xml][vrmgr.xml]]
****** [[file:../doc/docbook/system/mann/en/make.xml][make.xml]]
****** [[file:../doc/docbook/system/mann/en/whichair.xml][whichair.xml]]
****** [[file:../doc/docbook/system/mann/en/viewsize.xml][viewsize.xml]]
@@ -1037,7 +1036,6 @@
****** [[file:../doc/docbook/system/mann/en/attr.xml][attr.xml]]
****** [[file:../doc/docbook/system/mann/en/dup.xml][dup.xml]]
****** [[file:../doc/docbook/system/mann/en/eye_pt.xml][eye_pt.xml]]
****** [[file:../doc/docbook/system/mann/en/dall.xml][dall.xml]]
****** [[file:../doc/docbook/system/mann/en/bot_split.xml][bot_split.xml]]
****** [[file:../doc/docbook/system/mann/en/copymat.xml][copymat.xml]]
****** [[file:../doc/docbook/system/mann/en/read_muves.xml][read_muves.xml]]
@@ -1074,7 +1072,7 @@
****** [[file:../doc/docbook/system/mann/en/preview.xml][preview.xml]]
****** [[file:../doc/docbook/system/mann/en/search.xml][search.xml]]
****** [[file:../doc/docbook/system/mann/en/brep.xml][brep.xml]]
****** [[file:../doc/docbook/system/mann/en/erase_all.xml][erase_all.xml]]
****** [[file:../doc/docbook/system/mann/en/erase.xml][erase.xml]]
****** [[file:../doc/docbook/system/mann/en/expand.xml][expand.xml]]
****** [[file:../doc/docbook/system/mann/en/xpush.xml][xpush.xml]]
****** [[file:../doc/docbook/system/mann/en/pull.xml][pull.xml]]
@@ -1083,7 +1081,6 @@
****** [[file:../doc/docbook/system/mann/en/l.xml][l.xml]]
****** [[file:../doc/docbook/system/mann/en/handle.xml][handle.xml]]
****** [[file:../doc/docbook/system/mann/en/edmater.xml][edmater.xml]]
****** [[file:../doc/docbook/system/mann/en/export_body.xml][export_body.xml]]
****** [[file:../doc/docbook/system/mann/en/tol.xml][tol.xml]]
****** [[file:../doc/docbook/system/mann/en/exists.xml][exists.xml]]
****** [[file:../doc/docbook/system/mann/en/title.xml][title.xml]]
@@ -12814,7 +12811,6 @@
*** [[file:../regress/mged/rotobj.mged][rotobj.mged]]
*** [[file:../regress/mged/i.mged][i.mged]]
*** [[file:../regress/mged/run_test][run_test]]
*** [[file:../regress/mged/dall.mged][dall.mged]]
*** [[file:../regress/mged/mvall.mged][mvall.mged]]
*** [[file:../regress/mged/center.mged][center.mged]]
*** [[file:../regress/mged/push.mged][push.mged]]
+35 -125
View File
@@ -28,11 +28,8 @@
#define BREP_BBNODE_H
#include "common.h"
#include "brep/defines.h"
#include "brep/ray.h"
#include "brep/brnode.h"
#include "brep/curvetree.h"
#include "brep/util.h"
#include "brep.h"
/** @{ */
/** @file brep/bbnode.h */
@@ -65,18 +62,22 @@ extern "C++" {
/**
* Bounding Box Hierarchy Node
*/
class BREP_EXPORT BBNode {
class BREP_EXPORT BBNode : public PooledObject<BBNode> {
public:
explicit BBNode(const ON_BoundingBox &node, const CurveTree *ct = NULL);
BBNode(const CurveTree *ct,
const ON_BoundingBox &node,
const ON_BrepFace *face,
const ON_Interval &u,
const ON_Interval &v,
bool checkTrim,
bool trimmed);
~BBNode();
BBNode(Deserializer &deserieralizer, const CurveTree &ctree);
void serialize(Serializer &serializer) const;
const ON_BrepFace &get_face() const;
/** Test if this node is a leaf node in the hierarchy */
bool isLeaf() const;
@@ -122,14 +123,12 @@ extern "C++" {
void BuildBBox();
bool prepTrims();
/** List of all children of a given node */
std::vector<BBNode *> * const m_children;
const std::vector<BBNode *> &get_children() const;
/** Bounding Box */
ON_BoundingBox m_node;
/** Surface Information */
const ON_BrepFace *m_face;
ON_Interval m_u;
ON_Interval m_v;
@@ -145,12 +144,15 @@ extern "C++" {
/* Normal at the m_estimate point */
ON_3dVector m_normal;
/** Curve Tree associated with the parent Surface Tree */
const CurveTree * const m_ctree;
private:
BBNode(const BBNode &source);
BBNode &operator=(const BBNode &source);
void removeChild(BBNode *child);
bool intersectedBy(const ON_Ray &ray, double *tnear = NULL, double *tfar = NULL) const;
/** Report if a given uv point is within the uv boundaries defined
@@ -158,76 +160,22 @@ extern "C++" {
*/
bool containsUV(const ON_2dPoint &uv) const;
bool doTrimming() const;
void getTrimsAbove(const ON_2dPoint &uv, std::list<const BRNode *> &out_leaves) const;
const BBNode *closer(const ON_3dPoint &pt, const BBNode *left, const BBNode *right) const;
/** Curve Tree associated with the parent Surface Tree */
const CurveTree * const m_ctree;
struct Stl : public PooledObject<Stl> {
Stl() : m_children(), m_trims_above() {}
std::list<const BRNode *> * const m_trims_above;
std::vector<BBNode *> m_children;
std::list<const BRNode *> m_trims_above;
} * const m_stl;
};
inline
BBNode::BBNode(const ON_BoundingBox &node, const CurveTree *ct) :
m_children(new std::vector<BBNode *>),
m_node(node),
m_face(NULL),
m_u(),
m_v(),
m_checkTrim(true),
m_trimmed(false),
m_estimate(),
m_normal(),
m_ctree(ct),
m_trims_above(new std::list<const BRNode *>)
{
for (int i = 0; i < 3; i++) {
double d = m_node.m_max[i] - m_node.m_min[i];
if (ON_NearZero(d, ON_ZERO_TOLERANCE)) {
m_node.m_min[i] -= 0.001;
m_node.m_max[i] += 0.001;
}
}
}
inline
_BU_ATTR_ALWAYS_INLINE
BBNode::BBNode(
const CurveTree *ct,
const ON_BoundingBox &node,
const ON_BrepFace *face,
const ON_Interval &u,
const ON_Interval &v,
bool checkTrim,
bool trimmed):
m_children(new std::vector<BBNode *>),
m_node(node),
m_face(face),
m_u(u),
m_v(v),
m_checkTrim(checkTrim),
m_trimmed(trimmed),
m_estimate(),
m_normal(),
m_ctree(ct),
m_trims_above(new std::list<const BRNode *>)
{
for (int i = 0; i < 3; i++) {
double d = m_node.m_max[i] - m_node.m_min[i];
if (ON_NearZero(d, ON_ZERO_TOLERANCE)) {
m_node.m_min[i] -= 0.001;
m_node.m_max[i] += 0.001;
}
}
}
inline void
BBNode::addChild(BBNode *child)
{
if (LIKELY(child != NULL)) {
m_children->push_back(child);
m_stl->m_children.push_back(child);
}
}
@@ -235,23 +183,33 @@ extern "C++" {
BBNode::removeChild(BBNode *child)
{
std::vector<BBNode *>::iterator i;
for (i = m_children->begin(); i != m_children->end();) {
for (i = m_stl->m_children.begin(); i != m_stl->m_children.end();) {
if (*i == child) {
delete *i;
i = m_children->erase(i);
i = m_stl->m_children.erase(i);
} else {
++i;
}
}
}
inline const ON_BrepFace &
BBNode::get_face() const
{
return *m_ctree->m_face;
}
inline const std::vector<BBNode *> &
BBNode::get_children() const
{
return m_stl->m_children;
}
inline bool
BBNode::isLeaf() const
{
if (m_children->empty()) {
return true;
}
return false;
return m_stl->m_children.empty();
}
inline void
@@ -276,54 +234,6 @@ extern "C++" {
max[2] = m_node.m_max[2];
}
inline bool
BBNode::intersectedBy(const ON_Ray &ray, double *tnear_opt /* = NULL */, double *tfar_opt /* = NULL */) const
{
double tnear = -DBL_MAX;
double tfar = DBL_MAX;
bool untrimmedresult = true;
for (int i = 0; i < 3; i++) {
if (UNLIKELY(ON_NearZero(ray.m_dir[i]))) {
if (ray.m_origin[i] < m_node.m_min[i] || ray.m_origin[i] > m_node.m_max[i]) {
untrimmedresult = false;
}
} else {
double t1 = (m_node.m_min[i] - ray.m_origin[i]) / ray.m_dir[i];
double t2 = (m_node.m_max[i] - ray.m_origin[i]) / ray.m_dir[i];
if (t1 > t2) {
double tmp = t1; /* swap */
t1 = t2;
t2 = tmp;
}
V_MAX(tnear, t1);
V_MIN(tfar, t2);
if (tnear > tfar) { /* box is missed */
untrimmedresult = false;
}
/* go ahead and solve hits behind us
if (tfar < 0) untrimmedresult = false;
*/
}
}
if (LIKELY(tnear_opt != NULL && tfar_opt != NULL)) {
*tnear_opt = tnear;
*tfar_opt = tfar;
}
if (isLeaf()) {
return !m_trimmed && untrimmedresult;
} else {
return untrimmedresult;
}
}
inline bool
BBNode::doTrimming() const
{
return m_checkTrim;
}
} /* namespace brlcad */
} /* extern C++ */
+22 -143
View File
@@ -36,7 +36,7 @@ extern "C++" {
/* @endcond */
}
#endif
#include "brep/defines.h"
#include "brep.h"
/** @{ */
/** @file brep/brnode.h */
@@ -51,10 +51,11 @@ extern "C++" {
/**
* Bounding Rectangle Hierarchy
*/
class BREP_EXPORT BRNode {
class BREP_EXPORT BRNode : public PooledObject<BRNode> {
public:
explicit BRNode(const ON_BoundingBox &node);
BRNode(const ON_Curve *curve,
int trim_index,
int adj_face_index,
const ON_BoundingBox &node,
const ON_BrepFace *face,
@@ -64,6 +65,9 @@ extern "C++" {
bool trimmed);
~BRNode();
BRNode(Deserializer &deserializer, const ON_Brep &brep);
void serialize(Serializer &serializer) const;
/** Node management functions */
void addChild(BRNode *child);
@@ -107,7 +111,7 @@ extern "C++" {
bool m_XIncreasing;
bool m_Horizontal;
bool m_Vertical;
const bool m_innerTrim;
bool m_innerTrim;
private:
BRNode(const BRNode &source);
@@ -118,152 +122,34 @@ extern "C++" {
/** Test if this node is a leaf node (i.e. m_children is empty) */
bool isLeaf() const;
bool doTrimming() const;
fastf_t getLinearEstimateOfV(fastf_t u) const;
const BRNode *closer(const ON_3dPoint &pt, const BRNode *left, const BRNode *right) const;
/** List of all children of a given node */
std::vector<const BRNode *> * const m_children;
struct Stl : public PooledObject<Stl> {
Stl() : m_children() {}
const ON_BrepFace * const m_face;
std::vector<const BRNode *> m_children;
} * const m_stl;
const ON_BrepFace *m_face;
ON_Interval m_u;
const ON_Curve * const m_trim;
const ON_Curve *m_trim;
int m_trim_index;
ON_Interval m_t;
const bool m_checkTrim;
const bool m_trimmed;
const ON_3dPoint m_estimate;
bool m_checkTrim;
bool m_trimmed;
ON_3dPoint m_estimate;
fastf_t m_slope;
fastf_t m_bb_diag;
ON_3dPoint m_start;
ON_3dPoint m_end;
};
inline
_BU_ATTR_ALWAYS_INLINE
BRNode::BRNode(
const ON_Curve *curve,
int adj_face_index,
const ON_BoundingBox &node,
const ON_BrepFace *face,
const ON_Interval &t,
bool innerTrim,
bool checkTrim,
bool trimmed) :
m_node(node),
m_v(),
m_adj_face_index(adj_face_index),
m_XIncreasing(false),
m_Horizontal(false),
m_Vertical(false),
m_innerTrim(innerTrim),
m_children(new std::vector<const BRNode *>),
m_face(face),
m_u(),
m_trim(curve),
m_t(t),
m_checkTrim(checkTrim),
m_trimmed(trimmed),
m_estimate(),
m_slope(0.0),
m_bb_diag(0.0),
m_start(curve->PointAt(m_t[0])),
m_end(curve->PointAt(m_t[1]))
{
/* check for vertical segments they can be removed from trims
* above (can't tell direction and don't need
*/
m_Horizontal = false;
m_Vertical = false;
/*
* should be okay since we split on Horz/Vert tangents
*/
if (m_end[X] < m_start[X]) {
m_u[0] = m_end[X];
m_u[1] = m_start[X];
} else {
m_u[0] = m_start[X];
m_u[1] = m_end[X];
}
if (m_end[Y] < m_start[Y]) {
m_v[0] = m_end[Y];
m_v[1] = m_start[Y];
} else {
m_v[0] = m_start[Y];
m_v[1] = m_end[Y];
}
if (NEAR_EQUAL(m_end[X], m_start[X], 0.000001)) {
m_Vertical = true;
if (m_innerTrim) {
m_XIncreasing = false;
} else {
m_XIncreasing = true;
}
} else if (NEAR_EQUAL(m_end[Y], m_start[Y], 0.000001)) {
m_Horizontal = true;
if ((m_end[X] - m_start[X]) > 0.0) {
m_XIncreasing = true;
} else {
m_XIncreasing = false;
}
m_slope = 0.0;
} else {
if ((m_end[X] - m_start[X]) > 0.0) {
m_XIncreasing = true;
} else {
m_XIncreasing = false;
}
m_slope = (m_end[Y] - m_start[Y]) / (m_end[X] - m_start[X]);
}
m_bb_diag = DIST_PT_PT(m_start, m_end);
}
inline
_BU_ATTR_ALWAYS_INLINE
BRNode::BRNode(const ON_BoundingBox &node) :
m_node(node),
m_v(),
m_adj_face_index(-99),
m_XIncreasing(false),
m_Horizontal(false),
m_Vertical(false),
m_innerTrim(false),
m_children(new std::vector<const BRNode *>),
m_face(NULL),
m_u(),
m_trim(NULL),
m_t(),
m_checkTrim(true),
m_trimmed(false),
m_estimate(),
m_slope(0.0),
m_bb_diag(0.0),
m_start(ON_3dPoint::UnsetPoint),
m_end(ON_3dPoint::UnsetPoint)
{
for (int i = 0; i < 3; i++) {
double d = m_node.m_max[i] - m_node.m_min[i];
if (NEAR_ZERO(d, ON_ZERO_TOLERANCE)) {
m_node.m_min[i] -= 0.001;
m_node.m_max[i] += 0.001;
}
}
m_start = m_node.m_min;
m_end = m_node.m_max;
}
inline void
BRNode::addChild(BRNode *child)
{
if (LIKELY(child != NULL)) {
m_children->push_back(child);
m_stl->m_children.push_back(child);
}
}
@@ -271,10 +157,10 @@ extern "C++" {
BRNode::removeChild(BRNode *child)
{
std::vector<const BRNode *>::iterator i;
for (i = m_children->begin(); i != m_children->end();) {
for (i = m_stl->m_children.begin(); i != m_stl->m_children.end();) {
if (*i == child) {
delete *i;
i = m_children->erase(i);
i = m_stl->m_children.erase(i);
} else {
++i;
}
@@ -284,14 +170,13 @@ extern "C++" {
inline bool
BRNode::isLeaf() const
{
if (m_children->empty()) {
if (m_stl->m_children.empty()) {
return true;
}
return false;
}
inline void
_BU_ATTR_ALWAYS_INLINE
BRNode::GetBBox(fastf_t *min, fastf_t *max) const
{
VSETALL(min, INFINITY);
@@ -304,12 +189,6 @@ extern "C++" {
}
}
inline bool
BRNode::doTrimming() const
{
return m_checkTrim;
}
extern bool sortX(const BRNode *first, const BRNode *second);
extern bool sortY(const BRNode *first, const BRNode *second);
+26 -8
View File
@@ -28,8 +28,8 @@
#define BREP_CURVETREE_H
#include "common.h"
#include "brep/defines.h"
#include "brep/brnode.h"
#include "brep.h"
/** @{ */
/** @file brep/curvetree.h */
@@ -39,16 +39,24 @@
__BEGIN_DECLS
extern "C++" {
#include <map>
namespace brlcad {
/**
* CurveTree declaration
*/
class BREP_EXPORT CurveTree {
class BREP_EXPORT CurveTree : public PooledObject<CurveTree> {
public:
explicit CurveTree(const ON_BrepFace *face);
~CurveTree();
CurveTree(Deserializer &deserializer, const ON_BrepFace &face);
void serialize(Serializer &serializer) const;
std::vector<std::size_t> serialize_get_leaves_keys(const std::list<const BRNode *> &leaves) const;
std::list<const BRNode *> serialize_get_leaves(const std::size_t *keys, std::size_t num_keys) const;
void serialize_cleanup() const;
/**
* Return just the leaves of the surface tree
*/
@@ -58,6 +66,8 @@ extern "C++" {
void getLeavesRight(std::list<const BRNode *> &out_leaves, const ON_2dPoint &pt, fastf_t tol) const;
private:
friend class BBNode;
CurveTree(const CurveTree &source);
CurveTree &operator=(const CurveTree &source);
@@ -77,13 +87,21 @@ extern "C++" {
bool getHVTangents(const ON_Curve *curve, const ON_Interval &t, std::list<fastf_t> &list) const;
bool isLinear(const ON_Curve *curve, double min, double max) const;
BRNode *subdivideCurve(const ON_Curve *curve, int adj_face_index, double min, double max, bool innerTrim, int depth) const;
BRNode *curveBBox(const ON_Curve *curve, int adj_face_index, const ON_Interval &t, bool isLeaf, bool innerTrim, const ON_BoundingBox &bb) const;
BRNode *initialLoopBBox() const;
BRNode *subdivideCurve(const ON_Curve *curve, int trim_index, int adj_face_index, double min, double max, bool innerTrim, int depth) const;
BRNode *curveBBox(const ON_Curve *curve, int trim_index, int adj_face_index, const ON_Interval &t, bool isLeaf, bool innerTrim, const ON_BoundingBox &bb) const;
static ON_BoundingBox initialLoopBBox(const ON_BrepFace &face);
const ON_BrepFace * const m_face;
BRNode * const m_root;
std::list<const BRNode *> * const m_sortedX;
BRNode *m_root;
struct Stl : public PooledObject<Stl> {
Stl() : m_sortedX() {}
std::vector<const BRNode *> m_sortedX;
} * const m_stl;
mutable std::map<const BRNode *, std::size_t> *m_sortedX_indices;
};
+242 -1
View File
@@ -28,16 +28,26 @@
#define BREP_UTIL_H
#include "common.h"
#include "brep/defines.h"
/** @{ */
/** @file brep/util.h */
#ifdef __cplusplus
#include "brep.h"
#include "bu/cv.h"
#include "bu/endian.h"
#include "bu/log.h"
#include "bu/malloc.h"
#include "bu/parse.h"
#include <arpa/inet.h>
__BEGIN_DECLS
extern "C++" {
#include <cstring>
BREP_EXPORT bool ON_NearZero(double x, double tolerance = ON_ZERO_TOLERANCE);
@@ -93,6 +103,237 @@ extern "C++" {
BREP_EXPORT void set_key(struct bu_vls *key, int k, int *karray);
class Serializer
{
public:
Serializer() :
m_capacity(1024 * 1024),
m_external()
{
BU_EXTERNAL_INIT(&m_external);
m_external.ext_buf = static_cast<uint8_t *>(bu_malloc(m_capacity, "m_external"));
}
~Serializer()
{
bu_free_external(&m_external);
}
bu_external take()
{
const bu_external result = m_external;
m_capacity = 1024 * 1024;
BU_EXTERNAL_INIT(&m_external);
m_external.ext_buf = static_cast<uint8_t *>(bu_malloc(m_capacity, "m_external"));
return result;
}
void write_uint8(uint8_t value)
{
uint8_t * const dest = extend(sizeof(value));
*dest = value;
}
void write_uint32(uint32_t value)
{
uint8_t * const dest = extend(SIZEOF_NETWORK_LONG);
const uint32_t out_value = htonl(value);
std::memcpy(dest, &out_value, SIZEOF_NETWORK_LONG);
}
void write_int32(int32_t value)
{
uint8_t * const dest = extend(SIZEOF_NETWORK_LONG);
long out_value = value;
if (UNLIKELY(1 != bu_cv_htonsl(dest, SIZEOF_NETWORK_LONG, &out_value, 1)))
bu_bomb("bu_cv_htonsl() failed");
}
void write_double(double value)
{
uint8_t * const dest = extend(SIZEOF_NETWORK_DOUBLE);
bu_cv_htond(dest, reinterpret_cast<const unsigned char *>(&value), 1);
}
void write(const ON_3dPoint &value)
{
write_double(value.x);
write_double(value.y);
write_double(value.z);
}
void write(const ON_BoundingBox &value)
{
write(value.m_min);
write(value.m_max);
}
void write(const ON_Interval &value)
{
write_double(value.m_t[0]);
write_double(value.m_t[1]);
}
private:
Serializer(const Serializer &source);
Serializer &operator=(const Serializer &source);
uint8_t *extend(std::size_t size)
{
const std::size_t position = m_external.ext_nbytes;
m_external.ext_nbytes += size;
if (m_external.ext_nbytes > m_capacity) {
m_capacity = m_external.ext_nbytes * 2;
m_external.ext_buf = static_cast<uint8_t *>(bu_realloc(m_external.ext_buf, m_capacity, "m_external"));
}
return &m_external.ext_buf[position];
}
std::size_t m_capacity;
bu_external m_external;
};
class Deserializer
{
public:
Deserializer(const bu_external &external) :
m_position(0),
m_external(external)
{
BU_CK_EXTERNAL(&m_external);
}
~Deserializer()
{
if (m_position != m_external.ext_nbytes)
bu_bomb("did not deserialize entire stream");
}
uint8_t read_uint8()
{
return *get(1);
}
uint32_t read_uint32()
{
uint32_t result;
std::memcpy(&result, get(SIZEOF_NETWORK_LONG), SIZEOF_NETWORK_LONG);
return ntohl(result);
}
int32_t read_int32()
{
long result;
if (UNLIKELY(1 != bu_cv_ntohsl(&result, sizeof(result), const_cast<void *>(reinterpret_cast<const void *>(get(SIZEOF_NETWORK_LONG))), 1)))
bu_bomb("bu_cv_ntohsl() failed");
return result;
}
double read_double()
{
double result;
bu_cv_ntohd(reinterpret_cast<unsigned char *>(&result), get(SIZEOF_NETWORK_DOUBLE), 1);
return result;
}
void read(ON_3dPoint &value)
{
value.x = read_double();
value.y = read_double();
value.z = read_double();
}
void read(ON_3dVector &value)
{
value.x = read_double();
value.y = read_double();
value.z = read_double();
}
void read(ON_BoundingBox &value)
{
read(value.m_min);
read(value.m_max);
}
void read(ON_Interval &value)
{
value.m_t[0] = read_double();
value.m_t[1] = read_double();
}
private:
Deserializer(const Deserializer &source);
Deserializer &operator=(const Deserializer &source);
const uint8_t *get(std::size_t size)
{
const std::size_t result_position = m_position;
m_position += size;
if (UNLIKELY(m_position > m_external.ext_nbytes))
bu_bomb("invalid position");
return &m_external.ext_buf[result_position];
}
std::size_t m_position;
const bu_external &m_external;
};
template <typename T>
class PooledObject
{
public:
static void *operator new(std::size_t size)
{
if (UNLIKELY(size != sizeof(T)))
throw std::bad_alloc();
return bu_heap_get(size);
}
static void operator delete(void *pointer)
{
bu_heap_put(pointer, sizeof(T));
}
};
} /* extern C++ */
__END_DECLS
+1 -1
View File
@@ -86,7 +86,7 @@
#include "./bu/parallel.h"
#include "./bu/parse.h"
#include "./bu/ptbl.h"
#include "./bu/rb.h"
#include "./bu/redblack.h"
#include "./bu/simd.h"
#include "./bu/sort.h"
#include "./bu/str.h"
+1 -1
View File
@@ -23,7 +23,7 @@ set(bu_headers
parse.h
path.h
ptbl.h
rb.h
redblack.h
simd.h
sort.h
str.h
+2 -1
View File
@@ -61,7 +61,7 @@ typedef struct bu_color bu_color_t;
#define BU_CK_COLOR(_c) BU_CKMAG(_c, BU_COLOR_MAGIC, "bu_color")
/**
* initializes a bu_bitv struct without allocating any memory.
* initializes a bu_color struct without allocating any memory.
*/
#define BU_COLOR_INIT(_c) { \
(_c)->buc_magic = BU_COLOR_MAGIC; \
@@ -138,6 +138,7 @@ BU_EXPORT extern int bu_color_from_rgb_floats(struct bu_color *cp, fastf_t *rgb)
BU_EXPORT extern int bu_color_to_rgb_floats(struct bu_color *cp, fastf_t *rgb);
BU_EXPORT extern int bu_color_from_rgb_chars(struct bu_color *cp, unsigned char *rgb);
BU_EXPORT extern int bu_color_to_rgb_chars(struct bu_color *cp, unsigned char *rgb);
BU_EXPORT extern int bu_color_from_str(struct bu_color *cp, const char *str);
/* UNIMPLEMENTED
*
+6 -6
View File
@@ -146,13 +146,13 @@ typedef int (*bu_opt_arg_process_t)(struct bu_vls *msg, int argc, const char **a
* first argument of the argv array - this macro encapsulates that into a
* standard check.
*/
#define BU_OPT_CHECK_ARGV0(_msg, _argc, _argv, _opt_name) \
#define BU_OPT_CHECK_ARGV0(_msg, _argc, _argv, _opt_name) do {\
if ((_argc) < 1 || !(_argv) || !(_argv)[0] || (_argv)[0][0] == '\0') { \
if ((_msg)) { \
bu_vls_printf((_msg), "Error: missing required argument: %s\n", (_opt_name)); \
} \
return -1; \
}
} } while (0)
/**
* @brief
@@ -173,24 +173,24 @@ struct bu_opt_desc {
#define BU_OPT_DESC_NULL {NULL, NULL, NULL, NULL, NULL, NULL}
/** Macro for assigning values to bu_opt_desc array entries. */
#define BU_OPT(_desc, _so, _lo, _ahelp, _aprocess, _var, _help) { \
#define BU_OPT(_desc, _so, _lo, _ahelp, _aprocess, _var, _help) do { \
(_desc).shortopt = _so; \
(_desc).longopt = _lo; \
(_desc).arg_helpstr = _ahelp; \
(_desc).arg_process = _aprocess; \
(_desc).set_var = (void *)_var; \
(_desc).help_string = _help; \
}
} while (0)
/** Convenience macro for setting a bu_opt_desc struct to BU_OPT_DESC_NULL */
#define BU_OPT_NULL(_desc) { \
#define BU_OPT_NULL(_desc) do { \
(_desc).shortopt = NULL; \
(_desc).longopt = NULL; \
(_desc).arg_helpstr = NULL; \
(_desc).arg_process = NULL; \
(_desc).set_var = NULL; \
(_desc).help_string = NULL; \
}
} while (0)
/**
* Parse @p argv array using option descriptions.
+17 -10
View File
@@ -96,21 +96,28 @@ BU_EXPORT extern char *bu_dirname(const char *path);
* A libbu re-implementation of basename() for cross-platform
* compatibility.
*
* Given a string containing a hierarchical path, return a dynamic
* string to the portion after the last path separator.
* Given a string containing a hierarchically delimited path (e.g.,
* /path/to/file), determine the file name portion after the last path
* separator.
*
* This function is similar if not identical to most basename() BSD
* system function implementations; but that system function cannot be
* used due to significantly inconsistent behavior across platforms.
* This function is similar to most basename() BSD system function
* implementations; but that system function cannot be used due to
* significantly inconsistent behavior across platforms, particularly
* with respect to memory allocation and threading behavior.
*
* This function always recognizes paths separated by a '/' (i.e.,
* geometry paths) as well as whatever the native platform directory
* separator may be. It is assumed that all file and directory names
* in the path will not contain a path separator, even if escaped.
* in the path do not contain a path separator. That is, there is
* currently no support for escaped characters.
*
* It is the caller's responsibility to allocate basename with
* enough memory to hold a string with length strlen(path), since
* that is the maximum possible size of bu_basename's output.
* It is the caller's responsibility to provide a basename buffer with
* enough memory for a string with length at least strlen(path) + 1
* (for terminating nul) characters as that is the maximum possible
* basename size. If the basename output argument is NULL, then a
* dynamic memory will be returned and the caller is responsible for
* releasing memory (via bu_free()), otherwise the caller-provided
* basename pointer is returned and managed by the caller accordingly.
*
* Examples of strings returned:
*
@@ -129,7 +136,7 @@ BU_EXPORT extern char *bu_dirname(const char *path);
* /// | /
*
*/
BU_EXPORT extern void bu_basename(char *basename, const char *path);
BU_EXPORT extern char *bu_basename(const char *path, char *basename);
/**
* Normalize a path according to rules used for realpath, but
+5 -5
View File
@@ -1,4 +1,4 @@
/* R B . H
/* R E D B L A C K . H
* BRL-CAD
*
* Copyright (c) 2004-2016 United States Government as represented by
@@ -18,8 +18,8 @@
* information.
*/
#ifndef BU_RB_H
#define BU_RB_H
#ifndef BU_REDBLACK_H
#define BU_REDBLACK_H
#include "common.h"
@@ -64,7 +64,7 @@ __BEGIN_DECLS
* Algorithms."
*/
/** @{ */
/** @file bu/rb.h */
/** @file bu/redblack.h */
/**
@@ -530,7 +530,7 @@ BU_EXPORT extern void bu_rb_walk(struct bu_rb_tree *tree, int order, void (*visi
__END_DECLS
#endif /* BU_RB_H */
#endif /* BU_REDBLACK_H */
/*
* Local Variables:
+9 -8
View File
@@ -249,10 +249,11 @@ BU_EXPORT extern int bu_str_isprint(const char *cp);
* Returns truthfully if a given input string represents an
* "affirmative string".
*
* Input values that are null, empty, begin with the letter 'n', or
* are 0-valued return as false. Any other input value returns as
* true. Strings that strongly indicate true return as 1, other
* values still return as true but may be a value greater than 1.
* Input values that are case-insensitively NULL, empty, "n", "no",
* "false", "off", "(null)", or are 0-valued return as false. Any
* other input value return true. Strings strongly indicating true
* such as "y", "yes", "true", "on", or are 1-valued will return as 1,
* other strings still return as true but may be greater than 1.
*/
BU_EXPORT extern int bu_str_true(const char *str);
@@ -260,9 +261,9 @@ BU_EXPORT extern int bu_str_true(const char *str);
* Returns truthfully if a given input string represents a
* "negative string".
*
* Input values that are null, empty, begin with the letter 'n', or
* are 0-valued return as true. Any other input value returns as
* false.
* Input values that are case-insensitively NULL, empty, "n", "no",
* "false", "off", "(null)", or are 0-valued return as true. Any
* other input value returns as false.
*/
BU_EXPORT extern int bu_str_false(const char *str);
@@ -313,7 +314,7 @@ BU_EXPORT extern void bu_argv_free(size_t argc, char *argv[]);
* free up to argc elements of memory allocated to an array without
* free'ing the array itself.
*/
BU_EXPORT extern void bu_free_array(size_t argc, char *argv[], const char *str);
BU_EXPORT extern void bu_free_args(size_t argc, char *argv[], const char *str);
/**
* Dynamically duplicate an argv array and all elements in the array
+11 -1
View File
@@ -41,7 +41,17 @@ __BEGIN_DECLS
/** @file bu/time.h */
/**
* Return microsecond accuracy time information.
* Returns a microsecond-accurate wall-clock time counter.
*
* Example use:
@code
int64_t start = bu_gettime();
do_some_work_here();
int64_t elapsed = bu_gettime() - start;
int seconds = elapsed / 1000000LL;
printf("time: %02d\n", seconds);
@endcode
*
*/
BU_EXPORT extern int64_t bu_gettime(void);
+2 -2
View File
@@ -42,11 +42,11 @@ __BEGIN_DECLS
* Create a UUID (a 128-bit identifier) that conforms with RFC4122,
* version 4 or 5, in big endian network order. Version 4 UUIDs are
* suitable for a random object identifier (with 122 bits of random
* entropy). Providing a byte array will create a (SHA1-based)
* entropy). Providing a byte array and namespace will create a (SHA1-based)
* version 5 UUID suitable for repeatable identifier hashing.
*/
int
bu_uuid_create(uint8_t uuid[STATIC_ARRAY(16)], size_t nbytes, uint8_t *bytes);
bu_uuid_create(uint8_t uuid[STATIC_ARRAY(16)], size_t nbytes, const uint8_t *bytes, const uint8_t namespace_uuid[STATIC_ARRAY(16)]);
/**
* This is a convenience UUID comparison routine compatible with
+1 -1
View File
@@ -427,7 +427,7 @@ BU_EXPORT extern void bu_vls_vprintf(struct bu_vls *vls,
* a subset of characters that must be escaped or otherwise identified.
*
* Given the large set of possible scenarios, it definitely makes sense
* to allow an encoding specifiying variable, and probably other optional
* to allow an encoding specifying variable, and probably other optional
* variables (which may be NULL, depending on the encoding type) specifying
* active characters (that need quoting) and an escape character (or
* characters? does it take more than one in some scenarios? perhaps start
+12 -11
View File
@@ -325,16 +325,6 @@ typedef ptrdiff_t ssize_t;
# define __STDC_VERSION__ 0
#endif
/**
* Provide macros to indicate availability of diagnostic pragmas for
* GCC and Clang.
*/
#define HAVE_GCC_DIAG_PRAGMAS \
(defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) && !defined(__clang__))
#define HAVE_CLANG_DIAG_PRAGMAS \
(defined(__clang__) && (__clang_major__ > 2 || (__clang_major__ == 2 && __clang_minor__ >= 8)))
/**
* globally disable certain warnings. do NOT add new warnings here
* without discussion and research. only warnings that cannot be
@@ -437,7 +427,18 @@ typedef ptrdiff_t ssize_t;
* CPP_XSTR(CPP_XGLUE(abc, 123)) => "123123"
*/
#ifndef CPP_XGLUE
# define CPP_XGLUE(a, b) CPP_GLUE
# define CPP_XGLUE(a, b) CPP_GLUE(a, b)
#endif
/**
* Provide format specifier string tied to a size (e.g., "%123s")
*
* #define STR_LEN 10+1
* char str[STR_LEN] = {0};
* scanf(CPP_SCANSIZE(STR_LEN) "\n", str);
*/
#ifndef CPP_SCAN
# define CPP_SCAN(sz) "%" CPP_XSTR(sz) "s"
#endif
/**
+2 -1
View File
@@ -344,6 +344,7 @@ DM_EXPORT extern unsigned char *dm_get_bg(dm *dmp);
DM_EXPORT extern int dm_set_bg(dm *dmp, unsigned char r, unsigned char g, unsigned char b);
DM_EXPORT extern unsigned char *dm_get_fg(dm *dmp);
DM_EXPORT extern int dm_set_fg(dm *dmp, unsigned char r, unsigned char g, unsigned char b, int strict, fastf_t transparency);
DM_EXPORT extern int dm_reshape(dm *dmp, int width, int height);
DM_EXPORT extern int dm_make_current(dm *dmp);
DM_EXPORT extern vect_t *dm_get_clipmin(dm *dmp);
DM_EXPORT extern vect_t *dm_get_clipmax(dm *dmp);
@@ -377,7 +378,7 @@ DM_EXPORT extern void dm_set_perspective(dm *dmp, fastf_t perspective);
DM_EXPORT extern int dm_get_display_image(dm *dmp, unsigned char **image);
DM_EXPORT extern int dm_gen_dlists(dm *dmp, size_t range);
DM_EXPORT extern int dm_begin_dlist(dm *dmp, unsigned int list);
DM_EXPORT extern void dm_draw_dlist(dm *dmp, unsigned int list);
DM_EXPORT extern int dm_draw_dlist(dm *dmp, unsigned int list);
DM_EXPORT extern int dm_end_dlist(dm *dmp);
DM_EXPORT extern int dm_free_dlists(dm *dmp, unsigned int list, int range);
DM_EXPORT extern int dm_draw_vlist(dm *dmp, struct bn_vlist *vp);
+1
View File
@@ -157,6 +157,7 @@ FB_EXPORT extern int fb_common_image_size(size_t *widthp, size_t *heightp, size_
FB_EXPORT extern int fb_common_name_size(size_t *widthp, size_t *heightp, const char *name);
FB_EXPORT extern int fb_write_fp(fb *ifp, FILE *fp, int req_width, int req_height, int crunch, int inverse, struct bu_vls *result);
FB_EXPORT extern int fb_read_fd(fb *ifp, int fd, int file_width, int file_height, int file_xoff, int file_yoff, int scr_width, int scr_height, int scr_xoff, int scr_yoff, int fileinput, char *file_name, int one_line_only, int multiple_lines, int autosize, int inverse, int clear, int zoom, struct bu_vls *result);
FB_EXPORT extern int fb_read_png(fb *ifp, FILE *fp, int file_xoff, int file_yoff, int scr_xoff, int scr_yoff, int clear, int zoom, int inverse, int one_line_only, int multiple_lines, int verbose, int header_only, double def_screen_gamma, struct bu_vls *result);
FB_EXPORT extern void fb_set_interface(fb *ifp, const char *interface_type);
FB_EXPORT extern void fb_set_name(fb *ifp, const char *name);
+3 -6
View File
@@ -117,12 +117,9 @@ struct ged_run_rt {
HANDLE fd;
HANDLE hProcess;
DWORD pid;
# ifdef TCL_OK
Tcl_Channel chan;
# else
void *chan;
# endif
void *chan; /* FIXME: uses communication channel instead of file
* descriptor to get output from rt.
*/
#else
int fd;
int pid;
+5
View File
@@ -71,6 +71,11 @@ GED_EXPORT extern int ged_fbclear(struct ged *gedp, int argc, const char *argv[]
*/
GED_EXPORT extern int ged_pix2fb(struct ged *gedp, int argc, const char *argv[]);
/**
* Png2fb reads a png file into a framebuffer.
*/
GED_EXPORT extern int ged_png2fb(struct ged *gedp, int argc, const char *argv[]);
__END_DECLS
+1 -4
View File
@@ -117,11 +117,8 @@ GED_EXPORT extern int ged_ps(struct ged *gedp, int argc, const char *argv[]);
/**
* Returns the solid table & vector list as a string
*
* @todo - there's no way this function should be limited to the
* documented purpose above...
*/
GED_EXPORT extern int ged_report(struct ged *gedp, int argc, const char *argv[]);
GED_EXPORT extern int ged_solid_report(struct ged *gedp, int argc, const char *argv[]);
/**
* Save the view
+2
View File
@@ -29,6 +29,8 @@
#ifndef PKG_H
#define PKG_H
#include "common.h"
/* for size_t */
#include <stddef.h>
+1 -1
View File
@@ -73,7 +73,7 @@
* include stdint.h. The hope is that one or the other can be
* used with no real difference.
*
* 5) In the current verison, if your platform can't represent
* 5) In the current version, if your platform can't represent
* int32_t, int16_t and int8_t, it just dumps out with a compiler
* error.
*
+4
View File
@@ -30,6 +30,10 @@
__BEGIN_DECLS
struct rt_comb_internal; /* forward declaration */
/* db5_attr.c */
/**
* Define standard attribute types in BRL-CAD geometry. (See the
+1
View File
@@ -22,6 +22,7 @@
#define RT_DB_FULLPATH_H
#include "common.h"
#include "bu/vls.h"
#include "rt/defines.h"
__BEGIN_DECLS
+1
View File
@@ -29,6 +29,7 @@
#include "bu/avs.h"
#include "bn/mat.h"
#include "rt/defines.h"
#include "rt/resource.h"
__BEGIN_DECLS
+6
View File
@@ -26,10 +26,16 @@
#include "common.h"
#include "vmath.h"
#include "bu/avs.h"
#include "rt/db5.h"
#include "rt/defines.h"
__BEGIN_DECLS
struct rt_db_internal; /* forward declaration */
/* db_open.c */
/**
* Ensure that the on-disk database has been completely written out of
+5
View File
@@ -177,6 +177,11 @@ RT_EXPORT extern int rt_obj_params(struct pc_pc_set *ps, const struct rt_db_inte
*/
RT_EXPORT extern int rt_obj_mirror(struct rt_db_internal *ip, const plane_t *plane);
/**
* if `stp` is prepped, serialize; otherwise, deserialize from `external`
*/
RT_EXPORT extern int rt_obj_prep_serialize(struct soltab *stp, const struct rt_db_internal *ip, struct bu_external *external, uint32_t *version);
__END_DECLS
#endif /* RT_FUNC_H */
+75 -73
View File
@@ -73,46 +73,46 @@ struct rt_functab {
int ft_use_rpp;
int (*ft_prep)(struct soltab *stp,
struct rt_db_internal *ip,
struct rt_i *rtip);
struct rt_db_internal *ip,
struct rt_i *rtip);
#define RTFUNCTAB_FUNC_PREP_CAST(_func) ((int (*)(struct soltab *, struct rt_db_internal *, struct rt_i *))_func)
int (*ft_shot)(struct soltab *stp,
struct xray *rp,
struct application *ap, /* has resource */
struct seg *seghead);
struct xray *rp,
struct application *ap, /* has resource */
struct seg *seghead);
#define RTFUNCTAB_FUNC_SHOT_CAST(_func) ((int (*)(struct soltab *, struct xray *, struct application *, struct seg *))_func)
void (*ft_print)(const struct soltab *stp);
#define RTFUNCTAB_FUNC_PRINT_CAST(_func) ((void (*)(const struct soltab *))_func)
void (*ft_norm)(struct hit *hitp,
struct soltab *stp,
struct xray *rp);
struct soltab *stp,
struct xray *rp);
#define RTFUNCTAB_FUNC_NORM_CAST(_func) ((void (*)(struct hit *, struct soltab *, struct xray *))_func)
int (*ft_piece_shot)(struct rt_piecestate *psp,
struct rt_piecelist *plp,
double dist, /* correction to apply to hit distances */
struct xray *ray, /* ray transformed to be near cut cell */
struct application *ap, /* has resource */
struct seg *seghead); /* used only for PLATE mode hits */
struct rt_piecelist *plp,
double dist, /* correction to apply to hit distances */
struct xray *ray, /* ray transformed to be near cut cell */
struct application *ap, /* has resource */
struct seg *seghead); /* used only for PLATE mode hits */
#define RTFUNCTAB_FUNC_PIECE_SHOT_CAST(_func) ((int (*)(struct rt_piecestate *, struct rt_piecelist *, double dist, struct xray *, struct application *, struct seg *))_func)
void (*ft_piece_hitsegs)(struct rt_piecestate *psp,
struct seg *seghead,
struct application *ap); /* has resource */
struct seg *seghead,
struct application *ap); /* has resource */
#define RTFUNCTAB_FUNC_PIECE_HITSEGS_CAST(_func) ((void (*)(struct rt_piecestate *, struct seg *, struct application *))_func)
void (*ft_uv)(struct application *ap, /* has resource */
struct soltab *stp,
struct hit *hitp,
struct uvcoord *uvp);
struct soltab *stp,
struct hit *hitp,
struct uvcoord *uvp);
#define RTFUNCTAB_FUNC_UV_CAST(_func) ((void (*)(struct application *, struct soltab *, struct hit *, struct uvcoord *))_func)
void (*ft_curve)(struct curvature *cvp,
struct hit *hitp,
struct soltab *stp);
struct hit *hitp,
struct soltab *stp);
#define RTFUNCTAB_FUNC_CURVE_CAST(_func) ((void (*)(struct curvature *, struct hit *, struct soltab *))_func)
int (*ft_classify)(const struct soltab * /*stp*/, const vect_t /*min*/, const vect_t /*max*/, const struct bn_tol * /*tol*/);
@@ -122,83 +122,83 @@ struct rt_functab {
#define RTFUNCTAB_FUNC_FREE_CAST(_func) ((void (*)(struct soltab *))_func)
int (*ft_plot)(struct bu_list * /*vhead*/,
struct rt_db_internal * /*ip*/,
const struct rt_tess_tol * /*ttol*/,
const struct bn_tol * /*tol*/,
const struct rt_view_info * /*view info*/);
struct rt_db_internal * /*ip*/,
const struct rt_tess_tol * /*ttol*/,
const struct bn_tol * /*tol*/,
const struct rt_view_info * /*view info*/);
#define RTFUNCTAB_FUNC_PLOT_CAST(_func) ((int (*)(struct bu_list *, struct rt_db_internal *, const struct rt_tess_tol *, const struct bn_tol *, const struct rt_view_info *))_func)
int (*ft_adaptive_plot)(struct rt_db_internal * /*ip*/,
const struct rt_view_info * /*view info*/);
const struct rt_view_info * /*view info*/);
#define RTFUNCTAB_FUNC_ADAPTIVE_PLOT_CAST(_func) ((int (*)(struct rt_db_internal *, const struct rt_view_info *))_func)
void (*ft_vshot)(struct soltab * /*stp*/[],
struct xray *[] /*rp*/,
struct seg * /*segp*/,
int /*n*/,
struct application * /*ap*/);
struct xray *[] /*rp*/,
struct seg * /*segp*/,
int /*n*/,
struct application * /*ap*/);
#define RTFUNCTAB_FUNC_VSHOT_CAST(_func) ((void (*)(struct soltab *[], struct xray *[], struct seg *, int, struct application *))_func)
int (*ft_tessellate)(struct nmgregion ** /*r*/,
struct model * /*m*/,
struct rt_db_internal * /*ip*/,
const struct rt_tess_tol * /*ttol*/,
const struct bn_tol * /*tol*/);
struct model * /*m*/,
struct rt_db_internal * /*ip*/,
const struct rt_tess_tol * /*ttol*/,
const struct bn_tol * /*tol*/);
#define RTFUNCTAB_FUNC_TESS_CAST(_func) ((int (*)(struct nmgregion **, struct model *, struct rt_db_internal *, const struct rt_tess_tol *, const struct bn_tol *))_func)
int (*ft_tnurb)(struct nmgregion ** /*r*/,
struct model * /*m*/,
struct rt_db_internal * /*ip*/,
const struct bn_tol * /*tol*/);
struct model * /*m*/,
struct rt_db_internal * /*ip*/,
const struct bn_tol * /*tol*/);
#define RTFUNCTAB_FUNC_TNURB_CAST(_func) ((int (*)(struct nmgregion **, struct model *, struct rt_db_internal *, const struct bn_tol *))_func)
void (*ft_brep)(ON_Brep ** /*b*/,
struct rt_db_internal * /*ip*/,
const struct bn_tol * /*tol*/);
struct rt_db_internal * /*ip*/,
const struct bn_tol * /*tol*/);
#define RTFUNCTAB_FUNC_BREP_CAST(_func) ((void (*)(ON_Brep **, struct rt_db_internal *, const struct bn_tol *))_func)
int (*ft_import5)(struct rt_db_internal * /*ip*/,
const struct bu_external * /*ep*/,
const mat_t /*mat*/,
const struct db_i * /*dbip*/,
struct resource * /*resp*/);
const struct bu_external * /*ep*/,
const mat_t /*mat*/,
const struct db_i * /*dbip*/,
struct resource * /*resp*/);
#define RTFUNCTAB_FUNC_IMPORT5_CAST(_func) ((int (*)(struct rt_db_internal *, const struct bu_external *, const mat_t, const struct db_i *, struct resource *))_func)
int (*ft_export5)(struct bu_external * /*ep*/,
const struct rt_db_internal * /*ip*/,
double /*local2mm*/,
const struct db_i * /*dbip*/,
struct resource * /*resp*/);
const struct rt_db_internal * /*ip*/,
double /*local2mm*/,
const struct db_i * /*dbip*/,
struct resource * /*resp*/);
#define RTFUNCTAB_FUNC_EXPORT5_CAST(_func) ((int (*)(struct bu_external *, const struct rt_db_internal *, double, const struct db_i *, struct resource *))_func)
int (*ft_import4)(struct rt_db_internal * /*ip*/,
const struct bu_external * /*ep*/,
const mat_t /*mat*/,
const struct db_i * /*dbip*/,
struct resource * /*resp*/);
const struct bu_external * /*ep*/,
const mat_t /*mat*/,
const struct db_i * /*dbip*/,
struct resource * /*resp*/);
#define RTFUNCTAB_FUNC_IMPORT4_CAST(_func) ((int (*)(struct rt_db_internal *, const struct bu_external *, const mat_t, const struct db_i *, struct resource *))_func)
int (*ft_export4)(struct bu_external * /*ep*/,
const struct rt_db_internal * /*ip*/,
double /*local2mm*/,
const struct db_i * /*dbip*/,
struct resource * /*resp*/);
const struct rt_db_internal * /*ip*/,
double /*local2mm*/,
const struct db_i * /*dbip*/,
struct resource * /*resp*/);
#define RTFUNCTAB_FUNC_EXPORT4_CAST(_func) ((int (*)(struct bu_external *, const struct rt_db_internal *, double, const struct db_i *, struct resource *))_func)
void (*ft_ifree)(struct rt_db_internal * /*ip*/);
#define RTFUNCTAB_FUNC_IFREE_CAST(_func) ((void (*)(struct rt_db_internal *))_func)
int (*ft_describe)(struct bu_vls * /*str*/,
const struct rt_db_internal * /*ip*/,
int /*verbose*/,
double /*mm2local*/,
struct resource * /*resp*/,
struct db_i *);
const struct rt_db_internal * /*ip*/,
int /*verbose*/,
double /*mm2local*/,
struct resource * /*resp*/,
struct db_i *);
#define RTFUNCTAB_FUNC_DESCRIBE_CAST(_func) ((int (*)(struct bu_vls *, const struct rt_db_internal *, int, double, struct resource *, struct db_i *))_func)
int (*ft_xform)(struct rt_db_internal * /*op*/,
const mat_t /*mat*/, struct rt_db_internal * /*ip*/,
int /*free*/, struct db_i * /*dbip*/,
struct resource * /*resp*/);
const mat_t /*mat*/, struct rt_db_internal * /*ip*/,
int /*free*/, struct db_i * /*dbip*/,
struct resource * /*resp*/);
#define RTFUNCTAB_FUNC_XFORM_CAST(_func) ((int (*)(struct rt_db_internal *, const mat_t, struct rt_db_internal *, int, struct db_i *, struct resource *))_func)
const struct bu_structparse *ft_parsetab; /**< @brief rt_xxx_parse */
@@ -222,9 +222,9 @@ struct rt_functab {
/* Axis aligned bounding box */
int (*ft_bbox)(struct rt_db_internal * /*ip*/,
point_t * /*min X, Y, Z of bounding RPP*/,
point_t * /*max X, Y, Z of bounding RPP*/,
const struct bn_tol *);
point_t * /*min X, Y, Z of bounding RPP*/,
point_t * /*max X, Y, Z of bounding RPP*/,
const struct bn_tol *);
#define RTFUNCTAB_FUNC_BBOX_CAST(_func) ((int (*)(struct rt_db_internal *, point_t *, point_t *, const struct bn_tol *))_func)
void (*ft_volume)(fastf_t * /*vol*/, const struct rt_db_internal * /*ip*/);
@@ -237,31 +237,33 @@ struct rt_functab {
#define RTFUNCTAB_FUNC_CENTROID_CAST(_func) ((void (*)(point_t *, const struct rt_db_internal *))_func)
int (*ft_oriented_bbox)(struct rt_arb_internal * /* bounding arb8 */,
struct rt_db_internal * /*ip*/,
const fastf_t);
struct rt_db_internal * /*ip*/,
const fastf_t);
#define RTFUNCTAB_FUNC_ORIENTED_BBOX_CAST(_func) ((int (*)(struct rt_arb_internal *, struct rt_db_internal *, const fastf_t))_func)
/** get a list of the selections matching a query */
struct rt_selection_set *(*ft_find_selections)(const struct rt_db_internal *,
const struct rt_selection_query *);
const struct rt_selection_query *);
#define RTFUNCTAB_FUNC_FIND_SELECTIONS_CAST(_func) ((struct rt_selection_set *(*)(const struct rt_db_internal *, const struct rt_selection_query *))_func)
/** evaluate a logical selection expression (e.g. a INTERSECT b,
* NOT a) to create a new selection
*/
struct rt_selection *(*ft_evaluate_selection)(const struct rt_db_internal *,
int op,
const struct rt_selection *,
const struct rt_selection *);
int op,
const struct rt_selection *,
const struct rt_selection *);
#define RTFUNCTAB_FUNC_EVALUATE_SELECTION_CAST(_func) ((struct rt_selection *(*)(const struct rt_db_internal *, int op, const struct rt_selection *, const struct rt_selection *))_func)
/** apply an operation to a selected subset of a primitive */
int (*ft_process_selection)(struct rt_db_internal *,
struct db_i *,
const struct rt_selection *,
const struct rt_selection_operation *);
struct db_i *,
const struct rt_selection *,
const struct rt_selection_operation *);
#define RTFUNCTAB_FUNC_PROCESS_SELECTION_CAST(_func) ((int (*)(struct rt_db_internal *, struct db_i *, const struct rt_selection *, const struct rt_selection_operation *))_func)
int (*ft_prep_serialize)(struct soltab *stp, const struct rt_db_internal *ip, struct bu_external *external, uint32_t *version);
#define RTFUNCTAB_FUNC_PREP_SERIALIZE_CAST(_func) ((int (*)(struct soltab *, const struct rt_db_internal *, struct bu_external *, uint32_t *))_func)
};
+25 -33
View File
@@ -31,9 +31,6 @@
__BEGIN_DECLS
#define TIE_SINGLE_PRECISION 0
#define TIE_DOUBLE_PRECISION 1
#ifndef RT_EXPORT
# if defined(RT_DLL_EXPORTS) && defined(RT_DLL_IMPORTS)
# error "Only RT_DLL_EXPORTS or RT_DLL_IMPORTS can be defined, not both."
@@ -48,12 +45,11 @@ __BEGIN_DECLS
/*
* define which precision to use, 0 is 'float' and 1 is 'double'.
* Default to double precision to protect those not familiar.
* Horrible macros wrap functions and values to build a library
* capable of doing either without recompilation.
*/
#ifndef TIE_PRECISION
# define TIE_PRECISION TIE_SINGLE_PRECISION
# define TIE_PRECISION 1
#endif
#define TIE_CHECK_DEGENERATE 1
@@ -62,14 +58,14 @@ __BEGIN_DECLS
#define TIE_KDTREE_OPTIMAL 0x1
/* Type to use for floating precision */
#if TIE_PRECISION == TIE_SINGLE_PRECISION
typedef float tfloat;
# define TIE_VAL(x) x##0
#elif TIE_PRECISION == TIE_DOUBLE_PRECISION
typedef double tfloat;
# define TIE_VAL(x) x##1
#if TIE_PRECISION == 0
typedef float TFLOAT;
# define TIE_VAL(x) CPP_GLUE(x, _single)
#elif TIE_PRECISION == 1
typedef double TFLOAT;
# define TIE_VAL(x) CPP_GLUE(x, _double)
#else
# error "Unknown precision"
# error "Unknown precision"
#endif
@@ -78,7 +74,7 @@ typedef double tfloat;
*(_t *)&((uint8_t *)_tv)[_ti] = *(_t *)&((uint8_t *)_fv)[_fi]; }
typedef struct TIE_3_s {
tfloat v[3]; /* 12-bytes or 24-bytes */
TFLOAT v[3]; /* 12-bytes or 24-bytes */
} TIE_3;
struct tie_ray_s {
@@ -103,7 +99,7 @@ struct tie_tri_s {
* Data[1] = Normal,
* Data[2] = DotProduct, VectorU, VectorV
*/
tfloat v[2]; /* 8-bytes or 16-bytes */
TFLOAT v[2]; /* 8-bytes or 16-bytes */
void *ptr; /* 4-bytes or 8-bytes */
uint32_t b; /* 4-bytes (way more than we need, but helps keep alignment) */
};
@@ -129,28 +125,24 @@ struct tie_s {
fastf_t radius;
};
RT_EXPORT extern void TIE_VAL(tie_kdtree_free)(struct tie_s *tie);
RT_EXPORT extern void TIE_VAL(tie_kdtree_prep)(struct tie_s *tie);
RT_EXPORT extern int tie_check_degenerate;
RT_EXPORT extern fastf_t TIE_PREC;
/* compatibility macros */
#define tie_kdtree_free TIE_VAL(tie_kdtree_free)
#define tie_kdtree_prep TIE_VAL(tie_kdtree_prep)
#define TIE_INIT TIE_VAL(tie_init)
#define TIE_FREE TIE_VAL(tie_free)
#define TIE_PREP TIE_VAL(tie_prep)
#define TIE_WORK TIE_VAL(tie_work)
#define TIE_PUSH TIE_VAL(tie_push)
#define TIE_KDTREE_PREP TIE_VAL(tie_kdtree_prep)
#define TIE_KDTREE_FREE TIE_VAL(tie_kdtree_free)
RT_EXPORT extern int tie_check_degenerate;
RT_EXPORT extern void TIE_VAL(tie_init)(struct tie_s *tie, unsigned int tri_num, unsigned int kdmethod);
RT_EXPORT extern void TIE_VAL(tie_free)(struct tie_s *tie);
RT_EXPORT extern void TIE_VAL(tie_prep)(struct tie_s *tie);
RT_EXPORT extern void* TIE_VAL(tie_work)(struct tie_s *tie, struct tie_ray_s *ray, struct tie_id_s *id, void *(*hitfunc)(struct tie_ray_s*, struct tie_id_s*, struct tie_tri_s*, void *ptr), void *ptr);
RT_EXPORT extern void TIE_VAL(tie_push)(struct tie_s *tie, TIE_3 **tlist, unsigned int tnum, void *plist, unsigned int pstride);
/* backwards compatible macros */
#define tie_init TIE_VAL(tie_init)
#define tie_free TIE_VAL(tie_free)
#define tie_prep TIE_VAL(tie_prep)
#define tie_work TIE_VAL(tie_work)
#define tie_push TIE_VAL(tie_push)
RT_EXPORT extern void TIE_INIT(struct tie_s *tie, unsigned int tri_num, unsigned int kdmethod);
RT_EXPORT extern void TIE_FREE(struct tie_s *tie);
RT_EXPORT extern void TIE_PREP(struct tie_s *tie);
RT_EXPORT extern void*TIE_WORK(struct tie_s *tie, struct tie_ray_s *ray, struct tie_id_s *id, void *(*hitfunc)(struct tie_ray_s*, struct tie_id_s*, struct tie_tri_s*, void *ptr), void *ptr);
RT_EXPORT extern void TIE_PUSH(struct tie_s *tie, TIE_3 **tlist, unsigned int tnum, void *plist, unsigned int pstride);
RT_EXPORT extern void TIE_KDTREE_FREE(struct tie_s *tie);
RT_EXPORT extern void TIE_KDTREE_PREP(struct tie_s *tie);
__END_DECLS
+4 -2
View File
@@ -46,8 +46,10 @@ if(CPACK_INSTALLED_DIRECTORIES)
endif(CPACK_GENERATOR MATCHES "ZIP" OR CPACK_GENERATOR MATCHES "TGZ" OR CPACK_GENERATOR MATCHES "TBZ2" )
endif(CPACK_INSTALLED_DIRECTORIES)
# Null out the install prefix regardless
set(CPACK_PACKAGING_INSTALL_PREFIX "")
# Null out the install prefix, unless we're working on an RPM
if(NOT CPACK_GENERATOR MATCHES "RPM")
set(CPACK_PACKAGING_INSTALL_PREFIX "")
endif(NOT CPACK_GENERATOR MATCHES "RPM")
# Local Variables:
# tab-width: 8
+1
View File
@@ -438,6 +438,7 @@ if(BRLCAD_EXTRADOCS)
set(DOCBOOK_FORMATS ${DOCBOOK_FORMATS} pdf)
endif(BRLCAD_EXTRADOCS_PDF)
if(DOCBOOK_FORMATS)
list(REMOVE_DUPLICATES DOCBOOK_FORMATS)
string(REPLACE ";" "/" DOCBOOK_FORMATS "${DOCBOOK_FORMATS}")
set(BRLCAD_DOCBOOK_BUILD "ON (${DOCBOOK_FORMATS})")
else(DOCBOOK_FORMATS)
+2 -2
View File
@@ -652,9 +652,9 @@ macro(BRLCAD_INCLUDE_DIRS DIR_LIST)
set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ")
set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ")
endif(APPLE)
include_directories(SYSTEM ${inc_dir})
include_directories(AFTER SYSTEM ${inc_dir})
else("${inc_dir}" MATCHES "other" OR NOT IS_LOCAL)
include_directories(${inc_dir})
include_directories(BEFORE ${inc_dir})
endif("${inc_dir}" MATCHES "other" OR NOT IS_LOCAL)
endforeach(inc_dir ${ALL_INCLUDES})
+9 -7
View File
@@ -53,13 +53,15 @@
# Handle default exec and sanity checking for XML validation
if(NOT DEFINED VALIDATE_EXECUTABLE)
set(VALIDATE_EXECUTABLE "xmllint")
else(NOT DEFINED VALIDATE_EXECUTABLE)
if(NOT EXISTS "${BRLCAD_SOURCE_DIR}/misc/CMake/${VALIDATE_EXECUTABLE}.cmake.in")
message(FATAL_ERROR "Specified ${VALIDATE_EXECUTABLE} for DocBook validation, but \"${BRLCAD_SOURCE_DIR}/misc/CMake/${VALIDATE_EXECUTABLE}.cmake.in\" does not exist. To use ${VALIDATE_EXECUTABLE} a ${VALIDATE_EXECUTABLE}.cmake.in file must be defined.")
endif(NOT EXISTS "${BRLCAD_SOURCE_DIR}/misc/CMake/${VALIDATE_EXECUTABLE}.cmake.in")
endif(NOT DEFINED VALIDATE_EXECUTABLE)
if(BRLCAD_ENABLE_STRICT)
if(NOT DEFINED VALIDATE_EXECUTABLE)
set(VALIDATE_EXECUTABLE "xmllint")
else(NOT DEFINED VALIDATE_EXECUTABLE)
if(NOT EXISTS "${BRLCAD_SOURCE_DIR}/misc/CMake/${VALIDATE_EXECUTABLE}.cmake.in")
message(FATAL_ERROR "Specified ${VALIDATE_EXECUTABLE} for DocBook validation, but \"${BRLCAD_SOURCE_DIR}/misc/CMake/${VALIDATE_EXECUTABLE}.cmake.in\" does not exist. To use ${VALIDATE_EXECUTABLE} a ${VALIDATE_EXECUTABLE}.cmake.in file must be defined.")
endif(NOT EXISTS "${BRLCAD_SOURCE_DIR}/misc/CMake/${VALIDATE_EXECUTABLE}.cmake.in")
endif(NOT DEFINED VALIDATE_EXECUTABLE)
endif(BRLCAD_ENABLE_STRICT)
# Handle default exec and sanity checking for XSLT
if(NOT DEFINED XSLT_EXECUTABLE)
+10 -6
View File
@@ -37,9 +37,12 @@
#
# The following variables are set:
#
# OPENNURBS_INCLUDE_DIRS - where to find zlib.h, etc.
# OPENNURBS_LIBRARIES - List of libraries when using zlib.
# OPENNURBS_FOUND - True if zlib found.
# OPENNURBS_INCLUDE_DIRS - where to find opennurbs.h, etc.
# OPENNURBS_LIBRARIES - List of libraries when using openNURBS
# OPENNURBS_FOUND - True if openNURBS found.
# OpenNURBS requires zlib
find_package(ZLIB)
find_path(OPENNURBS_INCLUDE_DIR opennurbs.h)
find_library(OPENNURBS_LIBRARY NAMES opennurbs openNURBS OpenNURBS)
@@ -47,9 +50,10 @@ find_library(OPENNURBS_LIBRARY NAMES opennurbs openNURBS OpenNURBS)
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(OPENNURBS DEFAULT_MSG OPENNURBS_LIBRARY OPENNURBS_INCLUDE_DIR)
IF (OPENNURBS_FOUND)
set(OPENNURBS_INCLUDE_DIRS ${OPENNURBS_INCLUDE_DIR})
set(OPENNURBS_LIBRARIES ${OPENNURBS_LIBRARY})
if(OPENNURBS_FOUND)
set(OPENNURBS_INCLUDE_DIRS ${OPENNURBS_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})
list(REMOVE_DUPLICATES OPENNURBS_INCLUDE_DIR)
set(OPENNURBS_LIBRARIES ${OPENNURBS_LIBRARY} ${ZLIB_LIBRARY})
endif()
# Local Variables:
# tab-width: 8
+8 -2
View File
@@ -36,12 +36,18 @@
# - Find xmllint executable
#
# The module defines the following variables:
# XSLTPROC_FOUND - true is xsltproc executable is found
# XSLTPROC_EXECUTABLE - the path to the xsltproc executable
# XMLLINT_FOUND - true is xmllint executable is found
# XMLLINT_EXECUTABLE - the path to the xmllint executable
find_program(XMLLINT_EXECUTABLE xmllint DOC "path to the xmllint executable")
mark_as_advanced(XMLLINT_EXECUTABLE)
if(NOT XMLLINT_EXECUTABLE)
set(XMLLINT_FOUND 0)
else(NOT XMLLINT_EXECUTABLE)
set(XMLLINT_FOUND 1)
endif(NOT XMLLINT_EXECUTABLE)
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XMLLINT DEFAULT_MSG XMLLINT_EXECUTABLE)
+34 -16
View File
@@ -49,6 +49,12 @@ set(XSLTPROC_EXECUTABLE "@XSLTPROC_EXEC@")
set(XMLLINT_EXECUTABLE "@XMLLINT_EXEC@")
macro(XSLTPROC stylesheet filename outfile extras)
# If we're trying to do this but XSLTPROC_EXECUTABLE was unset somehow, fatal error
if ("${XSLTPROC_EXECUTABLE}" STREQUAL "")
message(FATAL_ERROR "xsltproc processing requested, but XSLTPROC_EXECUTABLE is not set.")
endif ("${XSLTPROC_EXECUTABLE}" STREQUAL "")
set(ENV{XML_DEBUG_CATALOG} 1)
# It is necessary to ensure that the target directory exists *before* calling xsltproc
# when building in parallel, due to a bug/limitation in xsltproc
@@ -89,31 +95,38 @@ get_filename_component(filename_root "${filename}" NAME_WE)
set(VE "@VALIDATE_EXECUTABLE@")
set(SCHEMA_DIR "@BRLCAD_BINARY_DIR@/doc/docbook/resources/other/docbook-schema")
if ("xmllint" MATCHES "${VE}")
if (NOT "${VE}" STREQUAL "")
if ("xmllint" MATCHES "${VE}")
execute_process(COMMAND "${XMLLINT_EXECUTABLE}" --xinclude --schema "${SCHEMA_DIR}/xsd/docbook.xsd" --noout --nonet "${filename}"
RESULT_VARIABLE CMDRESULT OUTPUT_VARIABLE CMDOUT ERROR_VARIABLE CMDERR)
if ("${XMLLINT_EXECUTABLE}" STREQUAL "")
message(FATAL_ERROR "Validation failure: xmllint validation requested, but XMLLINT_EXECUTABLE is not set.")
endif ("${XMLLINT_EXECUTABLE}" STREQUAL "")
elseif ("rnv" MATCHES "${VE}")
execute_process(COMMAND "${XMLLINT_EXECUTABLE}" --xinclude --schema "${SCHEMA_DIR}/xsd/docbook.xsd" --noout --nonet "${filename}"
RESULT_VARIABLE CMDRESULT OUTPUT_VARIABLE CMDOUT ERROR_VARIABLE CMDERR)
execute_process(COMMAND rnv "${SCHEMA_DIR}/rng/docbookxi.rnc" "${filename}"
RESULT_VARIABLE CMDRESULT OUTPUT_VARIABLE CMDOUT ERROR_VARIABLE CMDERR)
elseif ("rnv" MATCHES "${VE}")
elseif ("msv" MATCHES "${VE}")
execute_process(COMMAND rnv "${SCHEMA_DIR}/rng/docbookxi.rnc" "${filename}"
RESULT_VARIABLE CMDRESULT OUTPUT_VARIABLE CMDOUT ERROR_VARIABLE CMDERR)
execute_process(COMMAND msv -warning "${SCHEMA_DIR}/rng/docbookxi.rng" "@filename@"
RESULT_VARIABLE CMDRESULT OUTPUT_VARIABLE CMDOUT ERROR_VARIABLE CMDERR)
elseif ("msv" MATCHES "${VE}")
else ("xmllint" MATCHES "${VE}")
execute_process(COMMAND msv -warning "${SCHEMA_DIR}/rng/docbookxi.rng" "@filename@"
RESULT_VARIABLE CMDRESULT OUTPUT_VARIABLE CMDOUT ERROR_VARIABLE CMDERR)
message(FATAL_ERROR "Unsupported XML validator specified: ${VE}")
else ("xmllint" MATCHES "${VE}")
endif("xmllint" MATCHES "${VE}")
message(FATAL_ERROR "Unsupported XML validator specified: ${VE}")
# If we're not valid, we're done.
if(CMDRESULT)
message(FATAL_ERROR "${VE} validation failure on file ${filename}: ${CMDRESULT}\n${CMDOUT}\n${CMDERR}")
endif(CMDRESULT)
endif("xmllint" MATCHES "${VE}")
# If we're not valid, we're done.
if(CMDRESULT)
message(FATAL_ERROR "${VE} validation failure on file ${filename}: ${CMDRESULT}\n${CMDOUT}\n${CMDERR}")
endif(CMDRESULT)
endif (NOT "${VE}" STREQUAL "")
# Reset result variables.
set(CMDRESULT)
@@ -205,6 +218,11 @@ foreach(fmt ${CURRENT_OUTPUT_FORMATS})
get_filename_component(output_dir "${PDF_OUTFILE}" PATH)
execute_process(COMMAND "@CMAKE_COMMAND@" -E make_directory "${output_dir}")
# If we're trying to do this but APACHE_FOP was unset somehow, fatal error
if ("${APACHE_FOP}" STREQUAL "")
message(FATAL_ERROR "Apache FOP processing requested, but APACHE_FOP is not set.")
endif ("${APACHE_FOP}" STREQUAL "")
# Run FOP to actually generate the PDF
execute_process(COMMAND "@APACHE_FOP@" -c "@CMAKE_BINARY_DIR@/doc/docbook/fop.xconf" "${fo_outfile}" -pdf "${PDF_OUTFILE}" RESULT_VARIABLE CMDRESULT)
-5
View File
@@ -1,9 +1,4 @@
#include "common.h"
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
#include "bio.h"
int main(void) {
+1
View File
@@ -73,6 +73,7 @@ set(misc_ignore_files
batch-indent-region.el
brlcad-config.in
brlcad.spec.in
d-bindings
debian
flawfinder
jove.emacs
+1 -1
View File
@@ -7,7 +7,7 @@ add_definitions(
include_directories(
${BRLCAD_SOURCE_DIR}/include
${BRLCAD_SOURCE_DIR}/src/librt
${OPENNURBS_INCLUDE_DIR}
${OPENNURBS_INCLUDE_DIRS}
${BU_INCLUDE_DIRS}
${RT_INCLUDE_DIRS}
)
+4 -2
View File
@@ -1,8 +1,10 @@
Uses the svn2git code from: https://www.gitorious.org/svn2git or build the local copy in misc/svn2git/svn2git
Uses the svn2git code from: https://github.com/svn-all-fast-export/svn2git or build the local copy in misc/svn2git/svn2git
rsync -av svn.code.sf.net::p/brlcad/code .
./svn2git/svn-all-fast-export --add-metadata-notes --identity-map account-map --rules rules code
./svn-all-fast-export --add-metadata-notes --identity-map account-map --rules rules code
TODO: investigate --svn-branches flag - do we want to use it?
For tags, if you've used the supplied rules file, follow this post's approach:
http://blog.smartbear.com/software-quality/migrating-from-subversion-to-git-lessons-learned/
+17 -5
View File
@@ -1,6 +1,7 @@
Abhi2011 Abhijit Nandy <abhi2001@brlcad.org>
abhi2011 Abhijit Nandy <abhi2001@brlcad.org>
adam Adam Ross <adam@brlcad.org>
agkphysics Aaron Keesing <agkphysics@brlcad.org>
andrecastelo André Castelo <andrecastelo@brlcad.org>
anrgmrty Anurag Murty <anrgmrty@brlcad.org>
bharder Brad Harder <bharder@brlcad.org>
@@ -19,8 +20,10 @@ d_rossberg Daniel Rossberg <d_rossberg@brlcad.org>
davidloman David Loman <davidloman@brlcad.org>
ddreeves70 David Reeves <dreeves@brlcad.org>
dgodbey David Godbey <dgodbey@brlcad.org>
dhoward Doug Howard <dhoward@brlcad.org>
dpk Douglas Kingston <dpk@brlcad.org>
dtremenak Daniel Remenak <dtremenak@brlcad.org>
ebautu Elena Bautu <ebautu@brlcad.org>
ejno Jonathan Engbert <ejno@brlcad.org>
erikg Erik Greenwald <erikg@brlcad.org>
erikgreenwald Erik Greenwald <erikg@brlcad.org>
@@ -29,10 +32,10 @@ gdurf Glenn Durfee <gdurfee@brlcad.org>
gwyn Douglas Gwyn <gwyn@brlcad.org>
hartley Robert Hartley <hartley@vt.edu>
homovulgaris Dawn Thomas <homovulgaris@brlcad.org>
iiizzzaaakkk
iiizzzaaakkk Isacc Kamga <iiizzzaaakkk@brlcad.org>
indianlarry Keith Boman <wkboman@brlcad.org>
irpguardian Stephen Kennedy <irpguardian@brlcad.org>
jdoliner
jdoliner Joe Doliner <jdoliner@brlcad.org>
jehunt Jim Hunt <jhunt@ara.com>
jgrosh John Grosh <jgrosh@brlcad.org>
jimhunt Jim Hunt <jhunt@ara.com>
@@ -42,44 +45,53 @@ joevalleyfield Timothy Myers <joevalleyfield@brlcad.org>
johnranderson John Anderson <jra@brlcad.org>
jordisayol Jordi Sayol <jordisayol@brlcad.org>
jra John Anderson <jra@brlcad.org>
j-schulte Johannes Schulte <j-schulte@brlcad.org>
justin Justin Shumaker <twingy@brlcad.org>
kermit Charles Kennedy <kermit@brlcad.org>
kunigami Guilherme Kunigami <kunigami@brlcad.org>
lbutler Lee Butler <butler@brlcad.org>
louipc Loui Chang <louipc@brlcad.org>
mafm Manuel Montecelo <mafm@brlcad.org>
maths22 Jacob Burroughs <maths22@brlcad.org>
mccarty Cormac McCarty <mccarty@brlcad.org>
mendesr Roger Mendes <mendesr@brlcad.org>
merritt Don Merritt <merritt@brlcad.org>
mgillich Michael Gillich <mgillich@brlcad.org>
mike Michael John Muuss <mike@BMD70>
mjgillich Michael Gillich <mgillich@brlcad.org>
mm Michael Markowski <mm@brlcad.org>
mmark Michael Markowski <mm@brlcad.org>
mohitdaga
mohitdaga Mohit Daga <zero_level@brlcad.org>
morrison Christopher Sean Morrison <morrison@brlcad.org>
moss Gary Moss <moss@brlcad.org>
n_reed Nicholas Reed <n_reed@brlcad.org>
pacman87 Timothy Van Ruitenbeek <pacman87@brlcad.org>
peter-sa Peter Amidon <andromeda_galaxy@brlcad.org>
phil Phillip Dykstra <phil@brlcad.org>
phoenixyjll Wu Jianbang <phoenixyjll@brlcad.org>
pjt Paul Tanenbaum <pjt@brlcad.org>
poolio Ben Poole <poolio@brlcad.org>
popescuandrei
popescuandrei Andrei-Constantin Popescu <popescuandrei@brlcad.org>
prasad_silva Prasad Prometheus Silva <prasad_silva@brlcad.org>
r_weiss Richard Weiss <r_weiss@brlcad.org>
ralith
ralith Benjamin Saunders <ralith@brlcad.org>
rbowers Ronald Bowers <rbowers@brlcad.org>
reschly Robert Reschly <bob_reschly@brlcad.org>
ronaldbowers Ronald Bowers <rbowers@brlcad.org>
root
sammy Samuel Hocevar <sammy@brlcad.org>
scoates Susan Coates <scoates@brlcad.org>
starseeker Clifford Yapp <starseeker@brlcad.org>
stay Paul Stay <pstay@brlcad.org>
stefanmirea Stefan Mirea <stefanmirea@brlcad.org>
steveb Stephen Buckley <steveb@brlcad.org>
sue Susanne Muuss <sue@brlcad.org>
tbrowder2 Thomas Browder <tbrowder@brlcad.org>
tcs Terry Slattery <tcs@brlcad.org>
tossup
tranese TraNese Christy <tranese@brlcad.org>
twingy Justin Shumaker <twingy@brlcad.org>
vasco_costa Vasco Alexandre da Silva Costa <vasco_costa@brlcad.org>
vladbogo Vlad Bogolin <vladbobo@brlcad.org>
wm William Mermagen <wm@brlcad.org>
zhaoanqing Zhao Anqing <zhaoanqing@brlcad.org>
+4
View File
@@ -10,11 +10,15 @@ branches=(
"brlcad_5_1_alpha_patch"
"bullet"
"cmake"
"d-binding"
"dmtogl"
"dm-work"
"embree"
"framebuffer-experiment"
"gct"
"gecode"
"goblin"
"libnmg"
"libpng"
"nurbs"
"opencl"
@@ -1,8 +1,8 @@
# - Try to find subversion libraries
#
# This macro uses the following variables as preference for searching the
# This macro uses the following variables as preference for seraching the
# headers and includes:
# SUBVERSION_INSTALL_PATH - root directory where subversion is installed (usually /usr)
# SUBVERSION_INSTALL_PATH - root directory where subversion is installed (ususally /usr)
# APR_CONFIG_PATH - path where apr-config or apr-1-config are located
# APU_CONFIG_PATH - path where apu-config or apu-1-config are located
#
@@ -10,6 +10,13 @@
# SUBVERSION_FOUND - system has subversion libraries
# SUBVERSION_INCLUDE_DIRS - the include directories to link to subversion
# SUBVERSION_LIBRARIES - The libraries needed to link to subversion
# Copyright (c) 2009 Lambert CLARA <lambert.clara@yahoo.fr>
# Copyright (c) 2009 Bernhard Rosenkraenzer <ber@arklinux.org>
# Copyright (c) 2007-2009 Andreas Pakulat <apaku@gmx.de>
#
# Redistribution AND use is allowed according to the terms of the New
# BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
IF(SUBVERSION_INCLUDE_DIRS AND SUBVERSION_LIBRARIES)
# Already in cache, be silent
@@ -90,7 +97,7 @@ IF (NOT WIN32)
ENDIF(${_ARG} MATCHES "^-l")
ENDFOREACH(_ARG)
ENDIF(NOT APR_CONFIG)
IF(NOT APU_CONFIG)
MESSAGE(STATUS "no apu-config found, subversion support will be disabled")
SET(SUBVERSION_FOUND false)
@@ -118,22 +125,22 @@ IF (NOT WIN32)
ENDFOREACH(_ARG)
ENDIF(NOT APU_CONFIG)
ELSE (NOT WIN32)
#search libraries for Windows
#search libaries for Windows
#this needs more work
# search for paths
# search for pathes
MACRO(FIND_SUB_INC targetvar libname pathadd)
IF (SUBVERSION_INSTALL_PATH)
FIND_PATH(${targetvar} ${libname}
PATHS
${SUBVERSION_INSTALL_PATH}/include${pathadd}
"$ENV{ProgramFiles}/Subversion/include"${pathadd}
"$ENV{ProgramFiles}/Subversion/include${pathadd}"
)
ELSE(SUBVERSION_INSTALL_PATH)
FIND_LIBRARY(${targetvar} ${libname}
PATHS
"$ENV{ProgramFiles}/Subversion/include"${pathadd}
"$ENV{ProgramFiles}/Subversion/include${pathadd}"
)
ENDIF(SUBVERSION_INSTALL_PATH)
ENDMACRO(FIND_SUB_INC)
@@ -143,12 +150,12 @@ ELSE (NOT WIN32)
FIND_LIBRARY(${targetvar} ${libname}
PATHS
${SUBVERSION_INSTALL_PATH}/lib
"$ENV{ProgramFiles}/Subversion/lib
"$ENV{ProgramFiles}/Subversion/lib"
)
ELSE(SUBVERSION_INSTALL_PATH)
FIND_LIBRARY(${targetvar} ${libname}
PATHS
"$ENV{ProgramFiles}/Subversion/lib
"$ENV{ProgramFiles}/Subversion/lib"
)
ENDIF(SUBVERSION_INSTALL_PATH)
ENDMACRO(FIND_SUB_LIB)
@@ -454,4 +461,3 @@ MARK_AS_ADVANCED(
#kate: space-indent on; indent-width 2; tab-width: 2; replace-tabs on; auto-insert-doxygen on
+30
View File
@@ -21,6 +21,36 @@ include_directories(
${APR_INCLUDE_DIRS}
)
include(CheckFunctionExists)
cmake_push_check_state(RESET)
set(CMAKE_REQUIRED_INCLUDES ${SUBVERSION_INCLUDE_DIRS})
set(CMAKE_REQUIRED_LIBRARIES ${SUBVERSION_LIBRARIES})
check_function_exists(svn_repos_open3 HAVE_SVN_REPOS_OPEN3)
if(NOT HAVE_SVN_REPOS_OPEN3)
check_function_exists(svn_repos_open HAVE_SVN_REPOS_OPEN)
if(HAVE_SVN_REPOS_OPEN)
add_definitions(-DUSE_SVN_REPOS_OPEN=1)
add_definitions(-Wno-deprecated-declarations)
endif(HAVE_SVN_REPOS_OPEN)
endif(NOT HAVE_SVN_REPOS_OPEN3)
check_function_exists(svn_stream_read_full HAVE_SVN_STREAM_READ_FULL)
if(NOT HAVE_SVN_STREAM_READ_FULL)
check_function_exists(svn_stream_read HAVE_SVN_STREAM_READ)
if(HAVE_SVN_STREAM_READ)
add_definitions(-DUSE_SVN_STREAM_READ=1)
add_definitions(-Wno-deprecated-declarations)
endif(HAVE_SVN_STREAM_READ)
endif(NOT HAVE_SVN_STREAM_READ_FULL)
check_function_exists(svn_stream_copy3 HAVE_SVN_STREAM_COPY3)
if(NOT HAVE_SVN_STREAM_COPY3)
check_function_exists(svn_stream_copy HAVE_SVN_STREAM_COPY)
if(HAVE_SVN_STREAM_COPY)
add_definitions(-DUSE_SVN_STRAM_COPY=1)
add_definitions(-Wno-deprecated-declarations)
endif(HAVE_SVN_STREAM_COPY)
endif(NOT HAVE_SVN_STREAM_COPY3)
cmake_pop_check_state()
set(SVN2GIT_SRCS
ruleparser.cpp
repository.cpp
+6 -1
View File
@@ -130,15 +130,20 @@ static const CommandLineOption options[] = {
{"--identity-domain DOMAIN", "provide user domain if no map was given"},
{"--revisions-file FILENAME", "provide a file with revision number that should be processed"},
{"--rules FILENAME[,FILENAME]", "the rules file(s) that determines what goes where"},
{"--msg-filter FILENAME", "External program / script to modify svn log message"},
{"--add-metadata", "if passed, each git commit will have svn commit info"},
{"--add-metadata-notes", "if passed, each git commit will have notes with svn commit info"},
{"--resume-from revision", "start importing at svn revision number"},
{"--max-rev revision", "stop importing at svn revision number"},
{"--dry-run", "don't actually write anything"},
{"--create-dump", "don't create the repository but a dump file suitable for piping into fast-import"},
{"--debug-rules", "print what rule is being used for each file"},
{"--commit-interval NUMBER", "if passed the cache will be flushed to git every NUMBER of commits"},
{"--stats", "after a run print some statistics about the rules"},
{"--svn-branches", "Use the contents of SVN when creating branches, Note: SVN tags are branches as well"},
{"--empty-dirs", "Add .gitignore-file for empty dirs"},
{"--svn-ignore", "Import svn-ignore-properties via .gitignore"},
{"--propcheck", "Check for svn-properties except svn-ignore"},
{"-h, --help", "show help"},
{"-v, --version", "show version"},
CommandLineLastOption
@@ -199,7 +204,7 @@ int main(int argc, char **argv)
retry:
int min_rev = 1;
foreach (Rules::Repository rule, rulesList.allRepositories()) {
Repository *repo = new Repository(rule);
Repository *repo = createRepository(rule, repositories);
if (!repo)
return EXIT_FAILURE;
repositories.insert(rule.name, repo);
+305 -56
View File
@@ -26,12 +26,204 @@
static const int maxSimultaneousProcesses = 100;
static const int maxMark = (1 << 20) - 2; // some versions of git-fast-import are buggy for larger values of maxMark
typedef unsigned long long mark_t;
static const mark_t maxMark = ULONG_MAX;
class ProcessCache: QLinkedList<Repository *>
class FastImportRepository : public Repository
{
public:
void touch(Repository *repo)
class Transaction : public Repository::Transaction
{
Q_DISABLE_COPY(Transaction)
friend class FastImportRepository;
FastImportRepository *repository;
QByteArray branch;
QByteArray svnprefix;
QByteArray author;
QByteArray log;
uint datetime;
int revnum;
QVector<int> merges;
QStringList deletedFiles;
QByteArray modifiedFiles;
inline Transaction() {}
public:
~Transaction();
void commit();
void setAuthor(const QByteArray &author);
void setDateTime(uint dt);
void setLog(const QByteArray &log);
void noteCopyFromBranch (const QString &prevbranch, int revFrom);
void deleteFile(const QString &path);
QIODevice *addFile(const QString &path, int mode, qint64 length);
void commitNote(const QByteArray &noteText, bool append,
const QByteArray &commit = QByteArray());
};
FastImportRepository(const Rules::Repository &rule);
int setupIncremental(int &cutoff);
void restoreLog();
~FastImportRepository();
void reloadBranches();
int createBranch(const QString &branch, int revnum,
const QString &branchFrom, int revFrom);
int deleteBranch(const QString &branch, int revnum);
Repository::Transaction *newTransaction(const QString &branch, const QString &svnprefix, int revnum);
void createAnnotatedTag(const QString &name, const QString &svnprefix, int revnum,
const QByteArray &author, uint dt,
const QByteArray &log);
void finalizeTags();
void commit();
bool branchExists(const QString& branch) const;
const QByteArray branchNote(const QString& branch) const;
void setBranchNote(const QString& branch, const QByteArray& noteText);
bool hasPrefix() const;
QString getName() const;
Repository *getEffectiveRepository();
private:
struct Branch
{
int created;
QVector<int> commits;
QVector<int> marks;
QByteArray note;
};
struct AnnotatedTag
{
QString supportingRef;
QByteArray svnprefix;
QByteArray author;
QByteArray log;
uint dt;
int revnum;
};
QHash<QString, Branch> branches;
QHash<QString, AnnotatedTag> annotatedTags;
QString name;
QString prefix;
LoggingQProcess fastImport;
int commitCount;
int outstandingTransactions;
QByteArray deletedBranches;
QByteArray resetBranches;
/* Optional filter to fix up log messages */
QProcess filterMsg;
QByteArray msgFilter(QByteArray);
/* starts at 0, and counts up. */
mark_t last_commit_mark;
/* starts at maxMark and counts down. Reset after each SVN revision */
mark_t next_file_mark;
bool processHasStarted;
void startFastImport();
void closeFastImport();
// called when a transaction is deleted
void forgetTransaction(Transaction *t);
int resetBranch(const QString &branch, int revnum, mark_t mark, const QByteArray &resetTo, const QByteArray &comment);
long long markFrom(const QString &branchFrom, int branchRevNum, QByteArray &desc);
friend class ProcessCache;
Q_DISABLE_COPY(FastImportRepository)
};
class ForwardingRepository : public Repository
{
QString name;
Repository *repo;
QString prefix;
public:
class Transaction : public Repository::Transaction
{
Q_DISABLE_COPY(Transaction)
Repository::Transaction *txn;
QString prefix;
public:
Transaction(Repository::Transaction *t, const QString &p) : txn(t), prefix(p) {}
~Transaction() { delete txn; }
void commit() { txn->commit(); }
void setAuthor(const QByteArray &author) { txn->setAuthor(author); }
void setDateTime(uint dt) { txn->setDateTime(dt); }
void setLog(const QByteArray &log) { txn->setLog(log); }
void noteCopyFromBranch (const QString &prevbranch, int revFrom)
{ txn->noteCopyFromBranch(prevbranch, revFrom); }
void deleteFile(const QString &path) { txn->deleteFile(prefix + path); }
QIODevice *addFile(const QString &path, int mode, qint64 length)
{ return txn->addFile(prefix + path, mode, length); }
void commitNote(const QByteArray &noteText, bool append,
const QByteArray &commit)
{ return txn->commitNote(noteText, append, commit); }
};
ForwardingRepository(const QString &n, Repository *r, const QString &p) : name(n), repo(r), prefix(p) {}
int setupIncremental(int &) { return 1; }
void restoreLog() {}
void reloadBranches() { return repo->reloadBranches(); }
int createBranch(const QString &branch, int revnum,
const QString &branchFrom, int revFrom)
{ return repo->createBranch(branch, revnum, branchFrom, revFrom); }
int deleteBranch(const QString &branch, int revnum)
{ return repo->deleteBranch(branch, revnum); }
Repository::Transaction *newTransaction(const QString &branch, const QString &svnprefix, int revnum)
{
Repository::Transaction *t = repo->newTransaction(branch, svnprefix, revnum);
return new Transaction(t, prefix);
}
void createAnnotatedTag(const QString &name, const QString &svnprefix, int revnum,
const QByteArray &author, uint dt,
const QByteArray &log)
{ repo->createAnnotatedTag(name, svnprefix, revnum, author, dt, log); }
void finalizeTags() { /* loop that called this will invoke it on 'repo' too */ }
void commit() { repo->commit(); }
bool branchExists(const QString& branch) const
{ return repo->branchExists(branch); }
const QByteArray branchNote(const QString& branch) const
{ return repo->branchNote(branch); }
void setBranchNote(const QString& branch, const QByteArray& noteText)
{ repo->setBranchNote(branch, noteText); }
bool hasPrefix() const
{ return !prefix.isEmpty() || repo->hasPrefix(); }
QString getName() const
{ return name; }
Repository *getEffectiveRepository()
{ return repo->getEffectiveRepository(); }
};
class ProcessCache: QLinkedList<FastImportRepository *>
{
public:
void touch(FastImportRepository *repo)
{
remove(repo);
@@ -43,7 +235,7 @@ public:
append(repo);
}
inline void remove(Repository *repo)
inline void remove(FastImportRepository *repo)
{
#if QT_VERSION >= 0x040400
removeOne(repo);
@@ -54,6 +246,18 @@ public:
};
static ProcessCache processCache;
Repository *createRepository(const Rules::Repository &rule, const QHash<QString, Repository *> &repositories)
{
if (rule.forwardTo.isEmpty())
return new FastImportRepository(rule);
Repository *r = repositories[rule.forwardTo];
if (!r) {
qCritical() << "no repository with name" << rule.forwardTo << "found at" << rule.info();
return r;
}
return new ForwardingRepository(rule.name, r, rule.prefix);
}
static QString marksFileName(QString name)
{
name.replace('/', '_');
@@ -61,7 +265,7 @@ static QString marksFileName(QString name)
return name;
}
Repository::Repository(const Rules::Repository &rule)
FastImportRepository::FastImportRepository(const Rules::Repository &rule)
: name(rule.name), prefix(rule.forwardTo), fastImport(name), commitCount(0), outstandingTransactions(0),
last_commit_mark(0), next_file_mark(maxMark), processHasStarted(false)
{
@@ -76,7 +280,7 @@ Repository::Repository(const Rules::Repository &rule)
branches["master"].created = 1;
fastImport.setWorkingDirectory(name);
if (!CommandLineParser::instance()->contains("dry-run")) {
if (!CommandLineParser::instance()->contains("dry-run") && !CommandLineParser::instance()->contains("create-dump")) {
if (!QDir(name).exists()) { // repo doesn't exist yet.
qDebug() << "Creating new repository" << name;
QDir::current().mkpath(name);
@@ -105,17 +309,21 @@ Repository::Repository(const Rules::Repository &rule)
static QString logFileName(QString name)
{
name.replace('/', '_');
name.prepend("log-");
if (CommandLineParser::instance()->contains("create-dump"))
name.append(".fi");
else
name.prepend("log-");
return name;
}
static int lastValidMark(QString name)
static mark_t lastValidMark(QString name)
{
QFile marksfile(name + "/" + marksFileName(name));
if (!marksfile.open(QIODevice::ReadOnly))
return 0;
int prev_mark = 0;
qDebug() << "marksfile " << marksfile.fileName() ;
mark_t prev_mark = 0;
int lineno = 0;
while (!marksfile.atEnd()) {
@@ -124,17 +332,17 @@ static int lastValidMark(QString name)
if (line.isEmpty())
continue;
int mark = 0;
mark_t mark = 0;
if (line[0] == ':') {
int sp = line.indexOf(' ');
if (sp != -1) {
QString m = line.mid(1, sp-1);
mark = m.toInt();
mark = m.toULongLong();
}
}
if (!mark) {
qCritical() << marksfile.fileName() << "line" << lineno << "marks file corrupt?";
qCritical() << marksfile.fileName() << "line" << lineno << "marks file corrupt?" << "mark " << mark;
return 0;
}
@@ -157,7 +365,7 @@ static int lastValidMark(QString name)
return prev_mark;
}
int Repository::setupIncremental(int &cutoff)
int FastImportRepository::setupIncremental(int &cutoff)
{
QFile logfile(logFileName(name));
if (!logfile.exists())
@@ -167,7 +375,7 @@ int Repository::setupIncremental(int &cutoff)
QRegExp progress("progress SVN r(\\d+) branch (.*) = :(\\d+)");
int last_valid_mark = lastValidMark(name);
mark_t last_valid_mark = lastValidMark(name);
int last_revnum = 0;
qint64 pos = 0;
@@ -188,7 +396,7 @@ int Repository::setupIncremental(int &cutoff)
int revnum = progress.cap(1).toInt();
QString branch = progress.cap(2);
int mark = progress.cap(3).toInt();
mark_t mark = progress.cap(3).toULongLong();
if (revnum >= cutoff)
goto beyond_cutoff;
@@ -237,7 +445,7 @@ int Repository::setupIncremental(int &cutoff)
return cutoff;
}
void Repository::restoreLog()
void FastImportRepository::restoreLog()
{
QString file = logFileName(name);
QString bkup = file + ".old";
@@ -247,13 +455,13 @@ void Repository::restoreLog()
QFile::rename(bkup, file);
}
Repository::~Repository()
FastImportRepository::~FastImportRepository()
{
Q_ASSERT(outstandingTransactions == 0);
closeFastImport();
}
void Repository::closeFastImport()
void FastImportRepository::closeFastImport()
{
if (fastImport.state() != QProcess::NotRunning) {
fastImport.write("checkpoint\n");
@@ -269,7 +477,7 @@ void Repository::closeFastImport()
processCache.remove(this);
}
void Repository::reloadBranches()
void FastImportRepository::reloadBranches()
{
bool reset_notes = false;
foreach (QString branch, branches.keys()) {
@@ -297,7 +505,7 @@ void Repository::reloadBranches()
}
}
int Repository::markFrom(const QString &branchFrom, int branchRevNum, QByteArray &branchFromDesc)
long long FastImportRepository::markFrom(const QString &branchFrom, int branchRevNum, QByteArray &branchFromDesc)
{
Branch &brFrom = branches[branchFrom];
if (!brFrom.created)
@@ -327,11 +535,11 @@ int Repository::markFrom(const QString &branchFrom, int branchRevNum, QByteArray
return brFrom.marks[it - brFrom.commits.begin()];
}
int Repository::createBranch(const QString &branch, int revnum,
const QString &branchFrom, int branchRevNum)
int FastImportRepository::createBranch(const QString &branch, int revnum,
const QString &branchFrom, int branchRevNum)
{
QByteArray branchFromDesc = "from branch " + branchFrom.toUtf8();
int mark = markFrom(branchFrom, branchRevNum, branchFromDesc);
long long mark = markFrom(branchFrom, branchRevNum, branchFromDesc);
if (mark == -1) {
qCritical() << branch << "in repository" << name
@@ -358,13 +566,13 @@ int Repository::createBranch(const QString &branch, int revnum,
return resetBranch(branch, revnum, mark, branchFromRef, branchFromDesc);
}
int Repository::deleteBranch(const QString &branch, int revnum)
int FastImportRepository::deleteBranch(const QString &branch, int revnum)
{
static QByteArray null_sha(40, '0');
return resetBranch(branch, revnum, 0, null_sha, "delete");
}
int Repository::resetBranch(const QString &branch, int revnum, int mark, const QByteArray &resetTo, const QByteArray &comment)
int FastImportRepository::resetBranch(const QString &branch, int revnum, mark_t mark, const QByteArray &resetTo, const QByteArray &comment)
{
QByteArray branchRef = branch.toUtf8();
if (!branchRef.startsWith("refs/"))
@@ -399,7 +607,7 @@ int Repository::resetBranch(const QString &branch, int revnum, int mark, const Q
return EXIT_SUCCESS;
}
void Repository::commit()
void FastImportRepository::commit()
{
if (deletedBranches.isEmpty() && resetBranches.isEmpty()) {
return;
@@ -411,8 +619,8 @@ void Repository::commit()
resetBranches.clear();
}
Repository::Transaction *Repository::newTransaction(const QString &branch, const QString &svnprefix,
int revnum)
Repository::Transaction *FastImportRepository::newTransaction(const QString &branch, const QString &svnprefix,
int revnum)
{
if (!branches.contains(branch)) {
qWarning() << "WARN: Transaction:" << branch << "is not a known branch in repository" << name << endl
@@ -430,22 +638,22 @@ Repository::Transaction *Repository::newTransaction(const QString &branch, const
startFastImport();
// write everything to disk every 10000 commits
fastImport.write("checkpoint\n");
qDebug() << "checkpoint!, marks file truncated";
qDebug() << "checkpoint!, marks file trunkated";
}
outstandingTransactions++;
return txn;
}
void Repository::forgetTransaction(Transaction *)
void FastImportRepository::forgetTransaction(Transaction *)
{
if (!--outstandingTransactions)
next_file_mark = maxMark;
}
void Repository::createAnnotatedTag(const QString &ref, const QString &svnprefix,
int revnum,
const QByteArray &author, uint dt,
const QByteArray &log)
void FastImportRepository::createAnnotatedTag(const QString &ref, const QString &svnprefix,
int revnum,
const QByteArray &author, uint dt,
const QByteArray &log)
{
QString tagName = ref;
if (tagName.startsWith("refs/tags/"))
@@ -465,7 +673,7 @@ void Repository::createAnnotatedTag(const QString &ref, const QString &svnprefix
tag.dt = dt;
}
void Repository::finalizeTags()
void FastImportRepository::finalizeTags()
{
if (annotatedTags.isEmpty())
return;
@@ -525,7 +733,30 @@ void Repository::finalizeTags()
printf("\n");
}
void Repository::startFastImport()
QByteArray
FastImportRepository::msgFilter(QByteArray msg)
{
QByteArray output = msg;
if (CommandLineParser::instance()->contains("msg-filter")) {
if (filterMsg.state() == QProcess::Running)
qFatal("filter process already running?");
filterMsg.start(CommandLineParser::instance()->optionArgument("msg-filter"));
if(!(filterMsg.waitForStarted(-1)))
qFatal("Failed to Start Filter %d %s", __LINE__, qPrintable(filterMsg.errorString()));
filterMsg.write(msg);
filterMsg.closeWriteChannel();
filterMsg.waitForFinished();
output = filterMsg.readAllStandardOutput();
}
return output;
}
void FastImportRepository::startFastImport()
{
processCache.touch(this);
@@ -544,7 +775,7 @@ void Repository::startFastImport()
fastImport.setStandardOutputFile(logFileName(name), QIODevice::Append);
fastImport.setProcessChannelMode(QProcess::MergedChannels);
if (!CommandLineParser::instance()->contains("dry-run")) {
if (!CommandLineParser::instance()->contains("dry-run") && !CommandLineParser::instance()->contains("create-dump")) {
fastImport.start("git", QStringList() << "fast-import" << marksOptions);
} else {
fastImport.start("/bin/cat", QStringList());
@@ -564,50 +795,65 @@ QByteArray Repository::formatMetadataMessage(const QByteArray &svnprefix, int re
return msg;
}
bool Repository::branchExists(const QString& branch) const
bool FastImportRepository::branchExists(const QString& branch) const
{
return branches.contains(branch);
}
const QByteArray Repository::branchNote(const QString& branch) const
const QByteArray FastImportRepository::branchNote(const QString& branch) const
{
return branches.value(branch).note;
}
void Repository::setBranchNote(const QString& branch, const QByteArray& noteText)
void FastImportRepository::setBranchNote(const QString& branch, const QByteArray& noteText)
{
if (branches.contains(branch))
branches[branch].note = noteText;
}
Repository::Transaction::~Transaction()
bool FastImportRepository::hasPrefix() const
{
return !prefix.isEmpty();
}
QString FastImportRepository::getName() const
{
return name;
}
Repository *FastImportRepository::getEffectiveRepository()
{
return this;
}
FastImportRepository::Transaction::~Transaction()
{
repository->forgetTransaction(this);
}
void Repository::Transaction::setAuthor(const QByteArray &a)
void FastImportRepository::Transaction::setAuthor(const QByteArray &a)
{
author = a;
}
void Repository::Transaction::setDateTime(uint dt)
void FastImportRepository::Transaction::setDateTime(uint dt)
{
datetime = dt;
}
void Repository::Transaction::setLog(const QByteArray &l)
void FastImportRepository::Transaction::setLog(const QByteArray &l)
{
log = l;
}
void Repository::Transaction::noteCopyFromBranch(const QString &branchFrom, int branchRevNum)
void FastImportRepository::Transaction::noteCopyFromBranch(const QString &branchFrom, int branchRevNum)
{
if(branch == branchFrom) {
qWarning() << "WARN: Cannot merge inside a branch";
return;
}
static QByteArray dummy;
int mark = repository->markFrom(branchFrom, branchRevNum, dummy);
long long mark = repository->markFrom(branchFrom, branchRevNum, dummy);
Q_ASSERT(dummy.isEmpty());
if (mark == -1) {
@@ -628,7 +874,7 @@ void Repository::Transaction::noteCopyFromBranch(const QString &branchFrom, int
}
}
void Repository::Transaction::deleteFile(const QString &path)
void FastImportRepository::Transaction::deleteFile(const QString &path)
{
QString pathNoSlash = repository->prefix + path;
if(pathNoSlash.endsWith('/'))
@@ -636,9 +882,9 @@ void Repository::Transaction::deleteFile(const QString &path)
deletedFiles.append(pathNoSlash);
}
QIODevice *Repository::Transaction::addFile(const QString &path, int mode, qint64 length)
QIODevice *FastImportRepository::Transaction::addFile(const QString &path, int mode, qint64 length)
{
int mark = repository->next_file_mark--;
mark_t mark = repository->next_file_mark--;
// in case the two mark allocations meet, we might as well just abort
Q_ASSERT(mark > repository->last_commit_mark + 1);
@@ -665,7 +911,7 @@ QIODevice *Repository::Transaction::addFile(const QString &path, int mode, qint6
return &repository->fastImport;
}
void Repository::Transaction::commitNote(const QByteArray &noteText, bool append, const QByteArray &commit)
void FastImportRepository::Transaction::commitNote(const QByteArray &noteText, bool append, const QByteArray &commit)
{
QByteArray branchRef = branch;
if (!branchRef.startsWith("refs/"))
@@ -698,14 +944,14 @@ void Repository::Transaction::commitNote(const QByteArray &noteText, bool append
}
}
void Repository::Transaction::commit()
void FastImportRepository::Transaction::commit()
{
repository->startFastImport();
// We might be tempted to use the SVN revision number as the fast-import commit mark.
// However, a single SVN revision can modify multiple branches, and thus lead to multiple
// However, a single SVN revision can modify multple branches, and thus lead to multiple
// commits in the same repo. So, we need to maintain a separate commit mark counter.
int mark = ++repository->last_commit_mark;
mark_t mark = ++repository->last_commit_mark;
// in case the two mark allocations meet, we might as well just abort
Q_ASSERT(mark < repository->next_file_mark - 1);
@@ -717,7 +963,10 @@ void Repository::Transaction::commit()
if (CommandLineParser::instance()->contains("add-metadata"))
message += "\n" + Repository::formatMetadataMessage(svnprefix, revnum);
int parentmark = 0;
// Call external message filter if provided
message = repository->msgFilter(message);
mark_t parentmark = 0;
Branch &br = repository->branches[branch];
if (br.created && !br.marks.isEmpty() && br.marks.last()) {
parentmark = br.marks.last();
@@ -743,7 +992,7 @@ void Repository::Transaction::commit()
// note some of the inferred merges
QByteArray desc = "";
int i = !!parentmark; // if parentmark != 0, there's at least one parent
mark_t i = !!parentmark; // if parentmark != 0, there's at least one parent
if(log.contains("This commit was manufactured by cvs2svn") && merges.count() > 1) {
qSort(merges);
@@ -752,7 +1001,7 @@ void Repository::Transaction::commit()
qWarning() << "WARN: Discarding all but the highest merge point as a workaround for cvs2svn created branch/tag"
<< "Discarded marks:" << merges;
} else {
foreach (const int merge, merges) {
foreach (const mark_t merge, merges) {
if (merge == parentmark) {
qDebug() << "Skipping marking" << merge << "as a merge point as it matches the parent";
continue;
+34 -90
View File
@@ -91,115 +91,59 @@ public:
}
};
class Repository
{
public:
class Transaction
{
Q_DISABLE_COPY(Transaction)
friend class Repository;
Repository *repository;
QByteArray branch;
QByteArray svnprefix;
QByteArray author;
QByteArray log;
uint datetime;
int revnum;
QVector<int> merges;
QStringList deletedFiles;
QByteArray modifiedFiles;
inline Transaction() {}
protected:
Transaction() {}
public:
~Transaction();
void commit();
virtual ~Transaction() {}
virtual void commit() = 0;
void setAuthor(const QByteArray &author);
void setDateTime(uint dt);
void setLog(const QByteArray &log);
virtual void setAuthor(const QByteArray &author) = 0;
virtual void setDateTime(uint dt) = 0;
virtual void setLog(const QByteArray &log) = 0;
void noteCopyFromBranch (const QString &prevbranch, int revFrom);
virtual void noteCopyFromBranch (const QString &prevbranch, int revFrom) = 0;
void deleteFile(const QString &path);
QIODevice *addFile(const QString &path, int mode, qint64 length);
virtual void deleteFile(const QString &path) = 0;
virtual QIODevice *addFile(const QString &path, int mode, qint64 length) = 0;
void commitNote(const QByteArray &noteText, bool append,
const QByteArray &commit = QByteArray());
virtual void commitNote(const QByteArray &noteText, bool append,
const QByteArray &commit = QByteArray()) = 0;
};
Repository(const Rules::Repository &rule);
int setupIncremental(int &cutoff);
void restoreLog();
~Repository();
virtual int setupIncremental(int &cutoff) = 0;
virtual void restoreLog() = 0;
virtual ~Repository() {}
void reloadBranches();
int createBranch(const QString &branch, int revnum,
const QString &branchFrom, int revFrom);
int deleteBranch(const QString &branch, int revnum);
Repository::Transaction *newTransaction(const QString &branch, const QString &svnprefix, int revnum);
virtual void reloadBranches() = 0;
virtual int createBranch(const QString &branch, int revnum,
const QString &branchFrom, int revFrom) = 0;
virtual int deleteBranch(const QString &branch, int revnum) = 0;
virtual Repository::Transaction *newTransaction(const QString &branch, const QString &svnprefix, int revnum) = 0;
void createAnnotatedTag(const QString &name, const QString &svnprefix, int revnum,
const QByteArray &author, uint dt,
const QByteArray &log);
void finalizeTags();
void commit();
virtual void createAnnotatedTag(const QString &name, const QString &svnprefix, int revnum,
const QByteArray &author, uint dt,
const QByteArray &log) = 0;
virtual void finalizeTags() = 0;
virtual void commit() = 0;
static QByteArray formatMetadataMessage(const QByteArray &svnprefix, int revnum,
const QByteArray &tag = QByteArray());
bool branchExists(const QString& branch) const;
const QByteArray branchNote(const QString& branch) const;
void setBranchNote(const QString& branch, const QByteArray& noteText);
virtual bool branchExists(const QString& branch) const = 0;
virtual const QByteArray branchNote(const QString& branch) const = 0;
virtual void setBranchNote(const QString& branch, const QByteArray& noteText) = 0;
private:
struct Branch
{
int created;
QVector<int> commits;
QVector<int> marks;
QByteArray note;
};
struct AnnotatedTag
{
QString supportingRef;
QByteArray svnprefix;
QByteArray author;
QByteArray log;
uint dt;
int revnum;
};
virtual bool hasPrefix() const = 0;
QHash<QString, Branch> branches;
QHash<QString, AnnotatedTag> annotatedTags;
QString name;
QString prefix;
LoggingQProcess fastImport;
int commitCount;
int outstandingTransactions;
QByteArray deletedBranches;
QByteArray resetBranches;
/* starts at 0, and counts up. */
int last_commit_mark;
/* starts at maxMark and counts down. Reset after each SVN revision */
int next_file_mark;
bool processHasStarted;
void startFastImport();
void closeFastImport();
// called when a transaction is deleted
void forgetTransaction(Transaction *t);
int resetBranch(const QString &branch, int revnum, int mark, const QByteArray &resetTo, const QByteArray &comment);
int markFrom(const QString &branchFrom, int branchRevNum, QByteArray &desc);
friend class ProcessCache;
Q_DISABLE_COPY(Repository)
virtual QString getName() const = 0;
virtual Repository *getEffectiveRepository() = 0;
};
Repository *createRepository(const Rules::Repository &rule, const QHash<QString, Repository *> &repositories);
#endif
+22 -12
View File
@@ -207,6 +207,18 @@ void Rules::load(const QString &filename)
repo.prefix = matchPrefixLine.cap(1);
continue;
} else if (line == "end repository") {
if (!repo.forwardTo.isEmpty()
&& !repo.description.isEmpty()) {
qFatal("Specifing repository and description on repository is invalid on line %d", lineNumber);
}
if (!repo.forwardTo.isEmpty()
&& !repo.branches.isEmpty()) {
qFatal("Specifing repository and branches on repository is invalid on line %d", lineNumber);
}
m_repositories += repo;
{
// clear out 'repo'
@@ -319,7 +331,7 @@ public:
void ruleMatched(const Rules::Match &rule, const int rev);
void addRule(const Rules::Match &rule);
private:
QMap<QString,int> m_usedRules;
QMap<Rules::Match,int> m_usedRules;
};
Stats::Stats() : d(new Private())
@@ -369,29 +381,27 @@ Stats::Private::Private()
void Stats::Private::printStats() const
{
printf("\nRule stats\n");
foreach(const QString name, m_usedRules.keys()) {
printf("%s was matched %i times\n", qPrintable(name), m_usedRules[name]);
foreach(const Rules::Match rule, m_usedRules.keys()) {
printf("%s was matched %i times\n", qPrintable(rule.info()), m_usedRules[rule]);
}
}
void Stats::Private::ruleMatched(const Rules::Match &rule, const int rev)
{
Q_UNUSED(rev);
const QString name = rule.info();
if(!m_usedRules.contains(name)) {
m_usedRules.insert(name, 1);
qWarning() << "WARN: New match rule, should have been added when created.";
if(!m_usedRules.contains(rule)) {
m_usedRules.insert(rule, 1);
qWarning() << "WARN: New match rule" << rule.info() << ", should have been added when created.";
} else {
m_usedRules[name]++;
m_usedRules[rule]++;
}
}
void Stats::Private::addRule( const Rules::Match &rule)
{
const QString name = rule.info();
if(m_usedRules.contains(name))
qWarning() << "WARN: Rule" << name << "was added multiple times.";
m_usedRules.insert(name, 0);
if(m_usedRules.contains(rule))
qWarning() << "WARN: Rule" << rule.info() << "was added multiple times.";
m_usedRules.insert(rule, 0);
}
#ifndef QT_NO_DEBUG_STREAM
+5
View File
@@ -83,6 +83,11 @@ public:
} action;
Match() : minRevision(-1), maxRevision(-1), annotate(false), action(Ignore) { }
bool operator<(const Match other) const {
if (filename != other.filename)
return filename < other.filename;
return lineNumber < other.lineNumber;
}
const QString info() const {
const QString info = Rule::filename % ":" % QByteArray::number(Rule::lineNumber) % " " % rx.pattern();
return info;
+226 -76
View File
@@ -62,9 +62,13 @@ class AprAutoPool
AprAutoPool &operator=(const AprAutoPool &);
public:
inline AprAutoPool(apr_pool_t *parent = NULL)
{ pool = svn_pool_create(parent); }
inline ~AprAutoPool()
{ svn_pool_destroy(pool); }
{
pool = svn_pool_create(parent);
}
inline ~AprAutoPool()
{
svn_pool_destroy(pool);
}
inline void clear() { svn_pool_clear(pool); }
inline apr_pool_t *data() const { return pool; }
@@ -88,6 +92,7 @@ public:
private:
AprAutoPool global_pool;
AprAutoPool scratch_pool;
svn_fs_t *fs;
svn_revnum_t youngest_rev;
};
@@ -145,7 +150,7 @@ bool Svn::exportRevision(int revnum)
}
SvnPrivate::SvnPrivate(const QString &pathToRepository)
: global_pool(NULL)
: global_pool(NULL) , scratch_pool(NULL)
{
if( openRepository(pathToRepository) != EXIT_SUCCESS) {
qCritical() << "Failed to open repository";
@@ -156,10 +161,7 @@ SvnPrivate::SvnPrivate(const QString &pathToRepository)
svn_fs_youngest_rev(&youngest_rev, fs, global_pool);
}
SvnPrivate::~SvnPrivate()
{
svn_pool_destroy(global_pool);
}
SvnPrivate::~SvnPrivate() {}
int SvnPrivate::youngestRevision()
{
@@ -172,7 +174,11 @@ int SvnPrivate::openRepository(const QString &pathToRepository)
QString path = pathToRepository;
while (path.endsWith('/')) // no trailing slash allowed
path = path.mid(0, path.length()-1);
#ifndef USE_SVN_REPOS_OPEN
SVN_ERR(svn_repos_open3(&repos, QFile::encodeName(path), NULL, global_pool, scratch_pool));
#else
SVN_ERR(svn_repos_open(&repos, QFile::encodeName(path), global_pool));
#endif
fs = svn_repos_fs(repos);
return EXIT_SUCCESS;
@@ -205,39 +211,6 @@ findMatchRule(const MatchRuleList &matchRules, int revnum, const QString &curren
return end;
}
static void splitPathName(const Rules::Match &rule, const QString &pathName, QString *svnprefix_p,
QString *repository_p, QString *branch_p, QString *path_p)
{
QString svnprefix = pathName;
svnprefix.truncate(rule.rx.matchedLength());
if (svnprefix_p) {
*svnprefix_p = svnprefix;
}
if (repository_p) {
*repository_p = svnprefix;
repository_p->replace(rule.rx, rule.repository);
foreach (Rules::Match::Substitution subst, rule.repo_substs) {
subst.apply(*repository_p);
}
}
if (branch_p) {
*branch_p = svnprefix;
branch_p->replace(rule.rx, rule.branch);
foreach (Rules::Match::Substitution subst, rule.branch_substs) {
subst.apply(*branch_p);
}
}
if (path_p) {
QString prefix = svnprefix;
prefix.replace(rule.rx, rule.prefix);
*path_p = prefix + pathName.mid(svnprefix.length());
}
}
static int pathMode(svn_fs_root_t *fs_root, const char *pathname, apr_pool_t *pool)
{
svn_string_t *propvalue;
@@ -297,7 +270,11 @@ static int dumpBlob(Repository::Transaction *txn, svn_fs_root_t *fs_root,
if (!CommandLineParser::instance()->contains("dry-run")) {
QByteArray buf;
buf.reserve(len);
SVN_ERR(svn_stream_read(in_stream, buf.data(), &len));
#ifndef USE_SVN_STREAM_READ
SVN_ERR(svn_stream_read_full(in_stream, buf.data(), &len));
#else
SVN_ERR(svn_stream_read(in_stream, buf.data(), &len));
#endif
if (len == strlen("link ") && strncmp(buf, "link ", len) == 0) {
mode = 0120000;
stream_length -= len;
@@ -316,9 +293,13 @@ static int dumpBlob(Repository::Transaction *txn, svn_fs_root_t *fs_root,
if (!CommandLineParser::instance()->contains("dry-run")) {
// open a generic svn_stream_t for the QIODevice
out_stream = streamForDevice(io, dumppool);
SVN_ERR(svn_stream_copy(in_stream, out_stream, dumppool));
svn_stream_close(out_stream);
svn_stream_close(in_stream);
#ifndef USE_SVN_STREAM_COPY
SVN_ERR(svn_stream_copy3(in_stream, out_stream, NULL, NULL, dumppool));
#else
SVN_ERR(svn_stream_copy(in_stream, out_stream, dumppool));
svn_stream_close(out_stream);
svn_stream_close(in_stream);
#endif
// print an ending newline
io->putChar('\n');
@@ -430,17 +411,24 @@ public:
int fetchRevProps();
int commit();
int exportEntry(const char *path, const svn_fs_path_change_t *change, apr_hash_t *changes);
int exportDispatch(const char *path, const svn_fs_path_change_t *change,
int exportEntry(const char *path, const svn_fs_path_change2_t *change, apr_hash_t *changes);
int exportDispatch(const char *path, const svn_fs_path_change2_t *change,
const char *path_from, svn_revnum_t rev_from,
apr_hash_t *changes, const QString &current, const Rules::Match &rule,
const MatchRuleList &matchRules, apr_pool_t *pool);
int exportInternal(const char *path, const svn_fs_path_change_t *change,
int exportInternal(const char *path, const svn_fs_path_change2_t *change,
const char *path_from, svn_revnum_t rev_from,
const QString &current, const Rules::Match &rule, const MatchRuleList &matchRules);
int recurse(const char *path, const svn_fs_path_change_t *change,
int recurse(const char *path, const svn_fs_path_change2_t *change,
const char *path_from, const MatchRuleList &matchRules, svn_revnum_t rev_from,
apr_hash_t *changes, apr_pool_t *pool);
int addGitIgnore(apr_pool_t *pool, const char *key, QString path,
svn_fs_root_t *fs_root, Repository::Transaction *txn, const char *content = NULL);
int fetchIgnoreProps(QString *ignore, apr_pool_t *pool, const char *key, svn_fs_root_t *fs_root);
int fetchUnknownProps(apr_pool_t *pool, const char *key, svn_fs_root_t *fs_root);
private:
void splitPathName(const Rules::Match &rule, const QString &pathName, QString *svnprefix_p,
QString *repository_p, QString *effectiveRepository_p, QString *branch_p, QString *path_p);
};
int SvnPrivate::exportRevision(int revnum)
@@ -473,19 +461,64 @@ int SvnPrivate::exportRevision(int revnum)
return EXIT_SUCCESS;
}
void SvnRevision::splitPathName(const Rules::Match &rule, const QString &pathName, QString *svnprefix_p,
QString *repository_p, QString *effectiveRepository_p, QString *branch_p, QString *path_p)
{
QString svnprefix = pathName;
svnprefix.truncate(rule.rx.matchedLength());
if (svnprefix_p) {
*svnprefix_p = svnprefix;
}
if (repository_p) {
*repository_p = svnprefix;
repository_p->replace(rule.rx, rule.repository);
foreach (Rules::Match::Substitution subst, rule.repo_substs) {
subst.apply(*repository_p);
}
}
if (effectiveRepository_p) {
*effectiveRepository_p = svnprefix;
effectiveRepository_p->replace(rule.rx, rule.repository);
foreach (Rules::Match::Substitution subst, rule.repo_substs) {
subst.apply(*effectiveRepository_p);
}
Repository *repository = repositories.value(*effectiveRepository_p, 0);
if (repository) {
*effectiveRepository_p = repository->getEffectiveRepository()->getName();
}
}
if (branch_p) {
*branch_p = svnprefix;
branch_p->replace(rule.rx, rule.branch);
foreach (Rules::Match::Substitution subst, rule.branch_substs) {
subst.apply(*branch_p);
}
}
if (path_p) {
QString prefix = svnprefix;
prefix.replace(rule.rx, rule.prefix);
*path_p = prefix + pathName.mid(svnprefix.length());
}
}
int SvnRevision::prepareTransactions()
{
// find out what was changed in this revision:
apr_hash_t *changes;
SVN_ERR(svn_fs_paths_changed(&changes, fs_root, pool));
SVN_ERR(svn_fs_paths_changed2(&changes, fs_root, pool));
QMap<QByteArray, svn_fs_path_change_t*> map;
QMap<QByteArray, svn_fs_path_change2_t*> map;
for (apr_hash_index_t *i = apr_hash_first(pool, changes); i; i = apr_hash_next(i)) {
const void *vkey;
void *value;
apr_hash_this(i, &vkey, NULL, &value);
const char *key = reinterpret_cast<const char *>(vkey);
svn_fs_path_change_t *change = reinterpret_cast<svn_fs_path_change_t *>(value);
svn_fs_path_change2_t *change = reinterpret_cast<svn_fs_path_change2_t *>(value);
// If we mix path deletions with path adds/replaces we might erase a
// branch after that it has been reset -> history truncated
if (map.contains(QByteArray(key))) {
@@ -502,7 +535,7 @@ int SvnRevision::prepareTransactions()
map.insertMulti(QByteArray(key), change);
}
QMapIterator<QByteArray, svn_fs_path_change_t*> i(map);
QMapIterator<QByteArray, svn_fs_path_change2_t*> i(map);
while (i.hasNext()) {
i.next();
if (exportEntry(i.key(), i.value(), changes) == EXIT_FAILURE)
@@ -523,9 +556,12 @@ int SvnRevision::fetchRevProps()
svn_string_t *svndate = (svn_string_t*)apr_hash_get(revprops, "svn:date", APR_HASH_KEY_STRING);
svn_string_t *svnlog = (svn_string_t*)apr_hash_get(revprops, "svn:log", APR_HASH_KEY_STRING);
log = svnlog->data;
if (svnlog)
log = svnlog->data;
else
log.clear();
authorident = svnauthor ? identities.value(svnauthor->data) : QByteArray();
epoch = get_epoch(svndate->data);
epoch = svndate ? get_epoch(svndate->data) : 0;
if (authorident.isEmpty()) {
if (!svnauthor || svn_string_isempty(svnauthor))
authorident = "nobody <nobody@localhost>";
@@ -558,21 +594,42 @@ int SvnRevision::commit()
return EXIT_SUCCESS;
}
int SvnRevision::exportEntry(const char *key, const svn_fs_path_change_t *change,
int SvnRevision::exportEntry(const char *key, const svn_fs_path_change2_t *change,
apr_hash_t *changes)
{
AprAutoPool revpool(pool.data());
QString current = QString::fromUtf8(key);
// was this copied from somewhere?
svn_revnum_t rev_from;
const char *path_from;
SVN_ERR(svn_fs_copied_from(&rev_from, &path_from, fs_root, key, revpool));
svn_revnum_t rev_from = SVN_INVALID_REVNUM;
const char *path_from = NULL;
if (change->change_kind != svn_fs_path_change_delete) {
// svn_fs_copied_from would fail on deleted paths, because the path
// obviously no longer exists in the current revision
SVN_ERR(svn_fs_copied_from(&rev_from, &path_from, fs_root, key, revpool));
}
// is this a directory?
svn_boolean_t is_dir;
SVN_ERR(svn_fs_is_dir(&is_dir, fs_root, key, revpool));
if (is_dir) {
// Adding newly created directories
if (is_dir && change->change_kind == svn_fs_path_change_add && path_from == NULL
&& CommandLineParser::instance()->contains("empty-dirs")) {
QString keyQString = key;
// Skipping SVN-directory-layout
if (keyQString.endsWith("/trunk") || keyQString.endsWith("/branches") || keyQString.endsWith("/tags")) {
//qDebug() << "Skipping SVN-directory-layout:" << keyQString;
return EXIT_SUCCESS;
}
needCommit = true;
//qDebug() << "Adding directory:" << key;
}
// svn:ignore-properties
else if (is_dir && (change->change_kind == svn_fs_path_change_add || change->change_kind == svn_fs_path_change_modify)
&& path_from == NULL && CommandLineParser::instance()->contains("svn-ignore")) {
needCommit = true;
}
else if (is_dir) {
if (change->change_kind == svn_fs_path_change_modify ||
change->change_kind == svn_fs_path_change_add) {
if (path_from == NULL) {
@@ -640,7 +697,7 @@ int SvnRevision::exportEntry(const char *key, const svn_fs_path_change_t *change
return EXIT_SUCCESS;
}
int SvnRevision::exportDispatch(const char *key, const svn_fs_path_change_t *change,
int SvnRevision::exportDispatch(const char *key, const svn_fs_path_change2_t *change,
const char *path_from, svn_revnum_t rev_from,
apr_hash_t *changes, const QString &current,
const Rules::Match &rule, const MatchRuleList &matchRules, apr_pool_t *pool)
@@ -678,13 +735,13 @@ int SvnRevision::exportDispatch(const char *key, const svn_fs_path_change_t *cha
return EXIT_FAILURE;
}
int SvnRevision::exportInternal(const char *key, const svn_fs_path_change_t *change,
int SvnRevision::exportInternal(const char *key, const svn_fs_path_change2_t *change,
const char *path_from, svn_revnum_t rev_from,
const QString &current, const Rules::Match &rule, const MatchRuleList &matchRules)
{
needCommit = true;
QString svnprefix, repository, branch, path;
splitPathName(rule, current, &svnprefix, &repository, &branch, &path);
QString svnprefix, repository, effectiveRepository, branch, path;
splitPathName(rule, current, &svnprefix, &repository, &effectiveRepository, &branch, &path);
Repository *repo = repositories.value(repository, 0);
if (!repo) {
@@ -699,14 +756,14 @@ int SvnRevision::exportInternal(const char *key, const svn_fs_path_change_t *cha
// qDebug() << " " << qPrintable(current) << "rev" << revnum << "->"
// << qPrintable(repository) << qPrintable(branch) << qPrintable(path);
if (change->change_kind == svn_fs_path_change_delete && current == svnprefix && path.isEmpty()) {
if (change->change_kind == svn_fs_path_change_delete && current == svnprefix && path.isEmpty() && !repo->hasPrefix()) {
if(ruledebug)
qDebug() << "repository" << repository << "branch" << branch << "deleted";
return repo->deleteBranch(branch, revnum);
}
QString previous;
QString prevsvnprefix, prevrepository, prevbranch, prevpath;
QString prevsvnprefix, prevrepository, preveffectiverepository, prevbranch, prevpath;
if (path_from != NULL) {
previous = QString::fromUtf8(path_from);
@@ -717,7 +774,7 @@ int SvnRevision::exportInternal(const char *key, const svn_fs_path_change_t *cha
findMatchRule(matchRules, rev_from, previous, NoIgnoreRule);
if (prevmatch != matchRules.constEnd()) {
splitPathName(*prevmatch, previous, &prevsvnprefix, &prevrepository,
&prevbranch, &prevpath);
&preveffectiverepository, &prevbranch, &prevpath);
} else {
qWarning() << "WARN: SVN reports a \"copy from\" @" << revnum << "from" << path_from << "@" << rev_from << "but no matching rules found! Ignoring copy, treating as a modification";
@@ -733,7 +790,7 @@ int SvnRevision::exportInternal(const char *key, const svn_fs_path_change_t *cha
<< qPrintable(prevrepository) << "branch"
<< qPrintable(prevbranch) << "subdir"
<< qPrintable(prevpath);
} else if (prevrepository != repository) {
} else if (preveffectiverepository != effectiveRepository) {
qWarning() << "WARN:" << qPrintable(current) << "rev" << revnum
<< "is a cross-repository copy (from repository"
<< qPrintable(prevrepository) << "branch"
@@ -801,7 +858,7 @@ int SvnRevision::exportInternal(const char *key, const svn_fs_path_change_t *cha
// changes across directory re-organizations and wholesale branch
// imports.
//
if (path_from != NULL && prevrepository == repository && prevbranch != branch) {
if (path_from != NULL && preveffectiverepository == effectiveRepository && prevbranch != branch) {
if(ruledebug)
qDebug() << "copy from branch" << prevbranch << "to branch" << branch << "@rev" << rev_from;
txn->noteCopyFromBranch (prevbranch, rev_from);
@@ -823,14 +880,49 @@ int SvnRevision::exportInternal(const char *key, const svn_fs_path_change_t *cha
} else {
if(ruledebug)
qDebug() << "add/change dir (" << key << "->" << branch << path << ")";
txn->deleteFile(path);
// Check unknown svn-properties
if (((path_from == NULL && change->prop_mod==1) || (path_from != NULL && change->change_kind == svn_fs_path_change_add))
&& CommandLineParser::instance()->contains("propcheck")) {
if (fetchUnknownProps(pool, key, fs_root) != EXIT_SUCCESS) {
qWarning() << "Error checking svn-properties (" << key << ")";
}
}
int ignoreSet = false;
// Add GitIgnore with svn:ignore
if (((path_from == NULL && change->prop_mod==1) || (path_from != NULL && change->change_kind == svn_fs_path_change_add))
&& CommandLineParser::instance()->contains("svn-ignore")) {
QString svnignore;
// TODO: Check if svn:ignore or other property was changed, but always set on copy/rename (path_from != NULL)
if (fetchIgnoreProps(&svnignore, pool, key, fs_root) != EXIT_SUCCESS) {
qWarning() << "Error fetching svn-properties (" << key << ")";
} else if (!svnignore.isNull()) {
addGitIgnore(pool, key, path, fs_root, txn, svnignore.toStdString().c_str());
ignoreSet = true;
}
}
// Add GitIgnore for empty directories (if GitIgnore was not set previously)
if (CommandLineParser::instance()->contains("empty-dirs") && ignoreSet == false) {
if (addGitIgnore(pool, key, path, fs_root, txn) == EXIT_SUCCESS) {
return EXIT_SUCCESS;
} else {
ignoreSet = true;
}
}
if (ignoreSet == false) {
txn->deleteFile(path);
}
recursiveDumpDir(txn, fs_root, key, path, pool);
}
return EXIT_SUCCESS;
}
int SvnRevision::recurse(const char *path, const svn_fs_path_change_t *change,
int SvnRevision::recurse(const char *path, const svn_fs_path_change2_t *change,
const char *path_from, const MatchRuleList &matchRules, svn_revnum_t rev_from,
apr_hash_t *changes, apr_pool_t *pool)
{
@@ -842,7 +934,7 @@ int SvnRevision::recurse(const char *path, const svn_fs_path_change_t *change,
svn_node_kind_t kind;
SVN_ERR(svn_fs_check_path(&kind, fs_root, path, pool));
if(kind == svn_node_none) {
qWarning() << "WARN: Trying to recurse using a nonexistent path" << path << ", ignoring";
qWarning() << "WARN: Trying to recurse using a nonexistant path" << path << ", ignoring";
return EXIT_SUCCESS;
} else if(kind != svn_node_dir) {
qWarning() << "WARN: Trying to recurse using a non-directory path" << path << ", ignoring";
@@ -862,8 +954,6 @@ int SvnRevision::recurse(const char *path, const svn_fs_path_change_t *change,
void *value;
apr_hash_this(i, &vkey, NULL, &value);
svn_fs_dirent_t *dirent = reinterpret_cast<svn_fs_dirent_t *>(value);
if (dirent->kind != svn_node_dir)
continue; // not a directory, so can't recurse; skip
map.insertMulti(QByteArray(dirent->name), dirent->kind);
}
@@ -877,8 +967,8 @@ int SvnRevision::recurse(const char *path, const svn_fs_path_change_t *change,
entryFrom = path_from + QByteArray("/") + i.key();
// check if this entry is in the changelist for this revision already
svn_fs_path_change_t *otherchange =
(svn_fs_path_change_t*)apr_hash_get(changes, entry.constData(), APR_HASH_KEY_STRING);
svn_fs_path_change2_t *otherchange =
(svn_fs_path_change2_t*)apr_hash_get(changes, entry.constData(), APR_HASH_KEY_STRING);
if (otherchange && otherchange->change_kind == svn_fs_path_change_add) {
qDebug() << entry << "rev" << revnum
<< "is in the change-list, deferring to that one";
@@ -908,3 +998,63 @@ int SvnRevision::recurse(const char *path, const svn_fs_path_change_t *change,
return EXIT_SUCCESS;
}
int SvnRevision::addGitIgnore(apr_pool_t *pool, const char *key, QString path,
svn_fs_root_t *fs_root, Repository::Transaction *txn, const char *content)
{
// Check for number of subfiles if no content
if (!content) {
apr_hash_t *entries;
SVN_ERR(svn_fs_dir_entries(&entries, fs_root, key, pool));
// Return if any subfiles
if (apr_hash_count(entries)!=0) {
return EXIT_FAILURE;
}
}
// Add gitignore-File
QString gitIgnorePath = path + ".gitignore";
if (content) {
QIODevice *io = txn->addFile(gitIgnorePath, 33188, strlen(content));
io->write(content);
io->putChar('\n');
} else {
QIODevice *io = txn->addFile(gitIgnorePath, 33188, 0);
io->putChar('\n');
}
return EXIT_SUCCESS;
}
int SvnRevision::fetchIgnoreProps(QString *ignore, apr_pool_t *pool, const char *key, svn_fs_root_t *fs_root)
{
// Get svn:ignore
svn_string_t *prop = NULL;
SVN_ERR(svn_fs_node_prop(&prop, fs_root, key, "svn:ignore", pool));
if (prop) {
*ignore = QString(prop->data);
} else {
*ignore = QString();
}
return EXIT_SUCCESS;
}
int SvnRevision::fetchUnknownProps(apr_pool_t *pool, const char *key, svn_fs_root_t *fs_root)
{
// Check all properties
apr_hash_t *table;
SVN_ERR(svn_fs_node_proplist(&table, fs_root, key, pool));
apr_hash_index_t *hi;
void *propVal;
const void *propKey;
for (hi = apr_hash_first(pool, table); hi; hi = apr_hash_next(hi)) {
apr_hash_this(hi, &propKey, NULL, &propVal);
if (strcmp((char*)propKey, "svn:ignore")!=0) {
qWarning() << "WARN: Unknown svn-property" << (char*)propKey << "set to" << ((svn_string_t*)propVal)->data << "for" << key;
}
}
return EXIT_SUCCESS;
}
-1
View File
@@ -36,7 +36,6 @@ foreach(ITEM ${dlists})
CMAKEFILES(${dlist})
endforeach(ITEM ${dlists})
# For those wanting to use a system version of the LEMON parser
# generator from sqlite, remember that the presence of /usr/bin/lemon
# is not enough. LEMON needs a template file, lempar.c, and by
+1
View File
@@ -67,6 +67,7 @@ set(COREINTERFACE_SOURCES
../../../../rt^3/src/coreInterface/Combination.cpp
../../../../rt^3/src/coreInterface/Cone.cpp
../../../../rt^3/src/coreInterface/ConstDatabase.cpp
../../../../rt^3/src/coreInterface/BagOfTriangles.cpp
../../../../rt^3/src/coreInterface/Database.cpp
../../../../rt^3/src/coreInterface/Ellipsoid.cpp
../../../../rt^3/src/coreInterface/EllipticalTorus.cpp
+1 -1
View File
@@ -24,7 +24,7 @@ execute_process(COMMAND "@CMAKE_COMMAND@" -E tar xjf "${CSDIR}/hawaii-c.tar.bz2"
execute_process(COMMAND "${DEMG}" "${CBDIR}/hawaii-c" OUTPUT_VARIABLE dem_g_log ERROR_VARIABLE dem_g_log)
file(WRITE "${CBDIR}/regress-dem.log" "${dem_g_log}")
# Known "good" md5sum of output for comparision
# Known "good" md5sum of output for comparison
set(EXPECTED_MD5 "cf87c3b174840f18f5653c677af1f433")
# get and clean up md5sum from generated output

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