Compare commits

..
957 Commits
Author SHA1 Message Date
Christopher Sean Morrison 6f5c60a5d0 for testing, this applies rudimentary hacked updates (not intended for merge to trunk) that get this branch compiling again.
svn:revision:76064
svn:branch:opencl
svn:account:brlcad
2020-06-08 08:12:36 +00:00
Vasco Alexandre da Silva Costa 11023d8fae Revert CMakeFile changes.
svn:revision:73935
svn:branch:opencl
svn:account:vasco_costa
2019-09-16 14:48:18 +00:00
Vasco Alexandre da Silva Costa b46c224ec3 Use trunk X11 detection routine so includes are detected on modern distros.
svn:revision:73934
svn:branch:opencl
svn:account:vasco_costa
2019-09-16 14:20:23 +00:00
Vasco Alexandre da Silva Costa b2f435f2e1 Rebased opencl branch to r70379 trunk.
svn:revision:73933
svn:branch:opencl
svn:account:vasco_costa
2019-09-16 13:39:22 +00:00
Vasco Alexandre da Silva Costa fedb19296a Remove outdated opencl branch.
(svn branch delete)

svn:revision:73932
svn:branch:opencl
svn:account:vasco_costa
2019-09-16 13:09:25 +00:00
Marco da Silva Domingues 625134177d removing unused case conditions from rt_pr_bit_tree(). These operations are internal to bool_eval() function and will never occur in the bit tree
svn:revision:70081
svn:branch:opencl
svn:account:mdtwenty
2017-08-15 14:05:24 +00:00
Marco da Silva Domingues 1ed45a086f passing first region index to overlap handler
svn:revision:70080
svn:branch:opencl
svn:account:mdtwenty
2017-08-15 13:42:51 +00:00
Vasco Alexandre da Silva Costa fb112992d2 Remove unused code.
svn:revision:70079
svn:branch:opencl
svn:account:vasco_costa
2017-08-14 19:17:24 +00:00
Vasco Alexandre da Silva Costa 09898fa192 Fix materials in 'a_no_booleans' OpenCL librt render mode.
svn:revision:70078
svn:branch:opencl
svn:account:vasco_costa
2017-08-14 19:16:24 +00:00
Vasco Alexandre da Silva Costa e67e8d322b Add option to disable boolean weaving in OpenCL librt.
svn:revision:70075
svn:branch:opencl
svn:account:vasco_costa
2017-08-14 18:40:10 +00:00
Marco da Silva Domingues 73ccb38402 bool_eval() function using new boolean tree representation, where each tree node is encoded in 32 bits
svn:revision:70074
svn:branch:opencl
svn:account:mdtwenty
2017-08-11 20:37:09 +00:00
Marco da Silva Domingues c4aff86f6e Removed next_evalpp field from cl_partition struct
svn:revision:70057
svn:branch:opencl
svn:account:mdtwenty
2017-08-08 13:19:21 +00:00
Marco da Silva Domingues 1fe3511218 Fix bug in partitions shading. Shading closest partition
svn:revision:70034
svn:branch:opencl
svn:account:mdtwenty
2017-08-01 13:33:56 +00:00
Marco da Silva Domingues 28c18f2fea skipping unevaluated partitions
svn:revision:70033
svn:branch:opencl
svn:account:mdtwenty
2017-08-01 00:16:31 +00:00
Marco da Silva Domingues e01866abd2 fixed some indentation and coding style issues
svn:revision:70032
svn:branch:opencl
svn:account:mdtwenty
2017-07-31 21:14:26 +00:00
Vasco Alexandre da Silva Costa d9e8d82039 Add note to code to split 'struct hit' to conserve memory.
svn:revision:70017
svn:branch:opencl
svn:account:vasco_costa
2017-07-28 22:38:43 +00:00
Vasco Alexandre da Silva Costa dc12cef9db Cleanups.
svn:revision:70015
svn:branch:opencl
svn:account:vasco_costa
2017-07-28 22:02:04 +00:00
Vasco Alexandre da Silva Costa 466eb4eafb Optimize regiontable construction. Patch by Marco Domingues.
svn:revision:70014
svn:branch:opencl
svn:account:vasco_costa
2017-07-28 21:44:22 +00:00
Vasco Alexandre da Silva Costa 84487b75db Fix bugs in log function.
svn:revision:70011
svn:branch:opencl
svn:account:vasco_costa
2017-07-28 06:16:10 +00:00
Vasco Alexandre da Silva Costa 7f631ab752 Use proper materials from regions. This fixes the materials selection issues.
svn:revision:70010
svn:branch:opencl
svn:account:vasco_costa
2017-07-28 06:09:16 +00:00
Vasco Alexandre da Silva Costa 66c37fa169 Remove unused variables.
svn:revision:70009
svn:branch:opencl
svn:account:vasco_costa
2017-07-28 04:00:52 +00:00
Vasco Alexandre da Silva Costa 788bfe4085 Use bool type instead of int for flip flag.
svn:revision:70008
svn:branch:opencl
svn:account:vasco_costa
2017-07-28 03:50:45 +00:00
Vasco Alexandre da Silva Costa 94238825fb Use ternary selection operator ?: as shorthand for select().
svn:revision:70007
svn:branch:opencl
svn:account:vasco_costa
2017-07-28 03:33:07 +00:00
Vasco Alexandre da Silva Costa e05550c55e Fix normals in inner regions. Patch by Marco Domingues.
svn:revision:70006
svn:branch:opencl
svn:account:vasco_costa
2017-07-28 03:08:12 +00:00
Vasco Alexandre da Silva Costa 98b8d98412 patch #472 by Marco Domingues: faster iteration over sparse bitarrays. fix memory pointer address bugs. fix render with 'e *' command. use one regiontable per ray instead of one per partition.
svn:revision:69981
svn:branch:opencl
svn:account:vasco_costa
2017-07-21 19:46:08 +00:00
Vasco Alexandre da Silva Costa bd35b711ef Forgot to add this file on my last commit.
svn:revision:69973
svn:branch:opencl
svn:account:vasco_costa
2017-07-19 21:29:09 +00:00
Vasco Alexandre da Silva Costa aa56640ee7 Fix some indentation and coding style issues.
svn:revision:69965
svn:branch:opencl
svn:account:vasco_costa
2017-07-18 12:45:59 +00:00
Vasco Alexandre da Silva Costa ac01d68fed Add OpenCL CSG operator patch #472 from Marco Domingues.
It still has some bugs on it. But it's getting large enough that it's better to use SVN to collaborate on it.

svn:revision:69964
svn:branch:opencl
svn:account:vasco_costa
2017-07-18 12:21:43 +00:00
Vasco Alexandre da Silva Costa 2815cbea97 Added #417 RPN booleval patch.
svn:revision:69924
svn:branch:opencl
svn:account:vasco_costa
2017-06-21 18:09:23 +00:00
Vasco Alexandre da Silva Costa fff4d55ae3 The new OpenCL CMake script uses different env variable names so we need to update that.
svn:revision:69923
svn:branch:opencl
svn:account:vasco_costa
2017-06-21 17:47:50 +00:00
Vasco Alexandre da Silva Costa 38e67c5c53 Use OpenCL CMake script from: https://github.com/Kitware/CMake/blob/master/Modules/FindOpenCL.cmake
svn:revision:69922
svn:branch:opencl
svn:account:vasco_costa
2017-06-21 17:21:36 +00:00
Vasco Alexandre da Silva Costa fcaf54c7f8 Rebased opencl branch to r69920 trunk.
svn:revision:69921
svn:branch:opencl
svn:account:vasco_costa
2017-06-21 17:11:31 +00:00
Clifford Yapp b58a84aef0 Sync with trunk thru 69860
svn:revision:69865
svn:branch:opencl
svn:account:starseeker
2017-05-31 17:22:28 +00:00
Nicholas Reed ceea0d90c4 mark sync revisions as merged
svn:revision:69860
svn:branch:trunk
svn:account:n_reed
2017-05-30 20:41:07 +00:00
Nicholas Reed ee61d1c146 sync r69814 through r69856 changes from trunk
svn:revision:69859
svn:branch:brep-debug
svn:account:n_reed
2017-05-30 20:37:45 +00:00
Nicholas Reed e1875f3e57 sync r69764 through r69813 changes from trunk
svn:revision:69858
svn:branch:brep-debug
svn:account:n_reed
2017-05-30 20:32:30 +00:00
Nicholas Reed 87306b3e67 sync r69722 through r69763 changes from trunk
svn:revision:69857
svn:branch:brep-debug
svn:account:n_reed
2017-05-29 22:08:47 +00:00
Clifford Yapp b17afddf47 Update thoughts on mime/type identification
svn:revision:69856
svn:branch:trunk
svn:account:starseeker
2017-05-25 23:46:08 +00:00
Clifford Yapp 5c4bcdd168 Won't be going this way after all
svn:revision:69855
svn:branch:trunk
svn:account:starseeker
2017-05-23 15:11:53 +00:00
Clifford Yapp f6b052b65e UNIX test in FindGDAL is making regress unhappy. See if we can do without it.
svn:revision:69854
svn:branch:trunk
svn:account:starseeker
2017-05-23 14:54:10 +00:00
Clifford Yapp e0ceceb7fe Start working on stubbing in libgcv plugin logic for GDAL (eventually this should be able to replace dem-g) Already clear the format-to-plugin mapping needs some rethinking...
svn:revision:69853
svn:branch:trunk
svn:account:starseeker
2017-05-23 14:08:13 +00:00
Clifford Yapp c0719bb22f If we don't wrap the fb_private.h include in extern C, we get osgl_interface undefined in linking with MSVC
svn:revision:69852
svn:branch:trunk
svn:account:starseeker
2017-05-22 21:14:48 +00:00
Clifford Yapp a84e893bfe tweak
svn:revision:69851
svn:branch:trunk
svn:account:starseeker
2017-05-22 17:55:41 +00:00
Clifford Yapp f33ad5afa4 turn the freetype build back on for OSG
svn:revision:69850
svn:branch:trunk
svn:account:starseeker
2017-05-22 17:12:19 +00:00
Clifford Yapp 48d9fbb201 Avoiding png/freetype isn't enough, need to avoid xft as well.
svn:revision:69849
svn:branch:trunk
svn:account:starseeker
2017-05-22 15:04:38 +00:00
Christopher Sean Morrison 2a1f17ba57 might as well reduce to the config_win.h define
svn:revision:69848
svn:branch:trunk
svn:account:brlcad
2017-05-22 14:56:51 +00:00
Clifford Yapp adedc16355 Sean pointed out common.h (or rather, the headers it pulls in) will conflict with the sleep definition. Go with his suggestion to not include common.h in testing code (in fact, this is the only one of the test_srcs files that did include it.)
svn:revision:69847
svn:branch:trunk
svn:account:starseeker
2017-05-22 14:42:08 +00:00
Clifford Yapp 3111707e81 Add a few cleanups for ninja building to enable ninja distcheck to succeed
svn:revision:69846
svn:branch:trunk
svn:account:starseeker
2017-05-22 13:19:37 +00:00
Christopher Sean Morrison 21abab9d1c nestling multiple actions onto one line is discouraged for exactly the reason clang (fortunately) warned about, plus readability and maintainability, but best practice is to do only one thing per line. then it becomes syntactically nonsense to mix up assignment with comparison and it's (more) clear what each line does.
svn:revision:69845
svn:branch:trunk
svn:account:brlcad
2017-05-19 20:46:52 +00:00
Clifford Yapp 80384a167c mark as advanced
svn:revision:69844
svn:branch:trunk
svn:account:starseeker
2017-05-19 20:13:31 +00:00
Clifford Yapp b9fe33f3aa XFT disablement needs to be set before we include Tk's CMakeLists.txt file, not after
svn:revision:69843
svn:branch:trunk
svn:account:starseeker
2017-05-19 20:09:45 +00:00
Clifford Yapp ba21bac23d remove duplicates from the file list before copying... no point in doing it twice.
svn:revision:69842
svn:branch:trunk
svn:account:starseeker
2017-05-19 17:40:23 +00:00
Clifford Yapp dc1994ed9d be a bit more cautious - if dm_get_bg doesn't return anything, we don't want to crash...
svn:revision:69841
svn:branch:trunk
svn:account:starseeker
2017-05-19 17:05:58 +00:00
Clifford Yapp ddbb3802de dm_set_bg hack was squashing background colors - pull color settings and use those to do the same thing. Also, update background colors once a file has been opened.
svn:revision:69840
svn:branch:trunk
svn:account:starseeker
2017-05-19 16:22:18 +00:00
Clifford Yapp 4df72073f9 Don't set install for cpack
svn:revision:69839
svn:branch:trunk
svn:account:starseeker
2017-05-18 21:33:12 +00:00
Nicholas Reed 8d5d430eda Fix regex typo. Old version failed to strip 'mm' suffix from a number used in arithmetic, but luckily it seems awk was ignoring the suffix anyway so this doesn't affect the script output.
svn:revision:69838
svn:branch:trunk
svn:account:n_reed
2017-05-18 21:20:44 +00:00
Nicholas Reed 9d14b7328f reformat error returns
svn:revision:69837
svn:branch:trunk
svn:account:n_reed
2017-05-18 20:58:56 +00:00
Clifford Yapp 71437d5b7e ws
svn:revision:69836
svn:branch:trunk
svn:account:starseeker
2017-05-18 19:52:01 +00:00
Clifford Yapp 1bbf8ea865 clear more clang errors
svn:revision:69835
svn:branch:trunk
svn:account:starseeker
2017-05-18 19:44:32 +00:00
Clifford Yapp 1b387daaea first expression should be assignment, not comparison (thanks clang)
svn:revision:69834
svn:branch:trunk
svn:account:starseeker
2017-05-18 19:38:13 +00:00
Clifford Yapp cc07e3b2f0 If we build our own libpng but try to use the system freetype/fontconfig for Tk, we're ending up with a conflict. Skip using freetype with Tk when we build libpng - this is the only safe move until we can provide a managed fontconfig along with freetype to avoid sucking in the system libpng inadvertently.
svn:revision:69833
svn:branch:trunk
svn:account:starseeker
2017-05-18 19:14:05 +00:00
Clifford Yapp c1424285c5 copy/paste error
svn:revision:69832
svn:branch:trunk
svn:account:starseeker
2017-05-18 17:05:38 +00:00
Clifford Yapp 4ab6898802 Remove the old Makefile.am
svn:revision:69831
svn:branch:trunk
svn:account:starseeker
2017-05-18 16:45:27 +00:00
Clifford Yapp 4956e2a7b0 still need to remove CMakeCache.txt for distclean
svn:revision:69830
svn:branch:trunk
svn:account:starseeker
2017-05-18 16:36:51 +00:00
Clifford Yapp 3ff9523b1c Make a stab at cleaning up the termlib CMake logic.
svn:revision:69829
svn:branch:trunk
svn:account:starseeker
2017-05-18 16:35:35 +00:00
Clifford Yapp 37995b903f Add TODO file to astyle.dist
svn:revision:69828
svn:branch:trunk
svn:account:starseeker
2017-05-18 15:58:32 +00:00
Clifford Yapp 8a0651af33 remove old CMAKE_HEADERS flag - IIRC this was used in the migration period from autotools to cmake. No longer needed and it's doing weird things with MSVC - yank it.
svn:revision:69827
svn:branch:trunk
svn:account:starseeker
2017-05-17 21:45:28 +00:00
Clifford Yapp e82b7d900b It's Sleep on Windows...
svn:revision:69826
svn:branch:trunk
svn:account:starseeker
2017-05-17 21:26:03 +00:00
Clifford Yapp 3a8994a4b6 Make brlcad_ident.h into a template, and avoid updating brlcad_config.h unless we need to. This drastically trims back the rebuilding after a configure - limits it to things that care about the brlcad_ident versioning. Still get relinking and rebuilding of .g models and tclscripts, but much better.
svn:revision:69825
svn:branch:trunk
svn:account:starseeker
2017-05-17 17:02:25 +00:00
Clifford Yapp 9e0e3b32bc See if we can avoid raytrace.h in public gcv headers
svn:revision:69824
svn:branch:trunk
svn:account:starseeker
2017-05-17 16:58:01 +00:00
Clifford Yapp a50cffdc94 fix shim building of Creo plugin
svn:revision:69823
svn:branch:trunk
svn:account:starseeker
2017-05-17 16:29:47 +00:00
Clifford Yapp 174347ffe5 Untested - see if we can set some CPack variables.
svn:revision:69822
svn:branch:trunk
svn:account:starseeker
2017-05-17 15:40:05 +00:00
Clifford Yapp 8bdc97f09c remove $ line
svn:revision:69821
svn:branch:trunk
svn:account:starseeker
2017-05-17 14:39:00 +00:00
Clifford Yapp fe064f5d1c Bump zlib and libpng versions in src/other to 1.2.11 and 1.6.29 respectively
svn:revision:69820
svn:branch:trunk
svn:account:starseeker
2017-05-17 14:35:21 +00:00
Clifford Yapp 479cc9f1f8 Set up units processing to respect part units, if they are different from the default units pulled from the top level object.
svn:revision:69819
svn:branch:trunk
svn:account:starseeker
2017-05-16 21:31:32 +00:00
Clifford Yapp 5e2f283e2c Simplify/consolidate wchar string management
svn:revision:69818
svn:branch:trunk
svn:account:starseeker
2017-05-16 20:57:14 +00:00
Clifford Yapp 2839b9bd57 Update Creo shim
svn:revision:69817
svn:branch:trunk
svn:account:starseeker
2017-05-16 20:52:20 +00:00
Clifford Yapp 6f88817bd5 Use the stable wchar name for lookups - was causing spurious entries in combs.
svn:revision:69816
svn:branch:trunk
svn:account:starseeker
2017-05-16 20:02:22 +00:00
Clifford Yapp 098f807482 Wasn't applying the model scaling to meshes... oops.
svn:revision:69815
svn:branch:trunk
svn:account:starseeker
2017-05-16 19:34:08 +00:00
Clifford Yapp 540f852a30 AStyle 3 is out, but they're using C++11 and nullptr now... Note why we can upgrade yet.
svn:revision:69814
svn:branch:trunk
svn:account:starseeker
2017-05-16 15:28:46 +00:00
Clifford Yapp 951b61ed19 Return something with the right type
svn:revision:69813
svn:branch:trunk
svn:account:starseeker
2017-05-13 00:23:02 +00:00
Clifford Yapp 44a64c3f02 fix release build for creo-brl
svn:revision:69812
svn:branch:trunk
svn:account:starseeker
2017-05-12 21:03:35 +00:00
Clifford Yapp 2325011e75 fix release build for ug-g
svn:revision:69811
svn:branch:trunk
svn:account:starseeker
2017-05-12 21:01:46 +00:00
Clifford Yapp 63d9cc1eea add libnmg to the separate library callouts for clang-static
svn:revision:69810
svn:branch:trunk
svn:account:starseeker
2017-05-12 19:48:04 +00:00
Clifford Yapp 9ebe7cd822 guard against null cases
svn:revision:69809
svn:branch:trunk
svn:account:starseeker
2017-05-12 19:24:45 +00:00
Clifford Yapp 8c428f062c list resources files explicitly
svn:revision:69808
svn:branch:trunk
svn:account:starseeker
2017-05-12 19:16:08 +00:00
Clifford Yapp 0ec72c87b2 Add NOTES file to distcheck list
svn:revision:69807
svn:branch:trunk
svn:account:starseeker
2017-05-12 19:14:10 +00:00
Clifford Yapp babb77e95b Directories are active now - list files for distcheck building
svn:revision:69806
svn:branch:trunk
svn:account:starseeker
2017-05-12 19:13:06 +00:00
Clifford Yapp 6fa25d3590 update notes
svn:revision:69805
svn:branch:trunk
svn:account:starseeker
2017-05-12 19:08:00 +00:00
Clifford Yapp 590dc69ea5 Make header match c file.
svn:revision:69804
svn:branch:trunk
svn:account:starseeker
2017-05-12 18:51:14 +00:00
Robert Parker a7a1b73a08 Simplified cadwidgets::Ged::validateNonZeroDigit and cadwidgets::Ged::pane_mouse_3dpoint a bit.
svn:revision:69803
svn:branch:trunk
svn:account:bob1961
2017-05-12 18:00:23 +00:00
Clifford Yapp ef697c11b1 Reduce the shim to minimal logic, remove the Cubit header.
svn:revision:69802
svn:branch:trunk
svn:account:starseeker
2017-05-12 17:06:17 +00:00
Clifford Yapp da9a73da38 fix linux build
svn:revision:69801
svn:branch:trunk
svn:account:starseeker
2017-05-12 16:27:55 +00:00
Clifford Yapp 812abe1db3 Get g-sat building on MSVC
svn:revision:69800
svn:branch:trunk
svn:account:starseeker
2017-05-12 16:26:29 +00:00
Clifford Yapp e8c67eb1ef Add shim logic for ug-g building
svn:revision:69799
svn:branch:trunk
svn:account:starseeker
2017-05-12 15:06:08 +00:00
Clifford Yapp 0598dd8a7d Changes to the ug-g code to get it to build
svn:revision:69798
svn:branch:trunk
svn:account:starseeker
2017-05-12 15:03:05 +00:00
Clifford Yapp 90610b0ffd include header for bu_exit, false is a C++ keyword
svn:revision:69797
svn:branch:trunk
svn:account:starseeker
2017-05-11 21:52:33 +00:00
Clifford Yapp 94889055e7 Go with the capitalization on PTC's site
svn:revision:69796
svn:branch:trunk
svn:account:starseeker
2017-05-11 17:59:30 +00:00
Clifford Yapp c425ae4f45 set but unused errors
svn:revision:69795
svn:branch:trunk
svn:account:starseeker
2017-05-11 01:31:05 +00:00
Clifford Yapp f182ca978b Add build testing logic for Cubit converter. Right now it's just the build testing - no logic is as yet defined for building g-sat 'for real' as a stand-alone tool.
svn:revision:69794
svn:branch:trunk
svn:account:starseeker
2017-05-10 21:32:08 +00:00
Clifford Yapp deae4f6b76 See if we can do for g-sat what we do for the CREO plugin - build with a shim when the necessary support libs aren't there. These are the build fixes for g-sat.cpp itself
svn:revision:69793
svn:branch:trunk
svn:account:starseeker
2017-05-10 21:30:28 +00:00
Clifford Yapp 89603789c5 svn history has ProEngineer version of plugin if we need to refer back to it.
svn:revision:69792
svn:branch:trunk
svn:account:starseeker
2017-05-10 18:00:38 +00:00
Clifford Yapp 1c976a3714 initialize vert_tree and norm_tree
svn:revision:69791
svn:branch:trunk
svn:account:starseeker
2017-05-09 19:21:48 +00:00
Clifford Yapp b9e7b4763e Make sure we have data before we do mk_bot
svn:revision:69790
svn:branch:trunk
svn:account:starseeker
2017-05-08 15:14:21 +00:00
Clifford Yapp b278594eb1 Nuts... looks like the public API doesn't expose ProEdgedata for existing edges, if I'm reading this right...
svn:revision:69782
svn:branch:trunk
svn:account:starseeker
2017-05-05 21:50:50 +00:00
Clifford Yapp d36abcd840 make the opennurbs bits compilable with shim
svn:revision:69781
svn:branch:trunk
svn:account:starseeker
2017-05-05 20:14:23 +00:00
Clifford Yapp 9d4376c0d6 Add some notes on the iteration scheme.
svn:revision:69780
svn:branch:trunk
svn:account:starseeker
2017-05-05 19:17:45 +00:00
Clifford Yapp b365299ed7 Start assembling the calling hierarchy which (hopefully) is how we get at the non-surface structure of a ProSolid.
svn:revision:69779
svn:branch:trunk
svn:account:starseeker
2017-05-05 19:01:08 +00:00
Clifford Yapp c18f0c7659 Off by one indexing
svn:revision:69778
svn:branch:trunk
svn:account:starseeker
2017-05-05 18:11:50 +00:00
Clifford Yapp c76f579988 Closer, but still not right...
svn:revision:69777
svn:branch:trunk
svn:account:starseeker
2017-05-05 17:40:46 +00:00
Clifford Yapp d67a4513ad use have_bbox where we need to use it - caught by gcc
svn:revision:69774
svn:branch:trunk
svn:account:starseeker
2017-05-05 02:56:56 +00:00
Clifford Yapp 1260827d4f make a stab at supporting visualization of which edges are causing the failure of solidity testing. bg_trimesh_solid now returns 0 on solid and edge count otherwise. This needs more testing, but does show something for non-solid bots...
svn:revision:69773
svn:branch:trunk
svn:account:starseeker
2017-05-04 23:11:07 +00:00
Clifford Yapp d63bb18172 We're not building the executable version - just go straight to the DLL. Avoids concerns that the .exe version is working when the DLL version will not.
svn:revision:69772
svn:branch:trunk
svn:account:starseeker
2017-05-04 21:44:27 +00:00
Clifford Yapp 179f67f99a ws
svn:revision:69771
svn:branch:trunk
svn:account:starseeker
2017-05-04 19:36:52 +00:00
Nicholas Reed 61cc28f98b mark local var
svn:revision:69770
svn:branch:trunk
svn:account:n_reed
2017-05-04 19:09:48 +00:00
Nicholas Reed 117cb8cbe1 check for required commands
svn:revision:69769
svn:branch:trunk
svn:account:n_reed
2017-05-04 18:51:50 +00:00
Clifford Yapp f2dad3647e used var
svn:revision:69768
svn:branch:trunk
svn:account:starseeker
2017-05-04 18:10:16 +00:00
Clifford Yapp e1737ed914 Various tweaks
svn:revision:69767
svn:branch:trunk
svn:account:starseeker
2017-05-04 16:22:37 +00:00
Clifford Yapp 063e22402f Fix printf statements
svn:revision:69766
svn:branch:trunk
svn:account:starseeker
2017-05-04 14:41:22 +00:00
Clifford Yapp b5bfbe606b Various name and logging tweaks, don't create combs on the empty list.
svn:revision:69765
svn:branch:trunk
svn:account:starseeker
2017-05-04 14:25:32 +00:00
Clifford Yapp 59cc6c0297 explicitly get paren chars
svn:revision:69764
svn:branch:trunk
svn:account:starseeker
2017-05-04 02:07:58 +00:00
Clifford Yapp 6e3a4d94e3 More work on name generating
svn:revision:69763
svn:branch:trunk
svn:account:starseeker
2017-05-04 02:03:18 +00:00
Clifford Yapp 55685f2313 Add more characters to the avoid list, try not to use empty strings as a basis for naming...
svn:revision:69762
svn:branch:trunk
svn:account:starseeker
2017-05-04 01:19:27 +00:00
Clifford Yapp 7a166dfa3c Reporting wrong size for parts.
svn:revision:69761
svn:branch:trunk
svn:account:starseeker
2017-05-04 01:18:35 +00:00
Clifford Yapp 15499aa1ff unused var
svn:revision:69760
svn:branch:trunk
svn:account:starseeker
2017-05-03 20:25:45 +00:00
Clifford Yapp 92712f678d various tweaks
svn:revision:69759
svn:branch:trunk
svn:account:starseeker
2017-05-03 17:08:05 +00:00
Clifford Yapp 569ae2c4b0 Writing out empty objects not working yet, various tweaks to the GUI
svn:revision:69758
svn:branch:trunk
svn:account:starseeker
2017-05-03 16:57:38 +00:00
Clifford Yapp 1d2a660aaa copy/paste strikes again
svn:revision:69757
svn:branch:trunk
svn:account:starseeker
2017-05-03 16:27:10 +00:00
Clifford Yapp 09ebfe6bac Don't do the pop-up warning until the end - here, it interrupts conversion and requires manual intervention.
svn:revision:69756
svn:branch:trunk
svn:account:starseeker
2017-05-03 16:14:42 +00:00
Clifford Yapp 2eeaf78a76 supply a default log file name
svn:revision:69755
svn:branch:trunk
svn:account:starseeker
2017-05-03 15:46:27 +00:00
Clifford Yapp fd71525ca8 see if we can clean up the hole replacement bits
svn:revision:69754
svn:branch:trunk
svn:account:starseeker
2017-05-03 15:28:03 +00:00
Clifford Yapp 9548162275 whoops, that's impossible
svn:revision:69753
svn:branch:trunk
svn:account:starseeker
2017-05-03 14:54:41 +00:00
Clifford Yapp e001254caa add an option to use rpp boxes for failed shapes.
svn:revision:69752
svn:branch:trunk
svn:account:starseeker
2017-05-03 14:25:10 +00:00
Clifford Yapp b4668e52e9 Report empty objects for subsequent evaluation
svn:revision:69751
svn:branch:trunk
svn:account:starseeker
2017-05-03 14:05:24 +00:00
Clifford Yapp 913ee8c385 Add in an option to do the solidity test.
svn:revision:69750
svn:branch:trunk
svn:account:starseeker
2017-05-03 13:58:05 +00:00
Clifford Yapp 145844b32c fix dialog naming/wording
svn:revision:69749
svn:branch:trunk
svn:account:starseeker
2017-05-03 13:45:35 +00:00
Clifford Yapp 0aa7dc3853 unused vars
svn:revision:69748
svn:branch:trunk
svn:account:starseeker
2017-05-03 03:39:30 +00:00
Clifford Yapp 12862ef849 skip the files, they're just causing trouble. go simple
svn:revision:69747
svn:branch:trunk
svn:account:starseeker
2017-05-03 02:01:39 +00:00
Clifford Yapp c450fb0d20 make a stab at supporting both file and input dialog specification for attrs - untested
svn:revision:69746
svn:branch:trunk
svn:account:starseeker
2017-05-03 01:11:55 +00:00
Clifford Yapp 872f380bcd logging cleanup
svn:revision:69745
svn:branch:trunk
svn:account:starseeker
2017-05-03 00:59:16 +00:00
Clifford Yapp c9222c38d8 update BUGS note
svn:revision:69744
svn:branch:trunk
svn:account:starseeker
2017-05-03 00:52:47 +00:00
Clifford Yapp ed918258ce tweak file opening logic... may switch to specifying strings in GUI, now that we've figured out how to increase the input buffer max length...
svn:revision:69743
svn:branch:trunk
svn:account:starseeker
2017-05-02 23:18:33 +00:00
Clifford Yapp a9b5e7cc29 bu_log and CREO seem to be arguing about locking somehow or other...
svn:revision:69742
svn:branch:trunk
svn:account:starseeker
2017-05-02 23:16:03 +00:00
Clifford Yapp e3ca34382d Allow stopping of the plug-in
svn:revision:69741
svn:branch:trunk
svn:account:starseeker
2017-05-02 21:28:17 +00:00
Clifford Yapp 7a278f8746 Go with .s for solid extension.
svn:revision:69740
svn:branch:trunk
svn:account:starseeker
2017-05-02 20:17:32 +00:00
Christopher Sean Morrison 725e7a7dfa more static analyzer quellage, all valid
svn:revision:69739
svn:branch:trunk
svn:account:brlcad
2017-05-02 02:15:35 +00:00
Clifford Yapp e46a199635 Only do the skeleton check if we have a model on which to run that check...
svn:revision:69738
svn:branch:trunk
svn:account:starseeker
2017-05-02 00:05:29 +00:00
Clifford Yapp 46cbbb15a9 Various tweaks - of particular importance, be more aggressive about object_gather when an assembly walk returns an error code.
svn:revision:69737
svn:branch:trunk
svn:account:starseeker
2017-05-01 22:26:27 +00:00
Christopher Sean Morrison 8b3e6dc5aa must zero init in case loop is skipped
svn:revision:69736
svn:branch:trunk
svn:account:brlcad
2017-05-01 21:05:33 +00:00
Christopher Sean Morrison 965517034c remove never used initialization
svn:revision:69735
svn:branch:trunk
svn:account:brlcad
2017-05-01 21:04:17 +00:00
Clifford Yapp 0f7e13e3c2 Scrub dashes out of main names as well.
svn:revision:69734
svn:branch:trunk
svn:account:starseeker
2017-05-01 19:19:24 +00:00
Clifford Yapp d90c3ad805 Dashes are bad news in names for Tcl - go with underscore
svn:revision:69733
svn:branch:trunk
svn:account:starseeker
2017-05-01 19:18:06 +00:00
Christopher Sean Morrison 1e83a796b4 ws
svn:revision:69732
svn:branch:trunk
svn:account:brlcad
2017-05-01 19:12:46 +00:00
Christopher Sean Morrison 77b7f0a452 static analyzer correctly founds that 'dist' is calculated but not used.
svn:revision:69731
svn:branch:trunk
svn:account:brlcad
2017-05-01 19:12:00 +00:00
Christopher Sean Morrison a04150318b more static analyzer quellage, make sure pointers are non-null before releasing/putting them. be more consistent with the testing+setting and not putting actions on same line as expressions.
svn:revision:69730
svn:branch:trunk
svn:account:brlcad
2017-05-01 18:55:23 +00:00
Christopher Sean Morrison d651679c8e make sure ret is used properly, shouldn't be returning zero if the guts fail.
svn:revision:69729
svn:branch:trunk
svn:account:brlcad
2017-05-01 18:41:26 +00:00
Clifford Yapp 1bb335a60c get_regions bug
svn:revision:69728
svn:branch:trunk
svn:account:starseeker
2017-05-01 18:40:14 +00:00
Christopher Sean Morrison 0c002e7d30 quell what looks like a false positive from clang static analysis. complains that maxDot isn't read, even though it's used repeatedly for test+setting flag. what's unclear is whether maxDot should be reset every loop iteration as it was doing, or only once before entering the loop. this retains the previous behavior.
svn:revision:69727
svn:branch:trunk
svn:account:brlcad
2017-05-01 18:35:11 +00:00
Clifford Yapp a8864c7d49 missed a rename
svn:revision:69726
svn:branch:trunk
svn:account:starseeker
2017-04-28 15:24:48 +00:00
Clifford Yapp 38ffe5460f need to think about this more, discuss tradeoffs. For now, stash this work in libbu and restore brlcad_ident.h
svn:revision:69725
svn:branch:trunk
svn:account:starseeker
2017-04-28 15:22:33 +00:00
Clifford Yapp 7ed7cf634a we actually need both of these to be true, not just one...
svn:revision:69724
svn:branch:trunk
svn:account:starseeker
2017-04-28 14:28:56 +00:00
Robert Parker e92503b471 Added validateNonZeroDigit.
svn:revision:69723
svn:branch:trunk
svn:account:bob1961
2017-04-27 18:25:03 +00:00
Nicholas Reed 0fcbbbe8bc mark sync revisions as merged
svn:revision:69722
svn:branch:trunk
svn:account:n_reed
2017-04-26 19:50:26 +00:00
Nicholas Reed 506bffea0d sync r69674 through r69718 changes from trunk
svn:revision:69721
svn:branch:brep-debug
svn:account:n_reed
2017-04-26 19:36:07 +00:00
Nicholas Reed a4868169de sync r69629 through r69673 changes from trunk
svn:revision:69720
svn:branch:brep-debug
svn:account:n_reed
2017-04-26 19:31:36 +00:00
Nicholas Reed 3266fc70e2 sync r69584 through r69628 changes from trunk
svn:revision:69719
svn:branch:brep-debug
svn:account:n_reed
2017-04-26 19:26:13 +00:00
Clifford Yapp 59544f11ec Make an experimental stab at reporting the build info from data files, rather than building it into the headers. This avoids rebuilding everything every time the configuration changes. The downside is it does introduce a libbu requirement into brlcad_ident.h...
svn:revision:69718
svn:branch:trunk
svn:account:starseeker
2017-04-26 15:35:29 +00:00
Christopher Sean Morrison 14e639f671 make tgc use the same tolerance as the root solver, meaning it will be more generous about discarding imaginary roots. this fixes a problem with 'pinched' tgc where the solver is returning duplicate roots at imaginary +- 3e-3. testing passes, but if this proves to be problematic, an alternative will be to check for los=0 on the real component pairs.
svn:revision:69717
svn:branch:trunk
svn:account:brlcad
2017-04-26 06:39:19 +00:00
Christopher Sean Morrison f8ffe64999 define 1e-5 as RT_ROOT_TOL as it was used in several places undocumented.
svn:revision:69716
svn:branch:trunk
svn:account:brlcad
2017-04-26 06:35:09 +00:00
Christopher Sean Morrison 9bf60daf0e bomb logs
svn:revision:69715
svn:branch:trunk
svn:account:brlcad
2017-04-26 03:44:40 +00:00
Christopher Sean Morrison 8c95fa2209 was very suprirsed to discover that nirt called from within mged actually ends up dispatching three rays instead of one, so document it and the presumed reason in a comment. it does this in order to easily parse out partition and overlap information in addition to the specified output format.
svn:revision:69714
svn:branch:trunk
svn:account:brlcad
2017-04-26 03:44:08 +00:00
Christopher Sean Morrison 33fe419ca8 rt and friends will now blather less useless info about perpendicular grazing ray normals ever so slightly facing backwards
svn:revision:69713
svn:branch:trunk
svn:account:brlcad
2017-04-26 03:24:54 +00:00
Christopher Sean Morrison cdb9ad40d8 there's no point in warning about normals that are highly perpendicular. use RT_DOT_TOL which is much larger than the perp tol used for computation. much less useless blather.
svn:revision:69712
svn:branch:trunk
svn:account:brlcad
2017-04-26 03:22:18 +00:00
Clifford Yapp 30efe402b9 Expose the bot solidity test through the bot command.
svn:revision:69711
svn:branch:trunk
svn:account:starseeker
2017-04-25 23:33:52 +00:00
Christopher Sean Morrison 6d8a307e2c much has changed since 2007, plus recent work should make one hit tgc errors impossible.
svn:revision:69710
svn:branch:trunk
svn:account:brlcad
2017-04-25 05:51:40 +00:00
Christopher Sean Morrison 6e58bb3874 implement a better solution to the array overrun false positive when eliminating side cylinder hits beyond the end. also wasn't correctly yanking the second point with the new iteration, fixed with this new approach. we tally up a skip list and do just one copy (potentially) instead of nlog(n) copies. also fixed npts <0 when reporting convergence failures (zero isn't a failure). inadvertently includes other cleanup too.
svn:revision:69709
svn:branch:trunk
svn:account:brlcad
2017-04-25 05:39:26 +00:00
Christopher Sean Morrison c3dc07558f VEXCHANGE() is unnecessary, call VSWAP() instead
svn:revision:69708
svn:branch:trunk
svn:account:brlcad
2017-04-25 02:54:56 +00:00
Christopher Sean Morrison bdef9637bb clean up the convergence failure reporting, consistently report just 10 times.
svn:revision:69707
svn:branch:trunk
svn:account:brlcad
2017-04-25 02:20:59 +00:00
Christopher Sean Morrison 12e5025fe4 %g defaults to 6 significant digits meaning it can unhelpfully truncate digits after the decimal point. instead, use %.6f which prints 6 past decimal and gets us precision past our calculation tolerance, near single precision limit.
svn:revision:69706
svn:branch:trunk
svn:account:brlcad
2017-04-25 02:16:27 +00:00
Christopher Sean Morrison 8376fd4ec8 after a little sleuthing, looks like they are arrays, so change the shim instead
svn:revision:69705
svn:branch:trunk
svn:account:brlcad
2017-04-24 23:43:52 +00:00
Christopher Sean Morrison a8b0243ff6 {'\0'} is a char array initializer, so possibly need a different shim type. as a pointer, needs to be a pointer type (i.e., null).
svn:revision:69704
svn:branch:trunk
svn:account:brlcad
2017-04-24 23:39:22 +00:00
Clifford Yapp fc6776d4c7 tweaks to part - rpp output was mostly a debugging thing, need to think about whether it's actually useful...
svn:revision:69703
svn:branch:trunk
svn:account:starseeker
2017-04-24 21:42:10 +00:00
Clifford Yapp 0e53f76829 messaging needs more thought - have feedback that the message reporting is of first importance in workflows, so need to make sure it is usable.
svn:revision:69702
svn:branch:trunk
svn:account:starseeker
2017-04-24 21:18:54 +00:00
Clifford Yapp bbd9f6f443 see if we can dodge skeletons
svn:revision:69701
svn:branch:trunk
svn:account:starseeker
2017-04-24 16:48:35 +00:00
Clifford Yapp af996ff2f6 Don't do the exe version of the plugin by default - it's better to work with the DLL when we can, and it confuses the VS target list.
svn:revision:69700
svn:branch:trunk
svn:account:starseeker
2017-04-24 16:29:54 +00:00
Clifford Yapp a72cc904e8 Move the bot solidity checker johnathan added for libgcv into libbg, and make a stab at using it to validate CREO tessellations. Untested.
svn:revision:69699
svn:branch:trunk
svn:account:starseeker
2017-04-24 16:11:02 +00:00
Clifford Yapp 8b14e3322a need to find a way to alleviate having to do almost a full rebuilt every time the config updates one of our tracking numbers.
svn:revision:69698
svn:branch:trunk
svn:account:starseeker
2017-04-24 15:38:59 +00:00
Clifford Yapp b7e1efc5f2 revert the change of npts==1 behavior from r69650 - breaking regress-solids
svn:revision:69697
svn:branch:trunk
svn:account:starseeker
2017-04-24 14:41:56 +00:00
Clifford Yapp 5f029442b5 ws, minor refactoring of unsuppress_features function
svn:revision:69696
svn:branch:trunk
svn:account:starseeker
2017-04-24 14:24:25 +00:00
Clifford Yapp 8bbb51f0ad see if we can trim down this file without breaking anything... untested
svn:revision:69695
svn:branch:trunk
svn:account:starseeker
2017-04-24 14:16:01 +00:00
Clifford Yapp 3daf1867dd The normal logging pattern doesn't require a return code being passed through - simplify
svn:revision:69694
svn:branch:trunk
svn:account:starseeker
2017-04-24 13:56:20 +00:00
Clifford Yapp ee33ea8646 linux build fix
svn:revision:69693
svn:branch:trunk
svn:account:starseeker
2017-04-24 13:08:50 +00:00
Clifford Yapp 3870b51851 Start trying to figure out how to create ON_NurbsSurface data. Not even close yet.
svn:revision:69692
svn:branch:trunk
svn:account:starseeker
2017-04-24 01:49:58 +00:00
Clifford Yapp 4d5842405d May get null back from get_brlcad_name - handle that in assembly building. Various minor changes. Need to investigate a different way to convey conversion status - label updating doesn't look like it will (or is designed to) work the way we're trying to use it.
svn:revision:69691
svn:branch:trunk
svn:account:starseeker
2017-04-23 20:10:26 +00:00
Clifford Yapp bd65f384a4 Another copy/paste error.
svn:revision:69690
svn:branch:trunk
svn:account:starseeker
2017-04-23 17:53:26 +00:00
Clifford Yapp d1615f0413 copy-paste error, try to push message update into GUI
svn:revision:69689
svn:branch:trunk
svn:account:starseeker
2017-04-23 17:49:30 +00:00
Clifford Yapp e5c7b7a779 make a stab at protecting top level name generation
svn:revision:69688
svn:branch:trunk
svn:account:starseeker
2017-04-23 16:49:13 +00:00
Clifford Yapp 9039ade9dd output file may clash with another object name - use all.g for now, although even that name really needs uniqueness guarantees.
svn:revision:69687
svn:branch:trunk
svn:account:starseeker
2017-04-23 16:40:09 +00:00
Clifford Yapp c39dcfe409 tweak
svn:revision:69686
svn:branch:trunk
svn:account:starseeker
2017-04-23 16:30:50 +00:00
Clifford Yapp 27fd67e22d See if we can let the GUI know where we are...
svn:revision:69685
svn:branch:trunk
svn:account:starseeker
2017-04-23 16:28:14 +00:00
Clifford Yapp b44a91aba3 See if we can improve on the default .g file name in the dialog
svn:revision:69684
svn:branch:trunk
svn:account:starseeker
2017-04-23 16:10:35 +00:00
Clifford Yapp e63160944a note - need to look into ON_Brep conversion possibilities
svn:revision:69683
svn:branch:trunk
svn:account:starseeker
2017-04-21 20:08:49 +00:00
Clifford Yapp 70f37e789a simplify
svn:revision:69682
svn:branch:trunk
svn:account:starseeker
2017-04-21 20:02:06 +00:00
Clifford Yapp a9aed8642d Try another approach to name generation
svn:revision:69681
svn:branch:trunk
svn:account:starseeker
2017-04-21 19:46:19 +00:00
Clifford Yapp 3aba075c2c Get plugin running again
svn:revision:69680
svn:branch:trunk
svn:account:starseeker
2017-04-21 18:20:34 +00:00
Clifford Yapp d4813b710a Get the "test" build working with MSVC
svn:revision:69679
svn:branch:trunk
svn:account:starseeker
2017-04-20 21:09:18 +00:00
Clifford Yapp 0166451169 Tweaks
svn:revision:69678
svn:branch:trunk
svn:account:starseeker
2017-04-20 20:23:03 +00:00
Nicholas Reed 8e8ec7d2ec Change meaning of -F option. Instead of subtracting first unioned solid from every unioned solid of the other tree, subtract from only the first unioned solid. Less likely to resolve the overlap, but more symmetrical and intuitive.
svn:revision:69677
svn:branch:trunk
svn:account:n_reed
2017-04-20 17:49:37 +00:00
Daniel Rossberg ba17e82b2f the macro was unable to detect a system termlib because of not setting TERMLIB_INCLUDE_DIR which causes FIND_PACKAGE_HANDLE_STANDARD_ARGS() to fail (and maybe something more)
the necessary find_path() was removed in 2013 => integrated find_path() again

svn:revision:69676
svn:branch:trunk
svn:account:d_rossberg
2017-04-20 16:52:13 +00:00
Clifford Yapp 3a06fadff1 MSVC isn't happy when linking - see if we can throw it some stubs
svn:revision:69675
svn:branch:trunk
svn:account:starseeker
2017-04-20 16:19:38 +00:00
Clifford Yapp 76d99c846b various build fixes
svn:revision:69674
svn:branch:trunk
svn:account:starseeker
2017-04-19 21:37:56 +00:00
Clifford Yapp c90ebf737d encapsulate the logic specific to tessellation
svn:revision:69673
svn:branch:trunk
svn:account:starseeker
2017-04-19 19:56:58 +00:00
Clifford Yapp e0b474d02d See if we can get the bounding box and use it.
svn:revision:69672
svn:branch:trunk
svn:account:starseeker
2017-04-19 17:47:35 +00:00
Clifford Yapp 9ac9b74b69 Set up for an experiment. See if we can stash the CREO version stamp as an object attribute and use it to intelligently skip redoing conversions when no changes have taken place.
svn:revision:69671
svn:branch:trunk
svn:account:starseeker
2017-04-19 15:48:20 +00:00
Clifford Yapp c78d073397 build fix
svn:revision:69670
svn:branch:trunk
svn:account:starseeker
2017-04-19 14:31:57 +00:00
Clifford Yapp 1eba07fdf0 do subtractions if we have them.
svn:revision:69669
svn:branch:trunk
svn:account:starseeker
2017-04-19 14:17:23 +00:00
Clifford Yapp 954ad7f4a2 because we have to map from wchar to char, there is no guarantee that even the basic creo strings will map uniquely. Try to set up to handle this situation.
svn:revision:69668
svn:branch:trunk
svn:account:starseeker
2017-04-19 14:06:26 +00:00
Clifford Yapp 6599da1e4f tweaks
svn:revision:69667
svn:branch:trunk
svn:account:starseeker
2017-04-19 13:18:24 +00:00
Clifford Yapp 87f6428e69 fix returns in comment
svn:revision:69666
svn:branch:trunk
svn:account:starseeker
2017-04-18 23:38:52 +00:00
Clifford Yapp ca081eae22 don't forget to preserve creo name...
svn:revision:69665
svn:branch:trunk
svn:account:starseeker
2017-04-18 23:33:37 +00:00
Clifford Yapp b0c85734e0 comment tweak
svn:revision:69664
svn:branch:trunk
svn:account:starseeker
2017-04-18 23:29:48 +00:00
Clifford Yapp 69c07f79e4 if this works, go with it.
svn:revision:69663
svn:branch:trunk
svn:account:starseeker
2017-04-18 23:08:00 +00:00
Clifford Yapp 7a5fd18b3e see if we can parameterize the message dialog function.
svn:revision:69662
svn:branch:trunk
svn:account:starseeker
2017-04-18 23:03:36 +00:00
Clifford Yapp d3d0ab103f use output file for toplevel comb name
svn:revision:69661
svn:branch:trunk
svn:account:starseeker
2017-04-18 22:54:32 +00:00
Clifford Yapp 24348d8e84 use the return code to identify non-existing or empty parts
svn:revision:69660
svn:branch:trunk
svn:account:starseeker
2017-04-18 22:47:28 +00:00
Clifford Yapp d5730f0c39 use ret
svn:revision:69659
svn:branch:trunk
svn:account:starseeker
2017-04-18 22:38:30 +00:00
Clifford Yapp cd71916fe5 ws
svn:revision:69658
svn:branch:trunk
svn:account:starseeker
2017-04-18 22:34:40 +00:00
Clifford Yapp 371e2e7352 we're strduping in the creation, so we'll need to free.
svn:revision:69657
svn:branch:trunk
svn:account:starseeker
2017-04-18 22:31:39 +00:00
Clifford Yapp 9e29ced8ae remove unused container
svn:revision:69656
svn:branch:trunk
svn:account:starseeker
2017-04-18 22:28:05 +00:00
Clifford Yapp 1def5a254c not using nmake anymore
svn:revision:69655
svn:branch:trunk
svn:account:starseeker
2017-04-18 22:18:01 +00:00
Clifford Yapp e3cfe0afb4 Add new file input row to GUI resource file (untested)
svn:revision:69654
svn:branch:trunk
svn:account:starseeker
2017-04-18 22:16:55 +00:00
Nicholas Reed 901a379db2 Enable any draw triggered by a change in checklist selection to robustly supersede an in-progress draw.
svn:revision:69653
svn:branch:trunk
svn:account:n_reed
2017-04-18 20:06:25 +00:00
Christopher Sean Morrison 9a4d784871 quell an incorrect warning being issued by gcc 6.2.1 (possibly going back as far as gcc 4.8.0), hopefully in a way that doesn't trigger a dead code warning by any other tools (e.g., coverity). the issue (reported as GCC Bug 80406 - 'Reduced false positive test case for -Warray-bounds with -O3') seems to be the optimizer taking bounds information away from the warning system, causing it to think there's a way to exceed k[] and hit_type[] bounds even though that should be logically possible (even if we assume the root solver misbehaves horribly).
svn:revision:69652
svn:branch:trunk
svn:account:brlcad
2017-04-18 19:47:24 +00:00
Clifford Yapp 3b713ae075 Get things building with the shim header.
svn:revision:69651
svn:branch:trunk
svn:account:starseeker
2017-04-18 17:31:48 +00:00
Christopher Sean Morrison 4213fa0d9b document and replace several of the tgc magic math values with meaningful (and generally equivalent) constructs, or at least documented constructs. tighten up some of the debug printing as well.
svn:revision:69650
svn:branch:trunk
svn:account:brlcad
2017-04-18 16:28:19 +00:00
Clifford Yapp 1f6ce345d7 use the ret variable
svn:revision:69649
svn:branch:trunk
svn:account:starseeker
2017-04-18 15:46:04 +00:00
Clifford Yapp 60bd581282 build cleanups
svn:revision:69648
svn:branch:trunk
svn:account:starseeker
2017-04-18 13:48:05 +00:00
Clifford Yapp dfae851545 tweaks
svn:revision:69647
svn:branch:trunk
svn:account:starseeker
2017-04-16 16:57:50 +00:00
Clifford Yapp 3ee4e2a26e Prepare CMake for building CREO converter with shim
svn:revision:69646
svn:branch:trunk
svn:account:starseeker
2017-04-14 00:13:18 +00:00
Clifford Yapp afc31cd84e remainder of fixes
svn:revision:69645
svn:branch:trunk
svn:account:starseeker
2017-04-13 23:25:56 +00:00
Clifford Yapp b8ac4ce603 more build fixes
svn:revision:69644
svn:branch:trunk
svn:account:starseeker
2017-04-13 22:51:46 +00:00
Clifford Yapp a42a59a95a vert tree first
svn:revision:69643
svn:branch:trunk
svn:account:starseeker
2017-04-13 22:33:47 +00:00
Clifford Yapp c44e87478f build fixes - not complete.
svn:revision:69642
svn:branch:trunk
svn:account:starseeker
2017-04-13 22:29:56 +00:00
Clifford Yapp a63a07c60e compile fixes
svn:revision:69641
svn:branch:trunk
svn:account:starseeker
2017-04-13 21:09:13 +00:00
Clifford Yapp 75cb3b8ca7 compilation fixes
svn:revision:69640
svn:branch:trunk
svn:account:starseeker
2017-04-13 19:08:04 +00:00
Clifford Yapp eff3efea17 tweaks
svn:revision:69639
svn:branch:trunk
svn:account:starseeker
2017-04-13 15:03:22 +00:00
Clifford Yapp 99ddce76d0 Add a list of the Pro* calls/structures used in the converter - preparing to define stubs for testing in absense of CREO for better code maintainability.
svn:revision:69638
svn:branch:trunk
svn:account:starseeker
2017-04-12 22:11:24 +00:00
Clifford Yapp 90994cc089 simplify
svn:revision:69637
svn:branch:trunk
svn:account:starseeker
2017-04-12 19:12:30 +00:00
Clifford Yapp 2bc53af3bd If this is proves workable, it looks like it may be the way to go for logic separation.
svn:revision:69636
svn:branch:trunk
svn:account:starseeker
2017-04-12 19:06:49 +00:00
Clifford Yapp 5cab3a6ad5 hmm... little tricky where to draw the line here...
svn:revision:69635
svn:branch:trunk
svn:account:starseeker
2017-04-11 20:29:05 +00:00
Clifford Yapp 44b77faf5b lc
svn:revision:69634
svn:branch:trunk
svn:account:starseeker
2017-04-11 19:13:11 +00:00
Clifford Yapp 9be64918f3 lower case
svn:revision:69633
svn:branch:trunk
svn:account:starseeker
2017-04-11 19:03:26 +00:00
Daniel Rossberg 7430205dc7 note the code contributions from Rakshika Bagavathy, applied in r69035 from Sourceforge patch 448 "Zippering gaps"
and from  Shubham Rathore, applied in r69630 from Sourceforge patch 457 "rt_ehy_centroid() implemented"

svn:revision:69632
svn:branch:trunk
svn:account:d_rossberg
2017-04-11 17:44:46 +00:00
Clifford Yapp c3dc71a155 start looking at the csg components of this...
svn:revision:69631
svn:branch:trunk
svn:account:starseeker
2017-04-11 17:10:51 +00:00
Daniel Rossberg 30d2dc260b applied patch https://sourceforge.net/p/brlcad/patches/457/ "rt_ehy_centroid() implemented" from Shubham Rathore
needs to be verified but looks reasonable

svn:revision:69630
svn:branch:trunk
svn:account:d_rossberg
2017-04-11 17:06:41 +00:00
Clifford Yapp 3d7a2634ab This may need to be revisited, but it's not clear why we need to avoid suppressing holes if we have protruding shapes. We can skip converting them to CSG subtractions, but it may be OK to completely remove small holes as well to simplify... should really get list of acceptable feature types to suppress from the user...
svn:revision:69629
svn:branch:trunk
svn:account:starseeker
2017-04-11 16:51:45 +00:00
Clifford Yapp e4482544a0 tweak
svn:revision:69628
svn:branch:trunk
svn:account:starseeker
2017-04-11 16:15:48 +00:00
Clifford Yapp a776f8f8ac set attributes
svn:revision:69627
svn:branch:trunk
svn:account:starseeker
2017-04-11 16:14:11 +00:00
Clifford Yapp c21acc3435 use mk_comb
svn:revision:69626
svn:branch:trunk
svn:account:starseeker
2017-04-11 15:58:17 +00:00
Clifford Yapp e5ce5d3a73 checkpoint
svn:revision:69625
svn:branch:trunk
svn:account:starseeker
2017-04-11 15:33:43 +00:00
Clifford Yapp 9b1fb2c625 bit more refactoring
svn:revision:69624
svn:branch:trunk
svn:account:starseeker
2017-04-11 14:45:38 +00:00
Christopher Sean Morrison 69b9df02b0 massage the new vert_tree API into standard form with label and arg ordering, and function naming consistent with [library]_[group]_[action].
svn:revision:69623
svn:branch:trunk
svn:account:brlcad
2017-04-11 03:32:40 +00:00
Christopher Sean Morrison c23a0530db bn_vert_tree instead of root to be consistent with the 'vert_tree' group name
svn:revision:69622
svn:branch:trunk
svn:account:brlcad
2017-04-11 02:33:03 +00:00
Christopher Sean Morrison 3c55b05b53 commit all the things. convert all callers to the new bn_vert_tree type.
svn:revision:69621
svn:branch:trunk
svn:account:brlcad
2017-04-11 02:32:00 +00:00
Christopher Sean Morrison 7aec9542fd quell warning about 255 turning into -1. type should be unsigned.
svn:revision:69620
svn:branch:trunk
svn:account:brlcad
2017-04-11 02:31:10 +00:00
Christopher Sean Morrison 09384c554a print a loud error messages instead of failing catastrophically. this way, we might still get something instead of nothing on an unsupported .dem file.
svn:revision:69619
svn:branch:trunk
svn:account:brlcad
2017-04-10 21:53:13 +00:00
Christopher Sean Morrison e7285bdf57 these are now public API, so prefix magic accordingly as BN_
svn:revision:69618
svn:branch:trunk
svn:account:brlcad
2017-04-10 21:43:45 +00:00
Christopher Sean Morrison fe2d03949a fix a little too much bn_ prefixing, rename the main struct to bn_vect_tree.
svn:revision:69617
svn:branch:trunk
svn:account:brlcad
2017-04-10 21:36:13 +00:00
Clifford Yapp be33310833 vert trees will be local to each part.
svn:revision:69616
svn:branch:trunk
svn:account:starseeker
2017-04-10 19:16:32 +00:00
Clifford Yapp be3287078a Prefix libbn's vert_tree functions with bn_ so it's clear where they come from.
svn:revision:69615
svn:branch:trunk
svn:account:starseeker
2017-04-10 15:42:45 +00:00
Clifford Yapp 7fc35dd942 shorter
svn:revision:69614
svn:branch:trunk
svn:account:starseeker
2017-04-10 14:58:49 +00:00
Clifford Yapp ec8b527cf4 checkpoint
svn:revision:69613
svn:branch:trunk
svn:account:starseeker
2017-04-10 14:52:38 +00:00
Clifford Yapp 53bd398ef4 will probably need to specify prefix in certain situations
svn:revision:69612
svn:branch:trunk
svn:account:starseeker
2017-04-07 19:39:38 +00:00
Clifford Yapp 535e4d49e9 handle assembly-only vars more locally.
svn:revision:69611
svn:branch:trunk
svn:account:starseeker
2017-04-07 17:49:11 +00:00
Clifford Yapp cf37cf8495 start looking at part code.
svn:revision:69610
svn:branch:trunk
svn:account:starseeker
2017-04-07 17:42:38 +00:00
Clifford Yapp 5698e53c34 reorder
svn:revision:69609
svn:branch:trunk
svn:account:starseeker
2017-04-07 14:02:35 +00:00
Clifford Yapp 85019cbd62 checkpoint
svn:revision:69608
svn:branch:trunk
svn:account:starseeker
2017-04-07 13:56:33 +00:00
Clifford Yapp 70e905a172 start working on attribute assignment
svn:revision:69607
svn:branch:trunk
svn:account:starseeker
2017-04-06 20:50:09 +00:00
Clifford Yapp 0a8cb546d5 will need top level comb
svn:revision:69606
svn:branch:trunk
svn:account:starseeker
2017-04-06 19:43:19 +00:00
Clifford Yapp 3f76f78a35 Stub in the name recovery where we need it
svn:revision:69605
svn:branch:trunk
svn:account:starseeker
2017-04-06 16:57:34 +00:00
Clifford Yapp 0d85e61b01 flip test
svn:revision:69604
svn:branch:trunk
svn:account:starseeker
2017-04-06 16:45:35 +00:00
Clifford Yapp f3dad8b5d1 move creo_attribute_val to util
svn:revision:69603
svn:branch:trunk
svn:account:starseeker
2017-04-06 16:42:57 +00:00
Clifford Yapp 35b439fb83 Add a few more checks
svn:revision:69602
svn:branch:trunk
svn:account:starseeker
2017-04-06 16:10:14 +00:00
Clifford Yapp 752fc757e1 iterator
svn:revision:69601
svn:branch:trunk
svn:account:starseeker
2017-04-06 15:40:14 +00:00
Clifford Yapp c24674fbdc checkpoint
svn:revision:69600
svn:branch:trunk
svn:account:starseeker
2017-04-06 15:28:41 +00:00
Clifford Yapp 8ccac1122d initialize orientation
svn:revision:69599
svn:branch:trunk
svn:account:starseeker
2017-04-06 15:12:02 +00:00
Clifford Yapp 431c600324 checkpoint
svn:revision:69598
svn:branch:trunk
svn:account:starseeker
2017-04-06 15:07:22 +00:00
Clifford Yapp 5c2ebe8404 checkpoint
svn:revision:69597
svn:branch:trunk
svn:account:starseeker
2017-04-06 14:29:12 +00:00
Clifford Yapp 6618587d54 Add a comment emphasizing the CREO plugin connecting functions
svn:revision:69596
svn:branch:trunk
svn:account:starseeker
2017-04-06 13:38:54 +00:00
Clifford Yapp 394629bef4 The lz4.h on Linux Mint doesn't seem to have this either - it looks like it's just LZ4_compress there.
svn:revision:69595
svn:branch:trunk
svn:account:starseeker
2017-04-06 01:05:00 +00:00
Clifford Yapp ea51416563 note the problem with these two for later handling...
svn:revision:69594
svn:branch:trunk
svn:account:starseeker
2017-04-05 20:18:27 +00:00
Clifford Yapp 16ec91a0e9 checkpoint
svn:revision:69593
svn:branch:trunk
svn:account:starseeker
2017-04-05 20:16:58 +00:00
Clifford Yapp 1351f78dba checkpoint
svn:revision:69592
svn:branch:trunk
svn:account:starseeker
2017-04-05 19:22:53 +00:00
Clifford Yapp ecfd4cc2be fix name
svn:revision:69591
svn:branch:trunk
svn:account:starseeker
2017-04-05 16:29:09 +00:00
Clifford Yapp 41d85d5802 File bullet with 3rd party targets
svn:revision:69590
svn:branch:trunk
svn:account:starseeker
2017-04-05 02:42:09 +00:00
Vasco Alexandre da Silva Costa 31d9f4a2a2 apply sf patch #455 from Marco Domingues which implements rhc and rpc evaluation in opencl.
svn:revision:69589
svn:branch:trunk
svn:account:vasco_costa
2017-04-04 00:26:30 +00:00
Clifford Yapp 2544c20b60 Note dsp facetize issue
svn:revision:69588
svn:branch:trunk
svn:account:starseeker
2017-03-31 18:49:33 +00:00
Clifford Yapp 23d3ad5207 Allow archer to start when man pages aren't built.
svn:revision:69587
svn:branch:trunk
svn:account:starseeker
2017-03-31 18:31:44 +00:00
Clifford Yapp 19312c144a Add some TODO notes related to dsp
svn:revision:69586
svn:branch:trunk
svn:account:starseeker
2017-03-31 18:11:21 +00:00
Clifford Yapp cb89cf653a think the crash is fixed, but screengrab still won't work
svn:revision:69585
svn:branch:trunk
svn:account:starseeker
2017-03-31 13:24:55 +00:00
Nicholas Reed a3c53cd74f mark sync revisions merged
svn:revision:69584
svn:branch:trunk
svn:account:n_reed
2017-03-26 19:46:53 +00:00
Nicholas Reed e112b591fe sync r69516 through r69581 changes from trunk
svn:revision:69583
svn:branch:brep-debug
svn:account:n_reed
2017-03-26 19:43:25 +00:00
Nicholas Reed 07d78c107a sync r69462 through r69516 changes from trunk
svn:revision:69582
svn:branch:brep-debug
svn:account:n_reed
2017-03-26 19:37:11 +00:00
Nicholas Reed 72900040d1 Keep the GUI interactive while doing subtractions. Show progress in the progress bar, and also scroll to the bottom of the checklist so we can see each subtraction get added to the bottom of the list as it gets done.
svn:revision:69581
svn:branch:trunk
svn:account:n_reed
2017-03-24 23:01:16 +00:00
Nicholas Reed 0b294b4270 write fewer "still alive" dots when initially loading overlaps
svn:revision:69580
svn:branch:trunk
svn:account:n_reed
2017-03-24 22:58:00 +00:00
Nicholas Reed 9b5b3352c4 fix update of status text when overlaps are marked
svn:revision:69579
svn:branch:trunk
svn:account:n_reed
2017-03-24 22:56:11 +00:00
Jonathan Engbert e05566ae11 add note about center of masses
svn:revision:69578
svn:branch:trunk
svn:account:ejno
2017-03-24 22:16:03 +00:00
Jonathan Engbert a8f0145e43 add notes describing the state of the simulate command
svn:revision:69577
svn:branch:trunk
svn:account:ejno
2017-03-24 21:59:52 +00:00
Jonathan Engbert 0542a63e3e bio.h is required for the definition of HANDLE on Windows
svn:revision:69576
svn:branch:trunk
svn:account:ejno
2017-03-24 20:49:40 +00:00
Jonathan Engbert 03dfe7b562 scale so that units are in meters
svn:revision:69575
svn:branch:trunk
svn:account:ejno
2017-03-24 20:32:56 +00:00
Jonathan Engbert 399cc4b9f9 update documentation
svn:revision:69574
svn:branch:trunk
svn:account:ejno
2017-03-24 19:04:13 +00:00
Jonathan Engbert 0464e52509 increase the tolerance factor for size comparisons
svn:revision:69573
svn:branch:trunk
svn:account:ejno
2017-03-24 18:43:39 +00:00
Jonathan Engbert 30dbe75ce7 check that objects in the simulation are not of scales too extreme for Bullet
svn:revision:69572
svn:branch:trunk
svn:account:ejno
2017-03-24 17:35:07 +00:00
Jonathan Engbert 2ec3877cec reverse the direction of the vector
svn:revision:69571
svn:branch:trunk
svn:account:ejno
2017-03-24 16:50:10 +00:00
Jonathan Engbert 6bcd68a532 to avoid export issues on Windows, just use the ged_simulate() libged command in simulate_test.c
svn:revision:69570
svn:branch:trunk
svn:account:ejno
2017-03-24 15:46:07 +00:00
Jonathan Engbert 7e1a551dbb revert r69568
svn:revision:69569
svn:branch:trunk
svn:account:ejno
2017-03-24 14:44:33 +00:00
Jonathan Engbert e0e3e8c174 increase default gravity units to meters/sec
svn:revision:69568
svn:branch:trunk
svn:account:ejno
2017-03-24 14:24:54 +00:00
Jonathan Engbert ba29c2e5b6 fix issue introduced in r69556; the xrays head node should be on the heap because other nodes in the bu_list refer to it
svn:revision:69567
svn:branch:trunk
svn:account:ejno
2017-03-24 13:08:38 +00:00
Clifford Yapp df53299fdc Fix up links, add reference to 2016 AP242 correction.
svn:revision:69564
svn:branch:trunk
svn:account:starseeker
2017-03-23 23:46:13 +00:00
Clifford Yapp 51a5b0e4ee Sync with trunk thru r69558
svn:revision:69563
svn:branch:opencl
svn:account:starseeker
2017-03-23 23:40:25 +00:00
Jonathan Engbert fa4f8a4d8c add missing include
svn:revision:69562
svn:branch:trunk
svn:account:ejno
2017-03-23 23:13:47 +00:00
Clifford Yapp 04677d9351 Don't turn on by default yet - still needs more testing.
svn:revision:69560
svn:branch:trunk
svn:account:starseeker
2017-03-23 22:35:50 +00:00
Jonathan Engbert 6a63a38c8b try running a shorter simulation during testing in an attempt to avoid numerical issues
svn:revision:69557
svn:branch:trunk
svn:account:ejno
2017-03-23 19:42:22 +00:00
Jonathan Engbert f973b65590 provide full precision for the expected values
svn:revision:69556
svn:branch:trunk
svn:account:ejno
2017-03-23 19:28:28 +00:00
Clifford Yapp 79bc1afc10 Pretty sure this isn't working yet, but at least get it compiling. Lots of complaints about needing DLL interfaces to things...
svn:revision:69555
svn:branch:trunk
svn:account:starseeker
2017-03-23 02:57:23 +00:00
Clifford Yapp 00395b71e5 tweak for MSVC
svn:revision:69554
svn:branch:trunk
svn:account:starseeker
2017-03-23 02:26:50 +00:00
Clifford Yapp bad8e427c0 This is propagating - can we just go with a static lib?
svn:revision:69553
svn:branch:trunk
svn:account:starseeker
2017-03-23 02:14:51 +00:00
Clifford Yapp 6ecee8ba94 more exports
svn:revision:69552
svn:branch:trunk
svn:account:starseeker
2017-03-23 02:10:18 +00:00
Clifford Yapp 349f4ef357 more exports
svn:revision:69551
svn:branch:trunk
svn:account:starseeker
2017-03-23 01:59:23 +00:00
Clifford Yapp 8f235b6910 more exports
svn:revision:69550
svn:branch:trunk
svn:account:starseeker
2017-03-23 01:55:15 +00:00
Clifford Yapp 56bcd50cfb Start testing exports of bits we apparently need to export for MSVC...
svn:revision:69549
svn:branch:trunk
svn:account:starseeker
2017-03-23 01:49:49 +00:00
Clifford Yapp 434cd9acef See if we can go at bullet in a way that makes things simpler for MSVC
svn:revision:69548
svn:branch:trunk
svn:account:starseeker
2017-03-23 01:29:44 +00:00
Clifford Yapp 91b1ed8114 add missing closing emphasis bracket
svn:revision:69547
svn:branch:trunk
svn:account:starseeker
2017-03-23 01:17:47 +00:00
Clifford Yapp 9596dd1048 Not sure this approach is viable...
svn:revision:69546
svn:branch:trunk
svn:account:starseeker
2017-03-23 00:36:27 +00:00
Clifford Yapp 5e4a27f49b Start working on the dll import/export bit for bullet libs
svn:revision:69545
svn:branch:trunk
svn:account:starseeker
2017-03-23 00:24:38 +00:00
Jonathan Engbert 6bc3abe154 make get_simulation_parameters() a static member function of SimulationParameters
svn:revision:69544
svn:branch:trunk
svn:account:ejno
2017-03-22 20:57:45 +00:00
Jonathan Engbert 8c86ea764c allow an attribute specifying the number of rays along the radius of the circular grids fired during collision detection
svn:revision:69543
svn:branch:trunk
svn:account:ejno
2017-03-22 19:29:38 +00:00
Jonathan Engbert 92bd7877fd improve generation of unique names in RtDebugDraw
svn:revision:69541
svn:branch:trunk
svn:account:ejno
2017-03-22 13:53:37 +00:00
Christopher Sean Morrison 072d619f3b quell some spurious chmod warnings by only chmodding what we need and ensuring there's not a file in the way.
svn:revision:69540
svn:branch:trunk
svn:account:brlcad
2017-03-22 03:34:24 +00:00
Jonathan Engbert 0a43fe1af3 modfiy paragraph
svn:revision:69539
svn:branch:trunk
svn:account:ejno
2017-03-22 01:05:01 +00:00
Jonathan Engbert 57612eda7a add a note regarding the interpretation of any potential discrepancies in the AABB debug output
svn:revision:69538
svn:branch:trunk
svn:account:ejno
2017-03-22 01:01:57 +00:00
Jonathan Engbert 4127690d11 clarify comment
svn:revision:69537
svn:branch:trunk
svn:account:ejno
2017-03-21 21:10:35 +00:00
Jonathan Engbert 8e1f192869 remove dead code
svn:revision:69536
svn:branch:trunk
svn:account:ejno
2017-03-21 21:02:23 +00:00
Jonathan Engbert d087383c8a fix typo
svn:revision:69535
svn:branch:trunk
svn:account:ejno
2017-03-21 20:59:11 +00:00
Jonathan Engbert 29b6cf2f61 add a test for correct matrix application in similar situations involving nested matrices
svn:revision:69534
svn:branch:trunk
svn:account:ejno
2017-03-21 20:57:19 +00:00
Christopher Sean Morrison d5aaeb61d5 gqa terminates when it finds any overlaps, so using something like -g8mm,1mm means it'll stop on the first coarse iteration. since we want as many overlaps as possible, we jump straight to the limit: a 1mm grid with no overlap thickness tolerance set.
svn:revision:69533
svn:branch:trunk
svn:account:brlcad
2017-03-21 20:06:58 +00:00
Jonathan Engbert 91b9ff01ee partial fix for matrix applications
svn:revision:69532
svn:branch:trunk
svn:account:ejno
2017-03-21 16:35:58 +00:00
Christopher Sean Morrison 41710efb40 run gqa in addition to rtcheck.
this is so that users aren't surprised by gqa reporting additional
overlaps when run as a secondary validation test.  gqa output is
treated equivalently (as if it were across 16 views instead of 3) to
help keep it's overweighted counts in check.  this reduces gqa volume
estimates, but lets them contribute to the total so they will be
listed.

also turning off per-pair plotting for now until there's a use, but
increasing default rtcheck grid size to 1024 since it was missing
a lot of things gqa was finding.

svn:revision:69531
svn:branch:trunk
svn:account:brlcad
2017-03-21 15:45:48 +00:00
Jonathan Engbert e9b62229b1 use db_full_path instead of string paths
svn:revision:69530
svn:branch:trunk
svn:account:ejno
2017-03-21 14:58:39 +00:00
Christopher Sean Morrison 0d6329976b we don't need LZ4_cmpress_fast() specifically. See if LZ4_compress_default() is more broadly supported. May need to convert LZ4_decompress_fast() too, but it's a different pattern.
svn:revision:69529
svn:branch:trunk
svn:account:brlcad
2017-03-21 05:01:30 +00:00
Christopher Sean Morrison dd1e3d0222 apply sf patch 458 which tells people where they can find the compiled binaries.
svn:revision:69528
svn:branch:trunk
svn:account:brlcad
2017-03-20 20:10:37 +00:00
Clifford Yapp 98cca96824 Check for LZ4_compress_fast - may not be in system lz4 library
svn:revision:69526
svn:branch:trunk
svn:account:starseeker
2017-03-19 22:01:04 +00:00
Clifford Yapp 3f6a318744 src/libdm/dm-wgl.c:2386 has the wgl display manager's getDisplayImage function set to the null function - i.e. it won't return any data - but the screengrab.c code doesn't seem to allow for the possibility of ged_dm_get_display not returning anything. Check for a null idata after the call - untested, but this may avoid the screengrab crash reported on Windows (won't actually get it working either, however...)
svn:revision:69524
svn:branch:trunk
svn:account:starseeker
2017-03-08 19:49:40 +00:00
Christopher Sean Morrison 88ede827f7 screengrab crashes on windows
svn:revision:69523
svn:branch:trunk
svn:account:brlcad
2017-03-08 19:08:04 +00:00
Christopher Sean Morrison 3dfcd438f4 recursive submodel no happy. need stack-based traversal.
svn:revision:69522
svn:branch:trunk
svn:account:brlcad
2017-03-07 23:21:41 +00:00
Nicholas Reed f01eb00c86 show count of marked overlaps in status
svn:revision:69521
svn:branch:trunk
svn:account:n_reed
2017-03-07 19:37:29 +00:00
Christopher Sean Morrison fc841d0528 if dir is ever null, help_files() won't init files and it'll be accessed uninitialized.
svn:revision:69520
svn:branch:trunk
svn:account:brlcad
2017-03-07 18:24:16 +00:00
Christopher Sean Morrison 99313e1f18 -
svn:revision:69519
svn:branch:trunk
svn:account:brlcad
2017-03-07 18:07:44 +00:00
Christopher Sean Morrison 1366456493 jon has put a lot of effort into the simulate command, getting it working again and making improvements.
svn:revision:69518
svn:branch:trunk
svn:account:brlcad
2017-03-05 03:30:37 +00:00
Christopher Sean Morrison d1f61cf21a the macros live in vmath.h
svn:revision:69517
svn:branch:trunk
svn:account:brlcad
2017-03-05 03:29:22 +00:00
Nicholas Reed ce5794b7b7 reformat some messages
svn:revision:69516
svn:branch:trunk
svn:account:n_reed
2017-03-02 23:20:50 +00:00
Christopher Sean Morrison 1938b3c82d rt_dsp_parse is expected in the functab so rename. while we're at it, consolidate away the two v4 parsetabs into one since calculating dsp_mtos from dsp_stom is no longer necessary -- everywhere we access the data, the inverse is computed.
svn:revision:69515
svn:branch:trunk
svn:account:brlcad
2017-03-02 23:00:52 +00:00
Christopher Sean Morrison f63e7332d1 convert direct access of vls_len into bu_vls_strlen() calls, address the FIXME by having parse_vls_print_floating go through the vls functions instead of manually twiddling the size as it appends.
svn:revision:69514
svn:branch:trunk
svn:account:brlcad
2017-03-02 22:58:22 +00:00
Nicholas Reed 3edbedc7af standardize error capitalization
svn:revision:69513
svn:branch:trunk
svn:account:n_reed
2017-03-02 22:53:31 +00:00
Nicholas Reed f94ae54c46 Add an -F option to the check command to force the sub buttons to subtract all regions, even if they contain more than one solid. The first unioned solid is the one that gets subtracted.
svn:revision:69512
svn:branch:trunk
svn:account:n_reed
2017-03-02 22:52:09 +00:00
Nicholas Reed 9fd122b77a Find the database name regardless of how check is called so we can search for the check.sh output directory. Fixes an error when running check with overllap filename.
svn:revision:69511
svn:branch:trunk
svn:account:n_reed
2017-03-02 22:44:17 +00:00
Nicholas Reed fc587e0dcb don't print tk widget path
svn:revision:69510
svn:branch:trunk
svn:account:n_reed
2017-03-02 22:36:05 +00:00
Christopher Sean Morrison 9f5e1511ce there is no reason to print 'Error Error Error' on a v4 dsp. rename the structparse tables.
svn:revision:69509
svn:branch:trunk
svn:account:brlcad
2017-03-02 18:44:43 +00:00
Christopher Sean Morrison c17f10eaae fix bug printing %V structparse entries and arrays of %s where a space is needed before the key=value. noticed on g2asc of a dsp, which fortunately was on the 'name' field which is duplicated by the 'file' field -- so there may not be calling code that hits this bug in a bad way. basically needs a structparse where %V is in the middle of the table to hit the case.
svn:revision:69508
svn:branch:trunk
svn:account:brlcad
2017-03-02 17:53:52 +00:00
Nicholas Reed 7c861390d1 specify button images portably
svn:revision:69507
svn:branch:trunk
svn:account:n_reed
2017-03-02 01:27:51 +00:00
Nicholas Reed 42d31ef306 make menu font consistent with checklist
svn:revision:69506
svn:branch:trunk
svn:account:n_reed
2017-03-01 23:54:18 +00:00
Nicholas Reed edd479f699 save marked paths in an external file
svn:revision:69505
svn:branch:trunk
svn:account:n_reed
2017-03-01 23:51:01 +00:00
Clifford Yapp 38a3a82b09 See if we can use regular expressions for parameter keys to allow for a bit more user flexibility
svn:revision:69504
svn:branch:trunk
svn:account:starseeker
2017-03-01 21:01:59 +00:00
Clifford Yapp 5cda1635c4 We'll need to make sure the counter is at the end of the name... needs more thought/testing
svn:revision:69503
svn:branch:trunk
svn:account:starseeker
2017-03-01 18:58:47 +00:00
Nicholas Reed f159a6657e implement right-click menu for checklist that lets you manually mark or unmark the selection
svn:revision:69502
svn:branch:trunk
svn:account:n_reed
2017-03-01 18:21:42 +00:00
Clifford Yapp fb7f17bc1a checkpoint
svn:revision:69501
svn:branch:trunk
svn:account:starseeker
2017-03-01 16:43:23 +00:00
Clifford Yapp 6d2593df25 scrub down whitespace
svn:revision:69500
svn:branch:trunk
svn:account:starseeker
2017-03-01 15:47:23 +00:00
Clifford Yapp eb4d2a7151 will need sstream
svn:revision:69499
svn:branch:trunk
svn:account:starseeker
2017-03-01 15:34:16 +00:00
Clifford Yapp 01e8b77684 pfile goes here...
svn:revision:69498
svn:branch:trunk
svn:account:starseeker
2017-03-01 15:18:57 +00:00
Clifford Yapp 09062b455e tweaks
svn:revision:69497
svn:branch:trunk
svn:account:starseeker
2017-03-01 15:13:36 +00:00
Clifford Yapp d5101d382c If we're going to generate names using CREO model parameters, we need to know which parameters to use. Should probably look at using this same basic mechanism to specify which model parameters to preserve as .g object attributes, although that will require a new file input in the CREO dialog.
svn:revision:69496
svn:branch:trunk
svn:account:starseeker
2017-03-01 01:55:04 +00:00
Clifford Yapp 90602ab9a0 ws
svn:revision:69495
svn:branch:trunk
svn:account:starseeker
2017-03-01 01:17:12 +00:00
Nicholas Reed f4ea34b32f sort marked overlaps to bottom of checklist
svn:revision:69494
svn:branch:trunk
svn:account:n_reed
2017-02-28 23:43:25 +00:00
Nicholas Reed d3dda6a3e9 make progress command private
svn:revision:69493
svn:branch:trunk
svn:account:n_reed
2017-02-28 22:31:20 +00:00
Nicholas Reed 29d1a9eb00 disable subtract buttons when selection contains a marked overlap
svn:revision:69492
svn:branch:trunk
svn:account:n_reed
2017-02-28 22:09:38 +00:00
Clifford Yapp 70b26b9aeb Walk all parameters associated with an assembly and print the string key,value pairs.
svn:revision:69491
svn:branch:trunk
svn:account:starseeker
2017-02-28 21:48:47 +00:00
Nicholas Reed 98c8a7d23b deselect overlap once marked
svn:revision:69490
svn:branch:trunk
svn:account:n_reed
2017-02-28 21:46:15 +00:00
Nicholas Reed 7cca96985d On successful subtraction, mark and gray-out overlap.
svn:revision:69489
svn:branch:trunk
svn:account:n_reed
2017-02-28 21:35:18 +00:00
Clifford Yapp 11c36048a7 Now that we have the list, we need to work on individual objects. We'll start with assemblies.
svn:revision:69488
svn:branch:trunk
svn:account:starseeker
2017-02-28 20:23:19 +00:00
Clifford Yapp a2c3f2b59b Walk hierarchy to assemble list of parts and assemblies to process.
svn:revision:69487
svn:branch:trunk
svn:account:starseeker
2017-02-28 20:14:02 +00:00
Clifford Yapp 4bde93dde2 double frees are bad...
svn:revision:69486
svn:branch:trunk
svn:account:starseeker
2017-02-28 19:49:28 +00:00
Clifford Yapp 6e9f67a48f Get things compiling (mostly by turning stuff off)
svn:revision:69485
svn:branch:trunk
svn:account:starseeker
2017-02-28 17:45:54 +00:00
Clifford Yapp 1cbe7578cf simplify
svn:revision:69484
svn:branch:trunk
svn:account:starseeker
2017-02-28 15:25:26 +00:00
Clifford Yapp 7d6711a9f4 reduce duplicate code
svn:revision:69483
svn:branch:trunk
svn:account:starseeker
2017-02-28 15:07:43 +00:00
Clifford Yapp 5f9d9cd68b at this stage we need to see if we're dealing correctly with the hierarchy - set up debugging.
svn:revision:69482
svn:branch:trunk
svn:account:starseeker
2017-02-28 01:18:17 +00:00
Clifford Yapp d0fbc1c878 Need something to walk the CREO parameters and generate a name...
svn:revision:69481
svn:branch:trunk
svn:account:starseeker
2017-02-27 22:37:38 +00:00
Clifford Yapp 87a100d3d1 checkpoint
svn:revision:69480
svn:branch:trunk
svn:account:starseeker
2017-02-27 22:30:11 +00:00
Clifford Yapp cbcb3e3f0d will be using map as well...
svn:revision:69479
svn:branch:trunk
svn:account:starseeker
2017-02-27 22:16:06 +00:00
Clifford Yapp e3d69c63c6 eventually this should be a setting...
svn:revision:69478
svn:branch:trunk
svn:account:starseeker
2017-02-27 22:13:59 +00:00
Clifford Yapp 6ad9d98f2c checkpoint
svn:revision:69477
svn:branch:trunk
svn:account:starseeker
2017-02-27 22:07:34 +00:00
Clifford Yapp ae4607019c Will need to look into ProParameter to get information to use for name generation, as opposed to supplying definitions via script file.
svn:revision:69476
svn:branch:trunk
svn:account:starseeker
2017-02-27 21:30:34 +00:00
Clifford Yapp ec8b2fab31 checkpoint
svn:revision:69475
svn:branch:trunk
svn:account:starseeker
2017-02-27 18:10:54 +00:00
Clifford Yapp 88b20d58c1 tweak
svn:revision:69474
svn:branch:trunk
svn:account:starseeker
2017-02-24 21:49:33 +00:00
Clifford Yapp dd88b2f6eb tweaks
svn:revision:69473
svn:branch:trunk
svn:account:starseeker
2017-02-24 21:45:39 +00:00
Clifford Yapp 9a8c34cb18 take a stab at setting up a flexible logging setup that allows for relatively compact logging calling logic. No real idea if this will work...
svn:revision:69472
svn:branch:trunk
svn:account:starseeker
2017-02-24 20:42:08 +00:00
Clifford Yapp 5bb9d82a3f we'll need to spot assembiles which are empty because all the parts below them are empty...
svn:revision:69471
svn:branch:trunk
svn:account:starseeker
2017-02-24 19:31:02 +00:00
Clifford Yapp dd7f70008e Not sure if we really need this or not... can always put it back if we do
svn:revision:69470
svn:branch:trunk
svn:account:starseeker
2017-02-24 16:32:09 +00:00
Clifford Yapp ca316741fc checkpoint
svn:revision:69469
svn:branch:trunk
svn:account:starseeker
2017-02-24 16:13:03 +00:00
Clifford Yapp 967f4fd342 start stubbing in logic to write combs directly to a .g output.
svn:revision:69468
svn:branch:trunk
svn:account:starseeker
2017-02-23 22:34:23 +00:00
Nicholas Reed d849be23ce improve path-volume sort by correctly interpreting volumes in scientific notation, temporarily stashing volumes in an array to avoid duplicate calculation, and occasionally printing to show progress
svn:revision:69467
svn:branch:trunk
svn:account:n_reed
2017-02-23 20:47:49 +00:00
Nicholas Reed 253310105e add update calls to ensure draw progress is correctly visualized
svn:revision:69466
svn:branch:trunk
svn:account:n_reed
2017-02-23 20:43:37 +00:00
Clifford Yapp f6b497af63 don't involve libged unless we need to.
svn:revision:69465
svn:branch:trunk
svn:account:starseeker
2017-02-23 01:09:20 +00:00
Clifford Yapp 57399764ad start stubbing in the necessary setup for .g export instead of .asc export.
svn:revision:69464
svn:branch:trunk
svn:account:starseeker
2017-02-23 00:59:08 +00:00
Nicholas Reed 89c8586a16 Prefix add_operator function in src/mged, which was shadowing local add_operator function in libged/comb_std.c, causing segfault in "c" command when given bad syntax.
svn:revision:69463
svn:branch:trunk
svn:account:n_reed
2017-02-22 21:28:50 +00:00
Nicholas Reed eba12fea97 mark sync revisions merged
svn:revision:69462
svn:branch:trunk
svn:account:n_reed
2017-02-22 18:38:26 +00:00
Nicholas Reed a82a897ec2 sync r69402 through r69459 changes from trunk
svn:revision:69461
svn:branch:brep-debug
svn:account:n_reed
2017-02-22 18:25:58 +00:00
Nicholas Reed 070e0b8144 sync r69345 through r69401 changes from trunk
svn:revision:69460
svn:branch:brep-debug
svn:account:n_reed
2017-02-22 18:20:21 +00:00
Nicholas Reed 78fdb695ad Rewrite automatic subtraction. Refuse to subtract combinations, which opens the possibility for cycles. Subtract only regions that can be reduced to a single solid (pushed matrices assumed), subtracting the solid from all unioned solids in the other tree.
svn:revision:69459
svn:branch:trunk
svn:account:n_reed
2017-02-21 23:35:19 +00:00
Nicholas Reed 6c1288e1e8 Autodraw one selected path at a time. Add a progress bar and command status text to show draw progress, and a cancel button that stops the issuing of new draw commands. For multiple path selection, delay start of drawing to facilitate cancellation. Implement checker destructor to ensure closing the checker window during cancellable draw operations doesn't cause any errors.
svn:revision:69458
svn:branch:trunk
svn:account:n_reed
2017-02-21 23:29:26 +00:00
Nicholas Reed 1d6011c394 Fix off-by-one reported overlap count. Handle plurality while we're at it.
svn:revision:69457
svn:branch:trunk
svn:account:n_reed
2017-02-21 23:19:55 +00:00
Nicholas Reed 46a6e0e7a2 Improve usability of subtract buttons. Remove prev/next buttons. Center sub-left and sub-right buttons and decorate them with solid-color images matching the draw color of the left and right sides of the overlap.
svn:revision:69456
svn:branch:trunk
svn:account:n_reed
2017-02-21 23:17:56 +00:00
Nicholas Reed c8d08058af have check command look for overlap file automatically if not specified
svn:revision:69455
svn:branch:trunk
svn:account:n_reed
2017-02-21 23:07:57 +00:00
Nicholas Reed f2477cbe96 Force checker window into golden ratio so it doesn't end up too narrow if the overlap path text happens to be short.
svn:revision:69454
svn:branch:trunk
svn:account:n_reed
2017-02-21 23:06:53 +00:00
Nicholas Reed 88b622b6f1 light colors indistinguishable on some monitors; revert to red/blue
svn:revision:69453
svn:branch:trunk
svn:account:n_reed
2017-02-21 23:05:01 +00:00
Nicholas Reed 7d9b39855c take out draw combo
svn:revision:69452
svn:branch:trunk
svn:account:n_reed
2017-02-21 23:01:43 +00:00
Nicholas Reed d34ff1eebb sort overlap pair names to avoid duplicates
svn:revision:69451
svn:branch:trunk
svn:account:n_reed
2017-02-21 22:53:22 +00:00
Daniel Rossberg 2013a4f8c5 added some new library dependencies
svn:revision:69450
svn:branch:trunk
svn:account:d_rossberg
2017-02-17 13:59:34 +00:00
Daniel Rossberg a5d8d74a15 the static libraries usually have a hyphen in their names and so had zlib => inserted the hyphen such it matches with its references again
svn:revision:69449
svn:branch:trunk
svn:account:d_rossberg
2017-02-17 13:57:04 +00:00
Nicholas Reed fbc650980e keep const and use memcpy as a better workaround to compiler warning of struct-copy of struct with const members
svn:revision:69448
svn:branch:trunk
svn:account:n_reed
2017-02-16 17:41:36 +00:00
Clifford Yapp 7a41a271f3 we're initializing with static strings, go with const char (gcc error)
svn:revision:69447
svn:branch:trunk
svn:account:starseeker
2017-02-16 17:32:25 +00:00
Clifford Yapp 2c3522e7e7 Clear error in MSVC - "static functions with block scope are illegal"
svn:revision:69446
svn:branch:trunk
svn:account:starseeker
2017-02-16 17:26:52 +00:00
Clifford Yapp 7bb2510ee9 Help is using std::string, which makes it a C++ file...
svn:revision:69445
svn:branch:trunk
svn:account:starseeker
2017-02-16 17:14:55 +00:00
Clifford Yapp 91b82aa1dc can't reproduce - everything looks OK.
svn:revision:69444
svn:branch:trunk
svn:account:starseeker
2017-02-16 16:53:52 +00:00
Christopher Sean Morrison 5128c6bab4 minor ws cleanup
svn:revision:69443
svn:branch:trunk
svn:account:brlcad
2017-02-16 09:28:49 +00:00
Christopher Sean Morrison 654268f733 test out bu hashing next, quick and dirty, to avoid the O(n) linear scanning. gets through all our docs in less than half a second but still some oddity with empties to check
svn:revision:69442
svn:branch:trunk
svn:account:brlcad
2017-02-16 09:21:58 +00:00
Clifford Yapp 1a38c4ad0f Per https://cmake.org/Wiki/CMake:CPackNSISAdvancedTips we probably don't want our own version of this file...
svn:revision:69441
svn:branch:trunk
svn:account:starseeker
2017-02-15 22:35:22 +00:00
Clifford Yapp a557a10296 The ProName type doesn't seem to be working as expected - stack corruption is triggered when trying to use the variable 'name' - but using an explicit wchar_t array seems to work.
svn:revision:69440
svn:branch:trunk
svn:account:starseeker
2017-02-15 18:33:54 +00:00
Nicholas Reed a811690f8a Fix another pedantic gcc warning. Need to specify values for all struct elements to avoid complaint about missing initializers.
svn:revision:69439
svn:branch:trunk
svn:account:n_reed
2017-02-15 18:11:00 +00:00
Christopher Sean Morrison d88e25e9b7 clean up deadness
svn:revision:69438
svn:branch:trunk
svn:account:brlcad
2017-02-15 17:32:05 +00:00
Christopher Sean Morrison 789f6b977f implemented a quick n' dirty tokenization of text files, using a simple nul byte scan like grep and friends to determine if the content is binary. for now, simply captures all alphanumeric sequences as tokens, and it counts them up.
svn:revision:69437
svn:branch:trunk
svn:account:brlcad
2017-02-15 17:19:22 +00:00
Clifford Yapp 74d8faf241 throw libhl onto the to-consider list
svn:revision:69436
svn:branch:trunk
svn:account:starseeker
2017-02-15 15:30:31 +00:00
Nicholas Reed 6629729bed Address compiler-reported type issues. In particular, compiler refuses to do a struct copy if struct ged_cmd has const members.
svn:revision:69435
svn:branch:trunk
svn:account:n_reed
2017-02-14 22:26:30 +00:00
Clifford Yapp 6da4942cab remove the non-broken-out file
svn:revision:69434
svn:branch:trunk
svn:account:starseeker
2017-02-14 20:01:32 +00:00
Clifford Yapp 5b5d8b94bc Fix variable
svn:revision:69433
svn:branch:trunk
svn:account:starseeker
2017-02-14 19:20:33 +00:00
Clifford Yapp 87f764d5a7 tweak comments
svn:revision:69432
svn:branch:trunk
svn:account:starseeker
2017-02-14 19:12:49 +00:00
Clifford Yapp c658bc536f Check for v110_xp as the toolset.
svn:revision:69431
svn:branch:trunk
svn:account:starseeker
2017-02-14 18:43:21 +00:00
Clifford Yapp d0274343c6 fix header
svn:revision:69430
svn:branch:trunk
svn:account:starseeker
2017-02-14 18:12:46 +00:00
Clifford Yapp f2d9cdcf00 This appears to be enough to make multiconfig with CMake functional. Rather than fight the CMake settings, minimally tweak them.
svn:revision:69429
svn:branch:trunk
svn:account:starseeker
2017-02-14 16:23:09 +00:00
Clifford Yapp 3c28fff011 Add necessary tweaks for additional libraries/headers
svn:revision:69428
svn:branch:trunk
svn:account:starseeker
2017-02-14 15:29:04 +00:00
Clifford Yapp 9d3bd8da13 Doxygen fixes
svn:revision:69427
svn:branch:trunk
svn:account:starseeker
2017-02-14 14:16:08 +00:00
Clifford Yapp 57d2c70081 Note a couple of user reported issues for release.
svn:revision:69426
svn:branch:trunk
svn:account:starseeker
2017-02-14 12:44:45 +00:00
Christopher Sean Morrison 43dc662091 quiet the isvalid test since it causes old nurbs to spew a performance-impacting plethora of warnings with some platforms.
svn:revision:69425
svn:branch:trunk
svn:account:brlcad
2017-02-14 09:02:44 +00:00
Christopher Sean Morrison 7d964dcb88 similarly, quiet the warnings since users can't really do anything about this
svn:revision:69424
svn:branch:trunk
svn:account:brlcad
2017-02-14 09:01:45 +00:00
Christopher Sean Morrison d7f83ef8c4 quiet a DSP inside out segment warning, relegated to debug mode, despite this likely being a minor bug in dsp_shot().
svn:revision:69423
svn:branch:trunk
svn:account:brlcad
2017-02-14 09:00:04 +00:00
Christopher Sean Morrison 243ea7eece implement a simple filesystem traversal to get all installed docs. implemented non-recursively for safety using a simple stack.
svn:revision:69422
svn:branch:trunk
svn:account:brlcad
2017-02-14 08:58:11 +00:00
Christopher Sean Morrison 838bd76c32 BU_LIST_WHILE is only good for queues with top entries getting popped. swtich to BU_LIST_FOR iterator and stash a proper copy of the command being added.
svn:revision:69421
svn:branch:trunk
svn:account:brlcad
2017-02-14 08:54:39 +00:00
Christopher Sean Morrison 37ff8c922d consistently use headp instead of hp for the list head pointers
svn:revision:69420
svn:branch:trunk
svn:account:brlcad
2017-02-14 08:52:50 +00:00
Christopher Sean Morrison 0ea82da0a1 bu linked lists need to go
svn:revision:69419
svn:branch:trunk
svn:account:brlcad
2017-02-14 06:31:30 +00:00
Christopher Sean Morrison b582a49c54 stub in a help command, exploring how to manage a command plugin that registers lots of command names. help is intended to supply all the incantations for getting assistance including man, help, info, apropos, and ?
svn:revision:69418
svn:branch:trunk
svn:account:brlcad
2017-02-14 03:25:32 +00:00
Christopher Sean Morrison 71284c19a2 stub in actual storage for registered commands. tons more still needs to change (e.g., copying the caller's data, no need for struct callback), but baby step forward that actually stashes.
svn:revision:69417
svn:branch:trunk
svn:account:brlcad
2017-02-14 03:09:25 +00:00
Clifford Yapp 3d9ee08f00 See if a more vanilla CMake flags setup will work for this...
svn:revision:69416
svn:branch:trunk
svn:account:starseeker
2017-02-14 01:30:53 +00:00
Clifford Yapp 37f504ebba Start to set up for using librt to write out a .g file directly.
svn:revision:69415
svn:branch:trunk
svn:account:starseeker
2017-02-14 01:06:31 +00:00
Clifford Yapp 6a7b45ddc3 checkpoint
svn:revision:69414
svn:branch:trunk
svn:account:starseeker
2017-02-13 19:38:00 +00:00
Clifford Yapp c1eca8e2fa Get broken out files compiling.
svn:revision:69413
svn:branch:trunk
svn:account:starseeker
2017-02-08 23:24:03 +00:00
Clifford Yapp 7d5196e56a Confirmed - breakpoints work now.
svn:revision:69412
svn:branch:trunk
svn:account:starseeker
2017-02-08 20:56:15 +00:00
Clifford Yapp 9fafb26ad5 checkpoint
svn:revision:69411
svn:branch:trunk
svn:account:starseeker
2017-02-08 20:28:22 +00:00
Clifford Yapp 0adc43d786 Keith found the key missing bit - need the Zi flag for breakpoints in source code in VS to work.
svn:revision:69410
svn:branch:trunk
svn:account:starseeker
2017-02-08 17:14:57 +00:00
Clifford Yapp f54bcb6e4f checkpoint
svn:revision:69409
svn:branch:trunk
svn:account:starseeker
2017-02-08 16:35:48 +00:00
Clifford Yapp 2dcb6ebd81 include guards
svn:revision:69408
svn:branch:trunk
svn:account:starseeker
2017-02-08 16:13:41 +00:00
Clifford Yapp c5598f79a2 fold kill_empty_parts into parent function
svn:revision:69407
svn:branch:trunk
svn:account:starseeker
2017-02-08 16:01:49 +00:00
Clifford Yapp 06e56f894f consolidate the free logic
svn:revision:69406
svn:branch:trunk
svn:account:starseeker
2017-02-08 15:59:36 +00:00
Clifford Yapp 9774c1d022 checkpoint
svn:revision:69405
svn:branch:trunk
svn:account:starseeker
2017-02-08 15:18:48 +00:00
Clifford Yapp 4c9141c359 swat astr as a global, move some csg specific globals to csg.cpp
svn:revision:69404
svn:branch:trunk
svn:account:starseeker
2017-02-08 14:30:49 +00:00
Clifford Yapp f216ddc507 tweaks
svn:revision:69403
svn:branch:trunk
svn:account:starseeker
2017-02-07 21:36:38 +00:00
Clifford Yapp 17783c4971 based on who calls what, move things around.
svn:revision:69402
svn:branch:trunk
svn:account:starseeker
2017-02-07 20:25:21 +00:00
Nicholas Reed 39955e6f77 list overlap pairs with smaller bbox volume on the left
svn:revision:69401
svn:branch:trunk
svn:account:n_reed
2017-02-07 18:09:22 +00:00
Clifford Yapp b754366a59 Start decomposing the creo-brl.cpp file into topic specific files. The idea will be to enable functionality gradually in stages.
svn:revision:69400
svn:branch:trunk
svn:account:starseeker
2017-02-07 17:19:36 +00:00
Nicholas Reed 4fd7d4d443 add draw mode combobox
svn:revision:69399
svn:branch:trunk
svn:account:n_reed
2017-02-07 02:23:38 +00:00
Clifford Yapp 4b9853b45f Next problem is in assemblies - got a crasher in here somewhere.
svn:revision:69398
svn:branch:trunk
svn:account:starseeker
2017-02-06 21:52:06 +00:00
Clifford Yapp 978e47be9a Have rtweight's loading of .density file use BU_DIR_SEPARATOR define.
svn:revision:69397
svn:branch:trunk
svn:account:starseeker
2017-02-06 16:31:28 +00:00
Clifford Yapp 4fcda6abac Use a slight variation on the CMake recommended approach to an uninstall command. Untested.
svn:revision:69396
svn:branch:trunk
svn:account:starseeker
2017-02-02 23:10:52 +00:00
Clifford Yapp 7f1b047bc9 Consolidate DAT file templates, add more sanity checking and make a convenience UNINSTALL target.
svn:revision:69395
svn:branch:trunk
svn:account:starseeker
2017-02-02 22:02:43 +00:00
Clifford Yapp 77fe8f7226 First successful geometry generation, although the brlcad_names memory freeing issue in particular needs to be addressed. Probably need to turn off other dialog activations, but I can't disable *all* of them or I get no dialog - more testing is indicated. Also need to confirm units are right, and check other API updates/changes.
svn:revision:69394
svn:branch:trunk
svn:account:starseeker
2017-02-02 20:40:28 +00:00
Clifford Yapp 3fe1736547 Use the new vars in the templates
svn:revision:69393
svn:branch:trunk
svn:account:starseeker
2017-02-02 19:38:58 +00:00
Clifford Yapp b751594789 In principle we don't need this now, and history has it if we need to revert back.
svn:revision:69392
svn:branch:trunk
svn:account:starseeker
2017-02-02 19:34:18 +00:00
Clifford Yapp 3484bfa101 Make a stab at winnowing down the build and linker flags.
svn:revision:69391
svn:branch:trunk
svn:account:starseeker
2017-02-02 19:33:16 +00:00
Christopher Sean Morrison 1c4bbbbbfa avoid spreading ged_results unnecessarily
svn:revision:69390
svn:branch:trunk
svn:account:brlcad
2017-02-02 17:52:13 +00:00
Christopher Sean Morrison 9feb059365 clear results before printing (this should happen higher)
svn:revision:69389
svn:branch:trunk
svn:account:brlcad
2017-02-02 17:49:38 +00:00
Clifford Yapp 2c49ec1feb fixes
svn:revision:69388
svn:branch:trunk
svn:account:starseeker
2017-02-02 16:48:05 +00:00
Clifford Yapp 9102d07a69 Let the user/dev know if required dlls aren't in place and what the consequences will be, since CREO doesn't tell us anything useful in this situation.
svn:revision:69387
svn:branch:trunk
svn:account:starseeker
2017-02-02 16:36:07 +00:00
Clifford Yapp 5232c667a8 Check the parametric.psf file, if it exists, for the necessary settings to load a plugin without requiring the unlock step. Warn if it looks like the file is not configured for loading protoolkit when CREO is started.
svn:revision:69386
svn:branch:trunk
svn:account:starseeker
2017-02-02 16:24:44 +00:00
Clifford Yapp 8f17b31b10 Tweaks
svn:revision:69385
svn:branch:trunk
svn:account:starseeker
2017-02-02 15:53:58 +00:00
Clifford Yapp c5bbd203a1 Validate that the CREO layout we think we are utilizing for this plugin actually exists on disk.
svn:revision:69384
svn:branch:trunk
svn:account:starseeker
2017-02-02 15:48:22 +00:00
Clifford Yapp a78671a135 Copy paste error
svn:revision:69383
svn:branch:trunk
svn:account:starseeker
2017-02-02 14:47:41 +00:00
Clifford Yapp abe0658361 Set up the BRL-CAD and CREO paths in such a way that they can be set easily from the CMake GUI, and don't proceed with configure until we have valid paths.
svn:revision:69382
svn:branch:trunk
svn:account:starseeker
2017-02-02 14:45:37 +00:00
Clifford Yapp ea424cb021 Get things building - seems to load, but no debugging info present yet...
svn:revision:69381
svn:branch:trunk
svn:account:starseeker
2017-02-02 01:06:16 +00:00
Clifford Yapp 1fa7bb01c6 Now that it's clear how critical having the BRL-CAD dlls in place is (in the same directory with the plugin dll isn't enough, although that will work for the exe version) see if we can use a regular CMake build rather than the nmake trick. Untested as yet.
svn:revision:69380
svn:branch:trunk
svn:account:starseeker
2017-02-01 22:37:29 +00:00
Clifford Yapp 82a0116da6 Add debugging .dat file to run plugin in exe mode
svn:revision:69379
svn:branch:trunk
svn:account:starseeker
2017-02-01 14:40:32 +00:00
Jonathan Engbert f9c29f4b87 fix
svn:revision:69378
svn:branch:trunk
svn:account:ejno
2017-01-31 03:00:04 +00:00
Clifford Yapp 9866687e0d Add the other resource files to the CREO build, tweak strings (CREO, not Pro/E).
svn:revision:69377
svn:branch:trunk
svn:account:starseeker
2017-01-30 14:47:47 +00:00
Clifford Yapp 8eb5d09dee have bio.h
svn:revision:69376
svn:branch:trunk
svn:account:starseeker
2017-01-27 21:01:00 +00:00
Clifford Yapp 7adcc1fa5e Since this will be an "overlay" install, skip the toplevel directory."
svn:revision:69375
svn:branch:trunk
svn:account:starseeker
2017-01-27 20:14:55 +00:00
Clifford Yapp 77e1b6a6ea Rework CMake logic with an eye towards placing files where the Pro/E instructions indicate they will need to go.
svn:revision:69374
svn:branch:trunk
svn:account:starseeker
2017-01-27 19:57:09 +00:00
Clifford Yapp 8279521c0f bu_strcmp, not strcmp
svn:revision:69373
svn:branch:trunk
svn:account:starseeker
2017-01-27 15:58:32 +00:00
Clifford Yapp 98f1b7a9d8 See if we can use a SOURCE file propery for this...
svn:revision:69372
svn:branch:trunk
svn:account:starseeker
2017-01-26 23:16:15 +00:00
Clifford Yapp 8745c39e34 the ext directory is a bit annoying - see if a better approach is practical.
svn:revision:69371
svn:branch:trunk
svn:account:starseeker
2017-01-26 23:00:33 +00:00
Jonathan Engbert 2a1984de0d update comment
svn:revision:69370
svn:branch:trunk
svn:account:ejno
2017-01-26 22:21:03 +00:00
Jonathan Engbert 0afeba2016 add comment describing TemporaryRegionHandle
svn:revision:69369
svn:branch:trunk
svn:account:ejno
2017-01-26 19:54:32 +00:00
Jonathan Engbert 30375a393e add documentation comments
svn:revision:69368
svn:branch:trunk
svn:account:ejno
2017-01-26 19:28:50 +00:00
Jonathan Engbert 606ecff32b add a manpage for simulate
svn:revision:69367
svn:branch:trunk
svn:account:ejno
2017-01-26 19:19:54 +00:00
Jonathan Engbert aae153bb4b entirely remove the "region" attribute
svn:revision:69366
svn:branch:trunk
svn:account:ejno
2017-01-26 16:49:21 +00:00
Jonathan Engbert 4cd05158f4 print the error description if a simulation fails in the unit test
svn:revision:69365
svn:branch:trunk
svn:account:ejno
2017-01-26 16:01:05 +00:00
Jonathan Engbert 06f0911fe8 scale contact point markers
svn:revision:69364
svn:branch:trunk
svn:account:ejno
2017-01-26 15:46:09 +00:00
Jonathan Engbert c347e446c7 implement the wiki tutorial as a simulate unit test
svn:revision:69363
svn:branch:trunk
svn:account:ejno
2017-01-26 15:24:01 +00:00
Jonathan Engbert 45ff8bd51f don't scale the contact lines
svn:revision:69362
svn:branch:trunk
svn:account:ejno
2017-01-26 14:42:43 +00:00
Jonathan Engbert 6cbafdcb9c set region flags in the Region class so that RtInstance::get_overlaps() doesn't need to reset them
svn:revision:69361
svn:branch:trunk
svn:account:ejno
2017-01-26 14:37:40 +00:00
Clifford Yapp e28173f978 Add all the updated Pro/E plugin code back in, with minor tweaks. This code, with the present build logic and the BRL-CAD dlls where CREO can find them, loads successfully. Conversion is untested, and probably not working yet - some of the original Pro/Develop APIs were switched out with Pro/Toolkit replacements.
svn:revision:69360
svn:branch:trunk
svn:account:starseeker
2017-01-26 02:10:25 +00:00
Clifford Yapp c858863409 Add headers, and add a note that if BRL-CAD dlls are not located where CREO can find them, the plugin will fail to load without any useful error message.
svn:revision:69359
svn:branch:trunk
svn:account:starseeker
2017-01-26 01:42:18 +00:00
Jonathan Engbert 2cbcea61ea report with bu_bomb() for fatal errors rather than using exceptions
svn:revision:69358
svn:branch:trunk
svn:account:ejno
2017-01-25 22:38:31 +00:00
Jonathan Engbert e2f87421e0 fix
svn:revision:69357
svn:branch:trunk
svn:account:ejno
2017-01-25 22:28:49 +00:00
Jonathan Engbert 0078cf07ad update test
svn:revision:69356
svn:branch:trunk
svn:account:ejno
2017-01-25 22:18:57 +00:00
Jonathan Engbert 348346ad0b generate repeatable (non-randomized) ray directions when motionless objects are overlapping; use an attribute to specify that primitives below a combination should be regarded as one region
svn:revision:69355
svn:branch:trunk
svn:account:ejno
2017-01-25 22:03:25 +00:00
Clifford Yapp 3fc2a97f95 Enable building the exe version of the plugin.
svn:revision:69354
svn:branch:trunk
svn:account:starseeker
2017-01-25 16:39:10 +00:00
Jonathan Engbert f2a19c7fb9 refactoring and error/sanity checking
svn:revision:69353
svn:branch:trunk
svn:account:ejno
2017-01-24 21:31:13 +00:00
Clifford Yapp 77e7880651 Turn on some more code that doesn't trip up the plugin load, add a README to collect some notes, remove the old nmake file.
svn:revision:69352
svn:branch:trunk
svn:account:starseeker
2017-01-24 19:30:38 +00:00
Clifford Yapp 2d2b22ba9e Start trying to ease in logic from the old converter.
svn:revision:69351
svn:branch:trunk
svn:account:starseeker
2017-01-24 17:50:15 +00:00
Jonathan Engbert 7be56367d6 specify gravity in the unit test
svn:revision:69350
svn:branch:trunk
svn:account:ejno
2017-01-24 15:44:27 +00:00
Jonathan Engbert dbeb6ece89 add a command option for specifying debug options; allow specification of the gravity vector
svn:revision:69349
svn:branch:trunk
svn:account:ejno
2017-01-24 15:36:17 +00:00
Jonathan Engbert 8957edadbd fix prototype; update comment
svn:revision:69348
svn:branch:trunk
svn:account:ejno
2017-01-24 14:02:09 +00:00
Nicholas Reed f41d1fcb1a mark sync revision merged
svn:revision:69347
svn:branch:trunk
svn:account:n_reed
2017-01-23 21:10:18 +00:00
Nicholas Reed 57f26f32ab sync r69290 through r69344 changes from trunk
svn:revision:69346
svn:branch:brep-debug
svn:account:n_reed
2017-01-23 21:07:52 +00:00
Clifford Yapp 0ed447d545 Pop up a Hello world dialog, generate a .dat file
svn:revision:69345
svn:branch:trunk
svn:account:starseeker
2017-01-23 21:07:38 +00:00
Clifford Yapp 4898c4aae4 Set up to generate CPack output.
svn:revision:69344
svn:branch:trunk
svn:account:starseeker
2017-01-20 21:47:12 +00:00
Clifford Yapp af80976d99 Add a convenience target for unlocking the plugin dll.
svn:revision:69343
svn:branch:trunk
svn:account:starseeker
2017-01-20 21:06:09 +00:00
Clifford Yapp 3d33caaa5a See if we can use a CMake launched nmake to generate the dll. If this will work, we can still leverage CPack and friends for installers.
svn:revision:69342
svn:branch:trunk
svn:account:starseeker
2017-01-20 20:50:34 +00:00
Jonathan Engbert c50df1ec40 check reference count on all parents in the path
svn:revision:69341
svn:branch:trunk
svn:account:ejno
2017-01-19 18:35:01 +00:00
Jonathan Engbert a64b6eeef0 add debug flag; create arb8 primitives in btIDebugDraw::drawAabb()
svn:revision:69340
svn:branch:trunk
svn:account:ejno
2017-01-19 16:04:35 +00:00
Jonathan Engbert ea39f2bcd1 fix
svn:revision:69339
svn:branch:trunk
svn:account:ejno
2017-01-19 15:23:43 +00:00
Jonathan Engbert 449024747e only build the simulate tests if we have bullet
svn:revision:69338
svn:branch:trunk
svn:account:ejno
2017-01-19 15:15:18 +00:00
Nicholas Reed ba560f664d change usage to support specifying objects to check
svn:revision:69337
svn:branch:trunk
svn:account:n_reed
2017-01-19 00:29:42 +00:00
Jonathan Engbert cc4675c63b clarify return value
svn:revision:69336
svn:branch:trunk
svn:account:ejno
2017-01-19 00:18:00 +00:00
Jonathan Engbert bcad0850e6 attempt to update attribute before updating the directory flags
svn:revision:69335
svn:branch:trunk
svn:account:ejno
2017-01-19 00:11:18 +00:00
Jonathan Engbert acff433f26 initial implementation of a unit test for the simulate command
svn:revision:69334
svn:branch:trunk
svn:account:ejno
2017-01-19 00:02:44 +00:00
Jonathan Engbert 993daee0ed use better parameters for physics stepping; associate the hits with their corresponding rigid bodies
svn:revision:69333
svn:branch:trunk
svn:account:ejno
2017-01-19 00:00:15 +00:00
Jonathan Engbert 8eb8af6010 update the directory entry when making a combination into a region
svn:revision:69332
svn:branch:trunk
svn:account:ejno
2017-01-18 23:57:38 +00:00
Nicholas Reed 033f037658 I think typically we want to use path binaries
svn:revision:69331
svn:branch:trunk
svn:account:n_reed
2017-01-18 23:29:28 +00:00
Clifford Yapp 7d2fcf0731 Tweaks.
svn:revision:69330
svn:branch:trunk
svn:account:starseeker
2017-01-17 23:36:03 +00:00
Clifford Yapp 646dbcabb7 This doesn't do anything yet (on the contrary, it will hang CREO) but checkpointing anyway. This does successfully compile and load as a plugin while presenting itself as a C++ file. Going with the nmake build file for now since I haven't yet demonstrated a successful (i.e. runnable) CMake build of a plugin and I can't tell yet whether the extra flags CMake is adding are part of the problem. Mostly I want CMake for the easy installer generation, but we'll see - it may not be worth it. Apparently all user messages are handled via content loaded from text files, so from the get-go there will need to be some notion of data file management...
svn:revision:69329
svn:branch:trunk
svn:account:starseeker
2017-01-17 23:30:10 +00:00
Christopher Sean Morrison 789754daf6 quell off_t to int warning on freebsd
svn:revision:69328
svn:branch:trunk
svn:account:brlcad
2017-01-16 05:31:57 +00:00
Clifford Yapp 54ae2bc458 need cmath here with gcc 4.8.4
svn:revision:69327
svn:branch:trunk
svn:account:starseeker
2017-01-15 17:21:03 +00:00
Jonathan Engbert 783255a8ef revise handling of member transformations for motion states; add a btIDebugDraw interface for output to brlcad databases; dynamically select ray grid tolerances (Bullet distance tolerances and physics step parameters should also be tuned); update the database at each btMotionState change, and create an rt_i at each iteration for each pair of primitives used in the collision algorithm
svn:revision:69326
svn:branch:trunk
svn:account:ejno
2017-01-14 21:58:23 +00:00
Jonathan Engbert 923d31b758 revise handling of member transformations for motion states; add a btIDebugDraw interface for output to brlcad databases; dynamically select ray grid tolerances (Bullet distance tolerances and physics step parameters should also be tuned); update the database at each btMotionState change, and create an rt_i at each iteration for each pair of primitives used in the collision algorithm (preliminary file move commit) 2017-01-14 21:58:23 +00:00
Jonathan Engbert cf8fd98631 make constructors explicit
svn:revision:69325
svn:branch:trunk
svn:account:ejno
2017-01-14 21:42:44 +00:00
Jonathan Engbert d9d912d24b use RT_DOT_TOL for the dot product comparisons
svn:revision:69324
svn:branch:trunk
svn:account:ejno
2017-01-14 21:34:38 +00:00
Jonathan Engbert f9f0ed9e85 add include dependencies
svn:revision:69323
svn:branch:trunk
svn:account:ejno
2017-01-14 21:33:45 +00:00
Christopher Sean Morrison 3c6ef8827f dsp now more gracefully handles a dsp referencing a bogus data object. fixed observed crash.
svn:revision:69322
svn:branch:trunk
svn:account:brlcad
2017-01-11 08:18:56 +00:00
Christopher Sean Morrison 1533e70b62 fix an observed crash when you create a dsp with a binunif data object that does not match what is expected. previously was assuming 16-bit unsigned int data and would simply crash when the type or size didn't match. now checks and reports accordingly.
svn:revision:69321
svn:branch:trunk
svn:account:brlcad
2017-01-11 08:15:20 +00:00
Christopher Sean Morrison 8faf237b71 consolidate and order the IDs, noticed JOINT is in error. removed as there is no usage found.
svn:revision:69320
svn:branch:trunk
svn:account:brlcad
2017-01-11 07:46:11 +00:00
Christopher Sean Morrison 1fdcdf29ea document the missing functab indicies
svn:revision:69319
svn:branch:trunk
svn:account:brlcad
2017-01-11 07:44:55 +00:00
Christopher Sean Morrison 4b2663b66e nix extra space
svn:revision:69318
svn:branch:trunk
svn:account:brlcad
2017-01-11 06:16:34 +00:00
Christopher Sean Morrison 5d348643fe fix the binunif type name
svn:revision:69317
svn:branch:trunk
svn:account:brlcad
2017-01-11 06:16:03 +00:00
Clifford Yapp fde5a1492a First checkpoint on CREO3 converter work.
svn:revision:69316
svn:branch:trunk
svn:account:starseeker
2017-01-10 21:31:51 +00:00
Clifford Yapp e898b09bc7 distcheck caught a missing common.h
svn:revision:69315
svn:branch:trunk
svn:account:starseeker
2017-01-10 18:22:40 +00:00
Clifford Yapp a2c9cc9637 need pinttypes.h here too
svn:revision:69314
svn:branch:trunk
svn:account:starseeker
2017-01-10 18:22:03 +00:00
Clifford Yapp 6102ad143e ignore pinttypes.h, since merging it with pstdint.h didn't work.
svn:revision:69313
svn:branch:trunk
svn:account:starseeker
2017-01-10 18:11:25 +00:00
Clifford Yapp bbbb0afabe distcheck fixes
svn:revision:69312
svn:branch:trunk
svn:account:starseeker
2017-01-09 16:22:42 +00:00
Christopher Sean Morrison cfa1e5176c credit GCI contributor sagarwal with special thanks for code spelling fixes
svn:revision:69311
svn:branch:trunk
svn:account:brlcad
2017-01-09 02:30:56 +00:00
Christopher Sean Morrison a0060953b5 apply a spelling fix patch from sagarwal (gci task instance 6263166436638720)
svn:revision:69310
svn:branch:trunk
svn:account:brlcad
2017-01-09 02:29:25 +00:00
Clifford Yapp d89f2d23d9 Fix PDF generation
svn:revision:69308
svn:branch:trunk
svn:account:starseeker
2017-01-06 22:27:29 +00:00
Clifford Yapp 210f7a38b3 Stray install line
svn:revision:69307
svn:branch:trunk
svn:account:starseeker
2017-01-05 22:22:07 +00:00
Clifford Yapp 838e7d24d1 Whoops, forgot to commit the bn_test.c.in file.
svn:revision:69306
svn:branch:trunk
svn:account:starseeker
2017-01-05 20:50:24 +00:00
Clifford Yapp ed169f5257 Consolidate libbn tests as well. Note in passing that the poly* tests needs some consolidation - lot of duplicate code there.
svn:revision:69305
svn:branch:trunk
svn:account:starseeker
2017-01-05 17:54:01 +00:00
Clifford Yapp 47b60d2a8c Try out a trick for consolidating most of the libbu unit test binaries into one - should eliminate about 20 build targets, if it works. The idea is to leave each individual C file as-is and rename main, to allow for easy switching back to a different approach if this doesn't work out (and/or allow for easy stand-alone testing if needed.)
svn:revision:69304
svn:branch:trunk
svn:account:starseeker
2017-01-05 17:18:50 +00:00
Clifford Yapp 1d6d0ed31f add unit test
svn:revision:69303
svn:branch:trunk
svn:account:starseeker
2017-01-05 15:59:05 +00:00
Clifford Yapp 903535e4e0 If we have no number to increment in the input name, append a suffix number.
svn:revision:69302
svn:branch:trunk
svn:account:starseeker
2017-01-05 15:38:19 +00:00
Clifford Yapp fe043fb950 tweak namegen, add some unit tests.
svn:revision:69301
svn:branch:trunk
svn:account:starseeker
2017-01-04 20:15:40 +00:00
Christopher Sean Morrison b7c00eeda7 latest clang notices that there's no check on the number of roots being returned, so we conceivably will exceed the array subscript bounds on the hit_type[j] = hit_type[j+1] circa line 845 if the root solver goes nuts. we know tgc's equation should return <= 4 roots, but nothing code-wise required it before now. build failure reported by GCI participant AntonL (task instance 6571976497823744).
svn:revision:69300
svn:branch:trunk
svn:account:brlcad
2017-01-04 07:16:29 +00:00
Clifford Yapp db117e4454 Add a rmats and regdef to the deprecated list - missed in first pass.
svn:revision:69299
svn:branch:trunk
svn:account:starseeker
2017-01-04 01:31:02 +00:00
Clifford Yapp 5286eb0592 correct comment line
svn:revision:69298
svn:branch:trunk
svn:account:starseeker
2017-01-03 22:58:36 +00:00
Clifford Yapp aadc8750ba tweaks
svn:revision:69297
svn:branch:trunk
svn:account:starseeker
2017-01-03 22:44:37 +00:00
Clifford Yapp 22d3eae5d0 make warning message one line
svn:revision:69296
svn:branch:trunk
svn:account:starseeker
2017-01-03 22:38:30 +00:00
Clifford Yapp 1dd92fecd9 Vastly simplify the build logic for style checking, by just running astyle report mode on the input files directly.
svn:revision:69295
svn:branch:trunk
svn:account:starseeker
2017-01-03 21:03:43 +00:00
Clifford Yapp d801478d89 Don't report unchanged files and stop formatting if we find a change with astyle -report option.
svn:revision:69294
svn:branch:trunk
svn:account:starseeker
2017-01-03 21:02:11 +00:00
Christopher Sean Morrison 8b2a406242 apply another patch from Michal Hanus (GCI) that eliminates unreachable code
svn:revision:69293
svn:branch:trunk
svn:account:brlcad
2016-12-30 04:31:39 +00:00
Christopher Sean Morrison 7eb0348ef5 credit Tianyue Gao with his dead code elimination gci patch
svn:revision:69292
svn:branch:trunk
svn:account:brlcad
2016-12-28 17:35:37 +00:00
Christopher Sean Morrison de77e4fe3d apply gci patch from Tianyue Gao that eliminates a slew of dead code and unused vars.
svn:revision:69291
svn:branch:trunk
svn:account:brlcad
2016-12-28 17:34:40 +00:00
Nicholas Reed b1f1b8f09e mark sync revision as merged
svn:revision:69290
svn:branch:trunk
svn:account:n_reed
2016-12-22 20:56:44 +00:00
Nicholas Reed 97db0fb5a1 sync r69207 through r69288 changes from trunk
svn:revision:69289
svn:branch:brep-debug
svn:account:n_reed
2016-12-22 20:41:14 +00:00
Nicholas Reed c79337c925 fix dom2dox cmake vars
svn:revision:69288
svn:branch:trunk
svn:account:n_reed
2016-12-22 19:42:15 +00:00
Christopher Sean Morrison dfb44227b6 can't win ... rt -s20 -F image.pix doesn't write out the right size
svn:revision:69287
svn:branch:trunk
svn:account:brlcad
2016-12-22 16:47:42 +00:00
Christopher Sean Morrison dfe8922e4e background to a file is not working
svn:revision:69286
svn:branch:trunk
svn:account:brlcad
2016-12-22 16:01:52 +00:00
Clifford Yapp a2d3ea0c12 Apply patch #453 from Cezar to fix a build issue.
svn:revision:69285
svn:branch:trunk
svn:account:starseeker
2016-12-18 19:07:58 +00:00
Clifford Yapp 7f78792a01 copy paste error
svn:revision:69284
svn:branch:trunk
svn:account:starseeker
2016-12-18 05:56:50 +00:00
Clifford Yapp 19d30f013c set but unused error
svn:revision:69283
svn:branch:trunk
svn:account:starseeker
2016-12-17 01:50:51 +00:00
Clifford Yapp 70c088a21a Add patch #452 from Cezar fixing build with VS 2015
svn:revision:69282
svn:branch:trunk
svn:account:starseeker
2016-12-17 01:41:26 +00:00
Clifford Yapp a640eb19eb Quick and dirty option for astyle to report how many files changed without actually doing the file writes. Should be able to use this to significantly simplifiy the style validation build logic.
svn:revision:69281
svn:branch:trunk
svn:account:starseeker
2016-12-16 23:01:27 +00:00
Clifford Yapp b1f5571ae6 put uce-dirent.h in ext subdir.
svn:revision:69280
svn:branch:trunk
svn:account:starseeker
2016-12-16 22:33:37 +00:00
Clifford Yapp 6f558bb778 Looking over the old astyle validation work, we need a way to skip integrated third party sources. Do some experimenting with libbu.
svn:revision:69279
svn:branch:trunk
svn:account:starseeker
2016-12-16 22:16:03 +00:00
Clifford Yapp 9853c99968 doesn't default to zero; based on string val
svn:revision:69278
svn:branch:trunk
svn:account:starseeker
2016-12-16 20:33:55 +00:00
Clifford Yapp eac055f3ec rather than rolling over count (almost never what we actually want), use width specification as a minimum.
svn:revision:69277
svn:branch:trunk
svn:account:starseeker
2016-12-16 20:24:39 +00:00
Clifford Yapp b42bc6a002 Go for simpler functionality in namegen.
svn:revision:69276
svn:branch:trunk
svn:account:starseeker
2016-12-16 20:09:08 +00:00
Clifford Yapp a8ba954b0f include pinttypes.h
svn:revision:69275
svn:branch:trunk
svn:account:starseeker
2016-12-16 15:57:50 +00:00
Clifford Yapp 879b7d7aec Fixes for Visual Studio 2012. Instead of adding the replacement inttypes.h logic to pstdint.h, to handle 2012 we create an equivalent "pinttypes.h" file which we can include even if we don't need pstdint.h. Also need to define strtoll.
svn:revision:69274
svn:branch:trunk
svn:account:starseeker
2016-12-16 15:26:45 +00:00
Clifford Yapp abb036f3c4 Add missing commands to the MGED deprecation list.
svn:revision:69273
svn:branch:trunk
svn:account:starseeker
2016-12-15 15:10:42 +00:00
Christopher Sean Morrison e2ed6976f7 move the va_start/va_end calls closer to where they are needed
svn:revision:69272
svn:branch:trunk
svn:account:brlcad
2016-12-14 23:48:24 +00:00
Christopher Sean Morrison 446c4b2681 add missing va_end() which *must* follow va_start/va_copy per the standard. probably not a major issue here since the next thing we do is bomb, but could avoiding crashing on bomb shutdown.
svn:revision:69271
svn:branch:trunk
svn:account:brlcad
2016-12-14 23:47:12 +00:00
Christopher Sean Morrison 675edeaab5 remove extraneous va_end(), which is undefined behavior when not preceded by va_copy() or va_start().
svn:revision:69270
svn:branch:trunk
svn:account:brlcad
2016-12-14 23:45:19 +00:00
Robert Parker e7d87c478c This fixes breakage of the draw command's transparency option. This is visible in archer and potentially anything that uses libged for drawing.
svn:revision:69269
svn:branch:trunk
svn:account:bob1961
2016-12-14 20:49:03 +00:00
Clifford Yapp 80d0a01492 Fix build.
svn:revision:69268
svn:branch:trunk
svn:account:starseeker
2016-12-13 14:41:12 +00:00
Christopher Sean Morrison 3bf8d0ae12 cut down on the I/O printing if we're timing a small database
svn:revision:69267
svn:branch:trunk
svn:account:brlcad
2016-12-13 07:47:22 +00:00
Christopher Sean Morrison a57827f714 stub a simple timer tool that measures doing things to a .g file. run without args for usage. intended to help optimize the db I/O layer for faster processing of larger models (e.g., see if we can make some specific paths like db_lookups faster).
svn:revision:69266
svn:branch:trunk
svn:account:brlcad
2016-12-13 07:40:04 +00:00
Christopher Sean Morrison cd6cafffb6 fix corrupt filename in optimized compiles, init to default.
svn:revision:69265
svn:branch:trunk
svn:account:brlcad
2016-12-13 06:56:05 +00:00
Christopher Sean Morrison 2f97acdb18 if there's not a brlcad_config.h header, external apps can get a redefinition warning if either of these actually are defined. check it.
svn:revision:69264
svn:branch:trunk
svn:account:brlcad
2016-12-13 06:09:52 +00:00
Christopher Sean Morrison 73c61905ac document the issue with bu_gettime() not returning a wallclock timestamp on Windows. we could make it do that by calling GetSystemTimePreciseAsFileTime() instead of querying the performance timer, but warrants some testing.
svn:revision:69263
svn:branch:trunk
svn:account:brlcad
2016-12-12 19:08:30 +00:00
Christopher Sean Morrison 9c6ac3d1ec comment cleanup
svn:revision:69262
svn:branch:trunk
svn:account:brlcad
2016-12-12 19:03:35 +00:00
Clifford Yapp a1851c442f Clarify options vs search plans, add an example showing verbose output.
svn:revision:69261
svn:branch:trunk
svn:account:starseeker
2016-12-09 16:03:24 +00:00
Clifford Yapp d72f511fc3 Add regex include dir to CMakeLists.txt for libbu
svn:revision:69258
svn:branch:trunk
svn:account:starseeker
2016-12-08 16:57:56 +00:00
Nicholas Reed baf368be0e Document xpush bug fix. The corrected bug may have also been responsible for the reported error of extra objects getting killed leaving dangling references, but someone has to dig up a model that showed this issue and test it to be sure (see r33579 commit message). But since the r69256 bug caused traversal of the directory free-list, it's possible that garbage data in some items caused additional directories to be deleted. This explanation depends on unlucky state in the free-list. Specifically, reading the garbage dp member of the garbage (struct object_use) d_use_hd member would have to produce a valid directory address. It's probably more likely that it would be a bogus address triggering a crash, an issue Cliff addressed in r49524 when he switched the free-list allocation to use calloc; a change that might have to be reverted to reproduce the dangling reference issue.
svn:revision:69257
svn:branch:trunk
svn:account:n_reed
2016-12-08 00:25:36 +00:00
Nicholas Reed 63bdf52e9b Fix an xpush bug. We must stash dp->d_forw when iterating through entries in a dbip hash bin, because if dp is passed to db_dirdelete, dp->d_forw will be redirected to the next item of the directory free-list. Failure to do this meant that xpush was iterating over the directory free-list every time it deleted an original object. In most cases this was merely a waste of time. However, in the case where another original object scheduled for deletion happened to hash to the same bin, the latter object was skipped, leaving a stray top-level object in the database on return from xpush.
svn:revision:69256
svn:branch:trunk
svn:account:n_reed
2016-12-07 23:26:11 +00:00
Clifford Yapp baa4d9e2b5 Technically, this is user visible since Windows users trying to read benchmark page in 7.26.0 will run into it (which is where I noticted it, actually.) Fix man page viewing so the benchmark script in the install directory isn't accidently used instead of the real man page.
svn:revision:69255
svn:branch:trunk
svn:account:starseeker
2016-12-05 17:52:43 +00:00
Clifford Yapp ca2f35ff00 Don't want to be treating man page inputs as exact file specifications yet - that can cause some problems.
svn:revision:69254
svn:branch:trunk
svn:account:starseeker
2016-12-05 17:50:30 +00:00
Clifford Yapp e8d0276163 Checkpoint some work on a name generator function intended for use in things like dbconcat, xpush, clone, etc. that must generate names. Not ready yet.
svn:revision:69253
svn:branch:trunk
svn:account:starseeker
2016-12-05 17:02:53 +00:00
Christopher Sean Morrison eb9751342d this isn't limited to rtgl, but put it there anyways as it pertains to ray tracing. coherent high performance lock-free thread safe queue. useful in a lot of places, but on-demand ray dispatching comes to mind first.
svn:revision:69252
svn:branch:trunk
svn:account:brlcad
2016-12-05 04:12:14 +00:00
Christopher Sean Morrison 1422cf8e60 the transparent window issue is apparently cross-platform, indicating some bug introduced into the ogl or fb code
svn:revision:69251
svn:branch:trunk
svn:account:brlcad
2016-12-04 22:50:43 +00:00
Clifford Yapp f127bfeec9 preferred not to have sh on this file... need some other solution for brlman problem on Windows...
svn:revision:69250
svn:branch:trunk
svn:account:starseeker
2016-12-03 01:35:53 +00:00
Clifford Yapp f639e3ce42 Keep the .sh extension on the benchmark script
svn:revision:69249
svn:branch:trunk
svn:account:starseeker
2016-12-02 21:54:39 +00:00
Clifford Yapp b571d34d2f fix debian build
svn:revision:69248
svn:branch:trunk
svn:account:starseeker
2016-12-02 13:10:59 +00:00
Clifford Yapp 858c38a1b5 Check for null sketch_name
svn:revision:69247
svn:branch:trunk
svn:account:starseeker
2016-12-02 01:27:34 +00:00
Clifford Yapp d84fae05c8 initialize V1 and V2
svn:revision:69246
svn:branch:trunk
svn:account:starseeker
2016-12-02 01:26:22 +00:00
Clifford Yapp 8655c00d48 Fix Windows build.
svn:revision:69245
svn:branch:trunk
svn:account:starseeker
2016-11-29 22:24:58 +00:00
Clifford Yapp e6cb5b8887 remove the inner timer.
svn:revision:69244
svn:branch:trunk
svn:account:starseeker
2016-11-29 20:00:16 +00:00
Clifford Yapp 99a3c9ca5e Consolidate the child logic into a single function - for these purposes, it doesn't matter whether the 'children' are from a comb or one of the primitives that reference other objects. Simplifys the main loop. Primitive specific logic other than comb untested, but trying a similar trick to get the child name with a minimal cracking of the extern.
svn:revision:69243
svn:branch:trunk
svn:account:starseeker
2016-11-29 19:42:55 +00:00
Christopher Sean Morrison a044f8f7cb superfluous
svn:revision:69242
svn:branch:trunk
svn:account:brlcad
2016-11-29 11:47:44 +00:00
Clifford Yapp 530f2531ca If we've alredy done the extern lookup for the attributes, reuse it rather than looking it up again for the comb.
svn:revision:69241
svn:branch:trunk
svn:account:starseeker
2016-11-29 02:24:02 +00:00
Clifford Yapp e34b574302 half the remaining time is spent in _db5_get_attributes_size, most of that in db_get_external_reuse
svn:revision:69240
svn:branch:trunk
svn:account:starseeker
2016-11-29 02:02:29 +00:00
Clifford Yapp ce1c79fdf4 So far in testing sorting doesn't pay for itself even with large models.
svn:revision:69239
svn:branch:trunk
svn:account:starseeker
2016-11-29 01:51:44 +00:00
Clifford Yapp 7aa8a3586b Attributes are always checked regardless - don't need to check separately for solids
svn:revision:69238
svn:branch:trunk
svn:account:starseeker
2016-11-29 01:50:55 +00:00
Clifford Yapp 8196cd0ad8 Go ahead and check in the commented out test code comparing the two means of getting children of a comb in case we need to try this again later. This special purpose version, although fast, can not replace the comb internal tree walking version since routines processing the internal form assume the comb is already fully cracked and populated in standard memory structures. This general approach could be highly instructive when it comes to optimizing the db_search logic however, since that operates at the directory pointer level. Worth thinking about.
svn:revision:69237
svn:branch:trunk
svn:account:starseeker
2016-11-29 01:42:18 +00:00
Clifford Yapp 8c9ffceffd The problem was actually with _db_comb_get_children. Because the array was built backwards, a failed db_lookup was adding a terminating RT_DIR_NULL earlier in the array. Number of leaves is not the same as number of valid leaves. Check ahead of time and handle the invalid case so we get what is expected.
svn:revision:69236
svn:branch:trunk
svn:account:starseeker
2016-11-29 01:37:18 +00:00
Clifford Yapp 40ab48205d Add lz4 to src/other and enable use in librt cache. Untested on Windows
svn:revision:69235
svn:branch:trunk
svn:account:starseeker
2016-11-29 01:02:04 +00:00
Clifford Yapp b8b2c24048 Make the mi vars local to match the main import function
svn:revision:69234
svn:branch:trunk
svn:account:starseeker
2016-11-29 00:55:18 +00:00
Clifford Yapp dad19eb33c correct spelling of project name
svn:revision:69233
svn:branch:trunk
svn:account:starseeker
2016-11-29 00:36:19 +00:00
Clifford Yapp fe844cafcf Attempt a specialized cracking of the comb for the sole purpose of getting the children names for db_lookup. Causes a difference in reported size (larger), so need to compare to existing db_comb_children output and see what the difference is.
svn:revision:69232
svn:branch:trunk
svn:account:starseeker
2016-11-28 22:40:09 +00:00
Clifford Yapp 7a63b75138 don't need a separate array for this - just use the local data pointer.
svn:revision:69231
svn:branch:trunk
svn:account:starseeker
2016-11-28 21:15:40 +00:00
Clifford Yapp f081974c4b don't build temporary testing src file
svn:revision:69230
svn:branch:trunk
svn:account:starseeker
2016-11-28 21:14:21 +00:00
Clifford Yapp dae0e0ca5c Go with a vector instead of a set for collecting, since we're using flags in the structs to tell if we've already counted a given node.
svn:revision:69229
svn:branch:trunk
svn:account:starseeker
2016-11-28 20:52:03 +00:00
Clifford Yapp 6f4c29e932 fix typos
svn:revision:69228
svn:branch:trunk
svn:account:starseeker
2016-11-28 20:20:58 +00:00
Clifford Yapp f56a8fcef9 Rather than introduce lots of additional info into the directory struct, see if we can get away with just a u_data pointer on which to hang our hat. This is a double edged sword - we don't save information from earlier work on the .g to speed up subsequent actions, but we also don't encode state into the directory pointer that can be (potentially) invalidated by edits to other objects. See if this can be made 'fast enough.'
svn:revision:69227
svn:branch:trunk
svn:account:starseeker
2016-11-28 19:24:51 +00:00
Clifford Yapp 30b59cfcfa Redo db_comb_children to allow for the possibility of an externally allocated array.
svn:revision:69226
svn:branch:trunk
svn:account:starseeker
2016-11-28 16:05:26 +00:00
Clifford Yapp a851634f77 C++ comment in C file
svn:revision:69225
svn:branch:trunk
svn:account:starseeker
2016-11-28 15:53:00 +00:00
Clifford Yapp 708835947c List the lowest hanging fruit from the command review for deprecation. There will be quite a few more as consolidation strategies are worked out - this is just the first set.
svn:revision:69224
svn:branch:trunk
svn:account:starseeker
2016-11-28 15:29:12 +00:00
Clifford Yapp 87a9b72338 Update name of db 'find' command to dbfind in man page.
svn:revision:69223
svn:branch:trunk
svn:account:starseeker
2016-11-28 15:23:53 +00:00
Clifford Yapp 4af1d313ab rename find.xml
svn:revision:69222
svn:branch:trunk
svn:account:starseeker
2016-11-28 15:21:58 +00:00
Christopher Sean Morrison 85bc3b8ddb document cliff's tcl/tk-to-cmake paper which heavily references BRL-CAD's conversion to cmake.
svn:revision:69221
svn:branch:trunk
svn:account:brlcad
2016-11-28 02:02:34 +00:00
Christopher Sean Morrison 885c3ec03d leaving off until there are proper build tests, but lz4 reduces the compression and decompression times significantly over zlib. seeing cputime cut in half, wallclock on highly parallel prep reduced by 10%.
svn:revision:69220
svn:branch:trunk
svn:account:brlcad
2016-11-27 09:37:22 +00:00
Christopher Sean Morrison 921bfc1bdb annotate all the NULL callbacks so it's easier to tell which objects are lacking particular callbacks
svn:revision:69219
svn:branch:trunk
svn:account:brlcad
2016-11-27 07:04:13 +00:00
Christopher Sean Morrison e4a43d892f if the object doesn't have an import func, proceed as if it had succeeded
svn:revision:69218
svn:branch:trunk
svn:account:brlcad
2016-11-27 05:52:40 +00:00
Clifford Yapp 1c0aa296fb start stubbing in bits of a proposed generic pseudo/quasi random number sequence API.
svn:revision:69217
svn:branch:trunk
svn:account:starseeker
2016-11-23 21:09:23 +00:00
Clifford Yapp c823e6fbb5 Make some rework/TODO notes for this function
svn:revision:69216
svn:branch:trunk
svn:account:starseeker
2016-11-23 15:26:19 +00:00
Clifford Yapp 51d3c8c513 start working on a design for a generic API that can subsume the various possibilities for number sequence generation.
svn:revision:69215
svn:branch:trunk
svn:account:starseeker
2016-11-23 15:16:30 +00:00
Clifford Yapp a1028d7244 note other paper
svn:revision:69214
svn:branch:trunk
svn:account:starseeker
2016-11-22 18:11:38 +00:00
Clifford Yapp 4d39b7e474 shelve Sobol unless/until it looks like it will be useful.
svn:revision:69213
svn:branch:trunk
svn:account:starseeker
2016-11-22 18:09:20 +00:00
Clifford Yapp f00c94f39a Preserve for the moment the code that uses sobol sequences instead of pseudorandom numbers. Sobol will not work by itself - we need a scramble to avoid patterning.
svn:revision:69212
svn:branch:trunk
svn:account:starseeker
2016-11-22 17:55:29 +00:00
Clifford Yapp 8baddf9b5b simplify slightly
svn:revision:69211
svn:branch:trunk
svn:account:starseeker
2016-11-22 17:52:03 +00:00
Clifford Yapp 6cf450611e clarify
svn:revision:69210
svn:branch:trunk
svn:account:starseeker
2016-11-22 00:07:22 +00:00
Clifford Yapp f48ec76b85 Add some comments. bn_sobol_urand doesn't need to be public - we need it only for the test app.
svn:revision:69209
svn:branch:trunk
svn:account:starseeker
2016-11-22 00:05:39 +00:00
Nicholas Reed 5470201564 mark sync revision as merged
svn:revision:69208
svn:branch:trunk
svn:account:n_reed
2016-11-21 23:40:14 +00:00
Clifford Yapp a7df0e3e8a Start setting up to try the Sobol quasi-random number generator by incorporating a libbnified version of Steven Johnson's nlopt imlementation from https://github.com/stevengj/nlopt
svn:revision:69207
svn:branch:trunk
svn:account:starseeker
2016-11-21 23:37:48 +00:00
Nicholas Reed c89cba0828 sync r68145 through r69204 changes from trunk
svn:revision:69206
svn:branch:brep-debug
svn:account:n_reed
2016-11-21 23:37:02 +00:00
Christopher Sean Morrison fe772cbbcd need a windows compilation flag, peeps getting runtime startup failure.
svn:revision:69204
svn:branch:trunk
svn:account:brlcad
2016-11-13 20:25:25 +00:00
Clifford Yapp a9b7f460c3 Make a note that we're not done yet with this function.
svn:revision:69203
svn:branch:trunk
svn:account:starseeker
2016-11-11 01:48:50 +00:00
Clifford Yapp 60c5461e5b S is already set in the while loop.
svn:revision:69202
svn:branch:trunk
svn:account:starseeker
2016-11-10 17:18:43 +00:00
Clifford Yapp b1e273d122 eliminate unnecessary check
svn:revision:69201
svn:branch:trunk
svn:account:starseeker
2016-11-10 17:17:29 +00:00
Clifford Yapp 74cd340d6b Implement the Marsaglia routine for point-on-sphere generation.
svn:revision:69200
svn:branch:trunk
svn:account:starseeker
2016-11-10 17:11:26 +00:00
Clifford Yapp 910b0a5146 randmt.c is LGPL licensed, but it looks like the original license from the code authors is BSD. Also, they've got a newer SFMT implementation which they claim is roughly twice as fast and has a better equidistribution property. May be time to revisit this, but need other opinions before proceeding.
svn:revision:69199
svn:branch:trunk
svn:account:starseeker
2016-11-09 15:31:37 +00:00
Clifford Yapp b61679bd05 Josh reported a crash - looks like the original size_t quellage and negative number casting in r42073 isn't happy on Windows. Try separating the state out into its own int variable and leaving the face number as a size_t.
svn:revision:69198
svn:branch:trunk
svn:account:starseeker
2016-11-08 20:28:15 +00:00
Clifford Yapp e0effcae01 Go with instance/deinstanced rather than keep/xpush, so the flags aren't tied to commands.
svn:revision:69197
svn:branch:trunk
svn:account:starseeker
2016-11-07 19:07:27 +00:00
Clifford Yapp 8e1d23ae02 If we find out ahead of time what the largest bu_external ext_buf size is, we can allocate one bu_external with that large buffer size and re-use that same external object for *all* db get operations. Cuts about half a second off of the execution time for a large db5_size calculation test, although we end up in effect creating local versions of several of the db_io functions that take a user supplied bu_external buffer object.
svn:revision:69196
svn:branch:trunk
svn:account:starseeker
2016-11-07 16:15:11 +00:00
Clifford Yapp 4d7b647e61 make a local array of the directory pointers we are interested in.
svn:revision:69195
svn:branch:trunk
svn:account:starseeker
2016-11-04 19:31:57 +00:00
Clifford Yapp c17012914b Add timing
svn:revision:69194
svn:branch:trunk
svn:account:starseeker
2016-11-04 19:24:27 +00:00
Clifford Yapp 1a9a5262aa -C empty wasn't working on Linux - put in quotes if we're not in a multiconfig situation.
svn:revision:69193
svn:branch:trunk
svn:account:starseeker
2016-11-04 18:00:55 +00:00
Clifford Yapp 71f1d6c862 Try to avoid explicit avs strlen calculations.
svn:revision:69192
svn:branch:trunk
svn:account:starseeker
2016-11-04 17:20:34 +00:00
Clifford Yapp 2729d8239d use bu_strcmp
svn:revision:69191
svn:branch:trunk
svn:account:starseeker
2016-11-04 14:20:34 +00:00
Clifford Yapp 1374511ff1 Take a stab at an iterative size calculation mechanism. Been staring at it too long - it seems to work, but I'm not sure, and its design needs review.
svn:revision:69190
svn:branch:trunk
svn:account:starseeker
2016-11-03 21:15:47 +00:00
Christopher Sean Morrison 935ee20632 encountered another crash in the ars code, attempting to print a tri_specific. turns out, the st_specific is set to a bot_specific now, so all of the tri_specific callbacks are moot, many unused. kill em. move rt_hitsort while we're at it to an internal function since it was primitive-specific api (despite the name, it lived up in the ars code and is used by several primitives.) now it's part of primitive_util.
svn:revision:69189
svn:branch:trunk
svn:account:brlcad
2016-11-03 06:45:12 +00:00
Christopher Sean Morrison 68879a8bd8 on review, the ORCA_Comp hash key setting looks to be just fine. cleanup for readability and fix the size to exactly 4 bytes instead of variable.
svn:revision:69188
svn:branch:trunk
svn:account:brlcad
2016-11-03 06:41:36 +00:00
Christopher Sean Morrison 2ca8827d6b note we should be using get/put here
svn:revision:69187
svn:branch:trunk
svn:account:brlcad
2016-11-03 06:39:59 +00:00
Clifford Yapp 14ae19c2b1 Move the nmg tests to libnmg
svn:revision:69186
svn:branch:trunk
svn:account:starseeker
2016-11-02 14:58:10 +00:00
Clifford Yapp 3568326ed1 Tell Doxygen libnmg is now separate.
svn:revision:69185
svn:branch:trunk
svn:account:starseeker
2016-10-31 20:24:21 +00:00
Clifford Yapp 2d14379254 fix var name
svn:revision:69184
svn:branch:trunk
svn:account:starseeker
2016-10-31 19:32:50 +00:00
Clifford Yapp 3b6813d76a Commit some example code showing how to use db_comb_children.
svn:revision:69183
svn:branch:trunk
svn:account:starseeker
2016-10-31 19:30:52 +00:00
Clifford Yapp f0a31a295e Add the ability to optionally return boolean operations and matricies associated with the array of directory pointers in the given comb.
svn:revision:69182
svn:branch:trunk
svn:account:starseeker
2016-10-31 16:43:04 +00:00
Clifford Yapp a776fef561 don't have time to do it tonight, but make a note that the function should optionally return more than just the directory pointer array.
svn:revision:69181
svn:branch:trunk
svn:account:starseeker
2016-10-31 02:13:43 +00:00
Clifford Yapp 8aad01ecb2 Enough. Implement a librt function call to return the set of directory objects that are the immediate children of a comb. I've been using a db_search call to work around the lack of this function, but that makes no sense when one of the possible places for using this information is db_search (and really a search setup/teardown is a lot of overhead for this anyway.)
svn:revision:69180
svn:branch:trunk
svn:account:starseeker
2016-10-30 23:49:04 +00:00
Clifford Yapp 9439d6dea7 tweak
svn:revision:69179
svn:branch:trunk
svn:account:starseeker
2016-10-30 18:00:45 +00:00
Clifford Yapp e1e396af88 Use bu_vls instead of system snprintf - see if this works any better on Windows...
svn:revision:69178
svn:branch:trunk
svn:account:starseeker
2016-10-30 17:55:31 +00:00
Clifford Yapp b280756992 use bu_log and bu_sscanf to quell C90 warnings about zu
svn:revision:69177
svn:branch:trunk
svn:account:starseeker
2016-10-29 00:58:05 +00:00
Clifford Yapp a4f939f58c A number of the BSD test cases aren't happy on Windows. Comment them out for now - eventually will need to step through some of the failing cases to see what's going on...
svn:revision:69176
svn:branch:trunk
svn:account:starseeker
2016-10-28 21:35:46 +00:00
Clifford Yapp f3ac94f589 Actually no reason that the ls -S sorting by size flag needs to be limited to the long printing option - make it work on all of them.
svn:revision:69175
svn:branch:trunk
svn:account:starseeker
2016-10-28 20:00:39 +00:00
Clifford Yapp f6d9c7de6d Added -H option to ls command to report sizes in human readable form when printing with the -l option.
svn:revision:69174
svn:branch:trunk
svn:account:starseeker
2016-10-28 19:40:10 +00:00
Clifford Yapp 64b29a9427 Quick test on Windows works - added -S option to ls command to sort based on size when printing extra information using the -l option.
svn:revision:69173
svn:branch:trunk
svn:account:starseeker
2016-10-28 19:39:10 +00:00
Clifford Yapp df6865b15b Teach ls two new tricks - sort by size, and print sizes in human readable form. Untested on Windows.
svn:revision:69172
svn:branch:trunk
svn:account:starseeker
2016-10-28 19:06:51 +00:00
Clifford Yapp 5d1ce5bca0 Start experimenting to see if we can easily and performantly do a recursive size calculation that doesn't double count. Untested as yet.
svn:revision:69171
svn:branch:trunk
svn:account:starseeker
2016-10-28 18:44:48 +00:00
Clifford Yapp 24956e6512 db5.h needs bu/parse.h
svn:revision:69170
svn:branch:trunk
svn:account:starseeker
2016-10-28 13:54:47 +00:00
Clifford Yapp 26bb68aa33 take a stab at a db5_size function that can be either recursive or non-recursive. It's not yet correct on recursive since it shouldn't double-count objects used in multiple places in the tree...
svn:revision:69169
svn:branch:trunk
svn:account:starseeker
2016-10-28 00:49:57 +00:00
Nicholas Reed 6563193362 sync r69050 through r69153 changes from trunk
svn:revision:69168
svn:branch:brep-debug
svn:account:n_reed
2016-10-27 23:45:58 +00:00
Christopher Sean Morrison d45d64b3c0 at quick glance, the hash add for ORCA_Comp looks like it might be passing the wrong size. need to check it.
svn:revision:69167
svn:branch:trunk
svn:account:brlcad
2016-10-26 18:31:12 +00:00
Christopher Sean Morrison 291b954a13 BU_FLSTR changed to CPP_FILELINE
svn:revision:69166
svn:branch:trunk
svn:account:brlcad
2016-10-26 15:14:04 +00:00
Christopher Sean Morrison 3634b72757 this looks wrong. even if the key value is NULL, we need to add it so that iterating over entries results in the same count of entries as was added to the hash. knowing what keys have been stored is just as important as knowing what values.
svn:revision:69165
svn:branch:trunk
svn:account:brlcad
2016-10-26 14:59:15 +00:00
Clifford Yapp 4e12f5adbf OSX assigns rpaths individually, not as a common colon separated string.
svn:revision:69164
svn:branch:trunk
svn:account:starseeker
2016-10-24 01:30:45 +00:00
Clifford Yapp 033ce8d9db Try using @loader_path on OSX to play the same role does on other Unix platforms.
svn:revision:69163
svn:branch:trunk
svn:account:starseeker
2016-10-23 22:05:07 +00:00
Clifford Yapp c42bce651c The adaptagrams based code isn't active - disable the check unless/until we need it.
svn:revision:69162
svn:branch:trunk
svn:account:starseeker
2016-10-22 17:25:07 +00:00
Clifford Yapp 70e0ff8406 Make a note to reexamine how we're finding Qt5
svn:revision:69161
svn:branch:trunk
svn:account:starseeker
2016-10-21 21:18:48 +00:00
Clifford Yapp 963687e179 wfobj too builds shared and static libraries including generated files. Make a stab at separating them.
svn:revision:69160
svn:branch:trunk
svn:account:starseeker
2016-10-20 22:52:47 +00:00
Clifford Yapp 48ec6c5640 sentinel file/target didn't do it - dust off the SO_SRCS/STATIC_SRCS feature.
svn:revision:69159
svn:branch:trunk
svn:account:starseeker
2016-10-20 22:24:46 +00:00
Clifford Yapp df2bffd8fd libfft and libfft static both need the same generated files, which is triggering rebuilding in MSVC on a second pass build. See if a sentinel guard and custom target are enough to avoid the problem.
svn:revision:69158
svn:branch:trunk
svn:account:starseeker
2016-10-20 20:00:39 +00:00
Clifford Yapp ab4f78c467 Windows MSVC build of perplex wasn't reaching steady state until the second build command (which also triggered a rebuild of everything using it, like step-g. Do separate generations for the bootstrap and primary re2c builds.
svn:revision:69157
svn:branch:trunk
svn:account:starseeker
2016-10-20 19:58:11 +00:00
Clifford Yapp 91f71ee29e Set LEMON_EXECUTABLE_TARGET variable if we are building lemon.
svn:revision:69156
svn:branch:trunk
svn:account:starseeker
2016-10-20 16:34:58 +00:00
Clifford Yapp 3c73782e85 oh, right - need to set CONFIG var
svn:revision:69155
svn:branch:trunk
svn:account:starseeker
2016-10-20 14:08:47 +00:00
Clifford Yapp eefa217de5 like unit, check ctest commands need -C on some platforms.
svn:revision:69154
svn:branch:trunk
svn:account:starseeker
2016-10-20 13:51:53 +00:00
Clifford Yapp 91a60d7be4 make sure distclean removes the summary file too
svn:revision:69153
svn:branch:trunk
svn:account:starseeker
2016-10-20 13:28:03 +00:00
Clifford Yapp 7690355964 fix clean rule
svn:revision:69152
svn:branch:trunk
svn:account:starseeker
2016-10-20 13:15:10 +00:00
Christopher Sean Morrison 659fe67805 there's no reason to free the internal pointer during prep (and this causes bad things to happen like crashing during LIBRT_DEBUG=20 which prints the ip after prep). apparently been this way with ARS objects since 1991.
svn:revision:69151
svn:branch:trunk
svn:account:brlcad
2016-10-20 03:01:46 +00:00
Christopher Sean Morrison fb9f0bbca1 don't bomb if a primitive fails to prep. it just gets reported and skipped.
svn:revision:69150
svn:branch:trunk
svn:account:brlcad
2016-10-20 02:39:43 +00:00
Clifford Yapp 35fd5b9f8e Don't grab all the processors on the system just for launching tests.
svn:revision:69149
svn:branch:trunk
svn:account:starseeker
2016-10-20 01:22:10 +00:00
Clifford Yapp 02459762f3 rename icv test files
svn:revision:69148
svn:branch:trunk
svn:account:starseeker
2016-10-19 20:30:05 +00:00
Clifford Yapp 16a33e51ca some conversion capabilities are exposed only through gcv - enable install.
svn:revision:69147
svn:branch:trunk
svn:account:starseeker
2016-10-19 20:28:59 +00:00
Clifford Yapp a9c5d163bf Do some renaming with the librt tests
svn:revision:69146
svn:branch:trunk
svn:account:starseeker
2016-10-19 20:12:29 +00:00
Clifford Yapp 1939dad5be flag bg test executables as such
svn:revision:69145
svn:branch:trunk
svn:account:starseeker
2016-10-19 19:59:54 +00:00
Clifford Yapp 4309ec846a rename libbn tests
svn:revision:69144
svn:branch:trunk
svn:account:starseeker
2016-10-19 19:58:30 +00:00
Clifford Yapp 6f7df65328 fix dirname.c sed expression in repository.h
svn:revision:69143
svn:branch:trunk
svn:account:starseeker
2016-10-19 19:52:35 +00:00
Clifford Yapp daf765b9ac At some point need to come back and digest tester into the more standard setup - good intro project for a beginning student.
svn:revision:69142
svn:branch:trunk
svn:account:starseeker
2016-10-19 19:50:08 +00:00
Clifford Yapp f56427b883 benchmark isn't really a unit test - it's more of an integration test.
svn:revision:69141
svn:branch:trunk
svn:account:starseeker
2016-10-19 19:46:56 +00:00
Clifford Yapp 061e606f5c Rename for less verbosity
svn:revision:69140
svn:branch:trunk
svn:account:starseeker
2016-10-19 19:33:42 +00:00
Clifford Yapp 43c1344042 See if we can categorize things a bit better for executables.
svn:revision:69137
svn:branch:trunk
svn:account:starseeker
2016-10-19 18:54:56 +00:00
Clifford Yapp 3581eacffb In addition to z and t, MSVC also doesn't support 'j'
svn:revision:69136
svn:branch:trunk
svn:account:starseeker
2016-10-19 16:25:54 +00:00
Clifford Yapp a05284c81f Switch a few of the tests that use formatting strings vls supporst but MSVC doesn't over to a string based correctness test.
svn:revision:69135
svn:branch:trunk
svn:account:starseeker
2016-10-19 16:02:45 +00:00
Clifford Yapp ddf6c99266 Cute. When running the test program straight up, the file path for Case 7 uses back slashes. When run by ctest, it gets forward slashes instead. Check for both cases.
svn:revision:69134
svn:branch:trunk
svn:account:starseeker
2016-10-19 14:56:47 +00:00
Clifford Yapp 36f946efda If we've got a Windows style path with a drive letter + colon prefix (i.e. C:) the check for directory separator in the first char isn't going to work. Also check for a colon in second char + directory separator in the third char.
svn:revision:69133
svn:branch:trunk
svn:account:starseeker
2016-10-19 14:26:42 +00:00
Clifford Yapp 2e75377547 Stepping through the bitv test, this is the point in MSVC debugging where the display of the string starts to look strange. If we extend the copy length one past the vls_len in bu_vls_prepend, we pick up the terminating null and the test completes successfully.
svn:revision:69132
svn:branch:trunk
svn:account:starseeker
2016-10-19 14:09:01 +00:00
Christopher Sean Morrison b3d8fad2d2 setting a nul char isn't right, almost certainly masking a real bug that was caught. bu_vls_putc() and other vls printing functions already manually nul-terminate and bu_vls_cstr() is defined to guarantee only returning a nul-terminated string. so any vls string lacking 0-termination would be a bug.
svn:revision:69131
svn:branch:trunk
svn:account:brlcad
2016-10-19 04:35:41 +00:00
Christopher Sean Morrison d9d612dbb8 remove the debug printing
svn:revision:69130
svn:branch:trunk
svn:account:brlcad
2016-10-19 04:25:11 +00:00
Clifford Yapp 91b477a5b7 include the header
svn:revision:69129
svn:branch:trunk
svn:account:starseeker
2016-10-19 01:11:43 +00:00
Clifford Yapp 1104c91857 Set errno
svn:revision:69128
svn:branch:trunk
svn:account:starseeker
2016-10-19 01:07:12 +00:00
Clifford Yapp 5ece48e67b Make a few changes, guided by Microsoft's _set_invalid_parameter_handler example in their documentation. This suppresses the assertion successfully.
svn:revision:69127
svn:branch:trunk
svn:account:starseeker
2016-10-19 01:06:13 +00:00
Clifford Yapp 7d77151d3c Untested as yet, but attempt to disable a too aggressive check by MSVC that prevents close operations from working on already closed files. The cleanup function in libbu is *designed* to ensure that temp files are closed, and as a consequence is very likely to be doing redundant close operations if the users already cleaned up. Approach identifed by Sean.
svn:revision:69126
svn:branch:trunk
svn:account:starseeker
2016-10-19 00:50:39 +00:00
Clifford Yapp 3db3a81d24 Add a refinement from Sean to avoid the temp file routine from generating identical names when called within a one second window. This was (one of) the issues we were encountering on Windows with the bn_vlist tests.
svn:revision:69125
svn:branch:trunk
svn:account:starseeker
2016-10-19 00:41:17 +00:00
Clifford Yapp 802aadc975 Fix argc check.
svn:revision:69124
svn:branch:trunk
svn:account:starseeker
2016-10-18 22:14:28 +00:00
Clifford Yapp 4df1826777 Only do the bu_log if we have enough args.
svn:revision:69123
svn:branch:trunk
svn:account:starseeker
2016-10-18 22:09:42 +00:00
Clifford Yapp 2d14ddf60c Windows apparently needs an explicit null char at the end of the random string.
svn:revision:69122
svn:branch:trunk
svn:account:starseeker
2016-10-18 22:00:58 +00:00
Clifford Yapp 41495c5288 After discussion, we should have enough time to shake down the libnmg move before release and we don't want it to linger to the point where we have to make more changes to make it work. Break out libnmg.
svn:revision:69121
svn:branch:trunk
svn:account:starseeker
2016-10-18 19:57:50 +00:00
Christopher Sean Morrison d89424d499 two uninitialized var cases caught by the compiler. need more familiar eyes on this.
svn:revision:69120
svn:branch:trunk
svn:account:brlcad
2016-10-18 16:24:15 +00:00
Christopher Sean Morrison 78a7a2d31f with the change from rt_in_rpp to ray_in_rpp now in the same compilation unit, the compiler notices that we only conditionally set r_min/r_max in ray_in_rpp. init to zero so we don't try to print random garbage when the ray misses.
svn:revision:69119
svn:branch:trunk
svn:account:brlcad
2016-10-18 16:16:00 +00:00
Clifford Yapp bc3075c8fd I don't think we actually need to hit the file system for this - try a STREQUAL test.
svn:revision:69118
svn:branch:trunk
svn:account:starseeker
2016-10-18 15:59:33 +00:00
Clifford Yapp 4b5991ae55 stray debugging line
svn:revision:69117
svn:branch:trunk
svn:account:starseeker
2016-10-18 15:35:48 +00:00
Clifford Yapp 6ea420392f Needs testing, but don't use line return chars when checking for differences - they are platform specific and don't indicate an actual change in the file contents we care about.
svn:revision:69116
svn:branch:trunk
svn:account:starseeker
2016-10-18 15:34:57 +00:00
Clifford Yapp 6da87be8ff set but unused error
svn:revision:69115
svn:branch:trunk
svn:account:starseeker
2016-10-18 12:03:32 +00:00
Nicholas Reed 8e14d0f516 mark sync revisions as merged
svn:revision:69114
svn:branch:trunk
svn:account:n_reed
2016-10-18 05:29:45 +00:00
Christopher Sean Morrison 437b042a6e improved the loadview command to do a better job setting the eye point and perspective angle. it also no longer halts when it looks like we're trying to load a viewscript from a different database. might zap objects unnecessarily but that's a TODO for later. at a min, should load the view properly regardless.
svn:revision:69113
svn:branch:trunk
svn:account:brlcad
2016-10-18 03:43:38 +00:00
Christopher Sean Morrison 014bc4e28d not a rewrite, but loadview is working better again. still has incredibly primitive parsing code with lots of bad assumptions, but a rewrite begs for tests and ain't nobody got time for that right now.
svn:revision:69112
svn:branch:trunk
svn:account:brlcad
2016-10-18 03:38:37 +00:00
Christopher Sean Morrison e103f7bcb9 handle proper setting of the eye point by actually hooking on the end; command like we said we would, and just call the eye/perspective commands so we do the right thing. also no longer halt if the database seems different. just issue a warning and keep loading the view like we were asked.
svn:revision:69111
svn:branch:trunk
svn:account:brlcad
2016-10-18 03:35:17 +00:00
Christopher Sean Morrison 77afc02c02 add a view script for the aet database which sets up a simple view of the diagram with perspective enabled.
svn:revision:69110
svn:branch:trunk
svn:account:brlcad
2016-10-18 03:08:17 +00:00
Nicholas Reed b41311f529 sync r68947 through r69049 changes from trunk
svn:revision:69109
svn:branch:brep-debug
svn:account:n_reed
2016-10-18 02:29:54 +00:00
Christopher Sean Morrison b23c1aaf76 eyepoint and perspective are the big things loadview is missing
svn:revision:69108
svn:branch:trunk
svn:account:brlcad
2016-10-18 02:04:14 +00:00
Christopher Sean Morrison 540b17dda9 loadview is busted
svn:revision:69107
svn:branch:trunk
svn:account:brlcad
2016-10-18 01:47:34 +00:00
Christopher Sean Morrison c38fdcbd71 more needed for archer to behave with 'phong' shaders
svn:revision:69106
svn:branch:trunk
svn:account:brlcad
2016-10-18 01:40:32 +00:00
Christopher Sean Morrison 31eb52ac6d make sure archer recognizes phong too.
svn:revision:69105
svn:branch:trunk
svn:account:brlcad
2016-10-18 01:32:58 +00:00
Christopher Sean Morrison 919ddca586 restore support for shaders named 'phong', which was the actual stored name in pre-v6 days before getting renamed to plastic. this makes them synonymous in the mged combination editor and avoids a nasty tclscript error about shader_params not being set.
svn:revision:69104
svn:branch:trunk
svn:account:brlcad
2016-10-18 01:32:37 +00:00
Clifford Yapp e564455daf Convince CMake we really do want the STACK option set...
svn:revision:69103
svn:branch:trunk
svn:account:starseeker
2016-10-17 21:35:32 +00:00
Clifford Yapp 5f8e6da58b Apparently older CMake versions added a stack size bump to MSVC, and that turns out to be handy for some of our users. Newer CMake no longer does this automatically - add it in our own logic for newer CMake.
svn:revision:69102
svn:branch:trunk
svn:account:starseeker
2016-10-17 18:55:27 +00:00
Clifford Yapp 0b7fc5e4ea Add a note to look into representational work post-Weiler to see if it makes sense to incorporate some of the new ideas.
svn:revision:69101
svn:branch:trunk
svn:account:starseeker
2016-10-17 16:02:48 +00:00
Clifford Yapp 75dd5a290d Use Sean's trick from r68797 to make a semicolon required to help automatic code formatters and editors, replace another instance of the pattern.
svn:revision:69100
svn:branch:trunk
svn:account:starseeker
2016-10-17 14:23:02 +00:00
Clifford Yapp 74b9f87f06 the zero thickness bbox test is common to multiple code bits in librt - refactor into a macro
svn:revision:69099
svn:branch:trunk
svn:account:starseeker
2016-10-17 14:16:49 +00:00
Clifford Yapp 3560f6bba5 Investigating why a zero thickness surface mode BoT didn't raytrace, it turns out that a block of logic used by the standard prep to ensure the bbox thickness never ended up zero in any dimension was never added to the bottie prep routines.
svn:revision:69098
svn:branch:trunk
svn:account:starseeker
2016-10-17 14:03:16 +00:00
Clifford Yapp 49db5052a5 set but unused
svn:revision:69097
svn:branch:trunk
svn:account:starseeker
2016-10-17 12:06:44 +00:00
Clifford Yapp 2577639c24 sketch uses this - properly declare it.
svn:revision:69096
svn:branch:trunk
svn:account:starseeker
2016-10-16 23:05:40 +00:00
Clifford Yapp 7d6f918a82 another globals.c stray
svn:revision:69095
svn:branch:trunk
svn:account:starseeker
2016-10-16 23:02:00 +00:00
Clifford Yapp 5256ba240b whoops - forgot to move these from globals.c
svn:revision:69094
svn:branch:trunk
svn:account:starseeker
2016-10-16 23:00:09 +00:00
Clifford Yapp 8b002a12bd nmg_stash_model_to_file appears to be used for debugging, but its not viable in a libnmg breakout because it relies heavily on the librt db io routines. if we need this in libnmg, we'll have to come up with a different solution.
svn:revision:69093
svn:branch:trunk
svn:account:starseeker
2016-10-16 22:57:57 +00:00
Clifford Yapp e8c23a132e Yep, not ready -r everse r69091. Windows is revealing some problems that weren't showing up on Linux.
svn:revision:69092
svn:branch:trunk
svn:account:starseeker
2016-10-16 22:48:54 +00:00
Clifford Yapp 3e89c08970 Create an independent libnmg, moving the relevant logic out of librt. This is the culmination of the series of refactorings that have been taking place in librt. This should be reverted if it looks like it will cause any problems at all with 7.26.2 - I'm mostly committing it at this time to more easily test on multiple platforms.
svn:revision:69091
svn:branch:trunk
svn:account:starseeker
2016-10-16 22:14:16 +00:00
Clifford Yapp 1f54b47042 fix regress-repository
svn:revision:69090
svn:branch:trunk
svn:account:starseeker
2016-10-16 21:51:27 +00:00
Clifford Yapp d7192cce20 db_diff.c doesn't appear to need the nmg.h include
svn:revision:69089
svn:branch:trunk
svn:account:starseeker
2016-10-16 21:27:25 +00:00
Clifford Yapp c5a0ee05a5 fix header
svn:revision:69088
svn:branch:trunk
svn:account:starseeker
2016-10-16 21:25:57 +00:00
Clifford Yapp 48d69a586b nurb_brep.cpp is not a candidate file for mergeing into libnmg - rename for clarity.
svn:revision:69087
svn:branch:trunk
svn:account:starseeker
2016-10-16 21:25:10 +00:00
Clifford Yapp de1b39335f remove raytrace.h from the oslo files
svn:revision:69086
svn:branch:trunk
svn:account:starseeker
2016-10-16 21:20:53 +00:00
Clifford Yapp e5698fc47c merge bezier.c into nurb_bezier.c
svn:revision:69085
svn:branch:trunk
svn:account:starseeker
2016-10-16 21:19:25 +00:00
Clifford Yapp 8bf2246ab5 shadowed global. Note - need to check and see if this logic relates to or belongs in a lower lib...
svn:revision:69084
svn:branch:trunk
svn:account:starseeker
2016-10-16 21:12:51 +00:00
Clifford Yapp 76457ed35f bezier functions group logically with the rest of bspline...
svn:revision:69083
svn:branch:trunk
svn:account:starseeker
2016-10-16 21:11:29 +00:00
Clifford Yapp b6fff75695 put oslo files with the rest of the nmg nurbs logic in bspline.
svn:revision:69082
svn:branch:trunk
svn:account:starseeker
2016-10-16 21:06:49 +00:00
Nicholas Reed 5003753e06 sync r68823 through 68945 changes from trunk
svn:revision:69081
svn:branch:brep-debug
svn:account:n_reed
2016-10-16 21:03:29 +00:00
Clifford Yapp 9b74f54c50 merge rt/nurb.h into nmg.h
svn:revision:69080
svn:branch:trunk
svn:account:starseeker
2016-10-16 21:00:53 +00:00
Clifford Yapp d1cc67ce5e looks like we don't actually need raytrace.h in here (and we shouldn't, since librt is supposed to use libbrep not the other way around...)
svn:revision:69079
svn:branch:trunk
svn:account:starseeker
2016-10-16 20:43:55 +00:00
Clifford Yapp 7e6158cddd completely remove rt/nmg.h from nmg_class.c
svn:revision:69078
svn:branch:trunk
svn:account:starseeker
2016-10-16 20:28:05 +00:00
Clifford Yapp 7b22735dc0 Punting slightly by making the nmg and rt versions of structs castable, but this technically breaks the dependency of nmg_rt_isect on rt/nmg.h. More extensive rework to make nmg properly independent of the form of the librt structs will probably involve narrowing the scope of nmg_rt_isect to returning an ordered list of hit points - need to study what the actual requirements of nmg_class are. That logic untangling and rework looks like it will be a singificant effort in its own right; in the meantime this should serve the immediate purpose.
svn:revision:69077
svn:branch:trunk
svn:account:starseeker
2016-10-16 20:06:14 +00:00
Clifford Yapp 06aca5140a We're going to need an adapter layer if we want to separate this - it looks like nmg_isect_ray_model is probably the best point.
svn:revision:69076
svn:branch:trunk
svn:account:starseeker
2016-10-16 15:00:44 +00:00
Clifford Yapp 9304915d14 I doubt this whole re_nmgfree list will survive long term, but in the short term it's coupling nmg to the RTG global. Make it an nmg.h global. Also start roughing out the nessary bits to get the ray intersection test needed by nmg_class to be self contained.
svn:revision:69075
svn:branch:trunk
svn:account:starseeker
2016-10-16 14:28:31 +00:00
Clifford Yapp 26d4026e27 More logic moving and header trimming in preparation for library separation.
svn:revision:69074
svn:branch:trunk
svn:account:starseeker
2016-10-16 13:27:29 +00:00
Clifford Yapp 38d7b00e1c bspline routine needs a concept of curvature.
svn:revision:69073
svn:branch:trunk
svn:account:starseeker
2016-10-15 20:24:06 +00:00
Clifford Yapp f02e27bda5 as near as I can tell, the struct resource parameter is not actually used for anything by any of the bspline nurbs routines. eliminate it to eliminate a use of librt's data structures.
svn:revision:69072
svn:branch:trunk
svn:account:starseeker
2016-10-15 20:18:14 +00:00
Clifford Yapp bfca760c01 push out the rest of the rt/nmg.h includes, except for the problematic nmg_class.c
svn:revision:69071
svn:branch:trunk
svn:account:starseeker
2016-10-15 19:38:17 +00:00
Clifford Yapp fe5885e3cc Start on the next stage of de-entanglement - move things in rt/nmg.h that belong in nmg.h to their new home and remove rt/nmg.h as an include. Looks like it will expose another class of rt dependencies that need to be resolved.
svn:revision:69070
svn:branch:trunk
svn:account:starseeker
2016-10-15 15:42:28 +00:00
Clifford Yapp 32b1013311 Update bu_basename test to use a combination of compatibility wrapper logic and Windows APIs to emulate basename system functionality.
svn:revision:69069
svn:branch:trunk
svn:account:starseeker
2016-10-14 22:05:17 +00:00
Christopher Sean Morrison dc5686dff4 header cleanup, ensure common.h comes before all system headers.
svn:revision:69068
svn:branch:trunk
svn:account:brlcad
2016-10-14 20:56:28 +00:00
Christopher Sean Morrison 1b88a79f8f down to 194
svn:revision:69067
svn:branch:trunk
svn:account:brlcad
2016-10-14 20:56:08 +00:00
Clifford Yapp d7b2663ec7 Add test for _splitpath, which we will need on Windows to do basename testing.
svn:revision:69066
svn:branch:trunk
svn:account:starseeker
2016-10-14 20:02:47 +00:00
Clifford Yapp 5fb2ebf730 Note that there is a Windows system option that offers basename functionality we should use to test this with.
svn:revision:69065
svn:branch:trunk
svn:account:starseeker
2016-10-14 19:52:15 +00:00
Christopher Sean Morrison 032f52b9a3 include the right relative path
svn:revision:69064
svn:branch:trunk
svn:account:brlcad
2016-10-14 19:30:26 +00:00
Christopher Sean Morrison dd6e5577f8 ignore, but list the headers for distcheck
svn:revision:69063
svn:branch:trunk
svn:account:brlcad
2016-10-14 19:29:11 +00:00
Clifford Yapp 21cd01bba3 There's no point in failing the bu_basename tests on a platform without its own basename.
svn:revision:69062
svn:branch:trunk
svn:account:starseeker
2016-10-14 19:26:44 +00:00
Clifford Yapp 2ebd6fdd53 We eventually need to decide how to merge rt_in_rpp and ray_in_rpp - add a comment so that is clear. Needs a bit of design work first so we know what the 'correct' solution will be - libbg, or something else...
svn:revision:69061
svn:branch:trunk
svn:account:starseeker
2016-10-14 15:25:28 +00:00
Clifford Yapp a0e2eba17d Normally this isn't a good idea, but given how embedded rt_in_rpp is in the core shotlining logic we break the nmg/librt coupling here by making an nmg version of this function to minimize any unintended side effects of things like the previous attempt to move rt_in_rpp to libbg. Once libnmg is a separate library we can revisit this, but for now go with the least risk minimal impact solution.
svn:revision:69060
svn:branch:trunk
svn:account:starseeker
2016-10-14 15:05:55 +00:00
Christopher Sean Morrison 44616e212d bit again. remove dead symlinks so removed/renamed files don't mess with the build (e.g., when a tclIndex needs to be regenerated). if it globs but doesn't exist, it's a dead link and useless in the build tree regardless. copies are left to fend for themselves (and don't exhibit the same problems).
svn:revision:69059
svn:branch:trunk
svn:account:brlcad
2016-10-14 14:56:02 +00:00
Clifford Yapp 088767b5e5 Remove the rest of the RT_ADD_VLIST calls from nmg_plot
svn:revision:69058
svn:branch:trunk
svn:account:starseeker
2016-10-14 14:55:51 +00:00
Christopher Sean Morrison 8bb3d3049c don't emit warnings we can't do anything about
svn:revision:69057
svn:branch:trunk
svn:account:brlcad
2016-10-14 13:31:48 +00:00
Christopher Sean Morrison 9c5789e3a7 nmg_m_to_vlist is taking vlfree list too
svn:revision:69056
svn:branch:trunk
svn:account:brlcad
2016-10-14 00:51:27 +00:00
Christopher Sean Morrison 26194e914c nmg_r_to_vlist() apparently needs a vlfree list now. lacking an alternative, passing the global.
svn:revision:69055
svn:branch:trunk
svn:account:brlcad
2016-10-14 00:45:57 +00:00
Clifford Yapp 8db682e26f start pecking away at removing RT_ADD_VLIST from the nmg code.
svn:revision:69054
svn:branch:trunk
svn:account:starseeker
2016-10-14 00:18:03 +00:00
Clifford Yapp 60118bed84 Start backing down the include headers in the nurbs code.
svn:revision:69053
svn:branch:trunk
svn:account:starseeker
2016-10-14 00:05:08 +00:00
Clifford Yapp 03a3c002d6 Add a dialog for obj-g conversion in Archer.
svn:revision:69052
svn:branch:trunk
svn:account:starseeker
2016-10-13 21:11:38 +00:00
Christopher Sean Morrison d27bb6e619 remove the other BU_ASSERT_* macros. bomb log should provide values at this point.
svn:revision:69051
svn:branch:trunk
svn:account:brlcad
2016-10-13 16:55:46 +00:00
Clifford Yapp 05d9454073 typo
svn:revision:69050
svn:branch:trunk
svn:account:starseeker
2016-10-13 15:22:49 +00:00
Clifford Yapp cd7382ca2b another missing include
svn:revision:69049
svn:branch:trunk
svn:account:starseeker
2016-10-13 15:21:12 +00:00
Clifford Yapp d5743ce53a include headers with BU_EXPORT declarations (MSVC isn't happy without this.)
svn:revision:69048
svn:branch:trunk
svn:account:starseeker
2016-10-13 15:19:38 +00:00
Christopher Sean Morrison 3fe26ad1f9 less API is better. consolidate all 7 BU_ASSERT*() macros into just one BU_ASSERT(). the others existed so we could pretty-print their values, but this is not incredibly helpful when we're tearing down the application as a result. with bu_bomb giving a stack trace, the values may end up logged anyways. this converts BU_ASSERT_PTR, BU_ASSERT_LONG, BU_ASSERT_SIZE_T, BU_ASSERT_SSIZE_T, and BU_ASSERT_DOUBLE calls to BU_ASSERT.
svn:revision:69047
svn:branch:trunk
svn:account:brlcad
2016-10-13 15:15:32 +00:00
Christopher Sean Morrison 687a06b213 make sure we capture and conver cases like BU_ASSERT_SIZE_T(3, ==, SOME_MACRO(4, 5)) to BU_ASSERT(3 == SOME_MACRO(4, 5)). bit nuts for minimally impacting, but still a deterministic regex call fitting the definition.
svn:revision:69046
svn:branch:trunk
svn:account:brlcad
2016-10-13 15:10:31 +00:00
Clifford Yapp a24a64b21d Victor found a problem with attr show. There was unsigned math going on in the tab calculations for displaying selected attributes, and a long attribute value length resulted in an attempt to assign a negative value to the unsigned tab length. The result was the vls logic trying work with the resulting garbage value and effectively hanging (may not technically have been an infinite loop, but looks that way to a user and it will eventually wipe out in some other way if it ever did move on.) Rather than do all the special case foo, teach attr_print to handle either printing everything or printing an argv list of attributes. Consolidates the logic and eliminates the problem case.
svn:revision:69045
svn:branch:trunk
svn:account:starseeker
2016-10-13 14:05:01 +00:00
Christopher Sean Morrison 348e0a4609 unhelpful complexity, consolidate the assert macros back to one
svn:revision:69044
svn:branch:trunk
svn:account:brlcad
2016-10-13 13:46:09 +00:00
Christopher Sean Morrison adda3c6a98 example snippet belongs and is still in log.h so remove from here.
svn:revision:69043
svn:branch:trunk
svn:account:brlcad
2016-10-13 12:41:08 +00:00
Christopher Sean Morrison f81f74c16a rename the new bomb.h header to exit.h since they're really a collection of api that pertain to exiting an application.
svn:revision:69042
svn:branch:trunk
svn:account:brlcad
2016-10-13 12:36:54 +00:00
Christopher Sean Morrison 7df6dbd8b5 rename the new bomb.h header to exit.h since they're really a collection of api that pertain to exiting an application. (preliminary file move commit) 2016-10-13 12:36:54 +00:00
Christopher Sean Morrison 8e016c9e60 update the places where we only call bu_bomb/bu_exit and need bomb.h instead of log.h
svn:revision:69041
svn:branch:trunk
svn:account:brlcad
2016-10-13 12:16:50 +00:00
Christopher Sean Morrison 943620d5eb add the new bomb.h and hook.h headers
svn:revision:69040
svn:branch:trunk
svn:account:brlcad
2016-10-13 03:46:21 +00:00
Christopher Sean Morrison 00a7ceeb5e separate the hook and bombing-related functions from log.h into their own headers so we can further group calls topically. retaining includes in log.h to avoid changing callee's just yet.
svn:revision:69039
svn:branch:trunk
svn:account:brlcad
2016-10-13 03:45:04 +00:00
Christopher Sean Morrison 2c625e491d see if we can get away with not using a temporary variable, casting instead. the prior is often a trick to quell stubborn type conversion warnings, but doesn't 'seem' necessary here, not does a quick test demonstrate need.
svn:revision:69038
svn:branch:trunk
svn:account:brlcad
2016-10-13 03:41:47 +00:00
Christopher Sean Morrison 1cd9b344cf make sure we consistently use libbu memory management, remove linux-specific malloc.h include, and looks like memory is not being released (did not fix)
svn:revision:69037
svn:branch:trunk
svn:account:brlcad
2016-10-13 03:14:45 +00:00
Clifford Yapp 35904b1a86 floating point comparison warning
svn:revision:69036
svn:branch:trunk
svn:account:starseeker
2016-10-12 15:50:31 +00:00
Daniel Rossberg df1df1b74a patch https://sourceforge.net/p/brlcad/patches/448/ "Zippering gaps" from Rakshika Bagavathy
implements the heal command for BoTs on mged: heal <bot primitive> <tolerance>
the heal command has still issues and should be considered for testing purposes only, however, it should not interfere with the other BRL-CAD functionality, i.e. it should be safe to commit the patch

svn:revision:69035
svn:branch:trunk
svn:account:d_rossberg
2016-10-12 14:32:21 +00:00
Clifford Yapp dbd451ff6f rt_in_rpp is rather deep in the core raytracing routines... back out the change, need to examine its use in nmg logic more closely to see if this is the right approach to resolving that issue.
svn:revision:69034
svn:branch:trunk
svn:account:starseeker
2016-10-12 11:46:13 +00:00
Clifford Yapp ea02957978 Move rt_in_rpp into libbg, rename.
svn:revision:69033
svn:branch:trunk
svn:account:starseeker
2016-10-12 01:01:44 +00:00
Clifford Yapp bca9d0fab2 back out more headers - exposes some more work to do
svn:revision:69032
svn:branch:trunk
svn:account:starseeker
2016-10-12 00:33:12 +00:00
Clifford Yapp 064b9d30b7 Start (slowly) backing non-nmg rt headers out of nmg files and adding specific needed libbu/libbn includes.
svn:revision:69031
svn:branch:trunk
svn:account:starseeker
2016-10-12 00:09:06 +00:00
Clifford Yapp 3e9e495e60 RTG.NMG_debug -> nmg_debug
svn:revision:69030
svn:branch:trunk
svn:account:starseeker
2016-10-11 23:57:55 +00:00
Clifford Yapp 8b994dbf62 Move more logic that is librt specific into nmg.c
svn:revision:69029
svn:branch:trunk
svn:account:starseeker
2016-10-11 23:30:56 +00:00
Clifford Yapp cf62457dfa woosh - get the rest of the public stuff in rt/nurbs.h renamed.
svn:revision:69028
svn:branch:trunk
svn:account:starseeker
2016-10-11 23:07:50 +00:00
Clifford Yapp cb9707d127 second pass - get the uses in primitives/nmg
svn:revision:69027
svn:branch:trunk
svn:account:starseeker
2016-10-11 21:04:01 +00:00
Clifford Yapp 9c640bfe9b rename some of the old nurbs functions to use the nmg prefix. this covers the ones used by the iges converter.
svn:revision:69026
svn:branch:trunk
svn:account:starseeker
2016-10-11 20:38:19 +00:00
Clifford Yapp 239243511e move a couple of vlist plotting functions to libbn. bn_plot_vlblock probably shouldn't be public API, but it was exposed in librt's public API as rt_plot_vlblock so going with rename for now to be minimally implacting.
svn:revision:69025
svn:branch:trunk
svn:account:starseeker
2016-10-11 20:03:54 +00:00
Clifford Yapp 0519276bba Shift some clearly librt requiring bits into nmg.c
svn:revision:69024
svn:branch:trunk
svn:account:starseeker
2016-10-11 17:54:52 +00:00
Clifford Yapp 55f94e53d3 Make sure src/testing isn't present before starting a distcheck.
svn:revision:69023
svn:branch:trunk
svn:account:starseeker
2016-10-11 17:44:12 +00:00
Clifford Yapp fc5840658e macro->function
svn:revision:69022
svn:branch:trunk
svn:account:starseeker
2016-10-11 17:34:21 +00:00
Clifford Yapp d74b8e34f2 It's as much or more C89 that requires this workaround now, rather than our customizations...
svn:revision:69021
svn:branch:trunk
svn:account:starseeker
2016-10-11 17:31:10 +00:00
Clifford Yapp 58a06e0828 BRLCAD_TARGET_NAME is used in only one place. Also, since we're already requiring 2.8.8 and the need for the file write hack disappeared in 2.8.7, the whole thing simplifies nicely.
svn:revision:69020
svn:branch:trunk
svn:account:starseeker
2016-10-11 17:08:57 +00:00
Clifford Yapp e23cb67bec Convert a couple more macros to functions
svn:revision:69019
svn:branch:trunk
svn:account:starseeker
2016-10-11 16:48:07 +00:00
Clifford Yapp c930962c08 need to start transitioning from macros to functions where we can. This is an easy one.
svn:revision:69018
svn:branch:trunk
svn:account:starseeker
2016-10-11 16:29:26 +00:00
Clifford Yapp 8c6395dd5d The Desktop links to programs should be independent of the Start Menu links - the options allow enabling/disabling them independent of each other. This needs more testing, but a similar refactor in a smaller test case indicates this will work to allow desktop and start menu links to be handled independently.
svn:revision:69017
svn:branch:trunk
svn:account:starseeker
2016-10-11 15:28:35 +00:00
Christopher Sean Morrison 76f18ddad0 AND op on non-pointer type
svn:revision:69016
svn:branch:trunk
svn:account:brlcad
2016-10-11 06:48:41 +00:00
Christopher Sean Morrison 2e99a2c385 badmagic fix highlight an error in here where the second internal magic number is not aligned because it comes after the array allocation and earlier magic. all this extra magic checking is overkill for a basic noise generator.
svn:revision:69015
svn:branch:trunk
svn:account:brlcad
2016-10-11 05:59:38 +00:00
Christopher Sean Morrison f3ef0a96c9 this is better since uintptr_t will hold the whole address and size_t will not necessarily, but still doubting the utility/correctness of the alignment check
svn:revision:69014
svn:branch:trunk
svn:account:brlcad
2016-10-11 03:39:03 +00:00
Christopher Sean Morrison 6ed6675689 this may be wrong in the general case (where magic is not the first struct entry), but it's definitely not right to check sizeof() a type different than what we're casting against. doesn't check all the lower bits whens size_t is smaller than a pointer.
svn:revision:69013
svn:branch:trunk
svn:account:brlcad
2016-10-11 03:37:24 +00:00
Jonathan Engbert 4091a1abe1 check magic in TreeUpdater; syntactic tweaks; fix in progress
svn:revision:69012
svn:branch:trunk
svn:account:ejno
2016-10-11 02:38:23 +00:00
Clifford Yapp 1fcbece11a Hmm. Not getting the icon install - is this needed? If so, something's not right with the NSIS setup...
svn:revision:69011
svn:branch:trunk
svn:account:starseeker
2016-10-09 01:34:28 +00:00
Clifford Yapp a0ba4f24e9 Update the NSIS template with changes from the default CMake template.
svn:revision:69010
svn:branch:trunk
svn:account:starseeker
2016-10-09 00:21:23 +00:00
Clifford Yapp 6c085e8ce4 Try a couple more NSIS tweaks
svn:revision:69009
svn:branch:trunk
svn:account:starseeker
2016-10-08 17:30:51 +00:00
Clifford Yapp 454b319d19 Try to improve the default NSIS behavior for 32 vs. 64 bit builds.
svn:revision:69008
svn:branch:trunk
svn:account:starseeker
2016-10-08 17:16:52 +00:00
Clifford Yapp 54a58f53dc Remove mged.bat file and go with straight-up mged.exe for the icon link. While we're at it, remove the old pre-CMake NSIS logic bits.
svn:revision:69007
svn:branch:trunk
svn:account:starseeker
2016-10-08 16:54:18 +00:00
Clifford Yapp a4a4bc31fc regex based searching wasn't working (looks like it may never have worked properly...) - this gets things running, although it needs quite a bit more testing.
svn:revision:69006
svn:branch:trunk
svn:account:starseeker
2016-10-06 23:53:47 +00:00
Christopher Sean Morrison ef47b4ef87 case 2 is no longer valid as there is no return any more
svn:revision:69005
svn:branch:trunk
svn:account:brlcad
2016-10-06 19:03:34 +00:00
Clifford Yapp 355041c94a fix dm-osgl build
svn:revision:69004
svn:branch:trunk
svn:account:starseeker
2016-10-06 16:50:08 +00:00
Clifford Yapp af55fc9963 spelling
svn:revision:69003
svn:branch:trunk
svn:account:starseeker
2016-10-06 16:09:24 +00:00
Christopher Sean Morrison f261bd60ca document with more specificity, that it's seeing COMMAND that confuses older cmake.
svn:revision:69002
svn:branch:trunk
svn:account:brlcad
2016-10-06 09:57:41 +00:00
Christopher Sean Morrison 73d1071861 older versions of cmake (2.8ish) don't seem to handle empty STREQUAL tests very well. employ an old shell trick.
svn:revision:69001
svn:branch:trunk
svn:account:brlcad
2016-10-06 09:51:55 +00:00
Christopher Sean Morrison fa6c79b7a4 remove the DAL_kills GUI which provides an interface for loading and visualizing MUVES reg_map region map files and .fr final result file data. while it seemed to have much useful functionality, the code is out of date and feature is out of our scope.
svn:revision:69000
svn:branch:trunk
svn:account:brlcad
2016-10-06 03:40:16 +00:00
Christopher Sean Morrison 015b27b516 rewrote the .fr file parser as the modern format has changed since this code was written. seems like some original assumptions or limitations are no longer true (or were never supported) like no aim/fire points in a view or only one aim per view, etc. updates I made lets you manually call the underlying functions (e.g., muves_draw_shot 1234) but more work would be needed to bring this code back to life and that's probably not worthwhile for us to be doing that here. left debugging in because who cares. ;)
svn:revision:68999
svn:branch:trunk
svn:account:brlcad
2016-10-06 03:36:42 +00:00
Christopher Sean Morrison 8b787e4bab remainder of authorship, filename, and revision history removals as they are better tracked by a source code management / revision control system
svn:revision:68995
svn:branch:trunk
svn:account:brlcad
2016-10-05 20:12:42 +00:00
Christopher Sean Morrison 95d477fd75 remove authorship
svn:revision:68994
svn:branch:trunk
svn:account:brlcad
2016-10-05 19:58:51 +00:00
Christopher Sean Morrison 64327f4d79 remove authorship
svn:revision:68993
svn:branch:trunk
svn:account:brlcad
2016-10-05 17:32:53 +00:00
Clifford Yapp 87e25efeb6 protect tests directories with exists tests
svn:revision:68992
svn:branch:trunk
svn:account:starseeker
2016-10-05 14:49:10 +00:00
Clifford Yapp c1286a516a update website for y2038 code
svn:revision:68991
svn:branch:trunk
svn:account:starseeker
2016-10-05 14:29:30 +00:00
Clifford Yapp e5298e9352 use macro for conv subdirs
svn:revision:68990
svn:branch:trunk
svn:account:starseeker
2016-10-05 13:51:56 +00:00
Clifford Yapp 324588396f use root in message
svn:revision:68989
svn:branch:trunk
svn:account:starseeker
2016-10-05 13:42:14 +00:00
Clifford Yapp c971b29950 Check if directory exists before adding, and skip if not found.
svn:revision:68988
svn:branch:trunk
svn:account:starseeker
2016-10-05 13:41:03 +00:00
Clifford Yapp a13edfeb2e Only try testing subdir if we've got the full build enabled
svn:revision:68987
svn:branch:trunk
svn:account:starseeker
2016-10-05 13:33:52 +00:00
Clifford Yapp ec6dbabc2c make sure _MSC_VER is defined before comparing it
svn:revision:68986
svn:branch:trunk
svn:account:starseeker
2016-10-04 19:59:41 +00:00
Clifford Yapp ed0849a236 avoid gcc pragmas with icc
svn:revision:68985
svn:branch:trunk
svn:account:starseeker
2016-10-04 19:48:54 +00:00
Clifford Yapp 4e4c8c5012 double can't hold DBL_MAX*DBL_MAX...
svn:revision:68984
svn:branch:trunk
svn:account:starseeker
2016-10-04 19:40:10 +00:00
Clifford Yapp 5eff120a80 %s for string
svn:revision:68983
svn:branch:trunk
svn:account:starseeker
2016-10-04 14:31:18 +00:00
Clifford Yapp 8ebfc5e5da A somewhat more elaborate clang static analyzer script with more nuanced reporting of what is and is not expected to pass (and reports specific to each library.) In a perfect world this would actually be generated by CMake - the major weakness of this setup is that the target list is static in the file and dosn't automatically update when the build changes. Still, it's a start.
svn:revision:68982
svn:branch:trunk
svn:account:starseeker
2016-10-04 13:33:36 +00:00
Christopher Sean Morrison 7002fc4a69 clean up alignment so they're consistent (and relocatable)
svn:revision:68981
svn:branch:trunk
svn:account:brlcad
2016-10-04 12:48:35 +00:00
Christopher Sean Morrison 34fbdc8fb2 mark bu_badmagic as not returning and document it as such
svn:revision:68980
svn:branch:trunk
svn:account:brlcad
2016-10-04 12:44:12 +00:00
Christopher Sean Morrison cdc0f767c6 make bu_badmagic actually not return, always
svn:revision:68979
svn:branch:trunk
svn:account:brlcad
2016-10-04 12:41:19 +00:00
Christopher Sean Morrison 5a1f348f21 more places we need to initialize errno before we test it.
svn:revision:68978
svn:branch:trunk
svn:account:brlcad
2016-10-04 12:12:16 +00:00
Christopher Sean Morrison 169f038358 few other places we do not properly reset errno before calling a function that potentially sets it (e.g., strtod, strtol)
svn:revision:68977
svn:branch:trunk
svn:account:brlcad
2016-10-04 06:35:07 +00:00
Christopher Sean Morrison 1e5816e560 restore booleanize back to r68707 with slight modification that was causing the spdi/shaders/solids regression tests to fail. the problem was simply that errno needed to be reset before calling strtol(). now all regress tests are passing again.
svn:revision:68976
svn:branch:trunk
svn:account:brlcad
2016-10-04 06:30:12 +00:00
Jonathan Engbert d243cf0943 only check errno if the return value of strtol()/strtod() is exactly 0.0
svn:revision:68975
svn:branch:trunk
svn:account:ejno
2016-10-03 23:51:18 +00:00
Clifford Yapp 30c1f4f660 Well, that was amazingly painful. Get all rt_vlblock_init calls up out of the nmg code. Removing RTG.rtg_vlfree as a global variable access flowed up through a lot of calling functions, which in turn required updating code calling them.
svn:revision:68974
svn:branch:trunk
svn:account:starseeker
2016-10-03 21:39:41 +00:00
Clifford Yapp 372719fde4 Only use UUID_INCLUDE_DIR if it's valid
svn:revision:68973
svn:branch:trunk
svn:account:starseeker
2016-10-03 15:05:00 +00:00
Clifford Yapp e654b1930b ws
svn:revision:68972
svn:branch:trunk
svn:account:starseeker
2016-10-03 15:01:02 +00:00
Christopher Sean Morrison f930da7218 clarify that empty strings are whitespace-trimmed
svn:revision:68971
svn:branch:trunk
svn:account:brlcad
2016-10-03 07:31:27 +00:00
Christopher Sean Morrison 74f45f5a82 rewicker that booleanize test to not rely on some built-in notion of true or false that can become inconsistent with what libbu defines. just make it take the expected result as input, then test and compare.
svn:revision:68970
svn:branch:trunk
svn:account:brlcad
2016-10-03 07:30:17 +00:00
Christopher Sean Morrison 56453f2d5d reorganize the booleanize tests a little bit for clarity. add another arg indicating the expected output result.
svn:revision:68969
svn:branch:trunk
svn:account:brlcad
2016-10-03 07:28:51 +00:00
Christopher Sean Morrison 306ab7db6e after MUCH thrashing, here is a rewrite the add_test() wrapper that fixes a problem with the previous version. previous was not actually handling empty strings, which are used by a significant number of our tests. it was silently not passing them to the test program. turns out that cmake really does not like consistently dealing with empty string/list elements and loses it once we're in the wrapper. once it's processed into list form (e.g., ARGV/ARGN), it gets ignored by _add_test(). this may be due to cmake_parse_arguments() being used within _add_test() which also unexpectedly ignores empty list elements. reported behavior as bug to upstream.
after much trial and error (more error than trial), a workaround was finally found and is implemented here.  basically, we reconstruct an invocation of add_test() in the wrapper so empty strings are passed as such, not via a list.  this is fugly and inane and would be fragile, but there are a couple protections included that greatly help future-proof the wrapper.  other comments should also help the next dev figure out what's going on.

svn:revision:68968
svn:branch:trunk
svn:account:brlcad
2016-10-03 07:26:43 +00:00
Clifford Yapp 4d56673902 nmg_stash_model_to_file absolutely depends on librt functionality for writing out a .g file - move to nmg.c, since it's not a candidate in this form for a libnmg refactor.
svn:revision:68967
svn:branch:trunk
svn:account:starseeker
2016-10-02 20:15:26 +00:00
Clifford Yapp bd580587e4 refactor out another rt_vlblock_init, although this one appears to be in a chain of functions which aren't used...
svn:revision:68966
svn:branch:trunk
svn:account:starseeker
2016-10-02 20:13:09 +00:00
Clifford Yapp 454a94d079 Looking forward towards moving nmg logic back into its own library, there are some initial in-place steps we can take to make the eventual transition simplier without actually splitting things into a library. This removes a librt coupling by using bn_vlblock_init instead of rt_vlblock_init and explicitly passing in the librt list in question instead of assuming the presence of RTG.rtg_vlfree in the nmg code.
svn:revision:68965
svn:branch:trunk
svn:account:starseeker
2016-10-02 03:17:14 +00:00
Clifford Yapp 93331ea30a revert r68707 until we can determine why it's breaking the spdi, solid and shader regression tests.
svn:revision:68964
svn:branch:trunk
svn:account:starseeker
2016-10-01 15:45:41 +00:00
Clifford Yapp e5aad3f43e Don't keep reporting we've found the lib if we already reported it once.
svn:revision:68963
svn:branch:trunk
svn:account:starseeker
2016-10-01 04:02:53 +00:00
Christopher Sean Morrison 145c80ce92 not an end-state, but slight improvement on machines with greater than 128 cores. with recursive parallelism, the number of subthreads is technically unbound, so we'll need some a better method for tracking ever-increasing quantities of threads (and how to do so while ensuring MAX_PSW containers remain consistent).
svn:revision:68962
svn:branch:trunk
svn:account:brlcad
2016-10-01 03:44:53 +00:00
Christopher Sean Morrison bdd8e5ef79 consistent case
svn:revision:68961
svn:branch:trunk
svn:account:brlcad
2016-10-01 03:41:32 +00:00
Christopher Sean Morrison 70c7a6d4cf if we have the lib, conduct a different test that doesn't rely on searching for the library (since CHECK_LIBRARY_EXISTS doesn't respect required library flags). check for the function in the library specified via check_function_exists()
svn:revision:68960
svn:branch:trunk
svn:account:brlcad
2016-10-01 03:06:58 +00:00
Christopher Sean Morrison ee21892115 check for uuid_generate only after we're sure we found the lib
svn:revision:68959
svn:branch:trunk
svn:account:brlcad
2016-10-01 03:05:41 +00:00
Clifford Yapp b18b9e72d3 Add full license text
svn:revision:68958
svn:branch:trunk
svn:account:starseeker
2016-10-01 03:04:47 +00:00
Clifford Yapp f9dc32d4a0 only use pubic var UUID_LIBRARIES
svn:revision:68957
svn:branch:trunk
svn:account:starseeker
2016-10-01 03:01:18 +00:00
Clifford Yapp 80410ee293 This seems to give a reproducible successfull build on BSD. May be overkill, but checkpoint in working state so I don't lose the patch again...
svn:revision:68956
svn:branch:trunk
svn:account:starseeker
2016-10-01 02:38:27 +00:00
Christopher Sean Morrison ace53e7304 need to call LINK_DIRECTORIES() to set the ldflag search dir
svn:revision:68955
svn:branch:trunk
svn:account:brlcad
2016-10-01 02:17:37 +00:00
Christopher Sean Morrison 36d730c3e5 check_library_exists() already respects cmake_required_flags, so let it get set when the cppflag is set.
svn:revision:68954
svn:branch:trunk
svn:account:brlcad
2016-10-01 02:05:11 +00:00
Christopher Sean Morrison d622109a0d make CHECK_LIBRARY_EXISTS() respect the CMAKE_PREFIX_PATH during linking like find_library() does
svn:revision:68953
svn:branch:trunk
svn:account:brlcad
2016-10-01 01:59:18 +00:00
Christopher Sean Morrison 4da06d2ee5 convert the version number to a size_t for now, though this will almost certainly be going away (the storage layer needs to handle versioning)
svn:revision:68952
svn:branch:trunk
svn:account:brlcad
2016-09-30 22:05:27 +00:00
Christopher Sean Morrison 62a7e034a8 EOF doesn't apply to character strings. presumably testing for nul end-of-string was intended.
svn:revision:68951
svn:branch:trunk
svn:account:brlcad
2016-09-30 21:04:54 +00:00
Clifford Yapp 0040d9d1a8 Revert 68151. The separation is important - bu_badmagic won't build with _BU_ATTR_NORETURN, but the others need both.
svn:revision:68950
svn:branch:trunk
svn:account:starseeker
2016-09-30 20:27:07 +00:00
Clifford Yapp 285dfabe82 Rather than allowing whatever the current working path is to be the default for rt_cache.tmp (which won't work if that path isn't writable by the user) check HOME and the bu_temp_file directory first.
svn:revision:68949
svn:branch:trunk
svn:account:starseeker
2016-09-30 19:54:51 +00:00
Clifford Yapp 8af866c640 list cache.h for CMake
svn:revision:68948
svn:branch:trunk
svn:account:starseeker
2016-09-30 19:13:11 +00:00
Clifford Yapp d87738f6ca missing BU_EXPORT
svn:revision:68947
svn:branch:trunk
svn:account:starseeker
2016-09-30 18:55:29 +00:00
Clifford Yapp b5a0b69736 Rather than include pstdint.h unconditionally (which is causing problems on Windows) make sure of just the PRINTF_INT32_MODIFIER (which is the bit we need).
svn:revision:68945
svn:branch:trunk
svn:account:starseeker
2016-09-30 18:35:39 +00:00
Clifford Yapp 8c4384a511 there are already guards further in - this isn't the problem
svn:revision:68944
svn:branch:trunk
svn:account:starseeker
2016-09-30 18:22:18 +00:00
Clifford Yapp b6e1248123 Put guards on pstdint.h - cache.c is pulling this in directly, but on Windows it's also getting pulled in by common.h and causing redefinition errors. Longer term solution should probably be to test for whatever cache.c needs and handle accordingly...
svn:revision:68943
svn:branch:trunk
svn:account:starseeker
2016-09-30 18:05:58 +00:00
Clifford Yapp 25a81b3f4d Build fixes, use bnetwork.h instead of arpa/inet.h
svn:revision:68942
svn:branch:trunk
svn:account:starseeker
2016-09-30 17:52:34 +00:00
Christopher Sean Morrison e931d96db1 private local headers come last unless it's an interface header (which comes first after common.h)
svn:revision:68941
svn:branch:trunk
svn:account:brlcad
2016-09-30 04:18:28 +00:00
Christopher Sean Morrison 24da3cac82 ws indent cleanup
svn:revision:68940
svn:branch:trunk
svn:account:brlcad
2016-09-30 04:15:54 +00:00
Christopher Sean Morrison 060932efda fix warning. presumably getting shell and C syntax mixed up, and the intent here is to simply make sure the first char on the current line isn't a start
svn:revision:68939
svn:branch:trunk
svn:account:brlcad
2016-09-30 04:06:48 +00:00
Christopher Sean Morrison 2901086424 ws indent and document the new ft_prep_serialize callback
svn:revision:68938
svn:branch:trunk
svn:account:brlcad
2016-09-30 03:56:56 +00:00
Christopher Sean Morrison 900b7e6069 compile first, need the c++ headers protected
svn:revision:68937
svn:branch:trunk
svn:account:brlcad
2016-09-30 03:53:52 +00:00
Christopher Sean Morrison 590be1aa45 more and better header inclusion cleanup, make the files work for C too
svn:revision:68936
svn:branch:trunk
svn:account:brlcad
2016-09-30 03:42:19 +00:00
Christopher Sean Morrison 06163fe3be make sure implementation headers come after system headers
svn:revision:68935
svn:branch:trunk
svn:account:brlcad
2016-09-30 03:33:36 +00:00
Christopher Sean Morrison c8a63c07ff merge the prep-cache branch into trunk, so it can be closed without any apparent prejudice. some tidying up needed and different cache storage layout so it is multiuser safe, but this is looking like solid forward progress. all testing is looking great too -- consistently seeing results like: 8min prep + 140sec render reduced to 40sec prep + 120sec render. well done jon!
svn:revision:68934
svn:branch:trunk
svn:account:brlcad
2016-09-30 03:29:52 +00:00
Clifford Yapp 1e2c02a23c We need to make sure TIE can handle the various BoT modes - right now it's ignoring surface mode BoTs.
svn:revision:68933
svn:branch:trunk
svn:account:starseeker
2016-09-29 16:23:24 +00:00
Clifford Yapp 0ef0a65365 preserve original element_id to node set mapping as an attribute.
svn:revision:68932
svn:branch:trunk
svn:account:starseeker
2016-09-29 15:03:15 +00:00
Christopher Sean Morrison 4c111b830b denote arrays with [] notation
svn:revision:68887
svn:branch:brep-debug
svn:account:brlcad
2016-09-22 01:41:29 +00:00
Christopher Sean Morrison 0586d4d821 sounds like the quad isn't necessarily planar if the intent of the triangles is a better fit.
svn:revision:68886
svn:branch:brep-debug
svn:account:brlcad
2016-09-22 01:15:40 +00:00
Christopher Sean Morrison 2f7d1211f3 first stab at documenting the algorithm steps based on what the write-up seems to be saying. needs reed's eyes.
svn:revision:68885
svn:branch:brep-debug
svn:account:brlcad
2016-09-22 01:12:58 +00:00
Christopher Sean Morrison 7b30be4aed add an abstract paragraph to the introduction, go with lowercase evaluation, and remove reference to the branch as there is near-term merge intent
svn:revision:68877
svn:branch:brep-debug
svn:account:brlcad
2016-09-21 14:39:39 +00:00
Christopher Sean Morrison 7114fa9b1b mark commands and subcommands as commands
svn:revision:68876
svn:branch:brep-debug
svn:account:brlcad
2016-09-21 14:16:01 +00:00
Christopher Sean Morrison d3abec4116 probably should lowercase all Evaluations except those in titles, but make them consistent for now. respect to Mr. Boole elsewhere.
svn:revision:68875
svn:branch:brep-debug
svn:account:brlcad
2016-09-20 23:31:20 +00:00
Christopher Sean Morrison 712a9b7f13 remove a few embedded CDATA, add missing close-paren
svn:revision:68874
svn:branch:brep-debug
svn:account:brlcad
2016-09-20 23:24:19 +00:00
Christopher Sean Morrison 432e529f8d consistently use () to distinguish when a symbol name is a function vs a command, class name, or other type. helps with readability.
svn:revision:68873
svn:branch:brep-debug
svn:account:brlcad
2016-09-20 23:17:03 +00:00
Christopher Sean Morrison 3e1a87d43b pseudocode of the algorithm would greatly help with understanding
svn:revision:68872
svn:branch:brep-debug
svn:account:brlcad
2016-09-20 23:04:55 +00:00
Christopher Sean Morrison 644bc197b5 consistently use B-Rep as introduced
svn:revision:68871
svn:branch:brep-debug
svn:account:brlcad
2016-09-20 23:01:56 +00:00
Christopher Sean Morrison 3cb690d907 complicated to make the document more robust to changes over time and being a useful reference for develoeprs today. try a middle ground, only mentioning filepaths once as a footnote. it may make sense to push all file references into an appendix instead.
svn:revision:68870
svn:branch:brep-debug
svn:account:brlcad
2016-09-20 22:56:08 +00:00
Christopher Sean Morrison a7e10b44dd include a high-level introduction to the overall approach being taken which affords an opportunity to introduce opennurbs, libbrep, and a few other details.
svn:revision:68869
svn:branch:brep-debug
svn:account:brlcad
2016-09-20 22:38:27 +00:00
Christopher Sean Morrison b399d50d71 most of the file was already indent-formatted, so make the rest match. mildly easier diffing.
svn:revision:68867
svn:branch:brep-debug
svn:account:brlcad
2016-09-20 21:07:35 +00:00
Christopher Sean Morrison 7a817b1685 a different first impression visual would really help with the overall understanding. hard to discern what's going on with the overlap entirely behind one of the two objects.
svn:revision:68862
svn:branch:brep-debug
svn:account:brlcad
2016-09-20 04:42:06 +00:00
Christopher Sean Morrison 4df39e0e6f they're not ill or poorly defined. they're not defined.
svn:revision:68861
svn:branch:brep-debug
svn:account:brlcad
2016-09-20 04:29:26 +00:00
Christopher Sean Morrison 63fdd3a031 avoid using unnecessarily using temporally sensitive language (e.g., frequently) that may not necessarily be true at some point in the future. few cases couldn't be changed, but most seem to generalize just fine.
svn:revision:68860
svn:branch:brep-debug
svn:account:brlcad
2016-09-20 04:28:08 +00:00
Christopher Sean Morrison 49bc3a6106 use .brep convention as .primitive is leveraged in other places, avoids any basename implications
svn:revision:68859
svn:branch:brep-debug
svn:account:brlcad
2016-09-20 04:16:06 +00:00
Clifford Yapp 19315228f2 Sync with trunk thru r68821
svn:revision:68822
svn:branch:brep-debug
svn:account:starseeker
2016-09-07 19:56:06 +00:00
Clifford Yapp 68a5f85b25 Sync with trunk thru r68370
svn:revision:68375
svn:branch:opencl
svn:account:starseeker
2016-07-19 19:56:11 +00:00
Clifford Yapp 30569fb065 Sync with trunk thru r68300. src/librt/bool.c and src/librt/prep.h look fairly different from trunk - someone needs to check the status of those after merge and see if it came out right.
svn:revision:68308
svn:branch:opencl
svn:account:starseeker
2016-08-31 01:32:07 +00:00
4868 changed files with 1123289 additions and 189977 deletions
-4
View File
@@ -1,4 +0,0 @@
/bin
/lib
/build
/testing
+18
View File
@@ -852,6 +852,20 @@ Hanji, Param
2016 March
Open Source (GSoC)
Bagavathy, Rakshika
nicknames tandoorichick
2016 October
Open Source (GSoC)
Gao, Tianyue
2016 December
Open Source (GCI)
Rathore, Shubham
nicknames gabbar1947
2017 April
Open Source
SPECIAL THANKS
--------------
@@ -1158,6 +1172,10 @@ nicknames bchepkwny
2015 December
Open Source
Sagarwal
2017 January
Open Source (GCI)
CORPORATE AND ORGANIZATION SUPPORT
----------------------------------
+40 -14
View File
@@ -15,6 +15,42 @@ on-going issues.
Recent Bugs
-----------
* get_regions tcl command doesn't respond well to situations where
child object names in combs have dashes (the "-" character) in
names. It tries to interpret the dash as an argument delimiter.
Looks like this may be only in situations where the "-" is the
lead character and on Windows? Been hard to reproduce...
* dsp does not facetize correctly with zero elevation areas in the
data - need robustness improvements
* dsp primitives specifying data using Windows style file paths
don't work.
* attempting to create a dsp using a binary object caused a crash on
Linux - need to figure out if this was caused by feeding it the wrong
kind of binary object or some other error...
* screengrab on windows does not work
* Recursive submodel predictably goes infinite, need stack-based
db_walk_tree(): mged> in submodel submodel submodel grid test.g
* running rt -s20 -F file.pix ... does not result in an 20x20 image
being written out. it ends up being 512x512.
* running rt -C255/0/0 -o file.pix ... does not result in the
background color getting used. It does work with -F file.pix, going
through libfb instead of libicv.
* ogl display manager and framebuffer are creating windows with
transparent backgrounds (the glClear color is not being drawn) on
Linux. Presumably a driver-related issue, alpha channel, or expose
event issue. Inspecting further, it may be related to environments
where shmget() fails (or is requested via /dev/oglp) and we get
private memory -- looks like private memory is not initialized
(observed on Mac 10.6, Windows, and Ubuntu Linux using 7.26).
* rtedge's overlay mode appears to be generating different results on
Windows and Linux for the m35 steering wheel (rtwizard rendering
mode D.)
@@ -68,14 +104,6 @@ Recent Bugs
* report of g-iges crashing (on Windows) when exporting a 1.2MB BoT
mesh (presumably imported via stl-g). worked for smaller models.
* ogl display manager and framebuffer are creating windows with
transparent backgrounds (the glClear color is not being drawn) on
Linux. Presumably a driver-related issue, alpha channel, or expose
event issue. Inspecting further, it may be related to environments
where shmget() fails (or is requested via /dev/oglp) and we get
private memory -- looks like private memory is not initialized
(observed on Mac 10.6).
* autoview [scale] isn't updating the wireframe when opening a
database, drawing geometry, then running autoview. the status bar
shows the scale change, but the graphics window remains unaffected
@@ -336,9 +364,10 @@ Recent Bugs
* File->Export seems to not work on Windows
* xpush fails to properly create a hierarchy leaving some as top-level
objects and killing other existing objects resulting in dangling
references.
* xpush fails to properly create a hierarchy killing existing objects
resulting in dangling references. This may have been fixed by
r69256, but a model that exposes the issue has to be tested to be
sure.
* mged on Mac OS X will crash on an X11 call if compiled against
system Tcl/Tk (at least on 10.4 linking against 8.4), see TODO
@@ -457,9 +486,6 @@ Recent Bugs
* triangulation of some pipe in toyjeep.g fails (rather reliably) on
some given bend. fails in nmg_triangulate model().
* tgc reports one hit errors though hit point has 0,0,0 direction
implying that maybe the point was supposedly deleted.
* rtedge is not respecting the -c"set" options. needs to give some
indication that they were parsed too since it ignores unrecognized
values apparently.
+220 -103
View File
@@ -2,120 +2,144 @@
BRL-CAD Interface Change Policy
===============================
Included below are details of BRL-CAD public interface changes that
potentially impact external developers and users. Public interfaces
include developer application programming interface (API) calls as
well as user application command-line interface (CLI) and graphical
user interface (GUI) behaviors. Changes are characterized as:
1) those affecting a new interface,
2) being minimally impacting, or
3) requiring adherence to deprecation policy.
This policy is intentionally designed to balance developer agility,
helping accelerate development, with interface stability, helping
preserve application developer and user investments.
This policy describes formal rules for changing an interface that
potentially impacts developers or users. The scope is limited to
public interfaces including developer application programming
interfaces (APIs), user application command-line interfaces (CLIs),
and graphical user interfaces (GUIs). The policy aims to balance
developer agility with interface stability.
All changes to BRL-CAD are expected to conform to this change policy.
Changes MUST either be:
NEW INTERFACE
-------------
Changes to interfaces that have been recently introduced are often
subject to further change and should not yet be relied upon by
application developers or users until they stabilize. They are
allowed to change from release to release and are not subject to
change policy restrictions until they have been included in at least
TWO releases without any change.
A) MINIMALLY IMPACTING, or
B) FORMALLY DEPRECATED.
MINIMALLY IMPACTING
-------------------
If a change to an interface has a suitable and completely equivalent
alternative, the change is deemed to be "minimally impacting" and can
be made during any release. Examples of such changes include renaming
an interface, reordering parameters, adding optional parameters,
adding additional parameters for previously implicit behavior, and
removing unused parameters.
Changes deemed "minimally impacting" can be made at any time. For a
change to be considered as such, its effect must be strictly limited.
Most are itemized under MINIMALLY IMPACTING CHANGES. They MUST be:
Generally, the impact can usually be considered minimally impacting if
a static regular expression search-and-replace is all that is needed
to update calling code, and no manual intervention is required.
A.1) a relatively new interface
Interfaces introduced recently are often subject to rapid
development change. New interfaces are not subject to formal
deprecation rules until they have been included in at least
TWO releases without change.
A.2) an appreciably broken interface
Interfaces that have been unusable for at least TWO releases
may be fixed, changed, or removed without notice. A broken
interface is one that does not perform its intended function
and does not have secondary utility.
A.3) an elementary change
Simple changes that are trivially accommodated without
conditional logic or manual inspection can be made at will.
It includes mechanical changes that can be automatically
updated by a single static regular expression substitution.
Examples include renaming, reordering parameters, adding
optional parameters, eliminating a duplicate equivalent
interface, adding parameters for implicit behavior, and
removing unused parameters.
DEPRECATION POLICY
------------------
FORMALLY DEPRECATED
-------------------
If a change will intentionally alter, replace, or remove functionality
that has been documented and published in at least TWO releases, it
must first be announced as DEPRECATED. Otherwise, changes to
interfaces that have not been publicly announced or are not publicly
documented for at least two releases may be changed without notice.
Changes not minimally impacting must follow formal deprecation
process. This defers significant changes to major release points or
requires public notification in advance. Changes are documented in
this file first as DEPRECATED CHANGES then later as OBSOLETED CHANGES.
An interface may be changed:
The general practice is that public interface changes may go from
deprecated to obsolete, whereby previous behavior is removed or
changed, during one of the following events:
B.1) during a major release (e.g. from 7.*.* to 8.*.*)
a) during a major release (e.g. going from 7.*.* to 8.*.*)
Any change may be made without notice. Major version number
releases imply intrinsic incompatibility or interface change.
b) during a minor release provided the change was publicly announced
as deprecated beforehand AND sufficient deprecation warning was
given via i) TWO minor releases included the deprecation notice,
and ii) at least THREE months (90 days) have passed since the
deprecation was announced
B.2) during a minor release (e.g., from 7.26.* to 7.28.*)
c) during any release provided there still exists an EQUIVALENT
alternative interface that does not impose an undue burden on users
or developers (see "MINIMALLY IMPACTING")
The interface must be publicly deprecated beforehand with
advance notice given in at least TWO minor releases and after
at least 90 days elapsed since initial release announcement.
Public interfaces scheduled for removal should be visibly marked as
deprecated during compilation with the DEPRECATED keyword on function
declarations, with #warning "DEPRECATED ..." pre-processor statements,
and with @DEPRECATED in source code comments. Where users are not
adversely affected, a run-time DEPRECATION statement may be printed.
Public interfaces scheduled for change should be noted in this file
and visibly marked in the source code. This marking may be the
DEPRECATED keyword on function declarations, #warning "DEPRECATED ..."
pre-processor statements, @DEPRECATED source code comments, and
combinations thereof.
Whenever published functionality is finally removed, move its entry
from the DEPRECATED section below to the REMOVED section for the
version in which it was removed. Make sure the entry retains a
reference to the version in which the item was marked as deprecated.
Where usage is not adversely affected, a run-time statement may be
displayed (typically "DEPRECATION WARNING: ..."). All call references
and documentation should be updated prior to obsoleting.
EXAMPLES
--------
Example #1: Say we decided during 7.50.3 development to remove
rt_shootray() from the API without a replacement. That does NOT
qualify as "minimally impacting" because there's no replacement and
rt_shootray() has been published and documented in more than two
releases. We'd annotate the deprecation in the CHANGES file, mark the
function as DEPRECATED in the API header, and post the 7.50.4 release.
The soonest that function could be removed would be in the 7.54.0
release during 7.53 development. It could NOT be removed in 7.54.2
since it's a patch version, prior to the 7.54 release line, nor even
during 7.54.0 if less than 90 days had passed since 7.50.6 was posted.
Example #1: rt_shootray() removal
Example #2: Say we decide during 7.48.0 development to modify bu_log()
by adding a new additional enum parameter denoting a message type.
This change is considered minimally impacting because it can be
characterized by a simple regular expression (e.g.,
s/bu_log(/bu_log(PRINT, /g). Updates to calling codes are considered
trivial. The change would get documented in the CHANGES file and all
calls that can be updated must be updated at that time.
It's decided during 7.50.3 development to remove the rt_shootray()
function. That does NOT qualify as "minimally impacting" because
there's no equivalent replacement and rt_shootray() has been published
and documented in more than two releases. The function gets listed as
DEPRECATED in the CHANGES file, marked as DEPRECATED in the API
header, and is published via the 7.50.4 release.
The soonest that function could be removed / obsoleted would be in
7.54.0 during 7.53.* development provided more than 90 days had passed
since the intiial announcement. It could NOT be removed in 7.54.2 as
that's a patch version, prior to 7.54, nor during 7.54.0 if less than
90 days had passed since 7.50.6 was posted.
Example #2: bu_log() mod
It's decided during 7.48.1 development to modify bu_log() by adding an
additional optional enum parameter denoting a message type, e.g.,
bu_log(INFO, ...). This change is considered "minimally impacting"
because it can be characterized by a simple regular expression (e.g.,
"s/bu_log\(/bu_log(INFO, /g)" and calling codes are trivially
accommodated. All calls to bu_log() should be updated to the new form
prior to change announcement.
The function could be changed at any time so long as it's documented
under MINIMALLY IMPACTING CHANGES.
**************
* DEPRECATED *
**************
**********************************************************************
*** DEPRECATED CHANGES ***
**********************************************************************
(reverse chronological order)
The items listed below are interfaces that are deprecated. They are
categorized by the release in which the change was made. If the
change involved a removal of a command or function, both the original
and new names should be listed for reference. If an item is marked
with a "'" (single quote), that means it was not documented and may be
The interfaces announced below are scheduled to significantly change
or be removed. They are categorized by the release in which
deprecation was first announced. If the inteface change involved a
removal or transition, both the original and new interface names are
generally listed for reference.
Items marked with a "'" (single quote) are undocumented and may be
removed at any time.
7.28
----
include/vmath.h
VCOMB3, VCOMB3N, VJOIN4
Removed as inconsistent and unused API [deprecated 7.28]
MGED commands
?devel, ?lib, aproposdevel, aproposlib, %, animmate, db_glob,
debugbu, debugdir, debuglib, debugmem, debugnmg, expand,
loadtk, match, memprint, preview, regdebug, regdef, rmats, rrt,
savekey, shaded_mode, sync
Removed as part of distillation effort [deprecated 7.28]
7.26
----
@@ -158,7 +182,6 @@ signal analysis tools
Removed as part of distillation effort [deprecated 7.26]
infrared & shapefactor tools
all_sf', if-X, ifdisp, pictx, showterm, firpass, secpass, shapefact
ssamp-bw, ssampview', ssampview.tcl'
Removed as part of distillation effort [deprecated 7.26]
misc tools
fix_polysolids' : obsolete primitive
@@ -353,13 +376,16 @@ include/raytrace.h
struct hit.hit_normal -> RT_HIT_NORMAL [deprecated pre-7.0]
***********
* REMOVED *
***********
**********************************************************************
*** OBSOLETED CHANGES ***
**********************************************************************
(reverse chronological order)
Below are the interfaces that have followed deprecation policy or were
deemed minimally impacting and, regardless, are now no longer a part
of BRL-CAD.
7.28.0
------
libmultispectral, rttherm, ssamp-bw, ssampview, ssampview.tcl
removed, not working in testing [minimally impacting]
7.26.0
------
@@ -602,22 +628,27 @@ include/[library].h (several)
[library]_version -> [library]_version() [private]
***********************************
* MINIMALLY IMPACTING API CHANGES *
***********************************
**********************************************************************
*** MINIMALLY IMPACTING CHANGES ***
**********************************************************************
(forward chronological order)
Included in following are various minimally impacting API changes that
have been identified in chronological order. As expressions are not
extensively tested, use with caution.
All minimally impacting changes are listed by release as regular
expressions. Unless noted otherwise, expressions are shown using Perl
syntax (i.e., the '(', ')', and '|' characters pertain to
subexpression captures, escaping with '\' matches literally.
Expressions should apply via:
Unless noted otherwise, expressions are shown using Perl syntax and
may need adjustment (particularly quoting of '(', ')', and '|'
characters) for other environments. Most expressions will apply with:
perl -0777 -pi -e 'EXPRESSION' FILE
perl -0777 -pi -e 'EXPRESSION' FILE
To apply an expression to an entire source tree, the following pattern
may work:
To apply them to an entire SVN checkout, the following pattern is useful:
find . -type f -not -path "*.svn/*" -regex '.*\(c\|cpp\|cxx\|h\|hpp\)$' -exec perl -0777 -pi -e 'EXPRESSION' {} \;
Expressions are minimally tested, use with caution. Make a backup.
6.0 (sed lines)
---
g/struct structparse/s//struct bu_structparse/g
@@ -1217,3 +1248,89 @@ s/bu_free_array/bu_free_args/g
fixed misleading name [7.26]
s/(#[[:space:]]*include[[:space:]]+["<])bu\/rb\.h/\1bu\/redblack.h/g
clearer header name [7.26]
s/rt_plot_vlblock/bn_plot_vlblock/g
s/rt_vlist_to_uplot/bn_vlist_to_uplot/g
move vlist functions to libbn [7.26]
s/rt_nurb_bezier/nmg_nurb_bezier/g
s/rt_nurb_c_split/nmg_nurb_c_split/g
s/rt_nurb_free_cnurb/nmg_nurb_free_cnurb/g
s/rt_nurb_free_snurb/nmg_nurb_free_snurb/g
s/rt_nurb_intersect/nmg_nurb_intersect/g
s/rt_nurb_new_cnurb/nmg_nurb_new_cnurb/g
s/rt_nurb_new_snurb/nmg_nurb_new_snurb/g
s/rt_nurb_s_eval/nmg_nurb_s_eval/g
s/rt_nurb_s_norm/nmg_nurb_s_norm/g
s/rt_nurb_uv_hit/nmg_nurb_uv_hit/g
s/rt_arc2d_to_cnurb/nmg_arc2d_to_cnurb/g
s/rt_join_cnurbs/nmg_join_cnurbs/g
s/rt_nurb_c_eval/nmg_nurb_c_eval/g
s/rt_nurb_c_print/nmg_nurb_c_print/g
s/rt_nurb_kvgen/nmg_nurb_kvgen/g
s/rt_nurb_kvmerge/nmg_nurb_kvmerge/g
s/rt_nurb_s_print/nmg_nurb_s_print/g
s/rt_nurb_s_refine/nmg_nurb_s_refine/g
s/rt_bez_check/nmg_bez_check/g
s/rt_nurb_back_solve/nmg_nurb_back_solve/g
s/rt_nurb_basis_eval/nmg_nurb_basis_eval/g
s/rt_nurb_c_bound/nmg_nurb_c_bound/g
s/rt_nurb_c_check/nmg_nurb_c_check/g
s/rt_nurb_c_diff/nmg_nurb_c_diff/g
s/rt_nurb_c_refine/nmg_nurb_c_refine/g
s/rt_nurb_c_xsplit/nmg_nurb_c_xsplit/g
s/rt_nurb_calc_oslo/nmg_nurb_calc_oslo/g
s/rt_nurb_cinterp/nmg_nurb_cinterp/g
s/rt_nurb_clean_cnurb/nmg_nurb_clean_cnurb/g
s/rt_nurb_clip_srf/nmg_nurb_clip_srf/g
s/rt_nurb_crv_copy/nmg_nurb_crv_copy/g
s/rt_nurb_crv_flat/nmg_nurb_crv_flat/g
s/rt_nurb_curvature/nmg_nurb_curvature/g
s/rt_nurb_doolittle/nmg_nurb_doolittle/g
s/rt_nurb_eval_crv/nmg_nurb_eval_crv/g
s/rt_nurb_forw_solve/nmg_nurb_forw_solve/g
s/rt_nurb_free_oslo/nmg_nurb_free_oslo/g
s/rt_nurb_gen_knot_vector/nmg_nurb_gen_knot_vector/g
s/rt_nurb_knot_index/nmg_nurb_knot_index/g
s/rt_nurb_kvcheck/nmg_nurb_kvcheck/g
s/rt_nurb_kvcopy/nmg_nurb_kvcopy/g
s/rt_nurb_kvextract/nmg_nurb_kvextract/g
s/rt_nurb_kvknot/nmg_nurb_kvknot/g
s/rt_nurb_kvmult/nmg_nurb_kvmult/g
s/rt_nurb_kvnorm/nmg_nurb_kvnorm/g
s/rt_nurb_map_oslo/nmg_nurb_map_oslo/g
s/rt_nurb_mesh_diff/nmg_nurb_mesh_diff/g
s/rt_nurb_mk_poly/nmg_nurb_mk_poly/g
s/rt_nurb_p_mat/nmg_nurb_p_mat/g
s/rt_nurb_plot_cnurb/nmg_nurb_plot_cnurb/g
s/rt_nurb_plot_snurb/nmg_nurb_plot_snurb/g
s/rt_nurb_poly/nmg_nurb_poly/g
s/rt_nurb_pr_crv/nmg_nurb_pr_crv/g
s/rt_nurb_pr_kv/nmg_nurb_pr_kv/g
s/rt_nurb_pr_mesh/nmg_nurb_pr_mesh/g
s/rt_nurb_pr_oslo/nmg_nurb_pr_oslo/g
s/rt_nurb_print_pt_type/nmg_nurb_print_pt_type/g
s/rt_nurb_project_srf/nmg_nurb_project_srf/g
s/rt_nurb_region_from_srf/nmg_nurb_region_from_srf/g
s/rt_nurb_s_bound/nmg_nurb_s_bound/g
s/rt_nurb_s_check/nmg_nurb_s_check/g
s/rt_nurb_s_diff/nmg_nurb_s_diff/g
s/rt_nurb_s_flat/nmg_nurb_s_flat/g
s/rt_nurb_s_plot/nmg_nurb_s_plot/g
s/rt_nurb_s_split/nmg_nurb_s_split/g
s/rt_nurb_s_xsplit/nmg_nurb_s_xsplit/g
s/rt_nurb_scopy/nmg_nurb_scopy/g
s/rt_nurb_sinterp/nmg_nurb_sinterp/g
s/rt_nurb_solve/nmg_nurb_solve/g
s/rt_nurb_to_poly/nmg_nurb_to_poly/g
rename old nurbs functions intertwined with nmg to use nmg prefix [7.26]
s/RTG.NMG_debug/nmg_debug/g
make nmg debug flag top level, like libbu's [7.26]
s/BU_ASSERT(_[A-Z_]+)\(([^,]+|.*\(.*,.*\)),([^,]+|.*\(.*,.*\)),([^,]+|.*\(.*,.*\))\);/BU_ASSERT(\2\3\4);/g
consolidated BU_ASSERT_PTR, BU_ASSERT_LONG, BU_ASSERT_SIZE_T, BU_ASSERT_SSIZE_T, BU_ASSERT_DOUBLE [7.26]
s/BU_FLSTR/CPP_FILELINE/g
s/vert_root/bn_vert_tree/g
s/create_vert_tree[[:space:]]*\(/bn_vert_tree_create\(/g
s/create_vert_tree_w_norms[[:space:]]*\(/bn_vert_tree_create_w_norms\(/g
s/free_vert_tree[[:space:]]*\(/bn_vert_tree_destroy\(/g
s/Add_vert[[:space:]]*\(([^,]*,)([^,]*,)([^,]*,)([^,]*,)/bn_vert_tree_add\(\4\1\2\3/g
s/Add_vert_and_norm[[:space:]]*\(([^,]*,)([^,]*,)([^,]*,)([^,]*,)([^,]*,)([^,]*,)([^,]*,)/bn_vert_tree_add_w_norm\(\7\1\2\3\4\5\6/g
s/clean_vert_tree[[:space:]]*\(/bn_vert_tree_clean\(/g
+997 -576
View File
File diff suppressed because it is too large Load Diff
+4439 -43177
View File
File diff suppressed because it is too large Load Diff
+3 -8
View File
@@ -285,13 +285,6 @@ libfft: The Fast-Fourier Transform library is a signal processing
library for performing FFTs or inverse FFTs efficiently.
Depends on: libm
libmultispectral: The multispectral optics library is a separate
compilation mode of the optics library where support for additional
bands of energy are added. By providing a defined spectrum of energy,
the raytrace library will produce different signal analyses for a
given set of geometry.
Depends on: librt libbn libbu libtcl
liboptical: The optical library is the basis for BRL-CAD's shaders.
This includes shaders such as the Phong and Cook-Torrence lighting
models, as well as various visual effects such as texturing, marble,
@@ -548,7 +541,7 @@ math for portability and performance reasons. When floating point
comparisons are necessary, use the NEAR_EQUAL and NEAR_ZERO macros
with a specified tolerance or the EQUAL and ZERO macros where a
tolerance is indeterminate (all the macros are available by including
bn.h, part of libbn). Examples:
vmath.h). Examples:
For known tolerances:
@@ -1330,6 +1323,8 @@ Release steps are as follows:
#####################################################################
# 09: Sync RELEASE to STABLE branch:
# Update the NEWS release date for the current release to today's date
# NON-AUTO: Review the log and obtain the last merge revision
# number from comments.
svn log --stop-on-copy https://svn.code.sf.net/p/brlcad/code/brlcad/branches/STABLE | less
+39 -9
View File
@@ -1,8 +1,6 @@
The Installation Guide to BRL-CAD
=================================
Please read this document if you are interested in installing BRL-CAD.
This document covers the basics of installing BRL-CAD from either a
source or binary distribution. Please see the 'Reporting Problems'
section if you run into any trouble installing BRL-CAD.
@@ -546,6 +544,27 @@ first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_TINYCTHREAD
--- BRLCAD_LZ4 ---
Option for enabling and disabling compilation of the lz4 data
compression library provided with BRL-CAD's source code. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_LZ4
--- 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
@@ -754,15 +773,26 @@ AUTO.
Aliases: ENABLE_GDIAM
--- BRLCAD_BULLET ---
--- BRLCAD_PROJ4 ---
Option for enabling and disabling compilation of the Bullet Realtime
Physics Simulation Libraries provided with BRL-CAD's source
distribution. Default is AUTO, responsive to the toplevel
BRLCAD_BUNDLED_LIBS option and testing first for a system version
if BRLCAD_BUNDLED_LIBS is also AUTO.
Option for enabling and disabling compilation of the PROJ.4 geographic
projection library provided with BRL-CAD's source code. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_BULLET
Aliases: ENABLE_PROJ4
--- BRLCAD_GDAL ---
Option for enabling and disabling compilation of the GDAL geographic
library provided with BRL-CAD's source code. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_GDAL
+50 -3
View File
@@ -10,9 +10,57 @@ descriptive text that emphasizes or further describes significant
changes made. See document footer for additional details.
----------------------------------------------------------------------
--- 2016-07-XX Release 7.26.2 ---
--- 201X-XX-XX Release 7.28.0 ---
----------------------------------------------------------------------
* Remove libmultispectral, rttherm, and related code/docs - Cliff Yapp
----------------------------------------------------------------------
--- 2017-09-22 Release 7.26.4 ---
----------------------------------------------------------------------
This is a patch release, primary focused on updates to the build
system logic.
* fixed MGED bindings behavior for c, A, P, and S chars - Bob Parker
* fixed gdiff usage statement - Sean Morrison
* removed anim.txt, sun.txt, tube.txt and movie.txt - Cliff Yapp
----------------------------------------------------------------------
--- 2017-06-10 Release 7.26.2 ---
----------------------------------------------------------------------
Among a variety of bugs fixed, the patch corrects a critical error in
BoT triangle mesh ray tracing. For improved performance, it also
changes the default frame buffer display behavior to fully buffer ray
tracing images instead of displaying them incrementally. A variety of
MGED commands see improvements too with 'ls' now supporting listing
objects by their on-disk size and the 'simulate' command applying
forces on objects (e.g., gravity) with greater ease. Not yet
complete, there is a new interface being developed for resolving
overlaps more efficiently, currently under development and usability
testing with select users. Lastly, a number of dependencies were
upgraded, including Tcl/Tk, in order to patch security vulnerabilities
and address portability issues.
* upgraded Tcl/Tk from 8.5.9 to 8.5.19 - Sean Morrison
* fixed background color setting in MGED - Cliff Yapp
* upgraded libpng to version 1.6.29 - Cliff Yapp
* upgraded zlib to version 1.2.11 - Cliff Yapp
* reduced 'shade_inputs' flipped normal reporting - Sean Morrison
* numerous 'simulate' command enhancements and fixes - Jon Engbert
* fixed rtweight .density file loading on Windows - Cliff Yapp
* fixed dsp handling of invalid uniform binary objects - Sean Morrison
* fixed brlman problem with viewing benchmark man page - Cliff Yapp
* fixed name of dbfind man page (was listed as 'find') - Cliff Yapp
* added -H option to ls for human readable size reporting - Cliff Yapp
* added -S option to ls command for size based sorting - Cliff Yapp
* improved 'loadview' command view script handling - Sean Morrison
* fixed TIE raytracing for zero thickness BoTs - Cliff Yapp
* added Wavefront OBJ File->Open GUI support in Archer - Cliff Yapp
* fixed attr show error printing large attribute values - Cliff Yapp
* fixed rt support for lights created prior to rel 6.0 - Sean Morrison
* fixed infinite loop bug in when using shadow lights - Sean Morrison
* removed man pages: erase_all, export_body, vrmgr, dall - Cliff Yapp
@@ -28,11 +76,10 @@ changes made. See document footer for additional details.
* 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
* fixed xpush bug leaving stray top-level objects - Nick Reed
----------------------------------------------------------------------
+2 -2
View File
@@ -1,5 +1,5 @@
BRL-CAD
Release 7.26.2
Release 7.28.0
http://brlcad.org/
BRL-CAD is a powerful cross-platform open source combinatorial
@@ -31,7 +31,7 @@ TABLE OF CONTENTS
GETTING STARTED
----------------
---------------
This README file exists only to provide you a brief roadmap to the
contents of the BRL-CAD distribution.
+87 -57
View File
@@ -18,9 +18,46 @@ tasks as they are completed.
THESE TASKS SHOULD HAPPEN BEFORE THE NEXT RELEASE
-------------------------------------------------
* add regression test for directional light sources
* update astyle
THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
-------------------------------------------------------
* move the rt_*_timer timing facilities to libbu and rework to allow
contexts, allowing for more than one timer to be active. Make sure
the old librt API can be obsoleted cleanly.
* check that dbconcat supports objects created with the bo cmd
* libgcv should add objects to an existing .g if one is specified
as the output target - right now it's overwriting the old file
* consolidate dbconcat, clone, make_name, and any other .g I/O
routines that need to autogenerate names to use the new
bu_vls_incr/bu_vls_simplify functions.
* Explicitly list the CMakeLists.txt files rather than adding
them automatically in the add_subdirectory override, now that
we are listing all files explicitly - preserve the new simplicity
* renamed zlib and libpng when building bundled to avoid conflicting
with system-installed libs. e.g., default to ENABLE_Z_PREFIX=ON
with name z_brlcad (perhaps as a post-compile rename custom command)
and png_brlcad respectively.
* investigate possibility of using simple, compact libs
like miniz and lodepng to replace the complexity of
managing zlib and libpng in src/other. These have been
a source of ongoing annoyance, particularly (but not
exclusively) on OSX.
* f_dbopen in MGED doesn't seem to be reporting failure
if a non-.g file is fed to opendb. That doesn't seem
right... shouldn't the open process completely fail
if the file isn't a valid .g?
* add regression test for BoT ray tracing
* add regression test for directional light sources
* bundle primary rays in rt front end into postage stamps, shoot via
rt_shootrays(), modify to pass all rays down through the spatial
@@ -42,13 +79,12 @@ THESE TASKS SHOULD HAPPEN BEFORE THE NEXT RELEASE
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
* try to come up with a way we can report the number of times
the configuration step has been run and changed something
without triggering almost a full rebuild. Maybe have the
bits that need to report it pull from a file in bu_brlcad_data?
THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
-------------------------------------------------------
* turn on Bullet code (simulate command) unconditionally
* make sure TIE can raytrace all of the various BoT modes
* metaball in command input needs sanity checks and better
validation.
@@ -78,6 +114,26 @@ THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
THESE ARE UNSCHEDULED BACKLOG TASKS
-----------------------------------
* mater command does not validate its arguments - fix that. Also
properly document using "." to skip specifying something - not in
the man page currently.
* bullet integration - need to expose restitution as an
object parameter so we can configure behavior:
http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?p=&f=&t=3248
* afl on libged/mged/rt/...
* moodycamel as libbu queue/list/ptbl implementation
* reinstate 'stat' and search -size, see r67636 through r67646
* update dem-g to not use full paths for dsp primitive data locations -
should default to embedding the data in the .g file as a binary object,
with an option for a relative path if the user explicitly requests
it. Full paths make for non-portable .g files and should only exist
if the user explicitly manipulates the dsp to create such a path.
* define geometry URL and VFS behavior
* change _mged_ command prefix to a simple '.' prefix to hide/protect
@@ -148,34 +204,23 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* Need to rethink libbu hash API - ideally should be much simpler and
expose much less to the user.
* consider whether the file introspection capabilities of libmagic
(https://github.com/file/file) should be hooked into the libbu
mime type system to support more robust file type identification
beyond that offered by file extension + context. In principle
we want the most powerful capability we can get, but there are
some not-entirely-trivial design issues involved.
* The current libbu mime API needs to be retired in favor of something
more powerful. It was a mistake to use enums generated from the
mime types - they are static, cannot be enriched at runtime (say,
by icv plugins) and the separation of the context from the type
itself (image/png -> BU_MIME_IMAGE and BU_MIME_IMAGE_PNG for example)
is both cumbersome and unnecessary. Instead, grab a subset of the
capabilities of libmagic (https://github.com/file/file) and define
a new libbu mime/data-typing subsystem that is runtime populated by
a default set of pseudo-libmagic style file definitions (may want
to adjust their format slightly, to require a mime type for each
entry, and we need an way to define entries where we don't (yet)
know how to inspect the file contents to identify them...)
- Do we want to use file introspection to replace the "context"
mechanism we're currently using to disambiguate file extensions?
- Is it practical to define enough "magic" for the file types we
will be interested in? (the current "cad" entry just has a
few autodesk formats - would need considerable expansion.)
- How should we return the "human readable" string libmagic provides,
particularly in the context of bu_path_component - the mime type
is currently returned as a string.
- libmagic is capable of greater fidelity than the basic file
extension based mime types - should we define custom mime types
to allow that refinement? e.g. MIME_MODEL_STEP if we don't know
what step version, and MIME_MODEL_STEP_AP203 if libmagic ids the
file as a particular version? There are many situations where
this capability could be very useful, but we would have to
rethink how we are currently defining our mime types. Ideally
we would want to generate specific mimes from the magic definition
files, but we would have to make sure all the magic files we
use for BRL-CAD provide mimes for all entires.
This approach will let us define the types that are of interest to
BRL-CAD, while also letting plugins "educate" the system to support
processing of formats the base system (and the "standard" mime type
lists) know nothing about.
* investigate merging functionality from the sig tools into libicv
and removing the tools themselves. Also, need some documentation
@@ -237,14 +282,10 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
parallel. This would be a way to easily parallelize existing code
without needing to create wrapper functions for bu_parallel().
* Post 7.26.0 release, need to look at migrating CMake logic off of
the OLD behavior for policy 0026 (using LOCATION property.) Now
that Debian stable is using CMake >=3.0 we should be OK to require
the more modern CMake. Another TODO once we require the newer CMake
is retiring our custom time stamping code in favor of using
the CMake time stamp mechanism. Also get rid of the fallback in
src/libgcv/plugins/CMakeLists.txt (and any others that have crept
in over the years...)
* Now that we have >3.0 CMake required, look into replacing our custom
time stamping code in favor of using the CMake time stamp mechanism.
Also get rid of the fallback in src/libgcv/plugins/CMakeLists.txt
(and any others that have crept in over the years...)
* convert usages of Tcl_InitHashTable() and friends to libbu
containers (see src/conv/enf-g.c for example usage)
@@ -813,12 +854,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* clean up new rt -l8 heat graph lighting model so that it works in
parallel and with no "splotches"
* make rt_prep_timer() take or return a context that gets subsequently
passed to rt_get_timer() calls for returning the elapsed time. this
will allow multiple overlapping timers instead of just one global
timers. move the timing facilities to libbu as part of the process
so API can be obsoleted cleanly.
* separation of stderr from stdout within libbu, particularly for
MGED, so that there is a clean separation of result output from
diagnostic output. this is a fairly separate idea from having log
@@ -1122,11 +1157,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
combinations of these primitives, provided their continuity at the
ends ensures continuity all along "seams" - something to consider.
* look into embedding both rgb[3] and complex[n] data types in a union
to allow unification of libmultispectral and liboptical APIs to a
single more general liboptical. Need to be careful about
performance and maintainability concerns.
* we need to define a libbu api for option handling that supports more
features than getopt:
@@ -1837,10 +1867,7 @@ pl-dm (possibly X11 specific)
pp-fb (TERMLIB)
remrt (remrt dir commented out for WIN32 in src/CMakeLists.txt)
rtsrv (remrt dir commented out for WIN32 in src/CMakeLists.txt)
rttherm (rttherm dir commented out for WIN32 in src/CMakeLists.txt)
scriptsort (lex)
ssamp-bw (rttherm dir commented out for WIN32 in src/CMakeLists.txt)
ssampview (rttherm dir commented out for WIN32 in src/CMakeLists.txt)
ttcp (not ported)
The MGED points support doesn't appear as an executable, but it is
@@ -2075,6 +2102,9 @@ being rtgl specific.
Provide a generic mechanism in MGED run loop to hook in features like
point cloud rendering, instead of hard-coding it.
* consider utilizing something like moodycamel::ConcurrentQueue for
handling ray dispatch: https://github.com/cameron314/concurrentqueue
LIBPC
-----
+1 -1
View File
@@ -206,7 +206,7 @@ main(int argc, char *argv[])
stat(argv[1], &sf2);
if (sf1.st_size != sf2.st_size) {
bu_exit(FILE_ERROR, "Different file sizes found: %s(%d) and %s(%d). Cannot perform pixcmp.\n", argv[0], sf1.st_size, argv[1], sf2.st_size);
bu_exit(FILE_ERROR, "Different file sizes found: %s(%d) and %s(%d). Cannot perform pixcmp.\n", argv[0], (int)sf1.st_size, argv[1], (int)sf2.st_size);
}
if (!print_bytes) {
Vendored
+16 -4
View File
@@ -10,9 +10,9 @@ while [ "$1" != "" ]
do
case $1
in
--enable-all) options="$options -DBRLCAD_BUNDLED_LIBS=ON";
--enable-all) options="$options -DBRLCAD_BUNDLED_LIBS=BUNDLED";
shift;;
--disable-all) options="$options -DBRLCAD_BUNDLED_LIBS=OFF";
--disable-all) options="$options -DBRLCAD_BUNDLED_LIBS=SYSTEM";
shift;;
--enable-opengl) options="$options -DBRLCAD_ENABLE_OPENGL=ON";
shift;;
@@ -130,6 +130,14 @@ do
shift;;
--disable-tinycthread) options="$options -DBRLCAD_TINYCTHREAD=SYSTEM";
shift;;
--enable-lz4) options="$options -DBRLCAD_LZ4=BUNDLED";
shift;;
--disable-lz4) options="$options -DBRLCAD_LZ4=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";
@@ -210,9 +218,13 @@ do
shift;;
--disable-gdiam) options="$options -DBRLCAD_GDIAM=SYSTEM";
shift;;
--enable-bullet) options="$options -DBRLCAD_BULLET=BUNDLED";
--enable-proj4) options="$options -DBRLCAD_PROJ4=BUNDLED";
shift;;
--disable-bullet) options="$options -DBRLCAD_BULLET=SYSTEM";
--disable-proj4) options="$options -DBRLCAD_PROJ4=SYSTEM";
shift;;
--enable-gdal) options="$options -DBRLCAD_GDAL=BUNDLED";
shift;;
--disable-gdal) options="$options -DBRLCAD_GDAL=SYSTEM";
shift;;
--prefix=*) inputstr=$1;
options="$options -DCMAKE_INSTALL_PREFIX=${inputstr#--prefix=}";
+3 -1
View File
@@ -93,10 +93,12 @@ if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
BRLCAD_ADDDATA(terra.dsp db)
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
CMAKEFILES(
aet.rt
cornell.rt
cube.rt
db.php
include
include/ctype.inc
include/debug.inc
)
# Local Variables:
Executable
+13
View File
@@ -0,0 +1,13 @@
#!/bin/sh
rt -M -p50 -W \
$*\
aet.g\
'diagram.r' \
<<EOF
viewsize 3.58095758486442e+00;
orientation 4.58468551319667e-01 5.46381543126676e-01 5.36927647047512e-01 4.50535790606452e-01;
eye_pt 2.16300884070308e+00 6.60866025843505e-01 3.68751836397137e-01;
start 0; clean;
end;
EOF
+70 -58
View File
@@ -11,77 +11,81 @@ set(NIST_SAMPLE_3DM_MODELS
NIST_MBE_PMI_7-10.3dm
)
macro(ADD_NIST_STEP_TARGET step_model folder)
function(ADD_NIST_STEP_TARGET step_model folder)
# Base output file name on input file
string(REGEX REPLACE "([0-9a-z]*).stp" "\\1" step_model_root "${step_model}")
set(output_file ${bin_root}/${DATA_DIR}/db/${step_model_root}.g)
# Define a relative output path - the quirks of CMake require this...
set(output_file ${DATA_DIR}/db/${step_model_root}.g)
# One log file per target
set(log_file ${CMAKE_CURRENT_BINARY_DIR}/${step_model_root}.log)
# Define the target
add_custom_command(
OUTPUT ${output_file}
COMMAND step-g -O ${output_file} ${CMAKE_CURRENT_SOURCE_DIR}/${step_model} > ${log_file} 2>&1
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND step-g -O ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} ${CMAKE_CURRENT_SOURCE_DIR}/${step_model} > ${log_file} 2>&1
DEPENDS step-g ${CMAKE_CURRENT_SOURCE_DIR}/${step_model}
)
add_custom_target(${step_model_root}.g ALL DEPENDS ${output_file})
)
add_custom_target(${step_model_root}.g ALL DEPENDS ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file})
# Assign a target folder for tools like Visual Studio
set_target_properties(${step_model_root}.g PROPERTIES FOLDER "${folder}")
# If we're installing geometry, set up the install rule
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
if(NOT "${CMAKE_CFG_INTDIR}" STREQUAL "." AND CMAKE_CONFIGURATION_FILES)
string(REPLACE "${CMAKE_CFG_INTDIR}" "\${BUILD_TYPE}" output_file "${output_file}")
endif(NOT "${CMAKE_CFG_INTDIR}" STREQUAL "." AND CMAKE_CONFIGURATION_FILES)
install(FILES ${output_file} DESTINATION ${DATA_DIR}/db)
install(FILES ${CMAKE_CURRENT_BUILD_DIR_INSTALL}/${output_file} DESTINATION ${DATA_DIR}/db)
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
set(BUILT_MODELS "${BUILT_MODELS};${output_file}")
set(LOG_FILES "${LOG_FILES};${log_file}")
# Cleanup
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file};${log_file}")
DISTCLEAN(${log_file})
endmacro(ADD_NIST_STEP_TARGET step_model folder)
# Get our root path
if(CMAKE_CONFIGURATION_TYPES)
set(bin_root "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
else(CMAKE_CONFIGURATION_TYPES)
set(bin_root "${CMAKE_BINARY_DIR}")
endif(CMAKE_CONFIGURATION_TYPES)
endfunction(ADD_NIST_STEP_TARGET step_model folder)
# The general pattern of the BRL-CAD build is to use CMAKE_CFG_INTDIR when
# multi-configuration builds complicate the location of binaries. In this
# case, however, we are using a generated script with a different mechanism
# for handling this situation, and we need to update the executable paths
# accordingly if they are configuration dependent.
if(CMAKE_CONFIGURATION_TYPES)
string(REPLACE "${CMAKE_CFG_INTDIR}" "\${BUILD_TYPE}" rbin_root "${bin_root}")
else(CMAKE_CONFIGURATION_TYPES)
set(rbin_root "${bin_root}")
endif(CMAKE_CONFIGURATION_TYPES)
function(ADD_NIST_3DM_TARGET rhino_model folder)
# Use the CMake executable to figure out if we need an extension
get_filename_component(EXE_EXT "${CMAKE_COMMAND}" EXT)
macro(ADD_NIST_3DM_TARGET rhino_model folder)
set(CMD_EXEC ${rbin_root}/${BIN_DIR}/3dm-g${EXE_EXT})
# Base output file name on input file
string(REGEX REPLACE "([0-9a-z]*).3dm" "\\1" rhino_model_root "${rhino_model}")
set(output_file ${rbin_root}/${DATA_DIR}/db/${rhino_model_root}.g)
# Define a relative output path - the quirks of CMake require this...
set(output_file ${DATA_DIR}/db/${rhino_model_root}.g)
# Because we won't know the output directory in the script reliably until run time,
# we append CURRENT_BUILD_DIR as a string to the arguments - it is the script's
# responsibility to handle it correctly at run time.
set(CMD_ARGS "-o" "CURRENT_BUILD_DIR/${output_file}" "${CMAKE_CURRENT_SOURCE_DIR}/${rhino_model}")
# One log file per target - we capture both stdout and stderror here
set(log_file ${CMAKE_CURRENT_BINARY_DIR}/${rhino_model_root}.log)
set(STDOUT_LOG "${log_file}")
set(STDERR_LOG "${log_file}")
set(CMD_ARGS "-o \"${output_file}\" \"${CMAKE_CURRENT_SOURCE_DIR}/${rhino_model}\"")
configure_file(${BRLCAD_CMAKE_DIR}/builddir_cmd.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/3dm-g.cmake @ONLY)
set(output_file ${bin_root}/${DATA_DIR}/db/${rhino_model_root}.g)
# Use the model name for the script as well, since the output file is specific to this input
set(script_file "${CMAKE_CURRENT_BINARY_DIR}/${rhino_model_root}.cmake")
# We know enough - write the script
generate_cmd_script(3dm-g "${script_file}" OLOG "${log_file}" ELOG "${log_file}" CARGS "${CMD_ARGS}")
# Define the target
add_custom_command(
OUTPUT ${output_file}
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/3dm-g.cmake
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND ${CMAKE_COMMAND} -P "${script_file}"
DEPENDS 3dm-g ${CMAKE_CURRENT_SOURCE_DIR}/${rhino_model}
)
add_custom_target(${rhino_model_root}.g ALL DEPENDS ${output_file})
)
add_custom_target(${rhino_model_root}.g ALL DEPENDS ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file})
# Assign a target folder for tools like Visual Studio
set_target_properties(${rhino_model_root}.g PROPERTIES FOLDER "${folder}")
# If we're installing geometry, set up the install rule
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
if(NOT "${CMAKE_CFG_INTDIR}" STREQUAL "." AND CMAKE_CONFIGURATION_FILES)
string(REPLACE "${CMAKE_CFG_INTDIR}" "\${BUILD_TYPE}" output_file "${output_file}")
endif(NOT "${CMAKE_CFG_INTDIR}" STREQUAL "." AND CMAKE_CONFIGURATION_FILES)
install(FILES ${output_file} DESTINATION ${DATA_DIR}/db)
install(FILES ${CMAKE_CURRENT_BUILD_DIR_INSTALL}/${output_file} DESTINATION ${DATA_DIR}/db)
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
set(BUILT_MODELS "${BUILT_MODELS};${output_file}")
set(LOG_FILES "${LOG_FILES};${log_file}")
DISTCLEAN(${log_file})
endmacro(ADD_NIST_3DM_TARGET rhino_model folder)
# Cleanup
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file};${log_file}")
endfunction(ADD_NIST_3DM_TARGET rhino_model folder)
foreach(step_input ${NIST_SAMPLE_STEP_MODELS})
@@ -95,13 +99,21 @@ endforeach(rhino_input ${NIST_SAMPLE_3DM_MODELS})
CMAKEFILES(${NIST_SAMPLE_3DM_MODELS})
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${BUILT_MODELS}")
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${LOG_FILES}")
CMAKEFILES(
README
pdf
)
pdf/1.pdf
pdf/2.pdf
pdf/3.pdf
pdf/4.pdf
pdf/5.pdf
pdf/6.pdf
pdf/7-10_assem.pdf
pdf/7.pdf
pdf/8.pdf
pdf/9.pdf
pdf/10.pdf
pdf/11.pdf
)
# Local Variables:
# tab-width: 8
+26
View File
@@ -1887,6 +1887,19 @@ eprint = {}
timestamp = {2010.02.23}
}
@INPROCEEDINGS{Yapp11,
author = {Yapp, Clifford},
title = {A CMake-Based Cross Platform Build System for Tcl/Tk},
booktitle = {18'th Annual Tcl Association Tcl/Tk Conference Proceedings},
pages = {135-143},
year = {2011},
month = {October},
isbn = {978-0-578-09801-2},
note = {Presented at the 18th Tcl/Tk Conference in Manassas, VA on October 24-28, 2011},
owner = {morrison},
timestamp = {2016.11.27}
}
@TECHREPORT{Yapp12,
author = {Yapp, Clifford},
title = {Generating Coils in BRL-CAD},
@@ -2033,6 +2046,19 @@ eprint = {}
timestamp = {2015.12.01}
}
@TECHREPORT{Yapp17,
author = {Yapp, Clifford},
title = {Converting Geometry from Creo Parametric to BRL-CAD},
institution = {United States Army, Army Research Laboratory, Survivability/Lethality Analysis Directorate},
year = {2017},
month = {June},
number = {ARL-SR-0376},
address = {Army Research Laboratory, Aberdeen Proving Ground, MD 21005-5068},
note = {Approved for Public Release, distribution unlimited. Available online: http://www.arl.army.mil/arlreports/2017/ARL-SR-0376.pdf},
owner = {morrison},
timestamp = {2017.06.28}
}
@comment{jabref-meta: selector_journal:}
@comment{jabref-meta: selector_author:}
+14 -6
View File
@@ -1,13 +1,23 @@
if(BRLCAD_EXTRADOCS)
verbose_add_subdirectory(doc docbook)
else(BRLCAD_EXTRADOCS)
CMAKEFILES(docbook)
include(${CMAKE_CURRENT_SOURCE_DIR}/docbook_files.cmake)
CMAKEFILES_IN_DIR(docbook_files docbook)
endif(BRLCAD_EXTRADOCS)
verbose_add_subdirectory(doc html)
verbose_add_subdirectory(doc legal)
CMAKEFILES(parsers)
CMAKEFILES(
parsers/bison_to_lemon.txt
parsers/flex_to_re2c.txt
parsers/templates/CMakeLists.txt
parsers/templates/main.c
parsers/templates/main.h
parsers/templates/parser.lemon
parsers/templates/scanner.perplex
parsers/writing_perplex_lemon_parsers.txt
)
set(documentation_DATA
IDEAS
@@ -22,7 +32,6 @@ set(documentation_DATA
README.Windows
TODO.BREP
TODO.shaded_displays
anim.txt
archer_ack.txt
benchmark.tr
brep.txt
@@ -206,13 +215,10 @@ set(documentation_mged_old_DATA
mged/wm-prims.ps
mged/wm-tube.ps
mk.tr
movie.txt
old-mged.tr
pkg.tr
regions.txt
rounding.txt
sun.txt
tube.txt
tool_categories.txt
ecosystem.dot
)
@@ -226,7 +232,9 @@ CMAKEFILES(
STARTERS
STRATEGY
csv_to_comgeom.txt
docbook_files.cmake
implicit_constraints.txt
lcov.txt
pad_file.xml.in
trunk_hierarchy.org
)
+1 -2
View File
@@ -86,8 +86,7 @@ testing tool for TCP implementers via Network Working Group RFC 2398.
This product does not yet exist but is a long term goal. It's
basically several of the core libraries form BRL-CAD's geometry
modeling kernel including the present libbu, libbn, librt, libwdb,
liboptical, libmultispectral, and the ray-trace interface application
back-end.
liboptical, and the ray-trace interface application back-end.
This modeling kernel provides fundamental geometric representation,
ray-trace analysis, and geometric processing capabilities via a
+17
View File
@@ -42,3 +42,20 @@ compiled as libpng.so). If this happens, it likely indicates a problem
with the CMake build logic and should be reported as a bug - you may also
need to install a shared version of the library. Another possibility
would be to add -mipure-text to the linker flags.
OpenIndiana
-----------
To build with gcc and CMake on OpenIndiana, you need to install the
following packages:
pkg install pkg:/developer/gcc-7
pkg install pkg:/developer/build/cmake
pkg install pkg:/developer/versioning/subversion
pkg install pkg:/system/header
pkg install pkg:/developer/lexer/flex
(Note that gcc-7 building doesn't work as of 2017-08-23 - the above
install list is a starting point, but the repo currently doesn't
build and isn't close to building. It may be an older gcc would
have better luck...)
+9 -3
View File
@@ -43,9 +43,15 @@ BRL-CAD on Windows will generate over 800 of them) and a large list of
targets will appear. To build everything look for a target named
ALL_BUILD. Start compiling that target.
Once compilation is successfully complete, you may want to produce an
NSIS installer. If so, locate a target named PACKAGE and run it. The
end result should be an .exe file capable of installing BRL-CAD.
Once compilation is successfully complete, you can find the compiled
executables in a 'bin' directory in your build directory. For
example, mged.exe would be in brlcad-svn-trunk\.build\Debug\bin if
brlcad-svn-trunk\.build is the build directory specified to CMake and
CMAKE_BUILD_TYPE was set to Debug.
You may want to produce an NSIS installer. If so, locate a target
named PACKAGE and run it. The end result should be an .exe file
capable of installing BRL-CAD.
MINGW (WORK IN PROGRESS - THIS DOES NOT YET WORK!!!)
-----
-145
View File
@@ -1,145 +0,0 @@
Date: Fri, 30 Oct 87 3:58:14 EST
From: Phil Dykstra <phil@BRL.ARPA>
Subject: Re: Animation querry.
I have been meaning to put a few notes together about animation in
BRL-CAD for some time now. Your message presses the point so here's
a really quick basic overview. Note that animation control is
still very early and experimental. Don't be surprised if much of
it changes in the future.
------
The earliest form of animation was just changing the viewpoint.
So that RT could ray trace the "current" MGED view, a -M flag was
added which tells RT to read the viewing matrix from stdin.
This matrix is written on six lines in the form:
viewsize
xpos ypos zpos
[4x4 rotation matrix, 4 elements per line]
Such data can be saved along with an RT shell script by the "saveview"
command in MGED. To get just this data (i.e. without the shell script),
the "savekey" command can be used. Thus one can save a string of
viewpoint keyframes via "savekey." ["Times" can also be added to
the keyframes for the purposes of some interpolation programs.]
Several tools were written (not in the distribution) which generate
sequences of such views, interpolate a set a keyframes, etc.
The "rmats" command was added to allow a file of these views to be
read in to MGED so you could watch the keyframes go by. Feeding the
same data to RT (via the -M flag) computes an image for each view.
The views either go to the frame buffer, or if an output filename
is given, they go into files with frame number suffixes.
Animation previews are typically made via low resolution ray traces,
composited into one large image via "pixtile," and viewed on a frame
buffer via "fbanim" (preferably one with hardware pan and zoom).
Later we wished to articulate the models themselves, so a command
script language was created for RT. These are also fed to RT
via the -M flag. RT figures out whether it is given the old form
above or a real script. An animation description script contains
transformation matrices to be applied to the model tree. A simple
one might look like:
start 42;
clean;
anim frob/nitz matrix rmul
1 0 0 1
0 1 0 2
0 0 1 0
0 0 0 0;
end;
etc.
start - says to start frame number 42.
clean - make RT clean up after itself (this may not be needed any more...).
anim - says to apply an matrix animation to the arc connecting frob to
nitz. The type of matrix operation is a right multiply (choices
include right or left multiply, replace, or reroot (i.e. world
coordinates)).
end - tells it to go ahead and shoot this frame.
Eventually there will be things besides "matrix" animations to allow
material properties etc. to be animated.
Various outboard tools generate motions, merge animation scripts
together, allow the previewing/editing of motions, etc. For the
most part these tools are sufficiently ad hoc and experimental
that we aren't giving any of them away yet. Next year some time....
-------
I didn't explain any of it in much detail, but hopefully it
gives you an overview. One of these days we will write some
more about it - like when we start including some motion tools.
==============================
Date: Fri, 30 Oct 87 16:42:14 EST
From: Phil Dykstra <phil@BRL.ARPA>
Subject: Re: Animation querry.
Here's a bit more about the matrix operations available in RT
animation scripts.
-----
RT Matrix Animation Operations:
==============================
In BRL-CAD, matrices are handled in their usual mathematical form
(the transpose of the Newman and Sproull "computer graphics form").
That is, a matrix looks like this:
r1 r2 r3 dx
r4 r5 r6 dy
r7 r8 r9 dz
0 0 0 1/s
Points are *column* vectors, so a point is transformed by:
newpoint = Matrix * oldpoint;
Thus the world coordinate system is on the "left" end of a stack of
matrix operations; the local coordinate system being that of the point
on the extreme right.
In walking a model tree (such as "prep'ing" the model for ray tracing),
each arc crossed from root to leaf normally gets its matrix multiplied on
the right side of the current matrix stack[1]. Rigid body articulations
of a model can then be described by changing or adding matrices at the
appropriate points in this stack.
The matrix animation operations currently recognized by RT are:
rstack replace the entire stack up to this point
rarc replace the matrix on the specified arc
rboth replace the entire stack and the arc matrix
rmul arc = arc * Matrix
lmul arc = Matrix * arc
The path specifying where in the model tree the operation is to
be applied can either be an absolute path, e.g.
/body/left/arm/hand
which would affect the arc between the left arm of body and the hand
(note that hand need not be a leaf), or it can be a "wildcard", e.g.
arm/hand
would mean the arc between arm and hand anywhere in the model tree, i.e.
it is not restricted to the left one as above. Finally a wildcard like
arm
means the arc before any node called arm.
-------------------------
[1] It is interesting to note that our "right multiply" operation
corresponds exactly to the SGI Iris multmatrix() command. The later
pre-multiplies the matrix stack, but the matrix stack post-multiplies
any points being transformed! In fact, if one looks at the Iris at the
geometry engine level, one finds that it works with matrices in the
usual mathematical form - the gl2 library transposes them in and out of
N&S form.
+2 -1
View File
@@ -47,10 +47,11 @@ add_subdirectory(articles)
add_subdirectory(books)
add_subdirectory(lessons)
add_subdirectory(presentations)
add_subdirectory(resources)
add_subdirectory(specifications)
add_subdirectory(system)
CMAKEFILES(README fop.xconf.in log4j.properties resources)
CMAKEFILES(README fop.xconf.in log4j.properties)
CMAKEFILES(README.DB_authors_notes)
CMAKEFILES(css/brlcad.css)
-10
View File
@@ -3881,11 +3881,6 @@
<link xlink:href="../../man1/en/rtshot.php">Rt shot</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/rttherm.php">Rt therm</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/rtwalk.php">Rt Walk</link>
@@ -3931,11 +3926,6 @@
<link xlink:href="../../man1/en/showtherm.php">Show Therm </link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/ssamp-bw.php">Ssamp Bw</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/stl-g.php">Stl g</link>
-4
View File
@@ -138,10 +138,6 @@ eccetera.</para>
(fb), che gestisce l'apertura di una finestra di framebuffer sulla quale
effettuare il raytracing.</para>
<para>- <emphasis role="bold">libmultispectral</emphasis><emphasis role="bold">and liboptical</emphasis> &#xFFFD;
sono le librerie per lo shading ed il texturing utilizzate dal
raytracing.</para>
<para>- <emphasis role="bold">libpkg</emphasis> &#xFFFD; &#xFFFD; una libreria che inplementa il
meccanismo per il richiamo di una procedura remota (rpc). Questa libreria &#xFFFD;
un predecessore del sistema attuale rpc. Al contrario del tipico servizio
@@ -122,7 +122,7 @@
</listitem>
<listitem>
<para>
libmultispectral and liboptical - the shader and texturing libraries for the raytracer.
liboptical - the shader and texturing library for the raytracer.
</para>
</listitem>
<listitem>
+69
View File
@@ -0,0 +1,69 @@
set(dr_ignore_files
CMakeLists.txt
README
brlcad/brlcad-article-fo-stylesheet.xsl.in
brlcad/brlcad-article-xhtml-stylesheet.xsl.in
brlcad/brlcad-book-fo-stylesheet.xsl.in
brlcad/brlcad-book-xhtml-stylesheet.xsl.in
brlcad/brlcad-common.xsl.in
brlcad/brlcad-fo-stylesheet.xsl.in
brlcad/brlcad-fonts.xsl.in
brlcad/brlcad-gendata.xsl
brlcad/brlcad-lesson-fo-stylesheet.xsl.in
brlcad/brlcad-lesson-xhtml-stylesheet.xsl.in
brlcad/brlcad-man-fo-stylesheet.xsl.in
brlcad/brlcad-man-stylesheet.xsl.in
brlcad/brlcad-man-xhtml-stylesheet.xsl.in
brlcad/brlcad-presentation-fo-stylesheet.xsl.in
brlcad/brlcad-presentation-xhtml-stylesheet.xsl.in
brlcad/brlcad-specification-fo-stylesheet.xsl.in
brlcad/brlcad-specification-xhtml-stylesheet.xsl.in
brlcad/brlcad-xhtml-header-navigation.xsl
brlcad/brlcad-xhtml-stylesheet.xsl.in
brlcad/center-table-print.xsl
brlcad/images/brlcad-logo-669966.svg
brlcad/images/brlcad-logo-6699cc.svg
brlcad/images/brlcad-logo-blue.svg
brlcad/images/brlcad-logo-cc6666.svg
brlcad/images/brlcad-logo-cc9966.svg
brlcad/images/brlcad-logo-green.svg
brlcad/images/brlcad-logo-limegreen.svg
brlcad/images/brlcad-logo-red.svg
brlcad/images/logo-vm-gears.png
brlcad/images/logo-vm-gears.svg
brlcad/presentation.xsl.in
brlcad/tutorial-cover-template.xsl.in
brlcad/tutorial-template.xsl.in
brlcad/wordpress.xsl.in
other/README.schema
other/docbook-5.0.tar.bz2
other/docbook5xi.rnc
other/docbookxi.nvdl
other/expand.cmake
other/fonts/README
other/fonts/dejavu-lgc-fonts.tar.bz2
other/fonts/dejavu_COPYING.txt
other/fonts/stix-fonts.tar.bz2
other/fonts/stix_COPYING.txt
other/fonts/y14.5.tar.bz2
other/fonts/y14.5_COPYING.txt
other/offo/README.offo
other/offo/licenses.txt
other/offo/offo-2.0.tar.bz2
other/standard/README.svg
other/standard/README.xsl
other/standard/docbook-xsl-ns.tar.bz2
other/standard/met-fonts.xsl
other/standard/w3_svg_dtd.tar.bz2
)
CMAKEFILES(${dr_ignore_files})
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-2
View File
@@ -219,7 +219,6 @@ set(man1_EN
rtregis.xml
rtscale.xml
rtshot.xml
rttherm.xml
rtwalk.xml
rtweight.xml
rtwizard.xml
@@ -229,7 +228,6 @@ set(man1_EN
shapefact.xml
showshot.xml
showtherm.xml
ssamp-bw.xml
stl-g.xml
sun-pix.xml
tabinterp.xml
-165
View File
@@ -1,165 +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='rttherm1'>
<refmeta>
<refentrytitle>RTTHERM
</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
</refmeta>
<refnamediv>
<refname>rttherm</refname>
<refpurpose>raytrace a hyper-spectral thermal image of an mged model</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>rttherm</command>
<arg choice='opt' rep='repeat'><replaceable>options</replaceable></arg>
<arg choice='plain'>-o <replaceable>output.ssamp</replaceable></arg>
<arg choice='plain'><replaceable>model.g</replaceable></arg>
<arg choice='plain' rep='repeat'><replaceable>objects</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para><citerefentry><refentrytitle>rttherm</refentrytitle><manvolnum>1</manvolnum></citerefentry>
is a member of the RTUIF family of programs,
and implements the same options as
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
with the exception that the
<option>-F</option>
(framebuffer)
option is currently not implemented and reserved for future use.
<citerefentry><refentrytitle>rttherm</refentrytitle><manvolnum>1</manvolnum></citerefentry>
creates a hyper-spectral ray-trace into
the output file
specified with the
<option>-o</option>
option.
It also writes a second file (using bn_table_write) with
the suffix ".spect" which describes
the spectral sampling pattern used when creating the output file.</para>
</refsect1>
<refsect1 xml:id='specifying_temperatures'><title>SPECIFYING TEMPERATURES</title>
<para>Temperatures are always specified in degrees Kelvin ("Kelvins").</para>
<para>The background (ambient) temperature may be set from the command
line with the
<option>-c set bg_temp=degK</option>
command, or in the animation script with the command</para>
<literallayout remap='.nf'>
set bg_temp=293.0
</literallayout> <!-- .fi -->
<para>which is the default. (20 degrees C is 293 degrees Kelvin).</para>
<para>The spectral sampling density may be set from the command line
with the
<option>-c set spectrum=nsamp/lo_nm/hi_nm</option>
option, or in the animation script with the command</para>
<literallayout remap='.nf'>
set spectrum=nsamp/lo_nm/hi_nm
</literallayout> <!-- .fi -->
<para>The default setting is 100/380/12000,
which takes 100 samples equally spaced from 380nm (low end of the optical
band) to 12microns (upper end of the "Far-IR" band).</para>
<para><citerefentry><refentrytitle>rttherm</refentrytitle><manvolnum>1</manvolnum></citerefentry>
is built using
<citerefentry><refentrytitle>libmultispectral</refentrytitle><manvolnum>3</manvolnum></citerefentry>
rather than
<citerefentry><refentrytitle>liboptical</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
which provides a similar set of shaders.
Most notable is the "temp" shader,
which applies a two-dimensional temperature map to a region
in exactly the same way as the "texture" and "bwtexture" shaders apply
colors to the surface.</para>
<para>The temperature of a region may be modified by the
rt animation script which is read by
<citerefentry><refentrytitle>rttherm</refentrytitle><manvolnum>1</manvolnum></citerefentry>
when the
<option>-M</option>
flag is specified.
The syntax of the anim command is:</para>
<literallayout remap='.nf'>
anim path temp ## ;
</literallayout> <!-- .fi -->
<para>where
"anim" is a keyword,
"path" is the path specification for the affected combination(s),
"temp" is a keyword ("temperature" is also accepted), and
## is the new temperature for the combination(s) in Kelvins.</para>
<para>The Tcl interface to the database supports adjusting region temperatures.
The syntax of the anim command is:</para>
<literallayout remap='.nf'>
db put|adjust combname temp ##
</literallayout> <!-- .fi -->
<para>where
"db" is the name of the Tcl database object for the desired
database (typically "db" or ".inmem"),
"put" and "adjust" are keywords,
"combname" is the name of the combination,
"temp" is a keyword,
and
## is the new temperature for the combination in Kelvins.
Note that the BRL-CAD v4 database has no place for
storing region temperatures on disk,
so this command won't have any effect on v4 databases.</para>
</refsect1>
<refsect1 xml:id='post_processing'><title>POST PROCESSING</title>
<para><citerefentry><refentrytitle>ssampview</refentrytitle><manvolnum>1</manvolnum></citerefentry>
is a GUI tool for viewing
the multi-spectral output files created by
<citerefentry><refentrytitle>rttherm</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
In the works is a post-processing tool which will
extract a spectral window into a conventional
8-bit/pixel
<citerefentry><refentrytitle>bw</refentrytitle><manvolnum>5</manvolnum></citerefentry>
file, probably in two steps:
(1) extracting a representative power value per pixel
into a
<citerefentry><refentrytitle>dbw</refentrytitle><manvolnum>5</manvolnum></citerefentry>
(double-precision .bw file),
and then (2) using
<citerefentry><refentrytitle>cv</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to perform a direct conversion, or using
<citerefentry><refentrytitle>dpix-pix</refentrytitle><manvolnum>1</manvolnum></citerefentry>
or similar tool to perform scaling and/or auto-ranging.</para>
</refsect1>
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
<para><citerefentry><refentrytitle>brlcad</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>mged</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</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 United States Government as
represented by the 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>
-119
View File
@@ -1,119 +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='ssampbw1'>
<refmeta>
<refentrytitle>SSAMP-BW
</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
</refmeta>
<refnamediv>
<refname>ssamp-bw</refname>
<refpurpose>convert spectral sample data into a monochrome image</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>ssamp-bw</command>
<arg choice='opt'>-v </arg>
<arg choice='opt'>-s <replaceable>squarefilesize</replaceable></arg>
<arg choice='opt'>-w <replaceable>file_width</replaceable></arg>
<arg choice='opt'>-n <replaceable>file_height</replaceable></arg>
<arg choice='opt'>-l <replaceable>lower_wavelen</replaceable></arg>
<arg choice='opt'>-u <replaceable>upper_wavelen</replaceable></arg>
<arg choice='opt'>-m <replaceable>minval</replaceable></arg>
<arg choice='opt'>-M <replaceable>maxval</replaceable></arg>
<arg choice='plain'><replaceable>file.ssamp</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para><citerefentry><refentrytitle>ssamp-bw</refentrytitle><manvolnum>1</manvolnum></citerefentry>
reads a
<citerefentry><refentrytitle>ssamp</refentrytitle><manvolnum>5</manvolnum></citerefentry>
format file of spectral samples for the named file,
and produces a monochrome image in
<citerefentry><refentrytitle>bw</refentrytitle><manvolnum>5</manvolnum></citerefentry>
format.
The spectral definition is read from a second file named
file.ssamp.spect</para>
<para>Using the
<option>-l</option>
and
<option>-u</option>
parameters, a filter is constructed to select the energy collected
over a portion of the spectrum.
This filter is convolved with each pixel of the two-dimensional input
file and the power levels are summed into a two-dimensional array of
scalor results.</para>
<para>The scalor array is scanned to compute the maximum and minimum
power levels encountered in this image.
These are used to drive an "automatic gain control" algorithm
which maximizes the use of the limited 0..255 intensity output range.
Using the
<option>-m</option>
and
<option>-M</option>
options, either the minimum or maximum values (or both) may
be over-ridden from the command line.
This is particularly useful when processing a series of
<emphasis remap='I'>ssamp</emphasis>
files
(e.g. for an animation sequence)
and you don't want the gain control settings changing
from frame to frame.</para>
<para>The
<option>-v</option>
option sets "verbose" mode,
causing the spectral sampling definition and the filter kernel to be
printed on standard error.</para>
</refsect1>
<refsect1 xml:id='example'><title>EXAMPLE</title>
<para> ssamp-bw -s512 -M0.3 -l3000 -u5000 moss.ssamp | bw-fb -s512</para>
<para>This converts the energy received in the 3-5 micron ("mid-IR") band
into a monochrome image,
clamping any power greater than 0.3 to a value of 255 in the output,
and displays this monochrome image on the current framebuffer.</para>
</refsect1>
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
<para><citerefentry><refentrytitle>rttherm</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>bw-fb</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>dpix-pix</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>pix</refentrytitle><manvolnum>5</manvolnum></citerefentry></para>
</refsect1>
<refsect1 xml:id='diagnostics'><title>DIAGNOSTICS</title>
<para>If the
<emphasis remap='I'>pix</emphasis>
file is shorter than expected,
or the size parameters are given incorrectly,
an error is printed.</para>
<para>If the spectral range specified for the filter is outside the
spectral range sampled in the input file, the program aborts with an error.</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) 2000-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>
+11 -11
View File
@@ -81,7 +81,7 @@
a schema file to store information, and newer schemas are also available in an XML form in addition to EXPRESS.)
</para>
<para>
A number of <link xlink:href="http://www.steptools.com/support/stdev_docs/express/step_irs/">other</link> low level parts and higher level Application Interpreted Constructs (AICs) form the foundation
A number of <link xlink:href="https://en.wikipedia.org/wiki/List_of_STEP_%28ISO_10303%29_parts#AIC_-_Application_interpreted_constructs">other</link> low level parts and higher level Application Interpreted Constructs (AICs) form the foundation
on which the more complete "high level" parts are defined. This separation is performed mainly to allow
maximal sharing and compatibility between different high level parts that need the same lower level foundations.
</para>
@@ -104,23 +104,23 @@
<tbody>
<row>
<entry>AP203</entry>
<entry><link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=20597">Configuration controlled 3D designs of mechanical parts and assemblies</link></entry>
<entry>Most recent version is 10303-203:1994 with additions and corrections as follows. The original document was subsequently revised by one amendment<link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=34177">10303-203:1994/Amd 1:2000 </link> and three corrections: <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=26904">10303-203:1994/Cor 1:1996 </link>, <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=30943">10303-203:1994/Cor 2:1998 </link>, and <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=40190">10303-203:1994/Cor 3:2004 </link> </entry>
<entry><link xlink:href="https://www.iso.org/standard/20597.html">Configuration controlled 3D designs of mechanical parts and assemblies</link></entry>
<entry>Most recent version is 10303-203:1994 with additions and corrections as follows: the original document was subsequently revised by one amendment <link xlink:href="https://www.iso.org/standard/34177.html">10303-203:1994/Amd 1:2000 </link> and three corrections: <link xlink:href="https://www.iso.org/standard/26904.html">10303-203:1994/Cor 1:1996 </link>, <link xlink:href="https://www.iso.org/standard/30943.html">10303-203:1994/Cor 2:1998 </link>, and <link xlink:href="https://www.iso.org/standard/40190.html">10303-203:1994/Cor 3:2004 </link>. <link xlink:href="https://www.iso.org/standard/39522.html">10303-203:2005</link> is considered a revision to this standard.</entry>
</row>
<row>
<entry>AP203e2</entry>
<entry> <link xlink:href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=44305">Configuration controlled 3D designs of mechanical parts and assemblies</link></entry>
<entry>Most recent version is 10303-203:2011. Revises <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=39522">10303-203:2005</link>, which is listed as a modular version that is harmonized with ISO 10303-2014.</entry>
<entry> <link xlink:href="https://www.iso.org/standard/44305.html">Configuration controlled 3D designs of mechanical parts and assemblies</link></entry>
<entry>Most recent version is 10303-203:2011. Revises <link xlink:href="https://www.iso.org/standard/39522.html">10303-203:2005</link>, which is listed as a modular version that is harmonized with ISO 10303-214. <link xlink:href="https://www.iso.org/standard/57620.html">10303-242:2014</link> is considered a revision to this standard.</entry>
</row>
<row>
<entry>AP214</entry>
<entry> <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=43669">Core data for automotive mechanical design processes</link></entry>
<entry>Most recent version is 10303-214:2010. Two earlier versions exist: <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=38727">10303-214:2003</link> and <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=23643">10303-214:2001</link></entry>
<entry> <link xlink:href="https://www.iso.org/standard/43669.html">Core data for automotive mechanical design processes</link></entry>
<entry>Most recent version is 10303-214:2010 (a.k.a AP214e3). Two earlier versions exist: <link xlink:href="https://www.iso.org/standard/38727.html">10303-214:2003</link> and <link xlink:href="https://www.iso.org/standard/23643.html">10303-214:2001</link>. <link xlink:href="https://www.iso.org/standard/57620.html">10303-242:2014</link> is considered a revision to this standard.</entry>
</row>
<row>
<entry>AP242</entry>
<entry><link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=57620">Managed model-based 3D engineering</link></entry>
<entry>Most recent version is 242:2014. This standard is intended to consolidate and replace AP203e2 and AP214.</entry>
<entry><link xlink:href="https://www.iso.org/standard/57620.html">Managed model-based 3D engineering</link></entry>
<entry>Most recent version is 10303-242:2014. This standard is intended to consolidate and replace AP203e2 and AP214. One correction has been published: <link xlink:href="https://www.iso.org/standard/72059.html">10303-242:2014/Cor 1:2016</link>.</entry>
</row>
</tbody>
</tgroup>
@@ -148,10 +148,10 @@
The standards define the structure of the schemas, but in general when it comes to the nuts and bolts of implementing a practical importer and exporter more resources are needed. Below are links to some implementation resources:
</para>
<para>
PDES, Inc. Industry consortium <link xlink:href="http://www.steptools.com/support/stdev_docs/express/ap203/recprac203v8.pdf">Recommended Practices for AP203</link>, April 1998
PDES, Inc. Industry consortium <link xlink:href="http://www.oasis-open.org/committees/download.php/11728/recprac8.pdf">Recommended Practices for AP203</link>, April 1998
</para>
<para>
PDM Implementer Forum, <link xlink:href="http://www.steptools.com/support/stdev_docs/express/pdm/pdmug_release4_3.pdf">Usage Guide for the STEP PDM Schema V1.2 Release 4.3</link>, January 2002.
PDM Implementer Forum, <link xlink:href="http://www.cax-if.org/documents/pdmug_release4_3.pdf">Usage Guide for the STEP PDM Schema V1.2 Release 4.3</link>, January 2002.
</para>
<para>
CAx Implementer Forum Recommended Practices: <link xlink:href="https://www.cax-if.org/joint_testing_info.html#recpracs"></link>
+2 -1
View File
@@ -53,6 +53,7 @@ set(mann_EN
cpi.xml
d.xml
db.xml
dbfind.xml
db_glob.xml
dbconcat.xml
dbupgrade.xml
@@ -88,7 +89,6 @@ set(mann_EN
eye_pt.xml
facedef.xml
facetize.xml
find.xml
fracture.xml
g.xml
garbage_collect.xml
@@ -201,6 +201,7 @@ set(mann_EN
shader.xml
shells.xml
showmats.xml
simulate.xml
size.xml
solids.xml
sph-part.xml
+33 -27
View File
@@ -21,43 +21,49 @@
<arg rep="norepeat">options</arg>
</cmdsynopsis>
<variablelist>
<varlistentry><term></term><listitem>
<cmdsynopsis sepchar=" ">
<command>get</command>
<group choice="req" rep="norepeat">
<arg choice="plain">faces</arg>
<arg choice="plain">minEdge</arg>
<arg choice="plain">maxEdge</arg>
<arg choice="plain">orientation</arg>
<arg choice="plain">type</arg>
<arg choice="plain">vertices</arg>
</group>
<arg choice="req" rep="norepeat">input_bot</arg>
</cmdsynopsis>
</listitem></varlistentry>
<varlistentry><term></term><listitem>
<cmdsynopsis sepchar=" ">
<command>chull</command>
<arg choice="req" rep="norepeat">input_bot</arg>
<arg choice="req" rep="norepeat">output_bot</arg>
</cmdsynopsis>
</listitem></varlistentry>
<varlistentry><term></term><listitem>
<cmdsynopsis sepchar=" ">
<command>get</command>
<group choice="req" rep="norepeat">
<arg choice="plain">faces</arg>
<arg choice="plain">minEdge</arg>
<arg choice="plain">maxEdge</arg>
<arg choice="plain">orientation</arg>
<arg choice="plain">type</arg>
<arg choice="plain">vertices</arg>
</group>
<arg choice="req" rep="norepeat">input_bot</arg>
</cmdsynopsis>
</listitem></varlistentry>
<varlistentry><term></term><listitem>
<cmdsynopsis sepchar=" ">
<command>chull</command>
<arg choice="req" rep="norepeat">input_bot</arg>
<arg choice="req" rep="norepeat">output_bot</arg>
</cmdsynopsis>
</listitem></varlistentry>
<varlistentry><term></term><listitem>
<cmdsynopsis sepchar=" ">
<command>solid</command>
<arg choice="req" rep="norepeat">input_bot</arg>
</cmdsynopsis>
</listitem></varlistentry>
</variablelist>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>The <command>bot</command> command.</para>
<para>The <command>bot</command> command.</para>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title>
<para>BRL-CAD Team</para>
<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>
<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,14 +1,14 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="find">
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="dbfind">
<refmeta>
<refentrytitle>FIND</refentrytitle>
<refentrytitle>DBFIND</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>find</refname>
<refname>dbfind</refname>
<refpurpose>Displays all combinations that have any of the <emphasis>objects</emphasis> specified
as a member.
</refpurpose>
@@ -17,7 +17,7 @@ as a member.
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>find</command>
<command>dbfind</command>
<arg choice="req" rep="norepeat"><replaceable>objects</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
@@ -31,13 +31,13 @@ as a member.
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>find</command> command to display all combinations that refer to the specified object.
<para>The example shows the use of the <command>dbfind</command> command to display all combinations that refer to the specified object.
</para>
<example><title>Display all combinations that refer to a specified object.</title>
<variablelist>
<varlistentry>
<term><prompt>mged&gt;</prompt> <userinput>find shapea</userinput></term>
<term><prompt>mged&gt;</prompt> <userinput>dbfind shapea</userinput></term>
<listitem>
<para>Lists all combinations that refer to <emphasis>shapea</emphasis>.
</para>
+9 -1
View File
@@ -19,7 +19,7 @@ command. If the object argument is supplied, only those objects are listed.
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>ls</command>
<arg choice="opt" rep="norepeat">-A -o -a -c -r -s -p -l -q</arg>
<arg choice="opt" rep="norepeat">-A -o -a -c -r -s -p -l -q -H -S</arg>
<arg choice="opt" rep="norepeat"><replaceable>objects</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
@@ -60,6 +60,14 @@ command. If the object argument is supplied, only those objects are listed.
length.
</para>
</listitem>
<listitem>
<para>H -- When printing using long format, use human readable sizes for object size.
</para>
</listitem>
<listitem>
<para>S -- Sort using object size rather than object name.
</para>
</listitem>
<listitem>
<para>q -- Suppress informational output messages during database lookup process
</para>
+28 -4
View File
@@ -41,11 +41,16 @@
<para>
Search Inputs are specified using
<link linkend="primitives">PATHS</link> and
matching of objects is done according to boolean
expressions formed using the
matching of objects is done according to a search plan
built using boolean
expressions constructed using the
<link linkend="primitives">PRIMITIVES</link> and
<link linkend="operators">OPERATORS</link>
described below.
described below. Note that <link linkend="search_options">OPTIONS</link>
are not used to form search plans - unlike the search plan they are specified
<emphasis remap="I">before</emphasis> the paths and are used to control settings
that apply globally to <command>search</command>'s behavior and reporting during
the execution of the search.
</para>
</refsection>
@@ -656,7 +661,6 @@
</para>
</example>
<example><title>Name Pattern Matching at Depth &gt;= 3</title>
<para>
@@ -868,6 +872,26 @@
Prints all BoT primitives using "plate" mode, instead of the closed-mesh-requiring "volume" mode.
</para>
</example>
<example><title>Verbose Reporting of Search Information </title>
<para>
<prompt>mged&gt; </prompt><userinput>search -v /all.g ! -type comb</userinput>
<literallayout class="normal">
/u all.g(c)/u platform.r(r)/u platform.s(arb8)
/u all.g(c)/u box.r(r)/u box.s(arb8)
/u all.g(c)/u cone.r(r)/u cone.s(tgc)
/u all.g(c)/u ellipse.r(r)/u ellipse.s(ell)
/u all.g(c)/u tor.r(r)/u tor(tor)
/u all.g(c)/u light.r(r)/u LIGHT(ell)
</literallayout>
</para>
<para>
Report all paths ending in an object that is not a comb using "verbose" output style. The
verbose form of path reporting reports not just the path, but the boolean operator used at
each setp along the path and the primitive type of each object along the path.
</para>
</example>
<example><title>Using <command>search</command> Results</title>
<para>
+208
View File
@@ -0,0 +1,208 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="simulaten">
<refmeta>
<refentrytitle>SIMULATE</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>simulate</refname>
<refpurpose>
a Bullet-based physics simulator for MGED
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>simulate</command>
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
<arg choice="plain"><replaceable>path</replaceable></arg>
<arg choice="plain"><replaceable>duration</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>
<command>simulate</command> performs rigid-body physics evaluation.
The Bullet physics engine is used with a collision algorithm that
utilizes the librt ray tracer.
</para>
<para>
The <replaceable>path</replaceable> parameter specifies the path to the
objects within the simulation. All primitives under this path are regarded
as separate physical objects by default. If a combination has the
attribute <literal>simulate::type=region</literal>, all primitives below it
in the hierarchy are regarded as one physical object.
</para>
<para>
The <replaceable>duration</replaceable> parameter specifies the duration
of the physics simulation (each use of the <command>simulate</command>
command operates within a new physics environment).
</para>
<para>
All values are specified in units of meters, kilograms, and seconds.
Note that Bullet is primarily designed for objects of sizes between
approximately 0.05 and 10.0 meters, with a collision tolerance of 0.004
meters; hence, using <command>simulate</command> on a model that is
significantly different from this scale may give worse results.
</para>
</refsection>
<refsection xml:id="simulate_options"><title>OPTIONS</title>
<variablelist remap="TP">
<varlistentry>
<term><emphasis remap="B" role="bold">--debug=<replaceable>MODE</replaceable></emphasis></term>
<listitem>
<para>
Set the debugging mode. Multiple mode flags can be separated
using commas.
<variablelist remap="B">
<varlistentry>
<term><emphasis remap="I">aabb</emphasis></term>
<listitem><para>
Draw Bullet's axis-aligned bounding boxes after
the simulation step. These can usually be regarded as
indicating the "true" position of geometry. Any discrepancies
may indicate that the <command>simulate</command> command is
incorrectly applying the Bullet transformations.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="I">contact</emphasis></term>
<listitem><para>
Draw all of Bullet's collision contact points during the
simulation.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="I">ray</emphasis></term>
<listitem><para>
Draw all of the rays fired by the internal
collision detection algorithm.
</para></listitem>
</varlistentry>
</variablelist>
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection xml:id="simulate_attributes"><title>OBJECT ATTRIBUTES</title>
<para>
The simulation can be configured by setting certain attributes on objects
within the specified path.
</para>
<variablelist remap="TP">
<varlistentry>
<term><emphasis remap="B" role="bold">simulate::type=<replaceable>TYPE</replaceable></emphasis></term>
<listitem>
<para>
Specify the type of the associated object.
<variablelist remap="B">
<varlistentry>
<term><emphasis remap="I">region</emphasis></term>
<listitem><para>
Regard all solids under this combination as belonging to
one rigid body.
</para></listitem>
</varlistentry>
</variablelist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">simulate::mass=<replaceable>SCALAR</replaceable></emphasis></term>
<listitem>
<para>
Specify the mass of the associated object. Objects with a mass of
<literal>0.0</literal> are immobile.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">simulate::linear_velocity=&lt;<replaceable>x</replaceable>, <replaceable>y</replaceable>, <replaceable>z</replaceable>&gt;</emphasis></term>
<listitem>
<para>
Specify the linear velocity of the associated object as a vector.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">simulate::angular_velocity=&lt;<replaceable>x</replaceable>, <replaceable>y</replaceable>, <replaceable>z</replaceable>&gt;</emphasis></term>
<listitem>
<para>
Specify the angular velocity of the associated object as a vector.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">simulate::gravity=&lt;<replaceable>x</replaceable>, <replaceable>y</replaceable>, <replaceable>z</replaceable>&gt;</emphasis></term>
<listitem>
<para>
Specify the acceleration due to gravity as a vector. This
attribute can only be applied to the topmost object under
<replaceable>path</replaceable>. The default gravity vector
is <literal>&lt;0.0, 0.0, -9.80665&gt;</literal>, specifying an
accleration of -9.8 mm/s/s along the z-axis.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">simulate::grid_radius=x</emphasis></term>
<listitem>
<para>
Specify the number of rays along the radii of the circular grids of
rays fired during collision detection. This attribute can only be
applied to the topmost object under <replaceable>path</replaceable>.
The default value is <literal>10</literal>.
</para>
</listitem>
</varlistentry>
</variablelist>
</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) 2017 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 : -->
File diff suppressed because it is too large Load Diff
+4 -3
View File
@@ -336,10 +336,11 @@ ADD_DOC(relnotes_5_summary_HTML html/ReleaseNotes/Rel5.0/Summary)
ADD_DOC(ReleaseNotes/Rel6.0/index.html html/ReleaseNotes/Rel6.0)
add_subdirectory(manuals/mged/animmate)
set(html_ignore_files
ReleaseNotes/Rel6.0
manuals/mged/animmate
manuals/shaders
ReleaseNotes/Rel6.0/index.html
manuals/shaders/camo.html
manuals/small-eagleCAD.ico
)
CMAKEFILES(${html_ignore_files})
-1
View File
@@ -80,7 +80,6 @@ BRL-CAD<font size="-1">(tm)</font> Unleashed
<ol>
<li><H2>rt</h2>
<li><H2>remrt</h2>
<li><H2>rttherm</h2>
<li><H2><a HREF="shaders/index.html">Shaders and Material Properties</a></h2>
<li><H2>Animation</h2>
<ol>
@@ -0,0 +1,78 @@
set(anim_ignore_files
CMakeLists.txt
anim_cascade.html
anim_doc.html
anim_fly.html
anim_hardtrack.html
anim_keyread.html
anim_lookat.html
anim_man_pages.html
anim_offset.html
anim_orient.html
anim_script.html
anim_sort.html
anim_time.html
anim_track.html
anim_turn.html
anim_tut.html
animate.html
ceditor.gif
chan_mult.html
chan_permute.html
combine_doc.html
cscripts.gif
curve_doc.html
end_tut.html
etime.gif
fbanim.html
left.tcl
left_wheels.txt
mmenu.gif
object_tut.html
oscript.gif
oscript_doc.html
pixtile.html
prep_tut.html
right.tcl
right_wheels.txt
rt.html
rt_tut.html
scriptsort.html
show_doc.html
sscripts.gif
tabinterp.html
table_doc.html
tabsub.html
tank_path.txt
teditor.gif
track.txt
track_tut.html
tscript.gif
tscript_doc.html
tut.html
tut1.png
tut2.png
tut4.gif
tut5.gif
tut6.png
tut7.png
tut8.png
vcdwidget.gif
vceditor.gif
vcurve_doc.html
vdraw.html
view_tut.html
viewget.html
vscript_doc.html
)
CMAKEFILES(${anim_ignore_files})
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+12
View File
@@ -194,6 +194,8 @@
<FONT SIZE=2><P></FONT><A HREF="#garbage_collect"><FONT SIZE=2>garbage_collect</FONT></A></TD>
<TD WIDTH="20%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#gui"><FONT SIZE=2>gui</FONT></A></TD>
<TD WIDTH="20%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#heal"><FONT SIZE=2>heal</FONT></A></TD>
<TD WIDTH="22%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#help"><FONT SIZE=2>help</FONT></A></TD>
<TD WIDTH="21%" VALIGN="MIDDLE">
@@ -1714,6 +1716,16 @@ foo.r_xpand/R
</TR>
</TABLE>
<FONT SIZE=2><P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="heal"></A>heal</B> [<I>command</I>]</DT>
<DD><P>The &quot;heal&quot; command takes in the bot as input along with the tolerances. As of now, it takes the tolerance only for zippering. </P>
<P>The healing essentially comprises only of zippering now, but more features will be added later on. The algorithm cannot support non-manifold meshes (those containing singular vertices or edges). The bots need not be oriented, the algorithm takes care of that. </P></DD>
<FONT SIZE=4><DT>Examples:</DT>
</FONT><TT><DD>mged&gt;</TT> <B>heal samplebot.s 47.3</DD>
</DL>
<FONT SIZE=2><P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="help"></A>help</B> [<I>command</I>]</DT>
+34
View File
@@ -0,0 +1,34 @@
Notes on using gcov/lcov with BRL-CAD
Build with the BRLCAD_ENABLE_CAPTURE option set to ON
If using only gcov, you need to cd to the directory where the object files were
built and specify the object file(s) in question fully, e.g. (from the build
directory):
$ cd src/libbu/CMakeFiles/libbu.dir/
$ gcov b64.c.o vls.c.o
File '/brlcad/src/libbu/b64.c'
Lines executed:88.10% of 126
/brlcad/src/libbu/b64.c:creating 'b64.c.gcov'
File '/brlcad/src/libbu/vls.c'
Lines executed:74.66% of 363
/brlcad/src/libbu/vls.c:creating 'vls.c.gcov'
When running lcov (from the build directory, assuming the
build directory itself is <source_dir>/build):
find . -name '*.gcda' -print0 | xargs -0 rm
make -j3 check
lcov --capture --directory . --output-file coverage.info
lcov -r coverage.info \*\/build\/\* > coverage-2.info
lcov -r coverage-2.info \*\/other\/\* > coverage-3.info
lcov -r coverage-3.info \/usr\/\* > coverage-4.info
lcov -r coverage-4.info \*\/misc\/\* > coverage-5.info
lcov -r coverage-5.info \*\/tests\/\* > coverage_cad.info
rm coverage-*.info
genhtml coverage_cad.info --output-directory lcov-output
-29
View File
@@ -1,29 +0,0 @@
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
General Discussion about how to Make Animations using the BRL-CAD Package
There are several distinct aspects to producing an animation:
1) The creative insight.
2) Specification of the geometry.
3) Specification of the material properties, colors, textures.
4) Specification of the model motion and articulation (choreography),
plus specification of the camera motion and lighting details
(cinematography).
5) Previewing the animation sequence using wireframe tools.
6) Computation ("rendering") of the final sequence in very low
resolution, suitable for frame-buffer animation previews (see
fbanim(1)).
7) Computation ("rendering") of the final ray-traced images, storing
them in .pix files.
8) Viewing selected frames, to review them for quality.
9) Recording of the final images either on videotape or 16mm movie
film.
-27
View File
@@ -1,27 +0,0 @@
Some notes on using BRL-CAD on Sun Workstations (Release 3.0):
As of Release 3.0 MGED is much improved on the Suns. It now opens
its own window which can be resized, iconified, etc., like other
windows under SunTools.
While a generic replacement for knobs and buttons was not completed,
the function keys F1-F7 help somewhat. Pressing these keys attaches
certain "knob" functions to the mouse X or Y motions:
F# Function Mouse
1 Zoom y
2 Z Slew y
3 X Slew x
4 Y Slew y
5 X Rotate x
6 Y Rotate y
7 Z Rotate y
These keys can be used as "chords", e.g. pressing F3 and F4 together
will give you X and Y translates on the mouse.
Frame buffer support has also been greatly enhanced, but the released
version does not yet open its own window for display. Rather, it
covers the window a frame buffer command was invoked from with the
display. Panning and Zooming are now supported, as is shared memory.
"/dev/sunp" can be used to get private memory.
-3
View File
@@ -24,7 +24,6 @@ rtscale
rtshot
rtsil
rtsrv
rttherm
rtwalk
rtweight
rtwizard (GUI)
@@ -150,7 +149,6 @@ pix-yuv
png-bw
png-pix
rle-pix
ssamp-bw
sun-pix
u-a
u-bw
@@ -292,7 +290,6 @@ random
script-tab
scriptsort
smod
ssampview (GUI)
syn
tabinterp
tabsub
-20
View File
@@ -721,7 +721,6 @@
****** [[file:../doc/docbook/system/man1/en/png-bw.xml][png-bw.xml]]
****** [[file:../doc/docbook/system/man1/en/wdb_example.xml][wdb_example.xml]]
****** [[file:../doc/docbook/system/man1/en/bw-rle.xml][bw-rle.xml]]
****** [[file:../doc/docbook/system/man1/en/rttherm.xml][rttherm.xml]]
****** [[file:../doc/docbook/system/man1/en/pix-ppm.xml][pix-ppm.xml]]
****** [[file:../doc/docbook/system/man1/en/pixblend.xml][pixblend.xml]]
****** [[file:../doc/docbook/system/man1/en/fbed.xml][fbed.xml]]
@@ -906,7 +905,6 @@
****** [[file:../doc/docbook/system/man1/en/bwhisteq.xml][bwhisteq.xml]]
****** [[file:../doc/docbook/system/man1/en/fbanim.xml][fbanim.xml]]
****** [[file:../doc/docbook/system/man1/en/fb-bw.xml][fb-bw.xml]]
****** [[file:../doc/docbook/system/man1/en/ssamp-bw.xml][ssamp-bw.xml]]
****** [[file:../doc/docbook/system/man1/en/rt.xml][rt.xml]]
****** [[file:../doc/docbook/system/man1/en/hex.xml][hex.xml]]
****** [[file:../doc/docbook/system/man1/en/sun-pix.xml][sun-pix.xml]]
@@ -1796,9 +1794,6 @@
*** [[file:../src/anim/anim_sort.c][anim_sort.c]]
*** [[file:../src/anim/anim_track.c][anim_track.c]]
*** [[file:../src/anim/anim_turn.c][anim_turn.c]]
** [[file:../src/libmultispectral][libmultispectral]]
*** [[file:../src/libmultispectral/sh_temp.c][sh_temp.c]]
*** [[file:../src/libmultispectral/CMakeLists.txt][CMakeLists.txt]]
** [[file:../src/brlman][brlman]]
*** [[file:../src/brlman/brlman.sh.in][brlman.sh.in]]
*** [[file:../src/brlman/brlman.bat][brlman.bat]]
@@ -4367,7 +4362,6 @@
*** [[file:../src/mged/edsol.c][edsol.c]]
*** [[file:../src/mged/rtif.c][rtif.c]]
*** [[file:../src/mged/muves.c][muves.c]]
*** [[file:../src/mged/mged.bat][mged.bat]]
*** [[file:../src/mged/clone.c][clone.c]]
*** [[file:../src/mged/columns.c][columns.c]]
*** [[file:../src/mged/doevent.c][doevent.c]]
@@ -4639,16 +4633,6 @@
*** [[file:../src/sig/i-f.c][i-f.c]]
*** [[file:../src/sig/dauto2.c][dauto2.c]]
*** [[file:../src/sig/ddisp.c][ddisp.c]]
** [[file:../src/rttherm][rttherm]]
*** [[file:../src/rttherm/ssampview.c][ssampview.c]]
*** [[file:../src/rttherm/spectrum.c][spectrum.c]]
*** [[file:../src/rttherm/ssampview.tcl][ssampview.tcl]]
*** [[file:../src/rttherm/test.sh][test.sh]]
*** [[file:../src/rttherm/std_day_1km.dat][std_day_1km.dat]]
*** [[file:../src/rttherm/ssamp-bw.c][ssamp-bw.c]]
*** [[file:../src/rttherm/CMakeLists.txt][CMakeLists.txt]]
*** [[file:../src/rttherm/viewtherm.c][viewtherm.c]]
*** [[file:../src/rttherm/pixtest.c][pixtest.c]]
** [[file:../src/libwdb][libwdb]]
*** [[file:../src/libwdb/mater.c][mater.c]]
*** [[file:../src/libwdb/datum.c][datum.c]]
@@ -12976,11 +12960,9 @@
*** [[file:../misc/profont/readme.txt][readme.txt]]
*** [[file:../misc/profont/LICENSE][LICENSE]]
** [[file:../misc/nsis][nsis]]
*** [[file:../misc/nsis/brlcad.nsi][brlcad.nsi]]
*** [[file:../misc/nsis/side.bmp][side.bmp]]
*** [[file:../misc/nsis/archer.ico][archer.ico]]
*** [[file:../misc/nsis/brlcad.ico][brlcad.ico]]
*** [[file:../misc/nsis/updateVersion.tcl][updateVersion.tcl]]
*** [[file:../misc/nsis/uninstall.ico][uninstall.ico]]
*** [[file:../misc/nsis/header.bmp][header.bmp]]
** [[file:../misc/jove.emacs][jove.emacs]]
@@ -13689,7 +13671,6 @@
*** [[file:../misc/doxygen/libfft.dox][libfft.dox]]
*** [[file:../misc/doxygen/libtclcad.dox][libtclcad.dox]]
*** [[file:../misc/doxygen/libtermio.dox][libtermio.dox]]
*** [[file:../misc/doxygen/libmultispectral.dox][libmultispectral.dox]]
*** [[file:../misc/doxygen/libanalyze.dox][libanalyze.dox]]
*** [[file:../misc/doxygen/images][images]]
**** [[file:../misc/doxygen/images/README.txt][README.txt]]
@@ -13929,7 +13910,6 @@
** [[file:../misc/pkgconfig][pkgconfig]]
*** [[file:../misc/pkgconfig/libgm.pc.in][libgm.pc.in]]
*** [[file:../misc/pkgconfig/libicv.pc.in][libicv.pc.in]]
*** [[file:../misc/pkgconfig/libmultispectral.pc.in][libmultispectral.pc.in]]
*** [[file:../misc/pkgconfig/librt.pc.in][librt.pc.in]]
*** [[file:../misc/pkgconfig/libfft.pc.in][libfft.pc.in]]
*** [[file:../misc/pkgconfig/libpkg.pc.in][libpkg.pc.in]]
-158
View File
@@ -1,158 +0,0 @@
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Specific details about producing an animation of a gun tube,
using the BRL-CAD Package and various IBD simulation codes.
As things presently stand, the central part of this linkage is a program
called TUBE.C that takes two input files describing the motion of the
scene, and generates an MGED database containing a separate tree
(Directed Acyclic Graph [DAG]) for each frame. The name of combination
at the top of the tree is the letter "g" (for group) followed by the
frame number, so that the first frame of the animation is tree "g0", the
second frame is tree "g1", etc.
The current X displacement data for the gun tube center of mass points
is presently contained in the array dxtab[] compiled into the program.
The input file "pos.dat" contains the projectile position data. On each
input line, the time (in milliseconds) is listed first, followed by the
X displacement of the base of the projectile, offset from the projectile
starting position. The time values listed in this file do not have to
correspond to the time values listed for the articulation; the proper
time will be chosen by the program. If the file "tank.out" contains the
output from a normal run of IBHVG2, the file "pos.dat" can be created by
running this Shell script:
cat tank.out |
sed -n '/ TIME TRAV/,/ PROJECTILE EXIT/p' |
grep -v "[A-Z]" |
cut -c2-132 |
grep -v "^[ ]*$" |
awk '{printf "%10.2f %10.2f\n", $1, $2 }' > pos.dat
The mass displacement file is presented to the TUBE program on standard
input, where each time step has the following format: First a line with
the word "TIME" followed by a floating point number, in milliseconds.
Then, one input line for each of ``nmass'' (e.g., 12) mass points, in
ascending order of mass point number, starting with one, with one
integer and three floating point numbers on each line: the mass number,
the X, Y, and Z deviations (currently expected in inches, where +X is
towards the muzzle, +Y is in the vertical direction, and +Z is to the
right of the muzzle). There must be exactly one blank line after the
last mass point data line and before the next "TIME" line. Note that
mass point 1 corresponds to "m1" on the diagram, and mass point 12 is
"m12" on the diagram. The position of a two additional points (0 and
13) are guessed within the program, with mass point 0 being the outer
edge of the breach block, and mass point 13 being the muzzle end, but
these two points are not specified in the input file. E.g.,
TIME 0.02
1 0.01 0.00035 0.00000075
2 0.01 0.00040 0.00000900
(etc.)
12 1.01 0.0784 3.129
TIME 0.04
(etc.)
Therefore, assuming the mass displacement file is in "mass.dat",
and that the "pos.dat" file exists in the same directory,
and that the model for the projectile is in the file "projectile.g"
with main (top) combination named "ke",
the TUBE program is run as follows:
tube < mass.dat > anim.g
cat projectile.g >> anim.g
This MGED database can be examined with MGED. To see the first
frame, say:
mged anim.g
then respond to the "attach" question appropriately for the type of
graphics device being used, and then enter the command
B g0
This will display the geometry configuration for frame zero.
The "B" command in MGED stands for "Blast screen clear, then display
named object(s)". To view frame 42, enter the command
B g42
and so on. The MGED control dials can be used to translate, rotate,
and zoom the current viewpoint. When a desirable viewpoint has been
selected, it can saved in a file called "view1.sh" with the command
saveview view1.sh
This file is actually a Shell script that will render that one frame for
you, using RT, and store it in a file. However, in this case, a text
editor is used to extract just the viewsize, eye point, and homogeneous
transform matrix (20 numbers in all) and store them in another file, say
"view1.mat".
To preview the whole animation in wireframe format, assuming that there
are 300 frames running 0 to 299, this Shell script (called, say,
"preview.sh") is used:
rm -f temp.sh
cat << END > temp.sh
mged anim.g
attach ir (for SGI 3-D, or "sgi" for SGI 4-D)
B g0
rmats view1.mat
END
for frame in `loop 0 299`
do
echo "B g${frame}" >> temp.sh
done
sh temp.sh
rm -f temp.sh
Assuming that this animation sequence and viewpoint are satisfactory,
and that the desired "graph paper" background file is stored in a
128x128 .pix file called "movie128bw.pix" in the current directory,
the animation can be rendered the Shell script given below (called, say,
"render.sh"):
for frame in `loop 0 299`
do
rt -s512 -M -o out.pix.${frame} \
anim.g g${frame} < view1.mat >>& render.log
done
The "-s512" parameter specifies that the desired image is to be square,
and 512x512 pixels in size. This is typically the desired resolution
for videotape. The "-M" parameter specifies that the view matrix is to
be obtained from stdin. The "-o out.pix.${frame}" says that the output
picture is to be stored in a file called "out.pix.123" where "123"
represents the current frame number. (The backslash at the end of the
line continues the command to the next line). Specifying "anim.g"
names the input MGED database, and "g${frame}" specifies the treetop
appropriate for the current frame.
Because this procedure is likely to take a significant amount of time,
the shell script should be submitted as a batch job. On the minicomputers,
the MDQS command
batch render.sh
should be used. On both of the UNICOS Cray systems, the NQS command
qsub render.sh
should be used.
To view one of these files, the Shell environment variable FB_FILE
should be set to indicate the appropriate framebuffer on the network
to use, and the program "pix-fb" is used to transfer the picture to
the framebuffer. For more details on the variable FB_FILE, consult
the brlcad(1) manual page; for more details on the program "pix-fb",
consult the pix-fb(1) manual page; for more details on the framebuffer
library, consult libfb(3) manual page. This can be done on BRL-IBD
with these commands:
man brlcad
man pix-fb
man libfb
+7 -3
View File
@@ -22,6 +22,7 @@ set(public_hdrs
common.h
cursor.h
ged.h
pinttypes.h
pstdint.h
raytrace.h
rtserver.h
@@ -41,7 +42,6 @@ set(public_hdrs
photonmap.h
pc.h
pkg.h
spectrum.h
vmath.h
wdb.h
)
@@ -57,7 +57,6 @@ endif(WIN32)
# headers used by multiple packages but still considered private.
# public headers should NOT include these headers.
set(noinst_HEADERS
brlcad_ident.h
brlcad_version.h
)
CMAKEFILES(${noinst_HEADERS})
@@ -80,7 +79,12 @@ CMAKEFILES(${noinst_HEADERS})
#endif(inc_error)
set(include_misc
conf
brlcad_ident.h.in
conf/BrlcadConfig.tmpl
conf/MAJOR
conf/MINOR
conf/PATCH
conf/make.vbs
config_win.h.in
)
CMAKEFILES(${include_misc})
+3
View File
@@ -212,6 +212,9 @@ analyze_find_subtracted(struct bu_ptbl *results, struct rt_wdb *wdbp,
const char *pbrep, struct rt_gen_worker_vars *pbrep_rtvars,
const char *curr_comb, struct bu_ptbl *candidates, void *curr_union_data, int ncpus);
ANALYZE_EXPORT void
analyze_heal_bot(struct rt_bot_internal *bot, double zipper_tol);
__END_DECLS
+1
View File
@@ -55,6 +55,7 @@
#include "bg/polygon.h"
#include "bg/tri_ray.h"
#include "bg/tri_tri.h"
#include "bg/trimesh.h"
#endif /* BG_H */
+4 -1
View File
@@ -1,16 +1,19 @@
set(bg_headers
defines.h
chull.h
defines.h
obr.h
polygon.h
tri_ray.h
tri_tri.h
trimesh.h
)
install(FILES ${bg_headers} DESTINATION ${INCLUDE_DIR}/brlcad/bg)
CMAKEFILES(${bg_headers})
CMAKEFILES(pointgen.h)
# Local Variables:
# tab-width: 8
# mode: cmake
+64
View File
@@ -0,0 +1,64 @@
/* P O I N T G E N . H
* BRL-CAD
*
* Copyright (c) 2004-2016 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this file; see the file named COPYING for more
* information.
*/
/*----------------------------------------------------------------------*/
/* @file pointgen.h */
/** @addtogroup pointgen */
/** @{ */
/**
* @brief Routines for the generation of pseudo-random and quasi-random
* points.
*/
#ifndef BG_POINTGEN_H
#define BG_POINTGEN_H
#include "common.h"
#include "vmath.h"
#include "bg/defines.h"
__BEGIN_DECLS
/**
* @brief
* Generate points on a sphere per Marsaglia (1972).
*
* The return code is the number of points generated.
*
* The user is responsible for selecting the numerical generator used to
* supply pseudo or quasi-random numbers to bg_sph_sample - different
* types of inputs may be needed depending on the application.
*/
BG_EXPORT extern size_t bg_sph_sample(point_t *pnts, size_t cnt, const point_t center, const fastf_t radius, bn_numgen n);
__END_DECLS
#endif /* BG_POINTGEN_H */
/** @} */
/*
* Local Variables:
* mode: C
* tab-width: 8
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
+56
View File
@@ -0,0 +1,56 @@
/* T R I M E S H . H
* BRL-CAD
*
* Copyright (c) 2004-2016 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this file; see the file named COPYING for more
* information.
*/
/*----------------------------------------------------------------------*/
/* @file trimesh.h */
/** @addtogroup trimesh */
/** @{ */
/**
* @brief
* Algorithms related to 3D meshes built from triangles.
*/
#ifndef BG_TRIMESH_H
#define BG_TRIMESH_H
#include "common.h"
#include "vmath.h"
#include "bg/defines.h"
__BEGIN_DECLS
BG_EXPORT extern int bg_trimesh_closed_fan(size_t vcnt, size_t fcnt, fastf_t *v, int *f);
BG_EXPORT extern int bg_trimesh_orientable(size_t vcnt, size_t fcnt, fastf_t *v, int *f);
BG_EXPORT extern int bg_trimesh_solid(size_t vcnt, size_t fcnt, fastf_t *v, int *f, int **bedges);
__END_DECLS
#endif /* BG_TRIMESH_H */
/** @} */
/*
* Local Variables:
* mode: C
* tab-width: 8
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
+2
View File
@@ -32,6 +32,8 @@ install(FILES ${bn_headers} DESTINATION ${INCLUDE_DIR}/brlcad/bn)
CMAKEFILES(${bn_headers})
CMAKEFILES(numgen.h)
# Local Variables:
# tab-width: 8
# mode: cmake
+141
View File
@@ -0,0 +1,141 @@
/* N U M G E N . H
* BRL-CAD
*
* Copyright (c) 2016 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this file; see the file named COPYING for more
* information.
*/
/*----------------------------------------------------------------------*/
/** @addtogroup bn_rand
*
* @brief
* Routines for generating series of pseudo-random or quasi-random numbers.
*
* @code
* @endcode
*/
/** @{ */
/** @file numgen.h */
#ifndef BN_NUMGEN_H
#define BN_NUMGEN_H
#include "common.h"
#include "bn/defines.h"
__BEGIN_DECLS
/* Most of the following are API design possibilities only - not yet active */
#if 0
/**
* The following container holds all state associated with a particular
* number generator. The details of that state are specific to the
* type of selected generator and are not public, but the container allows
* libbn to avoid using globals to maintain state - instead, each "generator"
* instance has its own state.
*/
typedef struct bn_num_s *bn_numgen;
/**
* The available number generators in libbn.
*/
typedef enum {
BN_NUMGEN_PRAND_TABLE = 0,
BN_NUMGEN_PRAND_MT1337,
BN_NUMGEN_QRAND_SOBOL,
BN_NUMGEN_QRAND_SCRAMBLED_SOBOL,
BN_NUMGEN_QRAND_HALTON,
BN_NUMGEN_NRAND_BOX_MULLER,
BN_NUMGEN_NRAND_RATIO_OF_UNIFORMS,
BN_NUMGEN_NULL
} bn_numgen_t;
/**
* Create an instance of the number generator with the type
* and seed specified by the user. By default, a generator will
* return numbers between 0 and 1 - to adjust the range, use
* bn_numgen_setrange */
BN_EXPORT bn_numgen bn_numgen_create(bn_numgen_t type, int dim, double seed);
/** Returns the type of a bn_numgen instance */
BN_EXPORT bn_numgen_t bn_numgen_type(bn_numgen n);
/**
* Set the range of the numbers to be returned. Return 1 if range
* is valid for the generator, and zero if it is unsupported. */
BN_EXPORT int bn_numgen_setrange(bn_numgen ngen, double lb, double ub);
/**
* Some generators only support a finite number of unique returns before
* repeating. By default, bn_numgen generators are periodic - they will start
* over at the beginning.
*
* If this function is called with flag == 0, the generator will refuse to
* repeat itself and not assign any numbers once it reaches its periodic limit.
* If flag is set to 1, it will restore a generator to its default behavior.
*
* If passed -1 in the flag var, the return code will report the existing
* periodic flag state but will not change it in the generator.
*/
BN_EXPORT int bn_numgen_periodic(bn_numgen ngen, int flag);
/**
* Destroy the specified bn_numgen instance */
BN_EXPORT void bn_numgen_destroy(bn_numgen n);
/**
* Get the next cnt numbers in the generator's sequence. See the documentation
* for each individual generator for the particulars of what output will be
* returned in the array. The user is responsible for allocating an array
* large enough to hold the requested output.
*
* When in non-periodic mode, an exhausted generator will report zero numbers
* assigned to output arrays and will not alter the array contents.
*
* Return codes: >= 0 number of numbers assigned.
* < 0 error.
*/
BN_EXPORT int bn_numgen_next_ints(int *l, size_t cnt, bn_numgen ngen);
BN_EXPORT int bn_numgen_next_ulongs(unsigned long *l, size_t cnt, bn_numgen ngen);
BN_EXPORT int bn_numgen_next_fastf_t(fastf_t *l, size_t cnt, bn_numgen ngen);
BN_EXPORT int bn_numgen_next_doubles(double *l, size_t cnt, bn_numgen ngen);
#endif
/**
* @brief
* Generate points on a unit sphere per Marsaglia (1972):
* https://projecteuclid.org/euclid.aoms/1177692644
*
* The user is responsible for selecting the numerical generator used to
* supply pseudo or quasi-random numbers to bg_sph_sample - different
* types of inputs may be needed depending on the application.
*/
BN_EXPORT extern void bn_sph_pnts(point_t *pnts, size_t cnt, bn_numgen n);
__END_DECLS
#endif /* BN_RAND_H */
/** @} */
/*
* Local Variables:
* mode: C
* tab-width: 8
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
+1 -1
View File
@@ -145,7 +145,7 @@ BN_EXPORT extern void quat_sberp(quat_t qout,
* smallest rotation from q2 (of the two versions of q1 which
* produce the same orientation).
*
* Note that smallest euclidian distance implies smallest great
* Note that smallest euclidean distance implies smallest great
* circle distance as well (since surface is convex).
*/
BN_EXPORT extern void quat_make_nearest(quat_t q1,
+12
View File
@@ -51,6 +51,7 @@
#include "common.h"
#include "bn/defines.h"
#include "vmath.h"
__BEGIN_DECLS
@@ -140,6 +141,17 @@ BN_EXPORT extern const float bn_sin_table[BN_SINTABSIZE];
*/
BN_EXPORT extern void bn_mathtab_constant(void);
/**
* @brief
* Generate a sample point on a sphere per Marsaglia (1972).
*
* Note that bn_sph_sample and its internal routines do not initialize the
* randmt seed - the user should call bn_randmt_seed in their code if a
* variable seed is required.
*/
BN_EXPORT extern void bn_rand_sph_sample(point_t sample, const point_t center, const fastf_t radius);
__END_DECLS
#endif /* BN_RAND_H */
+22 -24
View File
@@ -19,7 +19,7 @@
*/
/*----------------------------------------------------------------------*/
/** @addtogroup bn_vtree
/** @addtogroup bn_vert_tree
*
* @brief
* Vertex tree support
@@ -47,7 +47,7 @@ __BEGIN_DECLS
* packaging structure
* holds all the required info for a single vertex tree
*/
struct vert_root {
struct bn_vert_tree {
uint32_t magic;
int tree_type; /**< @brief vertices or vertices with normals */
union vert_tree *the_tree; /**< @brief the actual vertex tree */
@@ -56,12 +56,10 @@ struct vert_root {
size_t max_vert; /**< @brief the current maximum capacity of the array */
};
#define TREE_TYPE_VERTS 1
#define TREE_TYPE_VERTS_AND_NORMS 2
#define BN_VERT_TREE_TYPE_VERTS 1
#define BN_VERT_TREE_TYPE_VERTS_AND_NORMS 2
#define VERT_BLOCK 512 /**< @brief number of vertices to malloc per call when building the array */
#define BN_CK_VERT_TREE(_p) BU_CKMAG(_p, VERT_TREE_MAGIC, "vert_tree")
#define BN_CK_VERT_TREE(_p) BU_CKMAG(_p, BN_VERT_TREE_MAGIC, "vert_tree")
/**
@@ -70,7 +68,7 @@ struct vert_root {
*
* Possible refinements include specifying an initial size
*/
BN_EXPORT extern struct vert_root *create_vert_tree(void);
BN_EXPORT extern struct bn_vert_tree *bn_vert_tree_create(void);
/**
*@brief
@@ -78,13 +76,13 @@ BN_EXPORT extern struct vert_root *create_vert_tree(void);
*
* Possible refinements include specifying an initial size
*/
BN_EXPORT extern struct vert_root *create_vert_tree_w_norms(void);
BN_EXPORT extern struct bn_vert_tree *bn_vert_tree_create_w_norms(void);
/**
*@brief
* Routine to free a vertex tree and all associated dynamic memory
*/
BN_EXPORT extern void free_vert_tree(struct vert_root *tree_root);
BN_EXPORT extern void bn_vert_tree_destroy(struct bn_vert_tree *tree);
/**
*@brief
@@ -92,11 +90,11 @@ BN_EXPORT extern void free_vert_tree(struct vert_root *tree_root);
* The array is re-alloc'd if needed.
* Returns index into the array of vertices where this vertex is stored
*/
BN_EXPORT extern size_t Add_vert(double x,
double y,
double z,
struct vert_root *tree_root,
fastf_t local_tol_sq);
BN_EXPORT extern size_t bn_vert_tree_add(struct bn_vert_tree *tree,
double x,
double y,
double z,
fastf_t local_tol_sq);
/**
*@brief
@@ -104,21 +102,21 @@ BN_EXPORT extern size_t Add_vert(double x,
* The array is re-alloc'd if needed.
* Returns index into the array of vertices where this vertex and normal is stored
*/
BN_EXPORT extern size_t Add_vert_and_norm(double x,
double y,
double z,
double nx,
double ny,
double nz,
struct vert_root *tree_root,
fastf_t local_tol_sq);
BN_EXPORT extern size_t bn_vert_tree_add_w_norm(struct bn_vert_tree *tree,
double x,
double y,
double z,
double nx,
double ny,
double nz,
fastf_t local_tol_sq);
/**
*@brief
* Routine to free the binary search tree and reset the current number of vertices.
* The vertex array is left untouched, for re-use later.
*/
BN_EXPORT extern void clean_vert_tree(struct vert_root *tree_root);
BN_EXPORT extern void bn_vert_tree_clean(struct bn_vert_tree *tree);
__END_DECLS
+69 -28
View File
@@ -22,6 +22,7 @@
#define BN_VLIST_H
#include "common.h"
#include <stdio.h> /* for FILE */
#include "vmath.h"
#include "bu/magic.h"
#include "bu/list.h"
@@ -74,23 +75,24 @@ struct bn_vlist {
/* should these be enum? -Erik */
/* Values for cmd[] */
#define BN_VLIST_LINE_MOVE 0
#define BN_VLIST_LINE_DRAW 1
#define BN_VLIST_POLY_START 2 /**< @brief pt[] has surface normal */
#define BN_VLIST_POLY_MOVE 3 /**< @brief move to first poly vertex */
#define BN_VLIST_POLY_DRAW 4 /**< @brief subsequent poly vertex */
#define BN_VLIST_POLY_END 5 /**< @brief last vert (repeats 1st), draw poly */
#define BN_VLIST_POLY_VERTNORM 6 /**< @brief per-vertex normal, for interpolation */
#define BN_VLIST_TRI_START 7 /**< @brief pt[] has surface normal */
#define BN_VLIST_TRI_MOVE 8 /**< @brief move to first triangle vertex */
#define BN_VLIST_TRI_DRAW 9 /**< @brief subsequent triangle vertex */
#define BN_VLIST_TRI_END 10 /**< @brief last vert (repeats 1st), draw poly */
#define BN_VLIST_TRI_VERTNORM 11 /**< @brief per-vertex normal, for interpolation */
#define BN_VLIST_POINT_DRAW 12 /**< @brief Draw a single point */
#define BN_VLIST_POINT_SIZE 13 /**< @brief specify point pixel size */
#define BN_VLIST_LINE_WIDTH 14 /**< @brief specify line pixel width */
#define BN_VLIST_CMD_MAX 14 /**< @brief Max command number */
#define BN_VLIST_LINE_MOVE 0 /**< @brief specify new line */
#define BN_VLIST_LINE_DRAW 1 /**< @brief subsequent line vertex */
#define BN_VLIST_POLY_START 2 /**< @brief pt[] has surface normal */
#define BN_VLIST_POLY_MOVE 3 /**< @brief move to first poly vertex */
#define BN_VLIST_POLY_DRAW 4 /**< @brief subsequent poly vertex */
#define BN_VLIST_POLY_END 5 /**< @brief last vert (repeats 1st), draw poly */
#define BN_VLIST_POLY_VERTNORM 6 /**< @brief per-vertex normal, for interpolation */
#define BN_VLIST_TRI_START 7 /**< @brief pt[] has surface normal */
#define BN_VLIST_TRI_MOVE 8 /**< @brief move to first triangle vertex */
#define BN_VLIST_TRI_DRAW 9 /**< @brief subsequent triangle vertex */
#define BN_VLIST_TRI_END 10 /**< @brief last vert (repeats 1st), draw poly */
#define BN_VLIST_TRI_VERTNORM 11 /**< @brief per-vertex normal, for interpolation */
#define BN_VLIST_POINT_DRAW 12 /**< @brief Draw a single point */
#define BN_VLIST_POINT_SIZE 13 /**< @brief specify point pixel size */
#define BN_VLIST_LINE_WIDTH 14 /**< @brief specify line pixel width */
#define BN_VLIST_DISPLAY_MAT 15 /**< @brief specify the model matrix */
#define BN_VLIST_MODEL_MAT 16 /**< @brief specify the display matrix */
#define BN_VLIST_CMD_MAX 16 /**< @brief Max command number */
/**
* Applications that are going to use BN_ADD_VLIST and BN_GET_VLIST
* are required to execute this macro once, on their _free_hd:
@@ -127,6 +129,31 @@ struct bn_vlist {
_vp->cmd[_vp->nused++] = (draw); \
}
/** Change the transformation matrix to display */
#define BN_VLIST_SET_DISP_MAT(_free_hd, _dest_hd, _ref_pt) { \
struct bn_vlist *_vp; \
BU_CK_LIST_HEAD(_dest_hd); \
_vp = BU_LIST_LAST(bn_vlist, (_dest_hd)); \
if (BU_LIST_IS_HEAD(_vp, (_dest_hd)) || _vp->nused >= BN_VLIST_CHUNK) { \
BN_GET_VLIST(_free_hd, _vp); \
BU_LIST_INSERT((_dest_hd), &(_vp->l)); \
} \
VMOVE(_vp->pt[_vp->nused], (_ref_pt)); \
_vp->cmd[_vp->nused++] = BN_VLIST_DISPLAY_MAT; \
}
/** Change the transformation matrix to model */
#define BN_VLIST_SET_MODEL_MAT(_free_hd, _dest_hd) { \
struct bn_vlist *_vp; \
BU_CK_LIST_HEAD(_dest_hd); \
_vp = BU_LIST_LAST(bn_vlist, (_dest_hd)); \
if (BU_LIST_IS_HEAD(_vp, (_dest_hd)) || _vp->nused >= BN_VLIST_CHUNK) { \
BN_GET_VLIST(_free_hd, _vp); \
BU_LIST_INSERT((_dest_hd), &(_vp->l)); \
} \
_vp->cmd[_vp->nused++] = BN_VLIST_MODEL_MAT; \
}
/** Set a point size to apply to the vlist elements that follow. */
#define BN_VLIST_SET_POINT_SIZE(_free_hd, _dest_hd, _size) { \
struct bn_vlist *_vp; \
@@ -238,8 +265,8 @@ BN_EXPORT extern int bn_ck_vlist(const struct bu_list *vhead);
* densely packed than the source.
*/
BN_EXPORT extern void bn_vlist_copy(struct bu_list *vlists,
struct bu_list *dest,
const struct bu_list *src);
struct bu_list *dest,
const struct bu_list *src);
/**
@@ -250,8 +277,8 @@ BN_EXPORT extern void bn_vlist_copy(struct bu_list *vlists,
* length are available conveniently.
*/
BN_EXPORT extern void bn_vlist_export(struct bu_vls *vls,
struct bu_list *hp,
const char *name);
struct bu_list *hp,
const char *name);
/**
@@ -259,25 +286,39 @@ BN_EXPORT extern void bn_vlist_export(struct bu_vls *vls,
* vls_vlist() and received from another machine, into a vlist chain.
*/
BN_EXPORT extern void bn_vlist_import(struct bu_list *vlists,
struct bu_list *hp,
struct bu_vls *namevls,
const unsigned char *buf);
struct bu_list *hp,
struct bu_vls *namevls,
const unsigned char *buf);
BN_EXPORT extern void bn_vlist_cleanup(struct bu_list *hd);
BN_EXPORT extern struct bn_vlblock *bn_vlblock_init(struct bu_list *free_vlist_hd, /* where to get/put free vlists */
int max_ent);
int max_ent);
BN_EXPORT extern void bn_vlblock_free(struct bn_vlblock *vbp);
BN_EXPORT extern struct bu_list *bn_vlblock_find(struct bn_vlblock *vbp,
int r,
int g,
int b);
int r,
int g,
int b);
BN_EXPORT void bn_vlist_rpp(struct bu_list *vlists, struct bu_list *hd, const point_t minn, const point_t maxx);
/**
* Output a bn_vlblock object in extended UNIX-plot format, including
* color.
*/
BN_EXPORT extern void bn_plot_vlblock(FILE *fp,
const struct bn_vlblock *vbp);
/**
* Output a vlist as an extended 3-D floating point UNIX-Plot file.
* You provide the file. Uses libplot3 routines to create the
* UNIX-Plot output.
*/
BN_EXPORT extern void bn_vlist_to_uplot(FILE *fp,
const struct bu_list *vhead);
/** @} */
+12 -12
View File
@@ -215,23 +215,23 @@ extern "C++" {
inline void
BBNode::GetBBox(float *min, float *max) const
{
min[0] = m_node.m_min[0];
min[1] = m_node.m_min[1];
min[2] = m_node.m_min[2];
max[0] = m_node.m_max[0];
max[1] = m_node.m_max[1];
max[2] = m_node.m_max[2];
min[0] = (float)m_node.m_min.x;
min[1] = (float)m_node.m_min.y;
min[2] = (float)m_node.m_min.z;
max[0] = (float)m_node.m_max.x;
max[1] = (float)m_node.m_max.y;
max[2] = (float)m_node.m_max.z;
}
inline void
BBNode::GetBBox(double *min, double *max) const
{
min[0] = m_node.m_min[0];
min[1] = m_node.m_min[1];
min[2] = m_node.m_min[2];
max[0] = m_node.m_max[0];
max[1] = m_node.m_max[1];
max[2] = m_node.m_max[2];
min[0] = m_node.m_min.x;
min[1] = m_node.m_min.y;
min[2] = m_node.m_min.z;
max[0] = m_node.m_max.x;
max[1] = m_node.m_max.y;
max[2] = m_node.m_max.z;
}
+7 -8
View File
@@ -17,7 +17,8 @@
* License along with this file; see the file named COPYING for more
* information.
*/
/** @{ */
/** @file brep/brnode.h */
/** @addtogroup brep_brnode
*
* @brief
@@ -28,23 +29,21 @@
#define BREP_BRNODE_H
#include "common.h"
#ifdef __cplusplus
extern "C++" {
/* @cond */
#include <vector>
#include <list>
# include <vector>
# include <list>
/* @endcond */
}
#endif
#include "brep.h"
/** @{ */
/** @file brep/brnode.h */
#ifdef __cplusplus
__BEGIN_DECLS
#ifdef __cplusplus
extern "C++" {
namespace brlcad {
+12 -8
View File
@@ -17,29 +17,33 @@
* License along with this file; see the file named COPYING for more
* information.
*/
/** @{ */
/** @file brep/curvetree.h */
/** @addtogroup brep_curvetree
*
* @brief
* Curve Tree.
*
*/
#ifndef BREP_CURVETREE_H
#define BREP_CURVETREE_H
#include "common.h"
#ifdef __cplusplus
extern "C++" {
# include <map>
}
#endif
#include "brep.h"
/** @{ */
/** @file brep/curvetree.h */
#ifdef __cplusplus
__BEGIN_DECLS
#ifdef __cplusplus
extern "C++" {
#include <map>
namespace brlcad {
@@ -104,13 +108,13 @@ extern "C++" {
mutable std::map<const BRNode *, std::size_t> *m_sortedX_indices;
};
} /* namespace brlcad */
} /* extern C++ */
__END_DECLS
#endif
#endif /* __cplusplus */
/** @} */
+10 -7
View File
@@ -17,22 +17,27 @@
* License along with this file; see the file named COPYING for more
* information.
*/
/** @{ */
/** @file brep/util.h */
/** @addtogroup brep_util
*
* @brief
* These are utility routines for libbrep, used throughout the library.
*
*/
#ifndef BREP_UTIL_H
#define BREP_UTIL_H
#include "common.h"
/** @{ */
/** @file brep/util.h */
#include "bnetwork.h" /* Needed for ntohl and htonl */
#ifdef __cplusplus
extern "C++" {
# include <cstring>
}
#endif
#include "brep.h"
@@ -42,12 +47,11 @@
#include "bu/malloc.h"
#include "bu/parse.h"
#include <arpa/inet.h>
__BEGIN_DECLS
#ifdef __cplusplus
extern "C++" {
#include <cstring>
BREP_EXPORT bool ON_NearZero(double x, double tolerance = ON_ZERO_TOLERANCE);
@@ -333,12 +337,11 @@ extern "C++" {
}
};
} /* extern C++ */
__END_DECLS
#endif /* __cplusplus */
#endif /* __cplusplus */
/** @} */
@@ -46,22 +46,22 @@
/**
* Compilation date, updated every time a build pass occurs.
*/
static const char *BRLCAD_DATE = BRLCAD_COMPILE_DATE;
static const char *BRLCAD_DATE = @BRLCAD_COMPILE_DATE@;
/**
* Compilation host, updated every time a build pass occurs.
*/
static const char *BRLCAD_HOST = BRLCAD_COMPILE_HOST;
static const char *BRLCAD_HOST = "@BRLCAD_COMPILE_HOST@";
/**
* Compilation user, updated every time a build pass occurs.
*/
static const char *BRLCAD_USER = BRLCAD_COMPILE_USER;
static const char *BRLCAD_USER = "@BRLCAD_COMPILE_USER@";
/**
* Compilation count, updated every time a build pass occurs.
*/
static const int BRLCAD_COUNT = BRLCAD_COMPILE_COUNT;
static const int BRLCAD_COUNT = @BRLCAD_COMPILE_COUNT@;
/**
+2
View File
@@ -8,10 +8,12 @@ set(bu_headers
defines.h
endian.h
env.h
exit.h
file.h
getopt.h
hash.h
hist.h
hook.h
list.h
log.h
magic.h
+2
View File
@@ -23,6 +23,8 @@
#include "common.h"
#include <limits.h> /* for CHAR_BIT */
#include "bu/defines.h"
#include "bu/magic.h"
#include "bu/list.h"
+2 -3
View File
@@ -24,7 +24,6 @@
#include "common.h"
#include <stddef.h> /* for size_t */
#include <limits.h> /* for CHAR_MAX */
#include "bu/defines.h"
@@ -154,12 +153,12 @@ __BEGIN_DECLS
/**
* provide for 64-bit network/host conversions using ntohl()
*/
#ifndef HAVE_NTOHLL
#if !defined(HAVE_NTOHLL) && !defined(ntohll)
# define ntohll(_val) ((bu_byteorder() == BU_LITTLE_ENDIAN) ? \
((((uint64_t)ntohl((_val))) << 32) + ntohl((_val) >> 32)) : \
(_val)) /* sorry pdp-endian */
#endif
#ifndef HAVE_HTONLL
#if !defined(HAVE_HTONLL) && !defined(htonll)
# define htonll(_val) ntohll(_val)
#endif
+14 -83
View File
@@ -120,15 +120,22 @@
/**
* shorthand declaration of a function that doesn't return
*/
#if defined(HAVE_NORETURN_ATTRIBUTE) && defined(HAVE_ANALYZER_NORETURN_ATTRIBUTE)
/* clang static analyzer is needing an additional flag set */
# define _BU_ATTR_NORETURN __attribute__((__noreturn__)) __attribute__((analyzer_noreturn))
#elif defined(HAVE_NORETURN_ATTRIBUTE)
#ifdef HAVE_NORETURN_ATTRIBUTE
# define _BU_ATTR_NORETURN __attribute__((__noreturn__))
#else
# define _BU_ATTR_NORETURN
#endif
/* For the moment, we need to specially flag some functions
* for clang. It's not clear if we will always need to do
* this, but for now this suppresses a lot of noise in the
* reports */
#ifdef HAVE_ANALYZER_NORETURN_ATTRIBUTE
# define _BU_ATTR_ANALYZE_NORETURN __attribute__((analyzer_noreturn))
#else
# define _BU_ATTR_ANALYZE_NORETURN
#endif
/**
* shorthand declaration of a function that should always be inline
*/
@@ -141,9 +148,9 @@
/**
* If we're compiling strict, turn off "format string vs arguments"
* checks - BRL-CAD customizes the arguments to some of these
* function types (adding bu_vls support) and that is a problem with
* strict checking.
* checks. As long as we are using C89, the proper printf support
* for size_t is not available in the standard and we will get
* warnings about using extensions.
*/
#if defined(STRICT_FLAGS)
# undef _BU_ATTR_PRINTF12
@@ -170,19 +177,6 @@
* Quick and easy macros to generate an informative error message and
* abort execution if the specified condition does not hold true.
*
* @def BU_ASSERT_PTR(eqn)
* Quick and easy macros to generate an informative error message and
* abort execution if the specified condition does not hold true.
*
* @def BU_ASSERT_LONG(eqn)
* Quick and easy macros to generate an informative error message and
* abort execution if the specified condition does not hold true.
*
* @def BU_ASSERT_DOUBLE(eqn)
* Quick and easy macros to generate an informative error message and
* abort execution if the specified condition does not hold true.
*
* Example: BU_ASSERT_LONG(j+7, <, 42);
*/
#ifdef NO_BOMBING_MACROS
# define BU_ASSERT(_equation) (void)(_equation)
@@ -195,69 +189,6 @@
}
#endif
#ifdef NO_BOMBING_MACROS
# define BU_ASSERT_PTR(_lhs, _relation, _rhs) (void)(_lhs); (void)(_rhs)
#else
# define BU_ASSERT_PTR(_lhs, _relation, _rhs) \
if (UNLIKELY(!((_lhs) _relation (_rhs)))) { \
bu_log("BU_ASSERT_PTR(" #_lhs #_relation #_rhs ") failed, lhs=%p, rhs=%p, file %s, line %d\n", \
(void *)(_lhs), (void *)(_rhs), \
__FILE__, __LINE__); \
bu_bomb("BU_ASSERT_PTR failure\n"); \
}
#endif
#ifdef NO_BOMBING_MACROS
# define BU_ASSERT_LONG(_lhs, _relation, _rhs) (void)(_lhs); (void)(_rhs)
#else
# define BU_ASSERT_LONG(_lhs, _relation, _rhs) \
if (UNLIKELY(!((_lhs) _relation (_rhs)))) { \
bu_log("BU_ASSERT_LONG(" #_lhs #_relation #_rhs ") failed, lhs=%ld, rhs=%ld, file %s, line %d\n", \
(long)(_lhs), (long)(_rhs), \
__FILE__, __LINE__); \
bu_bomb("BU_ASSERT_LONG failure\n"); \
}
#endif
#ifdef NO_BOMBING_MACROS
# define BU_ASSERT_SIZE_T(_lhs, _relation, _rhs) (void)(_lhs); (void)(_rhs)
#else
# define BU_ASSERT_SIZE_T(_lhs, _relation, _rhs) \
if (UNLIKELY(!((_lhs) _relation (_rhs)))) { \
bu_log("BU_ASSERT_SIZE_T(" #_lhs #_relation #_rhs ") failed, lhs=%zd, rhs=%zd, file %s, line %d\n", \
(size_t)(_lhs), (size_t)(_rhs), \
__FILE__, __LINE__); \
bu_bomb("BU_ASSERT_SIZE_T failure\n"); \
}
#endif
#ifdef NO_BOMBING_MACROS
# define BU_ASSERT_SSIZE_T(_lhs, _relation, _rhs) (void)(_lhs); (void)(_rhs)
#else
# define BU_ASSERT_SSIZE_T(_lhs, _relation, _rhs) \
if (UNLIKELY(!((_lhs) _relation (_rhs)))) { \
bu_log("BU_ASSERT_SSIZE_T(" #_lhs #_relation #_rhs ") failed, lhs=%zd, rhs=%zd, file %s, line %d\n", \
(ssize_t)(_lhs), (ssize_t)(_rhs), \
__FILE__, __LINE__); \
bu_bomb("BU_ASSERT_SSIZE_T failure\n"); \
}
#endif
#ifdef NO_BOMBING_MACROS
# define BU_ASSERT_DOUBLE(_lhs, _relation, _rhs) (void)(_lhs); (void)(_rhs)
#else
# define BU_ASSERT_DOUBLE(_lhs, _relation, _rhs) \
if (UNLIKELY(!((_lhs) _relation (_rhs)))) { \
bu_log("BU_ASSERT_DOUBLE(" #_lhs #_relation #_rhs ") failed, lhs=%lf, rhs=%lf, file %s, line %d\n", \
(double)(_lhs), (double)(_rhs), \
__FILE__, __LINE__); \
bu_bomb("BU_ASSERT_DOUBLE failure\n"); \
}
#endif
/**
* fastf_t - Intended to be the fastest floating point data type on
+150
View File
@@ -0,0 +1,150 @@
/* E X I T . H
* BRL-CAD
*
* Copyright (c) 2004-2016 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this file; see the file named COPYING for more
* information.
*/
#ifndef BU_EXIT_H
#define BU_EXIT_H
#include "common.h"
#include <stdio.h> /* for FILE */
#include "bu/defines.h"
#include "bu/hook.h"
__BEGIN_DECLS
/** @{ */
/** @file bu/exit.h */
/**
* this routine provides a trace of the call stack to the caller,
* generally called either directly, via a signal handler, or through
* bu_bomb() with the appropriate bu_debug flags set.
*
* the routine waits indefinitely (in a spin loop) until a signal
* (SIGINT) is received, at which point execution continues, or until
* some other signal is received that terminates the application.
*
* the stack backtrace will be written to the provided 'fp' file
* pointer. it's the caller's responsibility to open and close
* that pointer if necessary. If 'fp' is NULL, stdout will be used.
*
* returns truthfully if a backtrace was attempted.
*/
BU_EXPORT extern int bu_backtrace(FILE *fp);
/**
* Adds a hook to the list of bu_bomb hooks. The top (newest) one of these
* will be called with its associated client data and a string to be
* processed. Typically, these hook functions will display the output
* (possibly in an X window) or record it.
*
* NOTE: The hook functions are all non-PARALLEL.
*/
BU_EXPORT extern void bu_bomb_add_hook(bu_hook_t func, void *clientdata);
/**
* Abort the running process.
*
* The bu_bomb routine is called on a fatal error, generally where no
* recovery is possible. Error handlers may, however, be registered
* with BU_SETJUMP(). This routine intentionally limits calls to
* other functions and intentionally uses no stack variables. Just in
* case the application is out of memory, bu_bomb deallocates a small
* buffer of memory.
*
* Before termination, it optionally performs the following operations
* in the order listed:
*
* 1. Outputs str to standard error
*
* 2. Calls any callback functions set in the global bu_bomb_hook_list
* variable with str passed as an argument.
*
* 3. Jumps to any user specified error handler registered with the
* BU_SETJUMP() facility.
*
* 4. Outputs str to the terminal device in case standard error is
* redirected.
*
* 5. Aborts abnormally (via abort) if BU_DEBUG_COREDUMP is defined.
*
* 6. Exits with exit(12).
*
* Only produce a core-dump when that debugging bit is set. Note that
* this function is meant to be a last resort semi-graceful abort.
*
* This routine should never return unless there is a BU_SETJUMP()
* handler registered.
*/
BU_EXPORT extern void bu_bomb(const char *str) _BU_ATTR_ANALYZE_NORETURN _BU_ATTR_NORETURN;
/**
* Semi-graceful termination of the application that doesn't cause a
* stack trace, exiting with the specified status after printing the
* given message. It's okay for this routine to use the stack,
* contrary to bu_bomb's behavior since it should be called for
* expected termination situations.
*
* This routine should generally not be called within a library. Use
* bu_bomb or (better) cascade the error back up to the application.
*
* This routine should never return.
*/
BU_EXPORT extern void bu_exit(int status, const char *fmt, ...) _BU_ATTR_ANALYZE_NORETURN _BU_ATTR_NORETURN _BU_ATTR_PRINTF23;
/**
* @brief
* Generate a crash report file, including a call stack backtrace and
* other system details.
*/
/**
* this routine writes out details of the currently running process to
* the specified file, including an informational header about the
* execution environment, stack trace details, kernel and hardware
* information, and current version information.
*
* returns truthfully if the crash report was written.
*
* due to various reasons, this routine is NOT thread-safe.
*/
BU_EXPORT extern int bu_crashreport(const char *filename);
/** @} */
__END_DECLS
#endif /* BU_EXIT_H */
/*
* Local Variables:
* mode: C
* tab-width: 8
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
+14 -15
View File
@@ -44,7 +44,7 @@ __BEGIN_DECLS
/* Use typedefs to hide the details of the hash entry and table structures */
typedef struct bu_hash_entry bu_hash_entry;
typedef struct bu_hash_tbl bu_hash_tbl;
typedef struct bu_hash_tbl bu_hash_tbl;
/**
@@ -91,12 +91,12 @@ BU_EXPORT extern void *bu_hash_get(const bu_hash_tbl *t, const uint8_t *key, siz
* in the table is NULL - i.e. the return will be the same as if the key/value
* pair had actually been added. The only use case where this property is observable
* is when a user iterates over the whole contents of a hash table - in that
* situation a key,NULL entry might be expected, but will not be present.
* situation a key, NULL entry might be expected, but will not be present.
*
* @param[in] t - The hash table to look in
* @param[in] key - the key to look for
* @param[in] key_len - the length of the key in bytes
* @param[in] val - the value to be associated with key
* @param[in] val - the value to be associated with key
*
* @return
* 1 if a new entry is created, 0 if an existing value was updated, -1 on error.
@@ -126,7 +126,7 @@ BU_EXPORT extern void bu_hash_rm(bu_hash_tbl *t, const uint8_t *key, size_t key_
struct bu_hash_entry *e = bu_hash_next(t, NULL);
while (e) {
bu_log("Value: %p\n", bu_hash_value(e, NULL));
e = bu_hash_next(t, e);
e = bu_hash_next(t, e);
}
}
@endcode
@@ -168,7 +168,6 @@ BU_EXPORT extern int bu_hash_key(bu_hash_entry *e, uint8_t **key, size_t *key_le
BU_EXPORT extern void *bu_hash_value(bu_hash_entry *e, void *nval);
/* Deprecated API */
#if 1
struct bu_hash_entry {
@@ -222,23 +221,23 @@ typedef struct bu_hash_record bu_hash_record_t;
#define BU_HASH_RECORD_INIT_ZERO { BU_HASH_RECORD_MAGIC, NULL, 0, NULL }
#define BU_HASH_RECORD_IS_INITIALIZED(_h) (((struct bu_hash_record *)(_h) != BU_HASH_RECORD_NULL) && LIKELY((_h)->magic == BU_HASH_RECORD_MAGIC))
DEPRECATED BU_EXPORT extern struct bu_hash_entry *bu_hash_tbl_find(const struct bu_hash_tbl *hsh_tbl,
const uint8_t *key,
int key_len,
struct bu_hash_entry **prev,
unsigned long *idx);
const uint8_t *key,
int key_len,
struct bu_hash_entry **prev,
unsigned long *idx);
DEPRECATED BU_EXPORT extern void bu_set_hash_value(struct bu_hash_entry *hsh_entry,
void *value);
void *value);
DEPRECATED BU_EXPORT extern void *bu_get_hash_value(const struct bu_hash_entry *hsh_entry);
DEPRECATED BU_EXPORT extern uint8_t *bu_get_hash_key(const struct bu_hash_entry *hsh_entry);
DEPRECATED BU_EXPORT extern struct bu_hash_entry *bu_hash_tbl_add(struct bu_hash_tbl *hsh_tbl,
const uint8_t *key,
int key_len,
int *new_entry);
const uint8_t *key,
int key_len,
int *new_entry);
DEPRECATED BU_EXPORT extern void bu_hash_tbl_print(const struct bu_hash_tbl *hsh_tbl,
const char *str);
const char *str);
DEPRECATED BU_EXPORT extern void bu_hash_tbl_free(struct bu_hash_tbl *hsh_tbl);
DEPRECATED BU_EXPORT extern struct bu_hash_entry *bu_hash_tbl_first(const struct bu_hash_tbl *hsh_tbl,
struct bu_hash_record *rec);
struct bu_hash_record *rec);
DEPRECATED BU_EXPORT extern struct bu_hash_entry *bu_hash_tbl_next(struct bu_hash_record *rec);
DEPRECATED BU_EXPORT extern struct bu_hash_entry *bu_hash_tbl_traverse(struct bu_hash_tbl *hsh_tbl, int (*func)(struct bu_hash_entry *, void *), void *func_arg);
#endif
+109
View File
@@ -0,0 +1,109 @@
/* H O O K . H
* BRL-CAD
*
* Copyright (c) 2004-2016 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this file; see the file named COPYING for more
* information.
*/
#ifndef BU_HOOK_H
#define BU_HOOK_H
#include "common.h"
#include "bu/defines.h"
#include "bu/list.h"
__BEGIN_DECLS
/** @addtogroup bu_log
*
* These are hook routines for keeping track of callback functions.
*
*/
/** @{ */
/** @file bu/log.h */
/** log indentation hook */
typedef int (*bu_hook_t)(void *, void *);
struct bu_hook_list {
struct bu_list l; /**< linked list */
bu_hook_t hookfunc; /**< function to call */
void *clientdata; /**< data for caller */
};
typedef struct bu_hook_list bu_hook_list_t;
#define BU_HOOK_LIST_NULL ((struct bu_hook_list *) 0)
/**
* assert the integrity of a non-head node bu_hook_list struct.
*/
#define BU_CK_HOOK_LIST(_hl) BU_CKMAG(_hl, BU_HOOK_LIST_MAGIC, "bu_hook_list")
/**
* initialize a bu_hook_list struct without allocating any memory.
* this macro is not suitable for initialization of a list head node.
*/
#define BU_HOOK_LIST_INIT(_hl) { \
BU_LIST_INIT_MAGIC(&(_hl)->l, BU_HOOK_LIST_MAGIC); \
(_hl)->hookfunc = (_hl)->clientdata = NULL; \
}
/**
* macro suitable for declaration statement initialization of a
* bu_hook_list struct. does not allocate memory. not suitable for
* initialization of a list head node.
*/
#define BU_HOOK_LIST_INIT_ZERO { {BU_HOOK_LIST_MAGIC, BU_LIST_NULL, BU_LIST_NULL}, NULL, NULL }
/**
* returns truthfully whether a non-head node bu_hook_list has been
* initialized via BU_HOOK_LIST_INIT() or BU_HOOK_LIST_INIT_ZERO.
*/
#define BU_HOOK_LIST_IS_INITIALIZED(_p) (((struct bu_hook_list *)(_p) != BU_HOOK_LIST_NULL) && LIKELY((_p)->l.magic == BU_HOOK_LIST_MAGIC))
/** @brief BRL-CAD support library's hook utility. */
BU_EXPORT extern void bu_hook_list_init(struct bu_hook_list *hlp);
BU_EXPORT extern void bu_hook_add(struct bu_hook_list *hlp,
bu_hook_t func,
void *clientdata);
BU_EXPORT extern void bu_hook_delete(struct bu_hook_list *hlp,
bu_hook_t func,
void *clientdata);
BU_EXPORT extern void bu_hook_call(struct bu_hook_list *hlp,
void *buf);
BU_EXPORT extern void bu_hook_save_all(struct bu_hook_list *hlp,
struct bu_hook_list *save_hlp);
BU_EXPORT extern void bu_hook_delete_all(struct bu_hook_list *hlp);
BU_EXPORT extern void bu_hook_restore_all(struct bu_hook_list *hlp,
struct bu_hook_list *restore_hlp);
/** @} */
__END_DECLS
#endif /* BU_HOOK_H */
/*
* Local Variables:
* mode: C
* tab-width: 8
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
+121 -109
View File
@@ -28,6 +28,18 @@
__BEGIN_DECLS
/* TODO: Plan for replacement of bu_list with a more memory coherent
* vector/array storage, ideally lockfree and threadsafe but not
* strictly necessary. Some options to consider and benchmark:
*
* http://libcds.sourceforge.net
* https://code.google.com/archive/p/ccl/
* http://sglib.sourceforge.net
* tbb::concurrent_vector
* std::vector et. al
* https://github.com/xant/libhl
*/
/*----------------------------------------------------------------------*/
/** @addtogroup bu_list
*
@@ -51,8 +63,8 @@ __BEGIN_DECLS
* Where a macro expects an argument "p", it should be a pointer to a
* user-provided structure.
*
* Where a macro expects an argument "hp", it should be a pointer to a
* "struct bu_list" located in the list head, e.g., &(head.l).
* Where a macro expects an argument "headp", it should be a pointer
* to a "struct bu_list" located in the list head, e.g., &(head.l).
*
* Where a macro expects an argument "old", "new", or "cur", it should
* be a pointer to the "struct bu_list" located either in a
@@ -145,18 +157,18 @@ typedef struct bu_list bu_list_t;
* initializes a bu_list struct as a circular list without allocating
* any memory. call BU_LIST_MAGIC_SET() to change the list type.
*/
#define BU_LIST_INIT(_hp) { \
BU_ASSERT((void *)(_hp) != (void *)NULL); \
(_hp)->forw = (_hp)->back = (_hp); \
(_hp)->magic = BU_LIST_HEAD_MAGIC; /* used by circ. macros */ }
#define BU_LIST_INIT(_headp) { \
BU_ASSERT((void *)(_headp) != (void *)NULL); \
(_headp)->forw = (_headp)->back = (_headp); \
(_headp)->magic = BU_LIST_HEAD_MAGIC; /* used by circ. macros */ }
/**
* initializes a bu_list struct node with a particular non-head node
* magic number without allocating any memory.
*/
#define BU_LIST_INIT_MAGIC(_hp, _magic) { \
BU_LIST_INIT((_hp)); \
BU_LIST_MAGIC_SET((_hp), (_magic)); \
#define BU_LIST_INIT_MAGIC(_headp, _magic) { \
BU_LIST_INIT((_headp)); \
BU_LIST_MAGIC_SET((_headp), (_magic)); \
}
/**
@@ -173,7 +185,7 @@ typedef struct bu_list bu_list_t;
* zero-allocated will not return true as their forward/backward
* pointers reference nothing.
*/
#define BU_LIST_IS_INITIALIZED(_hp) (((struct bu_list *)(_hp) != BU_LIST_NULL) && LIKELY((_hp)->forw != BU_LIST_NULL))
#define BU_LIST_IS_INITIALIZED(_headp) (((struct bu_list *)(_headp) != BU_LIST_NULL) && LIKELY((_headp)->forw != BU_LIST_NULL))
/**
@@ -240,161 +252,161 @@ typedef struct bu_list bu_list_t;
/**
* The Stack Discipline
*
* BU_LIST_PUSH places p at the tail of hp. BU_LIST_POP sets p to
* last element in hp's list (else NULL) and, if p is non-null,
* BU_LIST_PUSH places p at the tail of headp. BU_LIST_POP sets p to
* last element in headp's list (else NULL) and, if p is non-null,
* dequeues it.
*/
#define BU_LIST_PUSH(hp, p) \
BU_LIST_APPEND(hp, (struct bu_list *)(p))
#define BU_LIST_PUSH(headp, p) \
BU_LIST_APPEND(headp, (struct bu_list *)(p))
#define BU_LIST_POP(structure, hp, p) \
#define BU_LIST_POP(structure, headp, p) \
{ \
if (BU_LIST_NON_EMPTY(hp)) { \
(p) = ((struct structure *)((hp)->forw)); \
if (BU_LIST_NON_EMPTY(headp)) { \
(p) = ((struct structure *)((headp)->forw)); \
BU_LIST_DEQUEUE((struct bu_list *)(p)); \
} else { \
(p) = (struct structure *) 0; \
} \
}
#define BU_LIST_POP_T(hp, type) \
(type *)bu_list_pop(hp)
#define BU_LIST_POP_T(headp, type) \
(type *)bu_list_pop(headp)
/**
* "Bulk transfer" all elements from the list headed by src_hd onto
* the list headed by dest_hd, without examining every element in the
* list. src_hd is left with a valid but empty list.
* "Bulk transfer" all elements from the list headed by src_headp onto
* the list headed by dest_headp, without examining every element in the
* list. src_headp is left with a valid but empty list.
*
* BU_LIST_INSERT_LIST places src_hd elements at head of dest_hd list,
* BU_LIST_APPEND_LIST places src_hd elements at end of dest_hd list.
* BU_LIST_INSERT_LIST places src_headp elements at head of dest_headp list,
* BU_LIST_APPEND_LIST places src_headp elements at end of dest_headp list.
*/
#define BU_LIST_INSERT_LIST(dest_hp, src_hp) \
if (LIKELY(BU_LIST_NON_EMPTY(src_hp))) { \
struct bu_list *_first = (src_hp)->forw; \
struct bu_list *_last = (src_hp)->back; \
(dest_hp)->forw->back = _last; \
_last->forw = (dest_hp)->forw; \
(dest_hp)->forw = _first; \
_first->back = (dest_hp); \
(src_hp)->forw = (src_hp)->back = (src_hp); \
#define BU_LIST_INSERT_LIST(dest_headp, src_headp) \
if (LIKELY(BU_LIST_NON_EMPTY(src_headp))) { \
struct bu_list *_first = (src_headp)->forw; \
struct bu_list *_last = (src_headp)->back; \
(dest_headp)->forw->back = _last; \
_last->forw = (dest_headp)->forw; \
(dest_headp)->forw = _first; \
_first->back = (dest_headp); \
(src_headp)->forw = (src_headp)->back = (src_headp); \
}
#define BU_LIST_APPEND_LIST(dest_hp, src_hp) \
if (LIKELY(BU_LIST_NON_EMPTY(src_hp))) {\
struct bu_list *_first = (src_hp)->forw; \
struct bu_list *_last = (src_hp)->back; \
_first->back = (dest_hp)->back; \
(dest_hp)->back->forw = _first; \
(dest_hp)->back = _last; \
_last->forw = (dest_hp); \
(src_hp)->forw = (src_hp)->back = (src_hp); \
#define BU_LIST_APPEND_LIST(dest_headp, src_headp) \
if (LIKELY(BU_LIST_NON_EMPTY(src_headp))) {\
struct bu_list *_first = (src_headp)->forw; \
struct bu_list *_last = (src_headp)->back; \
_first->back = (dest_headp)->back; \
(dest_headp)->back->forw = _first; \
(dest_headp)->back = _last; \
_last->forw = (dest_headp); \
(src_headp)->forw = (src_headp)->back = (src_headp); \
}
/**
* Test if a doubly linked list is empty, given head pointer
*/
#define BU_LIST_IS_EMPTY(hp) ((hp)->forw == (hp))
#define BU_LIST_NON_EMPTY(hp) ((hp)->forw != (hp))
#define BU_LIST_NON_EMPTY_P(p, structure, hp) \
(((p)=(struct structure *)((hp)->forw)) != (struct structure *)(hp))
#define BU_LIST_IS_CLEAR(hp) ((hp)->magic == 0 && \
(hp)->forw == BU_LIST_NULL && \
(hp)->back == BU_LIST_NULL)
#define BU_LIST_IS_EMPTY(headp) ((headp)->forw == (headp))
#define BU_LIST_NON_EMPTY(headp) ((headp)->forw != (headp))
#define BU_LIST_NON_EMPTY_P(p, structure, headp) \
(((p)=(struct structure *)((headp)->forw)) != (struct structure *)(headp))
#define BU_LIST_IS_CLEAR(headp) ((headp)->magic == 0 && \
(headp)->forw == BU_LIST_NULL && \
(headp)->back == BU_LIST_NULL)
/* Return re-cast pointer to first element on list.
* No checking is performed to see if list is empty.
*/
#define BU_LIST_LAST(structure, hp) \
((struct structure *)((hp)->back))
#define BU_LIST_BACK(structure, hp) \
((struct structure *)((hp)->back))
#define BU_LIST_PREV(structure, hp) \
((struct structure *)((hp)->back))
#define BU_LIST_FIRST(structure, hp) \
((struct structure *)((hp)->forw))
#define BU_LIST_FORW(structure, hp) \
((struct structure *)((hp)->forw))
#define BU_LIST_NEXT(structure, hp) \
((struct structure *)((hp)->forw))
#define BU_LIST_LAST(structure, headp) \
((struct structure *)((headp)->back))
#define BU_LIST_BACK(structure, headp) \
((struct structure *)((headp)->back))
#define BU_LIST_PREV(structure, headp) \
((struct structure *)((headp)->back))
#define BU_LIST_FIRST(structure, headp) \
((struct structure *)((headp)->forw))
#define BU_LIST_FORW(structure, headp) \
((struct structure *)((headp)->forw))
#define BU_LIST_NEXT(structure, headp) \
((struct structure *)((headp)->forw))
/**
* Boolean test to see if current list element is the head
*/
#define BU_LIST_IS_HEAD(p, hp) \
(((struct bu_list *)(p)) == (struct bu_list *)(hp))
#define BU_LIST_NOT_HEAD(p, hp) \
(!BU_LIST_IS_HEAD(p, hp))
#define BU_LIST_IS_HEAD(p, headp) \
(((struct bu_list *)(p)) == (struct bu_list *)(headp))
#define BU_LIST_NOT_HEAD(p, headp) \
(!BU_LIST_IS_HEAD(p, headp))
/**
* Boolean test to see if previous list element is the head
*/
#define BU_LIST_PREV_IS_HEAD(p, hp)\
(((struct bu_list *)(p))->back == (struct bu_list *)(hp))
#define BU_LIST_PREV_NOT_HEAD(p, hp)\
(!BU_LIST_PREV_IS_HEAD(p, hp))
#define BU_LIST_PREV_IS_HEAD(p, headp)\
(((struct bu_list *)(p))->back == (struct bu_list *)(headp))
#define BU_LIST_PREV_NOT_HEAD(p, headp)\
(!BU_LIST_PREV_IS_HEAD(p, headp))
/**
* Boolean test to see if the next list element is the head
*/
#define BU_LIST_NEXT_IS_HEAD(p, hp) \
(((struct bu_list *)(p))->forw == (struct bu_list *)(hp))
#define BU_LIST_NEXT_NOT_HEAD(p, hp) \
(!BU_LIST_NEXT_IS_HEAD(p, hp))
#define BU_LIST_NEXT_IS_HEAD(p, headp) \
(((struct bu_list *)(p))->forw == (struct bu_list *)(headp))
#define BU_LIST_NEXT_NOT_HEAD(p, headp) \
(!BU_LIST_NEXT_IS_HEAD(p, headp))
#define BU_LIST_EACH(hp, p, type) \
for ((p)=(type *)BU_LIST_FIRST(bu_list, hp); \
(p) && BU_LIST_NOT_HEAD(p, hp); \
#define BU_LIST_EACH(headp, p, type) \
for ((p)=(type *)BU_LIST_FIRST(bu_list, headp); \
(p) && BU_LIST_NOT_HEAD(p, headp); \
(p)=(type *)BU_LIST_PNEXT(bu_list, p)) \
#define BU_LIST_REVEACH(hp, p, type) \
for ((p)=(type *)BU_LIST_LAST(bu_list, hp); \
(p) && BU_LIST_NOT_HEAD(p, hp); \
#define BU_LIST_REVEACH(headp, p, type) \
for ((p)=(type *)BU_LIST_LAST(bu_list, headp); \
(p) && BU_LIST_NOT_HEAD(p, headp); \
(p)=(type *)BU_LIST_PREV(bu_list, ((struct bu_list *)(p)))) \
#define BU_LIST_TAIL(hp, start, p, type) \
#define BU_LIST_TAIL(headp, start, p, type) \
for ((p)=(type *)start; \
(p) && BU_LIST_NOT_HEAD(p, hp); \
(p) && BU_LIST_NOT_HEAD(p, headp); \
(p)=(type *)BU_LIST_PNEXT(bu_list, (p)))
/**
* Intended as innards for a for loop to visit all nodes on list, e.g.:
*
* for (BU_LIST_FOR(p, structure, hp)) {
* for (BU_LIST_FOR(p, structure, headp)) {
* work_on(p);
* }
*/
#define BU_LIST_FOR(p, structure, hp) \
(p)=BU_LIST_FIRST(structure, hp); \
(p) && BU_LIST_NOT_HEAD(p, hp); \
#define BU_LIST_FOR(p, structure, headp) \
(p)=BU_LIST_FIRST(structure, headp); \
(p) && BU_LIST_NOT_HEAD(p, headp); \
(p)=BU_LIST_PNEXT(structure, p)
#define BU_LIST_FOR_BACKWARDS(p, structure, hp) \
(p)=BU_LIST_LAST(structure, hp); \
(p) && BU_LIST_NOT_HEAD(p, hp); \
#define BU_LIST_FOR_BACKWARDS(p, structure, headp) \
(p)=BU_LIST_LAST(structure, headp); \
(p) && BU_LIST_NOT_HEAD(p, headp); \
(p)=BU_LIST_PLAST(structure, p)
/**
* Process all the list members except hp and the actual head. Useful
* Process all the list members except headp and the actual head. Useful
* when starting somewhere besides the head.
*/
#define BU_LIST_FOR_CIRC(p, structure, hp) \
(p)=BU_LIST_PNEXT_CIRC(structure, hp); \
(p) && BU_LIST_NOT_HEAD(p, hp); \
#define BU_LIST_FOR_CIRC(p, structure, headp) \
(p)=BU_LIST_PNEXT_CIRC(structure, headp); \
(p) && BU_LIST_NOT_HEAD(p, headp); \
(p)=BU_LIST_PNEXT_CIRC(structure, p)
/**
* Intended as innards for a for loop to visit elements of two lists
* in tandem, e.g.:
*
* for (BU_LIST_FOR2(p1, p2, structure, hp1, hp2)) {
* for (BU_LIST_FOR2(p1, p2, structure, headp1, headp2)) {
* process(p1, p2);
* }
*/
#define BU_LIST_FOR2(p1, p2, structure, hp1, hp2) \
(p1)=BU_LIST_FIRST(structure, hp1), \
(p2)=BU_LIST_FIRST(structure, hp2); \
(p1) && BU_LIST_NOT_HEAD((struct bu_list *)(p1), (hp1)) && \
(p2) && BU_LIST_NOT_HEAD((struct bu_list *)(p2), (hp2)); \
#define BU_LIST_FOR2(p1, p2, structure, headp1, headp2) \
(p1)=BU_LIST_FIRST(structure, headp1), \
(p2)=BU_LIST_FIRST(structure, headp2); \
(p1) && BU_LIST_NOT_HEAD((struct bu_list *)(p1), (headp1)) && \
(p2) && BU_LIST_NOT_HEAD((struct bu_list *)(p2), (headp2)); \
(p1)=BU_LIST_NEXT(structure, (struct bu_list *)(p1)), \
(p2)=BU_LIST_NEXT(structure, (struct bu_list *)(p2))
@@ -403,19 +415,19 @@ typedef struct bu_list bu_list_t;
* element. Useful mostly for a loop that will dequeue every list
* element, e.g.:
*
* while (BU_LIST_WHILE(p, structure, hp)) {
* while (BU_LIST_WHILE(p, structure, headp)) {
*@n BU_LIST_DEQUEUE(&(p->l));
*@n free((char *)p);
*@n }
*/
#define BU_LIST_WHILE(p, structure, hp) \
(((p)=(struct structure *)((hp)->forw)) != (struct structure *)(hp))
#define BU_LIST_WHILE(p, structure, headp) \
(((p)=(struct structure *)((headp)->forw)) != (struct structure *)(headp))
/**
* Return the magic number of the first (or last) item on a list
*/
#define BU_LIST_FIRST_MAGIC(hp) ((hp)->forw->magic)
#define BU_LIST_LAST_MAGIC(hp) ((hp)->back->magic)
#define BU_LIST_FIRST_MAGIC(headp) ((headp)->forw->magic)
#define BU_LIST_LAST_MAGIC(headp) ((headp)->back->magic)
/**
* Return pointer to next (or previous) element, which may be the head
@@ -479,17 +491,17 @@ BU_EXPORT extern struct bu_list *bu_list_new(void);
/**
* Returns the results of BU_LIST_POP
*/
BU_EXPORT extern struct bu_list *bu_list_pop(struct bu_list *hp);
BU_EXPORT extern struct bu_list *bu_list_pop(struct bu_list *headp);
/**
* Returns the number of elements on a bu_list brand linked list.
*/
BU_EXPORT extern int bu_list_len(const struct bu_list *hd);
BU_EXPORT extern int bu_list_len(const struct bu_list *headp);
/**
* Reverses the order of elements in a bu_list linked list.
*/
BU_EXPORT extern void bu_list_reverse(struct bu_list *hd);
BU_EXPORT extern void bu_list_reverse(struct bu_list *headp);
/**
* Given a list of structures allocated with bu_malloc() or
@@ -497,7 +509,7 @@ BU_EXPORT extern void bu_list_reverse(struct bu_list *hd);
* structures. This routine can only be used when the structures have
* no interior pointers.
*/
BU_EXPORT extern void bu_list_free(struct bu_list *hd);
BU_EXPORT extern void bu_list_free(struct bu_list *headp);
/**
* Simple parallel-safe routine for appending a data structure to the
@@ -525,14 +537,14 @@ BU_EXPORT extern struct bu_list *bu_list_parallel_dequeue(struct bu_list *headp)
/**
* Generic bu_list doubly-linked list checker.
*/
BU_EXPORT extern void bu_ck_list(const struct bu_list *hd,
BU_EXPORT extern void bu_ck_list(const struct bu_list *headp,
const char *str);
/**
* bu_list doubly-linked list checker which checks the magic number for
* all elements in the linked list
*/
BU_EXPORT extern void bu_ck_list_magic(const struct bu_list *hd,
BU_EXPORT extern void bu_ck_list_magic(const struct bu_list *headp,
const char *str,
const uint32_t magic);
+4 -154
View File
@@ -29,7 +29,10 @@
#include "bu/defines.h"
#include "bu/magic.h"
#include "bu/parse.h"
#include "bu/list.h"
#include "bu/hook.h"
#include "bu/exit.h" /* XXX not used here, not intended to be kept included here */
__BEGIN_DECLS
@@ -74,143 +77,6 @@ __BEGIN_DECLS
/** @{ */
/** @file bu/log.h */
/** @brief Extract a backtrace of the current call stack. */
/**
* this routine provides a trace of the call stack to the caller,
* generally called either directly, via a signal handler, or through
* bu_bomb() with the appropriate bu_debug flags set.
*
* the routine waits indefinitely (in a spin loop) until a signal
* (SIGINT) is received, at which point execution continues, or until
* some other signal is received that terminates the application.
*
* the stack backtrace will be written to the provided 'fp' file
* pointer. it's the caller's responsibility to open and close
* that pointer if necessary. If 'fp' is NULL, stdout will be used.
*
* returns truthfully if a backtrace was attempted.
*/
BU_EXPORT extern int bu_backtrace(FILE *fp);
/** log indentation hook */
typedef int (*bu_hook_t)(void *, void *);
struct bu_hook_list {
struct bu_list l; /**< linked list */
bu_hook_t hookfunc; /**< function to call */
void *clientdata; /**< data for caller */
};
typedef struct bu_hook_list bu_hook_list_t;
#define BU_HOOK_LIST_NULL ((struct bu_hook_list *) 0)
/**
* assert the integrity of a non-head node bu_hook_list struct.
*/
#define BU_CK_HOOK_LIST(_hl) BU_CKMAG(_hl, BU_HOOK_LIST_MAGIC, "bu_hook_list")
/**
* initialize a bu_hook_list struct without allocating any memory.
* this macro is not suitable for initialization of a list head node.
*/
#define BU_HOOK_LIST_INIT(_hl) { \
BU_LIST_INIT_MAGIC(&(_hl)->l, BU_HOOK_LIST_MAGIC); \
(_hl)->hookfunc = (_hl)->clientdata = NULL; \
}
/**
* macro suitable for declaration statement initialization of a
* bu_hook_list struct. does not allocate memory. not suitable for
* initialization of a list head node.
*/
#define BU_HOOK_LIST_INIT_ZERO { {BU_HOOK_LIST_MAGIC, BU_LIST_NULL, BU_LIST_NULL}, NULL, NULL }
/**
* returns truthfully whether a non-head node bu_hook_list has been
* initialized via BU_HOOK_LIST_INIT() or BU_HOOK_LIST_INIT_ZERO.
*/
#define BU_HOOK_LIST_IS_INITIALIZED(_p) (((struct bu_hook_list *)(_p) != BU_HOOK_LIST_NULL) && LIKELY((_p)->l.magic == BU_HOOK_LIST_MAGIC))
/** @brief Main functions for exiting/bombing. */
/**
* Adds a hook to the list of bu_bomb hooks. The top (newest) one of these
* will be called with its associated client data and a string to be
* processed. Typically, these hook functions will display the output
* (possibly in an X window) or record it.
*
* NOTE: The hook functions are all non-PARALLEL.
*/
BU_EXPORT extern void bu_bomb_add_hook(bu_hook_t func, void *clientdata);
/**
* Abort the running process.
*
* The bu_bomb routine is called on a fatal error, generally where no
* recovery is possible. Error handlers may, however, be registered
* with BU_SETJUMP(). This routine intentionally limits calls to
* other functions and intentionally uses no stack variables. Just in
* case the application is out of memory, bu_bomb deallocates a small
* buffer of memory.
*
* Before termination, it optionally performs the following operations
* in the order listed:
*
* 1. Outputs str to standard error
*
* 2. Calls any callback functions set in the global bu_bomb_hook_list
* variable with str passed as an argument.
*
* 3. Jumps to any user specified error handler registered with the
* BU_SETJUMP() facility.
*
* 4. Outputs str to the terminal device in case standard error is
* redirected.
*
* 5. Aborts abnormally (via abort()) if BU_DEBUG_COREDUMP is defined.
*
* 6. Exits with exit(12).
*
* Only produce a core-dump when that debugging bit is set. Note that
* this function is meant to be a last resort semi-graceful abort.
*
* This routine should never return unless there is a BU_SETJUMP()
* handler registered.
*/
BU_EXPORT extern void bu_bomb(const char *str) _BU_ATTR_NORETURN;
/**
* Semi-graceful termination of the application that doesn't cause a
* stack trace, exiting with the specified status after printing the
* given message. It's okay for this routine to use the stack,
* contrary to bu_bomb's behavior since it should be called for
* expected termination situations.
*
* This routine should generally not be called within a library. Use
* bu_bomb or (better) cascade the error back up to the application.
*
* This routine should never return.
*/
BU_EXPORT extern void bu_exit(int status, const char *fmt, ...) _BU_ATTR_NORETURN _BU_ATTR_PRINTF23;
/**
* @brief
* Generate a crash report file, including a call stack backtrace and
* other system details.
*/
/**
* this routine writes out details of the currently running process to
* the specified file, including an informational header about the
* execution environment, stack trace details, kernel and hardware
* information, and current version information.
*
* returns truthfully if the crash report was written.
*
* due to various reasons, this routine is NOT thread-safe.
*/
BU_EXPORT extern int bu_crashreport(const char *filename);
/**
* @brief
* fgets replacement function that also handles CR as an EOL marker
@@ -231,22 +97,6 @@ BU_EXPORT extern char *bu_fgets(char *s, int size, FILE *stream);
BU_EXPORT extern void bu_setlinebuf(FILE *fp);
/** @brief BRL-CAD support library's hook utility. */
BU_EXPORT extern void bu_hook_list_init(struct bu_hook_list *hlp);
BU_EXPORT extern void bu_hook_add(struct bu_hook_list *hlp,
bu_hook_t func,
void *clientdata);
BU_EXPORT extern void bu_hook_delete(struct bu_hook_list *hlp,
bu_hook_t func,
void *clientdata);
BU_EXPORT extern void bu_hook_call(struct bu_hook_list *hlp,
void *buf);
BU_EXPORT extern void bu_hook_save_all(struct bu_hook_list *hlp,
struct bu_hook_list *save_hlp);
BU_EXPORT extern void bu_hook_delete_all(struct bu_hook_list *hlp);
BU_EXPORT extern void bu_hook_restore_all(struct bu_hook_list *hlp,
struct bu_hook_list *restore_hlp);
/** @brief parallel safe version of fprintf for logging */
/**
+26 -24
View File
@@ -70,7 +70,7 @@ __BEGIN_DECLS
#define BU_RB_NODE_MAGIC 0x72626e6f /**< rbno */
#define BU_RB_PKG_MAGIC 0x7262706b /**< rbpk */
#define BU_RB_TREE_MAGIC 0x72627472 /**< rbtr */
#define BU_VLB_MAGIC 0x5f564c42 /**< _VLB */
#define BU_VLB_MAGIC 0x5f564c42 /**< _VLB */
#define BU_VLS_MAGIC 0x89333bbb /**< ?3;? */
/* libbn */
@@ -82,6 +82,7 @@ __BEGIN_DECLS
#define BN_TABLE_MAGIC 0x53706374 /**< Spct */
#define BN_TOL_MAGIC 0x98c734bb /**< ??4? */
#define BN_UNIF_MAGIC 0x00be7460 /**< ??t` => 12481632 */
#define BN_VERT_TREE_MAGIC 0x56455254 /**< VERT */
#define BN_VLBLOCK_MAGIC 0x981bd112 /**< ???? */
#define BN_VLIST_MAGIC 0x98237474 /**< ?\#tt */
@@ -121,8 +122,8 @@ __BEGIN_DECLS
#define RT_TGC_INTERNAL_MAGIC 0xaabbdd87 /**< ???? */
#define RT_TOR_INTERNAL_MAGIC 0x9bffed87 /**< ???? */
#define RT_VOL_INTERNAL_MAGIC 0x987ba1d0 /**< ?{?? */
#define RT_PNTS_INTERNAL_MAGIC 0x706e7473 /**< pnts */
#define RT_ANNOTATION_INTERNAL_MAGIC 0x616e6e6f /**< anno */
#define RT_PNTS_INTERNAL_MAGIC 0x706e7473 /**< pnts */
#define RT_ANNOT_INTERNAL_MAGIC 0x616e6e6f /**< anno */
#define RT_HRT_INTERNAL_MAGIC 0x6872743f /**< hrt? */
/* n-manifold geometry */
@@ -189,18 +190,18 @@ __BEGIN_DECLS
/* fb */
#define FB_MAGIC 0xfbfb00fb /**< ???? */
#define FB_WGL_MAGIC 0x574f4642 /**< WOFB */
#define FB_OGL_MAGIC 0x584f4642 /**< XOFB */
#define FB_X24_MAGIC 0x58324642 /**< X2FB */
#define FB_TK_MAGIC 0x544b4642 /**< TKFB */
#define FB_QT_MAGIC 0x51544642 /**< QTFB */
#define FB_DEBUG_MAGIC 0x44424642 /**< DBFB */
#define FB_DISK_MAGIC 0x44494642 /**< STFB */
#define FB_STK_MAGIC 0x53544642 /**< STFB */
#define FB_MEMORY_MAGIC 0x4d454642 /**< MEFB */
#define FB_REMOTE_MAGIC 0x524d4642 /**< MEFB */
#define FB_NULL_MAGIC 0x4e554642 /**< NUFB */
#define FB_OSGL_MAGIC 0x4f474642 /**< OGFB */
#define FB_WGL_MAGIC 0x574f4642 /**< WOFB */
#define FB_OGL_MAGIC 0x584f4642 /**< XOFB */
#define FB_X24_MAGIC 0x58324642 /**< X2FB */
#define FB_TK_MAGIC 0x544b4642 /**< TKFB */
#define FB_QT_MAGIC 0x51544642 /**< QTFB */
#define FB_DEBUG_MAGIC 0x44424642 /**< DBFB */
#define FB_DISK_MAGIC 0x44494642 /**< STFB */
#define FB_STK_MAGIC 0x53544642 /**< STFB */
#define FB_MEMORY_MAGIC 0x4d454642 /**< MEFB */
#define FB_REMOTE_MAGIC 0x524d4642 /**< MEFB */
#define FB_NULL_MAGIC 0x4e554642 /**< NUFB */
#define FB_OSGL_MAGIC 0x4f474642 /**< OGFB */
/* misc */
@@ -209,6 +210,7 @@ __BEGIN_DECLS
#define CURVE_CARC_MAGIC 0x63617263 /**< carc */
#define CURVE_LSEG_MAGIC 0x6c736567 /**< lseg */
#define CURVE_NURB_MAGIC 0x6e757262 /**< nurb */
#define ANN_TSEG_MAGIC 0x74736567 /**< tseg */
#define DB5_RAW_INTERNAL_MAGIC 0x64357269 /**< d5ri */
#define DBI_MAGIC 0x57204381 /**< W C? */
#define DB_FULL_PATH_MAGIC 0x64626670 /**< dbfp */
@@ -220,11 +222,10 @@ __BEGIN_DECLS
#define PT_MAGIC 0x87687681 /**< ?hv? */
#define RESOURCE_MAGIC 0x83651835 /**< ?e?5 */
#define RTI_MAGIC 0x99101658 /**< ???X */
#define VERT_TREE_MAGIC 0x56455254 /**< VERT */
#define WDB_METABALLPT_MAGIC 0x6d627074 /**< mbpt */
#define WDB_PIPESEG_MAGIC 0x9723ffef /**< ?\#?? */
#define WMEMBER_MAGIC 0x43128912 /**< C??? */
#define ICV_IMAGE_MAGIC 0x6269666d /**< bifm */
#define ICV_IMAGE_MAGIC 0x6269666d /**< bifm */
/** @brief Routines involved with handling "magic numbers" used to identify various in-memory data structures. */
@@ -235,19 +236,20 @@ __BEGIN_DECLS
#ifdef NO_BOMBING_MACROS
# define BU_CKMAG(_ptr, _magic, _str) (void)(_ptr)
#else
# define BU_CKMAG(_ptr, _magic, _str) { \
const uintptr_t _ptrval = (const uintptr_t)(_ptr); \
if (UNLIKELY((_ptrval == 0) || (_ptrval & (sizeof(_ptrval)-1)) || *((const uint32_t *)(_ptr)) != (uint32_t)(_magic))) { \
bu_badmagic((const uint32_t *)(_ptr), (uint32_t)_magic, _str, __FILE__, __LINE__); \
# define BU_CKMAG(_ptr, _magic, _str) do { \
if (UNLIKELY(((const uintptr_t)(_ptr) == 0) || ((const uintptr_t)(_ptr) & (sizeof((const uintptr_t)(_ptr))-1)) || *((const uint32_t *)(_ptr)) != (uint32_t)(_magic))) { \
bu_badmagic((const uint32_t *)(_ptr), (uint32_t)(_magic), _str, __FILE__, __LINE__); \
} \
}
} while (0)
#endif
/**
* Support routine for BU_CKMAG macro.
* This function is called when there is something wrong with a
* pointer. It's primarily a support routine for BU_CKMAG macro, but
* may be used elsewhere. This function never returns.
*/
BU_EXPORT extern void bu_badmagic(const uint32_t *ptr, uint32_t magic, const char *str, const char *file, int line) _BU_ATTR_NORETURN;
BU_EXPORT extern void bu_badmagic(const uint32_t *ptr, uint32_t magic, const char *str, const char *file, int line) _BU_ATTR_ANALYZE_NORETURN _BU_ATTR_NORETURN;
/** @brief Routines involved with handling "magic numbers" used to identify various in-memory data structures. */
+3 -2
View File
@@ -45,8 +45,9 @@ __BEGIN_DECLS
/** @{ */
/** @file bu/malloc.h */
BU_EXPORT extern long bu_n_malloc;
BU_EXPORT extern long bu_n_realloc;
BU_EXPORT extern size_t bu_n_malloc;
BU_EXPORT extern size_t bu_n_realloc;
BU_EXPORT extern size_t bu_n_free;
/**
* This routine only returns on successful allocation. We promise
+12 -8
View File
@@ -249,11 +249,14 @@ 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 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.
* Input values that are case-insensitively NULL, empty (i.e., ""
* after disregarding whitespace), "n", "no", "false", "off",
* "(null)", or are 0-valued return as false. Any other input value
* returns true.
*
* Strings strongly indicating true such as "y", "yes", "true", "on",
* or are 1-valued will return as 1, other non-empty strings still
* return as true but may be greater than 1.
*/
BU_EXPORT extern int bu_str_true(const char *str);
@@ -261,9 +264,10 @@ 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 case-insensitively NULL, empty, "n", "no",
* "false", "off", "(null)", or are 0-valued return as true. Any
* other input value returns as false.
* Input values that are case-insensitively NULL, empty (i.e., ""
* after disregarding whitespace), "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);
+33
View File
@@ -25,6 +25,7 @@
#include "bu/defines.h"
#include "bu/parse.h"
#include "bu/vls.h"
__BEGIN_DECLS
@@ -89,6 +90,38 @@ BU_EXPORT extern void bu_mm_cvt(const struct bu_structparse *sdp,
const char *value,
void *data);
/* Values for bu_humanize_number's flags parameter. */
#define BU_HN_DECIMAL 0x01
#define BU_HN_NOSPACE 0x02
#define BU_HN_B 0x04
#define BU_HN_DIVISOR_1000 0x08
#define BU_HN_IEC_PREFIXES 0x10
/* Values for bu_humanize_number's scale parameter. */
#define BU_HN_GETSCALE 0x10
#define BU_HN_AUTOSCALE 0x20
/**
* Convert digital sizes to human readable form. Based off the
* BSD function humanize_number(3).
* Upon success, the humanize_number function returns the number of characters
* that would have been stored in buf (excluding the terminating NUL) if buf
* was large enough, or -1 upon failure. Even upon failure, the contents of
* buf may be modified. If BU_HN_GETSCALE is specified, the prefix index
* number will be returned instead.
*/
BU_EXPORT extern int bu_humanize_number(char *buf, size_t len,
int64_t quotient, const char *suffix, int scale, int flags);
/*
* Converts the number given in 'str', which may be given in a humanized
* form (as described in BSD's humanize_number(3), but with some limitations),
* to an int64_t without units.
* In case of success, 0 is returned and *size holds the value.
* Otherwise, -1 is returned and *size is untouched.
*/
BU_EXPORT extern int bu_dehumanize_number(const char *str, int64_t *size);
__END_DECLS
/** @} */
+12 -1
View File
@@ -28,6 +28,15 @@
#include "bu/defines.h"
/*----------------------------------------------------------------------*/
/** @addtogroup bu_uuid
*
* @brief
* Routines to generate and work with universally unique identifiers.
*/
/** @{ */
/** @file bu/uuid.h */
#ifdef HAVE_STATIC_ARRAYS
# define STATIC_ARRAY(x) static (x)
@@ -45,7 +54,7 @@ __BEGIN_DECLS
* entropy). Providing a byte array and namespace will create a (SHA1-based)
* version 5 UUID suitable for repeatable identifier hashing.
*/
int
BU_EXPORT int
bu_uuid_create(uint8_t uuid[STATIC_ARRAY(16)], size_t nbytes, const uint8_t *bytes, const uint8_t namespace_uuid[STATIC_ARRAY(16)]);
/**
@@ -96,6 +105,8 @@ bu_uuid_decode(const char *cp, uint8_t uuid[STATIC_ARRAY(16)]);
__END_DECLS
/** @} */
#endif /* BU_UUID_H */
/*
+194
View File
@@ -461,6 +461,200 @@ BU_EXPORT extern const char *bu_vls_encode(struct bu_vls *vp, const char *str);
*/
BU_EXPORT extern const char *bu_vls_decode(struct bu_vls *vp, const char *str);
/**
@brief
Automatic string generation routines.
There are many situations where a calling program, given an input string,
needs to produce automatically derived output strings that satisfy some
criteria (incremented, special characters removed, etc.) The functions
below perform this type of work.
*/
/**
* A problem frequently encountered when working with strings in BRL-CAD
* is the presence of special characters, characters active in the scripting
* language being applied, or other problematic contents that interfere with
* processing or readability of strings. This function takes a vls as an
* input and simplifies it as follows:
*
* 1) Reduce characters present to alpha-numeric characters and those
* characters supplied to the routine in the "keep" string. Substitute
* is performed as follows:
*
* * Skip any character in the "keep" string
*
* * Replace diacritic characters(code >= 192) from the extended ASCII set
* with a specific mapping from the standard ASCII set. See discussion at:
* http://stackoverflow.com/questions/14094621/ for more about this.
*
* * Replace any non-keep characters that aren't replaced by other
* approaches with the '_' underscore character
*
* 2) Collapses duplicate characters in the "de_dup" string.
*
* 3) Remove leading and trailing characters in the "trim' string.
*
* Returns 0 if string was not altered, 1 otherwise.
*/
BU_EXPORT extern int bu_vls_simplify(struct bu_vls *vp, const char *keep, const char *de_dup, const char *trim);
/**
* callback type for bu_vls_incr()
*/
typedef int (*bu_vls_uniq_t)(struct bu_vls *v, void *data);
/**
A problem frequently encountered when generating names is generating names
that are in some sense structured but avoid colliding. For example, given a
geometry object named:
@verbatim
engine_part.s
@endverbatim
an application wanting to make multiple copies of engine_part.s
automatically might want to produce a list of names such as:
@verbatim
engine_part.s-1, engine_part.s-2, engine_part.s-3, ...
@endverbatim
However, it is equally plausible that the desired pattern might be:
@verbatim
engine_part_0010.s, engine_part_0020.s, engine_part_0030.s, ...
@endverbatim
This function implements an engine for generating the "next" name in a
sequence, given an initial name supplied by the caller and (optionally)
information to identify the incrementor in the string and the incrementing
behavior desired. bu_vls_incr does not track any "state" for individual
strings - all information is contained either in the current state of the
input string itself or the incrementation specifier (more details on the
latter can be found below.)
@param[in,out] name Contains the "seed" string for the name generation. Upon return the old string is cleared and the new one resides in name
@param[in] regex_str Optional - user supplied regular expression for locating the incrementer substring.
@param[in] incr_spec Optional - string of colon separated parameters defining function behavior.
\section bu_vls_incr_regexp Incrementer Substring Identification
bu_vls_incr uses regular expressions to identify the numerical part of a
supplied string. By default, if no regular expression is supplied by the
caller, bu_vls_incr will use a numerical sequence at the end of the string
(more precisely, it will use the last sequence of numbers if and only if
there are no non-numerical characters between that sequence and the end of
the string.) If no appropriate match is found, the incrementer will be
appended to the end of the string.
When no pre-existing number is found to start the sequence, the default behavior
is to treat the existing string as the "0"-th item in the sequence. In such cases
bu_vls_incr will thus return one, not zero, as the first incremented name in the
sequence.
If the caller wishes to be more sophisticated about where incrementers are
found in strings, they may supply their own regular expression that uses
parenthesis bounded matchers to identify numerical identifiers. For example,
the regular expression:
@verbatim
([-_:]*[0-9]+[-_:]*)[^0-9]*$
@endverbatim
will instruct bu_vls_incr to define not just the last number but the last
number and any immediately surrounding separator characters as the subset of
the string to process. Combined with a custom incrementation specifier,
this option allows calling programs to exercise broad flexibility in how
they process strings.
\section bu_vls_incr_inc Specifying Incrementor Behavior
The caller may optionally specify incrementation behavior with an incrementer
specification string, which has the following form: "minwidth:init:max:step[:left_sepchar:right_sepchar]"
The table below explains the individual elements.
<table>
<tr><th colspan="2">"minwidth:init:max:step[:left_sepchar:right_sepchar]"</th></tr>
<tr><td>minwidth</td> <td>specifies the minimum number of digits used when printing the incrementer substring</td>
<tr><td>init</td> <td>specifies the initial minimum value to use when returning an incremented string. Overrides the string-based value if that value is less than the init value.</td>
<tr><td>max</td> <td>specifies the maximum value of the incrementer - if the step takes the value past this number, the counter "rolls over" to the init value.</td>
<tr><td>step</td> <td>value by which the incrementor value is increased</td>
<tr><td>left_sepchar</td> <td>optional - specify a character to insert to the left of the numerical substring</td>
<tr><td>right_sepchar</td><td>optional - specify a character to insert to the right of the numerical substring</td>
</table>
In the case of minwidth, init, max, and step a '0' always indicates
unspecified (i.e. "default") behavior. So, an incrementer specified as
0:0:0:0 would behave as follows:
minwidth: width found in string, or standard printf handling if nothing useful is found. For example, engine_part-001.s would by default be incremented to engine_part-002.s, preserving the prefix zeros.
init: from initial name string, or 0 if not found
max: LONG_MAX
step: 1
The last two separator chars are optional - they are useful if the caller
wants to guarantee a separation between the active incremented substring and
its surroundings. For example, the following would prefix the incrementer
output with an underscore and add a suffix with a dash:
@verbatim
0:0:0:0:_:-
@endverbatim
\section bu_vls_incr_ex Examples
So, we return to our engine_part.s example cases. To generate the initial pattern:
@verbatim
engine_part.s-1, engine_part.s-2, engine_part.s-3, ...
@endverbatim
the code is actually quite simple:
@code
int i = 0;
const char *estr = "engine_part.s"
struct bu_vls name = BU_VLS_INIT_ZERO;
bu_vls_sprintf(&name, "%s", estr);
while (i < 10) {
(void)bu_vls_incr(&name, NULL, "0:0:0:0:-", NULL, NULL);
bu_log("%s\n", bu_vls_addr(&name));
}
bu_vls_free(&name);
@endcode
The second case gets a bit more interesting, since there is no number
present in the original string, we want the number *before* the .s suffix,
we're incrementing by more than 1, we want four numerical digits in the
string, and we want an underscore prefix spacer before the number:
@verbatim
engine_part_0010.s, engine_part_0020.s, engine_part_0030.s, ...
@endverbatim
To set this up correctly we take advantage of the bu_path_component function
and construct an initial "seed" string with a zero incrementer where we
need it:
@code
int i = 0;
const char *estr = "engine_part.s"
struct bu_vls name = BU_VLS_INIT_ZERO;
bu_vls_sprintf(&name, "%s0.%s", bu_path_component(estr,BU_PATH_EXTLESS),bu_path_component(estr,BU_PATH_EXT));
while (i < 10) {
(void)bu_vls_incr(&name, NULL, "4:10:0:10:_", NULL, NULL);
bu_log("%s\n", bu_vls_addr(&name));
}
bu_vls_free(&name);
@endcode
*/
BU_EXPORT extern int bu_vls_incr(struct bu_vls *name, const char *regex_str, const char *incr_spec, bu_vls_uniq_t uniq_test, void *data);
__END_DECLS
/** @} */
+4 -2
View File
@@ -41,9 +41,11 @@
*/
#if defined(BRLCADBUILD) && defined(HAVE_CONFIG_H)
# if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__) && !defined(CMAKE_HEADERS)
# include "config_win.h"
# if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__MINGW32__)
# include "brlcad_config.h"
# /* Put this after brlcad_config.h, since some of the tests
in here require defines from brlcad_config.h */
# include "config_win.h"
# else
# include "brlcad_config.h"
# endif /* _WIN32 */
-39
View File
@@ -1,39 +0,0 @@
# update COUNT
find_file(countFile COUNT ${CMAKE_CURRENT_SOURCE_DIR})
if(countFile)
file(READ COUNT buildCounter)
else(countFile)
set(buildCounter 0)
endif(countFile)
math(EXPR buildCounter "${buildCounter} + 1")
file(WRITE COUNT ${buildCounter})
# update DATE
execute_process(COMMAND cmd /c date /t OUTPUT_VARIABLE currentDate OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND cmd /c time /t OUTPUT_VARIABLE currentTime OUTPUT_STRIP_TRAILING_WHITESPACE)
file(WRITE DATE "\"${currentDate} ${currentTime}\"")
# update HOST
file(WRITE HOST "\"$ENV{COMPUTERNAME}\"")
# update PATH
set(programPath "\"$ENV{ProgramFiles}\\BRL-CAD\"")
string(REPLACE "\\" "\\\\" programPathForC ${programPath})
file(WRITE PATH ${programPathForC})
# update USER
file(WRITE USER "\"$ENV{USERNAME}\"")
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+1 -1
View File
@@ -1 +1 @@
26
27
+1 -1
View File
@@ -1 +1 @@
1
0
+4
View File
@@ -162,6 +162,10 @@
#define sys_nerr _sys_nerr
#define getcwd _getcwd
#if !defined(HAVE_STRTOLL) && defined(HAVE__STRTOI64)
# define strtoll _strtoi64
#endif
/* set up stat */
#if defined(SIZEOF_VOID_P) && SIZEOF_VOID_P == 8
# define stat _stati64
+1 -1
View File
@@ -275,7 +275,7 @@ struct bview_client_data {
int draw_solid_lines_only;
int wireframe_color_override;
int wireframe_color[3];
int transparency;
fastf_t transparency;
int dmode;
int hiddenLine;
void *freesolid;
+21 -5
View File
@@ -27,11 +27,15 @@
#define GCV_API_H
#include "common.h"
#include "vmath.h"
#include "gcv/defines.h"
#include "bu/avs.h"
#include "bu/opt.h"
#include "raytrace.h"
#include "bu/mime.h"
#include "bn/tol.h"
#include "rt/defines.h"
#include "rt/tol.h"
#include "gcv/defines.h"
__BEGIN_DECLS
@@ -132,9 +136,21 @@ struct gcv_filter {
/* operation type */
const enum gcv_filter_type filter_type;
/* MIME_MODEL_UNKNOWN if 'filter_type' is GCV_FILTER_FILTER */
/* If we have a definite type this converter is known to handle, call
* it out here.
* MIME_MODEL_UNKNOWN if 'filter_type' is GCV_FILTER_FILTER or
* if the plugin is a multi-format I/O plugin */
const bu_mime_model_t mime_type;
/* For plugins supporting multiple file types, call this to
* process them.
*
* Return 1 if the input data can be processed by this filter.
* (for example: is the file readable by this plugin? Return
* 1 if yes, 0 if no. Later we should incorporate some notion
* of quality of support into this return value...) */
int (* const data_supported)(const char *data);
/**
* PRIVATE
*
@@ -183,7 +199,7 @@ struct gcv_plugin {
*/
GCV_EXPORT const struct bu_ptbl *gcv_list_filters(void);
GCV_EXPORT const struct gcv_plugin *gcv_plugin_info();
GCV_EXPORT const struct gcv_plugin *gcv_plugin_info(void);
/**
* Perform a filtering operation on a gcv_context.
+3 -2
View File
@@ -31,7 +31,8 @@
#include "gcv/defines.h"
#include "raytrace.h"
#include "rt/geom.h"
#include "rt/tree.h"
__BEGIN_DECLS
@@ -47,7 +48,7 @@ struct rt_bot_internal *gcv_facetize(struct db_i *db, const struct db_full_path
* Topological test for determining whether the given BoT satisfies
* the conditions for solidity.
*
* Equivalent to bot_is_closed_fan() && bot_is_orientable()
* Equivalent to gcv_bot_is_closed_fan() && gcv_bot_is_orientable()
*/
GCV_EXPORT extern int gcv_bot_is_solid(const struct rt_bot_internal *bot);
+5 -3
View File
@@ -29,6 +29,7 @@
#define GED_DEFINES_H
#include "common.h"
#include "bio.h"
#include "bu/hash.h"
#include "bu/list.h"
#include "bu/vls.h"
@@ -223,9 +224,10 @@ struct ged {
/* FOR LIBGED INTERNAL USE */
struct ged_cmd *cmds;
int (*add)(const struct ged_cmd *cmd);
int (*del)(const char *name);
int (*run)(int ac, char *av[]);
int (*add)(struct ged *gedp, const struct ged_cmd *cmd);
int (*del)(struct ged *gedp, const char *name);
int (*run)(struct ged *gedp, int ac, char *av[]);
void *ged_interp; /* Temporary - do not rely on when designing new functionality */
/* Interface to LIBDM */
+10
View File
@@ -214,6 +214,11 @@ GED_EXPORT extern int ged_get_comb(struct ged *gedp, int argc, const char *argv[
*/
GED_EXPORT extern int ged_group(struct ged *gedp, int argc, const char *argv[]);
/**
* Heal command to heal the defects in bots
*/
GED_EXPORT extern int ged_heal(struct ged *gedp, int argc, const char *argv[]);
/**
* Set the "hidden" flag for the specified objects so they do not
* appear in an "ls" command output
@@ -475,6 +480,11 @@ GED_EXPORT extern int ged_cpi(struct ged *gedp, int argc, const char *argv[]);
*/
GED_EXPORT extern int ged_delete_pipept(struct ged *gedp, int argc, const char *argv[]);
/**
* DSP utility command
*/
GED_EXPORT extern int ged_dsp(struct ged *gedp, int argc, const char *argv[]);
/**
* Arb specific edits.
*/
+2059 -2
View File
File diff suppressed because it is too large Load Diff
-15
View File
@@ -39,21 +39,6 @@ __BEGIN_DECLS
#include "optical/shadework.h"
#include "optical/shadefuncs.h"
/* for libmultispectral */
/* FIXME: these should not need to be declared for libmultispectral.
* breaks encapsulation/modularity of shaders if we have to list them
* in more than one place. maybe give multispectral arrays their own
* suffix so as not to conflict.
*/
OPTICAL_EXPORT extern struct mfuncs camo_mfuncs[];
OPTICAL_EXPORT extern struct mfuncs light_mfuncs[];
OPTICAL_EXPORT extern struct mfuncs stk_mfuncs[];
OPTICAL_EXPORT extern struct mfuncs phg_mfuncs[];
OPTICAL_EXPORT extern struct mfuncs noise_mfuncs[];
OPTICAL_EXPORT extern struct bn_table *spectrum;
/**
* this function sets the provided mfuncs head pointer to the list of
* available shaders. the provided mfuncs head pointer should point
-4
View File
@@ -52,11 +52,7 @@ __BEGIN_DECLS
/* for liboptical */
OPTICAL_EXPORT extern double AmbientIntensity;
#ifdef RT_MULTISPECTRAL
OPTICAL_EXPORT extern struct bn_tabdata *background;
#else
OPTICAL_EXPORT extern vect_t background;
#endif
/* defined in sh_text.c */
OPTICAL_EXPORT extern struct region env_region; /* environment map region */
-4
View File
@@ -61,11 +61,7 @@ struct light_specific {
int lt_exaim; /**< @brief !0 if explicit aim in lt_target */
fastf_t lt_obscure; /**< @brief percentage obscuration of light */
/* Internal fields */
#ifdef RT_MULTISPECTRAL
struct bn_tabdata *lt_spectrum; /**< @brief Units? mw*sr ? */
#else
vect_t lt_color; /**< @brief RGB, as 0..1 */
#endif
fastf_t lt_radius; /**< @brief approximate radius of spherical light */
fastf_t lt_cosangle; /**< @brief cos of lt_angle */
vect_t lt_pos; /**< @brief location in space of light */
-9
View File
@@ -43,20 +43,11 @@ struct shadework {
fastf_t sw_extinction; /**< @brief extinction coeff, mm^-1 */
fastf_t sw_refrac_index;
fastf_t sw_temperature;
#ifdef RT_MULTISPECTRAL
struct bn_tabdata *msw_color;
struct bn_tabdata *msw_basecolor;
#else
fastf_t sw_color[3]; /**< @brief shaded color */
fastf_t sw_basecolor[3]; /**< @brief base color */
#endif
struct hit sw_hit; /**< @brief ray hit (dist, point, normal) */
struct uvcoord sw_uv;
#ifdef RT_MULTISPECTRAL
struct bn_tabdata * msw_intensity[SW_NLIGHTS];
#else
fastf_t sw_intensity[3*SW_NLIGHTS]; /**< @brief light intensities */
#endif
fastf_t sw_tolight[3*SW_NLIGHTS]; /**< @brief light directions */
struct light_specific *sw_visible[SW_NLIGHTS]; /**< @brief visibility flags/ptrs */
fastf_t sw_lightfract[SW_NLIGHTS];/**< @brief % light visible */
+299
View File
@@ -0,0 +1,299 @@
/* ISO C9x compliant inttypes.h for Microsoft Visual Studio
* Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124
*
* Copyright (c) 2006-2013 Alexander Chemeris
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* 3. Neither the name of the product nor the names of its contributors may
* be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
* EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifdef _MSC_VER
#ifndef _MSC_INTTYPES_H_
#define _MSC_INTTYPES_H_
/* 7.8 Format conversion of integer types */
typedef struct {
intmax_t quot;
intmax_t rem;
} imaxdiv_t;
/* 7.8.1 Macros for format specifiers */
#if !defined(__cplusplus) || defined(__STDC_FORMAT_MACROS) /* [ See footnote 185 at page 198 */
// The fprintf macros for signed integers are:
#define PRId8 "d"
#define PRIi8 "i"
#define PRIdLEAST8 "d"
#define PRIiLEAST8 "i"
#define PRIdFAST8 "d"
#define PRIiFAST8 "i"
#define PRId16 "hd"
#define PRIi16 "hi"
#define PRIdLEAST16 "hd"
#define PRIiLEAST16 "hi"
#define PRIdFAST16 "hd"
#define PRIiFAST16 "hi"
#define PRId32 "I32d"
#define PRIi32 "I32i"
#define PRIdLEAST32 "I32d"
#define PRIiLEAST32 "I32i"
#define PRIdFAST32 "I32d"
#define PRIiFAST32 "I32i"
#define PRId64 "I64d"
#define PRIi64 "I64i"
#define PRIdLEAST64 "I64d"
#define PRIiLEAST64 "I64i"
#define PRIdFAST64 "I64d"
#define PRIiFAST64 "I64i"
#define PRIdMAX "I64d"
#define PRIiMAX "I64i"
#define PRIdPTR "Id"
#define PRIiPTR "Ii"
/* The fprintf macros for unsigned integers are: */
#define PRIo8 "o"
#define PRIu8 "u"
#define PRIx8 "x"
#define PRIX8 "X"
#define PRIoLEAST8 "o"
#define PRIuLEAST8 "u"
#define PRIxLEAST8 "x"
#define PRIXLEAST8 "X"
#define PRIoFAST8 "o"
#define PRIuFAST8 "u"
#define PRIxFAST8 "x"
#define PRIXFAST8 "X"
#define PRIo16 "ho"
#define PRIu16 "hu"
#define PRIx16 "hx"
#define PRIX16 "hX"
#define PRIoLEAST16 "ho"
#define PRIuLEAST16 "hu"
#define PRIxLEAST16 "hx"
#define PRIXLEAST16 "hX"
#define PRIoFAST16 "ho"
#define PRIuFAST16 "hu"
#define PRIxFAST16 "hx"
#define PRIXFAST16 "hX"
#define PRIo32 "I32o"
#define PRIu32 "I32u"
#define PRIx32 "I32x"
#define PRIX32 "I32X"
#define PRIoLEAST32 "I32o"
#define PRIuLEAST32 "I32u"
#define PRIxLEAST32 "I32x"
#define PRIXLEAST32 "I32X"
#define PRIoFAST32 "I32o"
#define PRIuFAST32 "I32u"
#define PRIxFAST32 "I32x"
#define PRIXFAST32 "I32X"
#define PRIo64 "I64o"
#define PRIu64 "I64u"
#define PRIx64 "I64x"
#define PRIX64 "I64X"
#define PRIoLEAST64 "I64o"
#define PRIuLEAST64 "I64u"
#define PRIxLEAST64 "I64x"
#define PRIXLEAST64 "I64X"
#define PRIoFAST64 "I64o"
#define PRIuFAST64 "I64u"
#define PRIxFAST64 "I64x"
#define PRIXFAST64 "I64X"
#define PRIoMAX "I64o"
#define PRIuMAX "I64u"
#define PRIxMAX "I64x"
#define PRIXMAX "I64X"
#define PRIoPTR "Io"
#define PRIuPTR "Iu"
#define PRIxPTR "Ix"
#define PRIXPTR "IX"
/* The fscanf macros for signed integers are: */
#define SCNd8 "d"
#define SCNi8 "i"
#define SCNdLEAST8 "d"
#define SCNiLEAST8 "i"
#define SCNdFAST8 "d"
#define SCNiFAST8 "i"
#define SCNd16 "hd"
#define SCNi16 "hi"
#define SCNdLEAST16 "hd"
#define SCNiLEAST16 "hi"
#define SCNdFAST16 "hd"
#define SCNiFAST16 "hi"
#define SCNd32 "ld"
#define SCNi32 "li"
#define SCNdLEAST32 "ld"
#define SCNiLEAST32 "li"
#define SCNdFAST32 "ld"
#define SCNiFAST32 "li"
#define SCNd64 "I64d"
#define SCNi64 "I64i"
#define SCNdLEAST64 "I64d"
#define SCNiLEAST64 "I64i"
#define SCNdFAST64 "I64d"
#define SCNiFAST64 "I64i"
#define SCNdMAX "I64d"
#define SCNiMAX "I64i"
#ifdef _WIN64
# define SCNdPTR "I64d"
# define SCNiPTR "I64i"
#else
# define SCNdPTR "ld"
# define SCNiPTR "li"
#endif
/* The fscanf macros for unsigned integers are: */
#define SCNo8 "o"
#define SCNu8 "u"
#define SCNx8 "x"
#define SCNX8 "X"
#define SCNoLEAST8 "o"
#define SCNuLEAST8 "u"
#define SCNxLEAST8 "x"
#define SCNXLEAST8 "X"
#define SCNoFAST8 "o"
#define SCNuFAST8 "u"
#define SCNxFAST8 "x"
#define SCNXFAST8 "X"
#define SCNo16 "ho"
#define SCNu16 "hu"
#define SCNx16 "hx"
#define SCNX16 "hX"
#define SCNoLEAST16 "ho"
#define SCNuLEAST16 "hu"
#define SCNxLEAST16 "hx"
#define SCNXLEAST16 "hX"
#define SCNoFAST16 "ho"
#define SCNuFAST16 "hu"
#define SCNxFAST16 "hx"
#define SCNXFAST16 "hX"
#define SCNo32 "lo"
#define SCNu32 "lu"
#define SCNx32 "lx"
#define SCNX32 "lX"
#define SCNoLEAST32 "lo"
#define SCNuLEAST32 "lu"
#define SCNxLEAST32 "lx"
#define SCNXLEAST32 "lX"
#define SCNoFAST32 "lo"
#define SCNuFAST32 "lu"
#define SCNxFAST32 "lx"
#define SCNXFAST32 "lX"
#define SCNo64 "I64o"
#define SCNu64 "I64u"
#define SCNx64 "I64x"
#define SCNX64 "I64X"
#define SCNoLEAST64 "I64o"
#define SCNuLEAST64 "I64u"
#define SCNxLEAST64 "I64x"
#define SCNXLEAST64 "I64X"
#define SCNoFAST64 "I64o"
#define SCNuFAST64 "I64u"
#define SCNxFAST64 "I64x"
#define SCNXFAST64 "I64X"
#define SCNoMAX "I64o"
#define SCNuMAX "I64u"
#define SCNxMAX "I64x"
#define SCNXMAX "I64X"
#ifdef _WIN64
# define SCNoPTR "I64o"
# define SCNuPTR "I64u"
# define SCNxPTR "I64x"
# define SCNXPTR "I64X"
#else
# define SCNoPTR "lo"
# define SCNuPTR "lu"
# define SCNxPTR "lx"
# define SCNXPTR "lX"
#endif
#endif /* __STDC_FORMAT_MACROS */
/* 7.8.2 Functions for greatest-width integer types */
/* 7.8.2.1 The imaxabs function */
#define imaxabs _abs64
/* 7.8.2.2 The imaxdiv function */
/* This is modified version of div() function from Microsoft's div.c found
in %MSVC.NET%\crt\src\div.c */
#ifdef STATIC_IMAXDIV
static
#else
_inline
#endif
imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom)
{
imaxdiv_t result;
result.quot = numer / denom;
result.rem = numer % denom;
if (numer < 0 && result.rem > 0) {
/* did division wrong; must fix up */
++result.quot;
result.rem -= denom;
}
return result;
}
/* 7.8.2.3 The strtoimax and strtoumax functions */
#define strtoimax _strtoi64
#define strtoumax _strtoui64
/* 7.8.2.4 The wcstoimax and wcstoumax functions */
#define wcstoimax _wcstoi64
#define wcstoumax _wcstoui64
#endif /* _MSC_INTTYPES_H_ */
#endif /* _MSC_VER */
+1
View File
@@ -802,3 +802,4 @@ int main () {
}
#endif
+1 -1
View File
@@ -148,13 +148,13 @@ __BEGIN_DECLS
#include "./rt/primitives/pipe.h"
#include "./rt/primitives/metaball.h"
#include "./rt/primitives/rpc.h"
#include "./rt/primitives/ars.h"
#include "./rt/primitives/pg.h"
#include "./rt/primitives/hf.h"
#include "./rt/primitives/dsp.h"
#include "./rt/primitives/ell.h"
#include "./rt/primitives/tgc.h"
#include "./rt/primitives/sketch.h"
#include "./rt/primitives/annot.h"
#include "./rt/primitives/bot.h"
#include "./rt/primitives/brep.h"
#include "./rt/primitives/tor.h"
-1
View File
@@ -33,7 +33,6 @@ set(rt_headers
mem.h
nmg.h
nongeom.h
nurb.h
op.h
overlap.h
pattern.h
+1
View File
@@ -29,6 +29,7 @@
#include "common.h"
#include "vmath.h"
#include "bu/vls.h"
#include "bn/poly.h"
__BEGIN_DECLS

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