Compare commits

...
671 Commits
Author SHA1 Message Date
Clifford Yapp 471675f1ab Remove gedplugins branch (svn branch delete)
svn:revision:76468
svn:branch:gedplugins
svn:account:starseeker
2020-07-24 14:41:17 +00:00
Clifford Yapp a675a23e4b Simplify - MSVC doesn't like the GED_EXPORT here...
svn:revision:76447
svn:branch:gedplugins
svn:account:starseeker
2020-07-23 16:11:32 +00:00
Clifford Yapp acfef294a1 More header fixes
svn:revision:76446
svn:branch:gedplugins
svn:account:starseeker
2020-07-23 15:59:49 +00:00
Clifford Yapp 9f17446b50 Clean up a couple includes (MSVC)
svn:revision:76445
svn:branch:gedplugins
svn:account:starseeker
2020-07-23 15:54:39 +00:00
Clifford Yapp 4cb11787ae initialize
svn:revision:76438
svn:branch:gedplugins
svn:account:starseeker
2020-07-23 00:00:42 +00:00
Clifford Yapp 623b0dfeae Do alias check on all of the commands, not just the list pulled from the apps. Can probably delete the fixed list now, should have everything...
svn:revision:76437
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 22:45:52 +00:00
Clifford Yapp 48e89ad25a Add a timer for the libged's ged_exec, enabled with the GED_EXEC_TIME environment variable.
svn:revision:76436
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 22:40:24 +00:00
Clifford Yapp 9dc3f96ce5 make regress exposed a few more missing aliases
svn:revision:76435
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 22:31:25 +00:00
Clifford Yapp 668b3d3ea1 Cherrypick r76433 from trunk
svn:revision:76434
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 21:40:29 +00:00
Clifford Yapp 5a6620ef09 returning int, not void
svn:revision:76433
svn:branch:trunk
svn:account:starseeker
2020-07-22 21:39:18 +00:00
Clifford Yapp 54d9d29939 Note reason for validation
svn:revision:76432
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 21:25:56 +00:00
Clifford Yapp d9536b242b Report aliases (command strings that trigger the same function call)
svn:revision:76431
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 21:20:05 +00:00
Clifford Yapp 386f0752d2 Report aliases (command strings that trigger the same function call) (preliminary file move commit) 2020-07-22 21:20:05 +00:00
Clifford Yapp 160e6523be Enable detection of incorrect/unexpected argv0 values when running GED plugins
svn:revision:76430
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 20:56:14 +00:00
Clifford Yapp f3e2ba6363 whoops, missed adding files
svn:revision:76429
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 20:55:20 +00:00
Clifford Yapp acd312148d Note for potential later application
svn:revision:76428
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 20:18:30 +00:00
Clifford Yapp 1801f521a7 Print something informative if we get an unexpected argv0 value in one of the explicit ged_* function calls. This won't catch a valid-command-but-not-matching-function-name situation, but it's a start.
svn:revision:76427
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 20:09:45 +00:00
Clifford Yapp 577ad165f2 That should be all the mged and libtclcad commands that are hooked directly to ged functions. May still be other argv0 values buried in other calls, but this should be virtually all of them.
svn:revision:76426
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 19:44:43 +00:00
Clifford Yapp f6ed82f911 That should be all the mged and libtclcad commands that are hooked directly to ged functions. May still be other argv0 values buried in other calls, but this should be virtually all of them. (preliminary file move commit) 2020-07-22 19:44:43 +00:00
Clifford Yapp 2c53d6108f mged specific
svn:revision:76425
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 17:27:42 +00:00
Clifford Yapp bb22291d17 Add some more entries that should be ged commands, according to the apps...
svn:revision:76424
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 16:49:17 +00:00
Clifford Yapp bbf38e4831 List was too aggressive - MGED also has non-ged commands
svn:revision:76423
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 16:27:17 +00:00
Clifford Yapp 0d670aa7e3 Create a ged_plugins target that will build all the plugins, and have libtclcad depend on it to ensure everything needed is built before any of the high level applications actually try to use libged.
svn:revision:76422
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 15:42:22 +00:00
Clifford Yapp 553c94f554 This almost certainly isn't working, but the adaptagrams logic will eventually belong here.
svn:revision:76421
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 15:23:48 +00:00
Clifford Yapp d4a92ffe9f Move the source generations into their specific plugins
svn:revision:76420
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 15:23:02 +00:00
Clifford Yapp e6b7114664 Fix up simulate logic
svn:revision:76419
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 15:20:13 +00:00
Clifford Yapp 0ac830a7dc Pull the MGED and libtclcad commands from src/mged/setup.c and src/libtclcad/tclcad_obj.c, the latter being limited to those with a non-null libged pointer function. (Will have to check the others for any ged command calls manually...). Clearly some work to do to get all of these enabled.
svn:revision:76418
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 14:43:32 +00:00
Clifford Yapp 5c7adacc03 Whoops, add spdi tests
svn:revision:76417
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 14:37:27 +00:00
Clifford Yapp 5d12f82b59 heal command crashes if not given any args
svn:revision:76416
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 14:36:16 +00:00
Clifford Yapp 608b680d4c Work on fixing distcheck
svn:revision:76415
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 14:18:04 +00:00
Clifford Yapp d56bfaa827 Work on fixing distcheck (preliminary file move commit) 2020-07-22 14:18:04 +00:00
Clifford Yapp 29ce590a1e Another milestone - make regress now passes.
svn:revision:76414
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 13:13:48 +00:00
Clifford Yapp f8e443d270 Hook up a couple commands for mged
svn:revision:76413
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 13:01:29 +00:00
Clifford Yapp 725ac0310a Walk through and exec without argument all of the libged commands.
svn:revision:76412
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 12:50:38 +00:00
Clifford Yapp 8681f266ac There we go, get the remaining adjustments made to avoid colliding with libged wrapping names.
svn:revision:76411
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 12:50:10 +00:00
Clifford Yapp 2bed11e7b7 Add _core suffix to avoid conflicting with the name-specific wrappers to ged_exec in the main libged library. Eventually we may want to consider deprecating all of the ged_* specific function calls in favor of just ged_exec, in which case this won't be an issue, but for now we need to avoid the conflict.
svn:revision:76410
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 12:40:10 +00:00
Clifford Yapp aa302868e9 List the commands known to the ged plugin system
svn:revision:76409
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 12:24:19 +00:00
Clifford Yapp 53044a2938 Make a stab at a function to return a list of ged commands
svn:revision:76408
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 12:13:17 +00:00
Clifford Yapp e83b3647db Actually, can't flatten the argv0 to a uniform standard - some of the ged commands change their behavior based on what string is in argv0
svn:revision:76407
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 11:43:56 +00:00
Clifford Yapp c3ed816b00 Use a macro to define the mappings
svn:revision:76406
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 11:42:11 +00:00
Clifford Yapp f2ff867735 MGED is looking for 'glob' here
svn:revision:76405
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 01:48:14 +00:00
Clifford Yapp 25d8cd7e0c Remove the non-plugin src listings
svn:revision:76404
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 01:41:42 +00:00
Clifford Yapp 0817d91dda Add a couple of aliases - this is enough to get moss.g displaying in Archer.
svn:revision:76403
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 01:39:12 +00:00
Clifford Yapp abd4ea2808 Get as far as archer launching, although the tree and display are not working.
svn:revision:76402
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 01:27:01 +00:00
Clifford Yapp c0e37b2f2c Get as far as archer launching, although the tree and display are not working. (preliminary file move commit) 2020-07-22 01:27:01 +00:00
Clifford Yapp f8e7d40af3 checkpoint
svn:revision:76401
svn:branch:gedplugins
svn:account:starseeker
2020-07-22 00:38:30 +00:00
Clifford Yapp a99a0f57f7 Now it's getting interesting. This version of libged is using the plugins, and gets as far as launching MGED successfully. Archer still isn't working yet, but that's most likely due to some of the plugin command strings not matching what Archer is expecting.
svn:revision:76400
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 22:57:45 +00:00
Clifford Yapp 8e5d6f2c78 Now it's getting interesting. This version of libged is using the plugins, and gets as far as launching MGED successfully. Archer still isn't working yet, but that's most likely due to some of the plugin command strings not matching what Archer is expecting. (preliminary file move commit) 2020-07-21 22:57:45 +00:00
Clifford Yapp cafe6c5d75 The _ged_current_gedp global gets used a fair bit - move it from loadview to a more central location.
svn:revision:76399
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 19:59:43 +00:00
Clifford Yapp 5992221285 relocate wdb_importFg4Section.c
svn:revision:76398
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 19:33:32 +00:00
Clifford Yapp 7edb4ded89 Place dl_dump with the command it is specific to
svn:revision:76397
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 19:14:28 +00:00
Clifford Yapp 47bc8dadfd Consolidate bot related commands into one plugin
svn:revision:76396
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 19:08:41 +00:00
Clifford Yapp 56c488969b Consolidate bot related commands into one plugin (preliminary file move commit) 2020-07-21 19:08:41 +00:00
Clifford Yapp 4714725e7e Consolidate the nmg related commands into a single plugin
svn:revision:76395
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 18:53:10 +00:00
Clifford Yapp e1306b5e60 Consolidate the nmg related commands into a single plugin (preliminary file move commit) 2020-07-21 18:53:10 +00:00
Clifford Yapp cb65a73cc1 make some notes...
svn:revision:76394
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 18:31:24 +00:00
Clifford Yapp f8befe525a scale files all pertain just to pscale - move them there
svn:revision:76393
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 18:25:56 +00:00
Clifford Yapp 86819c5080 scale files all pertain just to pscale - move them there (preliminary file move commit) 2020-07-21 18:25:56 +00:00
Clifford Yapp dcbfd4ff30 Add the GED_EXPORT definitions so gsh can load the plugins successfully
svn:revision:76392
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 17:17:07 +00:00
Clifford Yapp 1bf80e3223 Add the GED_EXPORT definitions so gsh can load the plugins successfully (preliminary file move commit) 2020-07-21 17:17:07 +00:00
Clifford Yapp 18016da6e3 Plugins use a lot of otherwise internal API across a shared library interface, and with the hidden feature on we need to export the "internal" functions so the plugins can see them.
svn:revision:76391
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 16:36:56 +00:00
Clifford Yapp 8d08e5e142 whoops, those aren't libdm functions...
svn:revision:76390
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 16:20:13 +00:00
Clifford Yapp 59dad35fa2 Add some libdm linkages
svn:revision:76389
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 16:07:02 +00:00
Clifford Yapp 59371ec3f5 Many of them won't work as plugins right now, but set up the basic machinery to allow compiling all libged commands as plugins
svn:revision:76388
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 15:54:40 +00:00
Clifford Yapp fb348d23f3 Many of them won't work as plugins right now, but set up the basic machinery to allow compiling all libged commands as plugins (preliminary file move commit) 2020-07-21 15:54:40 +00:00
Clifford Yapp d81dc2f6d7 Enable 3ptarb and adc as plugins
svn:revision:76387
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 13:35:43 +00:00
Clifford Yapp 60dec8a8ff Kick off the gedplugins branch with an updated version of the initial bioh branch work on this topic. This enables both zoom and the help commands that were prototyped with the previous API.
svn:revision:76384
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 12:58:27 +00:00
Clifford Yapp 70419a9a68 Make a purpose-specific branch for exploring LIBGED commands as plugins
svn:revision:76383
svn:branch:gedplugins
svn:account:starseeker
2020-07-21 12:05:36 +00:00
Christopher Sean Morrison b13ed1d6c0 update owens addr
svn:revision:76379
svn:branch:trunk
svn:account:brlcad
2020-07-20 22:55:58 +00:00
Clifford Yapp 34560d2e1e Merge organization of regression tests from bioh branch into trunk - r76368 through r76376
svn:revision:76377
svn:branch:trunk
svn:account:starseeker
2020-07-20 19:45:30 +00:00
Clifford Yapp 6d45ac3721 Also need to skip r76359
svn:revision:76376
svn:branch:trunk
svn:account:starseeker
2020-07-20 15:43:30 +00:00
Clifford Yapp 905b1f0b10 Move the remainder of the tests to subdirectories
svn:revision:76375
svn:branch:bioh
svn:account:starseeker
2020-07-17 20:04:27 +00:00
Clifford Yapp ead3c7c0bb Move the remainder of the tests to subdirectories (preliminary file move commit) 2020-07-17 20:04:27 +00:00
Clifford Yapp da502e9abf Move rtweight test to subdir
svn:revision:76374
svn:branch:bioh
svn:account:starseeker
2020-07-17 18:50:23 +00:00
Clifford Yapp ab2ce86743 Forgot to add CMakeLists.txt files
svn:revision:76373
svn:branch:bioh
svn:account:starseeker
2020-07-17 18:48:56 +00:00
Clifford Yapp 1f65e360f2 Move red regression test to subdir
svn:revision:76372
svn:branch:bioh
svn:account:starseeker
2020-07-17 18:45:23 +00:00
Clifford Yapp 7439666912 Move moss and dsp tests to subdirs
svn:revision:76371
svn:branch:bioh
svn:account:starseeker
2020-07-17 18:40:13 +00:00
Clifford Yapp 07ad95f27c Move moss and dsp tests to subdirs (preliminary file move commit) 2020-07-17 18:40:13 +00:00
Clifford Yapp e4713cd74b Experiment with moving regression tests into subdirectories so we can keep the controlling logic more managable
svn:revision:76370
svn:branch:bioh
svn:account:starseeker
2020-07-17 18:23:05 +00:00
Clifford Yapp fb2e08ce20 I don't think this file is used?
svn:revision:76369
svn:branch:bioh
svn:account:starseeker
2020-07-17 18:12:24 +00:00
Clifford Yapp c431cbd5fe List files for distclean
svn:revision:76368
svn:branch:bioh
svn:account:starseeker
2020-07-17 18:09:24 +00:00
Clifford Yapp 181d56fc40 Merge trunk changes through r76366
svn:revision:76367
svn:branch:bioh
svn:account:starseeker
2020-07-17 18:04:55 +00:00
Clifford Yapp 2270329f56 Merge file moves and distcheck updates from bioh through r76365
svn:revision:76366
svn:branch:trunk
svn:account:starseeker
2020-07-17 17:59:33 +00:00
Clifford Yapp f0497c1a1d Add glm license
svn:revision:76365
svn:branch:bioh
svn:account:starseeker
2020-07-17 17:40:32 +00:00
Clifford Yapp e8fd8b9c3d Add license header to glm files
svn:revision:76364
svn:branch:bioh
svn:account:starseeker
2020-07-17 17:36:47 +00:00
Clifford Yapp 1694915677 Add files to distcheck
svn:revision:76363
svn:branch:bioh
svn:account:starseeker
2020-07-17 17:25:45 +00:00
Clifford Yapp 59d65849db Get everything compiling again
svn:revision:76362
svn:branch:bioh
svn:account:starseeker
2020-07-17 17:21:01 +00:00
Clifford Yapp ea9ab451cb Most of the headers are used in multiple files, but joint.h is specific to the joint command.
svn:revision:76361
svn:branch:bioh
svn:account:starseeker
2020-07-17 16:45:51 +00:00
Clifford Yapp aa141bcaf7 Move GED command files into subdirectories, to match zoom pattern. (This will be disruptive to the build, so doing the work in a branch)
svn:revision:76360
svn:branch:bioh
svn:account:starseeker
2020-07-17 16:44:16 +00:00
Daniel Rossberg cb1eb02b43 even if it looks like the shorter email address works, the GitHub Docs say that accounts created after July 18, 2017, have to use the ID number in the user name
svn:revision:76357
svn:branch:trunk
svn:account:d_rossberg
2020-07-17 06:38:08 +00:00
Clifford Yapp 4ea683fcde Add some notes on git_stats
svn:revision:76356
svn:branch:trunk
svn:account:starseeker
2020-07-16 22:38:30 +00:00
Clifford Yapp b9d3225756 Stash a utility for reporting svn and git commits that aren't represented in the conversion - not perfect, but output should be helpful for checking the conversion.
svn:revision:76355
svn:branch:trunk
svn:account:starseeker
2020-07-16 21:44:16 +00:00
Clifford Yapp 21adf87933 Merge from trunk r76351 through r76353. This should be the starting commit for the next merge-to-trunk cycle.
svn:revision:76354
svn:branch:bioh
svn:account:starseeker
2020-07-16 19:03:29 +00:00
Clifford Yapp 513691b2c1 looks like git push --all does the job
svn:revision:76353
svn:branch:trunk
svn:account:starseeker
2020-07-16 18:35:40 +00:00
Clifford Yapp e25296ef71 Merge from trunk r76159 through r76351
svn:revision:76352
svn:branch:bioh
svn:account:starseeker
2020-07-16 17:40:20 +00:00
Clifford Yapp 874ecf3482 Experiment with trying to spot recursive calls to callbacks - no sure I like this even if it works, but especially in Tcl land it's not hard to accidentally get into a recursive situation so would be nice to have some sort of guard.
svn:revision:76351
svn:branch:trunk
svn:account:starseeker
2020-07-16 15:11:12 +00:00
Clifford Yapp 88fc93531f Some of the libged commands need to update the views or otherwise interact with the application environment - that's the purpose of the various wrappers. It would be nice if the libged commands could handle this themselves somehow rather than requiring the parent application to know about the details of each command...
svn:revision:76350
svn:branch:trunk
svn:account:starseeker
2020-07-16 13:39:50 +00:00
Clifford Yapp 4f1fbf2b4a Separate out the commands that have a libged function from those that do not.
svn:revision:76349
svn:branch:trunk
svn:account:starseeker
2020-07-15 20:17:40 +00:00
Clifford Yapp b140d338b3 relocate a couple more functions
svn:revision:76348
svn:branch:trunk
svn:account:starseeker
2020-07-15 11:09:35 +00:00
Clifford Yapp 024fab3630 rename
svn:revision:76347
svn:branch:trunk
svn:account:starseeker
2020-07-15 01:31:21 +00:00
Clifford Yapp 9ae1ea8714 more refactoring
svn:revision:76346
svn:branch:trunk
svn:account:starseeker
2020-07-15 01:30:45 +00:00
Clifford Yapp e77fab0eb0 More relocation
svn:revision:76345
svn:branch:trunk
svn:account:starseeker
2020-07-15 01:11:01 +00:00
Clifford Yapp e04e703012 Break down view logic more specifically.
svn:revision:76344
svn:branch:trunk
svn:account:starseeker
2020-07-15 00:45:22 +00:00
Clifford Yapp 2e05f66411 add view subdirectory
svn:revision:76343
svn:branch:trunk
svn:account:starseeker
2020-07-15 00:24:11 +00:00
Clifford Yapp d7660f1f0a add view subdirectory (preliminary file move commit) 2020-07-15 00:24:11 +00:00
Clifford Yapp a92886c595 rename files
svn:revision:76342
svn:branch:trunk
svn:account:starseeker
2020-07-15 00:17:32 +00:00
Clifford Yapp b4c2b42049 Consolidate libdm specific files
svn:revision:76341
svn:branch:trunk
svn:account:starseeker
2020-07-15 00:11:51 +00:00
Clifford Yapp d0cb327617 move fb functions
svn:revision:76340
svn:branch:trunk
svn:account:starseeker
2020-07-15 00:08:48 +00:00
Clifford Yapp 8523b23d7b Remove the lower level calls
svn:revision:76339
svn:branch:trunk
svn:account:starseeker
2020-07-14 21:57:25 +00:00
Clifford Yapp 207ff6c85a Use the app tclcad_init
svn:revision:76338
svn:branch:trunk
svn:account:starseeker
2020-07-14 21:55:37 +00:00
Clifford Yapp 01c879511e Extract polygon logic into its own file - some of the mouse routines probably belong here as well...
svn:revision:76337
svn:branch:trunk
svn:account:starseeker
2020-07-14 21:34:33 +00:00
Clifford Yapp 4415734670 Group mouse related functions
svn:revision:76336
svn:branch:trunk
svn:account:starseeker
2020-07-14 20:46:34 +00:00
Clifford Yapp b8b236185c Extract at least some of the logic related to views
svn:revision:76335
svn:branch:trunk
svn:account:starseeker
2020-07-14 20:18:22 +00:00
Clifford Yapp 8c9e5a2b4b Start working on figuring out the pieces of tclcad_obj.
svn:revision:76334
svn:branch:trunk
svn:account:starseeker
2020-07-14 19:54:26 +00:00
Clifford Yapp 202cf1ea55 Go_Init -> Ged_Init
svn:revision:76333
svn:branch:trunk
svn:account:starseeker
2020-07-14 19:19:25 +00:00
Clifford Yapp 4ae8018d8e Variety of libtclcad adjustments. Expose only the Tclcad init.
svn:revision:76332
svn:branch:trunk
svn:account:starseeker
2020-07-14 19:16:50 +00:00
Clifford Yapp 58f7054fe4 consolidate
svn:revision:76331
svn:branch:trunk
svn:account:starseeker
2020-07-14 18:58:44 +00:00
Clifford Yapp ed984a6f8c rename
svn:revision:76330
svn:branch:trunk
svn:account:starseeker
2020-07-14 18:54:29 +00:00
Clifford Yapp 89d35fc479 fix header
svn:revision:76329
svn:branch:trunk
svn:account:starseeker
2020-07-14 18:53:12 +00:00
Clifford Yapp cc7a32496c Rename
svn:revision:76328
svn:branch:trunk
svn:account:starseeker
2020-07-14 18:48:17 +00:00
Clifford Yapp b24729eb55 Group bu and bn lib functions into their own files
svn:revision:76327
svn:branch:trunk
svn:account:starseeker
2020-07-14 18:47:49 +00:00
Clifford Yapp 46b4af2801 Now able to write out a v4 asc file with gcv for moss
svn:revision:76326
svn:branch:trunk
svn:account:starseeker
2020-07-14 16:34:25 +00:00
Clifford Yapp fd08133810 Get as far as producing a .g file from a v4 asc input with gcv. Not exactly the same binary output as asc2g, but gdiff doesn't report any differences so probably pretty close...
svn:revision:76325
svn:branch:trunk
svn:account:starseeker
2020-07-14 15:59:51 +00:00
Clifford Yapp a15df7ee21 Add difference and intersection checks as well. (Xor isn't supported by the bundled clipper)
svn:revision:76324
svn:branch:trunk
svn:account:starseeker
2020-07-14 15:12:06 +00:00
Clifford Yapp 67fb7cb125 Set up a basic test of the polygon boolean op logic using clipper. Only union tested so far - still need to add the other tests.
svn:revision:76323
svn:branch:trunk
svn:account:starseeker
2020-07-14 14:44:53 +00:00
Clifford Yapp 2e2f0058ea add 3d plot for polygons
svn:revision:76322
svn:branch:trunk
svn:account:starseeker
2020-07-14 14:35:53 +00:00
Clifford Yapp d1719b6444 Allow NULL matrix specifications - just use the identity matrix in that case.
svn:revision:76321
svn:branch:trunk
svn:account:starseeker
2020-07-14 14:08:18 +00:00
Clifford Yapp c7c2409052 Remove a few duplicates, always use lf for .sh files
svn:revision:76320
svn:branch:trunk
svn:account:starseeker
2020-07-13 23:36:05 +00:00
Clifford Yapp 72b9d3f31f Can't do much interesting yet, but at least run g2asc on the v4 file with more primitive types.
svn:revision:76319
svn:branch:trunk
svn:account:starseeker
2020-07-11 03:18:34 +00:00
Clifford Yapp 1215caf7ca Apparently rhc doesn't make the downgrade successfully - also can't make on with either make or in commands in a v4 database.
svn:revision:76318
svn:branch:trunk
svn:account:starseeker
2020-07-11 02:58:53 +00:00
Clifford Yapp bce0986f60 Tweak converage flags - may need to revisit this...
svn:revision:76317
svn:branch:trunk
svn:account:starseeker
2020-07-10 15:41:30 +00:00
Clifford Yapp c24923639e More v4 primitives. Trying to collect enough to exercise g2asc code.
svn:revision:76316
svn:branch:trunk
svn:account:starseeker
2020-07-10 14:40:55 +00:00
Clifford Yapp a4bb6eea1d Was quite involved to create a poly solid for testing - deprecated, can exist only in v4 databases (gets converted to bot for v5) and apparently only the nmg_simplify command offers a path to creating one (and only when a v4 .g is open - wipes out in v5 with an export failure). Now that I've got it, stash it for testing purposes.
svn:revision:76315
svn:branch:trunk
svn:account:starseeker
2020-07-10 14:26:53 +00:00
Clifford Yapp de070c3a07 Don't document it - this is not a primitive we want to encourage use of - but support writing out a cline with make for testing purposes.
svn:revision:76314
svn:branch:trunk
svn:account:starseeker
2020-07-10 13:54:53 +00:00
Clifford Yapp 669ca9f61a Add a regression test to exercise g2asc, asc2g and dbupgrade, specifically involving the v4 logic since we don't really test that other than the asc2g conversion of our v4 asc sample files. Not trying to be too aggressive, just looking for expected behavior with moss.g using gdiff
svn:revision:76313
svn:branch:trunk
svn:account:starseeker
2020-07-10 13:33:54 +00:00
Clifford Yapp b01df7af44 gdiff filtering option previously required a match on both sides of a diff result to filter - switched behavior to apply the filter if either side matches. Example -~ when attempting to filter out a result involving the removal of a region_id, '! -attr region_id=-1' didn't work because it only matched one side of the diff.
svn:revision:76312
svn:branch:trunk
svn:account:starseeker
2020-07-10 13:05:14 +00:00
Clifford Yapp 995c85445d Switched gdiff to using multiple specifications of -v rather than numerical arguments to -v to control output verbosity, which is a more normal approach to this feature. Provide a -q option to back down the verbosity as well that operates in the same manner (default output is not quiet, so need a way to back down.) They will interact - '-v -v -q -q' will result in the default output verbosity.
svn:revision:76311
svn:branch:trunk
svn:account:starseeker
2020-07-10 13:02:28 +00:00
Clifford Yapp c3637292c7 Reject a gdiff result if either side trips the search filters, not just when both do.
svn:revision:76310
svn:branch:trunk
svn:account:starseeker
2020-07-10 12:58:59 +00:00
Clifford Yapp 2cd8db6cd2 Switch gdiff verbosity option to using the 'multiple specifications of -v increases verbosity' model instead of specific numerical values
svn:revision:76309
svn:branch:trunk
svn:account:starseeker
2020-07-10 12:37:56 +00:00
Christopher Sean Morrison 374167bafb improved the combination editor buttons to no longer display an error if you just hit Apply or Reset. now it looks at whether the name or expression are empty and behaves accordingly, better.
svn:revision:76308
svn:branch:trunk
svn:account:brlcad
2020-07-10 08:31:31 +00:00
Christopher Sean Morrison ad4895576b Combination Editor's buttons were improved all around to gracefully
handle empty combination names and do the right thing, depending on
whether the combination name or expression or both are empty.  This
addresses a user-reported issue with the Combination Editor where
pressing Apply could result in a mislading error dialog about
comb_control(id,attrs) not being set.  All around better behavior.

svn:revision:76307
svn:branch:trunk
svn:account:brlcad
2020-07-10 08:28:25 +00:00
Christopher Sean Morrison 17e9603cf2 display a warning if the user just clicks the ok or apply button, instead of proceeding to attempt to create an empty-name combination.
svn:revision:76306
svn:branch:trunk
svn:account:brlcad
2020-07-10 07:27:36 +00:00
Christopher Sean Morrison f3050407e7 there may not be attributes saved, so don't pop up a dialog about it
svn:revision:76305
svn:branch:trunk
svn:account:brlcad
2020-07-10 07:18:22 +00:00
Christopher Sean Morrison 558ea65f71 updated usage statements on e_id, eac, edcomb, item, regdef, reid, relos, and remat to consistently denote ID and los%.
svn:revision:76304
svn:branch:trunk
svn:account:brlcad
2020-07-10 07:10:21 +00:00
Christopher Sean Morrison db15aef1e1 adjust the wording and note reid's optional increment argument
svn:revision:76303
svn:branch:trunk
svn:account:brlcad
2020-07-10 07:10:00 +00:00
Christopher Sean Morrison ffa7164e53 update the manual pages to be more consistent with the usage statements
svn:revision:76302
svn:branch:trunk
svn:account:brlcad
2020-07-10 07:07:43 +00:00
Christopher Sean Morrison 303bb31e83 update to carl's alias so his commits can be represented
svn:revision:76301
svn:branch:trunk
svn:account:brlcad
2020-07-10 05:46:34 +00:00
Christopher Sean Morrison 158a76111d nix extraneous paren
svn:revision:76300
svn:branch:trunk
svn:account:brlcad
2020-07-10 05:19:17 +00:00
Christopher Sean Morrison 6a06060b58 as they appear to be undocumented and not user-facing, move the is_region flag and four following idents to the end of the put_comb and get_comb list. this makes it possible to deconditionalize the put_comb call, and further simplifying the code all around.
svn:revision:76299
svn:branch:trunk
svn:account:brlcad
2020-07-10 05:14:48 +00:00
Christopher Sean Morrison 7f4eb931de document what the four flags seem to do
svn:revision:76298
svn:branch:trunk
svn:account:brlcad
2020-07-10 05:10:16 +00:00
Christopher Sean Morrison b68ea40832 no longer true
svn:revision:76297
svn:branch:trunk
svn:account:brlcad
2020-07-10 04:23:49 +00:00
Christopher Sean Morrison 8d4fd303f5 don't allow put_comb to attempt to read/write empty combination names. this is trivially achieved via the combination panel gui in mged, just hit Apply.
svn:revision:76296
svn:branch:trunk
svn:account:brlcad
2020-07-10 04:10:15 +00:00
Christopher Sean Morrison 507025d11c don't allow empty object names to be added to directories
svn:revision:76295
svn:branch:trunk
svn:account:brlcad
2020-07-10 04:08:52 +00:00
Christopher Sean Morrison 0d934bd284 more semantic readability and code simplification
svn:revision:76294
svn:branch:trunk
svn:account:brlcad
2020-07-10 03:34:33 +00:00
Christopher Sean Morrison 54431ca33e broad code cleanup. rename vars for readability, reduce function complexity, eliminate an apparently unnecessary static global.
svn:revision:76293
svn:branch:trunk
svn:account:brlcad
2020-07-10 01:50:14 +00:00
Clifford Yapp 72c31884eb See if we can use dbi_fp and db_version to do the v4 write IFF we have a v4 .g file
svn:revision:76292
svn:branch:trunk
svn:account:starseeker
2020-07-10 01:01:03 +00:00
Clifford Yapp 159a8404b8 Urk - v4 .g writing is going to be a job to retrofit for modern (v5) inputs. Maybe reject any input except a v4 db file? Or just dispense with the ability to write out this format, since db_upgrade is supposed to handle v4 upgrading.
svn:revision:76291
svn:branch:trunk
svn:account:starseeker
2020-07-09 21:34:06 +00:00
Clifford Yapp 37176431e6 Start working on turning the v4 asc code into library code, rather than an app usin global vars.
svn:revision:76290
svn:branch:trunk
svn:account:starseeker
2020-07-09 21:15:14 +00:00
Clifford Yapp 176639f31a Start roughing in the asc input code as well (for v4 - v5 needs a rewrite.)
svn:revision:76289
svn:branch:trunk
svn:account:starseeker
2020-07-09 17:15:22 +00:00
Clifford Yapp 8c0649f66c Save some notes on github CI setup.
svn:revision:76288
svn:branch:trunk
svn:account:starseeker
2020-07-09 16:15:58 +00:00
Christopher Sean Morrison 297e6c8ad3 clean up and use BU for more robust t/f validation
svn:revision:76287
svn:branch:trunk
svn:account:brlcad
2020-07-09 03:58:26 +00:00
Christopher Sean Morrison 7553ed119e add commands reported by help that don't have a manual page
svn:revision:76286
svn:branch:trunk
svn:account:brlcad
2020-07-08 18:14:29 +00:00
Clifford Yapp a99e15e53c Pull the g2asc logic from g2asc.c and rough it into the respective gcv plugin files. Not working or close to it - just figuring out which pieces belong where. For v5, once we know what we're writing out we'll know what we need to read in - anything added to a .asc file not written by g2asc will promote an asc file to an all-up Tcl script needing the full libtclcad logic to evaluate.
svn:revision:76285
svn:branch:trunk
svn:account:starseeker
2020-07-08 16:18:01 +00:00
Clifford Yapp bb74e4fb43 Add a note about managing user and email with newer git versions
svn:revision:76284
svn:branch:trunk
svn:account:starseeker
2020-07-08 15:09:29 +00:00
Clifford Yapp 41ff108cb0 Add a note about when to use/not use the libged argc/argv API.
svn:revision:76283
svn:branch:trunk
svn:account:starseeker
2020-07-08 14:44:12 +00:00
Christopher Sean Morrison 76a3c7c369 update help messages for e_id, eac, edcomb, item, regdef, reid, relos, and remat to consistently denote ID and los%. do not present ident as being synonymous with regionID as idents are used elsewhere to imply all of them. eliminate references to assembly as inconsistent terminology.
svn:revision:76282
svn:branch:trunk
svn:account:brlcad
2020-07-08 14:19:56 +00:00
Christopher Sean Morrison 69a44e73cd clarify the features and verb-noun pattern being used
svn:revision:76281
svn:branch:trunk
svn:account:brlcad
2020-07-08 13:29:53 +00:00
Clifford Yapp c1629c8a9a Stub in both reading and writing calls - no functionality as yet.
svn:revision:76280
svn:branch:trunk
svn:account:starseeker
2020-07-07 19:49:37 +00:00
Christopher Sean Morrison faab06c2f7 ben requested a different address
svn:revision:76279
svn:branch:trunk
svn:account:brlcad
2020-07-07 19:31:23 +00:00
Clifford Yapp e0e9c19fa0 Generalize - BRL-CAD asc is not just Tcl based.
svn:revision:76278
svn:branch:trunk
svn:account:starseeker
2020-07-07 19:17:02 +00:00
Clifford Yapp 926980e7e4 Start looking at what a Tcl-free asc2g will need. This a tall order and not really possible in the general v5 ASC case, since for v5 asc2g makes available libtclcad's commands and evaluates the asc file as a Tcl script. The practical approach looks to be: a) bring over v4 parsing without Tcl, which seems to be present in asc2g. b) identify the subset of commands used by g2asc for v5, and implement parsing and evaluation for those commands specifically c) IFF b fails to read a file and Tcl is enabled during compilation, fall back on the libtclcad Tcl evaluation to import the file. Fully executed, we should be able to handle anything written out by g2asc without Tcl (assuming there aren't actual Tcl syntax evaluations buried in v5 somewhere) and if someone has manually altered or created a more complex file that actually hard requires Tcl we'll support if if Tcl is enabled.
svn:revision:76277
svn:branch:trunk
svn:account:starseeker
2020-07-07 19:05:12 +00:00
Clifford Yapp cf70070841 Break gdal derived code out of plugin into its own file
svn:revision:76276
svn:branch:trunk
svn:account:starseeker
2020-07-07 15:12:58 +00:00
Clifford Yapp 91a13c57f0 Start working on a gitattributes file which is intended to do (more or less) what https://brlcad.org/wiki/Mime-types does for subversion in terms of identifying file patterns with specific line ending types to manage (or not, as the case may be).
svn:revision:76275
svn:branch:trunk
svn:account:starseeker
2020-07-07 14:26:00 +00:00
Clifford Yapp 4b4aa272ff Latest git cvs-fast-export changes the output of our conversion, introducing a few differences in the SVN/CVS comparison. Not sure which answer is 'better' at this point, but the difference appears to be cvs-fast-export populating some RCS tags. We're deliberately trying not to expand those at all for any of this, so use the cvs-fast-export version used when the original splicing work was done.
svn:revision:76274
svn:branch:trunk
svn:account:starseeker
2020-07-06 13:41:21 +00:00
Clifford Yapp 3dc9cdcf63 Whoops, update both references
svn:revision:76273
svn:branch:trunk
svn:account:starseeker
2020-07-06 03:10:48 +00:00
Clifford Yapp 7e556919d8 From sha1 will still need to change - not sure if it'll be the one we used in the last attempt or not, but give it a try.
svn:revision:76272
svn:branch:trunk
svn:account:starseeker
2020-07-06 02:43:23 +00:00
Clifford Yapp 94105063e7 list script for distcheck
svn:revision:76271
svn:branch:trunk
svn:account:starseeker
2020-07-06 02:42:35 +00:00
Clifford Yapp 2bf6395253 Revert inadvertent copyright statement changes in repoconv fast import files
svn:revision:76270
svn:branch:trunk
svn:account:starseeker
2020-07-06 02:38:46 +00:00
Clifford Yapp 1b6c169aef Decent chance the copyright update explains the unanticiapted file sha changes - revert to the old values until we get this sorted out.
svn:revision:76269
svn:branch:trunk
svn:account:starseeker
2020-07-06 02:32:18 +00:00
Clifford Yapp 353646f6ca Urk. The copyright update script looks like it got some of the fi files. Revert the data size change - correct fix is to repair the fi files.
svn:revision:76268
svn:branch:trunk
svn:account:starseeker
2020-07-06 02:28:06 +00:00
Clifford Yapp d55bb209b6 Couple odd things about these updates - in particular the mac_hack file data block size was slightly different?? - but updated so they can be applied to the current state. Since the tag sha1 values keep getting updated, improve the script that finds them for us given the availability of the older git conversion - the manual mapping was a lot of work, so we don't want to have to redo it if we can preserve the knowledge by sha1 lookup instead.
svn:revision:76267
svn:branch:trunk
svn:account:starseeker
2020-07-05 13:43:17 +00:00
Clifford Yapp 3f09b18137 sync maps
svn:revision:76266
svn:branch:trunk
svn:account:starseeker
2020-07-04 13:26:14 +00:00
Christopher Sean Morrison 6d97d54705 a couple update requests came in
svn:revision:76265
svn:branch:trunk
svn:account:brlcad
2020-07-03 13:59:11 +00:00
Clifford Yapp d154db0e65 Incorrectly formatted entry
svn:revision:76264
svn:branch:trunk
svn:account:starseeker
2020-07-03 02:51:10 +00:00
Clifford Yapp c1418b8bc0 Adjust committer info for manual merge data.
svn:revision:76263
svn:branch:trunk
svn:account:starseeker
2020-07-03 02:38:53 +00:00
Christopher Sean Morrison 41db683bf0 sort alpha. now both comparable with a simple sed 's/ =//g' on this one
svn:revision:76262
svn:branch:trunk
svn:account:brlcad
2020-07-03 02:37:56 +00:00
Christopher Sean Morrison fb15b1ee51 sort alphabetical
svn:revision:76261
svn:branch:trunk
svn:account:brlcad
2020-07-03 02:33:57 +00:00
Clifford Yapp 19cc7753e2 Adjust committer info in custom commits to match new maps
svn:revision:76260
svn:branch:trunk
svn:account:starseeker
2020-07-03 02:26:01 +00:00
Clifford Yapp 90636c9e28 Update cvs authormap to match the svn version
svn:revision:76259
svn:branch:trunk
svn:account:starseeker
2020-07-03 02:08:59 +00:00
Clifford Yapp 5151863750 Restore the jebbly entry, using modern github email address (need to confirm this is the right one to use, ideally).
svn:revision:76258
svn:branch:trunk
svn:account:starseeker
2020-07-03 02:02:29 +00:00
Christopher Sean Morrison 6a859bce43 no reply to confirm the llnl address for john grosh, so replace with alias
svn:revision:76257
svn:branch:trunk
svn:account:brlcad
2020-07-02 22:09:09 +00:00
Christopher Sean Morrison 6e5e2e5aed armin requested to use his own mail server
svn:revision:76256
svn:branch:trunk
svn:account:brlcad
2020-07-02 21:35:37 +00:00
Christopher Sean Morrison 1405d1c4ca use jim's actual github address
svn:revision:76255
svn:branch:trunk
svn:account:brlcad
2020-07-02 08:42:17 +00:00
Christopher Sean Morrison 142c695fd1 the cvs_authormap needs to be sync'd, but ... we should finally be good to go
svn:revision:76254
svn:branch:trunk
svn:account:brlcad
2020-07-02 08:34:34 +00:00
Christopher Sean Morrison 6d16b12138 nearly done, just need to finalize the aliases and follow back on the responses.
svn:revision:76253
svn:branch:trunk
svn:account:brlcad
2020-07-01 23:46:20 +00:00
Clifford Yapp 8d46ccb000 Push the polygon logic down into libbg
svn:revision:76252
svn:branch:trunk
svn:account:starseeker
2020-07-01 19:52:20 +00:00
Clifford Yapp 366ef09b28 Move more polygon code below libged
svn:revision:76251
svn:branch:trunk
svn:account:starseeker
2020-07-01 18:14:45 +00:00
Clifford Yapp 6664a14571 Move polygon overlap check
svn:revision:76250
svn:branch:trunk
svn:account:starseeker
2020-07-01 17:59:11 +00:00
Clifford Yapp c4f8e06ad2 start shifting the polygon code
svn:revision:76249
svn:branch:trunk
svn:account:starseeker
2020-07-01 17:22:35 +00:00
Clifford Yapp 35996fc127 Set up to start pushing bview-only functionality down the library stack. This won't impact functionality, but will make it more immediately clear when functions are operating on the libtclcad, libged, or bview levels.
svn:revision:76248
svn:branch:trunk
svn:account:starseeker
2020-07-01 16:50:47 +00:00
Clifford Yapp d09ac1fbf4 Try using the libged mat4x3pnt call in libtclcad as well as mged
svn:revision:76247
svn:branch:trunk
svn:account:starseeker
2020-06-30 22:45:21 +00:00
Clifford Yapp e70752ce5b Note a couple more widgets of possible interest
svn:revision:76246
svn:branch:trunk
svn:account:starseeker
2020-06-30 22:19:36 +00:00
Clifford Yapp d0ba7297c5 Make a note that qicstable might be interesting for some data manipulation scenarios
svn:revision:76245
svn:branch:trunk
svn:account:starseeker
2020-06-30 21:50:37 +00:00
Clifford Yapp e96970feae remove old headers
svn:revision:76244
svn:branch:trunk
svn:account:starseeker
2020-06-30 21:05:15 +00:00
Clifford Yapp c9e6105ff0 Sadeep found another use of obsolete Qt method.
svn:revision:76243
svn:branch:trunk
svn:account:starseeker
2020-06-30 21:00:30 +00:00
Clifford Yapp 1aaf327e75 Fix by Sadeep Darshana for the detachment of a display window losing the display of the solid wireframe.
svn:revision:76242
svn:branch:trunk
svn:account:starseeker
2020-06-30 20:58:11 +00:00
Christopher Sean Morrison 39cbaf72fb commit some working notes from a while back to semaphore when done
svn:revision:76241
svn:branch:trunk
svn:account:brlcad
2020-06-30 18:01:05 +00:00
Clifford Yapp 9d286703ad Sadeep noticed we're using an obsolete method here - comment out for now, need to revisit when we have time.
svn:revision:76240
svn:branch:trunk
svn:account:starseeker
2020-06-30 13:41:34 +00:00
Clifford Yapp 5a43374e8e Fix by Sadeep Darshana for solids not drawing on Linux - turns out we can't call OpenGl methods inside Qt slots.
svn:revision:76239
svn:branch:trunk
svn:account:starseeker
2020-06-30 13:22:20 +00:00
Clifford Yapp a3285e6e3c add qtads to the filters
svn:revision:76238
svn:branch:trunk
svn:account:starseeker
2020-06-29 17:17:35 +00:00
Clifford Yapp 87e1df6b3c At last, got view centering to respond to a line snap. Not sure about other pieces of this - needs much more testing - but still, got first sane result from a mouse input.
svn:revision:76237
svn:branch:trunk
svn:account:starseeker
2020-06-29 17:14:51 +00:00
Clifford Yapp 3a6f6ef053 More work on line snapping... still not able to get it to respond to the Archer mouse...
svn:revision:76236
svn:branch:trunk
svn:account:starseeker
2020-06-29 16:27:29 +00:00
Clifford Yapp 28bd276500 Write out a message when we're supposed to be line snapping
svn:revision:76235
svn:branch:trunk
svn:account:starseeker
2020-06-29 14:22:57 +00:00
Clifford Yapp 849acbb6b0 Add work by Sadeep Darshana on enabling a display manager in the Qt based qged interface
svn:revision:76234
svn:branch:trunk
svn:account:starseeker
2020-06-29 13:53:57 +00:00
Clifford Yapp 4fb0608dab Expose snapping to lines option in Archer menu, but still quite a bit to do to actually enable the feature...
svn:revision:76233
svn:branch:trunk
svn:account:starseeker
2020-06-27 15:12:31 +00:00
Christopher Sean Morrison 72eb7d4d5a provide a macro for getting the number of path/dp entries and protect against crashing if there aren't any (e.g. '/') in DB_FULL_PATH_CUR_DIR. these macros need some help.
svn:revision:76232
svn:branch:trunk
svn:account:brlcad
2020-06-27 06:57:31 +00:00
Christopher Sean Morrison e7f8e3709d eliminate calls to NAMEMOVE in favor of safer bu_strlcpy
svn:revision:76231
svn:branch:trunk
svn:account:brlcad
2020-06-27 05:59:39 +00:00
Christopher Sean Morrison b57707d386 put_comb doesn't use a temp file
svn:revision:76230
svn:branch:trunk
svn:account:brlcad
2020-06-27 05:49:52 +00:00
Christopher Sean Morrison bfc0d1b7b8 replace calls to getRGB and elimiante getRGBorReset as the 'Reset' behavior is rather undesirable. it just assigns the variable to whatever the current widget's background color is set to, which is wrong in the general case.
svn:revision:76229
svn:branch:trunk
svn:account:brlcad
2020-06-27 04:24:22 +00:00
Clifford Yapp b81af3d838 Ick - need to do something about grid drawing.
svn:revision:76228
svn:branch:trunk
svn:account:starseeker
2020-06-26 19:59:14 +00:00
Clifford Yapp 1eec51fddf Start working on exposing line snapping up through tclcad. Looks like grid drawing may have gotten broken...
svn:revision:76227
svn:branch:trunk
svn:account:starseeker
2020-06-26 18:28:40 +00:00
Clifford Yapp 7c58efb425 Make the 'closeness' required for snapping at least theoretically adjustable
svn:revision:76226
svn:branch:trunk
svn:account:starseeker
2020-06-26 17:11:19 +00:00
Clifford Yapp e0c537cee8 More explicit deps for libdm apps
svn:revision:76225
svn:branch:trunk
svn:account:starseeker
2020-06-26 16:43:05 +00:00
Clifford Yapp 6b2acd30a5 Add explicit backend deps for the tools
svn:revision:76224
svn:branch:trunk
svn:account:starseeker
2020-06-26 16:37:42 +00:00
Clifford Yapp 1bce158a7e fbserv uses libdm
svn:revision:76223
svn:branch:trunk
svn:account:starseeker
2020-06-26 16:34:07 +00:00
Clifford Yapp 1775fc4819 Add backend dependencies to fb executables
svn:revision:76222
svn:branch:trunk
svn:account:starseeker
2020-06-26 16:33:00 +00:00
Clifford Yapp 0c61982e31 Add backend dependencies for rt targets, but in the process limit the libdm linkage to those commands that might display graphically.
svn:revision:76221
svn:branch:trunk
svn:account:starseeker
2020-06-26 16:28:28 +00:00
Clifford Yapp 21d115721b With libdm backends as plugins, we no longer have implicit link time dependencies to ensure they are built before applications. Make the key backends explicit dependencies of Archer, MGED and rtwizard
svn:revision:76220
svn:branch:trunk
svn:account:starseeker
2020-06-26 16:01:57 +00:00
Clifford Yapp d752a6e0e8 update option validator comment
svn:revision:76219
svn:branch:trunk
svn:account:starseeker
2020-06-26 15:13:54 +00:00
Clifford Yapp a1ddd784a1 Make a note to go back and add _ged_vopt as a standard libbu option - verbosity incrementing via multiple -v options should be a standard ability.
svn:revision:76218
svn:branch:trunk
svn:account:starseeker
2020-06-26 15:09:22 +00:00
Clifford Yapp 11b029b008 Demonstrate (in principle) incorporating view size and line width into snapping tolerance.
svn:revision:76217
svn:branch:trunk
svn:account:starseeker
2020-06-26 14:38:40 +00:00
Clifford Yapp 978338f021 Add license headers to files without them
svn:revision:76216
svn:branch:trunk
svn:account:starseeker
2020-06-26 12:27:02 +00:00
Clifford Yapp 1d780ffc2c add bu_setprogname
svn:revision:76215
svn:branch:trunk
svn:account:starseeker
2020-06-26 12:24:49 +00:00
Clifford Yapp 3b8fa6a77a Period character prefixed matches should also be skipped
svn:revision:76214
svn:branch:trunk
svn:account:starseeker
2020-06-26 12:23:04 +00:00
Clifford Yapp 7c6191a280 note next step...
svn:revision:76213
svn:branch:trunk
svn:account:starseeker
2020-06-26 01:26:18 +00:00
Clifford Yapp 0dc00d40e6 Add qged into the trunk build. This cleans up the license files, adds files to distcheck, and generally cleans up the qged directory with an eye towards mainstream integration compared to the verison in the qged branch but doesn't intentionally change the qged logic itself.
svn:revision:76211
svn:branch:trunk
svn:account:starseeker
2020-06-26 01:05:08 +00:00
Clifford Yapp bda36c710f Turn off and update until this compiles. It was never finished, and as things are now developing we should look at making this a full fledged Qt-only dm/fb rather than trying to mix Tk and Qt.
svn:revision:76210
svn:branch:trunk
svn:account:starseeker
2020-06-26 01:03:34 +00:00
Clifford Yapp 3fb1e26c7f For C++, newer standards let us do std::this_thread::sleep_for(std::chrono::milliseconds(1000)) and avoid redefining sleep. Qt's qthread.h doesn't like our (re)definition, so see if we can restrict it to C only - a quick check doesn't seem to show much (any?) use of sleep in C++ in our current code...
svn:revision:76208
svn:branch:trunk
svn:account:starseeker
2020-06-25 21:48:24 +00:00
Clifford Yapp f1dbc138fd Hopefully with the facetize breakout we can put these back inside the C++ protections, because close -> _close is not so good for for .close() calls in C++...
svn:revision:76207
svn:branch:trunk
svn:account:starseeker
2020-06-25 21:34:40 +00:00
Christopher Sean Morrison 9b13229de0 give libged it's own readme so some design thoughts, intention, and framing can be preserved
svn:revision:76206
svn:branch:trunk
svn:account:brlcad
2020-06-25 21:11:53 +00:00
Clifford Yapp 5c65ccf669 ug-g does need the Tcl library directly
svn:revision:76205
svn:branch:trunk
svn:account:starseeker
2020-06-25 21:03:59 +00:00
Clifford Yapp 64c49ae570 Add a no-tcl distcheck target. Need to disable the benchmark runs, since there aren't any .g files without asc2g, but does enough to be useful.
svn:revision:76203
svn:branch:trunk
svn:account:starseeker
2020-06-25 19:11:43 +00:00
Clifford Yapp ca85c8b5cb List files for distcheck with Tcl disabled
svn:revision:76202
svn:branch:trunk
svn:account:starseeker
2020-06-25 17:15:14 +00:00
Clifford Yapp 12b1713e3b Add a BRLCAD_ENABLE_TCL option (defaults to ON) and fix up remaining build issues with Tcl fully out of the picture. Protect liboptical's sh_tcl.c to allow liboptical to build without Tcl (should really have liboptical use a libdm style plugin setup, but this is lower impact for now and liboptical's API doesn't seem to expose any Tcl bits), conditionalize various other bits of the build logic that were assuming Tcl as a given, disable a bunch of regression tests needing Tcl based utilities... Large swaths of the code are of course turned off (libtclcad, mged, archer, various utilities, etc.) but cmake -DBRLCAD_ENABLE_TCL=OFF should now work. See if distcheck logic needs updating - once a full distcheck can pass in this mode, need another distcheck-full regression test for this configuration.
svn:revision:76201
svn:branch:trunk
svn:account:starseeker
2020-06-25 17:00:43 +00:00
Clifford Yapp 84a5f687ad Merge libdm and libfb into a plugin based library.
This commit merges the dm-fb-merge branch's combination of libdm and libfb into
a single library, using a new plugin-based architecture for platform specific
backend logic.  (The merger supports a clean plugin design - libdm and libfb
must share backend specific information for features such as embedded
framebuffers.)

This commit marks a major milestone in that it is the realization of a
years-long effort to lift Tcl/Tk usage up out of the core BRL-CAD libraries
(libged and its dependencies.)  Although it is true that Tcl/Tk is currently
needed for all available graphical libdm backends, the new plugin-based
architecture means Tcl/Tk is now a requirement only for the plugin itself,
rather than all of BRL-CAD's libraries.  There is no longer a practical bar to
graphical libdm backends being implemented that are fully independent of
Tcl/Tk.

There are some API changes to support plugin loading and information hiding,
but existing libdm/libfb users should find most functionality relatively
unchanged - the libfb functions have not been reworked into a new API, for
example (although someday that may be desirable to streamline the libdm
design.) The major changes for developers will be including dm.h rather than
fb.h, linking libdm rather than libfb, and using "struct dm" and "struct fb"
rather than the dm and fb typedefs.

svn:revision:76200
svn:branch:trunk
svn:account:starseeker
2020-06-25 15:23:08 +00:00
Clifford Yapp aaa1af4350 Merge dm-fb-merge branch's update of openscenegraph.
svn:revision:76199
svn:branch:trunk
svn:account:starseeker
2020-06-25 14:16:36 +00:00
Clifford Yapp d9c065ae7a missed TODO.txt removal
svn:revision:76198
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-25 14:01:52 +00:00
Clifford Yapp 2dc1fc0a14 fix build in branch post-merge
svn:revision:76197
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-25 13:48:42 +00:00
Clifford Yapp fa008fd2a7 Merge changes from trunk - r76146 through r76195
svn:revision:76196
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-25 13:21:23 +00:00
Clifford Yapp c64e3f02f4 Demonstrate in principle snapping to the closest point to two line segments if we are close to both of them. Need something much better than a hard coded number for the tolerance, but the mechanism itself seems to function.
svn:revision:76195
svn:branch:trunk
svn:account:starseeker
2020-06-24 20:14:44 +00:00
Clifford Yapp 413b515bf8 Start roughing in the necessary logic to identify snapping points from lines.
svn:revision:76194
svn:branch:trunk
svn:account:starseeker
2020-06-24 16:09:08 +00:00
Clifford Yapp e09a95b23f add lseg-pt distance to libbg
svn:revision:76193
svn:branch:trunk
svn:account:starseeker
2020-06-24 15:15:17 +00:00
Clifford Yapp 89cef876b8 checkpoint
svn:revision:76192
svn:branch:trunk
svn:account:starseeker
2020-06-24 13:48:49 +00:00
Clifford Yapp 38ce207b87 API shouldn't insist on sqrt - it isn't always needed, and the caller may not wish to pay the performance penalty.
svn:revision:76191
svn:branch:trunk
svn:account:starseeker
2020-06-24 13:47:45 +00:00
Christopher Sean Morrison 9302d9e489 since the error persisted for years, detect corrupt .mgedrc so a more meaningful error can be reported.
svn:revision:76190
svn:branch:trunk
svn:account:brlcad
2020-06-24 06:47:35 +00:00
Christopher Sean Morrison e7f2dca729 latently document a user-visible bug cliff fixed back in r66733 where corrupt .mgedrc files were being generated if a database wasn't open. fix made the monster 7.26.0 release.
svn:revision:76189
svn:branch:trunk
svn:account:brlcad
2020-06-24 04:56:13 +00:00
Clifford Yapp 1e651da88d Note that plane.h really isn't a numerics API - needs to be migrated to libbg now that it exists. Probably there are others to move as well - clip.h and vlist.h are obvious candidates.
svn:revision:76188
svn:branch:trunk
svn:account:starseeker
2020-06-23 19:22:54 +00:00
Clifford Yapp a506f3cdc3 Add a few notes
svn:revision:76184
svn:branch:trunk
svn:account:starseeker
2020-06-23 15:31:24 +00:00
Clifford Yapp 018c5543ef Test calling higher level view command.
svn:revision:76183
svn:branch:trunk
svn:account:starseeker
2020-06-22 22:13:19 +00:00
Clifford Yapp caf20c54a9 shift all args
svn:revision:76182
svn:branch:trunk
svn:account:starseeker
2020-06-22 21:56:49 +00:00
Clifford Yapp 154c1d0015 It looks like this might be the use case for which the ged_refresh_handler callback was introduced.
svn:revision:76181
svn:branch:trunk
svn:account:starseeker
2020-06-22 21:52:17 +00:00
Clifford Yapp efb8f4d6fc Initial stab at shifting libtclcad to calling libged function - eventually will need to stage this properly through the view command
svn:revision:76180
svn:branch:trunk
svn:account:starseeker
2020-06-22 18:56:37 +00:00
Clifford Yapp dc76d56dcc One of the things an eventual superbuild migration will require is a separation between CMAKE_INSTALL_PREFIX and the ultimate BRLCAD_INSTALL_PREFIX (the latter being the superbuild's ultimate installation destination, as opposed to the local paths used to install the intermediate subbuilds.) BRL-CAD itself would be build as a subbuild in this scenario, so it would have to target an install step to a local CMAKE_INSTALL_PREFIX but still have a different installed location 'baked in' to the code itself via the configure headers and rpaths, which is something we haven't previously done.
svn:revision:76176
svn:branch:trunk
svn:account:starseeker
2020-06-22 15:22:10 +00:00
Clifford Yapp e2855f6ffd Start trying to figure out how to exercise the data_lines code. Right now this is an Archer/libtclcad only functionality from the looks of things... see if it can be factored down into libged so we can test it in MGED.
svn:revision:76175
svn:branch:trunk
svn:account:starseeker
2020-06-22 14:24:45 +00:00
Clifford Yapp 224ca852b3 make sure we have a GEDP before NULLing out
svn:revision:76166
svn:branch:trunk
svn:account:starseeker
2020-06-19 19:16:24 +00:00
Clifford Yapp 0018da2849 Wrap the curr_dm_list setting in order to also update relevant GEDP variables.
svn:revision:76165
svn:branch:trunk
svn:account:starseeker
2020-06-19 19:04:36 +00:00
Clifford Yapp 0672fdda3e Replace MGED's _grid_state with the bview.h version of the structure (used by libged)
svn:revision:76164
svn:branch:trunk
svn:account:starseeker
2020-06-19 18:30:58 +00:00
Clifford Yapp ea10b16ee2 Start working on actually getting some sort of snapping to work.
svn:revision:76163
svn:branch:trunk
svn:account:starseeker
2020-06-19 18:29:52 +00:00
Clifford Yapp b7b4cd9887 Read inputs
svn:revision:76162
svn:branch:trunk
svn:account:starseeker
2020-06-19 15:33:45 +00:00
Clifford Yapp 89aa44081a stub in a view snap subcommand for experimentation
svn:revision:76161
svn:branch:trunk
svn:account:starseeker
2020-06-19 15:11:23 +00:00
Clifford Yapp cac05ae46a Move view files to subdirectory
svn:revision:76160
svn:branch:trunk
svn:account:starseeker
2020-06-19 14:21:53 +00:00
Clifford Yapp 8794fb9df9 Move view files to subdirectory (preliminary file move commit) 2020-06-19 14:21:53 +00:00
Clifford Yapp a592d36184 Missed a couple files in the merge
svn:revision:76159
svn:branch:bioh
svn:account:starseeker
2020-06-19 13:18:56 +00:00
Clifford Yapp d79243c102 Sync with trunk through r76157
svn:revision:76158
svn:branch:bioh
svn:account:starseeker
2020-06-19 13:17:54 +00:00
Clifford Yapp bfd510b66a fix bu_cmd_valid check
svn:revision:76157
svn:branch:trunk
svn:account:starseeker
2020-06-18 17:47:13 +00:00
Clifford Yapp e5794f35b3 give the newer version the different name for now
svn:revision:76156
svn:branch:trunk
svn:account:starseeker
2020-06-18 17:18:18 +00:00
Clifford Yapp e6e5bb9360 Go ahead and merge the burst changes back from the branch - this should be fairly self contained.
svn:revision:76154
svn:branch:trunk
svn:account:starseeker
2020-06-18 17:10:24 +00:00
Clifford Yapp 34646e013e Merge changes from trunk - r76134 through r76146
svn:revision:76148
svn:branch:bioh
svn:account:starseeker
2020-06-17 21:55:57 +00:00
Clifford Yapp 6c17adcafa Merge changes from trunk - r76143 through r76146
svn:revision:76147
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-17 21:54:28 +00:00
Clifford Yapp 60304d81d3 halftone2 -> halftone
svn:revision:76146
svn:branch:trunk
svn:account:starseeker
2020-06-16 22:15:20 +00:00
Clifford Yapp 0255aaa147 Protect otherwise unused vars behind ifdef
svn:revision:76145
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-15 19:50:52 +00:00
Clifford Yapp 7c7c97f7f6 O3 seems to really help C++ regex, so add it to the scanning tools as well.
svn:revision:76144
svn:branch:trunk
svn:account:starseeker
2020-06-15 18:01:54 +00:00
Clifford Yapp 0032902e88 Merge changes from trunk - r76137 through r76142.
svn:revision:76143
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-15 17:14:36 +00:00
Clifford Yapp 056d735896 libfft executables were getting defines from src/CMakeLists.txt - add them explicitly per target.
svn:revision:76142
svn:branch:trunk
svn:account:starseeker
2020-06-15 17:06:25 +00:00
Christopher Sean Morrison 4b9e8990b8 e key sticks
svn:revision:76141
svn:branch:trunk
svn:account:brlcad
2020-06-15 15:28:21 +00:00
Clifford Yapp c67db87460 Per user request, added units to the faceplate scale display in Archer
svn:revision:76140
svn:branch:trunk
svn:account:starseeker
2020-06-12 19:47:36 +00:00
Clifford Yapp 98f9955602 Update halftone utility for dm-fb-merge
svn:revision:76139
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-12 15:49:56 +00:00
Clifford Yapp 1b662a463b Merge changes from trunk - r76084 through r76137
svn:revision:76138
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-12 15:45:37 +00:00
Clifford Yapp ac64b2064b Put back FindFontconfig.cmake, not present in all active versions of CMake
svn:revision:76137
svn:branch:trunk
svn:account:starseeker
2020-06-12 15:43:33 +00:00
Clifford Yapp 56b2262d69 Merged changes from trunk r76085 through r76134
svn:revision:76136
svn:branch:bioh
svn:account:starseeker
2020-06-12 15:19:16 +00:00
Clifford Yapp 80c89f8042 Add file
svn:revision:76135
svn:branch:bioh
svn:account:starseeker
2020-06-12 15:12:36 +00:00
Clifford Yapp 4545360b6a Move the new burst code into primary position, retaining the older code as burst-old until the new code proves itself
svn:revision:76134
svn:branch:bioh
svn:account:starseeker
2020-06-12 15:10:10 +00:00
Clifford Yapp 79084f8266 Move the new burst code into primary position, retaining the older code as burst-old until the new code proves itself (preliminary file move commit) 2020-06-12 15:10:10 +00:00
Clifford Yapp bc53483894 Match the old output from burst (sans debugging messages from GRID_SHOT.) Need to exercise more of the old code features, but it's now looking like we've managed to refactor the code successfully.
svn:revision:76133
svn:branch:bioh
svn:account:starseeker
2020-06-12 13:44:32 +00:00
Clifford Yapp 060f518fd3 Open the plot file. First state that is able to run the ktank example. Still need to check the outputs to make sure they match.
svn:revision:76132
svn:branch:bioh
svn:account:starseeker
2020-06-12 12:54:34 +00:00
Clifford Yapp efc4e5d97c Correct framebuffer return codes
svn:revision:76131
svn:branch:bioh
svn:account:starseeker
2020-06-12 12:47:11 +00:00
Clifford Yapp 9ca3525203 Fix argv indexing
svn:revision:76130
svn:branch:bioh
svn:account:starseeker
2020-06-12 12:35:14 +00:00
Clifford Yapp a9fc189699 test all the supported units
svn:revision:76129
svn:branch:bioh
svn:account:starseeker
2020-06-12 12:32:46 +00:00
Clifford Yapp 8474cc13d8 More tweaking to get closer to original code behavior
svn:revision:76128
svn:branch:bioh
svn:account:starseeker
2020-06-12 12:30:55 +00:00
Clifford Yapp b398f0407e Echo back comment lines
svn:revision:76127
svn:branch:bioh
svn:account:starseeker
2020-06-12 12:15:21 +00:00
Clifford Yapp 942eb4479b checkpoint
svn:revision:76126
svn:branch:bioh
svn:account:starseeker
2020-06-12 00:16:21 +00:00
Clifford Yapp 2a77a7ae27 Use ret when we have it
svn:revision:76125
svn:branch:bioh
svn:account:starseeker
2020-06-12 00:02:12 +00:00
Clifford Yapp d144564d61 Add newlines to outputs
svn:revision:76124
svn:branch:bioh
svn:account:starseeker
2020-06-11 23:49:11 +00:00
Clifford Yapp 9858ea2f09 More command adjustments
svn:revision:76123
svn:branch:bioh
svn:account:starseeker
2020-06-11 23:31:54 +00:00
Clifford Yapp 2002a4b3cc More work on adding command echos. These will actually make it fairly straightforward to validate the behavior of most of the commands (execute will be the tough one as it invokes the raytrace logic and output generation...)
svn:revision:76122
svn:branch:bioh
svn:account:starseeker
2020-06-11 22:16:23 +00:00
Clifford Yapp f1600499b7 Adjust attack-direction behavior
svn:revision:76121
svn:branch:bioh
svn:account:starseeker
2020-06-11 21:51:34 +00:00
Clifford Yapp b1c72691d2 original code is setting unitconv to the inverse
svn:revision:76120
svn:branch:bioh
svn:account:starseeker
2020-06-11 19:03:33 +00:00
Clifford Yapp 27b2984820 Add the burst unit strings not already in units.c (plurals of units) so we can match what burst would have matched.
svn:revision:76119
svn:branch:bioh
svn:account:starseeker
2020-06-11 18:38:00 +00:00
Clifford Yapp 7415da0eda We're using libbu's unit support now, reduce to unitconv
svn:revision:76118
svn:branch:bioh
svn:account:starseeker
2020-06-11 18:35:43 +00:00
Clifford Yapp d956054c3a Run files through astyle, except for the bu_cmdtab
svn:revision:76117
svn:branch:bioh
svn:account:starseeker
2020-06-11 18:22:58 +00:00
Clifford Yapp a558d5eb78 logging
svn:revision:76116
svn:branch:bioh
svn:account:starseeker
2020-06-11 18:15:48 +00:00
Clifford Yapp 17af0e51f3 Comment the assignment that will let us access the global state when processing application functions.
svn:revision:76115
svn:branch:bioh
svn:account:starseeker
2020-06-11 18:06:57 +00:00
Clifford Yapp ef32b2a6ba Start looking at using errfile in logging...
svn:revision:76114
svn:branch:bioh
svn:account:starseeker
2020-06-11 18:02:39 +00:00
Clifford Yapp 57654c11b3 consolidate
svn:revision:76113
svn:branch:bioh
svn:account:starseeker
2020-06-11 17:33:13 +00:00
Clifford Yapp dfc583d854 consolidate
svn:revision:76112
svn:branch:bioh
svn:account:starseeker
2020-06-11 17:30:44 +00:00
Clifford Yapp b8a382d55d Remove a few more unused elements
svn:revision:76111
svn:branch:bioh
svn:account:starseeker
2020-06-11 17:27:32 +00:00
Clifford Yapp 6ae07fbeab As far as I can tell the title isn't actually used
svn:revision:76110
svn:branch:bioh
svn:account:starseeker
2020-06-11 17:15:11 +00:00
Clifford Yapp d831f7eca8 Undoubtedly not working, but get as far as being able to compile
svn:revision:76109
svn:branch:bioh
svn:account:starseeker
2020-06-11 17:11:03 +00:00
Clifford Yapp 0243958312 checkpoint
svn:revision:76107
svn:branch:bioh
svn:account:starseeker
2020-06-11 14:30:34 +00:00
Clifford Yapp c0d1deb615 Start working on grid, which is the heart of the implementation. This will be the trickiest part to adapt away from global variable usage.
svn:revision:76106
svn:branch:bioh
svn:account:starseeker
2020-06-11 00:33:24 +00:00
Clifford Yapp 5b6538bc51 Start working on the execution step
svn:revision:76105
svn:branch:bioh
svn:account:starseeker
2020-06-10 19:47:33 +00:00
Clifford Yapp 491837d005 read-input-file is like the batch mode processing mode of the main command
svn:revision:76104
svn:branch:bioh
svn:account:starseeker
2020-06-10 19:24:32 +00:00
Clifford Yapp d937d1e89d Working on parsing logic - add a color example to the ktank test file
svn:revision:76103
svn:branch:bioh
svn:account:starseeker
2020-06-10 19:12:38 +00:00
Clifford Yapp d9fd8b73ee Untested, but hook up the read functions into the commands
svn:revision:76102
svn:branch:bioh
svn:account:starseeker
2020-06-10 17:40:33 +00:00
Clifford Yapp c3f3d0010f Start working on the idents parsing
svn:revision:76101
svn:branch:bioh
svn:account:starseeker
2020-06-10 16:05:36 +00:00
Clifford Yapp 7a4087fdf7 Set up to process batch files as well as do interactive mode
svn:revision:76100
svn:branch:bioh
svn:account:starseeker
2020-06-10 15:05:23 +00:00
Clifford Yapp d7f638b919 Not sure if bu_ptbl is the thing to use here, but don't want to stay with the linked list bit
svn:revision:76099
svn:branch:bioh
svn:account:starseeker
2020-06-10 14:22:36 +00:00
Clifford Yapp 4e56838111 typo
svn:revision:76098
svn:branch:trunk
svn:account:starseeker
2020-06-10 00:38:05 +00:00
Clifford Yapp 0ae737d00f Set up help reporting for the commands
svn:revision:76097
svn:branch:bioh
svn:account:starseeker
2020-06-10 00:34:25 +00:00
Clifford Yapp d32f5f1238 First rough in of the commands. Need to implement id and color parsing, as well as do some careful checking for copy-paste errors...
svn:revision:76096
svn:branch:bioh
svn:account:starseeker
2020-06-09 23:39:47 +00:00
Clifford Yapp 83d1513430 fix regress repository - bio.h check
svn:revision:76095
svn:branch:trunk
svn:account:starseeker
2020-06-09 22:03:55 +00:00
Clifford Yapp 82fac9c616 Consolidate halftone into a single file and move it to src/util
svn:revision:76094
svn:branch:trunk
svn:account:starseeker
2020-06-09 20:54:40 +00:00
Clifford Yapp 9028cd2f65 checkpoint
svn:revision:76093
svn:branch:bioh
svn:account:starseeker
2020-06-09 20:31:44 +00:00
Clifford Yapp fd607c7eda checkpoint
svn:revision:76092
svn:branch:bioh
svn:account:starseeker
2020-06-09 19:40:53 +00:00
Clifford Yapp 191c692480 We'll have to make sure we get the results we expect, but try a few command translations using libbu standard routines for input processing rather than transcoding the old burst routines.
svn:revision:76091
svn:branch:bioh
svn:account:starseeker
2020-06-09 18:44:10 +00:00
Clifford Yapp 3dc90a65e6 Make a note what the return value is when a problem arises
svn:revision:76090
svn:branch:trunk
svn:account:starseeker
2020-06-09 17:54:18 +00:00
Clifford Yapp dddbc2229a Add a 'managed_files' target to allow other targets to depend on the files being set up properly.
svn:revision:76089
svn:branch:trunk
svn:account:starseeker
2020-06-09 16:50:20 +00:00
Clifford Yapp f6805beef2 Stub in callback functions based on the documentation
svn:revision:76088
svn:branch:bioh
svn:account:starseeker
2020-06-09 16:32:53 +00:00
Clifford Yapp cce2acbdc3 Stub in a burst command implementation. It's looking like it will be easier to extract the needed bits into a 'modern' framing than to scrub down the existing code in place.
svn:revision:76087
svn:branch:bioh
svn:account:starseeker
2020-06-09 15:39:00 +00:00
Clifford Yapp 9a4d2fbaff Merged changes from trunk r75985 through r76085
svn:revision:76086
svn:branch:bioh
svn:account:starseeker
2020-06-09 14:44:51 +00:00
Clifford Yapp 5f69699424 Merge changes from trunk - r76077 through r76084
svn:revision:76085
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-09 02:51:39 +00:00
Clifford Yapp 300e386bbe This function is internal to the plugin mechanism - don't expose in the public header
svn:revision:76084
svn:branch:trunk
svn:account:starseeker
2020-06-09 02:48:56 +00:00
Clifford Yapp f056ecfe65 Revert most of the libgcv changes, and try the libdm approach from the branch of just using the export definition. Plugins aren't going to be linked as libraries to executables, so they shouldn't need the dual behavior...
svn:revision:76083
svn:branch:trunk
svn:account:starseeker
2020-06-09 02:36:35 +00:00
Clifford Yapp 5366c8a4ab Linux doesn't appear to need them, but Windows does
svn:revision:76082
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-09 02:23:10 +00:00
Clifford Yapp 046e24aa5e Don't appear to need this export...
svn:revision:76081
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-09 01:44:16 +00:00
Clifford Yapp fcda9949a2 In this case the plugins do need libdm, at least in their current form
svn:revision:76080
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-09 01:41:56 +00:00
Clifford Yapp c5cb63ad6f As with GCV, switching the DLL export tracking will need adjustment for the libdm plugins
svn:revision:76079
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-09 00:28:50 +00:00
Clifford Yapp 68aedd4f31 Merge changes from trunk - r76051 through r76077
svn:revision:76078
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-09 00:02:58 +00:00
Clifford Yapp aa2507a99c add header
svn:revision:76077
svn:branch:trunk
svn:account:starseeker
2020-06-08 21:00:54 +00:00
Clifford Yapp 0ff7695939 move the mc version as well
svn:revision:76076
svn:branch:trunk
svn:account:starseeker
2020-06-08 20:10:58 +00:00
Clifford Yapp a5dadd724e move the mc version as well (preliminary file move commit) 2020-06-08 20:10:58 +00:00
Clifford Yapp 322bd63333 Shift logic around so that libgcv plugins don't depend on libgcv.
svn:revision:76075
svn:branch:trunk
svn:account:starseeker
2020-06-08 19:45:04 +00:00
Clifford Yapp 87a4047198 missed a libwdb addition
svn:revision:76074
svn:branch:trunk
svn:account:starseeker
2020-06-08 19:23:55 +00:00
Clifford Yapp e7c0ce146c Add explicit libgcv dependency on plugins
svn:revision:76073
svn:branch:trunk
svn:account:starseeker
2020-06-08 19:20:51 +00:00
Clifford Yapp dab52d0fae Add libwdb library dependency to link lists
svn:revision:76072
svn:branch:trunk
svn:account:starseeker
2020-06-08 19:16:36 +00:00
Clifford Yapp 326ac07322 libgcv shouldn't be in this list
svn:revision:76071
svn:branch:trunk
svn:account:starseeker
2020-06-08 19:11:06 +00:00
Clifford Yapp f37ca21897 Hmm. Using INTERFACE_COMPILE_DEFINITIONS on libgcv complicates this quite a bit, since the GCV_DLL* piece comes automatically from the linking of the lib at a level we can't interfere with directly...
svn:revision:76070
svn:branch:trunk
svn:account:starseeker
2020-06-08 18:59:20 +00:00
Clifford Yapp e115cab99b Hmm... need to sort out how to deal with this for plugins...
svn:revision:76069
svn:branch:trunk
svn:account:starseeker
2020-06-08 18:14:21 +00:00
Clifford Yapp f106aa8e7a libbrep needs the import, not just libbrep users
svn:revision:76068
svn:branch:trunk
svn:account:starseeker
2020-06-08 17:31:57 +00:00
Clifford Yapp 88763ce1fd Replace our custom DLL defines management logic with CMake's COMPILE_DEFINITIONS and INTERFACE_COMPILE_DEFINITIONS. The latter in particular should be what we need to automatically propagate the DLL definitions to targets using the libraries.
svn:revision:76067
svn:branch:trunk
svn:account:starseeker
2020-06-08 15:56:48 +00:00
Clifford Yapp bbcb1893d7 Need relative path for distclean
svn:revision:76063
svn:branch:trunk
svn:account:starseeker
2020-06-08 02:05:52 +00:00
Clifford Yapp 88956fd140 Need to dig the burst command execution out of the menu logic so we can clean up this code - right now it's a mess.
svn:revision:76062
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-07 18:18:26 +00:00
Clifford Yapp 811d13ee18 checkpoint
svn:revision:76061
svn:branch:trunk
svn:account:starseeker
2020-06-07 17:56:25 +00:00
Clifford Yapp 31a4afe9ae Include directory needs to be config aware in multiconfig builds
svn:revision:76060
svn:branch:trunk
svn:account:starseeker
2020-06-07 15:57:44 +00:00
Clifford Yapp b1ac1db12b Set target folders
svn:revision:76059
svn:branch:trunk
svn:account:starseeker
2020-06-07 15:54:04 +00:00
Clifford Yapp e22e9bab8a add common.h
svn:revision:76058
svn:branch:trunk
svn:account:starseeker
2020-06-07 15:47:12 +00:00
Clifford Yapp ebf650d5fa list files for distcheck
svn:revision:76057
svn:branch:trunk
svn:account:starseeker
2020-06-07 15:43:30 +00:00
Clifford Yapp 65eaabdbc4 mark as advanced
svn:revision:76056
svn:branch:trunk
svn:account:starseeker
2020-06-07 14:17:26 +00:00
Clifford Yapp 152f1b5e2f Extract the bits of lz4 we're using for the librt cache and embed them with librt.
svn:revision:76055
svn:branch:trunk
svn:account:starseeker
2020-06-07 13:35:28 +00:00
Clifford Yapp fcef5472f6 Extract the bits of lz4 we're using for the librt cache and embed them with librt. (preliminary file move commit) 2020-06-07 13:35:28 +00:00
Clifford Yapp 25556ec9f4 use LOGFILE var
svn:revision:76054
svn:branch:trunk
svn:account:starseeker
2020-06-07 13:25:21 +00:00
Clifford Yapp 9249bd9633 Mention where the log file is in the message CTest will output.
svn:revision:76053
svn:branch:trunk
svn:account:starseeker
2020-06-07 13:23:08 +00:00
Clifford Yapp 5d161a8d6d Adapt libdm plugin CMake to absense of global BRLCADBUILD and HAVE_CONFIG_H setting
svn:revision:76052
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-06 19:39:56 +00:00
Clifford Yapp ed477c27c7 Merge changes from trunk - r76037 through r76050
svn:revision:76051
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-06 19:32:28 +00:00
Clifford Yapp 4094bcd280 Protect the HAVE_ tests in common.h with a check for the BRLCADBUILD and HAVE_CONFIG_H defines.
svn:revision:76050
svn:branch:trunk
svn:account:starseeker
2020-06-06 19:21:40 +00:00
Clifford Yapp eb150f67dd Once we untangle the gct decimation and tienet codes, this header will go away and in the meantime it is documented as not being considered public API. Enforce that further with BRLCADBUILD and HAVE_CONFIG_H guards.
svn:revision:76049
svn:branch:trunk
svn:account:starseeker
2020-06-06 19:15:07 +00:00
Clifford Yapp ac9de23488 path.h doesn't seem to be using any RTLD_ symbols in the header itself...
svn:revision:76048
svn:branch:trunk
svn:account:starseeker
2020-06-06 19:09:16 +00:00
Clifford Yapp 484e844a2e adjust comments
svn:revision:76047
svn:branch:trunk
svn:account:starseeker
2020-06-06 18:55:38 +00:00
Clifford Yapp 3683eef67c Remove deprecated API from bu/cmd.h - avoids the compile-time API issue that was keeping the user regression program from building.
svn:revision:76046
svn:branch:trunk
svn:account:starseeker
2020-06-06 18:53:11 +00:00
Clifford Yapp f27684120f Shifting the target property setting to private exposed some issues with how we were applying compile definitions.
svn:revision:76045
svn:branch:trunk
svn:account:starseeker
2020-06-06 18:45:23 +00:00
Clifford Yapp 15868c8af5 Start setting up a test intended to build and run against the CAD libraries the way an external project would (i.e. without using the compile-time definitions or APIs.) Not turning on right now as it won't build...
svn:revision:76044
svn:branch:trunk
svn:account:starseeker
2020-06-06 17:20:58 +00:00
Clifford Yapp 9db2ae5213 BRLCADBUILD and HAVE_CONFIG_H target defines need to be PRIVATE, or they will propagate to targets linking libraries automatically. We should replace our custom management of define propagation with this feature, but in the specific case of these definitions they should not propagate - they are specific to each compile.
svn:revision:76043
svn:branch:trunk
svn:account:starseeker
2020-06-06 17:10:58 +00:00
Clifford Yapp 24bb459604 Add define-checking messages for other compile-time API headers.
svn:revision:76042
svn:branch:trunk
svn:account:starseeker
2020-06-06 15:43:48 +00:00
Clifford Yapp 82faeb0d65 Rather than setting top level definitions, use our wrapper functions to set BRLCADBUILD and HAVE_CONFIG_H definitions per-target.
svn:revision:76041
svn:branch:trunk
svn:account:starseeker
2020-06-06 15:15:13 +00:00
Clifford Yapp b7cea95ed8 Be a bit noisy if someone includes brlcad_version.h without BRLCADBUILD or HAVE_CONFIG_H. Not intended to be a fatal error - brlcad_version.h stills function without the defines, if I'm reading the header correctly - but will reinforce separation between compile-time and non-compile-time APIs.
svn:revision:76040
svn:branch:trunk
svn:account:starseeker
2020-06-06 15:13:18 +00:00
Clifford Yapp c8b1e751d3 Merge remaining RELEASE changes back into trunk (r76038)
svn:revision:76039
svn:branch:trunk
svn:account:starseeker
2020-06-06 14:25:41 +00:00
Clifford Yapp cff2de8fc5 Merge changes from trunk - r76034 through r76037
svn:revision:76038
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-05 19:26:15 +00:00
Clifford Yapp bbd3086a5d Client codes need these definitions without including brlcad_config.h, and ideally shouldn't have to do their own configure tests either (historically they haven't needed to.)
svn:revision:76037
svn:branch:trunk
svn:account:starseeker
2020-06-05 19:11:32 +00:00
Clifford Yapp 7fabc19bd5 Switch the database build cmake script to using the BIN_DIR variable to deduce the root dir.
svn:revision:76036
svn:branch:trunk
svn:account:starseeker
2020-06-05 18:07:14 +00:00
Clifford Yapp 83533624c3 Merge changes from trunk - r75987 through r76034
svn:revision:76035
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-05 17:59:25 +00:00
Clifford Yapp e19d3e4da5 Make sure the COMPILER_DLL* defines are empty in situations where brlcad_config.h isn't available.
svn:revision:76034
svn:branch:trunk
svn:account:starseeker
2020-06-05 17:56:16 +00:00
Christopher Sean Morrison bbce46b5f4 don't warn about function mismatches during the second profile guided pass when compiling with clang, otherwise the cmake tests themselves will fail because they have a mismatched main(). also don't bark if it's code we didn't run on the first pass.
svn:revision:76033
svn:branch:trunk
svn:account:brlcad
2020-06-05 08:08:58 +00:00
Christopher Sean Morrison 9a274aa0e5 document the different test targets and pgo build flags. try to reduce the language a bit (much more overdue, but later.
svn:revision:76032
svn:branch:trunk
svn:account:brlcad
2020-06-05 07:09:04 +00:00
Daniel Rossberg d78e7eb483 added the newly added VectorList for compiling
svn:revision:76031
svn:branch:trunk
svn:account:d_rossberg
2020-06-05 06:40:40 +00:00
Clifford Yapp d775b04f18 Update license references
svn:revision:76030
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 21:36:53 +00:00
Clifford Yapp ac9bc3b919 These commands have been reenabled.
svn:revision:76029
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 20:06:57 +00:00
Clifford Yapp 5755109546 Add man page for screengrab
svn:revision:76028
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 20:04:00 +00:00
Clifford Yapp cafa2185ed Start updating the overlay man page
svn:revision:76027
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 19:04:22 +00:00
Clifford Yapp 6ba5efb010 As far as I can tell, no one is manipulating vectorThreshold. The only motivation to would be to adjust the update/refresh rate of the dm, and even if that might be useful under some hypothetical circumstance this was never documented at all.
svn:revision:76026
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 18:15:02 +00:00
Clifford Yapp 7bdb72690e dm-X and dm-tk are referencing vectorThreshold - put the variable back into libdm
svn:revision:76025
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 17:50:20 +00:00
Clifford Yapp 9cc766ee91 Sean suggested (and I agree) that the image subset feature isn't worth the complexity cost in usability, given its infrequently used/requried.
svn:revision:76024
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 16:58:41 +00:00
Clifford Yapp 881d204428 ifp, not fp
svn:revision:76023
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 16:36:02 +00:00
Clifford Yapp d1de6dcb1d screengrab and overlay have the new icv logic - remove the icv2fb and fb2icv commands. Restore png2fb for the moment to keep full compatibility for older codes, but we should be well positioned to begin phasing out fb2pix, pix2fb and png2fb in favor of more generic options. In the meantime screengrab and overlay have new functionality.
svn:revision:76021
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 15:25:25 +00:00
Clifford Yapp a5cee3cc6d Correct variables, restore wireframe capture.
svn:revision:76020
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 15:04:47 +00:00
Clifford Yapp 928de0dba5 Start adding options to the screengrab and overlay commands. Looks like the screengrab wireframe got broken - makes an image but it is empty. Not sure why yet...
svn:revision:76019
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 14:56:37 +00:00
Clifford Yapp 92381bdfac Add an option to cap the width and height read from the image - this allows the extraction of arbitrary rectangular subsets from images.
svn:revision:76018
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 13:32:27 +00:00
Clifford Yapp 0b76e2cc62 libicv doesn't expose a generic way to set gamma on all images, and as far as I can tell these options were never actually used by any fb2png callers. The other options seem to test out, although width and height don't do the expected thing as far as capping how far in X and Y the image is read. I believe this is due to the PIX image format, where this isn't possible since they encode no size information - w and n must therefore always specify the whole image width and height. It probably indicates we need a couple other file_ options if we want to properly support extraction of image subsets.
svn:revision:76017
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 12:44:10 +00:00
Clifford Yapp f1a6956b8b re-enable -H header output png2fb style.
svn:revision:76016
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 12:22:44 +00:00
Clifford Yapp 38f27081e9 Don't persist the zoom flag - reset the view to the full screen if it's not passed in.
svn:revision:76015
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-04 12:11:43 +00:00
Clifford Yapp 74c617eca0 Rough in an ability for overlay -F to place an image in the active MGED framebuffer.
svn:revision:76014
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-03 21:52:09 +00:00
Clifford Yapp d69af26ac7 No need to duplicate dm info in libged header - libdm's public API now lets us find out what we need from the display manager pointer without cracking struct dm. Teach screengrab to optionally fetch the framebuffer image instead of the scene.
svn:revision:76013
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-03 19:31:59 +00:00
Clifford Yapp d54f0614e8 Use the libicv APIs rather than manipulating the internals directly.
svn:revision:76012
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-03 18:34:40 +00:00
Clifford Yapp 9fc0c51ddb Proof-of-principle command using libicv to write out a framebuffer image.
svn:revision:76011
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-03 18:03:36 +00:00
Clifford Yapp 3d1e89b5c5 start working on fb to icv writing
svn:revision:76010
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-03 15:49:26 +00:00
Clifford Yapp 5fd3837141 Remove png2fb in favor of icv2fb
svn:revision:76009
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-03 15:10:40 +00:00
Clifford Yapp e4e896e21e Let libged know what libtclcad's display manager information is via the
to_view_func method as we do in MGED.

Although it is set up a bit differently than MGEDs (i.e. using fbserv_obj)
letting libged know about libtclcad's current display manager appears to
provide the refactored libged commands with the necessary information to
successfully run via the original invocation method Bob gave me:

master .archer0 component ged fb2pix image.pix
master .archer0 component ged pix2fb image.pix
master .archer0 component ged fbclear

png2fb is being refactored into a generic version that uses libicv to handle
image formats, but this form works:

master .archer0 component ged icv2fb image.png

Note that fb2pix (both in trunk and in the branch) will not default to writing
out the whole framebuffer per the current fb size.  That seems wrong as a
default, but rather than update fb2pix a new default will be attempted in the
fb2icv generic equivalent to match icv2fb.

svn:revision:76008
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-03 14:59:45 +00:00
Clifford Yapp ff675ac2c0 Flip the data lines so icv2fb result matches pix2fb
svn:revision:76007
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-03 14:06:35 +00:00
Clifford Yapp 692b2dffa8 Placement isn't correct yet, but get icv data showing up in the MGED fb
svn:revision:76006
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-03 13:43:19 +00:00
Clifford Yapp 0bfd5226d5 Whenever libicv is doing a stdin read, set O_BINARY
svn:revision:76005
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-02 20:11:44 +00:00
Clifford Yapp b5a8b96a07 TCL_ERROR was defined as 1, not 0...
svn:revision:76004
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-02 20:11:09 +00:00
Clifford Yapp 9d7ee23437 Start working on a format-generic version of the pix2fb and png2fb functionality using libicv.
svn:revision:76003
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-02 19:41:19 +00:00
Clifford Yapp 6d4c1764b7 use the framebuffer dimensions, not the dm - may not necessarily match.
svn:revision:76002
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-02 18:24:24 +00:00
Clifford Yapp 7b1ad8ba5f Expose the png2fb, fb2pix, pix2fb and fbclear GED commands in MGED. Still haven't fully run to ground the consequences of getting the fb through the dm rather than fbserv_obj, but with the addtion of the fb_refresh calls these commands do successfully update the MGED embedded framebuffer.
svn:revision:76001
svn:branch:dm-fb-merge
svn:account:starseeker
2020-06-02 18:17:32 +00:00
Christopher Sean Morrison 0ef0ef0f5c provide flawfinder an explicit list of files, shaves 17sec down to 12sec. excluding realpath_bsd since it's not our code, even though the reports is a genuine security concern with readlink. the 3rd party code is properly nul-terminating and checking return codes, but it is vulnerable to TOCTOU attacks and buffer truncation. don't have a good answer other than finding better/different 3rd party code without this vulnerability. ugh.
svn:revision:76000
svn:branch:trunk
svn:account:brlcad
2020-06-02 07:00:20 +00:00
Christopher Sean Morrison 51ed634fd2 upgrade flawfinder from 2.0.4 to 2.0.11 which adds 5 new detections
svn:revision:75999
svn:branch:trunk
svn:account:brlcad
2020-06-02 06:35:28 +00:00
Clifford Yapp 9b365a13a6 Need to look a little more to be sure, but I think once this is put into the photo we no longer need the local copy...
svn:revision:75998
svn:branch:trunk
svn:account:starseeker
2020-06-01 19:37:37 +00:00
Clifford Yapp 0e90c8e4da Add a Tk_Photo
svn:revision:75997
svn:branch:trunk
svn:account:starseeker
2020-06-01 19:24:00 +00:00
Clifford Yapp 80bc05ff35 CMake's install() throws a wrinkle into the generator expression usage when
combined with add_custom_command.  Somewhat surprisingly it looks as if it can
work, but requires that the custom command be linked to a custom target that
has ALL set so it gets triggered before install takes place.  This is necessary
because we can't pass generator expression paths into the OUTPUT entry of
add_custom_command, so we can't establish a direct file dependency in the build
process.  Nor (as far as I can tell) can we explicitly set target dependencies
for install rules, so we need the ALL enabled target to hook our custom target
in under the install process.

Until the lack of generator expression support in add_custom_command's OUTPUT
specifiers is addressed (https://gitlab.kitware.com/cmake/cmake/-/issues/12877)
it's probably not worth reengineering the DocBook build to shift us off the
existing mechanism - right now it looks like we would be trading one
functional-but-ackward solution for what would probably end up being another
functional-but-ackward solution.

svn:revision:75996
svn:branch:trunk
svn:account:starseeker
2020-06-01 17:04:16 +00:00
Clifford Yapp 1cf94fd004 Don't have the various tool options anymore - remove doc
svn:revision:75995
svn:branch:trunk
svn:account:starseeker
2020-06-01 16:07:05 +00:00
Clifford Yapp 70f2735702 Experiment with generator expressions and add_custom_command/add_custom_target. Generator expressions will work only in COMMAND, so unfortunately we can't implement the most robust approach - i.e. specify the actual file outputs as the OUTPUT and DEPENDS arguments. Instead, we use a stamp file specific to the command that generates a per-configuration stamp file using the CMAKE_CFG_INTDIR variable to detect if the build target has run for the current configuration. This has the drawback that the build target will fail to detect the removal of the per-config output and re-run, but it will re-run if the stamp file is removed or (more importantly) if the source file is edited.
svn:revision:75994
svn:branch:trunk
svn:account:starseeker
2020-06-01 14:51:37 +00:00
Clifford Yapp f6bf8f8352 Add a minimal example showing the combination of configure_file and generator expressions being used for runtime identification of the current BRL-CAD root hierarchy path in build scripts. This is a bit tricky, but should be a bit more 'standard' than the CURRENT_PATH custom mechanism originally added years ago for pre-generator-expressions CMake builds to achieve the same result. Regression tests are using this method currently - next step will be to convert the DocBook logic to using it. It's not clear yet if the build-type based install path customization can use this approach. (Some portion of it will have to persist regardless, as the once-per-configuration-change logic that reworks the install files to update their paths depends on the current-configuration-named file not being present on the filesystem to trigger.)
svn:revision:75993
svn:branch:trunk
svn:account:starseeker
2020-06-01 14:05:53 +00:00
Clifford Yapp 713f65878b Switch to an approach that makes fewer assumptions about BIN_DIR
svn:revision:75992
svn:branch:trunk
svn:account:starseeker
2020-06-01 13:45:50 +00:00
Clifford Yapp 74777dd5ed This bit should be redundant now
svn:revision:75991
svn:branch:trunk
svn:account:starseeker
2020-06-01 00:13:07 +00:00
Clifford Yapp 511872156c Adjust DocBook logic for setting up resource files
svn:revision:75990
svn:branch:trunk
svn:account:starseeker
2020-06-01 00:07:43 +00:00
Clifford Yapp eb94da3f4d Adjust DocBook logic for setting up resource files (preliminary file move commit) 2020-06-01 00:07:43 +00:00
Clifford Yapp 25e753734b Rework the 3dm-g conversion build target to use generator expressions rather than the CURRENT_PATH mechanism.
svn:revision:75989
svn:branch:trunk
svn:account:starseeker
2020-05-31 15:36:22 +00:00
Clifford Yapp f4fcef7c99 Merge changes from trunk - r75934 through r75987
svn:revision:75988
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-31 14:43:14 +00:00
Clifford Yapp 72abf4418a Merge regression test system changes from bioh branch (through r75986)
svn:revision:75987
svn:branch:trunk
svn:account:starseeker
2020-05-31 14:20:30 +00:00
Clifford Yapp 9edaea2277 Merged changes from trunk through r75985
svn:revision:75986
svn:branch:bioh
svn:account:starseeker
2020-05-31 14:04:45 +00:00
Christopher Sean Morrison cb4b35cb95 register is no longer cool, but still removing with caution as our hints are making a difference on performance
svn:revision:75985
svn:branch:trunk
svn:account:brlcad
2020-05-29 16:33:10 +00:00
Christopher Sean Morrison 786dfe9049 document the struct copy
svn:revision:75984
svn:branch:trunk
svn:account:brlcad
2020-05-29 16:32:03 +00:00
Jordi Sayol e40cf62978 remove obsolete menu entry
svn:revision:75983
svn:branch:trunk
svn:account:jordisayol
2020-05-29 15:38:58 +00:00
Jordi Sayol 6ba71219d2 update desktop menu entries
svn:revision:75982
svn:branch:trunk
svn:account:jordisayol
2020-05-29 15:28:32 +00:00
Clifford Yapp 03de1581f3 Mention the nirt key binding
svn:revision:75981
svn:branch:trunk
svn:account:starseeker
2020-05-29 12:48:01 +00:00
Jordi Sayol babb575375 do not treat warnings as errors
svn:revision:75980
svn:branch:trunk
svn:account:jordisayol
2020-05-29 12:05:20 +00:00
Clifford Yapp de06256ed1 Put the archer acknowledgement with archer itself
svn:revision:75979
svn:branch:trunk
svn:account:starseeker
2020-05-29 00:57:18 +00:00
Clifford Yapp e2b3cbbf93 Transcribe pkg.tr into Docbook
svn:revision:75978
svn:branch:trunk
svn:account:starseeker
2020-05-29 00:49:05 +00:00
Clifford Yapp 449bcc3f26 fix file path
svn:revision:75977
svn:branch:trunk
svn:account:starseeker
2020-05-28 22:07:37 +00:00
Clifford Yapp 65fbcbe4d4 Put the three most common platforms at the top level
svn:revision:75976
svn:branch:trunk
svn:account:starseeker
2020-05-28 21:46:40 +00:00
Clifford Yapp 8cbc3df366 Transfer some notes to the files in question and delete mk.tr
svn:revision:75975
svn:branch:trunk
svn:account:starseeker
2020-05-28 21:33:48 +00:00
Clifford Yapp c8ec4bb679 We have a Docbook version of this, and VCS has the .tr file if we need to refer back
svn:revision:75974
svn:branch:trunk
svn:account:starseeker
2020-05-28 21:21:59 +00:00
Clifford Yapp 26d1a9f917 More moves to subdirectories
svn:revision:75973
svn:branch:trunk
svn:account:starseeker
2020-05-28 20:50:42 +00:00
Clifford Yapp de286e5f0c Try to reduce the clutter accumulating at the toplevel doc directory.
svn:revision:75972
svn:branch:trunk
svn:account:starseeker
2020-05-28 20:47:56 +00:00
Clifford Yapp 0bc922a7d9 obsolete
svn:revision:75971
svn:branch:trunk
svn:account:starseeker
2020-05-28 20:36:28 +00:00
Clifford Yapp 0aec423c54 Remove a couple options we don't define anymore
svn:revision:75970
svn:branch:trunk
svn:account:starseeker
2020-05-28 20:33:47 +00:00
Clifford Yapp 40fa732c06 Rather than a static file, this should probably be coming from a build target - it gets out of date to easily as is.
svn:revision:75969
svn:branch:trunk
svn:account:starseeker
2020-05-28 20:26:35 +00:00
Clifford Yapp c5f3e16bb0 It will need considerably more updating to be valid, but get the benchmark.tr file into Docbook via doclifter and building.
svn:revision:75968
svn:branch:trunk
svn:account:starseeker
2020-05-28 20:20:54 +00:00
Clifford Yapp abd5444638 Run the MGED HTML pages through Tidy
svn:revision:75967
svn:branch:trunk
svn:account:starseeker
2020-05-28 19:35:09 +00:00
Clifford Yapp d71b1270f4 Try running some of the HTML pages through tidy
svn:revision:75966
svn:branch:trunk
svn:account:starseeker
2020-05-28 18:58:04 +00:00
Clifford Yapp 76c963beda Add a check to make sure we don't introduce std::system into repocheck. (Can't do plain 'system' yet as it's currently used by tienet_master.c in adrt.)
svn:revision:75965
svn:branch:trunk
svn:account:starseeker
2020-05-28 18:13:11 +00:00
Clifford Yapp c2d6652ec5 In the branch, the remaining init_dm proc is now libtclcad specific
svn:revision:75964
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-28 17:43:02 +00:00
Clifford Yapp dcd98bda3a Remove default bind_dm call from branch
svn:revision:75963
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-28 17:35:44 +00:00
Clifford Yapp ba650a5023 bind_dm is an empty no-op, stubbed in so the default libdm stub has a proc to execute. Remove both the empty stub and the default init string setting in the dm backends, instead executing the init Tcl_Eval only if the caller has supplied something for us to init.
svn:revision:75962
svn:branch:trunk
svn:account:starseeker
2020-05-28 17:28:58 +00:00
Clifford Yapp fe052399d5 Print something more informative if the init fails
svn:revision:75961
svn:branch:trunk
svn:account:starseeker
2020-05-28 17:15:31 +00:00
Clifford Yapp 891c22b960 remove _init_dm from branch
svn:revision:75960
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-28 17:07:12 +00:00
Clifford Yapp b5e0ccd076 There doesn't seem to be any 'init_dm' to call and the _init_dm wrapper just calls the arguments libdm is supplying. Dispense with the _init_dm proc.
svn:revision:75959
svn:branch:trunk
svn:account:starseeker
2020-05-28 17:04:27 +00:00
Clifford Yapp 070160d8e0 update whichid man page
svn:revision:75958
svn:branch:trunk
svn:account:starseeker
2020-05-28 15:17:48 +00:00
Clifford Yapp c68d72f02a Thanks Bob - 'puts' redirects the nirt output to the MGED console
svn:revision:75957
svn:branch:trunk
svn:account:starseeker
2020-05-28 13:54:49 +00:00
Clifford Yapp 6170d7b864 Don't use -1 as a magic number, as there isn't anything preventing it being supplied in a range to whichid
svn:revision:75956
svn:branch:trunk
svn:account:starseeker
2020-05-28 00:36:01 +00:00
Clifford Yapp 0153f9005a trim unneeded checks
svn:revision:75955
svn:branch:trunk
svn:account:starseeker
2020-05-28 00:11:41 +00:00
Clifford Yapp d17a50de7a Per user feedback, implement a feature similar to a script by Nick that prints ranges of unused ids rather than each individual id. Also, don't silently ignore invalid range specifications.
svn:revision:75954
svn:branch:trunk
svn:account:starseeker
2020-05-27 23:52:43 +00:00
Clifford Yapp e14519f204 Use the alphanum sorting for search outputs - produces a more intuitive ordering for .g files like m35.g which have r#[#][#] naming patterns.
svn:revision:75953
svn:branch:trunk
svn:account:starseeker
2020-05-27 18:40:40 +00:00
Clifford Yapp e2d49cb06c Adjust comments
svn:revision:75952
svn:branch:bioh
svn:account:starseeker
2020-05-27 17:59:09 +00:00
Clifford Yapp a5b1abe07b I think we need to call WSAGetLastError to get the right value here - without this, the regress-pkg test fails using the threaded approach on Windows.
svn:revision:75951
svn:branch:trunk
svn:account:starseeker
2020-05-27 02:35:45 +00:00
Clifford Yapp e71967b0d2 Ensure dependencies are present
svn:revision:75950
svn:branch:bioh
svn:account:starseeker
2020-05-27 01:52:01 +00:00
Clifford Yapp 2719a298e6 Just use the test dependencies for ordering
svn:revision:75949
svn:branch:bioh
svn:account:starseeker
2020-05-27 01:46:37 +00:00
Clifford Yapp 6760a24263 Tweak rtwizard target
svn:revision:75948
svn:branch:bioh
svn:account:starseeker
2020-05-27 01:42:46 +00:00
Clifford Yapp b371709560 Tests don't go in the regress subdir unless they are part of the regress target
svn:revision:75947
svn:branch:bioh
svn:account:starseeker
2020-05-27 01:28:24 +00:00
Clifford Yapp 8c194b694a Need configuration on multi-config setups
svn:revision:75946
svn:branch:bioh
svn:account:starseeker
2020-05-27 01:21:01 +00:00
Clifford Yapp 564c1c19de CMAKE_EXECUTABLE_SUFFIX appears to be empty with cmake -P on Windows - try a different approach
svn:revision:75945
svn:branch:bioh
svn:account:starseeker
2020-05-27 01:14:01 +00:00
Clifford Yapp 2bef968fae regress-repository doesn't like the comment
svn:revision:75944
svn:branch:trunk
svn:account:starseeker
2020-05-26 21:49:20 +00:00
Clifford Yapp bea9000bac In this case we can simplify down to a C header
svn:revision:75943
svn:branch:trunk
svn:account:starseeker
2020-05-26 21:43:58 +00:00
Clifford Yapp 9a5536cd30 HACKING says headers should be .h but the footer.sh tool recognizes hpp. Go with .h for now - wonder if HACKING should go with .hpp so we can distinguish C and C++ header files?
svn:revision:75942
svn:branch:trunk
svn:account:starseeker
2020-05-26 20:56:38 +00:00
Clifford Yapp 7d0f1921b1 simplify
svn:revision:75941
svn:branch:trunk
svn:account:starseeker
2020-05-26 20:53:53 +00:00
Clifford Yapp 1846c93106 simplify (preliminary file move commit) 2020-05-26 20:53:53 +00:00
Clifford Yapp 9ef1cf4e92 svn add
svn:revision:75940
svn:branch:trunk
svn:account:starseeker
2020-05-26 19:48:25 +00:00
Clifford Yapp 369766c691 Experiment with some additional options to whichid and whichair. By default don't print out id lines with no matching regions (can be turned back on), support reporting unused number in ranges with -U, and allow specification of a root object - if supplied, only that object and regions in its tree will be considered for matches.
svn:revision:75939
svn:branch:trunk
svn:account:starseeker
2020-05-26 19:48:09 +00:00
Clifford Yapp 9d0beeada5 C->C++
svn:revision:75938
svn:branch:trunk
svn:account:starseeker
2020-05-26 15:37:36 +00:00
Clifford Yapp d2ec848a8e CPP_DLL_DEFINES -> HIDE_INTERNAL_SYMBOLS
svn:revision:75937
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-26 11:35:40 +00:00
Clifford Yapp 099f1342c0 Fix build. Something is still broken, as MGED is not initializing correctly...
svn:revision:75936
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-26 11:30:48 +00:00
Clifford Yapp d3ed6c969a Merge changes from trunk, r75879 - r75934
svn:revision:75935
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-26 02:53:36 +00:00
Clifford Yapp 00e233f7d5 Merged changes from trunk through r75933
svn:revision:75934
svn:branch:bioh
svn:account:starseeker
2020-05-26 02:45:23 +00:00
Clifford Yapp 1713d375f4 ON_DLL_EXPORTS/ON_DLL_IMPORTS is no longer specific enough for an MSVC only override.
svn:revision:75933
svn:branch:trunk
svn:account:starseeker
2020-05-26 01:40:23 +00:00
Clifford Yapp 1935c63e15 Merged changes from trunk through r75931
svn:revision:75932
svn:branch:bioh
svn:account:starseeker
2020-05-26 01:17:10 +00:00
Clifford Yapp 5eed3a1023 Directly check the targets here, since the library variables might conceivably hold more than one target for linking purposes.
svn:revision:75931
svn:branch:trunk
svn:account:starseeker
2020-05-26 00:09:53 +00:00
Clifford Yapp d6df5bea8f Propagate lib*-obj visibility settings. For src/other libs, only do this when we're either building local versions of the libs with headers set up to accomidate both GCC and MSVC style labeling, or with MSVC when it's a functional necessity even for system libs.
svn:revision:75930
svn:branch:trunk
svn:account:starseeker
2020-05-26 00:02:58 +00:00
Clifford Yapp be54423065 Ah, cute - the lib*-obj targets weren't getting the visibility flag, so the objects were built vanilla and the lib linking didn't catch this. Go ahead and add the new definitions for the libs where we've added the necessary logic for MSVC ourselves, since that's one of the things we want to check when building. Will get tricker when we get to upstream libs where we might actually build against a system lib that does have the __declspec(dllexport) style definitions defined on its own, since our redefinition approach won't be in place there.
svn:revision:75929
svn:branch:trunk
svn:account:starseeker
2020-05-25 23:41:08 +00:00
Clifford Yapp a5e974a3dd Merged changes from trunk through r75926
svn:revision:75928
svn:branch:bioh
svn:account:starseeker
2020-05-25 18:29:31 +00:00
Clifford Yapp a59b0a6f80 regress_pkg is a stand-alone test
svn:revision:75927
svn:branch:bioh
svn:account:starseeker
2020-05-25 18:28:45 +00:00
Clifford Yapp 1e7088e2f6 initialize
svn:revision:75926
svn:branch:trunk
svn:account:starseeker
2020-05-25 18:26:00 +00:00
Clifford Yapp 7bbf00b761 initialize
svn:revision:75925
svn:branch:trunk
svn:account:starseeker
2020-05-25 18:24:27 +00:00
Clifford Yapp 88cf997488 initialize
svn:revision:75924
svn:branch:trunk
svn:account:starseeker
2020-05-25 18:21:39 +00:00
Clifford Yapp ee58a82578 slen, not len
svn:revision:75923
svn:branch:trunk
svn:account:starseeker
2020-05-25 18:17:23 +00:00
Clifford Yapp bd2c396232 Make sure the readlink return is NULL terminated
svn:revision:75922
svn:branch:trunk
svn:account:starseeker
2020-05-25 18:11:24 +00:00
Clifford Yapp ca18aedf92 ignore cmake file
svn:revision:75921
svn:branch:bioh
svn:account:starseeker
2020-05-25 17:35:07 +00:00
Clifford Yapp e5210e7cb1 distclean fixes
svn:revision:75920
svn:branch:bioh
svn:account:starseeker
2020-05-25 17:32:25 +00:00
Clifford Yapp 5fe21295d2 Turn back on the remaining tests.
svn:revision:75919
svn:branch:bioh
svn:account:starseeker
2020-05-25 17:19:38 +00:00
Clifford Yapp 8079d03fef Turn back on the remaining tests. (preliminary file move commit) 2020-05-25 17:19:38 +00:00
Clifford Yapp 048032ee13 re-enable licenses check
svn:revision:75918
svn:branch:bioh
svn:account:starseeker
2020-05-25 16:47:10 +00:00
Clifford Yapp 723ab9632c re-enable licenses check (preliminary file move commit) 2020-05-25 16:47:10 +00:00
Clifford Yapp 7390c31721 Use the STAND_ALONE label for make check
svn:revision:75917
svn:branch:bioh
svn:account:starseeker
2020-05-25 16:28:25 +00:00
Clifford Yapp 6d1a7d787a reenable regress gchecker test
svn:revision:75916
svn:branch:bioh
svn:account:starseeker
2020-05-25 04:02:17 +00:00
Clifford Yapp e9185a5320 Enable mged tests, run them in parallel
svn:revision:75915
svn:branch:bioh
svn:account:starseeker
2020-05-25 03:18:05 +00:00
Clifford Yapp 0474e0d780 This file is ten years out of date, not needed.
svn:revision:75914
svn:branch:bioh
svn:account:starseeker
2020-05-24 18:32:49 +00:00
Clifford Yapp 06e2606c01 Reenable rtwizard tests
svn:revision:75913
svn:branch:bioh
svn:account:starseeker
2020-05-24 18:13:38 +00:00
Clifford Yapp fc05d231d3 More regress test work
svn:revision:75912
svn:branch:bioh
svn:account:starseeker
2020-05-24 17:20:13 +00:00
Clifford Yapp 371d05c280 More regress test work (preliminary file move commit) 2020-05-24 17:20:13 +00:00
Clifford Yapp 18e3fa3810 Reenable nurbs ray tests
svn:revision:75911
svn:branch:bioh
svn:account:starseeker
2020-05-24 15:45:06 +00:00
Clifford Yapp ca2a44b125 Reenable nurbs ray tests (preliminary file move commit) 2020-05-24 15:45:06 +00:00
Clifford Yapp 922b1c06b7 reenable the GCV regress tests
svn:revision:75910
svn:branch:bioh
svn:account:starseeker
2020-05-24 15:02:08 +00:00
Clifford Yapp a403ed8422 reenable the GCV regress tests (preliminary file move commit) 2020-05-24 15:02:08 +00:00
Clifford Yapp 76d33e4931 Leverage the EXEC passed in from generator expressions to get the current bin dir, instead of using the custom file key mechanism.
svn:revision:75909
svn:branch:bioh
svn:account:starseeker
2020-05-24 13:37:29 +00:00
Clifford Yapp 483fa5e9bc get ged mater test working
svn:revision:75908
svn:branch:bioh
svn:account:starseeker
2020-05-24 03:30:16 +00:00
Clifford Yapp da09281356 get ged mater test working (preliminary file move commit) 2020-05-24 03:30:16 +00:00
Clifford Yapp f1866e8941 Start working on a BRLCAD_REGRESS_TEST function intended to handle all regression level test definitions.
svn:revision:75907
svn:branch:bioh
svn:account:starseeker
2020-05-24 02:32:16 +00:00
Clifford Yapp 73750fc433 regress-pkg can't be run by default, since multiple instances of it can collide.
svn:revision:75906
svn:branch:trunk
svn:account:starseeker
2020-05-24 00:50:43 +00:00
Clifford Yapp 071230d2f3 cleanup, organize
svn:revision:75905
svn:branch:trunk
svn:account:starseeker
2020-05-24 00:43:15 +00:00
Clifford Yapp 642a70f699 At this point there's not much utility in forcing the X11 check.
svn:revision:75904
svn:branch:trunk
svn:account:starseeker
2020-05-23 21:50:45 +00:00
Clifford Yapp d4c4347011 Use unset(var CACHE) - shorter than explicitly forcing the value to empty in the cache, and seems to have the same result for the find_package cycle.
svn:revision:75903
svn:branch:trunk
svn:account:starseeker
2020-05-23 21:46:44 +00:00
Clifford Yapp 3bf6f4c8eb Set the graphics system up front, ahead of any Tcl related find_package calls.
svn:revision:75902
svn:branch:trunk
svn:account:starseeker
2020-05-23 21:39:24 +00:00
Clifford Yapp 682bb5d60f remove FindGDAL.cmake - identical to upstream file
svn:revision:75901
svn:branch:trunk
svn:account:starseeker
2020-05-23 21:08:17 +00:00
Clifford Yapp 4658702cca remove FindFontconfig.cmake - identical to upstream file
svn:revision:75900
svn:branch:trunk
svn:account:starseeker
2020-05-23 21:07:07 +00:00
Clifford Yapp 7bc5e148fd Optionally check platform system graphics for Tcl/Tk
svn:revision:75899
svn:branch:trunk
svn:account:starseeker
2020-05-23 20:07:12 +00:00
Clifford Yapp 64a23c303e revert
svn:revision:75898
svn:branch:bioh
svn:account:starseeker
2020-05-23 18:39:22 +00:00
Christopher Sean Morrison e1a6af5edc mention the EXPORT markers now required
svn:revision:75897
svn:branch:trunk
svn:account:brlcad
2020-05-23 17:05:51 +00:00
Clifford Yapp 3460b1bb16 header
svn:revision:75896
svn:branch:bioh
svn:account:starseeker
2020-05-23 17:03:59 +00:00
Clifford Yapp 4fbb9ba9bf Make another try at detecting the Tcl/Tk graphics system. Tk's API doesn't let us get at the info without doing a Tk_Init, which won't succeed in headless configurations as we can't initialize a window. This is a hard problem since Tk provides not proper way to do it - even building a program against libtk.so doesn't work as the lower level library calls that might let us get directly at the needed information are marked static. So we instead try to read the information directly out of the TK_LIBRARY's printable strings - Tk stores the windowingsystem command output as a string, so in princple it is there for us to find.
svn:revision:75895
svn:branch:bioh
svn:account:starseeker
2020-05-23 17:01:14 +00:00
Christopher Sean Morrison 1f01429954 note that MOOSE now exists as the C++ API.
svn:revision:75894
svn:branch:trunk
svn:account:brlcad
2020-05-23 16:59:56 +00:00
Clifford Yapp bd80eb7406 Make bioh branch match trunk
svn:revision:75893
svn:branch:bioh
svn:account:starseeker
2020-05-23 16:25:47 +00:00
Clifford Yapp 8b5cbfe3a7 Merge bioh branch addition of fvisibility=hidden back into trunk. This will exercise what had previously been Windows-only logic for hiding library internal symbols during compilation, and eliminate one of the common sources of Windows build problems introduced by development on other platforms. The practical consequence visible to developers will be that *_EXPORT labeling of public functions in headers will now be necessary for all platforms, not just Windows.
svn:revision:75892
svn:branch:trunk
svn:account:starseeker
2020-05-23 13:42:39 +00:00
Clifford Yapp b8fae6b270 Merge changes from trunk through r75890
svn:revision:75891
svn:branch:bioh
svn:account:starseeker
2020-05-23 13:35:38 +00:00
Clifford Yapp 6949a51340 Set a specific variable for building dm-tk.c
svn:revision:75890
svn:branch:trunk
svn:account:starseeker
2020-05-22 20:28:05 +00:00
Clifford Yapp 1f721d6bfb Set up the libbu fallback as something that can be called if the other mechanisms fail, not just as a compile-time fallback if system methods aren't available.
svn:revision:75884
svn:branch:trunk
svn:account:starseeker
2020-05-21 19:37:16 +00:00
Clifford Yapp 124812d943 Merge changes from trunk through r75879, except for libdm/libfb changes (which will need to be reworked for the new dm-fb setup once complete and working in trunk.)
svn:revision:75880
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-21 16:34:29 +00:00
Clifford Yapp a7f6f348db Merge changes from trunk through r75878
svn:revision:75879
svn:branch:bioh
svn:account:starseeker
2020-05-21 15:19:09 +00:00
Clifford Yapp cf7df9e6c7 Merge changes from trunk through r75876
svn:revision:75877
svn:branch:bioh
svn:account:starseeker
2020-05-21 15:01:08 +00:00
Clifford Yapp 8f155d12fa Merge changes from trunk through r75874
svn:revision:75875
svn:branch:bioh
svn:account:starseeker
2020-05-21 14:55:55 +00:00
Clifford Yapp 583a5144aa Merge changes from trunk through r75871
svn:revision:75872
svn:branch:bioh
svn:account:starseeker
2020-05-21 14:47:28 +00:00
Clifford Yapp b96dc23453 Use HIDE_INTERNAL_SYMBOLS for the other step programs as well - was using MSVC, not CPP_DLL_DEFINES as the conditional.
svn:revision:75869
svn:branch:bioh
svn:account:starseeker
2020-05-21 14:20:30 +00:00
Clifford Yapp 6ae5eb14a3 Merge trunk changes through r75867
svn:revision:75868
svn:branch:bioh
svn:account:starseeker
2020-05-21 14:11:30 +00:00
Clifford Yapp 779e5b1867 See if we can push MSVC specific library setting up into one location.
svn:revision:75867
svn:branch:bioh
svn:account:starseeker
2020-05-21 14:09:11 +00:00
Clifford Yapp 5ceb1d2113 Zapped the MSVC versions by mistake
svn:revision:75864
svn:branch:bioh
svn:account:starseeker
2020-05-21 13:32:30 +00:00
Clifford Yapp 262c4b8656 This works on Linux, but the key will be whether these tests succeed and fail properly on Windows.
svn:revision:75863
svn:branch:bioh
svn:account:starseeker
2020-05-21 12:56:40 +00:00
Clifford Yapp bd03ffce7a Get a default build working with the fvisibility=hidden flag
svn:revision:75860
svn:branch:bioh
svn:account:starseeker
2020-05-21 02:34:47 +00:00
Clifford Yapp be2fba6d5f Merge trunk changes through r75857
svn:revision:75858
svn:branch:bioh
svn:account:starseeker
2020-05-21 00:44:47 +00:00
Clifford Yapp 8a4a5447de Add a TODO file to document requirements that'll need to be met before the work in this branch can be merged.
svn:revision:75839
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-19 18:48:19 +00:00
Clifford Yapp a3cdeeef1f This gets the 4 missing libged commands building, but not working. Apparently these were libtclcad only commands, and the framebuffer server fbp is distinct from the dm's embedded framebuffer so this change isn't manipulating the same fbp. It looks at this point like the framebuffer object/server code in libtclcad needs to be modded to use the libged dm existing framebuffer as its target/container, or (maybe better) we just remove these 4 libged functions and recast them as libtclcad specific functionality/commands that can reference the libtclcad data structures directly.
svn:revision:75837
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-19 13:35:48 +00:00
Clifford Yapp f5e19f1e08 Use of fbserv_obj isn't as widespread as I thought - the actual 'fbserv' command doesn't appear to use it. It's used by Archer through libtclcad, and 4 libged commands reference the data structure - fb2pix, fbclear, pix2fb, and png2fb. Need to examine those in more detail to see how to achieve what they are doing without recourse to ged_fbsp, but temporarily commenting those out it is possible to move fbserv_obj to libtclcad. It's referencing the internal details of libdm/fb, so the API separation isn't clean in that sense, but it does push all use of Tcl associated with that object up into libtclcad. That in turn lets us remove all remaining inclusions of tcl.h and friends from the core libdm/fb library. Most of the backends still use it, but we can now (sans the four previously mentioned commands) do a libged build completely without Tcl/Tk.
svn:revision:75836
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-19 03:34:33 +00:00
Clifford Yapp 0dd7054bdf Use of fbserv_obj isn't as widespread as I thought - the actual 'fbserv' command doesn't appear to use it. It's used by Archer through libtclcad, and 4 libged commands reference the data structure - fb2pix, fbclear, pix2fb, and png2fb. Need to examine those in more detail to see how to achieve what they are doing without recourse to ged_fbsp, but temporarily commenting those out it is possible to move fbserv_obj to libtclcad. It's referencing the internal details of libdm/fb, so the API separation isn't clean in that sense, but it does push all use of Tcl associated with that object up into libtclcad. That in turn lets us remove all remaining inclusions of tcl.h and friends from the core libdm/fb library. Most of the backends still use it, but we can now (sans the four previously mentioned commands) do a libged build completely without Tcl/Tk. (preliminary file move commit) 2020-05-19 03:34:33 +00:00
Clifford Yapp 06c9f235a3 Merge trunk changes through r75834
svn:revision:75835
svn:branch:bioh
svn:account:starseeker
2020-05-18 19:20:19 +00:00
Clifford Yapp 92faa132b0 C++17 won't tolerate the deprecated use of register here
svn:revision:75824
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-15 15:40:36 +00:00
Clifford Yapp 65ac1d430a Merge changes from trunk through r75822
svn:revision:75823
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-15 15:16:47 +00:00
Clifford Yapp 104b268867 add bu_setprogname call
svn:revision:75817
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-15 14:12:34 +00:00
Clifford Yapp 46544e99e7 tests got double-added
svn:revision:75816
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-15 13:50:09 +00:00
Clifford Yapp dd690f8348 Merge changes from trunk through r75814
svn:revision:75815
svn:branch:dm-fb-merge
svn:account:starseeker
2020-05-15 13:30:41 +00:00
Clifford Yapp f9ca6ede92 Merge changes from trunk through r75629
svn:revision:75630
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-29 16:02:41 +00:00
Clifford Yapp 85723be554 Merge changes from trunk through r75597
svn:revision:75598
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-23 23:35:43 +00:00
Clifford Yapp 1980347507 Include dm.h in the osgl header
svn:revision:75554
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 21:16:27 +00:00
Clifford Yapp f507a9abf6 export drawLine2D
svn:revision:75553
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 21:03:33 +00:00
Clifford Yapp 9a019b2341 Move fontstash into the osgl subdir
svn:revision:75552
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 20:14:31 +00:00
Clifford Yapp 95d99c098a Windows CMake configure is looking for OpenThreadsVersionInfo.rc.in
svn:revision:75548
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 17:18:11 +00:00
Clifford Yapp b45b022a87 Wrap osg header inclusions. As of the previous commit wgl tested successfully on Windows with this new setup - don't know about osgl yet on windows, and it has the offset error on Linux...
svn:revision:75547
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 17:13:16 +00:00
Clifford Yapp 06616a5fc2 This is in dm/util.h now
svn:revision:75546
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 16:59:13 +00:00
Clifford Yapp a2c1269fc5 add vmath.h for point_t
svn:revision:75545
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 16:44:32 +00:00
Clifford Yapp edc1d5f504 move interface externs to local files
svn:revision:75544
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 16:33:42 +00:00
Clifford Yapp c2274fbe06 FB->DM
svn:revision:75543
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 16:02:01 +00:00
Clifford Yapp 537b93c602 more header tweaks
svn:revision:75542
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 16:01:04 +00:00
Clifford Yapp 0cf403bee6 PNG is getting used more widely, at least for the moment
svn:revision:75540
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 15:50:23 +00:00
Clifford Yapp 7f00d09ff5 Export for libtclcad
svn:revision:75539
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 15:40:08 +00:00
Clifford Yapp 6a90a82d93 This gets wgl building with MSVC - untested.
svn:revision:75538
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 15:20:50 +00:00
Clifford Yapp 3fc403ccd9 Export a few more functions
svn:revision:75537
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 15:12:27 +00:00
Clifford Yapp a217f03a01 More header tweaks
svn:revision:75536
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 15:08:39 +00:00
Clifford Yapp 995c16c6c6 Need to define dm_wglvars
svn:revision:75535
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 14:43:15 +00:00
Clifford Yapp e0f209e848 Add a few fb util functions
svn:revision:75534
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 14:35:26 +00:00
Clifford Yapp 93c5b763a7 uh... why are there two of these?
svn:revision:75533
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 14:30:40 +00:00
Clifford Yapp 3d2641da95 Add dm util header
svn:revision:75530
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 14:22:16 +00:00
Clifford Yapp 10893a9961 Don't need opengl header in this file anymore
svn:revision:75529
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 14:14:33 +00:00
Clifford Yapp 11312ae249 Add cctype
svn:revision:75528
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 14:13:57 +00:00
Clifford Yapp 081500aa1d Make the dm lookup case insensitive
svn:revision:75527
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 13:59:24 +00:00
Clifford Yapp deab3069a2 Fix name - will start in stand alone mode, but doesn't resize or respond to mouse events.
svn:revision:75526
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 13:29:12 +00:00
Clifford Yapp ccc1628512 Whoops - need to build color.c into the plugin
svn:revision:75525
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 13:25:04 +00:00
Clifford Yapp b094acd87c Don't explicitly use Tcl_Interp in the fbserv_obj
svn:revision:75524
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 13:13:19 +00:00
Clifford Yapp b3f6b15665 Arrgh. We do have a tiny offset error in the mouse position with respect to the osgl display manager window... not sure if that's mouse interaction, window border offset issues, or...?
svn:revision:75521
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 02:02:36 +00:00
Clifford Yapp e8477d3dbd As expected, the fbserv use of Tcl is the last non-backend piece in the libdm/libfb stack. Will also be a thorny one - we're relying on Tcl channels on Windows to successfully do the async raytracing to the MGED/Archer display windows, if I recall correctly - that's a key feature which has to be kept working.
svn:revision:75520
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 01:38:22 +00:00
Clifford Yapp 9f271ae2dc Use tclcad header
svn:revision:75519
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 01:36:35 +00:00
Clifford Yapp c978ff5fda ditto fb Tcl interface
svn:revision:75518
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 01:23:32 +00:00
Clifford Yapp db9a6932b5 ditto fb Tcl interface (preliminary file move commit) 2020-04-22 01:23:32 +00:00
Clifford Yapp a881413030 Move the Tcl interfaces to libdm to libtclcad. For the moment they're still calling the internal API, which is not ideal, but it will be a fair bit of work clean that up and those internal usages are not public facing libtclcad API.
svn:revision:75517
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 01:21:42 +00:00
Clifford Yapp f8b52699bc Move the Tcl interfaces to libdm to libtclcad. For the moment they're still calling the internal API, which is not ideal, but it will be a fair bit of work clean that up and those internal usages are not public facing libtclcad API. (preliminary file move commit) 2020-04-22 01:21:42 +00:00
Clifford Yapp 354c5dce1d Blast. Archer implicitly depends on the output of the dm_list_types function being in priority order.
svn:revision:75516
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 01:06:53 +00:00
Clifford Yapp 313102a672 remove IF_ and DM_ conditionals
svn:revision:75515
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 00:47:14 +00:00
Clifford Yapp 12b1a394d7 Ah - can't just drop in the newer stb_truetype.h and have it work. Revert for now, will have to look more closely later to see what changed.
svn:revision:75514
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 00:44:51 +00:00
Clifford Yapp 03e86662bc Switch to using only the plugins - turn off the building of the backend files directly into libdm.
svn:revision:75513
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 00:24:12 +00:00
Clifford Yapp 0855bc8b7b Merge changes from trunk through r75511
svn:revision:75512
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 00:11:28 +00:00
Clifford Yapp 8d6d5cf0a9 Ah, right - framebuffer uses /dev/ prefix
svn:revision:75511
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-22 00:08:41 +00:00
Clifford Yapp 5e7788d17c checkpoint
svn:revision:75510
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 22:13:47 +00:00
Clifford Yapp 5ec67a7adb Push backend specific versions of axis drawing down behind call table
svn:revision:75509
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 21:42:16 +00:00
Clifford Yapp 5120b021a2 There was a bit of backend specific code for the dm layer using the IF_ conditionals instead. Start stubbing in the callback.
svn:revision:75508
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 20:54:39 +00:00
Clifford Yapp c1133e30fd Add plugin hooks
svn:revision:75507
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 20:20:59 +00:00
Clifford Yapp dccb672c43 dm code is only half the story - next up is dynamic recognition of the fb logic. Stub in a single test case for experimentation. (Also confirms that the logging works, as most of the plugins don't satisfy this and the printed message notes that...)
svn:revision:75506
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 19:59:48 +00:00
Clifford Yapp f5f8804939 Limit the built-in files to the framebuffer definitions (which aren't yet incorporated into the plugin setup.)
svn:revision:75505
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 19:39:33 +00:00
Clifford Yapp 7dbe2feee7 The null dm is a special case, doesn't really make sense as a plugin - it's the one that has to always be guaranteed for this to work at all...
svn:revision:75504
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 19:34:31 +00:00
Clifford Yapp 8694896405 Enable all the plugin functions
svn:revision:75503
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 19:20:48 +00:00
Clifford Yapp 10a974a735 Put null dm behavior back
svn:revision:75502
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 18:56:17 +00:00
Clifford Yapp 4ba09ce40f Try out dm_open using the plugins
svn:revision:75501
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 18:46:46 +00:00
Clifford Yapp 40866c4911 Have all the test functions use the initially loaded dm set
svn:revision:75500
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 18:32:49 +00:00
Clifford Yapp c3c09e192a Experiment with using the bu_init.cpp approach to populate a list of available libdm backends at library load time.
svn:revision:75499
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 18:11:41 +00:00
Clifford Yapp 156b4f648a Experiment with using the bu_init.cpp approach to populate a list of available libdm backends at library load time. (preliminary file move commit) 2020-04-21 18:11:41 +00:00
Clifford Yapp b268e07b33 plugin aware type recognition
svn:revision:75498
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 17:16:59 +00:00
Clifford Yapp 4727afc226 more plugin testing
svn:revision:75494
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 15:53:32 +00:00
Clifford Yapp e4abf7f2d3 Make the test function work more like dm_list_types
svn:revision:75493
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 15:25:36 +00:00
Clifford Yapp 3fcf034243 rework dm_bestXType
svn:revision:75491
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 15:05:35 +00:00
Clifford Yapp 49abb504af A couple of the commands appear to test at runtime if a backend can work - shift those tests down to the backend layer
svn:revision:75490
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 14:43:59 +00:00
Clifford Yapp e246c83a53 use the dm_open slot, remove the exposure of the backend open implementations to dm-generic.c
svn:revision:75489
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 14:04:16 +00:00
Clifford Yapp 83202dcd49 Text doesn't work, but otherwise correct initialization of osgl memory seems to have helped.
svn:revision:75488
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 12:31:07 +00:00
Clifford Yapp 7c184fe864 Put the open calls in the calltree for dm, fix memory setup in most of the dm backends (had only done ogl and X...)
svn:revision:75487
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 12:23:34 +00:00
Clifford Yapp 5901b597a7 Set default traits first. Getting an odd error about Tk window paths not being available, so the problem may now be elsewhere.
svn:revision:75479
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-21 00:13:24 +00:00
Clifford Yapp 6b2ca1760e Upgrade OpenSceneGraph to 3.6.5. Not quite working still - can attach to osgl in classic mode, but no text and MGED GUI isn't happy.
svn:revision:75478
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-20 21:27:12 +00:00
Clifford Yapp 6ffed84afc Start roughing in plugin building logic across the board for libdm backends
svn:revision:75476
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-20 20:17:41 +00:00
Clifford Yapp 6ac481109d Ah, forgot the manipulator
svn:revision:75475
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-20 20:16:57 +00:00
Clifford Yapp 5350eba084 Make some updates to osgl dm code
svn:revision:75474
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-20 20:16:33 +00:00
Clifford Yapp 2dc8df43aa Make some updates to osgl dm code - still getting MIT-MAGIC-COOKIE-1 error trying to start the dm.
svn:revision:75473
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-20 20:05:56 +00:00
Clifford Yapp 51081bcfa5 Get two plugins working
svn:revision:75469
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-20 15:59:40 +00:00
Clifford Yapp 7ecce4be3e Merge changes from trunk through r75467
svn:revision:75468
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-20 13:56:34 +00:00
Clifford Yapp b4ef6de39d Get as far as being able to find the null display manager from a libdm plugin loading function.
svn:revision:75465
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-18 14:39:02 +00:00
Clifford Yapp 14194241e2 Start working on the CMake setup needed to build dm backends as plugins
svn:revision:75464
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-18 13:47:10 +00:00
Clifford Yapp 08025c2061 Merge changes from trunk through r75462
svn:revision:75463
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-18 13:21:34 +00:00
Clifford Yapp 95ac31af4e Push the shared_dlist down into the calltree. That gets us fairly close to just the functions that would need to be tied into a plugin-based mechanism having the ifdefs based on backend type.
svn:revision:75457
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-18 02:40:26 +00:00
Clifford Yapp 0f727074f1 Hid the backend specific fog calls
svn:revision:75456
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-18 02:18:49 +00:00
Clifford Yapp f120463195 eliminate the numerical DM_ types
svn:revision:75455
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-18 02:12:27 +00:00
Clifford Yapp c69f6cfadd Use strings for dm backend specification - the type defines aren't very flexible
svn:revision:75454
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-18 01:52:26 +00:00
Clifford Yapp acfed6d09e If the intent is for dm_light to mirror the overall state, we should be calling dm_setLight always
svn:revision:75453
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-18 01:14:56 +00:00
Clifford Yapp c97023f87e Backend should handle whether or not this is supported
svn:revision:75452
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 23:10:16 +00:00
Clifford Yapp 9f50e1c176 Don't need the backend specific headers in here anymore
svn:revision:75451
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 23:08:10 +00:00
Clifford Yapp 0aa429dfbf Base this on whether we have the OpenGL headers, not which DM backends are enabled.
svn:revision:75450
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 21:33:09 +00:00
Clifford Yapp 7a84b68732 query.c functions group logically with the function in the beginning of dm-generic.c - consolidate
svn:revision:75449
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 21:20:35 +00:00
Clifford Yapp 5766c49085 Relocate the type aware functions to the beginning of dm-generic.c
svn:revision:75448
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 21:18:05 +00:00
Clifford Yapp dce3080e0c Eliminate dm_xvars.h
svn:revision:75447
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 21:14:38 +00:00
Clifford Yapp 7505501fd9 remove the last calls to xvars in MGED
svn:revision:75446
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 21:12:51 +00:00
Clifford Yapp 0a8cdc5ff8 MGED has one more use of dm_xvars - prepare to wrap it
svn:revision:75445
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 20:25:50 +00:00
Clifford Yapp a05f6bc41b Remove the last dm_xvars.h uses from non-backend libdm code
svn:revision:75444
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 20:18:14 +00:00
Clifford Yapp 90307fe533 few more struct copies...
svn:revision:75442
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 18:44:32 +00:00
Clifford Yapp b42a4a1105 Ah, - copy the implementation, not the parent container struct.
svn:revision:75441
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 18:42:25 +00:00
Clifford Yapp 9c9df659db Stub in a couple more function callbacks
svn:revision:75440
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 18:15:00 +00:00
Clifford Yapp 6aa24f8e69 Hmm. Broke something about switching display types in MGED...
svn:revision:75439
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 17:24:33 +00:00
Clifford Yapp 3c40f82a68 Take a stab at pushing the image writing into the backend. For the Dm object that looks like it leaves flushing and syncing operations as still using exposing xvars.
svn:revision:75437
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 16:14:01 +00:00
Clifford Yapp f07f6f0a5d Stub in a png image callback - not properly generic, that needs a translation of this to libicv, but for now we just need to hide the details of dmo_get_png
svn:revision:75436
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 15:21:55 +00:00
Clifford Yapp 1d07cae820 Start shifting to using backend specific versions of dm_xvars.h
svn:revision:75435
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 15:06:54 +00:00
Clifford Yapp 7eaee7726e Start stubbing in the callback versions of dm_internal_var
svn:revision:75434
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 14:16:09 +00:00
Clifford Yapp f8d2395ceb Stub in hooks for the geometry_request and internal_var functions that were put temporarily in dm-generic
svn:revision:75433
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 13:24:03 +00:00
Clifford Yapp b256a1b4e1 color.c appears to be specific to the X backend
svn:revision:75432
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 13:12:00 +00:00
Clifford Yapp ad91e432ba color.c appears to be specific to the X backend (preliminary file move commit) 2020-04-17 13:12:00 +00:00
Clifford Yapp 86f729411c Move more headers into local include dir
svn:revision:75431
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 13:07:50 +00:00
Clifford Yapp 8c2ea142aa Move more headers into local include dir (preliminary file move commit) 2020-04-17 13:07:50 +00:00
Clifford Yapp b0f0f0959b fold fb_private.h into dm_private.h
svn:revision:75430
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-17 12:46:38 +00:00
Clifford Yapp 64c1dec1ca Same deal in the libfb/libdm merge
svn:revision:75429
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-16 21:19:14 +00:00
Clifford Yapp 69aaed9be3 Group common "backend" files in subdirectories
svn:revision:75427
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-16 21:11:44 +00:00
Clifford Yapp 4a229537c7 Group common "backend" files in subdirectories (preliminary file move commit) 2020-04-16 21:11:44 +00:00
Clifford Yapp 3ad1986026 First high level experiment with combining libfb with libdm - got as far as being able to run MGED and Archer successfully.
svn:revision:75426
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-16 02:48:48 +00:00
Clifford Yapp 5d62231eeb First high level experiment with combining libfb with libdm - got as far as being able to run MGED and Archer successfully. (preliminary file move commit) 2020-04-16 02:48:48 +00:00
Clifford Yapp 6722c7dd75 Make a branch to test merging libdm and libfb.
svn:revision:75425
svn:branch:dm-fb-merge
svn:account:starseeker
2020-04-16 01:41:42 +00:00
2557 changed files with 238111 additions and 116413 deletions
+3 -1
View File
@@ -15,10 +15,12 @@ on-going issues.
Recent Bugs
-----------
* dbupgrade -r produces an invalid rhc with the default v5 rhc produced
by MGED with "make rhc rhc"
* apparently all four BRL-CAD Tutorial Series volumes are missing from
our bibliography...
* Tessellating an ETO with a normal tolerance results in stack
smashing due to bad logic in recursive algorithm: set norm 2;
facetize my.eto my.bot;. Observed infinite recursion in both
+127 -49
View File
@@ -114,14 +114,9 @@ endif(NOT EXISTS ${BRLCAD_CNT_FILE})
include(CMakeDependentOption)
#---------------------------------------------------------------------
# Check whether we need to add import/export lines to libraries
if(MSVC)
set(CPP_DLL_DEFINES 1)
endif(MSVC)
# Define an option to use OBJECT libraries - when we build this
# way, we also need position independent code.
cmake_dependent_option(USE_OBJECT_LIBS "Use OBJECT libraries" ON "NOT CPP_DLL_DEFINES" OFF)
cmake_dependent_option(USE_OBJECT_LIBS "Use OBJECT libraries" ON "NOT MSVC" OFF)
mark_as_advanced(USE_OBJECT_LIBS)
if(USE_OBJECT_LIBS)
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
@@ -159,6 +154,27 @@ generate_sstamp()
set(CONFIG_DELTA_START "${CMAKE_BINARY_DIR}/CMakeTmp/CONFIG_DELTA_START")
execute_process(COMMAND "${CMAKE_BINARY_DIR}/CMakeTmp/sstamp${EXE_EXT}" "${CONFIG_DELTA_START}")
#------------------------------------------------------------------------------
# The SuperBuild (https://blog.kitware.com/cmake-superbuilds-git-submodules/)
# pattern requires a differentiation between the CMake installation prefix used
# for the build and the specification of the ultimate installation location
# used for the superbuild's install. Any hard-coded knowledge of the final
# path backed into BRL-CAD must use the superbuild's final destination, not the
# intermediate build-directory installation used by the superbuild.
#
# For the moment we are not using superbuild, but we will ultimately need to
# move to that approach to manage increasingly complex dependencies. To allow
# the code to work seamlessly with both variables, make them match unless both
# are explicitly set in advance.
if (DEFINED BRLCAD_INSTALL_PREFIX)
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "${BRLCAD_INSTALL_PREFIX}")
endif (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT DEFINED CMAKE_INSTALL_PREFIX)
endif (DEFINED BRLCAD_INSTALL_PREFIX)
if (DEFINED CMAKE_INSTALL_PREFIX AND NOT DEFINED BRLCAD_INSTALL_PREFIX)
set(BRLCAD_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
endif (DEFINED CMAKE_INSTALL_PREFIX AND NOT DEFINED BRLCAD_INSTALL_PREFIX)
#---------------------------------------------------------------------
# Allow the BRLCAD_ROOT environment variable to set during build, but be noisy
# about it unless we're specifically told this is intentional. Having this
@@ -172,15 +188,15 @@ if(NOT "$ENV{BRLCAD_ROOT}" STREQUAL "" AND NOT BRLCAD_ROOT_OVERRIDE)
endif(SLEEP_EXEC)
endif(NOT "$ENV{BRLCAD_ROOT}" STREQUAL "" AND NOT BRLCAD_ROOT_OVERRIDE)
# If CMAKE_INSTALL_PREFIX is "/usr", be VERY noisy about it - a make install in
# If BRLCAD_INSTALL_PREFIX is "/usr", be VERY noisy about it - a make install in
# this location is dangerous/destructive on some systems.
if("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr" AND NOT BRLCAD_ALLOW_INSTALL_TO_USR)
if("${BRLCAD_INSTALL_PREFIX}" STREQUAL "/usr" AND NOT BRLCAD_ALLOW_INSTALL_TO_USR)
message(WARNING "}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}\nIt is STRONGLY recommended that you DO NOT install BRL-CAD into /usr as BRL-CAD provides several libraries that may conflict with other libraries (e.g. librt, libbu, libbn) on certain system configurations.\nSince our libraries predate all those that we're known to conflict with and are at the very core of our geometry services and project heritage, we have no plans to change the names of our libraries at this time.\nINSTALLING INTO /usr CAN MAKE A SYSTEM COMPLETELY UNUSABLE. If you choose to continue installing into /usr, you do so entirely at your own risk. You have been warned.\n}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}")
if(SLEEP_EXEC)
execute_process(COMMAND ${SLEEP_EXEC} 15)
endif(SLEEP_EXEC)
message(FATAL_ERROR "If you wish to proceed using /usr as your prefix, define BRLCAD_ALLOW_INSTALL_TO_USR=1 for CMake")
endif("${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr" AND NOT BRLCAD_ALLOW_INSTALL_TO_USR)
endif("${BRLCAD_INSTALL_PREFIX}" STREQUAL "/usr" AND NOT BRLCAD_ALLOW_INSTALL_TO_USR)
#---------------------------------------------------------------------
# Define relative install locations and output directories. Don't set
@@ -242,12 +258,20 @@ include(Path_Setup)
# To ensure the previous (and internally set) CMAKE_INSTALL_PREFIX value
# is available, BRLCAD_PREFIX is used to store the value in the cache.)
if(BRLCAD_INSTALL_PREFIX)
if(NOT "${BRLCAD_INSTALL_PREFIX}" STREQUAL "/usr" AND NOT "${BRLCAD_INSTALL_PREFIX}" STREQUAL "/usr/local")
get_filename_component(PATH_NORMALIZED "${BRLCAD_INSTALL_PREFIX}/${LIB_DIR}" ABSOLUTE)
set(CMAKE_SYSTEM_IGNORE_PATH "${PATH_NORMALIZED}")
endif(NOT "${BRLCAD_INSTALL_PREFIX}" STREQUAL "/usr" AND NOT "${BRLCAD_INSTALL_PREFIX}" STREQUAL "/usr/local")
endif(BRLCAD_INSTALL_PREFIX)
if(CMAKE_INSTALL_PREFIX)
if(NOT "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr" AND NOT "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/local")
get_filename_component(PATH_NORMALIZED "${CMAKE_INSTALL_PREFIX}/${LIB_DIR}" ABSOLUTE)
set(CMAKE_SYSTEM_IGNORE_PATH "${PATH_NORMALIZED}")
endif(NOT "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr" AND NOT "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/local")
endif(CMAKE_INSTALL_PREFIX)
if(BRLCAD_PREFIX)
if(NOT "${BRLCAD_PREFIX}" STREQUAL "/usr" AND NOT "${BRLCAD_PREFIX}" STREQUAL "/usr/local")
get_filename_component(PATH_NORMALIZED "${BRLCAD_PREFIX}/${LIB_DIR}" ABSOLUTE)
@@ -497,7 +521,7 @@ if(NOT BRLCAD_IS_SUBBUILD)
COMMAND ${CMAKE_COMMAND} -E echo " regression tests. To consider a build viable for production use,"
COMMAND ${CMAKE_COMMAND} -E echo " these tests must pass. Dependencies are compiled automatically."
COMMAND ${CMAKE_COMMAND} -E echo "\"**********************************************************************\""
COMMAND ${CMAKE_CTEST_COMMAND} -C ${CONFIG} -LE \"Regression|NOT_WORKING\" -E \"^regress-|NOTE|benchmark|slow-\" --output-on-failure ${JFLAG}
COMMAND ${CMAKE_CTEST_COMMAND} -C ${CONFIG} -LE \"Regression|STAND_ALONE\" -E \"^regress-|NOTE|benchmark|slow-\" --output-on-failure ${JFLAG}
COMMAND ${CMAKE_CTEST_COMMAND} -C ${CONFIG} -R \"benchmark\" --output-on-failure ${JFLAG}
COMMAND ${CMAKE_CTEST_COMMAND} -C ${CONFIG} -L \"Regression\" --output-on-failure ${JFLAG}
)
@@ -795,59 +819,63 @@ endif(CMAKE_CONFIGURATION_TYPES)
# ExternalProject_Add approach first as well - that way unmodified install
# commands in 3rd party CMake files will be moot.
#
# if (NOT CMAKE_INSTALL_PREFIX)
# set(CMAKE_INSTALL_PREFIX "/usr/brlcad/")
# if (NOT BRLCAD_INSTALL_PREFIX)
# set(BRLCAD_INSTALL_PREFIX "/usr/brlcad/")
# if (NOT MSVC)
# set(gen_exp $<IF:$<CONFIG:Debug>,dev-${BRLCAD_VERSION}/,$<IF:$<CONFIG:Release>,rel-${BRLCAD_VERSION}/${BRLCAD_VERSION},>>)
# else (NOT MSVC)
# set(gen_exp)
# if(CMAKE_CL_64)
# set(CMAKE_INSTALL_PREFIX "C:/Program Files/BRL-CAD ${BRLCAD_VERSION}")
# set(BRLCAD_INSTALL_PREFIX "C:/Program Files/BRL-CAD ${BRLCAD_VERSION}")
# else(CMAKE_CL_64)
# set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/BRL-CAD ${BRLCAD_VERSION}")
# set(BRLCAD_INSTALL_PREFIX "C:/Program Files (x86)/BRL-CAD ${BRLCAD_VERSION}")
# endif(CMAKE_CL_64)
# endif (NOT MSVC)
# endif (NOT CMAKE_INSTALL_PREFIX)
# endif (NOT BRLCAD_INSTALL_PREFIX)
# install(TARGETS mged DESTINATION ${gen_exp}${BIN_DIR})
#
# Another (maybe better) option instead of generators might be to use the CONFIGURATIONS
# option in our macros and the ExternalProject_Add management:
# https://cmake.org/cmake/help/latest/command/install.html
#
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT CMAKE_INSTALL_PREFIX)
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT BRLCAD_INSTALL_PREFIX)
if(NOT CMAKE_CONFIGURATION_TYPES)
if("${CMAKE_BUILD_TYPE}" MATCHES "Release")
set(CMAKE_INSTALL_PREFIX "/usr/brlcad/rel-${BRLCAD_VERSION}")
set(BRLCAD_INSTALL_PREFIX "/usr/brlcad/rel-${BRLCAD_VERSION}")
else("${CMAKE_BUILD_TYPE}" MATCHES "Release")
set(CMAKE_INSTALL_PREFIX "/usr/brlcad/dev-${BRLCAD_VERSION}")
set(BRLCAD_INSTALL_PREFIX "/usr/brlcad/dev-${BRLCAD_VERSION}")
endif("${CMAKE_BUILD_TYPE}" MATCHES "Release")
else(NOT CMAKE_CONFIGURATION_TYPES)
if(MSVC)
if(CMAKE_CL_64)
set(CMAKE_INSTALL_PREFIX "C:/Program Files/BRL-CAD ${BRLCAD_VERSION}")
set(BRLCAD_INSTALL_PREFIX "C:/Program Files/BRL-CAD ${BRLCAD_VERSION}")
else(CMAKE_CL_64)
set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/BRL-CAD ${BRLCAD_VERSION}")
set(BRLCAD_INSTALL_PREFIX "C:/Program Files (x86)/BRL-CAD ${BRLCAD_VERSION}")
endif(CMAKE_CL_64)
else(MSVC)
set(CMAKE_INSTALL_PREFIX "/usr/brlcad/dev-${BRLCAD_VERSION}")
set(BRLCAD_INSTALL_PREFIX "/usr/brlcad/dev-${BRLCAD_VERSION}")
endif(MSVC)
endif(NOT CMAKE_CONFIGURATION_TYPES)
set(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "BRL-CAD install prefix" FORCE)
set(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT 0)
endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT CMAKE_INSTALL_PREFIX)
set(BRLCAD_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE STRING "BRL-CAD install prefix")
set(BRLCAD_INSTALL_PREFIX ${BRLCAD_INSTALL_PREFIX} CACHE PATH "BRL-CAD install prefix" FORCE)
set(BRLCAD_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT 0)
endif(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT BRLCAD_INSTALL_PREFIX)
set(BRLCAD_PREFIX "${BRLCAD_INSTALL_PREFIX}" CACHE STRING "BRL-CAD install prefix")
mark_as_advanced(BRLCAD_PREFIX)
if (DEFINED BRLCAD_INSTALL_PREFIX AND NOT DEFINED CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX "${BRLCAD_INSTALL_PREFIX}")
endif (DEFINED BRLCAD_INSTALL_PREFIX AND NOT DEFINED CMAKE_INSTALL_PREFIX)
# If we've a Release build with a Debug path or vice versa, warn about
# it. A "make install" of a Release build into a dev install
# directory or vice versa is going to result in an install that
# doesn't respect BRL-CAD standard naming conventions.
if("${CMAKE_BUILD_TYPE}" MATCHES "Release" AND "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/brlcad/dev-${BRLCAD_VERSION}")
message(FATAL_ERROR "\nInstallation directory (CMAKE_INSTALL_PREFIX) is set to /usr/brlcad/dev-${BRLCAD_VERSION}, but build type is set to Release!\n")
endif("${CMAKE_BUILD_TYPE}" MATCHES "Release" AND "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/brlcad/dev-${BRLCAD_VERSION}")
if("${CMAKE_BUILD_TYPE}" MATCHES "Debug" AND "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/brlcad/rel-${BRLCAD_VERSION}")
message(FATAL_ERROR "\nInstallation directory (CMAKE_INSTALL_PREFIX) is set to /usr/brlcad/rel-${BRLCAD_VERSION}, but build type is set to Debug!\n")
endif("${CMAKE_BUILD_TYPE}" MATCHES "Debug" AND "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr/brlcad/rel-${BRLCAD_VERSION}")
if("${CMAKE_BUILD_TYPE}" MATCHES "Release" AND "${BRLCAD_INSTALL_PREFIX}" STREQUAL "/usr/brlcad/dev-${BRLCAD_VERSION}")
message(FATAL_ERROR "\nInstallation directory (BRLCAD_INSTALL_PREFIX) is set to /usr/brlcad/dev-${BRLCAD_VERSION}, but build type is set to Release!\n")
endif("${CMAKE_BUILD_TYPE}" MATCHES "Release" AND "${BRLCAD_INSTALL_PREFIX}" STREQUAL "/usr/brlcad/dev-${BRLCAD_VERSION}")
if("${CMAKE_BUILD_TYPE}" MATCHES "Debug" AND "${BRLCAD_INSTALL_PREFIX}" STREQUAL "/usr/brlcad/rel-${BRLCAD_VERSION}")
message(FATAL_ERROR "\nInstallation directory (BRLCAD_INSTALL_PREFIX) is set to /usr/brlcad/rel-${BRLCAD_VERSION}, but build type is set to Debug!\n")
endif("${CMAKE_BUILD_TYPE}" MATCHES "Debug" AND "${BRLCAD_INSTALL_PREFIX}" STREQUAL "/usr/brlcad/rel-${BRLCAD_VERSION}")
#------------------------------------------------------------------------------
# Now that we know the install prefix, generate the binary for calculating
@@ -977,6 +1005,12 @@ if(NOT COMMAND CONFIG_H_APPEND)
endif(NOT COMMAND CONFIG_H_APPEND)
CONFIG_H_APPEND(BRLCAD "/**** Define statements for CMake ****/\n")
CONFIG_H_APPEND(BRLCAD "#if !defined(BRLCADBUILD)\n")
CONFIG_H_APPEND(BRLCAD " # pragma message \"Warning: included brlcad_config.h (compile-time API) without BRLCADBUILD defined\"\n")
CONFIG_H_APPEND(BRLCAD "#endif\n")
CONFIG_H_APPEND(BRLCAD "#if !defined(HAVE_CONFIG_H)\n")
CONFIG_H_APPEND(BRLCAD " # pragma message \"Warning: included brlcad_config.h (compile-time API) without HAVE_CONFIG_H defined\"\n")
CONFIG_H_APPEND(BRLCAD "#endif\n")
CONFIG_H_APPEND(BRLCAD "#ifndef __CONFIG_H__\n")
CONFIG_H_APPEND(BRLCAD "#define __CONFIG_H__\n")
@@ -991,8 +1025,10 @@ CONFIG_H_APPEND(BRLCAD "#define PACKAGE_TARNAME \"brlcad\"\n")
CONFIG_H_APPEND(BRLCAD "#define EXECUTABLE_SUFFIX \"${CMAKE_EXECUTABLE_SUFFIX}\"\n")
CONFIG_H_APPEND(BRLCAD "#define SHARED_LIBRARY_SUFFIX \"${CMAKE_SHARED_LIBRARY_SUFFIX}\"\n")
# Let bu_dir know what the target install directory is
CONFIG_H_APPEND(BRLCAD "#define BRLCAD_ROOT \"${CMAKE_INSTALL_PREFIX}\"\n")
# Let bu_dir know what the target install directory is. In a superbuild
# configuration this will be the most import place to be sure that we get the
# actual superbuild install path, not the local BRL-CAD subbuild install path.
CONFIG_H_APPEND(BRLCAD "#define BRLCAD_ROOT \"${BRLCAD_INSTALL_PREFIX}\"\n")
# Define the various relative paths for bu_dir (be sure to have included
# Path_Setup.cmake before this point, as that file defines these variables.)
@@ -1291,10 +1327,12 @@ if(BRLCAD_ENABLE_X11)
endif(BRLCAD_ENABLE_X11)
mark_as_advanced(OPENGL_USE_AQUA)
# Enable/disable features requiring the Tk toolkit - usually this should
# be on, as a lot of functionality in BRL-CAD depends on Tk
option(BRLCAD_ENABLE_TK "Enable features requiring the Tk toolkit" ON)
mark_as_advanced(BRLCAD_ENABLE_TK)
# Enable/disable features requiring the Tcl/Tk toolkit - usually this should
# be on, as a lot of functionality in BRL-CAD depends on Tcl/Tk
option(BRLCAD_ENABLE_TCL "Enable features requiring the Tcl toolkit" ON)
cmake_dependent_option(BRLCAD_ENABLE_TK "Enable features requiring the Tk toolkit" ON "BRLCAD_ENABLE_TCL" OFF)
mark_as_advanced(BRLCAD_ENABLE_TCL BRLCAD_ENABLE_TK)
if(NOT BRLCAD_ENABLE_X11 AND NOT BRLCAD_ENABLE_AQUA AND NOT WIN32)
set(BRLCAD_ENABLE_TK OFF)
endif(NOT BRLCAD_ENABLE_X11 AND NOT BRLCAD_ENABLE_AQUA AND NOT WIN32)
@@ -1735,6 +1773,23 @@ set(CMAKE_CXX_FLAGS "${CXX_STANDARD_FLAGS}")
CHECK_C_FLAG(pipe)
CHECK_CXX_FLAG(pipe)
# Enable visibility restrictions. We have to deal with this on Windows, so
# enable it wherever we can to keep the code working across all platforms.
CHECK_C_FLAG(fvisibility=hidden)
CHECK_CXX_FLAG(fvisibility=hidden)
# If we can, hide internal library symbols
if(FVISIBILITY_HIDDEN_CXX_FLAG_FOUND)
set(HIDE_INTERNAL_SYMBOLS 1)
endif(FVISIBILITY_HIDDEN_CXX_FLAG_FOUND)
if(MSVC)
# On platforms other than MSVC, the hidden symbols are a convenience and may
# not be supported by system lib headers. With Visual Studio, they are a
# necessity - define an extra flag so we know to always set them in that
# case in order to properly link against the system libs.
set(HIDE_INTERNAL_SYMBOLS 1)
set(HIDE_INTERNAL_SYMBOLS_EXT 1)
endif(MSVC)
# check for -fno-strict-aliasing
# XXX - THIS FLAG IS REQUIRED if any level of optimization is
# enabled with GCC as we do use aliasing and type-punning.
@@ -1954,7 +2009,6 @@ if(HAVE_WARN_UNUSED_RESULT_ATTRIBUTE)
CONFIG_H_APPEND(BRLCAD "#define HAVE_WARN_UNUSED_RESULT_ATTRIBUTE 1\n")
endif(HAVE_WARN_UNUSED_RESULT_ATTRIBUTE)
# Silence check for unused arguments (used to silence clang warnings about
# unused options on the command line). By default clang generates a lot of
# warnings about such arguments, and we don't really care.
@@ -2086,7 +2140,7 @@ if(NOT MSVC)
# llvm-style USE
if("${pgo_flags_found}" STREQUAL "")
cmake_push_check_state()
set(flags "fprofile-use=\"${BRLCAD_PGO_PATH}\"")
set(flags "fprofile-use=\"${BRLCAD_PGO_PATH}\" -Wno-profile-instr-out-of-date -Wno-profile-instr-unprofiled")
set(CMAKE_REQUIRED_FLAGS "-${flags}")
CHECK_C_FLAG("${flags}" GROUPS OPTIMIZE_C_FLAGS VARS pgo_flags_found)
CHECK_CXX_FLAG("${flags}" GROUPS OPTIMIZE_CXX_FLAGS)
@@ -2305,13 +2359,18 @@ if(NOT MSVC)
endif(BRLCAD_ENABLE_COMPILER_WARNINGS OR BRLCAD_ENABLE_STRICT)
if(BRLCAD_ENABLE_COVERAGE)
# TODO: These seem to GCC specific flags - should probably set up for clang
# as well if that's our compiler...
# https://clang.llvm.org/docs/SourceBasedCodeCoverage.html
# If we need different settings for different tools, should
# encapsulate each tool's setup in a function
CHECK_C_FLAG(ftest-coverage)
CHECK_CXX_FLAG(ftest-coverage)
if(FTEST_COVERAGE_C_FLAG_FOUND)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} --coverage -fprofile-arcs")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage -fprofile-arcs")
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage -fprofile-arcs")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ftest-coverage -fprofile-arcs")
SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lgcov -ftest-coverage -fprofile-arcs")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov -ftest-coverage -fprofile-arcs")
else(FTEST_COVERAGE_C_FLAG_FOUND)
message(SEND_ERROR "Building with coverage is not supported by BRL-CAD on this platform.")
endif(FTEST_COVERAGE_C_FLAG_FOUND)
@@ -2478,6 +2537,27 @@ if("${HAVE_TIMESETEVENT}" MATCHES "^${HAVE_TIMESETEVENT}$")
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_BAK})
endif("${HAVE_TIMESETEVENT}" MATCHES "^${HAVE_TIMESETEVENT}$")
# Grumble... find_library doesn't find ws2_32. Until we come up with
# working tests for these, set them by hand
if(MSVC)
set(COMCTL32_LIBRARY comctl32.lib)
set(IMM32_LIBRARY imm32.lib)
# TODO - mged and adrt call this specific OpenGL library out - why doesn't
# OPENGL_LIBRARIES do the trick?
set(OPENGL32_LIBRARY opengl32.lib)
set(PSAPI_LIB psapi.lib)
set(RPCRT_LIB rpcrt4.lib)
set(WINSOCK_LIB ws2_32.lib)
set(WS2_32_LIBRARY ws2_32)
else(MSVC)
set(COMCTL32_LIBRARY "")
set(IMM32_LIBRARY "")
set(OPENGL32_LIBRARY "")
set(PSAPI_LIB "")
set(RPCRT_LIB "")
set(WINSOCK_LIB "")
set(WS2_32_LIBRARY "")
endif(MSVC)
# *******************************************************************
if(BRLCAD_PRINT_MSGS)
@@ -3055,12 +3135,7 @@ int main(void) {
return 0;
}
")
# Grumble... find_library doesn't find ws2_32, so set it by hand.
if(CPP_DLL_DEFINES)
set(WS2_32_LIBRARY ws2_32)
else(CPP_DLL_DEFINES)
set(WS2_32_LIBRARY "")
endif(CPP_DLL_DEFINES)
file(WRITE "${CMAKE_BINARY_DIR}/CMakeTmp/report_hostname.c" "${report_hostname_src}")
try_run(RH_RESULT RH_COMPILED "${CMAKE_BINARY_DIR}/CMakeTmp"
"${CMAKE_BINARY_DIR}/CMakeTmp/report_hostname.c"
@@ -3361,6 +3436,8 @@ if(NOT BRLCAD_IS_SUBBUILD)
endif(NOT BRLCAD_IS_SUBBUILD)
# TODO - the below logic will have to be rethought in a superbuild setup...
# To set correct install paths for CMake at build time, rather than CMake
# time, some rather special logic is necessary - a build target that needs
# to be run when the current build type changes, and introspective scripting
@@ -3578,6 +3655,7 @@ if(NOT BRLCAD_IS_SUBBUILD)
#
# CREATE_DISTCHECK(TARGET_SUFFIX CMAKE_OPTS source_dir build_dir install_dir [custom_template])
CREATE_DISTCHECK(default_build_type "-DBRLCAD_BUNDLED_LIBS=AUTO" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install")
CREATE_DISTCHECK(no_tcl "-DCMAKE_BUILD_TYPE=Debug -DBRLCAD_BUNDLED_LIBS=BUNDLED -DBRLCAD_ENABLE_TCL=OFF" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install" distcheck_no_tcl.cmake.in)
CREATE_DISTCHECK(no_tk "-DCMAKE_BUILD_TYPE=Debug -DBRLCAD_BUNDLED_LIBS=BUNDLED -DBRLCAD_ENABLE_TK=OFF" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install")
CREATE_DISTCHECK(no_strict "-DCMAKE_BUILD_TYPE=Debug -DBRLCAD_BUNDLED_LIBS=BUNDLED -DBRLCAD_ENABLE_STRICT=OFF" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install")
CREATE_DISTCHECK(no_object "-DCMAKE_BUILD_TYPE=Debug -DBRLCAD_BUNDLED_LIBS=BUNDLED -DUSE_OBJECT_LIBS=OFF" "${CPACK_SOURCE_PACKAGE_FILE_NAME}" "build" "install")
+10 -11
View File
@@ -418,9 +418,11 @@ public library APIs should expose only C function calls and data
except in very specific cases (should be discussed with the
development team ahead of time to get consensus on the necessity.)
There is currently no C++ interface to the core BRL-CAD libraries. If
such an interface is eventually developed, it will be done separately
rather than mixing C++ semantics into existing APIs.
There is a C++ interface to the core BRL-CAD libraries called MOOSE
that is maintained in a separate repository. It is developed with
separation in order to avoid mixing C++ semantics into existing APIs
and to ensure clean separation of responsibilities and modularity.
CODING STYLE & STANDARDS
------------------------
@@ -829,19 +831,16 @@ it better?" and add documentation accordingly.
All public library functions and most private or application functions
should be appropriately documented using Doxygen/Javadoc style
comments. Without getting into the advanced details, this minimally
means that you need to add an additional asterisk to a comment that
precedes your functions:
comments. This minimally means that you need to add an additional
asterisk to a comment that precedes your functions. Public functions
must be exported and imported using per-library macros that precede
public symbol declarations (e.g., BU_EXPORT int func();). Example:
/**
* Computes the answer to the meaning of life, the universe, and
* everything.
*/
int
the_answer(void)
{
return 42;
}
MYLIB_EXPORT int mylib_function();
TESTING & DEBUGGING
+45 -38
View File
@@ -52,35 +52,32 @@ below. The rest of this quick installation section is only relevant
to source code distributions of BRL-CAD.
For the impatient or simplistic, the following steps should compile,
test, and install an optimized BRL-CAD quickly into the /usr/brlcad/rel-X.Y.Z
directory if CMake is installed on your system:
test, and install an optimized BRL-CAD quickly into the
/usr/brlcad/rel-VERSION directory if CMake is already installed:
gunzip brlcad-X.Y.Z.tar.gz
tar -xvf brlcad-X.Y.Z.tar
mkdir brlcad-build
cd brlcad-build
cmake ../brlcad-X.Y.Z -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
make
make benchmark
make regress
make install # as root, e.g. sudo make install
tar -zxvf brlcad-VERSION.tar
mkdir brlcad-VERSION/build
cd brlcad-VERSION/build
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release
make -j4
make check
make install
If any of the listed steps fail, then something unexpected happened.
See the REPORTING PROBLEMS section of this document to report the
problem or the INSTALLING FROM SOURCE section for more comprehensive
See the REPORTING PROBLEMS section of this document to report any
problems or the INSTALLING FROM SOURCE section for more comprehensive
instructions.
Once installed, add /usr/brlcad/rel-X.Y.Z/bin to your path, and you should be
Once installed, add /usr/brlcad/rel-VERSION/bin to your path, and you should be
able to run any of the 400+ applications that constitute BRL-CAD. For
example, to run the MGED solid modeler:
PATH=/usr/brlcad/rel-X.Y.Z/bin:$PATH ; export PATH
PATH=/usr/brlcad/rel-VERSION/bin:$PATH ; export PATH
mged
If you use tcsh or another C-shell based command shell, use this
instead:
set path=( /usr/brlcad/rel-X.Y.Z/bin $path ) ; rehash
set path=( /usr/brlcad/rel-VERSION/bin $path ) ; rehash
mged
@@ -126,9 +123,10 @@ always be loaded first, regardless of the presence of a "local" copy.
Mac OS X Disk Mounting Image:
Mount the .dmg and run the Installer .pkg contained therein. This
will install into /usr/brlcad/rel-X.Y.Z and will only require confirming that
your environment is set up properly (i.e. add /usr/brlcad/rel-X.Y.Z/bin to your
path) as described in the Quick Installation section.
will install into /usr/brlcad/rel-X.Y.Z and will only require
confirming that your environment is set up properly (i.e. add
/usr/brlcad/rel-X.Y.Z/bin to your path) as described in the Quick
Installation section.
INSTALLING FROM SOURCE
@@ -242,6 +240,14 @@ performance evaluation), enable BRLCAD_FLAGS_OPTIMIZATION:
-DBRLCAD_FLAGS_OPTIMIZATION=ON
Profile-guided optimization builds are possible via two-pass
compilation. Compile with this flag set, run the benchmark suite,
clean the build, and then compile again with this flag set. Supported
compilers will utilize data from the first pass to guide optimization,
typically resulting in a significant performance increase:
-DBRLCAD_PGO=ON
See the CONFIGURATION OPTIONS below for more details on all of the
possible settings.
@@ -287,19 +293,31 @@ or on operating systems set up to use sudo:
TESTING FUNCTIONALITY
---------------------
To test BRL-CAD before installation, you can run the BRL-CAD benchmark.
The benchmark will report if the results are correct, testing a
majority of the core functionality of BRL-CAD in addition to testing
your system's performance:
The primary build target to validate a compilation of BRL-CAD is:
make check
That runs a trio of test sets including "benchmark", "regress", and
"unit". The first set is a performance test that also validates
whether ray tracing behavior is correct:
make benchmark
Note that the benchmark target will build ONLY the pieces required for
the benchmark tests, unless a general make has already been performed.
For more testing, you can run the regression test suite:
The second test set is our regression tests that run a host of
rigorous integration tests and validate essential behavior:
make regress
The third set runs unit tests that validate low-level behavior in
BRL-CAD's core libraries:
make unit
Last but not least, one may simply run all available tests, though
note that some tests will intentionally fail:
make test
POST-INSTALLATION
-----------------
@@ -523,17 +541,6 @@ AUTO.
Aliases: ENABLE_PNG
--- 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_NETPBM ---
Option for enabling and disabling compilation of the netpbm library
+7
View File
@@ -13,6 +13,12 @@ changes made. See document footer for additional details.
--- 20XX-XX-XX Release 7.3X.X ---
----------------------------------------------------------------------
* improved gdiff -F filtering option behavior - Cliff Yapp
* improved gdiff command verbosity reporting options - Cliff Yapp
* improved Combination Editor button behaviors in MGED - Sean Morrison
* consistent usage taxonomy for ident-related commands - Sean Morrison
* added units label to the Archer in-scene scale graphic - Cliff Yapp
* improved output path sorting of search command - Cliff Yapp
* added 3dm-g failure message about supported versions - Cliff Yapp
* fixed bw-png writing corrupted png files on Windows - Sean Morrison
@@ -406,6 +412,7 @@ performance ray tracing pipeline.
* removed "high resolution" options from all commands - Carl Moore
* improved performance of archer loading large BoT models - Nick Reed
* added evaluated shaded drawing preference mode and menu - Nick Reed
* fixed .mgedrc creation corruption with closed database - Cliff Yapp
* extensive improvements to NURBS Boolean evaluation - Nick Reed
* added 'bot chull' for creating convex hull envelopes - Cliff Yapp
* new manual page for the g-voxel exporter - Mandarj
+10 -23
View File
@@ -69,33 +69,20 @@ contact one of the BRL-CAD developers.
COMPILE AND INSTALL
-------------------
See the INSTALL file for details on configuring, compiling, and
installing BRL-CAD. In order to compile and install BRL-CAD from a
source distribution, the build tool CMake is required - see the website
at http://www.cmake.org for source and binary installers. CMake is also
available in many Linux and *BSD distributions.
In order to compile and install BRL-CAD from a source distribution,
the CMake ( http://www.cmake.org ) configuration tool is requird.
Once CMake is installed, the following steps may be taken for a full
default install (starting with a source tarball):
The following steps should result in a successful install:
tar -xvzf brlcad-X.Y.Z.tar.gz
mkdir brlcad-build
cd brlcad-build
cmake ../brlcad-X.Y.Z
make
tar -xvzf brlcad-VERSION.tar.gz
mkdir brlcad-VERSION/build
cd brlcad-VERSION/build
cmake .. -DBRLCAD_ENABLE_STRICT=OFF -DCMAKE_BUILD_TYPE=Release
make -j4
make install
where "X.Y.Z" is the version number of BRL-CAD. For those who prefer
a curses interface, substitute ccmake for cmake above. If the graphical
interface available from CMake is installed cmake-gui may be
substituted for cmake. These interfaces will display the various
configuration options available when building BRL-CAD, or the options
may be set directly via command line -D options.
The configure wrapper script may be substituted for cmake in the above
steps for a more autotools-like configuration experience.
Users on multiprocessor systems will be able to speed up their builds
by passing the -j option to make (e.g. make -j4, assuming GNU make).
See the INSTALL file for explanation of the various configuration
options available when building BRL-CAD.
Once the build completes and assuming you have proper filesystem
permissions, you should be able to begin the installation by running
+53 -15
View File
@@ -150,6 +150,12 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
set binary mode (setmode O_BINARY) when writing out files. at quick
glance, there are many (about 50) that still do not.
* the osgl libdm backend has what appears to be an off-by-one-pixel
error in the x and y directions with respect to mouse placement.
Using kmag, can see tha putting the mouse cursor over the center
yellow dot and center clicking (which should be a no-op, and is
with ogl) results in the scene shifting slightly.
* replace los references/terminology with span, len, dist, factor, etc
accordingly since los is ambiguous and a source of user confusion.
@@ -2438,7 +2444,7 @@ DOCUMENTATION
* document the new NURBS/BREP primitive, capabilities and limitations
* add missing manual pages (tbrowder2 generated list 2013-08):
* Low-hanging fruit, add missing manual pages:
archer
bombardier
@@ -2471,10 +2477,8 @@ DOCUMENTATION
umod
ustats
* these are matured shape tools that get installed with simple
usability but should still have basic docs and better names. plan
to absorb them into ged as external plugins, but they'll still need
docs:
Shape tools installed without docs. may absorb into ged as plugins
or may rename, but still need docs:
bolt
fence
@@ -2486,23 +2490,57 @@ DOCUMENTATION
window_frame
wire
* misc / 3rd party tools we control / bundle, but need docs if anyone
else is to use them or contribute:
User-facing commands reported by 'help' needing docs. some are
implemented as Tcl, others to consolidate, but still need docs:
perplex
re2c
adjust
bot_smooth
cc
closedb
dbversion
dmtype
dsp
dump
e_id
form
joint
labelface
loadview
lod
match
mirror
nmg_fix_normals
png
put
relos
remat
reset
rmats
rt_gettrees
rtabort
rtedge
rtweight
savekey
shaded_mode
unhide
* needs his own repo:
ttcp
* need to revisit utility of spherical mapping, used by sh_spm and
Need to revisit utility of spherical mapping, used by sh_spm and
sh_points, used for environment mapping (e.g., stars):
pix-spm
spm-fb
* these eventually get put into gcv (hopefully not needing docs):
3rd party tools we control / bundle, but need docs if anyone else is
to use them or contribute:
perplex
re2c
Needs separate repo:
ttcp
Converters that belong in GCV:
3dm-g
g-dot
+3 -7
View File
@@ -2,11 +2,7 @@ add_subdirectory(ref)
include_directories(${BU_INCLUDE_DIRS})
add_definitions(
-DHAVE_CONFIG_H
-DBRLCADBUILD
-DCONSOLE
)
add_definitions(-DCONSOLE)
BRLCAD_ADDEXEC(pixcmp pixcmp.c libbu)
set(BARK_SOURCES
@@ -40,7 +36,7 @@ CMAKEFILES(
viewdiff.sh
)
if(SH_EXEC)
if(SH_EXEC AND TARGET m35.g)
# CTest enabled short run of the benchmark suite
add_test(NAME benchmark COMMAND ${SH_EXEC} "${CMAKE_BINARY_DIR}/bin/benchmark" run TIMEFRAME=1)
set_tests_properties(benchmark PROPERTIES LABELS "Benchmark")
@@ -68,7 +64,7 @@ if(SH_EXEC)
add_custom_target(benchmark-clobber
${SH_EXEC} ${CMAKE_BINARY_DIR}/bin/benchmark clobber
)
endif(SH_EXEC)
endif(SH_EXEC AND TARGET m35.g)
# Local Variables:
# tab-width: 8
Vendored
-4
View File
@@ -122,10 +122,6 @@ do
shift;;
--disable-png) options="$options -DBRLCAD_PNG=SYSTEM";
shift;;
--enable-lz4) options="$options -DBRLCAD_LZ4=BUNDLED";
shift;;
--disable-lz4) options="$options -DBRLCAD_LZ4=SYSTEM";
shift;;
--enable-netpbm) options="$options -DBRLCAD_NETPBM=BUNDLED";
shift;;
--disable-netpbm) options="$options -DBRLCAD_NETPBM=SYSTEM";
+50 -50
View File
@@ -53,21 +53,15 @@ function(ADD_G_TARGET in_model folder)
# the sense that it uses libgcv...)
if(${MODEL_TYPE} STREQUAL "3dm")
# 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}/${in_model}")
set(INPUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}")
set(OUTPUT_FILE "${output_file}")
# Use the model name for the script, since the output file is specific to this input
set(script_file "${CMAKE_CURRENT_BINARY_DIR}/${in_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}")
configure_file("${CMAKE_SOURCE_DIR}/db/conv_run.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake" @ONLY)
# Define the target
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND ${CMAKE_COMMAND} -P "${script_file}"
COMMAND ${CMAKE_COMMAND} -DEXEC=$<TARGET_FILE:3dm-g> -P "${CMAKE_CURRENT_BINARY_DIR}/${in_model_root}.cmake"
DEPENDS 3dm-g ${CMAKE_CURRENT_SOURCE_DIR}/${in_model}
)
@@ -76,11 +70,13 @@ function(ADD_G_TARGET in_model folder)
# The rest of the conversions follow the simpler/older pattern:
if(${MODEL_TYPE} STREQUAL "asc")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND asc2g "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}" ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
DEPENDS asc2g "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}"
)
if (BRLCAD_ENABLE_TCL)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND asc2g "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}" ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
DEPENDS asc2g "${CMAKE_CURRENT_SOURCE_DIR}/${in_model}"
)
endif (BRLCAD_ENABLE_TCL)
endif(${MODEL_TYPE} STREQUAL "asc")
if(${MODEL_TYPE} STREQUAL "comgeom")
@@ -108,17 +104,19 @@ function(ADD_G_TARGET in_model folder)
)
endif(${MODEL_TYPE} STREQUAL "stp")
add_custom_target(${in_model_root}.g ALL DEPENDS ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file})
set_target_properties(${in_model_root}.g PROPERTIES FOLDER "${folder}")
if(NOT ${MODEL_TYPE} STREQUAL "asc" OR BRLCAD_ENABLE_TCL)
add_custom_target(${in_model_root}.g ALL DEPENDS ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file})
set_target_properties(${in_model_root}.g PROPERTIES FOLDER "${folder}")
# Install logic
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
install(FILES ${CMAKE_CURRENT_BUILD_DIR_INSTALL}/${output_file} DESTINATION ${DATA_DIR}/${rel_dir})
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
# Install logic
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
install(FILES ${CMAKE_CURRENT_BUILD_DIR_INSTALL}/${output_file} DESTINATION ${DATA_DIR}/${rel_dir})
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
# Clean-up
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${log_file}")
DISTCLEAN("${log_file}")
# Clean-up
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${log_file}")
DISTCLEAN("${log_file}")
endif(NOT ${MODEL_TYPE} STREQUAL "asc" OR BRLCAD_ENABLE_TCL)
endfunction(ADD_G_TARGET in_model folder)
@@ -185,34 +183,36 @@ if(SH_EXEC)
set(conversion_g_files_fp)
set(conversion_deps_list)
macro(Sh_Conversion_Test gfile depends_list)
add_custom_target(convert-${gfile} COMMAND ${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:mged> ${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${gfile})
set_target_properties(convert-${gfile} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
set_target_properties(convert-${gfile} PROPERTIES FOLDER "BRL-CAD Conversion Tests")
set(conversion_g_files ${conversion_g_files} ${gfile})
if(NOT "${depends_list}" STREQUAL "")
add_dependencies(convert-${gfile} ${depends_list})
set(conversion_deps_list ${conversion_deps_list} ${depends_list})
endif(NOT "${depends_list}" STREQUAL "")
endmacro(Sh_Conversion_Test)
if (BRLCAD_ENABLE_TCL)
macro(Sh_Conversion_Test gfile depends_list)
add_custom_target(convert-${gfile} COMMAND ${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:mged> ${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${gfile})
set_target_properties(convert-${gfile} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
set_target_properties(convert-${gfile} PROPERTIES FOLDER "BRL-CAD Conversion Tests")
set(conversion_g_files ${conversion_g_files} ${gfile})
if(NOT "${depends_list}" STREQUAL "")
add_dependencies(convert-${gfile} ${depends_list})
set(conversion_deps_list ${conversion_deps_list} ${depends_list})
endif(NOT "${depends_list}" STREQUAL "")
endmacro(Sh_Conversion_Test)
foreach(g_input ${G_BENCHMARK_MODELS})
get_filename_component(GROOT "${g_input}" NAME_WE)
Sh_Conversion_Test(${GROOT}.g "mged")
endforeach(g_input ${G_BENCHMARK_MODELS})
foreach(g_input ${G_SAMPLE_MODELS})
get_filename_component(GROOT "${g_input}" NAME_WE)
Sh_Conversion_Test(${GROOT}.g "mged")
endforeach(g_input ${G_SAMPLE_MODELS})
foreach(g_input ${G_BENCHMARK_MODELS})
get_filename_component(GROOT "${g_input}" NAME_WE)
Sh_Conversion_Test(${GROOT}.g "mged")
endforeach(g_input ${G_BENCHMARK_MODELS})
foreach(g_input ${G_SAMPLE_MODELS})
get_filename_component(GROOT "${g_input}" NAME_WE)
Sh_Conversion_Test(${GROOT}.g "mged")
endforeach(g_input ${G_SAMPLE_MODELS})
list(REMOVE_DUPLICATES conversion_deps_list)
foreach(gfile ${conversion_g_files})
set(conversion_g_files_fp ${conversion_g_files_fp} "${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${gfile}")
endforeach(gfile ${conversion_g_files})
add_custom_target(convert COMMAND ${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:mged> ${conversion_g_files_fp})
set_target_properties(convert PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
set_target_properties(convert PROPERTIES FOLDER "BRL-CAD Conversion Tests")
add_dependencies(convert ${conversion_deps_list})
list(REMOVE_DUPLICATES conversion_deps_list)
foreach(gfile ${conversion_g_files})
set(conversion_g_files_fp ${conversion_g_files_fp} "${CMAKE_BINARY_DIR}/${DATA_DIR}/db/${gfile}")
endforeach(gfile ${conversion_g_files})
add_custom_target(convert COMMAND ${SH_EXEC} ${CMAKE_SOURCE_DIR}/sh/conversion.sh GED=$<TARGET_FILE:mged> ${conversion_g_files_fp})
set_target_properties(convert PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
set_target_properties(convert PROPERTIES FOLDER "BRL-CAD Conversion Tests")
add_dependencies(convert ${conversion_deps_list})
endif (BRLCAD_ENABLE_TCL)
endif(SH_EXEC)
CMAKEFILES(
+41
View File
@@ -0,0 +1,41 @@
string(REPLACE "\\" "" GCV_EXEC "${EXEC}")
set(INPUT_FILE "@INPUT_FILE@")
set(OUTPUT_FILE "@OUTPUT_FILE@")
set(BIN_DIR "@BIN_DIR@")
# NOTE: OUTPUT_FILE needs to be defined in terms of a path relative to the root
# of the build diretory, not as an absolute path. Since that root may change
# at runtime in multiconfig builds, the full output path cannot be encoded
# directly into the generated script.
get_filename_component(OF_ABS "${OUTPUT_FILE}" ABSOLUTE)
if ("${OF_ABS}" STREQUAL "${OUTPUT_FILE}")
message(FATAL_ERROR "Absoute output file path \"${OUTPUT_FILE}\" supplied for conversion of \"${INPUT_FILE}\" - path must be relative.")
endif ("${OF_ABS}" STREQUAL "${OUTPUT_FILE}")
# Because the build directory changes at runtime in multiconfig builds, we
# need to deduce its current value from GCV_EXEC.
get_filename_component(CBDIR "${GCV_EXEC}" DIRECTORY)
string(REGEX REPLACE "${BIN_DIR}$" "" CROOT "${CBDIR}")
# BRLCAD_ROOT is the hammer that makes certain we are running
# things found in the build directory.
set(ENV{BRLCAD_ROOT} "${CROOT}")
# Now that we know the root, finalize the full path output file location
set(OUTPUT_FILE "${CROOT}/${OUTPUT_FILE}")
execute_process(
COMMAND "${GCV_EXEC}" -o "${OUTPUT_FILE}" "${INPUT_FILE}"
RESULT_VARIABLE conv_result OUTPUT_VARIABLE conv_log ERROR_VARIABLE conv_log
)
if(conv_result)
message(FATAL_ERROR "[geometry conversion] Failure: ${conv_result}\n${GCV_EXEC} -o \"${OUTPUT_FILE}\" \"${INPUT_FILE}\"\n\n${conv_log}")
endif(conv_result)
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+64 -66
View File
@@ -2,45 +2,30 @@ verbose_add_subdirectory(doc docbook)
verbose_add_subdirectory(doc html)
verbose_add_subdirectory(doc legal)
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
BRL-CAD.bib
IDEAS
PROJECTS
README.AIX
README.BSD
README.IRIX
README.Linux
README.MacOSX
README.Solaris
README.VAX
README.Windows
TODO.BREP
TODO.shaded_displays
archer_ack.txt
benchmark.tr
bu_opt_design_notes.txt
brep.txt
BRL-CAD.bib
README.other/README.AIX
README.other/README.BSD
README.other/README.IRIX
README.other/README.Solaris
README.other/README.VAX
checklist.txt
cvs.txt
description.txt
editors.txt
ged.tr
history.txt
hypot.txt
irprep.tr
mater.txt
matrix.txt
notes/TODO.BREP
notes/TODO.shaded_displays
notes/brep.txt
notes/bu_opt_design_notes.txt
notes/cvs.txt
notes/editors.txt
notes/history.txt
notes/hypot.txt
notes/mater.txt
notes/matrix.txt
pre_BRL-CAD.bib
)
ADD_DOC(documentation_DATA ".")
@@ -210,13 +195,11 @@ set(documentation_mged_old_DATA
mged/wm-leg1.ps
mged/wm-prims.ps
mged/wm-tube.ps
mk.tr
notes/ecosystem.dot
notes/regions.txt
notes/rounding.txt
notes/tool_categories.txt
old-mged.tr
pkg.tr
regions.txt
rounding.txt
tool_categories.txt
ecosystem.dot
)
ADD_DOC(documentation_mged_old_DATA mged_old)
@@ -225,42 +208,57 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/pad_file.xml" DESTINATION ${DOC_DIR})
CMAKEFILES(
CMakeLists.txt
README.OSCON-2014
README.other/README.OSCON-2014
STARTERS
STRATEGY
bsd_semaphore_bug.txt
cmake_vars.txt
csv_to_comgeom.txt
implicit_constraints.txt
lcov.txt
notes/bsd_semaphore_bug.txt
notes/cmake_paths/CMakeLists.txt
notes/cmake_paths/README.txt
notes/cmake_paths/dir_info.c
notes/cmake_paths/test.cmake.in
notes/cmake_vars.txt
notes/csv_to_comgeom.txt
notes/implicit_constraints.txt
notes/lcov.txt
pad_file.xml.in
trunk_hierarchy.org
)
# Generic C/C++ examples
CMAKEFILES(
c_cxx_patterns/01_basic_C/CMakeLists.txt
c_cxx_patterns/01_basic_C/main.c
c_cxx_patterns/01_basic_C/nlib.c
c_cxx_patterns/01_basic_C/nlib.h
c_cxx_patterns/02_hidden_C/CMakeLists.txt
c_cxx_patterns/02_hidden_C/main.c
c_cxx_patterns/02_hidden_C/nlib.c
c_cxx_patterns/02_hidden_C/nlib.h
c_cxx_patterns/03_PImpl_C/CMakeLists.txt
c_cxx_patterns/03_PImpl_C/main.c
c_cxx_patterns/03_PImpl_C/nlib.c
c_cxx_patterns/03_PImpl_C/nlib.h
c_cxx_patterns/04_hidden_CXX/CMakeLists.txt
c_cxx_patterns/04_hidden_CXX/main.c
c_cxx_patterns/04_hidden_CXX/nlib.cxx
c_cxx_patterns/04_hidden_CXX/nlib.h
c_cxx_patterns/05_PImpl_CXX/CMakeLists.txt
c_cxx_patterns/05_PImpl_CXX/main.c
c_cxx_patterns/05_PImpl_CXX/nlib.cxx
c_cxx_patterns/05_PImpl_CXX/nlib.h
c_cxx_patterns/CMakeLists.txt
c_cxx_patterns/README
notes/c_cxx_patterns/01_basic_C/CMakeLists.txt
notes/c_cxx_patterns/01_basic_C/main.c
notes/c_cxx_patterns/01_basic_C/nlib.c
notes/c_cxx_patterns/01_basic_C/nlib.h
notes/c_cxx_patterns/02_hidden_C/CMakeLists.txt
notes/c_cxx_patterns/02_hidden_C/main.c
notes/c_cxx_patterns/02_hidden_C/nlib.c
notes/c_cxx_patterns/02_hidden_C/nlib.h
notes/c_cxx_patterns/03_PImpl_C/CMakeLists.txt
notes/c_cxx_patterns/03_PImpl_C/main.c
notes/c_cxx_patterns/03_PImpl_C/nlib.c
notes/c_cxx_patterns/03_PImpl_C/nlib.h
notes/c_cxx_patterns/04_hidden_CXX/CMakeLists.txt
notes/c_cxx_patterns/04_hidden_CXX/main.c
notes/c_cxx_patterns/04_hidden_CXX/nlib.cxx
notes/c_cxx_patterns/04_hidden_CXX/nlib.h
notes/c_cxx_patterns/05_PImpl_CXX/CMakeLists.txt
notes/c_cxx_patterns/05_PImpl_CXX/main.c
notes/c_cxx_patterns/05_PImpl_CXX/nlib.cxx
notes/c_cxx_patterns/05_PImpl_CXX/nlib.h
notes/c_cxx_patterns/CMakeLists.txt
notes/c_cxx_patterns/README
)
# Notes about parser generators
CMAKEFILES(
notes/parsers/bison_to_lemon.txt
notes/parsers/flex_to_re2c.txt
notes/parsers/templates/CMakeLists.txt
notes/parsers/templates/main.c
notes/parsers/templates/main.h
notes/parsers/templates/parser.lemon
notes/parsers/templates/scanner.perplex
notes/parsers/writing_perplex_lemon_parsers.txt
)
# Local Variables:
-849
View File
@@ -1,849 +0,0 @@
.\" $Header$
.\" groff -t -ms -X benchmark.tr
.\" groff -t -ms benchmark.tr | print-postscript
.\"
.\" sort '-t ' +7nr -8
.de BR
\fB\\$1\fR\\$2
..
.TL
The BRL-CAD Benchmark Suite
.AU
Michael John Muuss
.AU
Charles M. Kennedy
.AU
Lee A. Butler
.AI
The U.S. Army Research Laboratory
.PP
This document describes the BRL-CAD Benchmark Suite Methodology, and
the Ray-Tracing Figure of Merit (RTFM) used to judge the computational
performance of different computer systems.
.PP
The core of the test is the \fBrt\fR ray-tracing program. The results
for each processor are determined by running a benchmark test of the
RT ray-tracing program on each of the sample databases provided. The
\fBrt\fR program requires a binary database for input ("db/xxx.g"),
and produces a binary image as output ("bench/xxx.pix"), along with a
log file ("bench/xxx.log"). Each run will produce a 512x512x24 bit
color shaded image in a "bench/xxx.pix" file, and a run log in
"bench/xxx.log". Reference copies of the images are provided as
"pix/xxx.pix" and "pix/xxx.log". The sample databases provided are
processed in order of increasing difficulty, and each produces a
colorful image. In each picture there are two light sources; the
primary source is located near the center of the model (the white
ball), and the secondary light source is located at the "eye"
position.
.NH 1
The Benchmark Models
.LP
moss.g -- This is a simple model, containing a yellow torus, a green
ellipsoid, a bluish cube, a pink truncated (distorted) cone, all
sitting on a blue plate. Note the shadowing, and "specular splash".
.sp
world.g -- The same model as moss.g, but with various rendering
features enabled. The model is enclosed in a hollow cloud sphere.
The plate is a mirror, the egg is crystal, the box has a debugging
texture map applied.
.sp
star.g -- A familiar sight to Star Trek fans; a low-detail exterior of
the ship "Enterprise". The hull is white, with some other structures
in other colors. The small red object in the foreground is the
shuttlecraft Galileo, to scale.
.sp
bldg391.g -- An exploded view of a two-story imaginary computer site,
including various walls, red stairways, green disk drives, etc. The
lower floor is a mirror, the upper floor is glass.
.sp
m35.g -- A truck.
.sp
sphflake.g -- A sphereflake.
.NH 1
MACHINE INDEPENDENCE
.PP
To make the benchmark distribution machine independent, the databases
are provided in an ASCII format in the "db" directory, and
ascii-to-binary converters are provided in the "conv" directory. The
setup command "\fBcake benchmark\fR" (see the document \fIInstalling
the BRL-CAD Package\fR) will automatically compile and run the
converters.
.PP
If you are running this benchmark on a non-UNIX machine that has
difficulty writing binary streams, change the "-o file.pix" flag to
"-O file.a_pix" and RT will write an ASCII form directly. For more
discussion, consult the doc/pix.5 and conv/asc2pix.1 manual pages.
.PP
The reference images are distributed in binary BRL-CAD
.BR pix (5)
format. Earlier releases distributed the reference images in the
portable ASCII form, and then converted them to the binary form. This
consumed a significant amount of extra storage on UNIX machines, so
this practice was discontinued. It is assumed that anyone attempting
to benchmark a system that can not read pure binary files will at
least have access to a UNIX system. That UNIX system can be used to
convert the reference images to the portable ASCII form with the
.BR pix2asc (1)
tool, and then those images may be sent to the machine under test.
.PP
Information about modifying the benchmark to run on a particular
system may be found in the document \fIInstalling the BRL-CAD
Package\fR. For a detailed explanation of various hardware specific
modifications necessary to take advantage of parallel processing, see
the document \fIWorkstations, Networking, Distributed Graphics, and
Parallel Processing\fR. Implementations for several different types
of hardware in use at ARL are included.
.PP
If you encounter difficulty with running the benchmark, you might wish
to build the full BRL-CAD package, to take advantage of the image
tools in determining the nature of the problem. For example, one
system suffered from a compiler bug that made TGC solids vanish, while
another system had difficulties with the light visibility
calculations.
.NH 1
OBTAINING CORRECT RESULTS
.PP
The benchmark timings are not considered valid unless the correct
results are given. Make sure that the answers match the reference
files to within plus-or-minus one in each color (see pixdiff(1)).
Slight variations in the calculated pixels are generally attributable
to variations in floating point precision. You may wish to compare
the execution times and log file remarks from your tests (in the
"bench/xxx.log" files) with the VAX-11/780 (with hardware FPA) times
which are given in the "pix/xxx.log" files. The log file for sphflake
has yet to be run on the same system, causing weighted results. It's
still useful and informative, however, for deriving performance
statistics. The reference images are also located in the "pix/"
directory.
.PP
For example, if you are running the benchmark on a Cray XMP, the
world.pix and bldg391.pix images will have a single byte in the blue
channel off by 1, out in the cloud background. This is not to be
considered an error.
.NH 1
BENCHMARK IMAGE DISPLAY
.PP
If you have a suitable framebuffer, you may wish to display the images
generated by the benchmark, and compare them to the reference images.
This section assumes that you have successfully compiled the full set
of BRL-CAD software, not just the benchmark portion. Programs for
dealing with images are in the "util" directory. To display a
\fBpix\fR(5) file on a framebuffer, set environment variable FB_FILE
(see \fBbrlcad\fR(1) for details), and run \fBpix-fb\fR. Note that by
leaving FB_FILE unset, your default display will be used.
.sp
.nf
.ft B
cd bench
pix-fb moss.pix
.ft R
.fi
.sp
If the images computed on your machine do not match the reference
images, the program "util/pixdiff" will compute a pix file that will
highlight the differences for you, and report a summary of bytes
equal, off-by-1, and off-by-many, e.g.,
.sp
.ft B
pixdiff moss.pix ../pix/moss.pix \(or pix-fb
.ft R
.fi
.sp
For a display of the relative magnitude of the differences at each
pixel, use "util/bwdiff" instead, e.g.,
.sp
.nf
.ft B
bwdiff moss.pix ../pix/moss.pix \(or pix-fb
.ft R
or
.ft B
bwdiff moss.pix ../pix/moss.pix \(or \\
bwmod -s 128 -m 4 -a 128 \(or pix-fb
.ft R
.fi
.sp
and for statistics on the differences, use
.sp
.ft B
bwdiff moss.pix ../pix/moss.pix \(or pixstat
.ft R
.ne 8i
.NH 1
THE COMPETITION
.PP
The full benchmark takes about 9 CPU hours on a VAX-11/780, so you
should scale your expectations accordingly.
.PP
Here is a sampling of some systems that have been tested, with as much
information about the configuration as could be obtained. Some
systems have a great many options for small things that can affect
performance, such as memory interleaving.
.LP
.TS
center box;
l l.
System Name Configuration
_ _
axposf DEC Alpha 4000/710, 256M, OSF/1 V3.0 \(dg
ex-art Pentium-P90, 16MB, 256K cache, BSD/OS 2.0,
hawks 486DX/33, 24MB, 256K cache, BSD/OS 2.0
orac 486/100, 20MB, No cache, BSD/OS 2.0 (laptop)
pk Cray C90, C916/161024, UNICOS 8.0.2.4
vapor SGI, 18* 75 MHz R8000 IP21, 1024M RAM 8-way, Irix 6.0
vblt 66 MHz 486DX2/66, 16M RAM, Linux 1.1.73
vgr DEC VAX-11/780 w/FPA, 64M RAM, 4.3 BSD
vision Sun-3/280 w/68881 FPA, 16M RAM, SunOS 4.1.1
voyage SGI, 4* 25 MHz R3000 IP7, 56M RAM, Irix 4.0.1
whiz SGI Ingido**2, 100 MHz IP22, 96M RAM, Irix 5.2
waffle SGI, 4* 25 MHz R3000 IP7, 64M RAM, Irix 4.0.5 (heavy network use)
warp Sun SPARCstation 5, 32M RAM, SunOS 4.1.4
wax SGI, 24* 150 MHz R4400 IP19, 1024M RAM 4-way, Irix 5.2
wilson SGI, 8* 100 MHz R4400 IP19, 1024M RAM 8-way, Irix 5.2
wilted Sun-4/25 ELC, 16M RAM, SunOS 4.1.1
wimp 33 MHz 386DX/33 w/387, 256k cache, 16M RAM, BSDI 2.0beta2
wimpy Sun SS10BSX-GX, 2* 50 MHz SuperSPARC, 64M RAM, SunOS 5.4
wizard SGI Ingido**2, 150 MHz IP22, 96M RAM, Irix 5.3
.TE
\(dg The Alpha was heavily loaded while the benchmark was being run.
DEC requires us to show the load average at the time:
.br
03:28 up 18 days, 10:59, 7 users, load average: 2.00, 2.00, 2.08
.NH 1
BENCHMARK RESULTS
.PP
In the tradition of Dongarra, the Rays/sec figure is considered the
"RT Figure of Merit" (RTFM). Note that the RTFM can only be compared
between different runs on the \fIsame\fR database; it is not
meaningful to compare RTFM numbers between different databases. The
Rays/sec number for a multi-processor machine is for "aggregate CPU
cluster seconds", rather than rays/total CPU seconds (which remains
fairly constant on good parallel machines).
.PP
The statistics are recorded in an easily understood format, with all
results for a particular configuration listed on a single line. The
numbers reported are the rays/sec (RTFM) figure. Entries denoted with
a dagger ("\(dg") produced incorrect results. Entries denoted with a
dash ("-") were not available and should be considered differently
than those entries with a dagger. Generally the results are not
available because time constraints prevented running the complete set
of databases.
.fi
.br
.ne 8i
.NH 1
RELEASE 4.4 STATISTICS (4-Jan-1995)
.PP
There is very little difference in RTFM numbers between Release 4.0
and Release 4.4, so they can be usefully compared. In some cases the
4.4 performance is slower due to the use of shared libraries. For
example "vision" dropped from 1.33 to 1.22 due to the shared
libraries. For most users reducing the disk consumption from 300
MBytes to 30 MBytes makes this a reasonable tradeoff. However, for
the best performance, use non-shared libraries.
.LP
.TS H
expand box;
l | n n n n n | n | l.
H/W Moss World Star Bldg M35 Mean S/W Notes
_
.TH
vapor 810.91 1091.39 1012.63 1027.25 1092.85 1007 -P18 static
vapor 773.8 1038.7 979.49 970.91 1036.62 959.9 -P17
vapor 732.85 1021.69 968.93 922.62 1024.15 934.04 -P18 (SW lock)
wax 769.38 940.83 953.36 924.7 1050.14 927.68 -P24
vapor 730.17 994.97 934.43 917.1 987.83 912.9 -P16
wax 725.26 957.68 927.61 932.67 992.75 907.19 -P24
wax 756.95 915.96 940.43 903.45 966.09 896.57 -P23
vapor 686.8 939.63 897.72 884.39 927.16 867.14 -P15
wax 691.18 853.75 887.17 859.32 933.41 844.96 -P21
wax 724.73 683.08 890.87 900.82 939.31 827.76 -P22
vapor 645.32 881.18 843.23 801.41 859.26 806.08 -P14
wax 637.28 757.74 820.21 871.37 877.6 792.84 -P20
vapor 608.12 835.84 795.36 759.95 806.32 761.11 -P13
_
wax 606.98 784.3 754.46 799.95 794.52 748.04 -P19
wax 590.16 758.23 794.06 794.52 757.79 738.95 -P18
wax 579.29 722.35 787.55 720.26 754.65 712.82 -P17
vapor 571.14 783.72 740.47 697.24 746.72 707.85 -P12
wax 553.72 697.1 744.21 663.61 723.03 676.33 -P16
vapor 534.85 716.58 685.87 656.25 685.77 655.86 -P11
wax 519.01 655.57 690.95 651.9 663.92 636.27 -P15
wax 475.88 637.33 665.38 608.31 653.99 608.17 -P14
vapor 499.46 663.26 633.48 614.58 624.34 607.02 -P10
wax 449.16 591.54 616.21 590.59 614.25 572.35 -P13
vapor 463.3 598.34 575.07 555.62 560.89 550.64 -P9
wax 424.71 556.8 595.02 521.63 538.78 527.38 -P12
vapor 424.89 534.5 509.85 497.63 503.99 494.17 -P8
wax 391.66 490.63 545.28 488.57 508.96 485.02 -P11
wax 315.45 472.03 525.47 442.37 461.44 443.35 -P10
vapor 381.1 467.67 440.13 425.57 442.04 431.3 -P7
wax 309.35 426.37 386.11 417.85 434.96 394.92 -P9
vapor 336.55 392.2 390.72 373.92 380.03 374.68 -P6
_
wax 307.6 361.32 396.07 380.17 380.74 365.18 -P8
wax 245.87 332.33 362.5 338.62 331.39 322.14 -P7
vapor 288.45 327.78 328.76 314.54 320.16 315.93 -P5
wax 254.82 255.29 299.93 302.08 256.54 273.73 -P6
wilson 223.01 265.17 287.8 262.19 269.62 261.55 -P8
vapor 240.6 269.93 266.46 253.99 259.05 258 -P4
wax 215.96 231.65 221.78 248.63 221.45 227.89 -P5
wax 177.94 185.27 213.74 201.64 197.27 195.17 -P4
vapor 187.58 198.84 202.28 191.94 194.74 195.07 -P3
wax 120.4 138.01 162.12 159.36 141.33 144.24 -P3
vapor 130.61 140.04 134.88 129.38 129.78 132.93 -P2
wax 100.83 102.09 111.12 87.26 98.62 99.98 -P2
wimpy 99.10 95.78 92.15 97.51 96.65 96.23 -P2
wimpy 82.14 93.60 92.17 103.59 82.22 90.74 -P2
_
axposf 81.05 82.27 86.72 84.36 79.28 82.73 -P1
vapor 79.68 77.7 73.89 71.38 70.06 74.54 -P1 static
vapor 69.34 70.14 67.52 65.55 66.69 67.84 -P1 shared
wizard 63.8 55.86 68.97 73.21 61.56 64.68
wax 62.28 58.58 65.24 67.39 59.31 62.56 -P1
wax 59.08 56.06 61.45 64.4 56.11 59.42 -P1
voyage 52.78 55.44 58.19 58.03 52.41 55.37 -P4
pk 64.89 55.71 48.01 49.50 53.43 54.30 -P1
waffle 38.56 47.63 62.36 59.62 51.20 51.87 -P4
wimpy 50.17 48.82 50.46 55.12 49.27 50.76 -P1
wimpy 47.80 43.23 51.37 54.10 46.23 48.54 -P1
weber 46.53 43.45 50.88 50.33 46.03 47.44 -P1
wilson 41.16 39.54 45.98 42.93 34.82 40.88 -P1
whiz 36.25 31.08 37.21 39.62 36.98 36.22
warp 19.88 21.33 23.71 24.19 22.60 22.34
ex-art 16.89 18.54 22.98 26.97 25.57 22.19
orac 7.57 8.23 10.72 12.43 11.30 10.05
wilted 9.58 9.53 10.66 10.53 9.87 10.03
hawks 3.64 4.17 5.71 6.90 6.23 5.33
vblt 4.85 4.89 5.29 5.24 4.90 5.03
wimp 1.16 1.34 1.82 2.25 2.06 1.72
vision 1.07 1.23 1.23 1.31 1.26 1.22 -P1
vgr 1.0 1.0 1.0 1.0 1.0 1.0
.TE
.br
.ne 8i
.NH 1
THE OLD COMPETITION
.PP
These are the definitions for systems measured in previous tests.
.LP
.TS
center box;
l l.
System Name Configuration
_ _
alliant Alliant FX/8 (8 CEs, 9 IPs, 64 Mbytes), Concentrix 3.0
amber HP 9000/720, 32 MB memory
amsaa-seer Gould PN 9080, w/MACCs, UTX 2.0, 4x4Mb mem boards
ardec-3 Pyramid 90Mx, Dual-CPU, OSx 2.5, 16 Mbytes
bob Cray-2, SN 2009, 4.3ns clock
cor3 Pyramid MIS-12T/3, OSx 192
patton Cray X-MP/48, SN213, UNICOS 5.0, 8.5ns clock
uy1 Cray Y-MP8/2128, UNICOS 5.1.11
shpcrc2 IBM RS/6000, AIX 3.1
slc1 Macintosh II, 68020, 68881, AUX 1.1, GCC 1.39
spark Gould PN 9050, no MACC, UTX 2.0, 2x4Mb mem boards
sws2 Convex C120, 16 Mbytes, Convex Unix 6.2.32.2
vector Alliant FX/80 (8 ACEs, 6 IPs, 32 Mbytes), Concentrix
venom Alliant FX/8 (8 CEs, 6 IPs, 32 Mbytes), Concentrix
vgr VAX 780, FPA, 4.3 BSD
virus Sun-3/50, 15 Mhz clock, 12 Mhz 68881, Sun UNIX 3.2
vista SGI 3030, w/FP chip, UNIX release 3.5
vmb Gould PN 9080, no MACCs, UTX 2.0, 12x1Mb mem boards
vhs Silicon Graphics 4D/60T, 12.5 Mhz clock 16 MB memory
ovoyage Silicon Graphics 4D/120, 16.7 Mhz clock 16 MB memory
taylor Silicon Graphics 4D/220, 25 Mhz clock 16 MB memory
crim Silicon Graphics 4DCRIMS 50Mhz clock 128 MB memory
wiltse Silicon Graphics 4D R4000 50Mhz clock
c1east T{
Convex C1 XP (2 IOPs, 4 Multibus, 64 Mbytes),
S/W 6.0.1.12
T}
elxsi-gnu Elxsi 6420, BSD 4.2 16 MB
elxsi-gnuy Elxsi 6420, Sys Vr2, 16MB
elxsi-m1 Elxsi 6410, BSD 4.2 16 MB
hep Denelcor HEP, 4 PEMs
indigo SGI Iris 3030, FPA, GL2-W3.5
mseries T{
MIPS Mseries, Release 0.6, UMIPS 2.1, 16 MB of R2350 RAM.
R2000 CPU rev 5.0, R2010 FP rev 2.0
T}
multiflow Multiflow Trace 7/200 (PRELIMINARY)
nova T{
Sun SPARCserver 490, 32 Mb, 33 MHz clock, 33 MHz TI 8847 FPU, SunOS 4.1.1B
T}
rh2 Tektronix, Motorola 88000
snm2 Cray 1-M, SN2, UNICOS 2.0
sws1 Convex C1, ConvexOS 9.1 48MB memory
tek4132 Tektronix 4132, 32082 fpp, UTek 2.3
utah-gr VAX 785, FPA, 4.3 BSD
utah-cs VAX 8600, FPA, 4.3 BSD
veto Sun 4/260 32MB memory Sun UNIX 4.0.3
violet VaxStationII GPX, Ultrix 1.2
vision Sun-3/280, 16 MB memory
vortac Sun-3/160, 16.67 Mhz clock, 12 Mhz 68881, Sun 3.2
walrus Silicon Graphics 4D/280 25 Mhz clock 64 MB memory Irix 3.3.1
whiz Silicon Graphics 4D/240 25 Mhz clock 56 MB memory Irix 3.3.1
whisper Sun SPARCStation 1+
wilted Sun SPARCstation ELC , Diskless, 12MB memory Sun UNIX 4.1.1
worm Silicon Graphics 4D/280 25 Mhz clock 64 MB memory Irix 3.3.1
.TE
.br
.ne 8i
.NH 1
OLD BENCHMARK RESULTS
.PP
These are the results of previous benchmarks.
.NH 1
RELEASE 1.20 STATISTICS (12-Feb-1987)
.LP
.TS H
expand box;
l l | n n n n | n | l.
A/* H/W Moss World Star Bldg Mean S/W Notes
_
.TH
Rays tek4132 80.5 44.0 33.9 31.4 ? UTek 2.3
*vgr tek4132 0.72 0.69 0.62 0.62 ?
_
Rays violet 107.7 57.3 44.7 44.1 ? Ultrix 1.2
*vgr violet 0.96 0.90 0.81 0.87 ?
_
Rays violet 119.0 63.0 50.0 46.3 ? Ultrix 1.2,
*vgr violet 1.06 0.99 0.91 0.91 ? w/fast_sqrt
_
Rays vgr 112.1 63.6 55.0 50.7 ? BSD 4.3
*vgr vgr 1.0 1.0 1.0 1.0 1.0
_
Rays indigo 115.9 85.3 \(dg 101.8 ? GL2-W3.5
*vgr indigo 1.03 1.34 \(dg 2.01 ?
_
Rays vista 116.4 86.0 \(dg 102.3 ? SGI UNIX 3.5
*vgr vista 1.04 1.35 \(dg 2.02 ?
_
Rays virus 127.3 69.9 57.0 52.4 ? Sun UNIX 3.2
*vgr virus 1.14 1.10 1.04 1.03 ?
_
Rays vortac 148.2 81.0 65.8 60.7 ? Sun UNIX 3.2
*vgr vortac 1.32 1.27 1.20 1.20 ?
_
Rays utah-gr 191.8 105.8 89.9 86.5 ? 4.3 BSD
*vgr utah-gr 1.71 1.66 1.64 1.71 ?
_
Rays ardec-3 - 68.4 57.2 - ? OSx 2.5
*vgr ardec-3 - 1.08 1.04 - ?
_
Rays elxsim1 380.5 232.2 204.8 189.3 ? BSD 4.2
*vgr elxsim1 3.39 3.65 3.72 3.73 ?
_
Rays spark 413.4 232.0 213.8 211.9 ? UTX 2.0
*vgr spark 3.69 3.65 3.89 4.18 ?
_
Rays vmb 413.9 233.4 210.6 212.6 ? UTX 2.0
*vgr vmb 3.69 3.67 3.83 4.19 ?
_
Rays c1east 454.8 252.4 205.6 192.3 ? Convex UNIX 6.0.1.12,
*vgr c1east 4.06 3.97 3.74 3.80 ? vanilla cc
_
Rays seer 460.7 263.2 246.8 241.0 ? UTX 2.0
*vgr seer 4.11 4.14 4.49 4.75 ?
_
Rays venom 492.9 228.0 180.0 157.1 ? Concentrix 2.0
*vgr venom 4.40 3.58 3.27 3.10 ?
_
Rays elxgnu 520.6 315.4 264.4 242.0 ? BSD 4.2
*vgr elxgnu 4.64 4.96 4.81 4.77 ?
_
Rays utah-cs 521.1 292.1 237.4 216.2 ? BSD 4.3
*vgr utah-cs 4.64 4.59 4.32 4.27 ?
_
Rays c1east 521.6 285.3 230.5 215.1 ? Convex UNIX 6.0.1.12,
*vgr c1east 4.66 4.49 4.20 4.24 ? vc -O1 (scalar)
_
Rays c1east 527.7 287.4 228.7 210.0 ? Convex UNIX 6.0.1.12,
*vgr c1east 4.71 4.52 4.16 4.14 ? vc -O2 (vector)
_
Rays elxgnuy 644.7 349.3 264.6 242.1 ? System Vr2
*vgr elxgnuy 5.75 5.49 4.81 4.77 ?
_
Rays mflow 845.2 439.5 313.1 338.9 ? (preliminary)
*vgr mflow 7.54 6.91 5.69 6.68 ?
_
Rays venom 904.9 424.6 349.3 312.6 ? Concentrix 2.0,
*vgr venom 8.07 6.68 6.35 6.17 ? 2 CEs, no vectors
_
Rays venom 1375.5 650.0 523.4 459.9 ? Concentrix 2.0,
*vgr venom 12.27 10.22 9.52 9.07 ? 3 CEs, no vectors
_
Rays venom 1813.5 845.5 686.0 600.7 ? Concentrix 2.0,
*vgr venom 16.17 13.29 12.47 11.85 ? 4 CEs, no vectors
_
Rays venom 2364.1 1104.4 870.2 775.9 ? Concentrix 2.0,
*vgr venom 21.08 17.36 15.82 15.3 ? 5 CEs, no vectors
_
Rays snm2 2492.9 - - - ? Unicos 2.0,
*vgr snm2 22.24 - - - ? no vectors, no optim
_
Rays hep 2502.0 - - - ? 1 PEM, npsw=10
*vgr hep 22.32 - - - ?
_
Rays venom 2811.4 1319.0 1051.6 918.0 ? Concentrix 2.0,
*vgr venom 25.08 20.74 19.12 18.1 ? 6 CEs, no vectors
_
Rays venom 3248.8 1533.0 1232.3 1065.9 ? Concentrix 2.0,
*vgr venom 28.98 24.10 22.41 21.02 ? 7 CEs, no vectors
_
Rays patton 3453.3 1514.3 1271.2 1027.3 ? COS V115BF2
*vgr patton 30.81 23.81 23.11 20.26 ? 1 CPU, no vectors
_
Rays venom 3677.3 1724.2 1375.4 1208.4 ? Concentrix 2.0,
*vgr venom 32.80 27.11 25.01 23.83 ? 8 CEs, no vectors
_
Rays alliant 3972.9 1840.0 1457.2 1266.4 ? Concentrix 3.0,
*vgr alliant 35.44 28.93 26.49 24.98 ? 8 CEs, no vectors
_
Rays hep 4055.9 - - - ? 1 PEM, npsw=40
*vgr hep 36.18 - - - ?
_
Rays patton 6856.6 - 2522.2 - ? COS V115BF2
*vgr patton 61.16 - 45.86 - ? 2 CPUs, no vectors
_
Rays patton 10205.1 - 3749.9 - ? COS V115BF2
*vgr patton 91.04 - 68.18 - ? 3 CPUs, no vectors
_
Rays patton 13320.2 - 4955.6 - ? COS V115BF2
*vgr patton 118.82 - 90.10 - ? 4 CPUs, no vectors
.TE
.NH 1
RELEASE 2.3 STATISTICS (2-Nov-1987)
.LP
.TS H
expand box;
l l | n n n n | n | l.
A/* H/W Moss World Star Bldg Mean S/W Notes
_
.TH
Rays vgr 118.8 64.9 36.5 34.2 ? BSD 4.3
*vgr vgr 1.0 1.0 1.0 1.0 1.0
_
Rays vmb 375.4 218.6 186.4 196.2 ? UTX 2.0
*vgr vmb 3.16 3.37 5.11 5.74 ?
_
Rays venom 468.2 221.7 166.1 144.9 ? Concentrix 3.0,
*vgr venom 3.94 3.42 4.55 4.24 ? 1 CE, no vectors
_
Rays sws2 471.9 258.4 202.5 186.4 ? Convex Unix 6.2.32.2
*vgr sws2 3.97 3.98 5.55 5.45 ? vanilla cc -O
_
Rays vector 656.6 301.6 221.1 195.0 ? Concentrix 3.0,
*vgr vector 5.53 4.65 6.06 5.70 ? 1 ACE, no vectors
_
Rays venom 827.3 424.0 327.1 287.9 ? Concentrix 3.0,
*vgr venom 6.96 6.53 8.96 8.42 ? 2 CEs, no vectors
_
Rays vhs 958.3 545.6 447.0 414.1 ? -O2 optimization
*vgr vhs 8.07 9.41 12.25 12.11 ?
_
Rays mseries 988.3 603.5 515.6 491.6 ?
*vgr mseries 8.32 9.29 14.13 14.37 ?
_
Rays vector 1280.9 596.8 436.7 389.2 ? Concentrix 3.0,
*vgr vector 10.78 9.19 11.96 11.38 ? 2 ACEs, no vectors
_
Rays venom 1288.7 630.6 486.4 428.0 ? Concentrix 3.0,
*vgr venom 10.85 9.72 13.33 12.51 ? 3 CEs, no vectors
_
Rays venom 1732.9 853.2 645.4 560.1 ? Concentrix 3.0,
*vgr venom 14.59 13.15 17.68 16.38 ? 4 CEs, no vectors
_
Rays bob 1856.7 801.9 574.1 500.3 ? 1 CPU, UNICOS 3.0,
*vgr bob 15.63 12.36 15.73 15.62 ? CC -O
_
Rays vector 1952.1 881.7 647.6 578.8 ? Concentrix 3.0,
*vgr vector 16.43 13.58 17.74 16.92 ? 3 ACEs, no vectors
_
Rays venom 2158.4 1031.3 797.3 703.1 ? Concentrix 3.0,
*vgr venom 18.17 15.89 21.84 20.56 ? 5 CEs, no vectors
_
Rays bob 2346.1 1127.4 751.0 677.2 ? 1 CPU UNICOS 4.0
*vgr bob 19.75 17.37 20.57 19.80 ? CC -O
_
Rays bob 2423.5 1045.7 719.3 609.4 ? 1 CPU, UNICOS 3.0,
*vgr bob 20.40 16.11 19.71 17.82 ? VCC -O
_
Rays vector 2546.2 1170.0 867.2 758.7 ? Concentrix 3.0,
*vgr vector 21.43 18.03 23.76 22.18 ? 4 ACEs, no vectors
_
Rays venom 2633.7 1232.7 943.4 839.5 ? Concentrix 3.0,
*vgr venom 22.17 18.99 25.85 24.55 ? 6 CEs, no vectors
_
Rays venom 2769.4 1393.3 1098.1 971.6 ? Concentrix 3.0,
*vgr venom 23.31 21.47 30.08 28.41 ? 7 CEs, no vectors
_
Rays vector 3131.2 1453.8 1065.8 945.4 ? Concentrix 3.0,
*vgr vector 26.36 22.40 29.20 27.64 ? 5 ACEs, no vectors
_
Rays venom 3368.7 1605.3 1231.3 1095.11 ? Concentrix 3.0,
*vgr venom 28.36 24.73 33.73 32.02 ? 8 CEs, no vectors
_
Rays patton 3456.5 1691.8 1169.0 1043.6 ? 1 CPU, UNICOS 2.1
*vgr patton 29.10 26.07 32.03 30.51 ? no vectors
_
Rays vector 3686.4 1688.6 1259.1 1129.0 ? Concentrix 3.0,
*vgr vector 31.03 26.02 34.49 33.01 ? 6 ACEs, no vectors
_
Rays vector 4140.3 1953.0 1463.3 1299.7 ? Concentrix 3.0,
*vgr vector 34.85 30.09 40.09 38.00 ? 7 ACEs, no vectors
_
Rays bob 4641.7 2243.4 1498.2 1358.1 ? 2 CPUs, UNICOS 4.0
*vgr bob 39.07 34.57 41.05 39.71 ? CC -O
_
Rays vector 4712.2 2226.3 1649.0 1469.7 ? Concentrix 3.0,
*vgr vector 39.66 34.30 45.18 42.97 ? 8 ACEs, no vectors
_
Rays bob 6884.9 3422.4 2267.7 2034.3 ? 3 CPUs, UNICOS 4.0
*vgr bob 57.95 52.73 62.13 59.48 ? CC -O
_
Rays bob 9477.1 4484.7 2947.0 2832.9 ? 4 CPUs, UNICOS 4.0
*vgr bob 79.77 69.10 80.76 82.83 ? CC -O
.TE
.NH 1
RELEASE 3.0 STATISTICS (10-Oct-1988)
.LP
.TS H
expand box;
l l | n n n n | n | l.
A/* H/W Moss World Star Bldg Mean S/W Notes
_
.TH
Abs vgr 138.85 67.15 54.48 49.11 77.39 BSD 4.3
*vgr vgr 1.00 1.00 1.00 1.00 1.00 w/FPA
_
Abs sdm 163.56 76.98 59.79 52.51 88.21 SunOS 3.4
*vgr sdm 1.17 1.14 1.09 1.06 1.11 w/68881
_
Abs ardec-3 417.95 212.43 177.01 160.73 242.03 9820, OSx 4.1
*vgr ardec-3 3.01 3.16 3.24 3.27 3.17 -P 1
_
Abs spark 443.84 216.92 190.42 192.82 261.00 UTX 2.0
*vgr spark 3.19 3.23 3.49 3.92 3.37 no MACC
_
Abs vmb 482.28 226.33 191.52 193.04 273.29 UTX 2.0
*vgr vmb 3.47 3.37 3.51 3.93 3.57 no MACC
_
Abs sws2 546.23 255.45 183.10 163.85 287.15 Convex 6.2.32.2
*vgr sws2 3.93 3.80 3.36 3.33 3.60 /bin/cc
_
Abs sun4 767.7 373.7 315.5 284.5 435.6 Unix 3.5
*vgr sun4 5.52 5.56 5.79 5.79 5.62 -O2 optim
_
Abs video 940.33 469.30 399.21 367.64 544.12 UNIX 2.0
*vgr video 6.77 6.98 7.32 7.48 7.13 -O2
_
Abs vhs 954.81 471.90 409.78 392.55 557.26 IRix 3.1
*vgr vhs 6.87 7.02 7.52 7.99 7.45 Parallel, -P1
_
Abs bob 2602.68 1078.25 712.39 642.42 1258.93 UNICOS 4.0, /bin/cc
*vgr bob 21.22 18.17 15.39 13.98 17.19 -P 1
_
Abs vector 3811.68 1469.80 1060.50 921.21 1815.79 Alliant 3.0
*vgr vector 27.45 21.88 19.46 18.75 21.88 -P 5
_
Abs vector 4515.09 1751.94 1266.49 1090.85 2156.09 Alliant 3.0
*vgr vector 32.51 26.08 23.24 22.21 26.01 -P 6
_
Abs patton 4550.67 1920.15 1298.61 1153.02 2230.61 UNICOS 3.0, /bin/cc
*vgr patton 37.10 32.36 28.05 25.09 30.65 -P 1
_
Abs vector 5130.74 2004.49 1438.97 1261.36 2458.89 Alliant 3.0
*vgr vector 36.95 29.85 26.41 25.68 29.72 -P 7
_
Abs bob 5186.24 2132.17 1409.10 1273.72 2500.30 UNICOS 4.0, /bin/cc
*vgr bob 42.28 35.93 30.44 27.71 34.09 -P 2
_
Abs vector 5813.76 2260.61 1638.31 1422.82 2783.87 Alliant 3.0
*vgr vector 41.87 33.66 30.07 28.97 33.64 -P 8
_
Abs amber 5901.29 2702.65 2096.35 1893.41 3148.42
*vgr amber 42.50 40.24 38.47 38.55 39.94 -P 1
_
Abs bob 7934.12 3392.98 2119.11 1929.74 3843.98 UNICOS 4.0, /bin/cc
*vgr bob 64.69 57.18 45.78 41.99 52.41 -P 3
_
Abs patton 8898.79 3782.55 2559.48 2292.13 4383.23 UNICOS 3.0, /bin/cc
*vgr patton 72.56 63.75 55.30 49.88 60.37 -P 2
_
Abs bob 10734.52 4436.61 2883.53 2617.47 5168.03 UNICOS 4.0, /bin/cc
*vgr bob 87.52 74.77 62.30 56.96 70.38 -P 4
_
Abs patton 13078.79 5631.95 3832.88 3416.90 6490.13 UNICOS 3.0, /bin/cc
*vgr patton 106.64 94.92 82.81 74.36 89.68 -P 3
_
Abs patton 17157.78 7437.55 5073.58 4531.25 8550.04 UNICOS 3.0, /bin/cc
*vgr patton 139.90 125.35 109.62 98.61 118.37 -P 4
.TE
.bp
.NH 1
RELEASE 3.7 STATISTICS (19-June-1989)
.LP
.TS H
expand box;
l l | n n n n n | n | l.
A/* H/W Moss World Star Bldg M35 Mean CPU
_
.TH
Abs vgr 128.64 54.47 45.17 40.35 49.02 63.53 1
*vgr vgr 1.00 1.00 1.00 1.00 1.00 1.00
_
Abs rh2 1704.56 791.31 599.81 549.74 589.01 846.88 1
*vgr rh2 13.25 14.52 13.27 13.62 12.01 13.33
_
Abs spark 435.69 208.59 176.76 177.69 174.67 234.68 1
*vgr spark 3.53 3.61 4.17 4.29 3.40 3.80
_
Abs vhs 973.11 475.00 384.62 351.12 343.44 505.45 1
*vgr vhs 7.56 8.72 8.51 8.70 7.00 8.09
_
Abs whisper 1118.35 561.81 473.52 439.76 509.26 620.54 1
*vgr whisper 8.69 10.31 10.48 10.89 10.38 10.15
_
Abs nova 2024.80 976.01 790.17 732.35 ? 1130.83 1
*vgr nova 15.74 17.92 17.49 18.15 ? 17.32
_
Abs ovoyage 1969.57 1001.21 862.77 809.61 786.11 1085.85 2
*vgr ovoyage 15.31 18.38 19.10 20.06 16.03 17.77
_
Abs taylor 2446.98 1076.24 912.03 837.56 799.58 1214.47 1
*vgr taylor 19.02 19.75 20.19 20.75 16.31 19.20
_
Abs worm 2671.46 1218.49 966.76 859.61 932.18 1329.70 1
*vgr worm 20.76 22.36 21.40 21.30 19.01 20.96
_
Abs viper 3255.73 1368.96 1102.71 1039.37 1008.15 1554.98 8
*vgr viper 25.30 25.13 24.41 25.75 20.56 24.23
_
Abs vector 3956.86 1625.23 1234.03 1137.36 1121.41 1814.97 8
*vgr vector 30.75 29.83 27.31 28.18 22.87 27.78
_
Abs taylor 4730.05 2225.56 1742.09 1590.57 1551.78 2368.01 2
*vgr taylor 36.76 40.85 38.56 39.41 31.65 37.44
_
Abs worm 5017.85 2309.86 1894.92 1708.27 1791.11 2544.40 2
*vgr worm 39.00 42.40 41.95 42.33 36.53 40.44
_
Abs worm 7082.79 3359.99 2740.50 2502.03 2594.37 3655.93 3
*vgr worm 55.05 61.68 60.67 62.00 52.92 58.46
_
Abs worm 8664.78 4162.53 3323.46 3115.36 3378.75 4528.97 4
*vgr worm 67.35 76.41 73.57 77.20 68.92 72.69
_
Abs worm 10072.1 5016.57 4032.60 3855.90 4043.11 5404.06 5
*vgr worm 78.29 92.09 89.27 95.56 82.47 87.53
_
Abs worm 11678.4 5752.20 4758.80 4493.16 4700.52 6276.60 6
*vgr worm 90.78 105.60 105.35 111.35 95.88 101.79
_
Abs worm 12282.3 6021.31 5394.36 4908.98 5141.71 6749.72 7
*vgr worm 95.47 110.54 119.42 121.65 104.89 110.39
_
Abs worm 12158.3 5913.50 5784.67 5327.66 5505.71 6937.96 8
*vgr worm 94.51 108.56 128.06 132.03 112.31 115.09
_
Abs patton 16028.8 7289.7 4827.9 4392.5 20829.2 53368.1 4
*vgr patton 124.6 133.83 106.88 108.85 106.23 116.07
.TE
.bp
.NH 1
RELEASE 4.0 STATISTICS
.LP
.TS H
expand box;
l l | n n n n n | n | l.
A/* H/W Moss World Star Bldg M35 Mean CPU
_
.TH
Abs vgr 137.82 67.23 56.39 53.91 69.25 76.92 1
*vgr vgr 1.00 1.00 1.00 1.00 1.00 1.00
_
Abs slc1 153.63 80.95 62.94 60.48 ? 71.60 1
*vgr slc1 1.12 1.20 1.12 1.13 ? .91
_
Abs vision 165.85 89.78 76.44 75.78 96.18 100.80 1
*vgr vision 1.21 1.33 1.36 1.42 1.36 1.33
_
Abs vmb 381.92 195.11 178.78 186.62 214.31 231.34 1
*vgr vmb 2.78 2.90 3.18 3.49 3.03 3.07
_
Abs sws1 636.26 288.76 212.99 210.18 271.02 323.84 1
*vgr sws1 4.64 4.30 3.79 3.93 3.83 4.09
_
Abs veto 827.25 436.38 361.89 348.99 422.19 479.34 1
*vgr veto 6.03 6.50 6.45 6.54 5.97 6.29
_
Abs vhs 1040.44 500.52 436.90 415.15 496.30 577.86 1
*vgr vhs 7.59 7.46 7.79 7.78 7.02 7.52
_
Abs cor3 1203.14 553.22 445.45 398.79 534.18 626.95 1
*vgr cor3 8.78 8.24 7.94 7.47 7.55 7.99
_
Abs wilted 1556.66 800.18 722.95 708.21 858.90 929.38 1
*vgr wilted 11.36 11.93 12.89 13.27 12.15 12.32
_
Abs shpcrc2 2274.36 1041.79 915.99 854.30 1110.23 1239.33 1
*vgr shpcrc2 16.59 15.53 16.33 16.01 15.70 16.03
_
Abs walrus 2291.38 1094.04 960.07 892.67 1066.31 1260.89 1
*vgr walrus 16.72 16.31 17.12 16.72 15.08 16.39
_
Abs walrus 4010.55 2019.34 1767.75 1685.19 2029.78 2302.52 2
*vgr walrus 29.27 30.11 31.52 31.58 28.71 30.23
_
Abs patton 5235.87 2108.02 1509.85 1507.81 2132.01 2498.71 1
*vgr patton 38.21 31.43 26.92 28.25 30.15 30.99
_
Abs crim 4679.97 2246.04 2143.07 1936.85 2224.65 2646.11 1
*vgr crim 34.15 33.49 38.22 36.29 31.47 34.72
_
Abs uy1 6220.79 2474.97 1742.33 1748.73 2464.90 2930.34 1
*vgr uy1 45.40 36.90 31.07 32.77 34.86 36.20
_
Abs wiltse 5785.83 2737.06 2473.66 2310.58 2699.06 3201.23 1
*vgr wiltse 42.22 40.81 44.11 43.30 38.18 41.72 -mips1
_
Abs walrus 5743.85 2938.73 2513.24 2446.85 2858.84 3300.30 3
*vgr walrus 41.92 43.82 44.82 45.85 40.44 43.37
_
Abs wiltse 7093.51 3458.89 2887.77 2730.62 3199.08 3873.97 1
*vgr wiltse 51.77 51.57 51.50 51.17 45.25 50.25 -mips2
_
Abs walrus 7131.48 3613.02 3262.01 3048.77 3594.35 4129.92 4
*vgr walrus 52.05 53.87 58.17 57.13 50.84 54.41
_
Abs whiz 7159.01 3655.65 3355.85 3132.36 3655.02 4191.57 4
*vgr whiz 52.25 54.51 59.85 58.70 51.70 55.40
_
Abs walrus 7698.43 4119.06 3889.37 3690.27 4244.30 4728.28 5
*vgr walrus 56.18 61.42 69.36 69.15 60.04 63.23
_
Abs walrus 8718.08 4625.56 4469.49 4295.53 4765.40 5374.81 6
*vgr walrus 63.63 68.97 79.71 80.50 67.41 72.04
_
Abs walrus 8937.71 4882.66 4911.99 4601.09 5335.14 5733.71 7
*vgr walrus 65.23 72.81 87.60 86.22 75.47 77.46
_
Abs walrus 9300.31 5136.17 5243.14 5112.23 5318.45 6022.06 8
*vgr walrus 67.88 76.59 93.51 95.80 75.23 81.80
_
.TE
.bp
.NH 1
ADDITIONAL STATISTICS
.PP
It would be greatly appreciated if you would e-mail any statistics
that you gather to the BRL-CAD developers, including: the ``summary''
file produced by the benchmark script, which BRL-CAD release was used,
the manufacturer of the machine, hardware model name/number, software
version numbers (OS and compiler), presence or absence of floating
point hardware, processor cache sizes, bus and memory speeds, and the
local host name (preferably an Internet or UUCP host name) of the
specific machine used.
+29 -33
View File
@@ -1,27 +1,17 @@
# We need various configuration files set up for DocBook processing tools
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/brlcad/)
# Define a build target that builds a no-op executable, so we can ensure
# a target for generator expression use regardless of other changes elsewhere
# in the build system
add_executable(db_dir_info db_dir_info.c)
set_target_properties(db_dir_info PROPERTIES FOLDER "DocBook")
# First, define the commands to expand the third party components we will need to handle
# DocBook processing from their archives into the build directory
include(${CMAKE_CURRENT_SOURCE_DIR}/resources/other/expand.cmake)
# We need various configuration files set up for DocBook processing tools
add_subdirectory(resources)
# Rework CMake binary and source paths for DocBook templates - if we
# have spaces in the paths, they will cause a problem.
string(REPLACE " " "%20" DOCBOOK_BINARY_DIR "${CMAKE_BINARY_DIR}")
string(REPLACE " " "%20" DOCBOOK_SOURCE_DIR "${CMAKE_SOURCE_DIR}")
# Common stylesheets for all DocBook sources
if(BRLCAD_EXTRADOCS_HTML OR BRLCAD_EXTRADOCS_PDF OR BRLCAD_EXTRADOCS_MAN OR BRLCAD_EXTRADOCS_PHP OR BRLCAD_EXTRADOCS_PPT)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/brlcad/brlcad-common.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/resources/brlcad/brlcad-common.xsl)
# Fonts definition
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/brlcad/brlcad-fonts.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/resources/brlcad/brlcad-fonts.xsl)
# Wordpress
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/resources/brlcad/wordpress.xsl.in
${CMAKE_CURRENT_BINARY_DIR}/resources/brlcad/wordpress.xsl)
endif(BRLCAD_EXTRADOCS_HTML OR BRLCAD_EXTRADOCS_PDF OR BRLCAD_EXTRADOCS_MAN OR BRLCAD_EXTRADOCS_PHP OR BRLCAD_EXTRADOCS_PPT)
# Files for PDF products
if(BRLCAD_EXTRADOCS_PDF)
# Apache FOP needs a couple of config files set up
@@ -29,32 +19,38 @@ if(BRLCAD_EXTRADOCS_PDF)
configure_file(${CMAKE_SOURCE_DIR}/doc/docbook/fop.xconf.in ${CMAKE_BINARY_DIR}/doc/docbook/fop.xconf)
endif(BRLCAD_EXTRADOCS_PDF)
# For the html files, we need brlcad.css
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/brlcad_css-${CMAKE_CFG_INTDIR}-done
COMMAND "${CMAKE_COMMAND}" -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/css/brlcad.css $<TARGET_FILE_DIR:db_dir_info>/${RBIN_DIR}/${DOC_DIR}/html/css/brlcad.css
COMMAND "${CMAKE_COMMAND}" -E touch ${CMAKE_CURRENT_BINARY_DIR}/brlcad_css-${CMAKE_CFG_INTDIR}-done
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/css/brlcad.css
)
add_custom_target(brlcad_css DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/brlcad_css-${CMAKE_CFG_INTDIR}-done)
set_target_properties(brlcad_css PROPERTIES FOLDER "DocBook")
install(FILES css/brlcad.css DESTINATION ${DOC_DIR}/html/css)
DISTCLEAN(${CMAKE_CFG_INTDIR}/${DOC_DIR}/html/css/brlcad.css)
# Include CMake macros for DocBook.
include(${BRLCAD_SOURCE_DIR}/misc/CMake/DocBook.cmake)
# For the html files, we need brlcad.css
if(NOT CMAKE_CONFIGURATION_TYPES)
configure_file(css/brlcad.css ${CMAKE_BINARY_DIR}/${DOC_DIR}/html/css/brlcad.css)
else(NOT CMAKE_CONFIGURATION_TYPES)
foreach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER "${CFG_TYPE}" CFG_TYPE_UPPER)
configure_file(css/brlcad.css ${CMAKE_BINARY_DIR_${CFG_TYPE_UPPER}}/${DOC_DIR}/html/css/brlcad.css)
endforeach(CFG_TYPE ${CMAKE_CONFIGURATION_TYPES})
endif(NOT CMAKE_CONFIGURATION_TYPES)
install(FILES css/brlcad.css DESTINATION ${DOC_DIR}/html/css)
add_subdirectory(articles)
add_subdirectory(books)
add_subdirectory(lessons)
add_subdirectory(presentations)
add_subdirectory(resources)
add_subdirectory(specifications)
add_subdirectory(system)
CMAKEFILES(README fop.xconf.in log4j.properties)
CMAKEFILES(README.DB_authors_notes)
CMAKEFILES(css/brlcad.css)
CMAKEFILES(CMakeLists.txt)
set(ignore_files
CMakeLists.txt
README
README.DB_authors_notes
css/brlcad.css
db_dir_info.c
fop.xconf.in
log4j.properties
)
CMAKEFILES(${ignore_files})
# Local Variables:
# tab-width: 8
+4 -44
View File
@@ -149,51 +149,11 @@ See this link for help in installing fop 1.0 and saxon-he on Ubuntu:
VALIDATION
----------
It is possible to add a validation step to DocBook compilation by
defining the CMake variable BRLCAD_EXTRADOCS_VALIDATE to ON.
By default, this will use xmllint to validate the xml files as
they are built.
In order to use a different validation program the user must obtain some
external tools that are not presently part of the BRL-CAD package:
For the 'msv' validation method (a recommended method):
* msv
Oracle Multi-Schema XML Validator (MSV) (see http://msv.java.net/)
* Java
a working Java run-time environment
For the 'nvdl' validation method:
* onvdl.jar
a Java jar file with the oNVDL validation tool (see
https://sourceforge.net/projects/onvdl/
* Java
a working Java run-time environment
For the 'rnv' validation method:
* rnv
http://sourceforge.net/projects/rnv/
* expat library
present in most Linux/Unix distributions, see
http://expat.sourceforge.net/
To use these tools, a <toolname>.cmake.in file must be present
in the misc/CMake source directory. This file tells CMake how
to run the tool in question. Examples for msv and rnv are already
present - see misc/CMake/rnv.cmake.in and misc/CMake/msv.cmake.in
Once the correct file is present, configure CMake with options
similar to the following (alter for your specific tool):
cmake .. -DBRLCAD_EXTRADOCS_VALIDATE=ON -DVALIDATE_EXECUTABLE=msv
It is possible to add a validation step to DocBook compilation by defining the
CMake variable BRLCAD_EXTRADOCS_VALIDATE to ON. This will use xmllint to
validate the xml files as they are built.
By default, this option is enable if the BRL-CAD strict build is enabled.
OTHER CONSIDERATIONS
--------------------
+32
View File
@@ -0,0 +1,32 @@
/* D B _ D I R _ I N F O . C
* BRL-CAD
*
* Published in 2020 by the United States Government.
* This work is in the public domain.
*
*/
/** @file dir_info.c
*
* This is a stub file, whose purpose is to provide the Docbook logic with an
* add_executable build target that can be passed to scripts in order to decode
* at runtime what the location of BR-CAD's build directory is.
*
* Unlike most other BRL-CAD logic, Docbook building may be done without any
* software build targets needing to be processed if the necessary system
* tools are in place. Since it is otherwise difficult to reliably get the
* location of the current build directory in multiconfig build tools, this
* file is used to provide a db_dir_info build target to reference in CMake.
*/
int main() {
}
/*
* Local Variables:
* tab-width: 8
* mode: C
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
+5 -56
View File
@@ -1,62 +1,11 @@
set(dr_ignore_files
add_subdirectory(brlcad)
add_subdirectory(other)
set(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})
CMAKEFILES(${ignore_files})
# Local Variables:
# tab-width: 8
@@ -0,0 +1,68 @@
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/brlcad/)
# Rework CMake binary and source paths for DocBook templates - if we
# have spaces in the paths, they will cause a problem.
string(REPLACE " " "%20" DOCBOOK_BINARY_DIR "${CMAKE_BINARY_DIR}")
string(REPLACE " " "%20" DOCBOOK_SOURCE_DIR "${CMAKE_SOURCE_DIR}")
# Because the core resources for Docbook are not different between the various
# build configurations, we maintain one copy of the "set up" files for all
# configurations rather than building the entire resources setup per-config.
# Common xsl for all outputs
configure_file(brlcad-common.xsl.in ${CMAKE_CURRENT_BINARY_DIR}/brlcad-common.xsl)
# Fonts definition
configure_file(brlcad-fonts.xsl.in ${CMAKE_CURRENT_BINARY_DIR}/brlcad-fonts.xsl)
# Wordpress
configure_file(wordpress.xsl.in ${CMAKE_CURRENT_BINARY_DIR}/wordpress.xsl)
# Make sure distcheck knows about all files in directory
set(ignore_files
CMakeLists.txt
brlcad-article-fo-stylesheet.xsl.in
brlcad-article-xhtml-stylesheet.xsl.in
brlcad-book-fo-stylesheet.xsl.in
brlcad-book-xhtml-stylesheet.xsl.in
brlcad-common.xsl.in
brlcad-fo-stylesheet.xsl.in
brlcad-fonts.xsl.in
brlcad-gendata.xsl
brlcad-lesson-fo-stylesheet.xsl.in
brlcad-lesson-xhtml-stylesheet.xsl.in
brlcad-man-fo-stylesheet.xsl.in
brlcad-man-stylesheet.xsl.in
brlcad-man-xhtml-stylesheet.xsl.in
brlcad-presentation-fo-stylesheet.xsl.in
brlcad-presentation-xhtml-stylesheet.xsl.in
brlcad-specification-fo-stylesheet.xsl.in
brlcad-specification-xhtml-stylesheet.xsl.in
brlcad-xhtml-header-navigation.xsl
brlcad-xhtml-stylesheet.xsl.in
center-table-print.xsl
images/brlcad-logo-669966.svg
images/brlcad-logo-6699cc.svg
images/brlcad-logo-blue.svg
images/brlcad-logo-cc6666.svg
images/brlcad-logo-cc9966.svg
images/brlcad-logo-green.svg
images/brlcad-logo-limegreen.svg
images/brlcad-logo-red.svg
images/logo-vm-gears.png
images/logo-vm-gears.svg
presentation.xsl.in
tutorial-cover-template.xsl.in
tutorial-template.xsl.in
wordpress.xsl.in
)
CMAKEFILES(${ignore_files})
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+117
View File
@@ -0,0 +1,117 @@
# Define the commands to expand the third party components we will need to handle
# DocBook processing from their archives into the build directory
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/docbook-schema)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/docbook-schema)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fonts/dejavu-lgc)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/fonts/dejavu-lgc)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fonts/stix)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/fonts/stix)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/offo)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/offo/source)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/offo/binary)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/offo/README)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/standard/svg)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/standard/svg)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/standard/xsl)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/standard/xsl)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/docbook-schema/schema.sentinel
COMMAND ${CMAKE_COMMAND} -E tar xjf ${CMAKE_CURRENT_SOURCE_DIR}/docbook-5.0.tar.bz2
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/docbookxi.nvdl ${CMAKE_CURRENT_BINARY_DIR}/docbook-schema/docbookxi.nvdl
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/docbook-schema/schema.sentinel
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/docbookxi.nvdl ${CMAKE_CURRENT_SOURCE_DIR}/docbook-5.0.tar.bz2
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_target(schema-expand DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/docbook-schema/schema.sentinel)
SetTargetFolder(schema-expand "DocBook")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/fonts/dejavu-lgc/dejavu-lgc.sentinel
COMMAND ${CMAKE_COMMAND} -E tar xjf ${CMAKE_CURRENT_SOURCE_DIR}/fonts/dejavu-lgc-fonts.tar.bz2
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/fonts/dejavu-lgc/dejavu-lgc.sentinel
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/fonts/dejavu-lgc-fonts.tar.bz2
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fonts
)
add_custom_target(fonts-dejavu-expand DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/fonts/dejavu-lgc/dejavu-lgc.sentinel)
SetTargetFolder(fonts-dejavu-expand "DocBook")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/fonts/stix/stix.sentinel
COMMAND ${CMAKE_COMMAND} -E tar xjf ${CMAKE_CURRENT_SOURCE_DIR}/fonts/stix-fonts.tar.bz2
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/fonts/stix/stix.sentinel
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/fonts/stix-fonts.tar.bz2
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fonts
)
add_custom_target(fonts-stix-expand DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/fonts/stix/stix.sentinel)
SetTargetFolder(fonts-stix-expand "DocBook")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/offo/offo2_0.sentinel
COMMAND ${CMAKE_COMMAND} -E tar xjf ${CMAKE_CURRENT_SOURCE_DIR}/offo/offo-2.0.tar.bz2
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/offo/offo2_0.sentinel
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/offo/offo-2.0.tar.bz2
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/
)
add_custom_target(offo-2-expand DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/offo/offo2_0.sentinel)
SetTargetFolder(offo-2-expand "DocBook")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/standard/svg/svg.sentinel
COMMAND ${CMAKE_COMMAND} -E tar xjf ${CMAKE_CURRENT_SOURCE_DIR}/standard/w3_svg_dtd.tar.bz2
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/standard/met-fonts.xsl ${CMAKE_CURRENT_BINARY_DIR}/standard/svg/met-fonts.xsl
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/standard/svg/svg.sentinel
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/standard/met-fonts.xsl ${CMAKE_CURRENT_SOURCE_DIR}/standard/w3_svg_dtd.tar.bz2
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/standard
)
add_custom_target(svg-dtd-expand DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/standard/svg/svg.sentinel)
SetTargetFolder(svg-dtd-expand "DocBook")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/standard/xsl/xsl.sentinel
COMMAND ${CMAKE_COMMAND} -E tar xjf ${CMAKE_CURRENT_SOURCE_DIR}/standard/docbook-xsl-ns.tar.bz2
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/standard/xsl/xsl.sentinel
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/standard/docbook-xsl-ns.tar.bz2
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/standard
)
add_custom_target(xsl-expand DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/standard/xsl/xsl.sentinel)
SetTargetFolder(xsl-expand "DocBook")
# Build up the set of targets defining resources, and write it to the cache
# immediately so targets in other directories can see it
set(DOCBOOK_RESOURCE_FILES schema-expand fonts-dejavu-expand fonts-stix-expand offo-2-expand svg-dtd-expand xsl-expand)
set(DOCBOOK_RESOURCE_FILES "${DOCBOOK_RESOURCE_FILES}" CACHE STRING "DocBook target list")
mark_as_advanced(DOCBOOK_RESOURCE_FILES)
set(ignore_files
CMakeLists.txt
README.schema
docbook-5.0.tar.bz2
docbook5xi.rnc
docbookxi.nvdl
fonts/README
fonts/dejavu-lgc-fonts.tar.bz2
fonts/dejavu_COPYING.txt
fonts/stix-fonts.tar.bz2
fonts/stix_COPYING.txt
fonts/y14.5.tar.bz2
fonts/y14.5_COPYING.txt
offo/README.offo
offo/licenses.txt
offo/offo-2.0.tar.bz2
standard/README.svg
standard/README.xsl
standard/docbook-xsl-ns.tar.bz2
standard/met-fonts.xsl
standard/w3_svg_dtd.tar.bz2
)
CMAKEFILES(${ignore_files})
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
-81
View File
@@ -1,81 +0,0 @@
# Define the commands to expand the third party components we will need to handle
# DocBook processing from their archives into the build directory
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/other/docbook-schema)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/resources/other/docbook-schema)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/other/fonts/dejavu-lgc)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/resources/other/fonts/dejavu-lgc)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/other/fonts/stix)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/resources/other/fonts/stix)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/other/offo)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/resources/other/offo/source)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/resources/other/offo/binary)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/resources/other/offo/README)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard/svg)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard/svg)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard/xsl)
DISTCLEAN(${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard/xsl)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/resources/other/docbook-schema/schema.sentinel
COMMAND ${CMAKE_COMMAND} -E tar xjf ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/docbook-5.0.tar.bz2
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/docbookxi.nvdl ${CMAKE_CURRENT_BINARY_DIR}/resources/other/docbook-schema/docbookxi.nvdl
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/resources/other/docbook-schema/schema.sentinel
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/docbookxi.nvdl ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/docbook-5.0.tar.bz2
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/other
)
add_custom_target(schema-expand DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/resources/other/docbook-schema/schema.sentinel)
SetTargetFolder(schema-expand "DocBook")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/resources/other/fonts/dejavu-lgc/dejavu-lgc.sentinel
COMMAND ${CMAKE_COMMAND} -E tar xjf ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/fonts/dejavu-lgc-fonts.tar.bz2
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/resources/other/fonts/dejavu-lgc/dejavu-lgc.sentinel
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/fonts/dejavu-lgc-fonts.tar.bz2
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/other/fonts
)
add_custom_target(fonts-dejavu-expand DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/resources/other/fonts/dejavu-lgc/dejavu-lgc.sentinel)
SetTargetFolder(fonts-dejavu-expand "DocBook")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/resources/other/fonts/stix/stix.sentinel
COMMAND ${CMAKE_COMMAND} -E tar xjf ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/fonts/stix-fonts.tar.bz2
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/resources/other/fonts/stix/stix.sentinel
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/fonts/stix-fonts.tar.bz2
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/other/fonts
)
add_custom_target(fonts-stix-expand DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/resources/other/fonts/stix/stix.sentinel)
SetTargetFolder(fonts-stix-expand "DocBook")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/resources/other/offo/offo2_0.sentinel
COMMAND ${CMAKE_COMMAND} -E tar xjf ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/offo/offo-2.0.tar.bz2
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/resources/other/offo/offo2_0.sentinel
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/offo/offo-2.0.tar.bz2
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/other/
)
add_custom_target(offo-2-expand DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/resources/other/offo/offo2_0.sentinel)
SetTargetFolder(offo-2-expand "DocBook")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard/svg/svg.sentinel
COMMAND ${CMAKE_COMMAND} -E tar xjf ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/standard/w3_svg_dtd.tar.bz2
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/standard/met-fonts.xsl ${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard/svg/met-fonts.xsl
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard/svg/svg.sentinel
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/standard/met-fonts.xsl ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/standard/w3_svg_dtd.tar.bz2
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard
)
add_custom_target(svg-dtd-expand DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard/svg/svg.sentinel)
SetTargetFolder(svg-dtd-expand "DocBook")
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard/xsl/xsl.sentinel
COMMAND ${CMAKE_COMMAND} -E tar xjf ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/standard/docbook-xsl-ns.tar.bz2
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard/xsl/xsl.sentinel
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/resources/other/standard/docbook-xsl-ns.tar.bz2
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard
)
add_custom_target(xsl-expand DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/resources/other/standard/xsl/xsl.sentinel)
SetTargetFolder(xsl-expand "DocBook")
set(DOCBOOK_RESOURCE_FILES schema-expand fonts-dejavu-expand fonts-stix-expand offo-2-expand svg-dtd-expand xsl-expand)
+1 -1
View File
@@ -346,7 +346,7 @@
coordinates, distances, or sizes are input. The units may be changed to accommodate
input files of differing units, but the output from a particular run will reflect
whatever the units were set to when the <command>execute</command> command was
given. One argument is expected out of the following list snd must be spelled
given. One argument is expected out of the following list and must be spelled
correctly: millimeters, centimeters, meters, inches and feet. The default units are
millimeters.
</para>
+6 -2
View File
@@ -56,6 +56,10 @@
<para>(three-way diff) Report objects that are different in left_model.g and/or right_model.g relative to ancestor.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-q</option></term>
<listitem><para>Decrease the verbosity of the output. Additional specifications will further decrease the output provided. (Opposite effect of <option>v</option> option.) All settings for this option will respect other constraints applied to the reporting output.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem>
@@ -64,8 +68,8 @@
</listitem>
</varlistentry>
<varlistentry>
<term><option>-v #</option></term>
<listitem><para>Control the verbosity of the output. Zero will suppress all reporting and only the return value of the program will contain information, one will provide categorized lists of objects but no details on what changed, two will list each changed object preceded by a modifier, three will print more details for changed objects, and four will print all available information. All settings for this option will respect other constraints applied to the reporting output.</para></listitem>
<term><option>-v</option></term>
<listitem><para>Increase the verbosity of the output. Additional specifications will further increase the output provided. (Opposite effect of <option>q</option> option.) All settings for this option will respect other constraints applied to the reporting output.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t #</option></term>
+1
View File
@@ -1,6 +1,7 @@
set(man3_EN
libfb.xml
libplot3.xml
libpkg.xml
librt.xml
libwdb.xml
redblack.xml
+489
View File
@@ -0,0 +1,489 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="libpkg" xmlns:xlink="http://www.w3.org/1999/xlink">
<refmeta>
<refentrytitle>LIBPKG</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
</refmeta>
<refnamediv>
<refname>libpkg</refname>
<refpurpose>
Message passing abstraction library supporting communication between
cooperating processes over TCP connections
</refpurpose>
</refnamediv>
<refsect1 xml:id='pkg_background'>
<title>BACKGROUND</title>
<para>
The following is a description of the libpkg routines kindly provided
by Peter B. Shames on 26 Sept 1986, and updated 14 Nov 1986 by PC Dykstra to reflect
BRL extensions since the first writing. It was intended that an RFC
be published at some point, but at this point this document (plus the
source code) is all we have. In the CAD distribution, the remote
framebuffer interface (libfb/if_remote.c) and server (fbserv),
communicate using this protocol.
</para>
</refsect1>
<refsect1 xml:id='pkg_overview'>
<title>Overview</title>
<para>
A prototype interface that implements a fairly simple message passing
abstraction between cooperating processes running over TCP connections
has been developed by Mike Muuss, Charles Kennedy, and Phillip Dykstra
at BRL. Some experiments have been run at STScI to implement this
interface on a DECnet link with good success. A few changes have been
suggested to improve network throughput for data flows that consist of
short message traffic or byte-stream traffic.
</para>
<para>
This note describes the motivation for developing such an interface and
describes the subroutine interfaces and functionality. The interface
routine descriptions and portions of the textual descriptions have been
taken directly from the source code provided by Muuss and Kennedy
which has been the only available description to date.
</para>
</refsect1>
<refsect1 xml:id='why_pkg'>
<title>Why a message interface?</title>
<para>
The interface - PKG provides a simple interface for managing
client/server connections in a distributed environment. A server task
is initialized to wait for incoming requests from clients. Clients open
a connection to the server task which executes on some host processor
waiting for incoming requests. Messages with identifying type codes are
passed between processes, with optional appended data blocks. The
interface is non-blocking and accepts arbitrary data messages of
arbitrary length.
</para>
<para>
An example - interaction with a remote data archive may require request
for services, user authentication, permission granting, index hierarchy
queries - with manipulation of results, archive request processing,
delivery of output products - electronically or otherwise. The archive
is a server that responds to service requests from clients, how many
may be served at one time and whether public access and private services
are supported is an implementation issue. Since no direct interactive
support is required (if smart client agents are in use) the message
paradigm can support the requirements.
</para>
<para>
A [counter] example - Athena's XWindow uses a client-server model to
provide screen/window management services for distributed processes.
XWindow is very permissive of different window management policies and
provides hooks for implementing various user interfaces. At the lowest
level, XWindow requires a reliable duplex byte-stream, which can be
implemented in many operating environments. Because XWindow wants to
manage all process-window communications directly, it builds its own block
stream protocol to manage the connection. This permits the interactive
update required by some processes, but basically is the same paradigm as
PKG, defined within the window system.
</para>
</refsect1>
<refsect1 xml:id='pkg_desc'>
<title>PKG Interface description</title>
<para>
The PKG interface implements an client-server network connection that
multiplexes synchronous and asynchronous messages across stream
connections. Connection control is provided by open/ close routines,
where the client authentication is handled prior to establishing the
connection. Server side actions include initialization, client connection,
and client request servicing. Client side actions include server request,
reply processing, possible connection negotiation, and data transfer
processing.
</para>
<para>
A connection is established when a client issues an open to a server,
running on some host. Which hosts provide required services must be
determined prior to connection requests, using some service directory.
Default connection processing is stream oriented, where a process may
get data as it is available on the connection. A blocking read may
also be issued, waiting for any complete message, or just for messages
of a specified type. The connection remains open until explicitly
closed by either client or server.
</para>
<para>
Once the connection is established it may be used to process a full-
duplex asynchronous byte stream, or a buffered, synchronous query/reply
exchange. Message type multiplexing supports user actions based upon
message type, where the multiplexing is handled in the interface.
Different message type streams may operate using different flow control
over the same connection. Multiplexing is handled in the interface by
pre-pending a header block to the message before transmitting it
to the reader. Data is transmitted as received, but the header is
transmitted in Internet network byte/bit order.
</para>
<para>
An package connection may incur significant overhead if
many short messages are passed between processes, so
a buffered stream connection may be requested. The
application calls the pkg_stream interface rather than the usual pkg_send
request, and PKG builds a message buffer and passes it to the
client as it gets filled. A stream buffer may be flushed with an
explicit call to the pkg_flush routine.
</para>
</refsect1>
<refsect1 xml:id='pkg_def'>
<title>PKG Interface Definition</title>
<para>
Control Interfaces:
<variablelist>
<varlistentry><term>PKG_OPEN - Open a connection to a host</term>
<listitem>
<literallayout>
pkg_open( host, service, protocol, uname, passwd, pkg_switch, errlog )
returns ptr_to_connection
</literallayout>
<para>
We are a client, make a connection to a server running on some host.
The return value is the connection handle. Protocol, username, and
password are optional.
</para>
</listitem>
</varlistentry>
<varlistentry><term>PKG_CLOSE - Close a connection</term>
<listitem>
<literallayout>
pkg_close( ptr_to_connection )
returns VOID
</literallayout>
<para>
We are a client or server wishing to gracefully close a connection.
</para>
</listitem>
</varlistentry>
<varlistentry><term>PKG_TRANSERVER - Become a one-time network server on the already accepted connection.</term>
<listitem>
<literallayout>
pkg_transerver( pkg_switch, errlog )
returns ptr_to_connection
</literallayout>
<para>
Given an established connection, this routine creates a pkg_conn
structure for it and initializes it to use the given pkg_switch
and error logging function. This routine is needed by servers
which get created by some other process after the connection is
established. Processes started by the UNIX "inetd" are one example.
</para>
</listitem>
</varlistentry>
<varlistentry><term>PKG_PERMSERVER - Create a network server and listen for connections</term>
<listitem>
<literallayout>
pkg_permserver( service, protocol, backlog )
returns listen_file_desc
</literallayout>
<para>
The service port is determined and a listen is hung on the port
that is bound to the socket. The return value is the file descriptor
of the socket. For this kind of server, pkg_getclient is used to
accept connections from clients.
</para>
</listitem>
</varlistentry>
<varlistentry><term>PKG_GETCLIENT - Used by a server to accept a client connection</term>
<listitem>
<literallayout>
pkg_getclient( listen_file_desc, pkg_switch, errlog, nodelay_flag )
returns ptr_to_connection or NULL or ERROR
</literallayout>
<para>
If possible, the connection request from the client is accepted,
a pkg_connection block is created and a ptr to it is returned to
the server. The server may request non-blocked service by
setting the nodelay_flag TRUE.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
I/O Interfaces:
<variablelist>
<varlistentry><term>PKG_GET - Read bytes from connection, assembling message</term>
<listitem>
<literallayout>
pkg_get( ptr_to_connection ) returns
returns message_arrived, more_data_coming or ERROR.
</literallayout>
<para>
Get waits until a message header is received and the calls the user
specified message handler for that message type. This routine
should be called by a program whenever there is data waiting on a
connection and the program is not otherwise waiting on a specific
message type. The routine will return directly to the caller if
no header is available or if only a partial message is received,
otherwise it calls the user specified message type handler.
</para>
</listitem>
</varlistentry>
<varlistentry><term>PKG_SEND - Send a message on the connection</term>
<listitem>
<literallayout>
pkg_send( message_type, data_buff, buff_len, ptr_to_connection )
returns bytes_sent or ERROR
</literallayout>
<para>
Send constructs a message header for the data buffer and transmits
it on the connection. If only part of the message can be sent the
actual number of bytes transmitted returned. Any data in the stream
buffer is first flushed. If the stream buffer needs flushing, and
the message is less than MAXQLEN (currently 512) bytes long, and
sufficient room is left in the stream buffer, this message gets
"piggybacked" on by copying it to the buffer before flushing. If
available, "writev" is used to send the header and data with one
syscall.
</para>
</listitem>
</varlistentry>
<varlistentry><term>PKG_2SEND - Send a two part message on the connection</term>
<listitem>
<literallayout>
pkg_2send( message_type, data_buff1, buff1_len, data_buff2, buff2_len, ptr_to_connection )
returns bytes_sent or ERROR
</literallayout>
<para>
2Send performs the same job as pkg_send except the data comes in
two parts. This is often the case for say a command followed by
user data. User data copies can be avoided while still allowing
a single trip in and out of the kernel on the receiving end.
</para>
</listitem>
</varlistentry>
<varlistentry><term>PKG_STREAM - Send a buffered data stream on the connection</term>
<listitem>
<literallayout>
pkg_stream( message_type, data_buff, buff_len, ptr_to_connection )
returns bytes_sent or ERROR
</literallayout>
<para>
Pkg_stream connections provide a low network overhead connection
where interactive responsiveness is not required.
</para>
<para>
Connections have a PKG_STREAMLEN (currently 4096) byte stream
buffer. If the current message is less than MAXQLEN (currently
512) bytes in length, and space remains for it, it will be
appended onto the end of this buffer. Otherwise the buffer is
implicitly flushed by sending this message via PKG_SEND.
</para>
</listitem>
</varlistentry>
<varlistentry><term>PKG_FLUSH - Flush the stream buffer out on the connection</term>
<listitem>
<literallayout>
pkg_flush( ptr_to_connection )
returns bytes_sent or ERROR
</literallayout>
<para>
Flush takes the current contents of the stream buffer being
constructed by stream and flushes it to the connection. This
allows programs explicit control over the stream interface
where required.
</para>
</listitem>
</varlistentry>
<varlistentry><term>PKG_BLOCK - Wait for a complete message of any type</term>
<listitem>
<literallayout>
pkg_block( ptr_to_connection )
returns message_arrived or ERROR
</literallayout>
<para>
This routine blocks, waiting for a complete message of ant type
to arrive on the connection. The user message handler is called
to process the message. This routine can be called in a loop
waiting for asynchronous messages or for the arrival of messages
of uncertain type.
</para>
</listitem>
</varlistentry>
<varlistentry><term>PKG_WAITFOR - Wait for a message of specific type, return in user buffer</term>
<listitem>
<literallayout>
pkg_waitfor( message_type, user_buff, buff_len, ptr_to_connection )
returns buff_len or ERROR
</literallayout>
<para>
This routine does a blocking read on the connection until a message
of message_type is received. Asynchronous messages and messages of
other types are processed while this routine waits. The message is
returned in the user's buffer.
</para>
</listitem>
</varlistentry>
<varlistentry><term>PKG_BWAITFOR - Wait for a message of specific type, return in allocated buffer</term>
<listitem>
<literallayout>
pkg_bwaitfor( message_type, ptr_to_connection )
returns ptr_to_buffer or ERROR
</literallayout>
<para>
This routine does a blocking read on the connection until a message
of message_type is received. Asynchronous messages and messages of
other types are processed while this routine waits. The message is
returned in a newly allocated buffer that the caller must free.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
User Message Handler Interface:
<variablelist>
<varlistentry><term>PKG_SWITCH - Table of User Message Handler Pointers</term>
<listitem>
<literallayout>
struct pkg_switch {
unsigned short pks_type; /* Type code */
int (*pks_handler)(); /* Message Handler */
char *pks_title; /* Description */
};
pks_handler( ptr_to_connection, message_buff )
returns ignored int
</literallayout>
<para>
The user may specify handlers for one or more message types. When
these routines are called they are passed a pointer to the connection
and a pointer to a buffer that contains the message. The user message
handler routine is responsible for freeing the message buffer after
processing it. If there is no message handler for that message type
the message is discarded and the buffered freed. The switch routine
uses an external message handler array, created by the caller, that
defines message types, handler entry points, and a message descriptor
field.
</para>
<para>
The pkg_switch list which is passed to some of the above functions
is a NULL terminated array of structures containing the message type,
a pointer to an function which handles messages of that type, and a
descriptive string. A separate pkg_switch array is kept for each
connection so that several entirely different PKG conversations can
be carried out by a single application at the same time.
</para>
</listitem>
</varlistentry>
<varlistentry><term>PKG_CONN - Connection block structure</term>
<listitem>
<literallayout>
struct pkg_conn {
pkg_file_desc, pkg_magic, mess_len, ptr_to_buffer,
curr_buffer_pos, pkg_switch, errlog, stream_buff,
curr_stream_pos
};
</literallayout>
<para>
Connection block structures are created by pkg_open or pkg_getclient
when a connection is established, and are freed when a connection is
closed. This connection block is used during all I/O requests and
contains the pointer to the start of the current buffer and to the
current position in the buffer for incomplete read or writes. The
mess_len field specifies the number of bytes expected by get. The
pkg_switch array, and a pointer to an error logging function for this
connection is included. The stream buffer is also contained in the
structure.
</para>
<para>
See pkg.h for the actual names of the structure elements.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 xml:id='pkg_impl_notes'><title>Implementation Notes</title>
<para>
At least two implementations of the PKG interface have been done, one based on
TCP/IP connections, the other based on DECnet connections. Future releases of
PKG will be layered on top of a virtual stream library known as NET.
</para>
<para>
The implementation running on 4.2BSD UNIX takes advantage of the "writev"
syscall which can output the header and data in a single syscall/TCP_PUSH
cycle. The advantage of the short data copy is realized only when writev
can not be used, or when a pkg_flush is not required (a la PKG_STREAM).]
</para>
</refsect1>
<refsect1 xml:id='pkg_future_devel'><title>Future Developments</title>
<para>
Further development of the lower levels of the interface will be provided
so that this message passing abstraction can be provided on top of both
DECnet and TCP/IP network layers, with other implementations provided as
required. The program interface layer is to be as described in the body
of this note, the lower layers will interface to the network layers using
whatever subroutine interfaces are most appropriate for the system hosting
the interface. A simple read/write/open/close abstraction may be provided
at a lower layer to further isolate the network layers from the message
handling layer.
</para>
<para>
Where it is necessary to cross network protocol boundaries, message relay
processes will be created to reside on a Janus host that straddles the two
domains. Domain routing and relay point information will be maintained
above the network layer within the extended PKG interface. Clients and
servers will need to determine server host id information from some available
database. Server names must either carry domain information or such
information must be available as part of the server database. Within the
extended PKG interface routing information for domain boundary transits
must be maintained, and appropriate Janus host systems connected to provide
relay services.
</para>
<para>
It is not anticipated that full asynchronous I/O implementation will work
particularly well across domain boundaries, but all other forms of message
transfer should work quite well. As already noted, buffered stream I/O
may be perfectly satisfactory for many applications where full interaction
is not required. Where applicable, this mode of interface is to be
preferred over full asynchronous I/O. Further development of this interface
layer on other protocol families is possible, perhaps even on low level
networks like BITNET and certainly on connection oriented X.25 or OSI
networks.
</para>
</refsect1>
<refsect1 xml:id='author'><title>AUTHOR</title>
<para>Peter B. Shames</para>
</refsect1>
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
<para>
Reports of inaccuracies should be submitted via electronic
mail to <email>devs@brlcad.org</email>
</para>
</refsect1>
</refentry>
+1
View File
@@ -22,6 +22,7 @@ set_target_properties(attr_std_list_xml PROPERTIES FOLDER "DocBook")
set(man5_EN
dsp.xml
${CMAKE_CURRENT_BINARY_DIR}/attributes.xml
benchmark.xml
burst_point_library.xml
burst_shotline_files.xml
bw.xml
File diff suppressed because it is too large Load Diff
+1
View File
@@ -184,6 +184,7 @@ set(mann_EN
rtcheck.xml
saveview.xml
sca.xml
screengrab.xml
search.xml
sed.xml
setview.xml
+10 -6
View File
@@ -18,28 +18,32 @@
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>eac</command>
<arg choice="opt" rep="norepeat">aircodes</arg>
<arg choice="req" rep="norepeat"><replaceable>aircodes</replaceable></arg>
<arg choice="req" rep="norepeat"><replaceable>air_code(s)</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Adds all the regions in the current model that have one of the aircodes in the argument list to the display list so that they will appear on the <emphasis>MGED</emphasis> display. Regions that have nonzero ident numbers will not be listed by this command. The <command>whichair</command> command will perform the same search, but just lists the results.
<para>Adds all the regions in the current model that have any of the
specified aircodes to the display list so that they will appear on
the <emphasis>MGED</emphasis> display. Regions that have nonzero
region identifiers will not be listed by this command. The
<command>whichair</command> command performs a similarsearch, but
just lists the results.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>eac</command> command to draw all regions having particular air codes.
</para>
<example><title>Draw all regions having particular air codes.</title>
<variablelist>
<varlistentry>
<term><prompt>mged&gt;</prompt> <userinput>eac 1 2 3</userinput></term>
<listitem>
<para>Draws all regions with <emphasis>aircodes</emphasis> 1, 2, or 3 in the <emphasis>MGED</emphasis> display.</para>
<para>Draws all regions with
<emphasis>aircodes</emphasis> 1, 2, or 3 in the
<emphasis>MGED</emphasis> display.</para>
</listitem>
</varlistentry>
</variablelist>
+1 -1
View File
@@ -19,7 +19,7 @@
<command>edcomb</command>
<arg choice="req" rep="norepeat"><replaceable>combname</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>regionflag region_id air_code los material_id</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>regionflag regionID airID los% materialID</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
+13 -4
View File
@@ -17,10 +17,19 @@
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>item</command>
<arg choice="req" rep="norepeat"><replaceable>region_name ident_number</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>air_code</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>material_code</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>LOS</replaceable></arg>
<arg choice="req" rep="norepeat"><replaceable>region_name</replaceable></arg>
<arg choice="req" rep="norepeat">
<replaceable>regionID</replaceable>
<arg choice="opt" rep="norepeat">
<replaceable>airID</replaceable>
<arg choice="opt" rep="norepeat">
<replaceable>materialID</replaceable>
<arg choice="opt" rep="norepeat">
<replaceable>los%</replaceable>
</arg>
</arg>
</arg>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
+123 -58
View File
@@ -1,67 +1,132 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="overlay">
<refmeta>
<refentrytitle>OVERLAY</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refmeta>
<refentrytitle>OVERLAY</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>overlay</refname>
<refpurpose>Plots the specified UNIX <emphasis>plot_file</emphasis> in the MGED display.
</refpurpose>
</refnamediv>
<refnamediv xml:id="name">
<refname>overlay</refname>
<refpurpose>
Plots the specified UNIX <emphasis>plot_file</emphasis>
in the MGED display.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>overlay</command>
<arg choice="req" rep="norepeat"><replaceable>plot_file</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>name</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>overlay</command>
<arg choice="opt" rep="norepeat"><replaceable>-s #</replaceable></arg>
<arg choice="req" rep="norepeat"><replaceable>plot_file</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>name</replaceable></arg>
</cmdsynopsis>
<cmdsynopsis sepchar=" ">
<command>overlay -F</command>
<arg choice="opt" rep="norepeat"><replaceable>-i</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>-c</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>-z</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>-X #</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>-Y #</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>-w #</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>-n #</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>-S #</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>--format fmt</replaceable></arg>
<arg choice="req" rep="norepeat"><replaceable>img_file</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Plots the specified UNIX <emphasis>plot_file</emphasis> in the
MGED display. Multiple files may be specified using a pattern match
(e.g., <command>overlay</command> <emphasis>*.plot</emphasis>).
</para>
<para>Phony object names are created for each part of the plot file
that is in a unique color. The names are created by adding a color
to the specified <emphasis>name</emphasis>, or to “_PLOT_OVER”
if no name is provided. The color suffix is built by converting the
RGB color to a six-digit hex number. Each color corresponds to 2 hex
digits, so that white becomes "ffffff," red becomes "ff0000," green
is "00ff00," etc.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>overlay</command> command to plot a specified UNIX plot file in the MGED display.
</para>
<example><title>Plot a UNIX plot file in the MGED display.</title>
<para>
<prompt>mged&gt;</prompt><userinput>overlay plot.upl tmp</userinput>
</para>
<para>Plots the UNIX plot file <emphasis>plot.upl</emphasis> in the MGED display, using <emphasis>tmp</emphasis> as the base for the phony object names.
</para>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to <email>devs@brlcad.org</email>
Plots the specified UNIX <emphasis>plot_file</emphasis> in the current
application display or the specified <emphasis>image file</emphasis> in
the current application embedded framebuffer. When displaying plot
files, multiple files may be specified using a pattern match (e.g.,
<command>overlay</command> <emphasis>*.plot</emphasis>).
</para>
</refsection>
<para>
When displaying plot files, phony object names are created for each
part of the plot file(s) with a unique color. The names are created
by adding a color to the specified <emphasis>name</emphasis>, or to
_PLOT_OVERLAY_ if no name is provided. The color suffix is built by
converting the RGB color to a six-digit hex number. Each color
corresponds to 2 hex digits, so that white becomes "ffffff," red
becomes "ff0000," green is "00ff00," etc.
</para>
<para>
Image files will be display in the currently active framebuffer. Currently
multiple images cannot be specified by a single <command>overlay</command>
command (but as the images would overrwrite each other this feature would
not be terribly useful in any case.) However, mulitiple images can be written
in succession to the same framebuffer using the <option>-X</option> and
<option>-Y</option> offset specification options to offset their positions
for simultaneous display. Alternately, if the user wishes to reset the framebuffer
before drawing the new image the <option>-c</option> option may be specified.
</para>
<para>
The <option>-w</option>, <option>-n</option>, and <option>-S</option> options
are used to specify image size for formats such as PIX that do not encode the
image size in their own data. Similarly, <option>--format</option> may be
used to explicitly specify an image format if the filename does not make the
format clear.
</para>
<para>
By default, images are displayed in the framebuffer using their original size.
If the users wishes to use all available space in the image window to display
an image, the <option>-z</option> may be specified to focus the framebuffer on
the image. The <option>-i</option> option may be used to invert an image's
display in the y (vertical) direction.
</para>
</refsection>
<refsection xml:id="examples">
<title>EXAMPLES</title>
<example>
<title>Plot a UNIX plot file in the MGED display.</title>
<para>
<prompt>mged&gt;</prompt><userinput>overlay plot.upl tmp</userinput>
</para>
<para>
Plots the UNIX plot file <emphasis>plot.upl</emphasis> in the MGED
display, using <emphasis>tmp</emphasis> as the base for the phony
object names.
</para>
</example>
<example>
<title>Plot a PNG file in the MGED framebuffer.</title>
<para>
<prompt>mged&gt;</prompt><userinput>overlay -c -F image.png</userinput>
</para>
<para>
Plots the image file <emphasis>image.png</emphasis> in the MGED
framebuffer, first clearing any pre-existing images in the framebuffer.
</para>
</example>
</refsection>
<refsection xml:id="author">
<title>AUTHOR</title>
<para>
BRL-CAD Team
</para>
</refsection>
<refsection xml:id="bug_reports">
<title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to <email>devs@brlcad.org</email>
</para>
</refsection>
</refentry>
+4 -4
View File
@@ -17,13 +17,13 @@
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>regdef</command>
<arg choice="req" rep="norepeat"><replaceable>item</replaceable></arg>
<arg choice="req" rep="norepeat"><replaceable>regionID</replaceable></arg>
<arg choice="opt" rep="norepeat">
<replaceable>air </replaceable>
<replaceable>airID</replaceable>
<arg choice="opt" rep="norepeat">
<replaceable>los</replaceable>
<replaceable>los%</replaceable>
<arg choice="opt" rep="norepeat">
<replaceable>material_code</replaceable>
<replaceable>materialID</replaceable>
</arg>
</arg>
</arg>
+11 -9
View File
@@ -23,16 +23,17 @@
<arg choice="plain" rep="norepeat"><replaceable>num</replaceable></arg>
</group>
</group>
<arg choice="req" rep="norepeat">assembly</arg>
<arg choice="req" rep="norepeat">comb</arg>
<arg choice="req" rep="norepeat">regionID</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>The 'reid' command sequentially renumbers the 'region_id' attribute
of all regions within a group. Optionally the increment between consecutive
'region_id' can be specified. Once the command is complete, the highest
'region_id' set is reported.</para>
<para>The 'reid' command sequentially assigns the 'region_id'
attribute value for all regions within a specified combination.
Optionally, the increment between consecutive 'region_id' can be
specified. Once the command is complete, the highest 'region_id' set
is reported.</para>
</refsection>
<refsection xml:id="options"><title>OPTIONS</title>
@@ -41,15 +42,16 @@
<term><option>-n num</option></term>
<listitem>
<para>
Increment between consecutive 'region_id'. The default is one.
Increment to use between consecutive region identifiers.
The default is 1.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>assembly</option></term>
<term><option>comb</option></term>
<listitem>
<para>
Group name
Name of the combination to search for regions.
</para>
</listitem>
</varlistentry>
@@ -57,7 +59,7 @@
<term><option>regionID</option></term>
<listitem>
<para>
Renumber start number
Region ID to start re-numbering with.
</para>
</listitem>
</varlistentry>
+73
View File
@@ -0,0 +1,73 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="screengrab">
<refmeta>
<refentrytitle>SCREENGRAB</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>screengrab</refname>
<refpurpose>
Save the current MGED display visual or framebuffer contents to an image file.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>screengrab</command>
<arg choice="opt" rep="norepeat"><replaceable>-F</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>--format fmt</replaceable></arg>
<arg choice="req" rep="norepeat"><replaceable>image_file</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>
Generates an image file containing either the current application display
manager's visual representation of the current scene or (when the
<option>-F</option> option is specified) the contents of the current
application embedded framebuffer.
</para>
<para>
The output format of the image file will be deduced from the filename, but
if the caller wishes to ensure a specific format the <option>--format</option>
may be used.
</para>
</refsection>
<refsection xml:id="examples">
<title>EXAMPLES</title>
<example>
<title>Write a PNG image file of the MGED framebuffer contents.</title>
<para>
<prompt>mged&gt;</prompt><userinput>screengrab -F fb.png</userinput>
</para>
<para>
Writes the contents of the active MGED framebuffer to the image file
<emphasis>fb.png</emphasis>.
</para>
</example>
</refsection>
<refsection xml:id="author">
<title>AUTHOR</title>
<para>
BRL-CAD Team
</para>
</refsection>
<refsection xml:id="bug_reports">
<title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to <email>devs@brlcad.org</email>
</para>
</refsection>
</refentry>
+118 -15
View File
@@ -9,7 +9,7 @@
<refnamediv xml:id="name">
<refname>whichid</refname>
<refpurpose>Lists all the regions that use one of the idents specified.
<refpurpose>Reports information relating to usage of the region_id property on regions.
</refpurpose>
</refnamediv>
@@ -17,32 +17,135 @@
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>whichid</command>
<arg choice="req" rep="norepeat"><replaceable>idents</replaceable></arg>
<arg choice="opt" rep="norepeat"><replaceable>options ...</replaceable></arg>
<arg choice="req" rep="repeat"><replaceable>ident[-ident]</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Lists all the regions that use one of the idents specified.
<para>
Reports information about the usage of the <emphasis>region_id</emphasis> property
by regions in a .g file. Its default mode is to report which regions in a .g file
are using one or a range of region_id values. If a root object is specified, it
will report that result only for the regions in the tree of the root object.
</para>
If the <option>U</option> is specified, the reporting is inverted and the command
will report the ranges of <emphasis>unused</emphasis> ids rather than the regions
using various ids.
</para>
</refsection>
<refsection xml:id="search_options"><title>OPTIONS</title>
<variablelist remap="TP">
<varlistentry>
<term><emphasis remap="B" role="bold">-U</emphasis></term>
<listitem>
<para>
Report unused id ranges.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">--root objname</emphasis></term>
<listitem>
<para>
Limit reporting to regions in the CSG tree below <emphasis>objname</emphasis>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>whichid</command> command to list all the regions that use one of the specified idents.
</para>
<para>
For these examples the geometry file used is the standard <emphasis>ktank.g</emphasis>
included with BRL-CAD.
</para>
<example><title>List all regions having the specified idents.</title>
<example>
<title>Report all regions using region ids between 4000 and 7000.</title>
<para>
<prompt>mged&gt;</prompt><userinput>whichid 4000-7000</userinput>
<literallayout class="normal">
Region[s] with ident 4001:
r23
r25
Region[s] with ident 4050:
r24
r26
Region[s] with ident 6001:
r210
Region[s] with ident 6002:
r212
</literallayout>
</para>
</example>
<para>
<prompt>mged&gt;</prompt><userinput>whichid 1002 1003</userinput>
</para>
<para>Lists all regions having idents of 1002 or 1003.
</para>
</example>
<example>
<title>Report all regions using region ids between 1000-2000 and 4000-5000.</title>
<para>
<prompt>mged&gt;</prompt><userinput>whichid 1000-2000 4000-5000</userinput>
<literallayout class="normal">
Region[s] with ident 1010:
r213
Region[s] with ident 1011:
r214
Region[s] with ident 4001:
r23
r25
Region[s] with ident 4050:
r24
r26
</literallayout>
</para>
</example>
<example>
<title>Report all regions using region ids between 1000-2000 and 4000-5000, limiting
results to regions in the <emphasis>tank</emphasis> geomtry tree.</title>
<para>
<prompt>mged&gt;</prompt><userinput>whichid --root tank 1000-2000 4000-5000</userinput>
<literallayout class="normal">
Region[s] with ident 4001:
r23
r25
Region[s] with ident 4050:
r24
r26
</literallayout>
</para>
</example>
<example>
<title>Report all unused region_id ranges in the database between 1 and 1000.</title>
<para>
<prompt>mged&gt;</prompt><userinput>whichid -U 1-1000</userinput>
<literallayout class="normal">
Unused idents:
1
4
6-99
105-109
112-114
116-119
122-159
161-164
166-204
210-224
226-504
519-609
620-719
730-829
840-939
950-1000
</literallayout>
</para>
</example>
</refsection>
-1181
View File
File diff suppressed because it is too large Load Diff
-5
View File
@@ -71,7 +71,6 @@ set(manuals_mged_HTML
manuals/mged/brlcad_solids.html
manuals/mged/build_def_index.sh
manuals/mged/cmd_line_ed.html
manuals/mged/concl.html
manuals/mged/contents.html
manuals/mged/coord-axes.gif
manuals/mged/cup.g
@@ -95,7 +94,6 @@ set(manuals_mged_HTML
manuals/mged/handle.jpg
manuals/mged/index.html
manuals/mged/mged.html
manuals/mged/mged1.html
manuals/mged/mged2.html
manuals/mged/mged3.html
manuals/mged/mged_callbacks.html
@@ -110,8 +108,6 @@ set(manuals_mged_HTML
manuals/mged/mug_camo.jpg
manuals/mged/mug_green.gif
manuals/mged/mug_green.jpg
manuals/mged/notes.html
manuals/mged/outline
manuals/mged/peewee.gif
manuals/mged/peewee.jpg
manuals/mged/preface.html
@@ -119,7 +115,6 @@ set(manuals_mged_HTML
manuals/mged/rim.gif
manuals/mged/rim.jpg
manuals/mged/shaders.html
manuals/mged/skipped
manuals/mged/tex-html.tcl
)
ADD_DOC(manuals_mged_HTML html/manuals/mged)
File diff suppressed because it is too large Load Diff
+222 -214
View File
@@ -1,214 +1,222 @@
<HTML>
<HEAD>
<TITLE>BRL&#173CAD Primitive Solids </Title>
</HEAD>
<BODY BGCOLOR="#E0D8c8" Text="#000000">
<H1>BRL&#173CAD Primitive Solids</H1>
<HR>
<DT><a NAME="ARB"><B>ARB</B></DT>
<DD>The <I>ARB</I> is a planar-faced convex solid with between four and eight unique vertices. The specific type of <I>ARB</I> is often referred
to by adding the number of unique vertices to the word <I>ARB</I>. For example, an <I>ARB8</I>
is the usual solid block, an <I>ARB4</I> is a tetrahedron, and an <I>ARB6</I>
may be a wedge shape.
</DD>
<HR>
<DT><a NAME="ARS"><B>arbitrary faceted solid</B></DT>
<DD>The <I>arbitrary faceted solid</I> (Also referred to as <I>ARS</I>)
is a planar-faced solid defined by any number of curves (more precisely closed polylines). These curves are typically
planar <I>waterline</I> or <I>station</I> curves, but they are not restricted to
being planar. Each curve in a particular <I>ARS</I> must have the same number of points.
The first and last curves are normally degenerate,
each consisting of repetitions of
a single point to make up the correct number of points for a curve. Faces are built
by connecting corresponding points on adjacent curves. Since the curves are assumed to be closed,
the last point on any curve is implicitly connected to the first point on the same curve
</DD>
<HR>
<DT><a NAME="ARBN"><B>ARBN</B></DT>
<DD>The <I>ARBN</I> is a planar faced convex solid defined by any number of
bounding planes.
</DD>
<HR>
<DT><a NAME="BOT"><B>BOT</B></DT>
<DD>The <I>BOT</I> solid is a collection of triangular facets. It may represent a zero thickness surface,
a finite thickness plate, or a solid volume bounded by the triangles. The surface normal for each triangle may be
unoriented, oriented according to the right-hand rule, or oriented according to the left-hand rule.
</DD>
<HR>
<DT><a NAME="ELL"><B>ellipsoid</B></DT>
<DD>The <I>ellipsoid</I> is a solid defined by three
mutually perpendicular semi&#173axes. When the axes are
of unequal length, an ellipsoid is generated. When the axes
are all the same length, a sphere is generated.
</DD>
<HR>
<DT><a NAME="EHY"><B>elliptical hyperboloid</B></DT>
<DD>The <I>elliptical hyperboloid</I> (also referred to as <I>EHY</I>)
is a solid with an elliptical base the remainder of the surface of which
is defined by hyperbolas that run from any point on the ellipse through
a common vertex at a specified distance from the ellipse and back to the ellipse
at the point diametrically opposite the starting point.
Further control of the surface may be obtained
by specifying the distance from the hyperbolas to the vertex of the asymptotes.
</DD>
<HR>
<DT><a NAME="EPA"><B>elliptical paraboloid</B></DT>
<DD>The <I>elliptical paraboloid</I> (also referred to as <I>EPA</I>)
is a solid with an elliptical base the remainder of the surface of which
is defined by parabolas that run from any point on the ellipse through
a common vertex at a specified distance from the ellipse and back to the ellipse
at a point diametrically opposite the starting point.
</DD>
<HR>
<DT><a NAME="ETO"><B>elliptical torus</B></DT>
<DD>The <I>Elliptical Torus</I> (Also referred to as <I>ETO</I>)
is defined by sweeping an ellipse through a circular path. The plane of the ellipse
and the plane of the circular path are mutually perpendicular.
</DD>
<HR>
<DT><a NAME="EBM"><B>extruded bitmap</B></DT>
<DD>The <I>extruded bitmap</I> (also referred to as <I>EBM</I>)
is a solid based on a greyscale bitmap. The bitmap is an array of unsigned char values,
see bw(5), and is extruded by some distance. The <I>EBM</I> solid requires
the dimensions of the bitmap file (height and width in bytes), an extrusion length,
and a transformation matrix to position the <I>EBM</I>. Each byte in the
bitmap file is treated as the base of a cell that is extruded by the specified
extrusion length. If the value of the byte is non&#173zero, then that cell is considered solid.
</DD>
<HR>
<DT><a NAME="HAF"><B>half space</B></DT>
<DD>A <I>half space</I> is the portion of space on one side of a plane.
It is represented by its boundary (the plane) and its outward-pointing normal vector.
</DD>
<HR>
<DT><a NAME="HF"><B>height field</B></DT>
<DD>The <I>height field</I> is a solid defined by a series of height measurements on
a regular grid. In addition to a file of height measurements, this solid also requires
a location vector, width and height direction vectors, and some scale factors.
</DD>
<HR>
<DT><a NAME="NMG"><B><I>n</I>&#173manifold geometry</B></DT> (also referred to as <I>NMG</I>)
<DD>The <I>n&#173manifold geometry</I> solid,
sometimes known as a <I>non&#173manifold geometry</I>,
is based on the description by
Kevin Weiler in ``The Radial Edge Structure: A Topological Representation
for Non&#173Manifold Geometric Modeling'' from <I>Geometric Modeling for CAD Applications</I>
(Springer Verlag, 1987).
A useful reference for the <I>NMG</I> solid
is
<a href="http://ftp.arl.army.mil/~mike/papers/90nmg"><I>Combinatorial
Solid Geometry, Boundary Representations, and Non_Manifold Geometry</I></a>.
</DD>
<HR>
<DT><a NAME="PART"><B>particle</B></DT>
<DD>The <I>particle</I> solid is a lozenge-shaped object defined by
a vertex, a height vector and radii at both ends. The body of the <I>particle</I>
is either a cylinder or a truncated cone, depending on the values of the radii.
Each end of the <I>particle</I> is a hemisphere of the specified radius.
</DD>
<HR>
<DT><a NAME="PIPE"><B>pipe</B></DT>
<DD>The <I>pipe</I> solid is defined by a sequence of control points, each
with values for inner radius, outer radius, and bend radius. The actual <I>pipe</I>
starts at the first control point and ends at the last control point.
The intervening control points are replaced by circular bends with the
specified bend radius, so the <I>pipe</I> is not likely to actually pass through
these points. An inner radius of zero indicates a solid <I>pipe</I> or wire.
</DD>
<HR>
<DT><a NAME="PG"><B>polysolid</B></DT>
<DD>The <I>polysolid</I> is defined by a set of planar polygons. Each polygon
may have up to 5 unique vertices. The vertices of each polygon must be in
counter&#173clockwise order when viewed from outside the solid. The set of polygons
must completely enclose the interior of the <I>polysolid</I>.
</DD>
<HR>
<DT><a NAME="RHC"><B>right hyperbolic cylinder</B></DT>
<DD>The <I>right hyperbolic cylinder</I> (also referred to as <I>RHC</I>)
is a solid built by extruding a truncated hyperbola through a height vector.
</DD>
<HR>
<DT><a NAME="RPC"><B>right parabolic cylinder</B></DT>
<DD>The <I>right parabolic cylinder</I> (also referred to as <I>RPC</I>)
is a solid built by extruding a truncated parabola through a height vector.
</DD>
<HR>
<DT><a NAME="SPLINE"><B>spline</B></DT>
<DD>The <I>spline</I> solid is defined by a set of non&#173uniform rational
<I>B</I>&#173spline surfaces (NURBs). There are no trimming curves in the <I>spline</I>
solid, so each NURB surface must exactly adjoin its neighbor so that the
interior of the <I>spline</I> solid is completely enclosed and no parts of any NURB
surface are dangling outside the solid.
</DD>
<HR>
<DT><a NAME="TOR"><B>torus</B></DT>
<DD>The <I>torus</I> is defined by sweeping one circle through a larger circular path.
The planes of the circles are mutually perpendicular.
</DD>
<HR>
<DT><a NAME="TGC"><B>truncated general cone</B></DT> (also referred to as <I>TGC</I>)
<DD>The <I>TGC</I> solid is a truncated cone with elliptical (or circular) base and top.
The base and top must be parallel, but the height vector connecting the center of
the base with the center of the top does not need to be perpendicular to them.
</DD>
<HR>
<DT><a NAME="VOL"><B>vol</B></DT>
<DD>The <I>vol</I> solid is defined by a 3-dimensional array of unsigned char values.
The solid requires a file of these values, the extent of the file (in bytes) in each dimension, the
size of each cell, and high and low thresholds. Any value in the file that is between the
thresholds (inclusive) represents a solid cell.
</DD>
<HR>
</BODY>
</HTML>
<!DOCTYPE html>
<html>
<head>
<title>BRL­CAD Primitive Solids</title>
<style type="text/css">
body {
background-color: #E0D8C8;
color: #000000;
}
a.c2 {font-style: italic}
a.c1 {font-weight: bold}
</style>
</head>
<body>
<h1>BRL­CAD Primitive Solids</h1>
<hr>
<dt>
<a class="c1" name="ARB" id="ARB">ARB</a>
</dt>
<dd>The <i>ARB</i> is a planar-faced convex solid with between
four and eight unique vertices. The specific type of <i>ARB</i>
is often referred to by adding the number of unique vertices to
the word <i>ARB</i>. For example, an <i>ARB8</i> is the usual
solid block, an <i>ARB4</i> is a tetrahedron, and an <i>ARB6</i>
may be a wedge shape.</dd>
<hr>
<dt>
<a class="c1" name="ARS" id="ARS">arbitrary faceted solid</a>
</dt>
<dd>The <i>arbitrary faceted solid</i> (Also referred to as
<i>ARS</i>) is a planar-faced solid defined by any number of
curves (more precisely closed polylines). These curves are
typically planar <i>waterline</i> or <i>station</i> curves, but
they are not restricted to being planar. Each curve in a
particular <i>ARS</i> must have the same number of points. The
first and last curves are normally degenerate, each consisting of
repetitions of a single point to make up the correct number of
points for a curve. Faces are built by connecting corresponding
points on adjacent curves. Since the curves are assumed to be
closed, the last point on any curve is implicitly connected to
the first point on the same curve</dd>
<hr>
<dt>
<a class="c1" name="ARBN" id="ARBN">ARBN</a>
</dt>
<dd>The <i>ARBN</i> is a planar faced convex solid defined by any
number of bounding planes.</dd>
<hr>
<dt>
<a class="c1" name="BOT" id="BOT">BOT</a>
</dt>
<dd>The <i>BOT</i> solid is a collection of triangular facets. It
may represent a zero thickness surface, a finite thickness plate,
or a solid volume bounded by the triangles. The surface normal
for each triangle may be unoriented, oriented according to the
right-hand rule, or oriented according to the left-hand
rule.</dd>
<hr>
<dt>
<a class="c1" name="ELL" id="ELL">ellipsoid</a>
</dt>
<dd>The <i>ellipsoid</i> is a solid defined by three mutually
perpendicular semi­axes. When the axes are of unequal length, an
ellipsoid is generated. When the axes are all the same length, a
sphere is generated.</dd>
<hr>
<dt>
<a class="c1" name="EHY" id="EHY">elliptical hyperboloid</a>
</dt>
<dd>The <i>elliptical hyperboloid</i> (also referred to as
<i>EHY</i>) is a solid with an elliptical base the remainder of
the surface of which is defined by hyperbolas that run from any
point on the ellipse through a common vertex at a specified
distance from the ellipse and back to the ellipse at the point
diametrically opposite the starting point. Further control of the
surface may be obtained by specifying the distance from the
hyperbolas to the vertex of the asymptotes.</dd>
<hr>
<dt>
<a class="c1" name="EPA" id="EPA">elliptical paraboloid</a>
</dt>
<dd>The <i>elliptical paraboloid</i> (also referred to as
<i>EPA</i>) is a solid with an elliptical base the remainder of
the surface of which is defined by parabolas that run from any
point on the ellipse through a common vertex at a specified
distance from the ellipse and back to the ellipse at a point
diametrically opposite the starting point.</dd>
<hr>
<dt>
<a class="c1" name="ETO" id="ETO">elliptical torus</a>
</dt>
<dd>The <i>Elliptical Torus</i> (Also referred to as <i>ETO</i>)
is defined by sweeping an ellipse through a circular path. The
plane of the ellipse and the plane of the circular path are
mutually perpendicular.</dd>
<hr>
<dt>
<a class="c1" name="EBM" id="EBM">extruded bitmap</a>
</dt>
<dd>The <i>extruded bitmap</i> (also referred to as <i>EBM</i>)
is a solid based on a greyscale bitmap. The bitmap is an array of
unsigned char values, see bw(5), and is extruded by some
distance. The <i>EBM</i> solid requires the dimensions of the
bitmap file (height and width in bytes), an extrusion length, and
a transformation matrix to position the <i>EBM</i>. Each byte in
the bitmap file is treated as the base of a cell that is extruded
by the specified extrusion length. If the value of the byte is
non­zero, then that cell is considered solid.</dd>
<hr>
<dt>
<a class="c1" name="HAF" id="HAF">half space</a>
</dt>
<dd>A <i>half space</i> is the portion of space on one side of a
plane. It is represented by its boundary (the plane) and its
outward-pointing normal vector.</dd>
<hr>
<dt>
<a class="c1" name="HF" id="HF">height field</a>
</dt>
<dd>The <i>height field</i> is a solid defined by a series of
height measurements on a regular grid. In addition to a file of
height measurements, this solid also requires a location vector,
width and height direction vectors, and some scale factors.</dd>
<hr>
<dt>
<a class="c1" name="NMG" id="NMG"><i>n</i>­manifold
geometry</a>
</dt>(also referred to as <i>NMG</i>)
<dd>
The <i>n­manifold geometry</i> solid, sometimes known as a
<i>non­manifold geometry</i>, is based on the description by
Kevin Weiler in ``The Radial Edge Structure: A Topological
Representation for Non­Manifold Geometric Modeling'' from
<i>Geometric Modeling for CAD Applications</i> (Springer
Verlag, 1987). A useful reference for the <i>NMG</i> solid is
<a class="c2" href=
"http://ftp.arl.army.mil/~mike/papers/90nmg">Combinatorial
Solid Geometry, Boundary Representations, and Non_Manifold
Geometry</a>.
</dd>
<hr>
<dt>
<a class="c1" name="PART" id="PART">particle</a>
</dt>
<dd>The <i>particle</i> solid is a lozenge-shaped object defined
by a vertex, a height vector and radii at both ends. The body of
the <i>particle</i> is either a cylinder or a truncated cone,
depending on the values of the radii. Each end of the
<i>particle</i> is a hemisphere of the specified radius.</dd>
<hr>
<dt>
<a class="c1" name="PIPE" id="PIPE">pipe</a>
</dt>
<dd>The <i>pipe</i> solid is defined by a sequence of control
points, each with values for inner radius, outer radius, and bend
radius. The actual <i>pipe</i> starts at the first control point
and ends at the last control point. The intervening control
points are replaced by circular bends with the specified bend
radius, so the <i>pipe</i> is not likely to actually pass through
these points. An inner radius of zero indicates a solid
<i>pipe</i> or wire.</dd>
<hr>
<dt>
<a class="c1" name="PG" id="PG">polysolid</a>
</dt>
<dd>The <i>polysolid</i> is defined by a set of planar polygons.
Each polygon may have up to 5 unique vertices. The vertices of
each polygon must be in counter­clockwise order when viewed from
outside the solid. The set of polygons must completely enclose
the interior of the <i>polysolid</i>.</dd>
<hr>
<dt>
<a class="c1" name="RHC" id="RHC">right hyperbolic cylinder</a>
</dt>
<dd>The <i>right hyperbolic cylinder</i> (also referred to as
<i>RHC</i>) is a solid built by extruding a truncated hyperbola
through a height vector.</dd>
<hr>
<dt>
<a class="c1" name="RPC" id="RPC">right parabolic cylinder</a>
</dt>
<dd>The <i>right parabolic cylinder</i> (also referred to as
<i>RPC</i>) is a solid built by extruding a truncated parabola
through a height vector.</dd>
<hr>
<dt>
<a class="c1" name="SPLINE" id="SPLINE">spline</a>
</dt>
<dd>The <i>spline</i> solid is defined by a set of non­uniform
rational <i>B</i>­spline surfaces (NURBs). There are no trimming
curves in the <i>spline</i> solid, so each NURB surface must
exactly adjoin its neighbor so that the interior of the
<i>spline</i> solid is completely enclosed and no parts of any
NURB surface are dangling outside the solid.</dd>
<hr>
<dt>
<a class="c1" name="TOR" id="TOR">torus</a>
</dt>
<dd>The <i>torus</i> is defined by sweeping one circle through a
larger circular path. The planes of the circles are mutually
perpendicular.</dd>
<hr>
<dt>
<a class="c1" name="TGC" id="TGC">truncated general cone</a>
</dt>(also referred to as <i>TGC</i>)
<dd>The <i>TGC</i> solid is a truncated cone with elliptical (or
circular) base and top. The base and top must be parallel, but
the height vector connecting the center of the base with the
center of the top does not need to be perpendicular to them.</dd>
<hr>
<dt>
<a class="c1" name="VOL" id="VOL">vol</a>
</dt>
<dd>The <i>vol</i> solid is defined by a 3-dimensional array of
unsigned char values. The solid requires a file of these values,
the extent of the file (in bytes) in each dimension, the size of
each cell, and high and low thresholds. Any value in the file
that is between the thresholds (inclusive) represents a solid
cell.</dd>
<hr>
</body>
</html>
+352 -117
View File
@@ -1,120 +1,355 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<title>Command Line Editing</title>
</HEAD>
<BODY BGCOLOR="#E0D8c8" TEXT="#000000">
<html>
<head>
<title>Command Line Editing</title>
<style type="text/css">
body {
background-color: #E0D8C8;
color: #000000;
}
div.c1 {text-align: center}
</style>
</head>
<body>
<div class="c1">
<h2>Command Line Editing</h2>
</div><a name="emacs"></a>
<div class="c1">
<h3>Emacs Bindings</h3>
</div>
<table>
<tr>
<th align="left">Key Sequence</th>
<th align="left">Function</th>
</tr>
<tr>
<td align="left">BackSpace</td>
<td align="left">backward delete character</td>
</tr>
<tr>
<td align="left">Delete</td>
<td align="left">backward delete character</td>
</tr>
<tr>
<td align="left">Left</td>
<td align="left">backward character</td>
</tr>
<tr>
<td align="left">Right</td>
<td align="left">forward character</td>
</tr>
<tr>
<td align="left">Up</td>
<td align="left">previous command</td>
</tr>
<tr>
<td align="left">Down</td>
<td align="left">next command</td>
</tr>
<tr>
<td align="left">Home</td>
<td align="left">beginning of line</td>
</tr>
<tr>
<td align="left">End</td>
<td align="left">end of line</td>
</tr>
<tr>
<td align="left">C-a</td>
<td align="left">move to beginning of line</td>
</tr>
<tr>
<td align="left">C-b</td>
<td align="left">move back one character</td>
</tr>
<tr>
<td align="left">C-c</td>
<td align="left">interrupt</td>
</tr>
<tr>
<td align="left">C-d</td>
<td align="left">delete character at cursor</td>
</tr>
<tr>
<td align="left">C-e</td>
<td align="left">move to end of line</td>
</tr>
<tr>
<td align="left">C-f</td>
<td align="left">move forward one character</td>
</tr>
<tr>
<td align="left">C-h</td>
<td align="left">backward delete character</td>
</tr>
<tr>
<td align="left">C-k</td>
<td align="left">delete to end of line</td>
</tr>
<tr>
<td align="left">C-n</td>
<td align="left">next history command</td>
</tr>
<tr>
<td align="left">C-p</td>
<td align="left">previous history command</td>
</tr>
<tr>
<td align="left">C-t</td>
<td align="left">transpose characters</td>
</tr>
<tr>
<td align="left">C-u</td>
<td align="left">delete whole line</td>
</tr>
<tr>
<td align="left">C-w</td>
<td align="left">backward delete word</td>
</tr>
</table><br>
<hr>
<br>
<a name="vi"></a>
<div class="c1">
<h3>VI Bindings</h3>
</div>
<table>
<caption>
<strong>Insert and Command Mode</strong>
</caption>
<tr>
<th align="left">Key Sequence</th>
<th align="left">Function</th>
</tr>
<tr>
<td align="left">Delete</td>
<td align="left">backward delete character</td>
</tr>
<tr>
<td align="left">Up</td>
<td align="left">previous command</td>
</tr>
<tr>
<td align="left">Down</td>
<td align="left">next command</td>
</tr>
<tr>
<td align="left">Home</td>
<td align="left">beginning of line</td>
</tr>
<tr>
<td align="left">End</td>
<td align="left">end of line</td>
</tr>
<tr>
<td align="left">Control-a</td>
<td align="left">beginning of line</td>
</tr>
<tr>
<td align="left">Control-b</td>
<td align="left">backward character</td>
</tr>
<tr>
<td align="left">Control-c</td>
<td align="left">interrupt command</td>
</tr>
<tr>
<td align="left">Control-e</td>
<td align="left">end of line</td>
</tr>
<tr>
<td align="left">Control-f</td>
<td align="left">forward character</td>
</tr>
<tr>
<td align="left">Control-h</td>
<td align="left">backward delete character</td>
</tr>
<tr>
<td align="left">Control-k</td>
<td align="left">delete end of line</td>
</tr>
<tr>
<td align="left">Control-n</td>
<td align="left">next command</td>
</tr>
<tr>
<td align="left">Control-p</td>
<td align="left">previous command</td>
</tr>
<tr>
<td align="left">Control-t</td>
<td align="left">transpose</td>
</tr>
<tr>
<td align="left">Control-u</td>
<td align="left">delete to beginning of line</td>
</tr>
<tr>
<td align="left">Control-w</td>
<td align="left">backward delete word</td>
</tr>
</table>
<pre>
<CENTER><H2>Command Line Editing</H2></CENTER>
</pre>
<table>
<caption>
<strong>Insert Mode</strong>
</caption>
<tr>
<th align="left">Key Sequence</th>
<th align="left">Function</th>
</tr>
<tr>
<td align="left">Escape</td>
<td align="left">command</td>
</tr>
<tr>
<td align="left">Left</td>
<td align="left">backward character, command</td>
</tr>
<tr>
<td align="left">Right</td>
<td align="left">forward character, command</td>
</tr>
<tr>
<td align="left">BackSpace</td>
<td align="left">backward delete character</td>
</tr>
</table>
<pre>
<A NAME="emacs">
<CENTER><H3>Emacs Bindings</H3></CENTER>
<TABLE>
<TR><TH ALIGN=LEFT>Key Sequence</TH><TH ALIGN=LEFT>Function</TH>
<TR><TD ALIGN=LEFT>BackSpace</TD><TD ALIGN=LEFT>backward delete character</TD>
<TR><TD ALIGN=LEFT>Delete</TD><TD ALIGN=LEFT>backward delete character</TD>
<TR><TD ALIGN=LEFT>Left</TD><TD ALIGN=LEFT>backward character</TD>
<TR><TD ALIGN=LEFT>Right</TD><TD ALIGN=LEFT>forward character</TD>
<TR><TD ALIGN=LEFT>Up</TD><TD ALIGN=LEFT>previous command</TD>
<TR><TD ALIGN=LEFT>Down</TD><TD ALIGN=LEFT>next command</TD>
<TR><TD ALIGN=LEFT>Home</TD><TD ALIGN=LEFT>beginning of line</TD>
<TR><TD ALIGN=LEFT>End</TD><TD ALIGN=LEFT>end of line</TD>
<TR><TD ALIGN=LEFT>C-a</TD><TD ALIGN=LEFT>move to beginning of line</TD>
<TR><TD ALIGN=LEFT>C-b</TD><TD ALIGN=LEFT>move back one character</TD>
<TR><TD ALIGN=LEFT>C-c</TD><TD ALIGN=LEFT>interrupt</TD>
<TR><TD ALIGN=LEFT>C-d</TD><TD ALIGN=LEFT>delete character at cursor</TD>
<TR><TD ALIGN=LEFT>C-e</TD><TD ALIGN=LEFT>move to end of line</TD>
<TR><TD ALIGN=LEFT>C-f</TD><TD ALIGN=LEFT>move forward one character</TD>
<TR><TD ALIGN=LEFT>C-h</TD><TD ALIGN=LEFT>backward delete character</TD>
<TR><TD ALIGN=LEFT>C-k</TD><TD ALIGN=LEFT>delete to end of line</TD>
<TR><TD ALIGN=LEFT>C-n</TD><TD ALIGN=LEFT>next history command</TD>
<TR><TD ALIGN=LEFT>C-p</TD><TD ALIGN=LEFT>previous history command</TD>
<TR><TD ALIGN=LEFT>C-t</TD><TD ALIGN=LEFT>transpose characters</TD>
<TR><TD ALIGN=LEFT>C-u</TD><TD ALIGN=LEFT>delete whole line</TD>
<TR><TD ALIGN=LEFT>C-w</TD><TD ALIGN=LEFT>backward delete word</TD>
</TABLE>
<BR>
<HR>
<BR>
<A NAME="vi">
<CENTER><H3>VI Bindings</H3></CENTER>
<TABLE>
<CAPTION><STRONG>Insert and Command Mode</STRONG></CAPTION>
<TR><TH ALIGN=LEFT>Key Sequence</TH><TH ALIGN=LEFT>Function</TH>
<TR><TD ALIGN=LEFT>Delete</TD><TD ALIGN=LEFT>backward delete character</TD>
<TR><TD ALIGN=LEFT>Up</TD><TD ALIGN=LEFT>previous command</TD>
<TR><TD ALIGN=LEFT>Down</TD><TD ALIGN=LEFT>next command</TD>
<TR><TD ALIGN=LEFT>Home</TD><TD ALIGN=LEFT>beginning of line</TD>
<TR><TD ALIGN=LEFT>End</TD><TD ALIGN=LEFT>end of line</TD>
<TR><TD ALIGN=LEFT>Control-a</TD><TD ALIGN=LEFT>beginning of line</TD>
<TR><TD ALIGN=LEFT>Control-b</TD><TD ALIGN=LEFT>backward character</TD>
<TR><TD ALIGN=LEFT>Control-c</TD><TD ALIGN=LEFT>interrupt command</TD>
<TR><TD ALIGN=LEFT>Control-e</TD><TD ALIGN=LEFT>end of line</TD>
<TR><TD ALIGN=LEFT>Control-f</TD><TD ALIGN=LEFT>forward character</TD>
<TR><TD ALIGN=LEFT>Control-h</TD><TD ALIGN=LEFT>backward delete character</TD>
<TR><TD ALIGN=LEFT>Control-k</TD><TD ALIGN=LEFT>delete end of line</TD>
<TR><TD ALIGN=LEFT>Control-n</TD><TD ALIGN=LEFT>next command</TD>
<TR><TD ALIGN=LEFT>Control-p</TD><TD ALIGN=LEFT>previous command</TD>
<TR><TD ALIGN=LEFT>Control-t</TD><TD ALIGN=LEFT>transpose</TD>
<TR><TD ALIGN=LEFT>Control-u</TD><TD ALIGN=LEFT>delete to beginning of line</TD>
<TR><TD ALIGN=LEFT>Control-w</TD><TD ALIGN=LEFT>backward delete word</TD>
</TABLE>
<PRE>
</PRE>
<TABLE>
<CAPTION><STRONG>Insert Mode</STRONG></CAPTION>
<TR><TH ALIGN=LEFT>Key Sequence</TH><TH ALIGN=LEFT>Function</TH>
<TR><TD ALIGN=LEFT>Escape</TD><TD ALIGN=LEFT>command</TD>
<TR><TD ALIGN=LEFT>Left</TD><TD ALIGN=LEFT>backward character, command</TD>
<TR><TD ALIGN=LEFT>Right</TD><TD ALIGN=LEFT>forward character, command</TD>
<TR><TD ALIGN=LEFT>BackSpace</TD><TD ALIGN=LEFT>backward delete character</TD>
</TABLE>
<PRE>
</PRE>
<TABLE>
<CAPTION><STRONG>Command Mode</STRONG></CAPTION>
<CENTER>
<TR><TH ALIGN=LEFT>Key Sequence</TH><TH ALIGN=LEFT>Function</TH>
<TR><TD ALIGN=LEFT>Left</TD><TD ALIGN=LEFT>backward character</TD>
<TR><TD ALIGN=LEFT>Right</TD><TD ALIGN=LEFT>forward character</TD>
<TR><TD ALIGN=LEFT>BackSpace</TD><TD ALIGN=LEFT>backward character</TD>
<TR><TD ALIGN=LEFT>Space</TD><TD ALIGN=LEFT>forward character</TD>
<TR><TD ALIGN=LEFT>A</TD><TD ALIGN=LEFT>end of line, insert (i.e. append to end of line)</TD>
<TR><TD ALIGN=LEFT>C</TD><TD ALIGN=LEFT>delete to end of line, insert</TD>
<TR><TD ALIGN=LEFT>D</TD><TD ALIGN=LEFT>delete to end of line</TD>
<TR><TD ALIGN=LEFT>F</TD><TD ALIGN=LEFT>search backward character</TD>
<TR><TD ALIGN=LEFT>I</TD><TD ALIGN=LEFT>beginning of line, insert</TD>
<TR><TD ALIGN=LEFT>R</TD><TD ALIGN=LEFT>overwrite</TD>
<TR><TD ALIGN=LEFT>X</TD><TD ALIGN=LEFT>backward delete character</TD>
<TR><TD ALIGN=LEFT>0</TD><TD ALIGN=LEFT>beginning of line</TD>
<TR><TD ALIGN=LEFT>$</TD><TD ALIGN=LEFT>end of line</TD>
<TR><TD ALIGN=LEFT>;</TD><TD ALIGN=LEFT>continue search in same direction</TD>
<TR><TD ALIGN=LEFT>,</TD><TD ALIGN=LEFT>continue search in opposite direction</TD>
<TR><TD ALIGN=LEFT>a</TD><TD ALIGN=LEFT>forward character, insert (i.e. append)</TD>
<TR><TD ALIGN=LEFT>b</TD><TD ALIGN=LEFT>backward word</TD>
<TR><TD ALIGN=LEFT>c</TD><TD ALIGN=LEFT>change</TD>
<TR><TD ALIGN=LEFT>d</TD><TD ALIGN=LEFT>delete</TD>
<TR><TD ALIGN=LEFT>e</TD><TD ALIGN=LEFT>end of word</TD>
<TR><TD ALIGN=LEFT>f</TD><TD ALIGN=LEFT>search forward character</TD>
<TR><TD ALIGN=LEFT>h</TD><TD ALIGN=LEFT>backward character</TD>
<TR><TD ALIGN=LEFT>i</TD><TD ALIGN=LEFT>insert</TD>
<TR><TD ALIGN=LEFT>j</TD><TD ALIGN=LEFT>next command</TD>
<TR><TD ALIGN=LEFT>k</TD><TD ALIGN=LEFT>previous command</TD>
<TR><TD ALIGN=LEFT>l</TD><TD ALIGN=LEFT>forward character</TD>
<TR><TD ALIGN=LEFT>r</TD><TD ALIGN=LEFT>replace character</TD>
<TR><TD ALIGN=LEFT>s</TD><TD ALIGN=LEFT>delete character, insert</TD>
<TR><TD ALIGN=LEFT>w</TD><TD ALIGN=LEFT>forward word</TD>
<TR><TD ALIGN=LEFT>x</TD><TD ALIGN=LEFT>delete character</TD>
</CENTER>
</TABLE>
</BODY>
</HTML>
</pre>
<table>
<caption>
<strong>Command Mode</strong>
</caption>
<tr>
<th align="left">Key Sequence</th>
<th align="left">Function</th>
</tr>
<tr>
<td align="left">Left</td>
<td align="left">backward character</td>
</tr>
<tr>
<td align="left">Right</td>
<td align="left">forward character</td>
</tr>
<tr>
<td align="left">BackSpace</td>
<td align="left">backward character</td>
</tr>
<tr>
<td align="left">Space</td>
<td align="left">forward character</td>
</tr>
<tr>
<td align="left">A</td>
<td align="left">end of line, insert (i.e. append to end of
line)</td>
</tr>
<tr>
<td align="left">C</td>
<td align="left">delete to end of line, insert</td>
</tr>
<tr>
<td align="left">D</td>
<td align="left">delete to end of line</td>
</tr>
<tr>
<td align="left">F</td>
<td align="left">search backward character</td>
</tr>
<tr>
<td align="left">I</td>
<td align="left">beginning of line, insert</td>
</tr>
<tr>
<td align="left">R</td>
<td align="left">overwrite</td>
</tr>
<tr>
<td align="left">X</td>
<td align="left">backward delete character</td>
</tr>
<tr>
<td align="left">0</td>
<td align="left">beginning of line</td>
</tr>
<tr>
<td align="left">$</td>
<td align="left">end of line</td>
</tr>
<tr>
<td align="left">;</td>
<td align="left">continue search in same direction</td>
</tr>
<tr>
<td align="left">,</td>
<td align="left">continue search in opposite direction</td>
</tr>
<tr>
<td align="left">a</td>
<td align="left">forward character, insert (i.e. append)</td>
</tr>
<tr>
<td align="left">b</td>
<td align="left">backward word</td>
</tr>
<tr>
<td align="left">c</td>
<td align="left">change</td>
</tr>
<tr>
<td align="left">d</td>
<td align="left">delete</td>
</tr>
<tr>
<td align="left">e</td>
<td align="left">end of word</td>
</tr>
<tr>
<td align="left">f</td>
<td align="left">search forward character</td>
</tr>
<tr>
<td align="left">h</td>
<td align="left">backward character</td>
</tr>
<tr>
<td align="left">i</td>
<td align="left">insert</td>
</tr>
<tr>
<td align="left">j</td>
<td align="left">next command</td>
</tr>
<tr>
<td align="left">k</td>
<td align="left">previous command</td>
</tr>
<tr>
<td align="left">l</td>
<td align="left">forward character</td>
</tr>
<tr>
<td align="left">r</td>
<td align="left">replace character</td>
</tr>
<tr>
<td align="left">s</td>
<td align="left">delete character, insert</td>
</tr>
<tr>
<td align="left">w</td>
<td align="left">forward word</td>
</tr>
<tr>
<td align="left">x</td>
<td align="left">delete character</td>
</tr>
</table>
</body>
</html>
-6
View File
@@ -1,6 +0,0 @@
<HEAD></HEAD><BODY BGCOLOR="#E0D8c8" TEXT="#000000">
<h1>Conclusion</h1>
<p>Some pontifications
<hr>
<a href="chapt3.html"><-Previous</a>
</BODY>
+80 -28
View File
@@ -1,28 +1,80 @@
<HEAD></HEAD>
<BODY BGCOLOR="#E0D8c8" TEXT="#000000">
<center><h1><font color="#000080">Table of Contents</font></h1></center>
<font size=-1>
<dl>
<a href="VolumeII-Introduction_to_MGED.pdf"> <dt>PDF Mged tutorial</a>
<a href="preface.html" target="doc"> <dt>Preface</a>
<a href="mged.html#csg" target="doc"> <dt>Modeling_with_CSG</a>
<a href="mged.html#starting" target="doc"> <dt>Starting MGED</a>
<a href="mged.html#coord" target="doc"> <dt>Screen Coordinates</a>
<a href="mged.html#create" target="doc"> <dt>Creating Geometry: The Cup</a>
<dt><br>
<a href="mged2.html#solidedit" target="doc"> <dt>Editing Solids</a>
<a href="mged2.html#handle" target="doc"> <dt>Fixing the Handle</a>
<a href="mged2.html#base" target="doc"> <dt>Adding a Base</a>
<a href="mged2.html#fillet" target="doc"> <dt>Adding a Fillet</a>
<dt><br>
<a href="mged_gui.html" target="doc"> <dt>MGED's New GUI</a>
<a href="cmd_line_ed.html" target="doc"> <dt>Command Line Editing</a>
<a href="mged_cmd_index.html" target="doc"> <dt>MGED Commands</a>
<a href="mged_tcl_vars.html" target="doc"> <dt>MGED Tcl Variables</a>
<a href="mged_env_vars.html" target="doc"> <dt>MGED Environment Variables</a>
<a href="mged_callbacks.html" target="doc"> <dt>MGED Callbacks</a>
<a href="brlcad_glossary.html" target="doc"> <dt>Glossary</a>
</dl>
</font>
</BODY>
<!DOCTYPE html>
<html>
<head>
<title>Table of Contents</title>
<style type="text/css">
body {
background-color: #E0D8C8;
color: #000000;
}
div.c2 {text-align: center}
h1.c1 {color: #000080}
</style>
</head>
<body>
<div class="c2">
<h1 class="c1">Table of Contents</h1>
</div>
<dl>
<dt>
<a href="preface.html" target="doc">
<dl>
<dt>Preface</dt>
</dl></a> <a href="mged.html#csg" target="doc">
<dl>
<dt>Modeling_with_CSG</dt>
</dl></a> <a href="mged.html#starting" target="doc">
<dl>
<dt>Starting MGED</dt>
</dl></a> <a href="mged.html#coord" target="doc">
<dl>
<dt>Screen Coordinates</dt>
</dl></a> <a href="mged.html#create" target="doc">
<dl>
<dt>Creating Geometry: The Cup</dt>
</dl></a>
</dt>
<dt>
<br>
<a href="mged2.html#solidedit" target="doc">
<dl>
<dt>Editing Solids</dt>
</dl></a> <a href="mged2.html#handle" target="doc">
<dl>
<dt>Fixing the Handle</dt>
</dl></a> <a href="mged2.html#base" target="doc">
<dl>
<dt>Adding a Base</dt>
</dl></a> <a href="mged2.html#fillet" target="doc">
<dl>
<dt>Adding a Fillet</dt>
</dl></a>
</dt>
<dt>
<br>
<a href="mged_gui.html" target="doc">
<dl>
<dt>MGED's New GUI</dt>
</dl></a> <a href="cmd_line_ed.html" target="doc">
<dl>
<dt>Command Line Editing</dt>
</dl></a> <a href="mged_cmd_index.html" target="doc">
<dl>
<dt>MGED Commands</dt>
</dl></a> <a href="mged_tcl_vars.html" target="doc">
<dl>
<dt>MGED Tcl Variables</dt>
</dl></a> <a href="mged_env_vars.html" target="doc">
<dl>
<dt>MGED Environment Variables</dt>
</dl></a> <a href="mged_callbacks.html" target="doc">
<dl>
<dt>MGED Callbacks</dt>
</dl></a> <a href="brlcad_glossary.html" target="doc">
<dl>
<dt>Glossary</dt>
</dl></a>
</dt>
</dl>
</body>
</html>
+247 -56
View File
@@ -1,57 +1,248 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<title>Default Key Bindings</title>
</HEAD>
<BODY>
<h1>Default Key Bindings</h1>
<TABLE COLS=3 RULES=all BORDER=1 CELLPADDING=3>
<TR><TH ALIGN=LEFT>Key<TH ALIGN=LEFT>Command<TH ALIGN=LEFT>Description
<TR><TD ALIGN=LEFT>a <TD ALIGN=LEFT>adc <TD ALIGN=LEFT>toggle adc cursor
<TR><TD ALIGN=LEFT>e <TD ALIGN=LEFT>set e_axes ! <TD ALIGN=LEFT>toggle edit axes
<TR><TD ALIGN=LEFT>v <TD ALIGN=LEFT>set v_axes ! <TD ALIGN=LEFT>toggle view axes
<TR><TD ALIGN=LEFT>w <TD ALIGN=LEFT>set w_axes ! <TD ALIGN=LEFT>toggle world axes
<TR><TD ALIGN=LEFT>i <TD ALIGN=LEFT>aip f <TD ALIGN=LEFT>advance illumination pointer forward
<TR><TD ALIGN=LEFT>I <TD ALIGN=LEFT>aip b <TD ALIGN=LEFT>advance illumination pointer backward
<TR><TD ALIGN=LEFT>p <TD ALIGN=LEFT>M 1 0 0 <TD ALIGN=LEFT>simulate mouse click
<TR><TD ALIGN=LEFT>3 <TD ALIGN=LEFT>press 35,25 <TD ALIGN=LEFT>set view azimuth/elevation to 35/25
<TR><TD ALIGN=LEFT>4 <TD ALIGN=LEFT>press 45,45 <TD ALIGN=LEFT>set view azimuth/elevation to 45/45
<TR><TD ALIGN=LEFT>f <TD ALIGN=LEFT>press front <TD ALIGN=LEFT>set view azimuth/elevation to 0/0
<TR><TD ALIGN=LEFT>t <TD ALIGN=LEFT>press top <TD ALIGN=LEFT>set view azimuth/elevation to -90/90
<TR><TD ALIGN=LEFT>b <TD ALIGN=LEFT>press bottom <TD ALIGN=LEFT>set view azimuth/elevation to -90/-90
<TR><TD ALIGN=LEFT>l <TD ALIGN=LEFT>press left <TD ALIGN=LEFT>set view azimuth/elevation to 90/0
<TR><TD ALIGN=LEFT>r <TD ALIGN=LEFT>press right <TD ALIGN=LEFT>set view azimuth/elevation to 270/0
<TR><TD ALIGN=LEFT>R <TD ALIGN=LEFT>press rear <TD ALIGN=LEFT>set view azimuth/elevation to 180/0
<TR><TD ALIGN=LEFT>s <TD ALIGN=LEFT>press sill <TD ALIGN=LEFT>solid illuminate
<TR><TD ALIGN=LEFT>o <TD ALIGN=LEFT>press oill <TD ALIGN=LEFT>object illuminate
<TR><TD ALIGN=LEFT>q <TD ALIGN=LEFT>press reject <TD ALIGN=LEFT>reject edit
<TR><TD ALIGN=LEFT>u <TD ALIGN=LEFT>svb <TD ALIGN=LEFT>set view reference base
<TR><TD ALIGN=LEFT>&lt;F1&gt; <TD ALIGN=LEFT>dm set depthcue ! <TD ALIGN=LEFT>toggle depth cue
<TR><TD ALIGN=LEFT>&lt;F2&gt; <TD ALIGN=LEFT>dm set zclip ! <TD ALIGN=LEFT>toggle zclip
<TR><TD ALIGN=LEFT>&lt;F3&gt; <TD ALIGN=LEFT>dm set perspective ! <TD ALIGN=LEFT>toggle perspective
<TR><TD ALIGN=LEFT>&lt;F4&gt; <TD ALIGN=LEFT>dm set zbuffer ! <TD ALIGN=LEFT>toggle zbuffer
<TR><TD ALIGN=LEFT>&lt;F5&gt; <TD ALIGN=LEFT>dm set lighting ! <TD ALIGN=LEFT>toggle lighting
<TR><TD ALIGN=LEFT>&lt;F6&gt; <TD ALIGN=LEFT>dm set set_perspective !<TD ALIGN=LEFT>next perspective angle
<TR><TD ALIGN=LEFT>&lt;F7&gt; <TD ALIGN=LEFT>set faceplate ! <TD ALIGN=LEFT>toggle faceplate
<TR><TD ALIGN=LEFT>&lt;F8&gt; <TD ALIGN=LEFT>set orig_gui ! <TD ALIGN=LEFT>toggle menu
<TR><TD ALIGN=LEFT>&lt;F9&gt; <TD ALIGN=LEFT>set send_key ! <TD ALIGN=LEFT>toggle send_key mode
<TR><TD ALIGN=LEFT>&lt;F12&gt; <TD ALIGN=LEFT>knob zero <TD ALIGN=LEFT>zero knobs
<TR><TD ALIGN=LEFT>&lt;Left&gt; <TD ALIGN=LEFT>knob -i ay -$mged_rotate_factor<TD ALIGN=LEFT>negative rotation about the y axis
<TR><TD ALIGN=LEFT>&lt;Right&gt; <TD ALIGN=LEFT>knob -i ay $mged_rotate_factor<TD ALIGN=LEFT>positive rotation about the y axis
<TR><TD ALIGN=LEFT>&lt;Down&gt; <TD ALIGN=LEFT>knob -i ax $mged_rotate_factor<TD ALIGN=LEFT>positive rotation about the x axis
<TR><TD ALIGN=LEFT>&lt;Up&gt; <TD ALIGN=LEFT>knob -i ax -$mged_rotate_factor<TD ALIGN=LEFT>negative rotation about the x axis
<TR><TD ALIGN=LEFT>&lt;Shift-Left&gt; <TD ALIGN=LEFT>knob -i aX $mged_tran_factor<TD ALIGN=LEFT>positive translation in X
<TR><TD ALIGN=LEFT>&lt;Shift-Right&gt; <TD ALIGN=LEFT>knob -i aX -$mged_tran_factor<TD ALIGN=LEFT>negative translation in X
<TR><TD ALIGN=LEFT>&lt;Shift-Down&gt; <TD ALIGN=LEFT>knob -i aZ -$mged_tran_factor<TD ALIGN=LEFT>negative translation in Z
<TR><TD ALIGN=LEFT>&lt;Shift-Up&gt; <TD ALIGN=LEFT>knob -i aZ $mged_tran_factor<TD ALIGN=LEFT>positive translation in Z
<TR><TD ALIGN=LEFT>&lt;Control-Shift-Left&gt; <TD ALIGN=LEFT>knob -i az $mged_rotate_factor<TD ALIGN=LEFT>positive rotation about the z axis
<TR><TD ALIGN=LEFT>&lt;Control-Shift-Right&gt; <TD ALIGN=LEFT>knob -i az -$mged_rotate_factor<TD ALIGN=LEFT>negative rotation about the z axis
<TR><TD ALIGN=LEFT>&lt;Control-Shift-Down&gt; <TD ALIGN=LEFT>knob -i aY $mged_rotate_factor<TD ALIGN=LEFT>positive translation in Y
<TR><TD ALIGN=LEFT>&lt;Control-Shift-Up&gt; <TD ALIGN=LEFT>knob -i aY -$mged_rotate_factor<TD ALIGN=LEFT>negative translation in Y
<TR><TD ALIGN=LEFT>&lt;Control-n&gt; <TD ALIGN=LEFT>set view 1 <TD ALIGN=LEFT>advance to next view
<TR><TD ALIGN=LEFT>&lt;Control-p&gt; <TD ALIGN=LEFT>set view 0 <TD ALIGN=LEFT>advance to previous view
<TR><TD ALIGN=LEFT>&lt;Control-v&gt; <TD ALIGN=LEFT>set view ! <TD ALIGN=LEFT>toggle between current view and previous view
<TR><TD ALIGN=LEFT>&lt;Escape&gt; <TD ALIGN=LEFT>knob zero; press reject<TD ALIGN=LEFT>stop interactive rotation and reject any edits
</TABLE>
</BODY>
</HTML>
<html>
<head>
<title>Default Key Bindings</title>
</head>
<body>
<h1>Default Key Bindings</h1>
<table cols="3" rules="all" border="1" cellpadding="3">
<tr>
<th align="left">Key</th>
<th align="left">Command</th>
<th align="left">Description</th>
</tr>
<tr>
<td align="left">a</td>
<td align="left">adc</td>
<td align="left">toggle adc cursor</td>
</tr>
<tr>
<td align="left">e</td>
<td align="left">set e_axes !</td>
<td align="left">toggle edit axes</td>
</tr>
<tr>
<td align="left">v</td>
<td align="left">set v_axes !</td>
<td align="left">toggle view axes</td>
</tr>
<tr>
<td align="left">w</td>
<td align="left">set w_axes !</td>
<td align="left">toggle world axes</td>
</tr>
<tr>
<td align="left">i</td>
<td align="left">aip f</td>
<td align="left">advance illumination pointer forward</td>
</tr>
<tr>
<td align="left">I</td>
<td align="left">aip b</td>
<td align="left">advance illumination pointer backward</td>
</tr>
<tr>
<td align="left">p</td>
<td align="left">M 1 0 0</td>
<td align="left">simulate mouse click</td>
</tr>
<tr>
<td align="left">3</td>
<td align="left">press 35,25</td>
<td align="left">set view azimuth/elevation to 35/25</td>
</tr>
<tr>
<td align="left">4</td>
<td align="left">press 45,45</td>
<td align="left">set view azimuth/elevation to 45/45</td>
</tr>
<tr>
<td align="left">f</td>
<td align="left">press front</td>
<td align="left">set view azimuth/elevation to 0/0</td>
</tr>
<tr>
<td align="left">t</td>
<td align="left">press top</td>
<td align="left">set view azimuth/elevation to -90/90</td>
</tr>
<tr>
<td align="left">b</td>
<td align="left">press bottom</td>
<td align="left">set view azimuth/elevation to -90/-90</td>
</tr>
<tr>
<td align="left">l</td>
<td align="left">press left</td>
<td align="left">set view azimuth/elevation to 90/0</td>
</tr>
<tr>
<td align="left">r</td>
<td align="left">press right</td>
<td align="left">set view azimuth/elevation to 270/0</td>
</tr>
<tr>
<td align="left">R</td>
<td align="left">press rear</td>
<td align="left">set view azimuth/elevation to 180/0</td>
</tr>
<tr>
<td align="left">s</td>
<td align="left">press sill</td>
<td align="left">solid illuminate</td>
</tr>
<tr>
<td align="left">o</td>
<td align="left">press oill</td>
<td align="left">object illuminate</td>
</tr>
<tr>
<td align="left">q</td>
<td align="left">press reject</td>
<td align="left">reject edit</td>
</tr>
<tr>
<td align="left">u</td>
<td align="left">svb</td>
<td align="left">set view reference base</td>
</tr>
<tr>
<td align="left">n</td>
<td align="left">nirt -b</td>
<td align="left">shoot NIRT ray at center of view</td>
</tr>
<tr>
<td align="left">&lt;F1&gt;</td>
<td align="left">dm set depthcue !</td>
<td align="left">toggle depth cue</td>
</tr>
<tr>
<td align="left">&lt;F2&gt;</td>
<td align="left">dm set zclip !</td>
<td align="left">toggle zclip</td>
</tr>
<tr>
<td align="left">&lt;F3&gt;</td>
<td align="left">dm set perspective !</td>
<td align="left">toggle perspective</td>
</tr>
<tr>
<td align="left">&lt;F4&gt;</td>
<td align="left">dm set zbuffer !</td>
<td align="left">toggle zbuffer</td>
</tr>
<tr>
<td align="left">&lt;F5&gt;</td>
<td align="left">dm set lighting !</td>
<td align="left">toggle lighting</td>
</tr>
<tr>
<td align="left">&lt;F6&gt;</td>
<td align="left">dm set set_perspective !</td>
<td align="left">next perspective angle</td>
</tr>
<tr>
<td align="left">&lt;F7&gt;</td>
<td align="left">set faceplate !</td>
<td align="left">toggle faceplate</td>
</tr>
<tr>
<td align="left">&lt;F8&gt;</td>
<td align="left">set orig_gui !</td>
<td align="left">toggle menu</td>
</tr>
<tr>
<td align="left">&lt;F9&gt;</td>
<td align="left">set send_key !</td>
<td align="left">toggle send_key mode</td>
</tr>
<tr>
<td align="left">&lt;F12&gt;</td>
<td align="left">knob zero</td>
<td align="left">zero knobs</td>
</tr>
<tr>
<td align="left">&lt;Left&gt;</td>
<td align="left">knob -i ay -$mged_rotate_factor</td>
<td align="left">negative rotation about the y axis</td>
</tr>
<tr>
<td align="left">&lt;Right&gt;</td>
<td align="left">knob -i ay $mged_rotate_factor</td>
<td align="left">positive rotation about the y axis</td>
</tr>
<tr>
<td align="left">&lt;Down&gt;</td>
<td align="left">knob -i ax $mged_rotate_factor</td>
<td align="left">positive rotation about the x axis</td>
</tr>
<tr>
<td align="left">&lt;Up&gt;</td>
<td align="left">knob -i ax -$mged_rotate_factor</td>
<td align="left">negative rotation about the x axis</td>
</tr>
<tr>
<td align="left">&lt;Shift-Left&gt;</td>
<td align="left">knob -i aX $mged_tran_factor</td>
<td align="left">positive translation in X</td>
</tr>
<tr>
<td align="left">&lt;Shift-Right&gt;</td>
<td align="left">knob -i aX -$mged_tran_factor</td>
<td align="left">negative translation in X</td>
</tr>
<tr>
<td align="left">&lt;Shift-Down&gt;</td>
<td align="left">knob -i aZ -$mged_tran_factor</td>
<td align="left">negative translation in Z</td>
</tr>
<tr>
<td align="left">&lt;Shift-Up&gt;</td>
<td align="left">knob -i aZ $mged_tran_factor</td>
<td align="left">positive translation in Z</td>
</tr>
<tr>
<td align="left">&lt;Control-Shift-Left&gt;</td>
<td align="left">knob -i az $mged_rotate_factor</td>
<td align="left">positive rotation about the z axis</td>
</tr>
<tr>
<td align="left">&lt;Control-Shift-Right&gt;</td>
<td align="left">knob -i az -$mged_rotate_factor</td>
<td align="left">negative rotation about the z axis</td>
</tr>
<tr>
<td align="left">&lt;Control-Shift-Down&gt;</td>
<td align="left">knob -i aY $mged_rotate_factor</td>
<td align="left">positive translation in Y</td>
</tr>
<tr>
<td align="left">&lt;Control-Shift-Up&gt;</td>
<td align="left">knob -i aY -$mged_rotate_factor</td>
<td align="left">negative translation in Y</td>
</tr>
<tr>
<td align="left">&lt;Control-n&gt;</td>
<td align="left">set view 1</td>
<td align="left">advance to next view</td>
</tr>
<tr>
<td align="left">&lt;Control-p&gt;</td>
<td align="left">set view 0</td>
<td align="left">advance to previous view</td>
</tr>
<tr>
<td align="left">&lt;Control-v&gt;</td>
<td align="left">set view !</td>
<td align="left">toggle between current view and previous
view</td>
</tr>
<tr>
<td align="left">&lt;Escape&gt;</td>
<td align="left">knob zero; press reject</td>
<td align="left">stop interactive rotation and reject any
edits</td>
</tr>
</table>
</body>
</html>
+264 -74
View File
@@ -1,75 +1,265 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<title>Default Mouse Bindings</title>
</HEAD>
<BODY>
<h1>Default Mouse Bindings</h1>
<TABLE COLS=3 RULES=all BORDER=1 CELLPADDING=3>
<TR><TH ALIGN=LEFT>Mouse Button<TH ALIGN=LEFT>Command<TH ALIGN=LEFT>Description
<TR><TD ALIGN=LEFT>&lt;1&gt;<TD ALIGN=LEFT>zoom 0.5<TD ALIGN=LEFT>zoom out
<TR><TD ALIGN=LEFT>&lt;2&gt;<TD ALIGN=LEFT>dm m %b %x %y<TD ALIGN=LEFT>slew view
<TR><TD ALIGN=LEFT>&lt;3&gt;<TD ALIGN=LEFT>zoom 2.0<TD ALIGN=LEFT>zoom in
<TR><TD ALIGN=LEFT><TD ALIGN=LEFT><TD ALIGN=LEFT>
<TR><TD ALIGN=LEFT>&lt;ButtonRelease&gt;<TD ALIGN=LEFT>dm idle<TD ALIGN=LEFT>stop drag operation
<TR><TD ALIGN=LEFT>&lt;KeyRelease-Control_L&gt<TD ALIGN=LEFT>dm idle<TD ALIGN=LEFT>stop drag operation
<TR><TD ALIGN=LEFT>&lt;KeyRelease-Control_R&gt<TD ALIGN=LEFT>dm idle<TD ALIGN=LEFT>stop drag operation
<TR><TD ALIGN=LEFT>&lt;KeyRelease-Shift_L&gt<TD ALIGN=LEFT>dm idle<TD ALIGN=LEFT>stop drag operation
<TR><TD ALIGN=LEFT>&lt;KeyRelease-Shift_R&gt<TD ALIGN=LEFT>dm idle<TD ALIGN=LEFT>stop drag operation
<TR><TD ALIGN=LEFT>&lt;KeyRelease-Alt_L&gt<TD ALIGN=LEFT>dm idle<TD ALIGN=LEFT>stop drag operation
<TR><TD ALIGN=LEFT>&lt;KeyRelease-Alt_R&gt<TD ALIGN=LEFT>dm idle<TD ALIGN=LEFT>stop drag operation
<TR><TD ALIGN=LEFT><TD ALIGN=LEFT><TD ALIGN=LEFT>
<TR><TD ALIGN=LEFT>&lt;Shift-ButtonPress-1&gt<TD ALIGN=LEFT>dm am t %x %y<TD ALIGN=LEFT>start translation
<TR><TD ALIGN=LEFT>&lt;Shift-ButtonPress-2&gt<TD ALIGN=LEFT>dm am t %x %y<TD ALIGN=LEFT>start translation
<TR><TD ALIGN=LEFT>&lt;Shift-ButtonPress-3&gt<TD ALIGN=LEFT>dm am t %x %y<TD ALIGN=LEFT>start translation
<TR><TD ALIGN=LEFT>&lt;Control-ButtonPress-1&gt<TD ALIGN=LEFT>dm am r %x %y<TD ALIGN=LEFT>start rotation
<TR><TD ALIGN=LEFT>&lt;Control-ButtonPress-2&gt<TD ALIGN=LEFT>dm am r %x %y<TD ALIGN=LEFT>start rotation
<TR><TD ALIGN=LEFT>&lt;Control-ButtonPress-3&gt<TD ALIGN=LEFT>dm am r %x %y<TD ALIGN=LEFT>start rotation
<TR><TD ALIGN=LEFT>&lt;Shift-Control-ButtonPress-1&gt<TD ALIGN=LEFT>dm am s %x %y<TD ALIGN=LEFT>start scale
<TR><TD ALIGN=LEFT>&lt;Shift-Control-ButtonPress-2&gt<TD ALIGN=LEFT>dm am s %x %y<TD ALIGN=LEFT>start scale
<TR><TD ALIGN=LEFT>&lt;Shift-Control-ButtonPress-3&gt<TD ALIGN=LEFT>dm am s %x %y<TD ALIGN=LEFT>start scale
<TR><TD ALIGN=LEFT>&lt;Alt-Shift-ButtonPress-1&gt<TD ALIGN=LEFT>dm con t x %x %y<TD ALIGN=LEFT>start constrained X translation
<TR><TD ALIGN=LEFT>&lt;Alt-Shift-ButtonPress-2&gt<TD ALIGN=LEFT>dm con t y %x %y<TD ALIGN=LEFT>start constrained Y translation
<TR><TD ALIGN=LEFT>&lt;Alt-Shift-ButtonPress-3&gt<TD ALIGN=LEFT>dm con t z %x %y<TD ALIGN=LEFT>start constrained Z translation
<TR><TD ALIGN=LEFT>&lt;Alt-Control-ButtonPress-1&gt<TD ALIGN=LEFT>dm con r x %x %y<TD ALIGN=LEFT>start constrained X rotation
<TR><TD ALIGN=LEFT>&lt;Alt-Control-ButtonPress-2&gt<TD ALIGN=LEFT>dm con r y %x %y<TD ALIGN=LEFT>start constrained Y rotation
<TR><TD ALIGN=LEFT>&lt;Alt-Control-ButtonPress-3&gt<TD ALIGN=LEFT>dm con r z %x %y<TD ALIGN=LEFT>start constrained Z rotation
<TR><TD ALIGN=LEFT>&lt;Alt-Shift-Control-ButtonPress-1&gt<TD ALIGN=LEFT>dm con s x %x %y<TD ALIGN=LEFT>start constrained X scale
<TR><TD ALIGN=LEFT>&lt;Alt-Shift-Control-ButtonPress-2&gt<TD ALIGN=LEFT>dm con s y %x %y<TD ALIGN=LEFT>start constrained Y scale
<TR><TD ALIGN=LEFT>&lt;Alt-Shift-Control-ButtonPress-3&gt<TD ALIGN=LEFT>dm con s z %x %y<TD ALIGN=LEFT>start constrained Z scale
</TABLE>
<BR><BR>
<h3>Custom Mouse Bindings for the Angle Distance Cursor</h3>
<TABLE COLS=3 RULES=all BORDER=1 CELLPADDING=3>
<TR><TH ALIGN=LEFT>Mouse Button<TH ALIGN=LEFT>Command<TH ALIGN=LEFT>Description
<TR><TD ALIGN=LEFT>&lt;Shift-ButtonPress-1&gt<TD ALIGN=LEFT>dm adc t %x %y<TD ALIGN=LEFT>translate
<TR><TD ALIGN=LEFT>&lt;Shift-ButtonPress-2&gt<TD ALIGN=LEFT>dm adc t %x %y<TD ALIGN=LEFT>translate
<TR><TD ALIGN=LEFT>&lt;Shift-ButtonPress-3&gt<TD ALIGN=LEFT>dm adc d %x %y<TD ALIGN=LEFT>move tick
<TR><TD ALIGN=LEFT>&lt;Control-ButtonPress-1&gt<TD ALIGN=LEFT>dm adc 1 %x %y<TD ALIGN=LEFT>move angle 1
<TR><TD ALIGN=LEFT>&lt;Control-ButtonPress-2&gt<TD ALIGN=LEFT>dm adc 2 %x %y<TD ALIGN=LEFT>move angle 2
<TR><TD ALIGN=LEFT>&lt;Control-ButtonPress-3&gt<TD ALIGN=LEFT>dm adc d %x %y<TD ALIGN=LEFT>move tick
<TR><TD ALIGN=LEFT>&lt;Shift-Control-ButtonPress-1&gt<TD ALIGN=LEFT>dm adc d %x %y<TD ALIGN=LEFT>move tick
<TR><TD ALIGN=LEFT>&lt;Shift-Control-ButtonPress-2&gt<TD ALIGN=LEFT>dm adc d %x %y<TD ALIGN=LEFT>move tick
<TR><TD ALIGN=LEFT>&lt;Shift-Control-ButtonPress-3&gt<TD ALIGN=LEFT>dm adc d %x %y<TD ALIGN=LEFT>move tick
<TR><TD ALIGN=LEFT>&lt;Alt-Shift-ButtonPress-1&gt<TD ALIGN=LEFT>dm con a x %x %y<TD ALIGN=LEFT>constrained translate in X
<TR><TD ALIGN=LEFT>&lt;Alt-Shift-ButtonPress-2&gt<TD ALIGN=LEFT>dm con a y %x %y<TD ALIGN=LEFT>constrained translate in Y
<TR><TD ALIGN=LEFT>&lt;Alt-Shift-ButtonPress-3&gt<TD ALIGN=LEFT>dm con a d %x %y<TD ALIGN=LEFT>constrained tick movement
<TR><TD ALIGN=LEFT>&lt;Alt-Control-ButtonPress-1&gt<TD ALIGN=LEFT>dm con a 1 %x %y<TD ALIGN=LEFT>constrained angle 1 movement
<TR><TD ALIGN=LEFT>&lt;Alt-Control-ButtonPress-2&gt<TD ALIGN=LEFT>dm con a 2 %x %y<TD ALIGN=LEFT>constrained angle 2 movement
<TR><TD ALIGN=LEFT>&lt;Alt-Control-ButtonPress-3&gt<TD ALIGN=LEFT>dm con a d %x %y<TD ALIGN=LEFT>constrained tick movement
<TR><TD ALIGN=LEFT>&lt;Alt-Shift-Control-ButtonPress-1&gt<TD ALIGN=LEFT>dm con a d %x %y<TD ALIGN=LEFT>constrained tick movement
<TR><TD ALIGN=LEFT>&lt;Alt-Shift-Control-ButtonPress-2&gt<TD ALIGN=LEFT>dm con a d %x %y<TD ALIGN=LEFT>constrained tick movement
<TR><TD ALIGN=LEFT>&lt;Alt-Shift-Control-ButtonPress-3&gt<TD ALIGN=LEFT>dm con a d %x %y<TD ALIGN=LEFT>constrained tick movement
</TABLE>
</BODY>
<html>
<head>
<title>Default Mouse Bindings</title>
</head>
<body>
<h1>Default Mouse Bindings</h1>
<table cols="3" rules="all" border="1" cellpadding="3">
<tr>
<th align="left">Mouse Button</th>
<th align="left">Command</th>
<th align="left">Description</th>
</tr>
<tr>
<td align="left">&lt;1&gt;</td>
<td align="left">zoom 0.5</td>
<td align="left">zoom out</td>
</tr>
<tr>
<td align="left">&lt;2&gt;</td>
<td align="left">dm m %b %x %y</td>
<td align="left">slew view</td>
</tr>
<tr>
<td align="left">&lt;3&gt;</td>
<td align="left">zoom 2.0</td>
<td align="left">zoom in</td>
</tr>
<tr>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
</tr>
<tr>
<td align="left">&lt;ButtonRelease&gt;</td>
<td align="left">dm idle</td>
<td align="left">stop drag operation</td>
</tr>
<tr>
<td align="left">&lt;KeyRelease-Control_L&gt;</td>
<td align="left">dm idle</td>
<td align="left">stop drag operation</td>
</tr>
<tr>
<td align="left">&lt;KeyRelease-Control_R&gt;</td>
<td align="left">dm idle</td>
<td align="left">stop drag operation</td>
</tr>
<tr>
<td align="left">&lt;KeyRelease-Shift_L&gt;</td>
<td align="left">dm idle</td>
<td align="left">stop drag operation</td>
</tr>
<tr>
<td align="left">&lt;KeyRelease-Shift_R&gt;</td>
<td align="left">dm idle</td>
<td align="left">stop drag operation</td>
</tr>
<tr>
<td align="left">&lt;KeyRelease-Alt_L&gt;</td>
<td align="left">dm idle</td>
<td align="left">stop drag operation</td>
</tr>
<tr>
<td align="left">&lt;KeyRelease-Alt_R&gt;</td>
<td align="left">dm idle</td>
<td align="left">stop drag operation</td>
</tr>
<tr>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
</tr>
<tr>
<td align="left">&lt;Shift-ButtonPress-1&gt;</td>
<td align="left">dm am t %x %y</td>
<td align="left">start translation</td>
</tr>
<tr>
<td align="left">&lt;Shift-ButtonPress-2&gt;</td>
<td align="left">dm am t %x %y</td>
<td align="left">start translation</td>
</tr>
<tr>
<td align="left">&lt;Shift-ButtonPress-3&gt;</td>
<td align="left">dm am t %x %y</td>
<td align="left">start translation</td>
</tr>
<tr>
<td align="left">&lt;Control-ButtonPress-1&gt;</td>
<td align="left">dm am r %x %y</td>
<td align="left">start rotation</td>
</tr>
<tr>
<td align="left">&lt;Control-ButtonPress-2&gt;</td>
<td align="left">dm am r %x %y</td>
<td align="left">start rotation</td>
</tr>
<tr>
<td align="left">&lt;Control-ButtonPress-3&gt;</td>
<td align="left">dm am r %x %y</td>
<td align="left">start rotation</td>
</tr>
<tr>
<td align="left">&lt;Shift-Control-ButtonPress-1&gt;</td>
<td align="left">dm am s %x %y</td>
<td align="left">start scale</td>
</tr>
<tr>
<td align="left">&lt;Shift-Control-ButtonPress-2&gt;</td>
<td align="left">dm am s %x %y</td>
<td align="left">start scale</td>
</tr>
<tr>
<td align="left">&lt;Shift-Control-ButtonPress-3&gt;</td>
<td align="left">dm am s %x %y</td>
<td align="left">start scale</td>
</tr>
<tr>
<td align="left">&lt;Alt-Shift-ButtonPress-1&gt;</td>
<td align="left">dm con t x %x %y</td>
<td align="left">start constrained X translation</td>
</tr>
<tr>
<td align="left">&lt;Alt-Shift-ButtonPress-2&gt;</td>
<td align="left">dm con t y %x %y</td>
<td align="left">start constrained Y translation</td>
</tr>
<tr>
<td align="left">&lt;Alt-Shift-ButtonPress-3&gt;</td>
<td align="left">dm con t z %x %y</td>
<td align="left">start constrained Z translation</td>
</tr>
<tr>
<td align="left">&lt;Alt-Control-ButtonPress-1&gt;</td>
<td align="left">dm con r x %x %y</td>
<td align="left">start constrained X rotation</td>
</tr>
<tr>
<td align="left">&lt;Alt-Control-ButtonPress-2&gt;</td>
<td align="left">dm con r y %x %y</td>
<td align="left">start constrained Y rotation</td>
</tr>
<tr>
<td align="left">&lt;Alt-Control-ButtonPress-3&gt;</td>
<td align="left">dm con r z %x %y</td>
<td align="left">start constrained Z rotation</td>
</tr>
<tr>
<td align="left">&lt;Alt-Shift-Control-ButtonPress-1&gt;</td>
<td align="left">dm con s x %x %y</td>
<td align="left">start constrained X scale</td>
</tr>
<tr>
<td align="left">&lt;Alt-Shift-Control-ButtonPress-2&gt;</td>
<td align="left">dm con s y %x %y</td>
<td align="left">start constrained Y scale</td>
</tr>
<tr>
<td align="left">&lt;Alt-Shift-Control-ButtonPress-3&gt;</td>
<td align="left">dm con s z %x %y</td>
<td align="left">start constrained Z scale</td>
</tr>
</table><br>
<br>
<h3>Custom Mouse Bindings for the Angle Distance Cursor</h3>
<table cols="3" rules="all" border="1" cellpadding="3">
<tr>
<th align="left">Mouse Button</th>
<th align="left">Command</th>
<th align="left">Description</th>
</tr>
<tr>
<td align="left">&lt;Shift-ButtonPress-1&gt;</td>
<td align="left">dm adc t %x %y</td>
<td align="left">translate</td>
</tr>
<tr>
<td align="left">&lt;Shift-ButtonPress-2&gt;</td>
<td align="left">dm adc t %x %y</td>
<td align="left">translate</td>
</tr>
<tr>
<td align="left">&lt;Shift-ButtonPress-3&gt;</td>
<td align="left">dm adc d %x %y</td>
<td align="left">move tick</td>
</tr>
<tr>
<td align="left">&lt;Control-ButtonPress-1&gt;</td>
<td align="left">dm adc 1 %x %y</td>
<td align="left">move angle 1</td>
</tr>
<tr>
<td align="left">&lt;Control-ButtonPress-2&gt;</td>
<td align="left">dm adc 2 %x %y</td>
<td align="left">move angle 2</td>
</tr>
<tr>
<td align="left">&lt;Control-ButtonPress-3&gt;</td>
<td align="left">dm adc d %x %y</td>
<td align="left">move tick</td>
</tr>
<tr>
<td align="left">&lt;Shift-Control-ButtonPress-1&gt;</td>
<td align="left">dm adc d %x %y</td>
<td align="left">move tick</td>
</tr>
<tr>
<td align="left">&lt;Shift-Control-ButtonPress-2&gt;</td>
<td align="left">dm adc d %x %y</td>
<td align="left">move tick</td>
</tr>
<tr>
<td align="left">&lt;Shift-Control-ButtonPress-3&gt;</td>
<td align="left">dm adc d %x %y</td>
<td align="left">move tick</td>
</tr>
<tr>
<td align="left">&lt;Alt-Shift-ButtonPress-1&gt;</td>
<td align="left">dm con a x %x %y</td>
<td align="left">constrained translate in X</td>
</tr>
<tr>
<td align="left">&lt;Alt-Shift-ButtonPress-2&gt;</td>
<td align="left">dm con a y %x %y</td>
<td align="left">constrained translate in Y</td>
</tr>
<tr>
<td align="left">&lt;Alt-Shift-ButtonPress-3&gt;</td>
<td align="left">dm con a d %x %y</td>
<td align="left">constrained tick movement</td>
</tr>
<tr>
<td align="left">&lt;Alt-Control-ButtonPress-1&gt;</td>
<td align="left">dm con a 1 %x %y</td>
<td align="left">constrained angle 1 movement</td>
</tr>
<tr>
<td align="left">&lt;Alt-Control-ButtonPress-2&gt;</td>
<td align="left">dm con a 2 %x %y</td>
<td align="left">constrained angle 2 movement</td>
</tr>
<tr>
<td align="left">&lt;Alt-Control-ButtonPress-3&gt;</td>
<td align="left">dm con a d %x %y</td>
<td align="left">constrained tick movement</td>
</tr>
<tr>
<td align="left">&lt;Alt-Shift-Control-ButtonPress-1&gt;</td>
<td align="left">dm con a d %x %y</td>
<td align="left">constrained tick movement</td>
</tr>
<tr>
<td align="left">&lt;Alt-Shift-Control-ButtonPress-2&gt;</td>
<td align="left">dm con a d %x %y</td>
<td align="left">constrained tick movement</td>
</tr>
<tr>
<td align="left">&lt;Alt-Shift-Control-ButtonPress-3&gt;</td>
<td align="left">dm con a d %x %y</td>
<td align="left">constrained tick movement</td>
</tr>
</table>
</body>
</html>
File diff suppressed because it is too large Load Diff
+17 -12
View File
@@ -1,14 +1,19 @@
<HTML><HEAD><TITLE>Frames</TITLE></HEAD>
<!DOCTYPE html>
<html>
<head>
<title>MGED Overview</title>
</head>
<!-- Target names:
_blank (new, unnamed window)
_self (same frame as element that refers to target)
_parent
_top (Full, original window)
_blank (new, unnamed window)
_self (same frame as element that refers to target)
_parent
_top (Full, original window)
-->
<FRAMESET cols="23%, 77%">
<FRAME name="toc" src="contents.html">
<FRAME name="doc" src="preface.html" >
<NOFRAMES>
<!--#include file="mged.html" -->
</NOFRAMES>
</FRAMESET>
<frameset cols="23%, 77%">
<frame name="toc" src="contents.html">
<frame name="doc" src="preface.html">
<noframes>
<!--#include file="mged.html" -->
</noframes>
</frameset>
</html>
File diff suppressed because it is too large Load Diff
-880
View File
@@ -1,880 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Mged User's Manual</TITLE>
</HEAD><BODY BGCOLOR="#E0D8c8" Text="#000000">
<h1 align=center><font size="+3" color="#4040ff">Mged User's Manual</font></h1>
<A NAME="csg"><H2>Modeling With CSG</H2></a>
In BRL-CAD objects are constructed using a technique known as ``Combinatorial
Solid Geometry'' or ``Constructive Solid Geometry'' or simply ``CSG''
In the CSG approach to modeling
This technique involves creating objects
by combining primitive shapes together to form complex objects.&nbsp;
The primitive shapes are called ``solids''.&nbsp;
Each one occupies a volume of three dimensional space.&nbsp;
BRL-CAD currently has many primitive solid types.&nbsp;
These include:
<P>
<center>
<table border>
<tr><th>Primitive Shape</th> <th>BRL-CAD Name</th>
</tr>
<tr><td>Arbitrary Convex Polyhedron</td> <td>arbn</td>
<tr><td>Arbitrary Convex Polyhedron (8pt or less)</td> <td>arb</td>
<tr><td>Extruded Bitmap *</td> <td>ebm * </td>
<tr><td>Elliptical Hyperboloid</td> <td>ehy</td>
<tr><td>Ellipsoid</td> <td>ell</td>
<tr><td>Elliptical Paraboloid</td> <td>epa</td>
<tr><td>Elliptical Torus</td> <td>eto</td>
<tr><td>Halfspace</td> <td>half</td>
<tr><td>Height-Field *</td> <td>hf *</td>
<tr><td>N-Manifold Geometry *</td> <td>nmg *</td>
<tr><td>Non-Uniform Rational B-spline *</td> <td>nurb *</td>
<tr><td>particle *</td> <td>part *</td>
<tr><td>polygonal object</td> <td>polygon</td>
<tr><td>pipe *</td> <td>pipe *</td>
<tr><td>Right Elliptical Cylinder</td> <td>rec</td>
<tr><td>Right Hyperbolic Cylinder</td> <td>rhc</td>
<tr><td>Right Parabolic Cylinder</td> <td>rpc</td>
<tr><td>Sphere</td> <td>sph</td>
<tr><td>Truncated General Cone</td> <td>tgc</td>
<tr><td>Torus</td> <td>tor</td>
<tr><td>Volume/Voxel *</td> <td>vol *</td>
<caption align=bottom>* = Implementation known to be incomplete as of this writing</caption>
</table>
</center>
<P>
<center><img src="prims.gif" alt="primitive solids"></center>
<p>
These primitives can be combined using boolean operators to create complex
shapes.&nbsp; The three boolean operations supported are union, difference
(or subtraction), and
intersection.&nbsp; Any number of primitives may be combined to produce a shape.&nbsp;
The union (u) of two solids is defined as the volume in either of the solids.&nbsp;
The difference (-) of two solids is the volume of the first solid which is not
in the volume of the second solid.&nbsp; The intersection (+) of two solids is
the volume that is contained in both solids.&nbsp;
<center><img src="bool.gif" alt="boolean operations"></center>
<p>
The result of performing a set of boolean operations is a new
shape.&nbsp;
In BRL-CAD this new shape is known as a ``<a href="brlcad_glossary.html#COMBINATION">combination</a>''.&nbsp;
This is frequently abbreviated as ``comb''.&nbsp;
A ``comb'' can be further combined with other shapes
to create still more complex shapes.&nbsp; For example, the shape of a simple
cup might be created by subtracting a cylinder from a slightly larger
cylinder.&nbsp;
From this ``comb'' shape, the shape of a mug
could be created by adding a handle.&nbsp; The handle might be
composed of an elliptical torus with the part of the torus that would
be inside the cup removed.&nbsp;
Logically this is:
<p>
<a name="cup.sh">
<center>
Cup = Outside - Inside<br><br>
Handle = Ring - Outside<br><br>
Mug = Cup <i>union</i> Handle
</center></a>
<p>
<center>
<a href="cup_and_mug.gif"><img src="cup_and_mug_small.gif" alt="cup and mug">
</a></center>
<p>
In this way the shape of objects are built up from components.&nbsp;
<p>
When the desired shape of an object is attained,
a special combination called a ``<a href="brlcad_glossary.html#REGION">region</a>'' is created.&nbsp;
A ``<a href="brlcad_glossary.html#REGION">region</a>'' represents an actual material component of the model.&nbsp;
It represents an item which is made from a homogeneous type of material.&nbsp;
In the example above two combinations are created: Cup and Handle.&nbsp;
These two are brought together to form an object (Mug)
which is made of a single
material (such as ceramic or bone china).&nbsp;
Material properties such as color, texture, transparency, reflectivity, etc.
are assigned to regions.
<p>
The model is built up as a tree-like structure known as a <i><a
href="brlcad_glossary.html#DAG">Directed Acyclic Graph</a></i> or
<i>DAG</i>.&nbsp; It is permissible for a node to be referenced by different
parts of the model.&nbsp; In the mug example, the solid "Outside" is a part of
two different combinations: Cup and Handle.&nbsp; In this example the graph of
the mug object looks like this:
<pre>
Torus
/
Handle (-)
/ \
Mug (u) Cylinder
\ /
Cup -- (-)
\
Insides
</pre>
It is possible to refer to combinations and regions multiple times as
well.&nbsp; For example, if a modeler were trying to create a cupboard
containing three separate identical mugs, he might create a structure as
follows:
<pre>
Mug 1 Ring
/ \ /
/ \ Handle (-)
(u) \ / \
Mugs (u)- Mug 2--Mug (u) Outside
(u) / \ /
\ / Cup -- (-)
\ / \
Mug 3 Inside
</pre>
<p>
Users familiar with other CAD software may prefer to think of the ``region''
as a ``part''.&nbsp; Combinations containing of ``regions'' may be thought of as
``assemblies''.&nbsp;
<a name="starting"><H2>Starting MGED</H2></a>
<p>
All the geometry for a particular model or application
is generally stored in a single file
called a <i>database</i>.&nbsp; Each database may contain many different objects.&nbsp;
By convention, the files containing BRL-CAD
geometry have an extension of ``.g''.&nbsp;
<p>
Before starting mged the user should assure that the X-Windows <B>DISPLAY</B>
environment variable has been properly set.&nbsp; This indicates where applications
should display the windows they create.&nbsp;
<p>
We use the following conventions for denoting text:
<pre>
<B><FONT color="#20a020">Text typed by the user</FONT></B>
<tt>Text output by the program</tt>
</pre>
To edit or create a geometry file,
the user starts mged from the shell by giving the command:
<pre>
<tt>%</tt> <B><FONT color="#20a020">mged -c cup.g</FONT></B>
</pre>
The filename is required.&nbsp; Unlike many programs which allow the user to create
a new document or database in memory, mged always keeps everything on disk.&nbsp;
After each user command, the contents of the disk file are brought up to date.&nbsp;
By doing this, the amount of work lost in the event of a system crash is
minimized.&nbsp;
<p>
When mged is started, it prints out the release number and date of
compilation. When multiple versions of mged are installed on a machine, this
allows the user to verify that the proper version is being started.&nbsp;
<p>
If the file specified does not exist when mged is started,
it will stop and ask if the user wishes to create a new database:
<pre>
<tt>%</tt> <B><FONT color="#20a020">mged -c cup.g</FONT></B><tt>
BRL-CAD Release 4.5 Graphics Editor (MGED)
Mon May 19 16:31:32 EDT 1997, Compilation 5377
bparker@vapor.arl.mil:/m/cad/.mged.6d
cup.g: No such file or directory
Create new database (y|n)[n]? </tt>
</pre>
At this point pressing the ``y'' key followed by a return will create the new
database.&nbsp; Any other (non-y) keys (followed by a return)
will cause mged to quit without creating the database.&nbsp;
<pre>
<tt>%</tt> <B><FONT color="#20a020">mged -c cup.g</FONT></B><tt>
BRL-CAD Release 4.5 Graphics Editor (MGED)
Mon May 19 16:31:32 EDT 1997, Compilation 5377
bparker@vapor.arl.mil:/m/cad/.mged.6d
cup.g: No such file or directory
Create new database (y|n)[n]? </tt><B><FONT color="#20a020">y</FONT></B><tt>
Creating new database "cup.g"
Untitled MGED Database (units=mm)
attach (nu|X|ogl|glx)[nu]? </tt>
</pre>
<A name="#foobar">At</a> this point, mged is asking what type of geometry display window you
would like.&nbsp; The default is always ``nu'' for Null or ``no geometry display''.&nbsp;
If you are creating geometry, it is desirable to be able to see it.&nbsp;
The common choices are:
<center>
<table border>
<tr><th colspan=2>MGED Geometry Display Types</td></tr>
<tr><th>Name</th><th>Display Type</th></tr>
<tr><td align=center>X</td><td>X Windows</td></tr>
<tr><td align=center>glx</td><td>Iris gl under X Windows</td></tr>
<tr><td align=center>ogl</td><td>OpenGL under X Windows</td></tr>
</table></center>
Enter one of the names listed followed by a return.&nbsp;
<pre>
<tt>%</tt> <B><FONT color="#20a020">mged -c cup.g</FONT></B><tt>
BRL-CAD Release 4.5 Graphics Editor (MGED)
Mon May 19 16:31:32 EDT 1997, Compilation 5377
bparker@vapor.arl.mil:/m/cad/.mged.6d
cup.g: No such file or directory
Create new database (y|n)[n]? </tt><B><FONT color="#20a020">y</FONT></B><tt>
Creating new database "cup.g"
Untitled MGED Database (units=mm)
attach (nu|X|ogl|glx)[nu]? </tt><B><FONT color="#20a020">ogl</FONT></B><tt>
mged> </tt>
</pre>
At this point you should have a window that looks something like this:
<center><a href="faceplate.gif"><img src="faceplate_sm.gif" alt="faceplate"></a></center><br>
When the MGED program has a display window or device attached, it
displays a border around the region of the screen being used
along with some ancillary status information.&nbsp; Together, this
information is termed the editor ``faceplate''.&nbsp;
<p>
In the upper left corner of the window is a small enclosed area which
is used to display the current editor state. The current editor state
indicates whether objects are selected for editing and what modeling
operations are allowed.&nbsp;
<p>
Underneath the state display is a zone in which three ``pop-up'' menus
may appear.&nbsp;
The top menu is termed the ``button menu,'' as it
contains menu items which duplicate many functions which
were originally available via an external <a href="button box">button box</a>
peripheral.&nbsp;
Having these frequently used
functions available on a pop-up menu
can greatly decrease the number of times that the user needs to remove
his hand from the pointing device (either mouse or tablet puck)
to reach for the buttons.&nbsp;
<p>
Below is an example of the
faceplate and first level menu.&nbsp;
<center><a href="faceplate_menu.gif"><img src="faceplate_menu_sm.gif" alt="faceplate with menu"></a></center>
<p>
The second menu is used primarily for the various editing states,
at which time it contains all the editing operations which are generic
across all objects (scaling, rotation, and translation).&nbsp;
The third menu contains selections for object-specific editing operations.&nbsp;
The choices on these menus are <a href="Edit Menus">detailed below</a>.&nbsp;
<p>
Running across the entire bottom of the faceplate is a thin rectangular
display area which holds two lines of text.&nbsp;
The first line always contains a numeric display of the model-space
coordinates of the center of the view and the current size of
the viewing cube, both of which are displayed in the currently
selected editing units.&nbsp;
The first line also contains the current rotation rates.&nbsp;
<p>
The second line has several uses, depending on editor mode.&nbsp;
In various editing states this second line will
contain certain path selection information.&nbsp;
When the angle/distance cursor function is activated, the second
line will be used to display the current settings of the cursor.&nbsp;
<p>
All numeric interaction between
the user and the editor are in terms of user-selected
display units.&nbsp;
The user may select from millimeters, centimeters, meters, inches, and
feet, and the currently active display units are noted in the first
display line.&nbsp;
One important implementation detail is that all numeric values are stored
in the database in millimeters. When MGED interacts with the user, it converts
values from the database into the units selected by the user before displaying
them.&nbsp; Likewise, values that the user enters are converted to millimeters
before being written to the database.&nbsp;
<p><a name="coord"><H2>The Screen Coordinate System</H2></a>
<p>
Objects drawn on the screen are clipped in X, Y, and Z, to the size
indicated on the first status line.&nbsp;
This creates a conceptual ``viewing cube''.&nbsp; Only objects inside this
cube are visible.&nbsp;
This feature allows objects within the cube to be seen, without cluttering
the display with objects which are
within view
in X and Y, but quite far away in the Z direction.&nbsp;
This is especially useful when the display is zoomed
in on a small portion of the geometry.&nbsp;
On some displays Z axis clipping can be selectively enabled and disabled
as a viewing aid.&nbsp;
<p>
The MGED editor uses the standard right-handed
screen coordinate system shown in the figure below.&nbsp;
<p>
<CENTER>
<IMG SRC="coord-axes.gif" ALT="coord-axes"><br>
<B><FONT color="#20a020"> The Screen Coordinate System.</FONT></B>
</CENTER>
<p>
The Z axis is perpendicular to the screen and the positive Z direction is
out of the screen towards the viewer.&nbsp; The directions of positive (+) and negative (-) axis
rotations are also indicated.&nbsp; For these rotations, the ``Right
Hand Rule'' applies: Point the thumb of the right hand along the direction
of +X axis and the other fingers will describe the sense of positive
rotation.&nbsp;
<H2>Creating Geometry: The Cup</h2>
<p>
Let's look at the commands needed to build the
<a href="mged.html#cup">cup geometry</a>
described in the first section.&nbsp; The following MGED editing session
contains all the commands needed to create the mug.&nbsp;
Each command will be explained below.&nbsp;
<pre>
<tt>% </tt><B><FONT color="#20a020">newmged Mug.g</FONT></B><tt>
BRL-CAD Release 4.5 Graphics Editor (MGED)
Tue May 20 10:33:44 EDT 1997, Compilation 5378
jra@vapor.arl.mil:/m/cad/.mged.6d
Mug.g: No such file or directory
Create new database (y|n)[n]? </tt><B><FONT color="#20a020">y</FONT></B><tt>
Creating new database "Mug.g"
Untitled MGED Database (units=mm)
attach (nu|X|ogl|glx)[nu]? </tt><B><FONT color="#20a020">ogl</FONT></B><tt>
mged> </tt><B><FONT color="#20a020">title MGED Tutorial Geometry</FONT></B><tt>
mged> </tt><B><FONT color="#20a020">units in</FONT></B><tt>
New editing units = 'in'
mged> </tt><B><FONT color="#20a020">in outside.s rcc</FONT></B><tt>
Enter X, Y, Z of vertex: </tt><B><FONT color="#20a020">0 0 0</FONT></B><tt>
Enter X, Y, Z of height (H) vector: </tt><B><FONT color="#20a020">0 0 3.5</FONT></B><tt>
Enter radius: </tt><B><FONT color="#20a020">1.75</FONT></B><tt>
42 vectors in 0.006435 sec
mged> </tt><B><FONT color="#20a020">in inside.s rcc 0 0 0.25 0 0 3.5 1.5</FONT></B><tt>
42 vectors in 0.006435 sec
mged> </tt><B><FONT color="#20a020">in ring.s eto 0 2.5 1.75 1 0 0</FONT></B><tt>
Enter X, Y, Z, of vector C: </tt><B><FONT color="#20a020">.6 0 0</FONT></B><tt>
Enter radius of revolution, r: </tt><B><FONT color="#20a020">1.45</FONT></B><tt>
Enter elliptical semi-minor axis, d: </tt><B><FONT color="#20a020">0.2</FONT></B><tt>
2479 vectors in 0.087375 sec
mged> </tt><B><FONT color="#20a020">comb cup.c u outside.s - inside.s</FONT></B><tt>
mged> </tt><B><FONT color="#20a020">comb handle.c u ring.s - outside.s</FONT></B><tt>
mged> </tt><B><FONT color="#20a020">r mug.r u cup.c u handle.c</FONT></B><tt>
Defaulting item number to 1002
Creating region id=1001, air=0, los=100, GIFTmaterial=1</tt>
</pre>
<p>
<p>
The first step in preparing a new database is to provide a title which
describes the contents of the database.&nbsp; This is an important opportunity
to describe the contents and purpose of the database.&nbsp; Setting the title
is done with the <a href="mged_cmds.html#title">title</a> command in MGED.&nbsp;
<pre>
<tt>mged> </tt><B><FONT color="#20a020">Title MGED Tutorial Geometry</FONT></B>
</pre>
<p>
When the database is first created, the default editing units are set to millimeters.&nbsp;
For this example, we want to specify the dimensions of the object in inches.&nbsp;
To arrange this, the <a href="mged_cmds.html#units">units</a> command
<pre>
<tt>mged> </tt><B><FONT color="#20a020">units in</FONT></B>
</pre>
<!-- XXX We need to continue describing line-by-line here -->
<p>
Now we can create our first solid.&nbsp; There are two techniques for creating
geometry in MGED.&nbsp; The commands for these two techniques are
<a href="mged_cmds.html#make"><em>make</em></a>
and <a href="mged_cmds.html#in"><em>in</em></a> (for ``insert'').&nbsp;
For precision modeling the <em>in</em> command offers the greatest control
over the definition of the solid.&nbsp; This is the approach we will use.&nbsp;
<p>
The ``in'' command can take all of its arguments on the command line,
or it will prompt you for any missing portions.&nbsp;
Remembering what parameters need to be specified for each solid can be
difficult at best.&nbsp; All that you really need to enter is the command
name.&nbsp; Mged will prompt you for the rest of the parameters.&nbsp;
<p>
In the first example
above we specify the name of the solid we are creating (``outside.s'') and the
type of solid to create (``rcc''). Then mged prompts for the remaining
arguments (vertex, height vector, and radius):
<pre><tt>
mged> </tt><B><FONT color="#20a020">in outside.s rcc</FONT></B><tt>
Enter X, Y, Z of vertex: </tt><B><FONT color="#20a020">0 0 0</FONT></B><tt>
Enter X, Y, Z of height (H) vector: </tt><B><FONT color="#20a020">0 0 3.5</FONT></B><tt>
Enter radius: </tt><B><FONT color="#20a020">1.75</FONT></B>
</tt></pre>
<p> For the solid ``inside.s'' we specify all the parameters on the command
line, so mged does not prompt us for additional arguments.&nbsp; In the case
of the solid ``ring.s'' we specify some, but not all of the parameters, and
mged prompts us for the missing ones:
<pre>
<tt>
mged> </tt><B><FONT color="#20a020">in inside.s rcc 0 0 0.25 0 0 3.5 1.5</FONT></B><tt>
42 vectors in 0.006435 sec
mged> </tt><B><FONT color="#20a020">in ring.s eto 0 2.5 1.75 1 0 0</FONT></B><tt>
Enter X, Y, Z, of vector C: </tt><B><FONT color="#20a020">.6 0 0</FONT></B><tt>
Enter radius of revolution, r: </tt><B><FONT color="#20a020">1.45</FONT></B><tt>
Enter elliptical semi-minor axis, d: </tt><B><FONT color="#20a020">0.2</FONT></B><tt>
2479 vectors in 0.087375 sec
</tt>
</pre>
<p>
As a minimal example, if we wanted to create a sphere called ``ball.s''
we could simply type the ``in'' command and let mged prompt us for
everything else:
<pre>
<tt>mged> </tt><B><FONT color="#20a020">in</FONT></B><tt>
Enter name of solid:</tt> <B><FONT color="#20a020">ball.s</FONT></B><tt>
Enter solid type: </tt> <B><FONT color="#20a020">sph</FONT></B><tt>
Enter X, Y, Z of vertex: </tt> <B><FONT color="#20a020">0 0 0</FONT></B><tt>
Enter radius: </tt> <B><FONT color="#20a020">3</FONT></B><tt>
51 vectors in 0.117187 sec</tt>
</pre>
<p> The three boolean operators supported are union, subtraction and
intersection. These operations are denoted by the operators <em>u, -</em> and
<em>+</em> respectively.&nbsp; Mged uses these in a sort of prefix notation.&nbsp; In
this notation the union operator has higher precedence than either subtraction
or intersection.&nbsp; Hence the following boolean sequence
<pre>
(A union B) subtract C
is written as
u A - C u B - C
</pre>
<p>
The <em>comb</em> command creates a boolean combination.&nbsp; In our example
we use this to create the shape of the outside of the cup called ``cup.s''
Reading the command above that creates cup.c, we note that cup.c is formed
from the <em>union</em> of the volume defined by the solid ``outside.s'' and
the <em>subtraction</em> of the volume defined by the solid ``inside.s''.&nbsp;
<p> The <a href="mged_cmds.html#r">r</a> command creates a
``<a href="brlcad_glossary.html#REGION">region</a>''.&nbsp;
It is just like creating a
<a href="brlcad_glossary.html#COMBINATION">combination</a>,
but the results are a volume of one logical material type.&nbsp;
<p>
Assigning material properties is done with the
<em><a href="mged_cmds.html#mater">mater</a></em>
or
<em><a href="mged_cmds.html#shader">shader</a></em>
command.&nbsp; Here
we define which <a href="brlcad_glossary.html#SHADER">shader</a> should be used when rendering the object, and the
parameters for the shader.&nbsp; The simplest shader is the ``<a href="shaders.html#plastic">plastic</a>'' shader
which uses a Phong lighting model.&nbsp; For our mug this will be fine.&nbsp;
We specify the plastic shader and set the color to a shade of green.&nbsp;
<pre>
<tt> mged> </tt><B><FONT color="#20a020">mater mug.r</FONT></B><tt>
Shader =
Shader? ('del' to delete, CR to skip) </tt><B><FONT color="#20a020">plastic</FONT></B><tt>
Color = (No color specified)
Color R G B (0..255)? ('del' to delete, CR to skip) </tt><B><FONT color="#20a020">32 128 32</FONT></B><tt>
Inherit = 0: lower nodes (towards leaves) override
Inheritance (0|1)? (CR to skip) <B><FONT color="#20a020">0</FONT></B>
</tt>
</pre>
The Inheritance option should be left 0.&nbsp;
This option will be discussed later.&nbsp;
<p> Once we have created our geometry, it would be nice to look at the
wireframe from a variety of angles.&nbsp; By clicking on the button menu
box a set of options is displayed.&nbsp;
The buttons labeled "35,25", "Top", "Right", "Front", and "45,45" offer
a set of standard views.&nbsp;
<p> It is possible to raytrace the current view from within mged.&nbsp;
But to do so we need a place to display the image.&nbsp; We start up a
framebuffer server (number 1) to accommodate this:
<pre> <tt>
mged> </tt><B><FONT color="#20a020">exec fbserv 1 /dev/sgip &</FONT></B>
</pre>
<p>This runs the ``fbserv'' program which will maintain a framebuffer window
for us.&nbsp; Now we are ready to raytrace an image.&nbsp; First we'll clear the
geometry window of all the primitives and combinations and regions we've
created.&nbsp; Then we display the region we want to raytrace with the
``<a href="mged_cmds.html#e">draw</a>'' command.&nbsp;
Finally, we'll select a nice viewing angle of azimuth 35 elevation 25.&nbsp;
<pre>
<tt>
mged> </tt><B><FONT color="#20a020">Z</FONT></B><tt>
mged> </tt><B><FONT color="#20a020">draw mug.r</FONT></B><tt>
mged> </tt><B><FONT color="#20a020">ae 35 25</FONT></B>
</pre>
Now we are ready to raytrace an image.&nbsp; The ``rt'' command starts the
raytracer on the geometry.&nbsp; We must tell it where we want the pixels displayed
with the ``-F'' option, and the size of the image with the -s option:
<pre>
<tt> mged> </tt><B><FONT color="#20a020">rt -F:1 -s 512</FONT></B>
</pre>
The rt program prints a variety of information when it runs:
<pre><font size=-2>
rt -F:0 -s 512
rt -s50 -M -F:0 -s 512 cup.g mug.r
mged> BRL-CAD Release 4.4 Ray-Tracer
Thu Jan 5 10:08:14 EST 1995, Compilation 1
mike@wilson.arl.mil:/vld/src/brlcad/rt
db title: MGED Tutorial Geometry
initial dynamic memory use=131072.
GETTREE: cpu = 0.001619 sec, elapsed = 0.004842 sec
parent: 0.0user 0.0sys 0:00real 0% 0i+0d 2100maxrss 0+27pf 0+1csw
children: 0.0user 0.0sys 0:00real 0% 0i+0d 0maxrss 0+0pf 0+0csw
Additional dynamic memory used=0. bytes
...................Frame 0...................
PREP: cpu = 0.001296 sec, elapsed = 0.003973 sec
parent: 0.0user 0.0sys 0:00real 0% 0i+0d 2100maxrss 0+7pf 1+0csw
children: 0.0user 0.0sys 0:00real 0% 0i+0d 0maxrss 0+0pf 0+0csw
Additional dynamic memory used=0. bytes
Tree: 3 solids in 1 regions
Model: X(-45,45), Y(-45,116), Z(-8,97)
View: 35 azimuth, 25 elevation off of front view
Orientation: 0.248097, 0.476591, 0.748097, 0.389435
Eye_pos: 87.6646, 90.5654, 97.5286
Size: 236.164mm
Grid: (0.461258, 0.461258) mm, (512, 512) pixels
Beam: radius=0.230629 mm, divergence=0 mm/1mm
Dynamic scanline buffering
Lighting: Ambient = 40%
Implicit light 0: (155.394, -35.3438, 49.9036), aimed at (0, 0, -1)
Implicit light 0: invisible, no shadows, 1000 lumens (83%), halfang=180
SHOT: cpu = 6.66068 sec, elapsed = 7.33342 sec
parent: 6.6user 0.0sys 0:07real 91% 0i+0d 2100maxrss 0+20pf 0+251csw
children: 0.0user 0.0sys 0:07real 0% 0i+0d 0maxrss 0+0pf 0+0csw
Additional dynamic memory used=0. bytes
154520 solid/ray intersections: 94456 hits + 60064 miss
pruned 61.1%: 151248 model RPP, 0 dups skipped, 50361 solid RPP
Frame 0: 262144 pixels in 6.66 sec = 39356.94 pixels/sec
Frame 0: 262144 rays in 6.66 sec = 39356.94 rays/sec (RTFM)
Frame 0: 262144 rays in 6.66 sec = 39356.94 rays/CPU_sec
Frame 0: 262144 rays in 7.33 sec = 35746.50 rays/sec (wallclock)
</font></pre>
If all goes well, you will get an image of a green mug on a black
background.&nbsp;
<br>
<center><a href="mug_green.jpg"><img src="mug_green.gif" alt="green mug"></a></center>
<p>
Now let's improve on our basic cup.&nbsp;
The lip of this cup looks a little too squared off.&nbsp;
To fix this, we'll add a rounded top to the lip.&nbsp;
To do this we create a circular torus solid positioned
at exactly the top of the cup.&nbsp; Then we can
add it to the combination ``cup.c''.
<pre><tt>
mged> </tt><B><FONT color="#20a020">in rim.s tor 0 0 3.5 0 0 1 1.625 0.125</FONT></B><tt>
214 vectors in 0.001814 sec
mged> </tt><B><FONT color="#20a020">comb cup.c u rim.s</FONT></B>
</pre>
Now we have a unique condition.&nbsp; The solid rim.s was added to the list
of objects being displayed when it was created.&nbsp;
However, now it is also a part of mug.r (via cup.c).&nbsp;
<!-- XXX mged should update the display of combinations when they are changed too -->
If we raytrace the current view we will have 2 copies of this
solid.&nbsp;
The raytracer will complain that they overlap.&nbsp;
The best way to fix this is to clear the display, redisplay the new,
complete object, and then raytrace.&nbsp;
The ``<a href="mged_cmds.html#Z">Z</a>'' command clears all
objects from the display. Then we can redisplay the objects we want to raytrace
with the ``<a href="mged_cmds.html#e">draw</a>'' command.
<pre><tt>
mged> </tt><B><FONT color="#20a020">Z</FONT></B><tt>
mged> </tt><B><FONT color="#20a020">draw mug.r</FONT></B>
</pre>
Since this is a frequent operation (clear the display list and draw something new)
there is a shortcut:
<pre><tt>
mged> </tt><B><FONT color="#20a020">B mug.r</FONT></B>
</pre>
The ``<a href="mged_cmds.html#B">B</a>'' is not very easy to remember, (one
suggested mnemonic is "blast") but it is quite useful.
<p>
Now we are ready to raytrace again.
<pre><font size=-2><tt>
mged> </tt><B><FONT color="#20a020">rt -F:1 -s 512</FONT></B><tt>
rt -s50 -M -F:1 -s 512 mug.g mug.r
BRL-CAD Release 4.4 Ray-Tracer
Thu Jan 5 10:08:14 EST 1995, Compilation 1
mike@wilson.arl.mil:/vld/src/brlcad/rt
db title: MGED Tutorial Geometry
initial dynamic memory use=131072.
GETTREE: cpu = 0.001785 sec, elapsed = 0.005385 sec
parent: 0.0user 0.0sys 0:00real 0% 0i+0d 2152maxrss 0+31pf 0+1csw
children: 0.0user 0.0sys 0:00real 0% 0i+0d 0maxrss 0+0pf 0+0csw
Additional dynamic memory used=0. bytes
...................Frame 0...................
PREP: cpu = 0.001468 sec, elapsed = 0.004084 sec
parent: 0.0user 0.0sys 0:00real 0% 0i+0d 2152maxrss 0+7pf 1+0csw
children: 0.0user 0.0sys 0:00real 0% 0i+0d 0maxrss 0+0pf 0+0csw
Additional dynamic memory used=0. bytes
Tree: 4 solids in 1 regions
Model: X(-45,45), Y(-45,116), Z(-8,97)
View: 35 azimuth, 25 elevation off of front view
Orientation: 0.248097, 0.476591, 0.748097, 0.389435
Eye_pos: 87.6646, 90.5654, 116.579
Size: 236.164mm
Grid: (0.461258, 0.461258) mm, (512, 512) pixels
Beam: radius=0.230629 mm, divergence=0 mm/1mm
Dynamic scanline buffering
Lighting: Ambient = 40%
Implicit light 0: (155.394, -35.3438, 49.9036), aimed at (0, 0, -1)
Implicit light 0: invisible, no shadows, 1000 lumens (83%), halfang=180
SHOT: cpu = 7.26825 sec, elapsed = 7.94901 sec
parent: 7.2user 0.0sys 0:07real 92% 0i+0d 2152maxrss 0+22pf 1+270csw
children: 0.0user 0.0sys 0:07real 0% 0i+0d 0maxrss 0+0pf 0+0csw
Additional dynamic memory used=0. bytes
170747 solid/ray intersections: 99501 hits + 71246 miss
pruned 58.3%: 151252 model RPP, 0 dups skipped, 64892 solid RPP
Frame 0: 262144 pixels in 7.27 sec = 36067.02 pixels/sec
Frame 0: 262144 rays in 7.27 sec = 36067.02 rays/sec (RTFM)
Frame 0: 262144 rays in 7.27 sec = 36067.02 rays/CPU_sec
Frame 0: 262144 rays in 7.95 sec = 32978.18 rays/sec (wallclock)
</font></tt></pre>
<center><a href="rim.jpg"><img src="rim.gif" alt="rounded rim cup"></a></center>
<hr>
<center><font size=+3>Under Construction</font></center>
<a name="solidedit"><h2>Editing Solids</h2></a>
<p>
So far we've focused on creating primitive solids and combinations.&nbsp; Now
let's look at ways of altering and deleting things that already exist.&nbsp;
We'll continue with our example mug geometry.&nbsp; There are a number of
changes that need to be made to make it more realistic.
<ul>
<li>
The handle for the mug is a little awkward.&nbsp;
It sticks out too far from the
side of the mug, and it is too wide.&nbsp;
<li>
The bottom is perfectly flat.&nbsp;
If this were a real cup, any imperfection in the table top would cause it
to wobble.
<li>
The inside bottom corner is too sharp. We need to create a "fillet" at the
seam between side and bottom.
</ul>
<a name="solid
<p>
<p>
<a name="ListingObjects"><h3>Listing Objects</h3></a>
Now let's take a look at what we have. The
``<a href="mged_cmds.html#l">l</a>''
command lists the definition of a combination
or primitive solid.
<pre><tt>
mged> </tt><B><FONT color="#20a020">l mug.r</FONT></B><tt>
mug.r: REGION id=1000 (air=0, los=100, GIFTmater=1) --
Shader 'plastic'
Color 32 128 32
u cup.c
handle.c
</tt></pre>
This tells us that mug.r is a <a href="brlcad_glossary.html#REGION">region</a>
and that it uses the <a href="shaders.html#plastic">plastic</a> shader.
The color of the object is "32 128 32", and it is made up of the union of two
objects: cup.c and handle.c
<p>
If we look at cup.c we get:
<pre><tt>
mged> </tt><B><FONT color="#20a020">l cup.c</FONT></B><tt>
cup.c: --
u - outside.s
inside.s
rim.s
</tt></pre>
Note that this is not a <a href="brlcad_glossary.html#REGION">region</a>
so there are no material properties. The boolean tree indicates that the
object consists of: (outside.s - inside.s) u rim.s which in graph form looks
like:
<pre>
outside.s
/
(-)
/ \
/ inside.s
cup.c -- (u)
\
rim.s
</pre>
The text output of the boolean tree lines up the indentation of the operands
with the operator.&nbsp; So here, because outside.s and inside.s are indented
together, they are the operands to the subtraction operator.&nbsp;
The subtraction operator and rim.s are indented the same amount, so the
result of the subtraction, and rim.s are the operands of the union operator.
<a name="shaders1"><H2>An Introduction to Shaders</h2></a>
<p>
In the example above, we specified that the mug should be rendered with
the ``plastic'' shader.&nbsp; This implements a simple ``phong'' lighting model.
The result can be altered by adjusting parameters that define how the shader
operates.&nbsp; These parameters are:
<center><table border=1>
<tr><th align=left>Parameter</th> <th>Abbrev</th><th>Type</th><th>Range</th><th>default</th></tr>
<tr><th align=left>Shine</th> <th>sh</th><td>int</td> <td>4 ..&nbsp;20</td><td>10</td></tr>
<tr><th align=left>diffuse</th> <th>di</th><td>float</td><td>0 ..&nbsp;1</td><td>0.3</td></tr>
<tr><th align=left>specular</th> <th>sp</th><td>float</td><td>0 ..&nbsp;1</td><td>0.7</td></tr>
<tr><th align=left>transmission</th><th>tr</th><td>float</td><td>0 ..&nbsp;1</td><td>0.0</td></tr>
<tr><th align=left>reflection</th> <th>re</th><td>float</td><td>0 ..&nbsp;1</td><td>0.0</td></tr>
</table></center>
We can alter the look of our mug a bit by specifying some of the parameters to
the plastic shader:
<pre>
<tt>mged> </tt><B><FONT color="#20a020">mater mug.r</FONT></B><tt>
Shader =
Shader? ('del' to delete, CR to skip) </tt><B><FONT color="#20a020">plastic di=.9 sh=4</FONT></B><tt>
Color = (No color specified)
Color R G B (0..255)? ('del' to delete, CR to skip) </tt><B><FONT color="#20a020">32 128 32</FONT></B><tt>
Inherit = 0: lower nodes (towards leaves) override
Inheritance (0|1)? (CR to skip)
mged></tt>
</pre>
<p>If we raytrace the mug now, it has a different appearance.
<!--- XXX raytrace and show --->
<p> Sometimes it is useful to combine the effects of two shaders.&nbsp; The
``stack'' shader was created for this situation.&nbsp; For example, we might want
to apply a blotchy camouflage-like color pattern to the mug.&nbsp; The ``camo''
shader provides the color pattern, while the ``plastic'' shader provides the
lighting model.&nbsp;
<pre>
<tt>mged> </tt><B><FONT color="#20a020">mater mug.r</FONT></B><tt>
Shader = plastic
Shader? ('del' to delete, CR to skip) </tt><B><FONT
color="#20a020">stack camo s=10;plastic</FONT></B><tt>
Color = 32 128 32
Color R G B (0..255)? ('del' to delete, CR to skip)
Inherit = 0: lower nodes (towards leaves) override
Inheritance (0|1)? (CR to skip)
mged> </tt>
</pre>
The ``camo'' shader creates a color pattern using a procedural noise
technique.&nbsp; It computes a fBm value based upon the point being shaded.&nbsp; To
compute this value it needs to be able to map coordinates in model space
into a noise space.&nbsp; The most important parameter to specify is ``size''.&nbsp;
This tells the shader what the spacing is (in millimeters) of grid points
from the noise space.&nbsp; It also gives us a rough bound on the size of the blobs
of color it creates.&nbsp;
<center>
<table border=1>
<tr><th align=left>Parameter</th> <th>abbrev</th><th>type</th><th>default</th></tr>
<tr><th align=left>Lacunarity</th> <th>l</th> <td>float</td><td>2.1753974</td></tr>
<tr><th align=left>H_value</th> <th>H</th> <td>float</td><td>1.0</td></tr>
<tr><th align=left>octaves</th> <th>o</th> <td>int</td><td>4</td></tr>
<tr><th align=left>delta</th> <th>d</th> <td>float vector</td><td>1000.0, 1000.0, 1000.0</td></tr>
<tr><th align=left>Threshold 1</th><th>t1</td><td>float</td><td>-0.25</td></tr>
<tr><th align=left>Threshold 2</th><th>t2</td><td>float</td><td>0.25</td></tr>
<tr><th align=left>size</th> <th>s</th> <td>float</td><td>1.0</td></tr>
<tr><th align=left>color 1</th> <th>c1</td><td>int vector</td><td>97, 74, 41</td></tr>
<tr><th align=left>color 2</th> <th>c2</td><td>int vector</td><td>26, 77, 10</td></tr>
<tr><th align=left>color 3</th> <th>c3</td><td>int vector</td><td>38, 38, 38</td></tr>
</table></center>
<p>This time we will raytrace the image with a grey background instead of
black.&nbsp; We specify this with the -C option:
<pre>
<tt> mged> </tt><B><FONT color="#20a020">rt -F:1 -s 128 -C100/100/100</FONT></B>
</pre>
<a href="mug_camo.jpg"><img src="mug_camo.gif" alt="camouflage mug"></a>
<p>
Mged can save a shell script to raytrace the current view.&nbsp; This is done with
the ``saveview'' command.&nbsp;
<pre>
<tt> mged> </tt><B><FONT color="#20a020">saveview mug_camo</FONT></B>
</pre>
If we exit mged we will find a file called ``mug_camo'' in the current
directory.&nbsp; Running this script will start the ``rt'' program to create a file
called mug_camo.pix.&nbsp; If you do not specify the size of the image on the
command line, it will default to a 512x512 image.&nbsp; This file can be displayed
in your framebuffer server window using the ``pix-fb'' command.&nbsp;
<pre>
<tt> % </tt><B><FONT color="#20a020">./mug_camo</FONT></B>
<tt> % </tt><B><FONT color="#20a020">pix-fb mug_camo.pix</FONT></B>
</pre>
<p>When you are done with the framebuffer, you can dismiss the window with
the ``fbfree'' command.&nbsp;
</BODY></HTML>
+38 -37
View File
@@ -1,28 +1,32 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD><TITLE>Mged User's Manual</TITLE></HEAD>
<BODY BGCOLOR="#E0D8c8" Text="#000000">
<a name="solidedit"><h2>Editing Solids</h2></a>
<p>
So far we've focused on creating primitive solids and combinations.&nbsp; Now
let's look at ways of altering and deleting things that already exist.&nbsp;
We'll continue with our example mug geometry.&nbsp; There are a number of
changes that need to be made to make it more realistic.
<ul>
<li>
The handle for the mug is a little awkward.&nbsp;
It sticks out too far from the side of the mug, and it is too wide.&nbsp;
<li>
The bottom is perfectly flat.&nbsp;
Any imperfection in the table top would cause it to wobble.
<li>
The inside bottom corner is too sharp. We need to create a "fillet" at the
seam between side and bottom.
</ul>
<a name="handle"><h3>Fixing the Handle</h3></a>
<pre>
<html>
<head>
<title>Mged User's Manual</title>
<style type="text/css">
body {
background-color: #E0D8C8;
color: #000000;
}
</style>
</head>
<body>
<h2><a name="solidedit">Editing Solids</a></h2>
<p>So far we've focused on creating primitive solids and
combinations.&nbsp; Now let's look at ways of altering and
deleting things that already exist.&nbsp; We'll continue with our
example mug geometry.&nbsp; There are a number of changes that
need to be made to make it more realistic.</p>
<ul>
<li>The handle for the mug is a little awkward.&nbsp; It sticks
out too far from the side of the mug, and it is too
wide.&nbsp;</li>
<li>The bottom is perfectly flat.&nbsp; Any imperfection in the
table top would cause it to wobble.</li>
<li>The inside bottom corner is too sharp. We need to create a
"fillet" at the seam between side and bottom.</li>
</ul>
<h3><a name="handle">Fixing the Handle</a></h3>
<pre>
kill handle.c
kill ring.s
in handle_01.s eto 0 2.25 1.25 1 0 0 .75 0.3 0 0 .15
@@ -32,11 +36,10 @@ in handle_04.s eto 0 2.25 2.5 1 0 0 .75 0.3 0 0 .15
comb handle.c u handle_01.s - handle_02.s - outside.s u handle_04.s - handle_02.s - outside.s u handle_03.s
</pre>
<a href="handle.jpg"><img src="handle.gif" alt="new handle"></a>
<a name="base"><h3>Adding a Base</h3></a>
<pre>
</pre><a href="handle.jpg"><img src="handle.gif" alt=
"new handle"></a>
<h3><a name="base">Adding a Base</a></h3>
<pre>
mvall outside.s outside_01.s
in outside_02.s tor 0 0 0 0 0 1 1.6875 .0625
comb cup.c u outside_02.s
@@ -52,10 +55,8 @@ ae 170 -52 120
rt -s 512 -F :1
<a href="base.jpg"><img src="base.gif" alt="new base"></a>
</pre>
<a name="fillet"><h3>Adding a fillet</h3></a>
<pre>
<h3><a name="fillet">Adding a fillet</a></h3>
<pre>
mvall inside.s inside.c
mv inside.c inside_01.s
solid edit bottom of inside_01.s up to 0 0 0.3125
@@ -66,7 +67,7 @@ B mug.r
ae 35 85
size 5
rt -s 512 -F :1
</pre>
<a href="fillet.jpg"><img src="fillet.gif" alt="inside fillet"></a>
</BODY></HTML>
</pre><a href="fillet.jpg"><img src="fillet.gif" alt=
"inside fillet"></a>
</body>
</html>
+220 -155
View File
@@ -1,178 +1,243 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD><TITLE>Mged User's Manual</TITLE></HEAD>
<BODY BGCOLOR="#E0D8c8" Text="#000000">
<a name="ListingObjects"><h3>Listing Objects</h3></a>
Now let's take a look at what we have. The
``<a href="mged_cmds.html#l">l</a>''
command lists the definition of a combination
or primitive solid.
<pre><tt>
mged> </tt><B><FONT color="#20a020">l mug.r</FONT></B><tt>
<html>
<head>
<title>Mged User's Manual</title>
<style type="text/css">
body {
background-color: #E0D8C8;
color: #000000;
}
div.c2 {text-align: center}
span.c1 {color: #20A020}
</style>
</head>
<body>
<h3><a name="ListingObjects">Listing Objects</a></h3>Now let's
take a look at what we have. The ``<a href=
"mged_cmd_index.html#l">l</a>'' command lists the definition of a
combination or primitive solid.
<pre><tt>
mged&gt; </tt><b><span class="c1">l mug.r</span></b><tt>
mug.r: REGION id=1000 (air=0, los=100, GIFTmater=1) --
Shader 'plastic'
Color 32 128 32
u cup.c
handle.c
</tt></pre>
This tells us that mug.r is a <a href="brlcad_glossary.html#REGION">region</a>
and that it uses the <a href="shaders.html#plastic">plastic</a> shader.
The color of the object is "32 128 32", and it is made up of the union of two
</tt></pre>This tells us that mug.r is a <a href=
"brlcad_glossary.html#REGION">region</a> and that it uses the
<a href="shaders.html#plastic">plastic</a> shader. The color of the
object is "32 128 32", and it is made up of the union of two
objects: cup.c and handle.c
<p>
If we look at cup.c we get:
<pre><tt>
mged> </tt><B><FONT color="#20a020">l cup.c</FONT></B><tt>
<p>If we look at cup.c we get:</p>
<pre><tt>
mged&gt; </tt><b><span class="c1">l cup.c</span></b><tt>
cup.c: --
u - outside.s
inside.s
rim.s
</tt></pre>
Note that this is not a <a href="brlcad_glossary.html#REGION">region</a>
so there are no material properties. The boolean tree indicates that the
object consists of: (outside.s - inside.s) u rim.s which in graph form looks
like:
<pre>
outside.s
/
(-)
/ \
/ inside.s
</tt></pre>Note that this is not a <a href=
"brlcad_glossary.html#REGION">region</a> so there are no material
properties. The boolean tree indicates that the object consists of:
(outside.s - inside.s) u rim.s which in graph form looks like:
<pre>
outside.s
/
(-)
/ \
/ inside.s
cup.c -- (u)
\
rim.s
</pre>
The text output of the boolean tree lines up the indentation of the operands
with the operator.&nbsp; So here, because outside.s and inside.s are indented
together, they are the operands to the subtraction operator.&nbsp;
The subtraction operator and rim.s are indented the same amount, so the
result of the subtraction, and rim.s are the operands of the union operator.
<a name="shaders1"><H2>An Introduction to Shaders</h2></a>
<p>
In the example above, we specified that the mug should be rendered with
the ``plastic'' shader.&nbsp; This implements a simple ``phong'' lighting model.
The result can be altered by adjusting parameters that define how the shader
operates.&nbsp; These parameters are:
<center><table border=1>
<tr><th align=left>Parameter</th> <th>Abbrev</th><th>Type</th><th>Range</th><th>default</th></tr>
<tr><th align=left>Shine</th> <th>sh</th><td>int</td> <td>4 ..&nbsp;20</td><td>10</td></tr>
<tr><th align=left>diffuse</th> <th>di</th><td>float</td><td>0 ..&nbsp;1</td><td>0.3</td></tr>
<tr><th align=left>specular</th> <th>sp</th><td>float</td><td>0 ..&nbsp;1</td><td>0.7</td></tr>
<tr><th align=left>transmission</th><th>tr</th><td>float</td><td>0 ..&nbsp;1</td><td>0.0</td></tr>
<tr><th align=left>reflection</th> <th>re</th><td>float</td><td>0 ..&nbsp;1</td><td>0.0</td></tr>
</table></center>
We can alter the look of our mug a bit by specifying some of the parameters to
the plastic shader:
<pre>
<tt>mged> </tt><B><FONT color="#20a020">mater mug.r</FONT></B><tt>
\
rim.s
</pre>The text output of the boolean tree lines up the indentation
of the operands with the operator.&nbsp; So here, because outside.s
and inside.s are indented together, they are the operands to the
subtraction operator.&nbsp; The subtraction operator and rim.s are
indented the same amount, so the result of the subtraction, and
rim.s are the operands of the union operator.
<h2><a name="shaders1">An Introduction to Shaders</a></h2>
<p>In the example above, we specified that the mug should be
rendered with the ``plastic'' shader.&nbsp; This implements a
simple ``phong'' lighting model. The result can be altered by
adjusting parameters that define how the shader operates.&nbsp;
These parameters are:</p>
<div class="c2">
<table border="1">
<tr>
<th align="left">Parameter</th>
<th>Abbrev</th>
<th>Type</th>
<th>Range</th>
<th>default</th>
</tr>
<tr>
<th align="left">Shine</th>
<th>sh</th>
<td>int</td>
<td>4 ..&nbsp;20</td>
<td>10</td>
</tr>
<tr>
<th align="left">diffuse</th>
<th>di</th>
<td>float</td>
<td>0 ..&nbsp;1</td>
<td>0.3</td>
</tr>
<tr>
<th align="left">specular</th>
<th>sp</th>
<td>float</td>
<td>0 ..&nbsp;1</td>
<td>0.7</td>
</tr>
<tr>
<th align="left">transmission</th>
<th>tr</th>
<td>float</td>
<td>0 ..&nbsp;1</td>
<td>0.0</td>
</tr>
<tr>
<th align="left">reflection</th>
<th>re</th>
<td>float</td>
<td>0 ..&nbsp;1</td>
<td>0.0</td>
</tr>
</table>
</div>We can alter the look of our mug a bit by specifying some
of the parameters to the plastic shader:
<pre>
<tt>mged&gt; </tt><b><span class="c1">mater mug.r</span></b><tt>
Shader =
Shader? ('del' to delete, CR to skip) </tt><B><FONT color="#20a020">plastic di=.9 sh=4</FONT></B><tt>
Shader? ('del' to delete, CR to skip) </tt><b><span class=
"c1">plastic di=.9 sh=4</span></b><tt>
Color = (No color specified)
Color R G B (0..255)? ('del' to delete, CR to skip) </tt><B><FONT color="#20a020">32 128 32</FONT></B><tt>
Color R G B (0..255)? ('del' to delete, CR to skip) </tt><b><span class="c1">32 128 32</span></b><tt>
Inherit = 0: lower nodes (towards leaves) override
Inheritance (0|1)? (CR to skip)
mged></tt>
mged&gt;</tt>
</pre>
<p>If we raytrace the mug now, it has a different appearance.
<!--- XXX raytrace and show --->
<p> Sometimes it is useful to combine the effects of two shaders.&nbsp; The
``stack'' shader was created for this situation.&nbsp; For example, we might want
to apply a blotchy camouflage-like color pattern to the mug.&nbsp; The ``camo''
shader provides the color pattern, while the ``plastic'' shader provides the
lighting model.&nbsp;
<pre>
<tt>mged> </tt><B><FONT color="#20a020">mater mug.r</FONT></B><tt>
<p>If we raytrace the mug now, it has a different appearance.
<!--= XXX raytrace and show =--></p>
<p>Sometimes it is useful to combine the effects of two
shaders.&nbsp; The ``stack'' shader was created for this
situation.&nbsp; For example, we might want to apply a blotchy
camouflage-like color pattern to the mug.&nbsp; The ``camo''
shader provides the color pattern, while the ``plastic'' shader
provides the lighting model.&nbsp;</p>
<pre>
<tt>mged&gt; </tt><b><span class="c1">mater mug.r</span></b><tt>
Shader = plastic
Shader? ('del' to delete, CR to skip) </tt><B><FONT
color="#20a020">stack camo s=10;plastic</FONT></B><tt>
Shader? ('del' to delete, CR to skip) </tt><b><span class=
"c1">stack camo s=10;plastic</span></b><tt>
Color = 32 128 32
Color R G B (0..255)? ('del' to delete, CR to skip)
Inherit = 0: lower nodes (towards leaves) override
Inheritance (0|1)? (CR to skip)
mged> </tt>
mged&gt; </tt>
</pre>The ``camo'' shader creates a color pattern using a
procedural noise technique.&nbsp; It computes a fBm value based
upon the point being shaded.&nbsp; To compute this value it needs
to be able to map coordinates in model space into a noise
space.&nbsp; The most important parameter to specify is
``size''.&nbsp; This tells the shader what the spacing is (in
millimeters) of grid points from the noise space.&nbsp; It also
gives us a rough bound on the size of the blobs of color it
creates.&nbsp;
<div class="c2">
<table border="1">
<tr>
<th align="left">Parameter</th>
<th>abbrev</th>
<th>type</th>
<th>default</th>
</tr>
<tr>
<th align="left">Lacunarity</th>
<th>l</th>
<td>float</td>
<td>2.1753974</td>
</tr>
<tr>
<th align="left">H_value</th>
<th>H</th>
<td>float</td>
<td>1.0</td>
</tr>
<tr>
<th align="left">octaves</th>
<th>o</th>
<td>int</td>
<td>4</td>
</tr>
<tr>
<th align="left">delta</th>
<th>d</th>
<td>float vector</td>
<td>1000.0, 1000.0, 1000.0</td>
</tr>
<tr>
<th align="left">Threshold 1</th>
<th>t1</th>
<td>float</td>
<td>-0.25</td>
</tr>
<tr>
<th align="left">Threshold 2</th>
<th>t2</th>
<td>float</td>
<td>0.25</td>
</tr>
<tr>
<th align="left">size</th>
<th>s</th>
<td>float</td>
<td>1.0</td>
</tr>
<tr>
<th align="left">color 1</th>
<th>c1</th>
<td>int vector</td>
<td>97, 74, 41</td>
</tr>
<tr>
<th align="left">color 2</th>
<th>c2</th>
<td>int vector</td>
<td>26, 77, 10</td>
</tr>
<tr>
<th align="left">color 3</th>
<th>c3</th>
<td>int vector</td>
<td>38, 38, 38</td>
</tr>
</table>
</div>
<p>This time we will raytrace the image with a grey background
instead of black.&nbsp; We specify this with the -C option:</p>
<pre>
<tt> mged&gt; </tt><b><span class=
"c1">rt -F:1 -s 128 -C100/100/100</span></b>
</pre><a href="mug_camo.jpg"><img src="mug_camo.gif" alt=
"camouflage mug"></a>
<p>Mged can save a shell script to raytrace the current
view.&nbsp; This is done with the ``saveview'' command.&nbsp;</p>
<pre>
<tt> mged&gt; </tt><b><span class=
"c1">saveview mug_camo</span></b>
</pre>If we exit mged we will find a file called ``mug_camo'' in
the current directory.&nbsp; Running this script will start the
``rt'' program to create a file called mug_camo.pix.&nbsp; If you
do not specify the size of the image on the command line, it will
default to a 512x512 image.&nbsp; This file can be displayed in
your framebuffer server window using the ``pix-fb'' command.&nbsp;
<pre>
<tt> % </tt><b><span class="c1">./mug_camo</span></b>
<tt> % </tt><b><span class="c1">pix-fb mug_camo.pix</span></b>
</pre>
The ``camo'' shader creates a color pattern using a procedural noise
technique.&nbsp; It computes a fBm value based upon the point being shaded.&nbsp; To
compute this value it needs to be able to map coordinates in model space
into a noise space.&nbsp; The most important parameter to specify is ``size''.&nbsp;
This tells the shader what the spacing is (in millimeters) of grid points
from the noise space.&nbsp; It also gives us a rough bound on the size of the blobs
of color it creates.&nbsp;
<center>
<table border=1>
<tr><th align=left>Parameter</th> <th>abbrev</th><th>type</th><th>default</th></tr>
<tr><th align=left>Lacunarity</th> <th>l</th> <td>float</td><td>2.1753974</td></tr>
<tr><th align=left>H_value</th> <th>H</th> <td>float</td><td>1.0</td></tr>
<tr><th align=left>octaves</th> <th>o</th> <td>int</td><td>4</td></tr>
<tr><th align=left>delta</th> <th>d</th> <td>float vector</td><td>1000.0, 1000.0, 1000.0</td></tr>
<tr><th align=left>Threshold 1</th><th>t1</td><td>float</td><td>-0.25</td></tr>
<tr><th align=left>Threshold 2</th><th>t2</td><td>float</td><td>0.25</td></tr>
<tr><th align=left>size</th> <th>s</th> <td>float</td><td>1.0</td></tr>
<tr><th align=left>color 1</th> <th>c1</td><td>int vector</td><td>97, 74, 41</td></tr>
<tr><th align=left>color 2</th> <th>c2</td><td>int vector</td><td>26, 77, 10</td></tr>
<tr><th align=left>color 3</th> <th>c3</td><td>int vector</td><td>38, 38, 38</td></tr>
</table></center>
<p>This time we will raytrace the image with a grey background instead of
black.&nbsp; We specify this with the -C option:
<pre>
<tt> mged> </tt><B><FONT color="#20a020">rt -F:1 -s 128 -C100/100/100</FONT></B>
</pre>
<a href="mug_camo.jpg"><img src="mug_camo.gif" alt="camouflage mug"></a>
<p>
Mged can save a shell script to raytrace the current view.&nbsp; This is done with
the ``saveview'' command.&nbsp;
<pre>
<tt> mged> </tt><B><FONT color="#20a020">saveview mug_camo</FONT></B>
</pre>
If we exit mged we will find a file called ``mug_camo'' in the current
directory.&nbsp; Running this script will start the ``rt'' program to create a file
called mug_camo.pix.&nbsp; If you do not specify the size of the image on the
command line, it will default to a 512x512 image.&nbsp; This file can be displayed
in your framebuffer server window using the ``pix-fb'' command.&nbsp;
<pre>
<tt> % </tt><B><FONT color="#20a020">./mug_camo</FONT></B>
<tt> % </tt><B><FONT color="#20a020">pix-fb mug_camo.pix</FONT></B>
</pre>
<p>When you are done with the framebuffer, you can dismiss the window with
the ``fbfree'' command.&nbsp;
</BODY></HTML>
<p>When you are done with the framebuffer, you can dismiss the
window with the ``fbfree'' command.&nbsp;</p>
</body>
</html>
+42 -43
View File
@@ -1,44 +1,43 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>MGED Callbacks</Title>
</HEAD>
<BODY BGCOLOR="#E0D8c8" Text="#000000">
<CENTER><H2>MGED Callbacks</H2></CENTER>
MGED has several callbacks that get called at strategic
times in order to give the GUI a chance to update itself
after something important has happened.
<UL>
<LI>opendb_callback - this is called after opening a database
to update the command windows' title bar and
to update the raytrace control panel.
<LI>begin_edit_callback - this is called at the start of an edit
to reconfigure the GUI's edit menus and to initialize
other parts of the GUI with information about the solid/object
being edited.
<LI>active_edit_callback - this is called during an active edit,
after MGED perceives a change to the solid/object being edited,
to continuously update GUI components during an edit.
<LI>end_edit_callback - this is called at the end of an edit
to reconfigure the GUI to a non-edit configuration.
<LI>output_callback - this is called when things need to be printed
to the command window(s) (i.e. after issuing a command).
<LI>solid_list_callback - this is called whenever MGED's internal
solid list changes. Note - the solid list changes whenever
solids/objects are
<a href="mged_cmd_index.html#e">e'd</a>
up or when they are
<a href="mged_cmd_index.html#d">deleted</a>
from the display.
</UL>
</BODY>
</HTML>
<html>
<head>
<title>MGED Callbacks</title>
<style type="text/css">
body {
background-color: #E0D8C8;
color: #000000;
}
div.c1 {text-align: center}
</style>
</head>
<body>
<div class="c1">
<h2>MGED Callbacks</h2>
</div>MGED has several callbacks that get called at strategic
times in order to give the GUI a chance to update itself after
something important has happened.
<ul>
<li>opendb_callback - this is called after opening a database
to update the command windows' title bar and to update the
raytrace control panel.</li>
<li>begin_edit_callback - this is called at the start of an
edit to reconfigure the GUI's edit menus and to initialize
other parts of the GUI with information about the solid/object
being edited.</li>
<li>active_edit_callback - this is called during an active
edit, after MGED perceives a change to the solid/object being
edited, to continuously update GUI components during an
edit.</li>
<li>end_edit_callback - this is called at the end of an edit to
reconfigure the GUI to a non-edit configuration.</li>
<li>output_callback - this is called when things need to be
printed to the command window(s) (i.e. after issuing a
command).</li>
<li>solid_list_callback - this is called whenever MGED's
internal solid list changes. Note - the solid list changes
whenever solids/objects are <a href=
"mged_cmd_index.html#e">e'd</a> up or when they are <a href=
"mged_cmd_index.html#d">deleted</a> from the display.</li>
</ul>
</body>
</html>
File diff suppressed because it is too large Load Diff
+55 -49
View File
@@ -1,31 +1,38 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>MGED Environment Variables</Title>
</HEAD>
<BODY BGCOLOR="#E0D8c8" Text="#000000">
<CENTER><H2>MGED Environment Variables</H2></CENTER>
<DT><a NAME="DISPLAY"><B>DISPLAY</B></DT>
<DD><I>DISPLAY</I> specifies where to draw the windows.
</DD>
<BR><BR>
<DT><a NAME="BRLCAD_ROOT"><B>BRLCAD_ROOT</B></DT>
<DD><I>BRLCAD_ROOT</I> specifies where to find the root
directory of the installed BRL-CAD package.
</DD>
<BR><BR>
<DT><a NAME="EDITOR"><B>EDITOR</B></DT>
<DD><I>EDITOR</I> specifies which external editor to use
when one is required.
</DD>
<BR><BR>
<!--
<html>
<head>
<title>MGED Environment Variables</title>
<style type="text/css">
body {
background-color: #E0D8C8;
color: #000000;
}
a.c2 {font-weight: bold}
div.c1 {text-align: center}
</style>
</head>
<body>
<div class="c1">
<h2>MGED Environment Variables</h2>
</div>
<dl>
<dt><a class="c2" name="DISPLAY">DISPLAY</a></dt>
<dd><a name="DISPLAY"><i>DISPLAY</i> specifies where to draw
the windows.</a></dd>
<dt><a name="DISPLAY"><br>
<br></a></dt>
<dt><a class="c2" name="BRLCAD_ROOT">BRLCAD_ROOT</a></dt>
<dd><a name="BRLCAD_ROOT"><i>BRLCAD_ROOT</i> specifies where to
find the root directory of the installed BRL-CAD
package.</a></dd>
<dt><a name="BRLCAD_ROOT"><br>
<br></a></dt>
<dt><a class="c2" name="EDITOR">EDITOR</a></dt>
<dd><a name="EDITOR"><i>EDITOR</i> specifies which external
editor to use when one is required.</a></dd>
<dt><a name="EDITOR"><br>
<br>
<!--
<DT><a NAME="MGED_RCFILE"><B>MGED_RCFILE</B></DT>
<DD><I>MGED_RCFILE</I> specifies the full path of an
MGED startup file. If this file exists, it is
@@ -47,25 +54,24 @@
for viewing documentation.
</DD>
<BR><BR>
-->
<DT><a NAME="FB_FILE"><B>FB_FILE</B></DT>
<DD><I>FB_FILE</I> specifies the framebuffer to use when
using applications that require a framebuffer.
</DD>
<BR><BR>
<DT><a NAME="TCL_LIBRARY"><B>TCL_LIBRARY</B></DT>
<DD><I>TCL_LIBRARY</I> specifies where to look for
Tcl files.
</DD>
<BR><BR>
<DT><a NAME="TK_LIBRARY"><B>TK_LIBRARY</B></DT>
<DD><I>TK_LIBRARY</I> specifies where to look for
Tk files.
</DD>
<BR><BR>
</BODY>
</HTML>
--></a></dt>
<dt><a class="c2" name="FB_FILE">FB_FILE</a></dt>
<dd><a name="FB_FILE"><i>FB_FILE</i> specifies the framebuffer
to use when using applications that require a
framebuffer.</a></dd>
<dt><a name="FB_FILE"><br>
<br></a></dt>
<dt><a class="c2" name="TCL_LIBRARY">TCL_LIBRARY</a></dt>
<dd><a name="TCL_LIBRARY"><i>TCL_LIBRARY</i> specifies where to
look for Tcl files.</a></dd>
<dt><a name="TCL_LIBRARY"><br>
<br></a></dt>
<dt><a class="c2" name="TK_LIBRARY">TK_LIBRARY</a></dt>
<dd><a name="TK_LIBRARY"><i>TK_LIBRARY</i> specifies where to
look for Tk files.</a></dd>
<dt><a name="TK_LIBRARY"><br>
<br></a></dt>
<dt><a name="TK_LIBRARY"></a></dt>
</dl>
</body>
</html>
File diff suppressed because it is too large Load Diff
+295 -240
View File
@@ -1,241 +1,296 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>MGED Tcl Variables</Title>
</HEAD>
<BODY BGCOLOR="#E0D8c8" Text="#000000">
<CENTER><H2>MGED Tcl Variables</H2></CENTER>
The use of <I>pathName</I> in this document refers to the Tcl/Tk pathname of
a display manager window.<br><br>
<DT><a NAME="local2base"><B>local2base</B></DT>
<DD><I>local2base</I> specifies the conversion factor that converts local units
to base units (i.e. millimeters).
</DD>
<BR><BR>
<DT><a NAME="base2local"><B>base2local</B></DT>
<DD><I>base2local</I> specifies the conversion factor that converts base units (i.e. millimeters)
to local units.
</DD>
<BR><BR>
<DT><a NAME="localunit"><B>localunit</B></DT>
<DD><I>localunit</I> indicates the local units.
</DD>
<BR><BR>
<DT><a NAME="edit_class"><B>edit_class</B></DT>
<DD><I>edit_class</I> specifies the class of edit that is in effect.
For example, 0 signifies none, 1 signifies translation, 2
signifies rotation and 3 signifies scale.
</DD>
<BR><BR>
<DT><a NAME="edit_solid_flag"><B>edit_solid_flag</B></DT>
<DD><I>edit_solid_flag</I> specifies the type of edit to perform on
the solid being edited. <I>edit_solid_flag</I> is linked to
MGED's internal variable es_edflag.
</DD>
<BR><BR>
<DT><a NAME="edit_object_flag"><B>edit_object_flag</B></DT>
<DD><I>edit_object_flag</I> specifies the type of edit to perform on
the object being edited. <I>edit_object_flag</I> is linked to
MGED's internal variable edobj.
</DD>
<BR><BR>
<DT><a NAME="edit_info"><B>edit_info</B></DT>
<DD><I>edit_info</I> contains detailed information about the current
solid/object being edited.
</DD>
<BR><BR>
<DT><a NAME="glob_compat_mode"><B>glob_compat_mode</B></DT>
<DD><I>glob_compat_mode</I> indicates whether or not to perform
globbing against the database.
</DD>
<BR><BR>
<DT><a NAME="mged_display(state)"><B>mged_display(state)</B></DT>
<DD><I>mged_display(state)</I> specifies the state of MGED. The state string
will be one of the six values listed below.
<UL>
<LI>VIEWING
<LI>SOL PICK
<LI>SOL EDIT
<LI>OBJ PICK
<LI>OBJ PATH
<LI>OBJ EDIT
</UL>
</DD>
<BR><BR>
<DT><a NAME="mged_display(pathName,fps)"><B>mged_display(pathName,fps)</B></DT>
<DD><I>mged_display(pathName,fps)</I> specifies the frames per second that MGED
is able to display.
</DD>
<BR><BR>
<DT><a NAME="mged_display(pathName,aet)"><B>mged_display(pathName,aet)</B></DT>
<DD><I>mged_display(pathName,aet)</I> specifies the current azimuth, elevation and
twist for <I>pathName</I>.
</DD>
<BR><BR>
<DT><a NAME="mged_display(pathName,ang)"><B>mged_display(pathName,ang)</B></DT>
<DD><I>mged_display(pathName,ang)</I> indicates the rates of view rotation.
</DD>
<BR><BR>
<DT><a NAME="mged_display(pathName,center)"><B>mged_display(pathName,center)</B></DT>
<DD><I>mged_display(pathName,center)</I> indicates the view center.
</DD>
<BR><BR>
<DT><a NAME="mged_display(pathName,size)"><B>mged_display(pathName,size)</B></DT>
<DD><I>mged_display(pathName,size)</I> indicates the view size.
</DD>
<BR><BR>
<DT><a NAME="mged_display(pathName,adc)"><B>mged_display(pathName,adc)</B></DT>
<DD><I>mged_display(pathName,adc)</I> specifies information about the angle distance cursor.
</DD>
<BR><BR>
<DT><a NAME="mged_display(path_lhs)"><B>mged_display(path_lhs)</B></DT>
<DD><I>mged_display(path_lhs)</I> indicates the left hand side path.
</DD>
<BR><BR>
<DT><a NAME="mged_display(path_rhs)"><B>mged_display(path_rhs)</B></DT>
<DD><I>mged_display(path_rhs)</I> indicates the right hand side path.
</DD>
<BR><BR>
<DT><a NAME="mged_display(units)"><B>mged_display(units)</B></DT>
<DD><I>mged_display(units)</I> indicates the local units.
</DD>
<BR><BR>
<DT><a NAME="mged_display(keypoint)"><B>mged_display(keypoint)</B></DT>
<DD><I>mged_display(keypoint)</I> indicates the point from which
edits will take place.
</DD>
<BR><BR>
<DT><a NAME="mged_default(geom)"><B>mged_default(geom)</B></DT>
<DD><I>mged_default(geom)</I> is used to specify the size and
position of the command window.
</DD>
<BR><BR>
<DT><a NAME="mged_default(ggeom)"><B>mged_default(ggeom)</B></DT>
<DD><I>mged_default(ggeom)</I> is used to specify the size and
position of the geometry window.
</DD>
<BR><BR>
<DT><a NAME="mged_default(id)"><B>mged_default(id)</B></DT>
<DD><I>mged_default(id)</I> indicates the base id to use if
the user didn't provide an id to the
<a href="mged_cmd_index.html#gui">gui</a>
command. For example, if mged_default(id) is set to myId,
then the following id's will be created as needed: myId_0,
myId_1, myId_2 etc.
</DD>
<BR><BR>
<DT><a NAME="mged_default(pane)"><B>mged_default(pane)</B></DT>
<DD><I>mged_default(pane)</I> indicates the initial active pane. The
keywords, ul, ur, ll, and lr are the only acceptable values.
The keywords refer to ''upper left'', ''upper right'',
''lower left'' and ''lower right'' respectively.
</DD>
<BR><BR>
<DT><a NAME="mged_default(multi_pane)"><B>mged_default(multi_pane)</B></DT>
<DD><I>mged_default(multi_pane)</I> indicates whether to show
four smaller geometry windows at the same time or to show
one larger geometry window.
</DD>
<BR><BR>
<DT><a NAME="mged_default(config)"><B>mged_default(config)</B></DT>
<DD><I>mged_default(config)</I> indicates the initial configuration
of the MGED GUI. A value of ''g'' indicates that only the
geometry window is shown, ''c'' indicates that only the
command window is shown, and ''b'' indicates that both the
geometry and command windows are shown.
Note - this initial configuration specification
only has affect when the command window and geometry windows are
combined together in a single top level window. See the
<a href="mged_tcl_vars.html#mged_default(comb)">mged_default(comb)</a> variable.
</DD>
<BR><BR>
<DT><a NAME="mged_default(display)"><B>mged_default(display)</B></DT>
<DD><I>mged_default(display)</I> indicates where to display the
command window and other tools.
</DD>
<BR><BR>
<DT><a NAME="mged_default(gdisplay)"><B>mged_default(gdisplay)</B></DT>
<DD><I>mged_default(gdisplay)</I> indicates where to display the
geometry window if not combined with the command window. See the
<a href="mged_tcl_vars.html#mged_default(comb)">mged_default(comb)</a> variable.
</DD>
<BR><BR>
<DT><a NAME="mged_default(dm_type)"><B>mged_default(dm_type)</B></DT>
<DD><I>mged_default(dm_type)</I> indicates the default display manager type.
</DD>
<BR><BR>
<DT><a NAME="mged_default(comb)"><B>mged_default(comb)</B></DT>
<DD><I>mged_default(comb)</I> indicates whether or not to combine the
command window with the geometry window in a single top level
window.
</DD>
<BR><BR>
<DT><a NAME="mged_default(edit_style)"><B>mged_default(edit_style)</B></DT>
<DD><I>mged_default(edit_style)</I> indicates the initial edit style.
The edit style determines the behavior of command
line editing. The two possible values are ''emacs'' and ''vi''.
</DD>
<BR><BR>
<DT><a NAME="mged_default(num_lines)"><B>mged_default(num_lines)</B></DT>
<DD><I>mged_default(num_lines)</I> indicates the number of lines to
use in the command window.
</DD>
<BR><BR>
<DT><a NAME="mged_default(tearoff_menus)"><B>mged_default(tearoff_menus)</B></DT>
<DD><I>mged_default(tearoff_menus)</I> indicates whether or not
to use tearoff menus. A tearoff menu is one that has the
ability to become a top level window. That is, it can
remain active and be placed anywhere on the screen.
</DD>
<BR><BR>
<DT><a NAME="mged_default(html_dir)"><B>mged_default(html_dir)</B></DT>
<DD><I>mged_default(html_dir)</I> indicates the directory wherein
to look for the MGED manual.
</DD>
<BR><BR>
<DT><a NAME="mged_default(web_browser)"><B>mged_default(web_browser)</B></DT>
<DD><I>mged_default(web_browser)</I> indicates the web browser to use
for viewing documentation.
</DD>
<BR><BR>
</BODY>
</HTML>
<html>
<head>
<title>MGED Tcl Variables</title>
<style type="text/css">
body {
background-color: #E0D8C8;
color: #000000;
}
a.c2 {font-weight: bold}
div.c1 {text-align: center}
</style>
</head>
<body>
<div class="c1">
<h2>MGED Tcl Variables</h2>
</div>The use of <i>pathName</i> in this document refers to the
Tcl/Tk pathname of a display manager window.<br>
<br>
<dl>
<dt><a class="c2" name="local2base">local2base</a></dt>
<dd><a name="local2base"><i>local2base</i> specifies the
conversion factor that converts local units to base units (i.e.
millimeters).</a></dd>
<dt><a name="local2base"><br>
<br></a></dt>
<dt><a class="c2" name="base2local">base2local</a></dt>
<dd><a name="base2local"><i>base2local</i> specifies the
conversion factor that converts base units (i.e. millimeters)
to local units.</a></dd>
<dt><a name="base2local"><br>
<br></a></dt>
<dt><a class="c2" name="localunit">localunit</a></dt>
<dd><a name="localunit"><i>localunit</i> indicates the local
units.</a></dd>
<dt><a name="localunit"><br>
<br></a></dt>
<dt><a class="c2" name="edit_class">edit_class</a></dt>
<dd><a name="edit_class"><i>edit_class</i> specifies the class
of edit that is in effect. For example, 0 signifies none, 1
signifies translation, 2 signifies rotation and 3 signifies
scale.</a></dd>
<dt><a name="edit_class"><br>
<br></a></dt>
<dt><a class="c2" name=
"edit_solid_flag">edit_solid_flag</a></dt>
<dd><a name="edit_solid_flag"><i>edit_solid_flag</i> specifies
the type of edit to perform on the solid being edited.
<i>edit_solid_flag</i> is linked to MGED's internal variable
es_edflag.</a></dd>
<dt><a name="edit_solid_flag"><br>
<br></a></dt>
<dt><a class="c2" name=
"edit_object_flag">edit_object_flag</a></dt>
<dd><a name="edit_object_flag"><i>edit_object_flag</i>
specifies the type of edit to perform on the object being
edited. <i>edit_object_flag</i> is linked to MGED's internal
variable edobj.</a></dd>
<dt><a name="edit_object_flag"><br>
<br></a></dt>
<dt><a class="c2" name="edit_info">edit_info</a></dt>
<dd><a name="edit_info"><i>edit_info</i> contains detailed
information about the current solid/object being
edited.</a></dd>
<dt><a name="edit_info"><br>
<br></a></dt>
<dt><a class="c2" name=
"glob_compat_mode">glob_compat_mode</a></dt>
<dd><a name="glob_compat_mode"><i>glob_compat_mode</i>
indicates whether or not to perform globbing against the
database.</a></dd>
<dt><a name="glob_compat_mode"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_display(state)">mged_display(state)</a></dt>
<dd><a name="mged_display(state)"><i>mged_display(state)</i>
specifies the state of MGED. The state string will be one of
the six values listed below.</a></dd>
</dl>
<ul>
<li>VIEWING</li>
<li>SOL PICK</li>
<li>SOL EDIT</li>
<li>OBJ PICK</li>
<li>OBJ PATH</li>
<li>OBJ EDIT</li>
</ul>
<dl>
<dd><br>
<br></dd>
<dt><a class="c2" name=
"mged_display(pathName,fps)">mged_display(pathName,fps)</a></dt>
<dd><a name=
"mged_display(pathName,fps)"><i>mged_display(pathName,fps)</i>
specifies the frames per second that MGED is able to
display.</a></dd>
<dt><a name="mged_display(pathName,fps)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_display(pathName,aet)">mged_display(pathName,aet)</a></dt>
<dd><a name=
"mged_display(pathName,aet)"><i>mged_display(pathName,aet)</i>
specifies the current azimuth, elevation and twist for
<i>pathName</i>.</a></dd>
<dt><a name="mged_display(pathName,aet)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_display(pathName,ang)">mged_display(pathName,ang)</a></dt>
<dd><a name=
"mged_display(pathName,ang)"><i>mged_display(pathName,ang)</i>
indicates the rates of view rotation.</a></dd>
<dt><a name="mged_display(pathName,ang)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_display(pathName,center)">mged_display(pathName,center)</a></dt>
<dd><a name=
"mged_display(pathName,center)"><i>mged_display(pathName,center)</i>
indicates the view center.</a></dd>
<dt><a name="mged_display(pathName,center)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_display(pathName,size)">mged_display(pathName,size)</a></dt>
<dd><a name=
"mged_display(pathName,size)"><i>mged_display(pathName,size)</i>
indicates the view size.</a></dd>
<dt><a name="mged_display(pathName,size)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_display(pathName,adc)">mged_display(pathName,adc)</a></dt>
<dd><a name=
"mged_display(pathName,adc)"><i>mged_display(pathName,adc)</i>
specifies information about the angle distance cursor.</a></dd>
<dt><a name="mged_display(pathName,adc)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_display(path_lhs)">mged_display(path_lhs)</a></dt>
<dd><a name=
"mged_display(path_lhs)"><i>mged_display(path_lhs)</i>
indicates the left hand side path.</a></dd>
<dt><a name="mged_display(path_lhs)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_display(path_rhs)">mged_display(path_rhs)</a></dt>
<dd><a name=
"mged_display(path_rhs)"><i>mged_display(path_rhs)</i>
indicates the right hand side path.</a></dd>
<dt><a name="mged_display(path_rhs)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_display(units)">mged_display(units)</a></dt>
<dd><a name="mged_display(units)"><i>mged_display(units)</i>
indicates the local units.</a></dd>
<dt><a name="mged_display(units)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_display(keypoint)">mged_display(keypoint)</a></dt>
<dd><a name=
"mged_display(keypoint)"><i>mged_display(keypoint)</i>
indicates the point from which edits will take place.</a></dd>
<dt><a name="mged_display(keypoint)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_default(geom)">mged_default(geom)</a></dt>
<dd><a name="mged_default(geom)"><i>mged_default(geom)</i> is
used to specify the size and position of the command
window.</a></dd>
<dt><a name="mged_default(geom)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_default(ggeom)">mged_default(ggeom)</a></dt>
<dd><a name="mged_default(ggeom)"><i>mged_default(ggeom)</i> is
used to specify the size and position of the geometry
window.</a></dd>
<dt><a name="mged_default(ggeom)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_default(id)">mged_default(id)</a></dt>
<dd><a name="mged_default(id)"><i>mged_default(id)</i>
indicates the base id to use if the user didn't provide an id
to the</a><a name="mged_default(id)"></a> <a href=
"mged_cmd_index.html#gui">gui</a> command. For example, if
mged_default(id) is set to myId, then the following id's will
be created as needed: myId_0, myId_1, myId_2 etc.</dd>
<dd><br>
<br></dd>
<dt><a class="c2" name=
"mged_default(pane)">mged_default(pane)</a></dt>
<dd><a name="mged_default(pane)"><i>mged_default(pane)</i>
indicates the initial active pane. The keywords, ul, ur, ll,
and lr are the only acceptable values. The keywords refer to
''upper left'', ''upper right'', ''lower left'' and ''lower
right'' respectively.</a></dd>
<dt><a name="mged_default(pane)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_default(multi_pane)">mged_default(multi_pane)</a></dt>
<dd><a name=
"mged_default(multi_pane)"><i>mged_default(multi_pane)</i>
indicates whether to show four smaller geometry windows at the
same time or to show one larger geometry window.</a></dd>
<dt><a name="mged_default(multi_pane)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_default(config)">mged_default(config)</a></dt>
<dd><a name="mged_default(config)"><i>mged_default(config)</i>
indicates the initial configuration of the MGED GUI. A value of
''g'' indicates that only the geometry window is shown, ''c''
indicates that only the command window is shown, and ''b''
indicates that both the geometry and command windows are shown.
Note - this initial configuration specification only has affect
when the command window and geometry windows are combined
together in a single top level window. See the</a><a name=
"mged_default(config)"></a> <a href=
"mged_tcl_vars.html#mged_default(comb)">mged_default(comb)</a>
variable.</dd>
<dd><br>
<br></dd>
<dt><a class="c2" name=
"mged_default(display)">mged_default(display)</a></dt>
<dd><a name=
"mged_default(display)"><i>mged_default(display)</i> indicates
where to display the command window and other tools.</a></dd>
<dt><a name="mged_default(display)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_default(gdisplay)">mged_default(gdisplay)</a></dt>
<dd><a name=
"mged_default(gdisplay)"><i>mged_default(gdisplay)</i>
indicates where to display the geometry window if not combined
with the command window. See the</a><a name=
"mged_default(gdisplay)"></a> <a href=
"mged_tcl_vars.html#mged_default(comb)">mged_default(comb)</a>
variable.</dd>
<dd><br>
<br></dd>
<dt><a class="c2" name=
"mged_default(dm_type)">mged_default(dm_type)</a></dt>
<dd><a name=
"mged_default(dm_type)"><i>mged_default(dm_type)</i> indicates
the default display manager type.</a></dd>
<dt><a name="mged_default(dm_type)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_default(comb)">mged_default(comb)</a></dt>
<dd><a name="mged_default(comb)"><i>mged_default(comb)</i>
indicates whether or not to combine the command window with the
geometry window in a single top level window.</a></dd>
<dt><a name="mged_default(comb)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_default(edit_style)">mged_default(edit_style)</a></dt>
<dd><a name=
"mged_default(edit_style)"><i>mged_default(edit_style)</i>
indicates the initial edit style. The edit style determines the
behavior of command line editing. The two possible values are
''emacs'' and ''vi''.</a></dd>
<dt><a name="mged_default(edit_style)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_default(num_lines)">mged_default(num_lines)</a></dt>
<dd><a name=
"mged_default(num_lines)"><i>mged_default(num_lines)</i>
indicates the number of lines to use in the command
window.</a></dd>
<dt><a name="mged_default(num_lines)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_default(tearoff_menus)">mged_default(tearoff_menus)</a></dt>
<dd><a name=
"mged_default(tearoff_menus)"><i>mged_default(tearoff_menus)</i>
indicates whether or not to use tearoff menus. A tearoff menu
is one that has the ability to become a top level window. That
is, it can remain active and be placed anywhere on the
screen.</a></dd>
<dt><a name="mged_default(tearoff_menus)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_default(html_dir)">mged_default(html_dir)</a></dt>
<dd><a name=
"mged_default(html_dir)"><i>mged_default(html_dir)</i>
indicates the directory wherein to look for the MGED
manual.</a></dd>
<dt><a name="mged_default(html_dir)"><br>
<br></a></dt>
<dt><a class="c2" name=
"mged_default(web_browser)">mged_default(web_browser)</a></dt>
<dd><a name=
"mged_default(web_browser)"><i>mged_default(web_browser)</i>
indicates the web browser to use for viewing
documentation.</a></dd>
<dt><a name="mged_default(web_browser)"><br>
<br></a></dt>
<dt><a name="mged_default(web_browser)"></a></dt>
</dl>
</body>
</html>
-13
View File
@@ -1,13 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Mged Notes</TITLE>
</HEAD>
<BODY BGCOLOR="#E0D8c8" Text="#000000">
<H1>Mged Notes</H1>
<UL>
<LI>Long lines in a Tk text widget are very expensive.
This flaw/feature gets passed on to MGED's command window.
</UL>
</BODY>
</HTML>
-47
View File
@@ -1,47 +0,0 @@
<!--
Whole vehicles, small groups ("Philosophy" section)
Modeling
Geometry: Form, Volume, Shape
Primitive Shapes
Boolean Combinations
DAG, Structure
boolean arcs
matrices
Materials and Appearance
Material types.
Visual Shaders
Creating and Editing Models with MGED
Startup
The display
Faceplate
State Display
Button Menu
Status bar
Displaying Geometry
e
The View
Screen Coordinates
Bounding Volume
Perspective
displaying axes
Creating Solids
in
make
Creating boolean combinations
comb
g
r
Editing Solids
Editing combinations
Editing Matrices
-->
+22 -14
View File
@@ -1,14 +1,22 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Mged User's Manual</TITLE>
</HEAD><BODY BGCOLOR="#E0D8c8" Text="#000000">
<h1 align=center><font size="+3" color="#4040ff">User's Manual</font></h1>
<p>
<h1>Preface</h1>
<p>This manual is designed to get the user familiar with BRL-CAD and
the facilities available for creating and using geometry. To accomplish
this, we start with an introduction to the geometry editor, <em>MGED</em>.
<br>
<a href="mged.html">Next-></a>
</BODY>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Mged User's Manual</title>
<style type="text/css">
body {
background-color: #E0D8C8;
color: #000000;
}
h1.c1 {color: #4040FF; font-size: 172%; text-align: center}
</style>
</head>
<body>
<h1 class="c1">User's Manual</h1>
<h1>Preface</h1>
<p>This manual is designed to get the user familiar with BRL-CAD
and the facilities available for creating and using geometry. To
accomplish this, we start with an introduction to the geometry
editor, <em>MGED</em>.<br>
<a href="mged.html">Next-&gt;</a></p>
</body>
</html>
File diff suppressed because it is too large Load Diff
-2
View File
@@ -1,2 +0,0 @@
joint
solids_on_ray
-169
View File
@@ -1,169 +0,0 @@
.de HD
'sp |1.0i
..
.de FO
.ft R
.tl ''%''
'bp
..
.wh 0 HD
.wh -1.00i FO
.ps 10
.vs 12
.ll 6.6i
.po .8i
.fi
.\" 27 October 1992 - Update to put in troff format.
.\" Last Update to File: 22 February 1993 - to put in info about
.\" all_sf.
.\" Last Update to File: 1 April 1993 - to put in info about firpass
.\" & secpass being able to fire 3 sets of orthogonal rays.
.\" To Print:
.\" troff -Ti300 irprep.tr | dimp -P imt2 &
.ft B
.ce
IRPREP
.sp 2
.ft R
.ce 3
Susan A. Coates
The Army Research Laboratory
ARL-SLAD-BVLD-VMB
.sp 2
This document lists the differences between the IRPREP set of programs in
the BRL-CAD release 4.0 and the set in the subsequent BRL-CAD releases.
.sp 2
.ft B
firpass
.in 0.75i
.ft R
1. Region number and name file is created for use with shapefact
and display.
.sp
2. Make region numbering the same across all files, i.e. region
numbers start at 1 not 0. This affects the diagnostic file,
the second pass file, and the error file.
.sp
3. When there is engine air area this number is printed in the
radius field of the PRISM facet file.
.sp
4. The user is given a choice of PRISM file format (2.0
or 3.0 format).
.sp
5. Additional airs have been added: closed compartment air
(air type 6), exhaust air (air type 7), generic air 1 (air
type 8), and generic air 2 (air type 9).
.sp
6. An additional line was added to the end of the facet file
to indicate the end of the file. PRISM requires this line.
.sp
7. Write out the total surface area when there is no exterior
surface area in the PRISM facet file. This is done because
PRISM will not accept a zero in the exterior surface area
field. (FRED seems to do the same thing.)
.sp
8. Allows three sets of orthogonal rays to be fired. (The user
may still fire only one set of rays if desired.)
.sp 2
.ft B
.in -0.75i
secpass
.sp
.ft R
.in 0.75i
1. Make the numbering scheme for regions the same throughout
all irprep programs i.e. region numbers start at 1 not 0.
In particular this affects the diagnostic file and the error
file.
.sp
2. Correct the format of the conductivity table for PRISM,
it was not in the correct PRISM format (the larger region
must come first).
.sp
3. The user is given a choice of PRISM file format (2.0
or 3.0 format).
.sp
4. Some diagnostic information is no longer printed out.
.sp
5. Allows three sets of orthogonal rays to be fired. (The user may
still fire only one set of rays if desired.)
.sp 2
.ft B
.in -0.75i
shapefact
.ft R
.in 0.75i
.sp
1. The region number and name file is read so that the
numbering of regions is consistent across all irprep
programs.
.sp
2. A generic output file may now be written.
.sp
3. An error file is written.
.sp
4. The format of the regular output file has been changed.
.sp 2
.ft B
.in -0.75i
all_sf
.sp
.ft R
A completely new program that finds the shapefactors for all regions
of an mged file (not just engine regions). This program does not
take in to account any air. Therefore, in order to have the regions
numbered the same as firpass and secpass air should always be listed
after all other regions. This program creates three files: an
output file, a longwave radiation exchange file, and an error file.
The output file lists the shapefactors between each region. The
longwave radiation exchange file if for use with PRISM. This file
is not PRISM ready and the user must fill in the missing parameters
if this file is to be used with PRISM. The error file is basically
used for checking errors in the program and will probably not be
used by the average user.
.sp 2
.ft B
.in -0.75i
display
.sp
.ft R
A completely new program designed to take a PRISM temperature output
file or a generic temperature output file along with an mged file and
ray trace the mged file and assign temperatures to each pixel. A
file is then written that can be read by Analyzer2, see, and see2.
This file contains a temperature for each pixel written on a different
line.
.sp 2
.ft B
see
.sp
.ft R
A new program that displays the output from the program display in an
X-windows environment.
.sp 2
.ft B
see2
.sp
.ft R
A new program that displays the output from the program display on an
SGI machine.
.sp 2
.ft B
pictx
.sp
.ft R
A new program that combines the programs display and see for use in
an X-windows environment.
.sp 2
.ft B
pictsgi
.sp
.ft R
A new program that combines the programs display and see2 for use on
an SGI machine.
.sp 2
See the manual pages for firpass, secpass, shapefact, display, see,
see2, pictx, and pictsgi for more information. Also see the User's
Manual for IRPREP (BRL Special Publication BRL-SP-96, September 1992)
and the report Computer Programs for Generating an Input File for
PRISM and Displaying PRISM Results (BRL report in progress).
+11 -1
View File
@@ -1,5 +1,7 @@
set(embedded_licenses
alphanum.txt
apple.txt
appleseed.txt
art.txt
ayam.txt
b64.txt
@@ -17,14 +19,19 @@ set(embedded_licenses
fontstash.txt
gct.txt
gecode.txt
gdal_gcv_plugin.txt
gdal_gcv_plugin1.txt
gdal_gcv_plugin2.txt
glm.txt
halfedge.txt
humanize.txt
hv3.txt
hv3_combobox.txt
hv3_snit.txt
Inconsolata.txt
libtermlib.txt
lseg_lseg.txt
lseg_pt.txt
lz4.txt
marching_cubes.txt
msinttypes.txt
mt19937ar.txt
@@ -35,12 +42,15 @@ set(embedded_licenses
OpenNURBS.txt
osg.txt
osl.txt
ParaView.txt
pbrt.txt
point_in_polygon.txt
point_in_polyhedron.txt
polygonizer.txt
pstdint.txt
qsort.txt
QFlowLayout.txt
QtADS.txt
QuickHull.txt
realpath.txt
rply.txt
+88
View File
@@ -0,0 +1,88 @@
SIL OPEN FONT LICENSE
Version 1.1 - 26 February 2007
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting — in part or in whole — any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.
file:/src/qged/fonts/Inconsolata.otf
+85
View File
@@ -0,0 +1,85 @@
Copyright (c) 2005-2008 Sandia Corporation, Kitware Inc.
Sandia National Laboratories, New Mexico PO Box 5800 Albuquerque, NM 87185
Kitware Inc.
28 Corporate Drive
Clifton Park, NY 12065
USA
Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive license
for use of this work by or on behalf of the U.S. Government.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* 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.
* Neither the name of Kitware nor the names of any contributors may be used
to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``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 AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
file:/src/qged/pqConsoleWidget.cpp
file:/src/qged/pqConsoleWidget.h
Copyright (c)1993-2013 Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* 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.
* Neither name of Ken Martin, Will Schroeder, or Bill Lorensen nor the
names of any contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``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 AUTHORS OR
CONTRIBUTORS 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.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
-------------------------------------------------------------------------
Copyright 2009 Sandia Corporation.
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
the U.S. Government retains certain rights in this software.
-------------------------------------------------------------------------
file:/src/qged/cadconsole.cpp
file:/src/qged/cadconsole.h
+39
View File
@@ -0,0 +1,39 @@
Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
Contact: http://www.qt-project.org/legal
This file is part of the examples of the Qt Toolkit.
$QT_BEGIN_LICENSE:BSD$
You may use this file under the terms of the BSD license as follows:
"Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* 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.
* Neither the name of Digia Plc and its Subsidiary(-ies) 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 COPYRIGHT HOLDERS AND CONTRIBUTORS
"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 COPYRIGHT
OWNER OR CONTRIBUTORS 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."
$QT_END_LICENSE$
file:/src/qged/QFlowLayout.cpp
file:/src/qged/QFlowLayout.h
+548
View File
@@ -0,0 +1,548 @@
Advanced Docking System for Qt
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System
Copyright (C) 2017-2020 Uwe Kindler
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations below.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it becomes
a de-facto standard. To achieve this, non-free programs must be
allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
GNU LESSER GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
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 library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random
Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!
file:/src/qged/qtads/ads_globals.cpp
file:/src/qged/qtads/ads_globals.h
file:/src/qged/qtads/CMakeLists.txt
file:/src/qged/qtads/DockAreaTabBar.cpp
file:/src/qged/qtads/DockAreaTabBar.h
file:/src/qged/qtads/DockAreaTitleBar.cpp
file:/src/qged/qtads/DockAreaTitleBar.h
file:/src/qged/qtads/DockAreaTitleBar_p.h
file:/src/qged/qtads/DockAreaWidget.cpp
file:/src/qged/qtads/DockAreaWidget.h
file:/src/qged/qtads/DockComponentsFactory.cpp
file:/src/qged/qtads/DockComponentsFactory.h
file:/src/qged/qtads/DockContainerWidget.cpp
file:/src/qged/qtads/DockContainerWidget.h
file:/src/qged/qtads/DockFocusController.cpp
file:/src/qged/qtads/DockFocusController.h
file:/src/qged/qtads/DockingStateReader.cpp
file:/src/qged/qtads/DockingStateReader.h
file:/src/qged/qtads/DockManager.cpp
file:/src/qged/qtads/DockManager.h
file:/src/qged/qtads/DockOverlay.cpp
file:/src/qged/qtads/DockOverlay.h
file:/src/qged/qtads/DockSplitter.cpp
file:/src/qged/qtads/DockSplitter.h
file:/src/qged/qtads/DockWidget.cpp
file:/src/qged/qtads/DockWidget.h
file:/src/qged/qtads/DockWidgetTab.cpp
file:/src/qged/qtads/DockWidgetTab.h
file:/src/qged/qtads/ElidingLabel.cpp
file:/src/qged/qtads/ElidingLabel.h
file:/src/qged/qtads/FloatingDockContainer.cpp
file:/src/qged/qtads/FloatingDockContainer.h
file:/src/qged/qtads/FloatingDragPreview.cpp
file:/src/qged/qtads/FloatingDragPreview.h
file:/src/qged/qtads/IconProvider.cpp
file:/src/qged/qtads/IconProvider.h
file:/src/qged/qtads/linux/FloatingWidgetTitleBar.h
file:/src/qged/qtads/linux/FloatingWidgetTitleBar.cpp
+34
View File
@@ -0,0 +1,34 @@
The Alphanum Algorithm is an improved sorting algorithm for strings
containing numbers. Instead of sorting numbers in ASCII order like a
standard sort, this algorithm sorts numbers in numeric order.
The Alphanum Algorithm is discussed at http://www.DaveKoelle.com
This implementation is Copyright (c) 2008 Dirk Jagdmann <doj@cubic.org>.
It is a cleanroom implementation of the algorithm and not derived by
other's works. In contrast to the versions written by Dave Koelle this
source code is distributed with the libpng/zlib license.
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you
must not claim that you wrote the original software. If you use
this software in a product, an acknowledgment in the product
documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and
must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
Source:
https://github.com/facontidavide/PlotJuggler/blob/master/include/PlotJuggler/alphanum.hpp
file:/src/libged/alphanum.h
+58
View File
@@ -0,0 +1,58 @@
The MIT License (MIT)
Copyright (c) 2010-2013 Francois Beaune, Jupiter Jazz Limited
Copyright (c) 2014-2016 The appleseedhq Organization
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
file:/src/qged/images/appleseed/checkbox_checked_disabled.png
file:/src/qged/images/appleseed/checkbox_checked_enabled.png
file:/src/qged/images/appleseed/checkbox_indeterminate_disabled.png
file:/src/qged/images/appleseed/checkbox_indeterminate_enabled.png
file:/src/qged/images/appleseed/checkbox_unchecked_disabled.png
file:/src/qged/images/appleseed/checkbox_unchecked_enabled.png
file:/src/qged/images/appleseed/combobox_arrow_down_disabled.png
file:/src/qged/images/appleseed/combobox_arrow_down_enabled.png
file:/src/qged/images/appleseed/combobox_arrow_down_selected.png
file:/src/qged/images/appleseed/header_arrow_down_disabled.png
file:/src/qged/images/appleseed/header_arrow_down_enabled.png
file:/src/qged/images/appleseed/header_arrow_up_disabled.png
file:/src/qged/images/appleseed/header_arrow_up_enabled.png
file:/src/qged/images/appleseed/menu_arrow_right_disabled.png
file:/src/qged/images/appleseed/menu_arrow_right_enabled.png
file:/src/qged/images/appleseed/menu_arrow_right_selected.png
file:/src/qged/images/appleseed/radiobutton_checked_disabled.png
file:/src/qged/images/appleseed/radiobutton_checked_enabled.png
file:/src/qged/images/appleseed/radiobutton_checked_enabled_hover.png
file:/src/qged/images/appleseed/radiobutton_unchecked_disabled.png
file:/src/qged/images/appleseed/radiobutton_unchecked_enabled.png
file:/src/qged/images/appleseed/radiobutton_unchecked_enabled_hover.png
file:/src/qged/images/appleseed/scrollbar_arrow_down_disabled.png
file:/src/qged/images/appleseed/scrollbar_arrow_down_enabled.png
file:/src/qged/images/appleseed/scrollbar_arrow_left_disabled.png
file:/src/qged/images/appleseed/scrollbar_arrow_left_enabled.png
file:/src/qged/images/appleseed/scrollbar_arrow_right_disabled.png
file:/src/qged/images/appleseed/scrollbar_arrow_right_enabled.png
file:/src/qged/images/appleseed/scrollbar_arrow_up_disabled.png
file:/src/qged/images/appleseed/scrollbar_arrow_up_enabled.png
file:/src/qged/images/appleseed/spinbox_arrow_down_disabled.png
file:/src/qged/images/appleseed/spinbox_arrow_down_enabled.png
file:/src/qged/images/appleseed/spinbox_arrow_up_disabled.png
file:/src/qged/images/appleseed/spinbox_arrow_up_enabled.png
+2 -2
View File
@@ -14,5 +14,5 @@ freely, subject to the following restrictions:
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
file:/src/libdm/fontstash/fontstash.h
file:/src/libdm/fontstash/glfontstash.h
file:/src/libdm/osgl/fontstash/fontstash.h
file:/src/libdm/osgl/fontstash/glfontstash.h
+23
View File
@@ -0,0 +1,23 @@
Copyright (c) 1998, Frank Warmerdam
Copyright (c) 2007-2015, Even Rouault <even.rouault at spatialys.com>
Copyright (c) 2015, Faza Mahamood
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
file:/src/libgcv/plugins/gdal/gdal_ll.cpp
+314
View File
@@ -0,0 +1,314 @@
================================================================================
OpenGL Mathematics (GLM)
--------------------------------------------------------------------------------
GLM is licensed under The Happy Bunny License or MIT License
BRL-CAD will use glm under the standard MIT license
================================================================================
The MIT License
--------------------------------------------------------------------------------
Copyright (c) 2005 - G-Truc Creation
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
file:/src/qged/display/glm/glm/common.hpp
file:/src/qged/display/glm/glm/detail/_features.hpp
file:/src/qged/display/glm/glm/detail/_fixes.hpp
file:/src/qged/display/glm/glm/detail/_noise.hpp
file:/src/qged/display/glm/glm/detail/_swizzle.hpp
file:/src/qged/display/glm/glm/detail/_swizzle_func.hpp
file:/src/qged/display/glm/glm/detail/_vectorize.hpp
file:/src/qged/display/glm/glm/detail/compute_common.hpp
file:/src/qged/display/glm/glm/detail/compute_vector_relational.hpp
file:/src/qged/display/glm/glm/detail/glm.cpp
file:/src/qged/display/glm/glm/detail/qualifier.hpp
file:/src/qged/display/glm/glm/detail/setup.hpp
file:/src/qged/display/glm/glm/detail/type_float.hpp
file:/src/qged/display/glm/glm/detail/type_half.hpp
file:/src/qged/display/glm/glm/detail/type_mat2x2.hpp
file:/src/qged/display/glm/glm/detail/type_mat2x3.hpp
file:/src/qged/display/glm/glm/detail/type_mat2x4.hpp
file:/src/qged/display/glm/glm/detail/type_mat3x2.hpp
file:/src/qged/display/glm/glm/detail/type_mat3x3.hpp
file:/src/qged/display/glm/glm/detail/type_mat3x4.hpp
file:/src/qged/display/glm/glm/detail/type_mat4x2.hpp
file:/src/qged/display/glm/glm/detail/type_mat4x3.hpp
file:/src/qged/display/glm/glm/detail/type_mat4x4.hpp
file:/src/qged/display/glm/glm/detail/type_quat.hpp
file:/src/qged/display/glm/glm/detail/type_vec1.hpp
file:/src/qged/display/glm/glm/detail/type_vec2.hpp
file:/src/qged/display/glm/glm/detail/type_vec3.hpp
file:/src/qged/display/glm/glm/detail/type_vec4.hpp
file:/src/qged/display/glm/glm/exponential.hpp
file:/src/qged/display/glm/glm/ext.hpp
file:/src/qged/display/glm/glm/ext/matrix_clip_space.hpp
file:/src/qged/display/glm/glm/ext/matrix_common.hpp
file:/src/qged/display/glm/glm/ext/matrix_double2x2.hpp
file:/src/qged/display/glm/glm/ext/matrix_double2x2_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_double2x3.hpp
file:/src/qged/display/glm/glm/ext/matrix_double2x3_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_double2x4.hpp
file:/src/qged/display/glm/glm/ext/matrix_double2x4_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_double3x2.hpp
file:/src/qged/display/glm/glm/ext/matrix_double3x2_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_double3x3.hpp
file:/src/qged/display/glm/glm/ext/matrix_double3x3_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_double3x4.hpp
file:/src/qged/display/glm/glm/ext/matrix_double3x4_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_double4x2.hpp
file:/src/qged/display/glm/glm/ext/matrix_double4x2_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_double4x3.hpp
file:/src/qged/display/glm/glm/ext/matrix_double4x3_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_double4x4.hpp
file:/src/qged/display/glm/glm/ext/matrix_double4x4_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_float2x2.hpp
file:/src/qged/display/glm/glm/ext/matrix_float2x2_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_float2x3.hpp
file:/src/qged/display/glm/glm/ext/matrix_float2x3_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_float2x4.hpp
file:/src/qged/display/glm/glm/ext/matrix_float2x4_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_float3x2.hpp
file:/src/qged/display/glm/glm/ext/matrix_float3x2_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_float3x3.hpp
file:/src/qged/display/glm/glm/ext/matrix_float3x3_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_float3x4.hpp
file:/src/qged/display/glm/glm/ext/matrix_float3x4_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_float4x2.hpp
file:/src/qged/display/glm/glm/ext/matrix_float4x2_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_float4x3.hpp
file:/src/qged/display/glm/glm/ext/matrix_float4x3_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_float4x4.hpp
file:/src/qged/display/glm/glm/ext/matrix_float4x4_precision.hpp
file:/src/qged/display/glm/glm/ext/matrix_int2x2.hpp
file:/src/qged/display/glm/glm/ext/matrix_int2x2_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_int2x3.hpp
file:/src/qged/display/glm/glm/ext/matrix_int2x3_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_int2x4.hpp
file:/src/qged/display/glm/glm/ext/matrix_int2x4_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_int3x2.hpp
file:/src/qged/display/glm/glm/ext/matrix_int3x2_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_int3x3.hpp
file:/src/qged/display/glm/glm/ext/matrix_int3x3_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_int3x4.hpp
file:/src/qged/display/glm/glm/ext/matrix_int3x4_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_int4x2.hpp
file:/src/qged/display/glm/glm/ext/matrix_int4x2_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_int4x3.hpp
file:/src/qged/display/glm/glm/ext/matrix_int4x3_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_int4x4.hpp
file:/src/qged/display/glm/glm/ext/matrix_int4x4_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_projection.hpp
file:/src/qged/display/glm/glm/ext/matrix_relational.hpp
file:/src/qged/display/glm/glm/ext/matrix_transform.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint2x2.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint2x2_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint2x3.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint2x3_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint2x4.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint2x4_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint3x2.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint3x2_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint3x3.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint3x3_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint3x4.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint3x4_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint4x2.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint4x2_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint4x3.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint4x3_sized.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint4x4.hpp
file:/src/qged/display/glm/glm/ext/matrix_uint4x4_sized.hpp
file:/src/qged/display/glm/glm/ext/quaternion_common.hpp
file:/src/qged/display/glm/glm/ext/quaternion_double.hpp
file:/src/qged/display/glm/glm/ext/quaternion_double_precision.hpp
file:/src/qged/display/glm/glm/ext/quaternion_exponential.hpp
file:/src/qged/display/glm/glm/ext/quaternion_float.hpp
file:/src/qged/display/glm/glm/ext/quaternion_float_precision.hpp
file:/src/qged/display/glm/glm/ext/quaternion_geometric.hpp
file:/src/qged/display/glm/glm/ext/quaternion_relational.hpp
file:/src/qged/display/glm/glm/ext/quaternion_transform.hpp
file:/src/qged/display/glm/glm/ext/quaternion_trigonometric.hpp
file:/src/qged/display/glm/glm/ext/scalar_common.hpp
file:/src/qged/display/glm/glm/ext/scalar_constants.hpp
file:/src/qged/display/glm/glm/ext/scalar_int_sized.hpp
file:/src/qged/display/glm/glm/ext/scalar_integer.hpp
file:/src/qged/display/glm/glm/ext/scalar_packing.hpp
file:/src/qged/display/glm/glm/ext/scalar_relational.hpp
file:/src/qged/display/glm/glm/ext/scalar_uint_sized.hpp
file:/src/qged/display/glm/glm/ext/scalar_ulp.hpp
file:/src/qged/display/glm/glm/ext/vector_bool1.hpp
file:/src/qged/display/glm/glm/ext/vector_bool1_precision.hpp
file:/src/qged/display/glm/glm/ext/vector_bool2.hpp
file:/src/qged/display/glm/glm/ext/vector_bool2_precision.hpp
file:/src/qged/display/glm/glm/ext/vector_bool3.hpp
file:/src/qged/display/glm/glm/ext/vector_bool3_precision.hpp
file:/src/qged/display/glm/glm/ext/vector_bool4.hpp
file:/src/qged/display/glm/glm/ext/vector_bool4_precision.hpp
file:/src/qged/display/glm/glm/ext/vector_common.hpp
file:/src/qged/display/glm/glm/ext/vector_double1.hpp
file:/src/qged/display/glm/glm/ext/vector_double1_precision.hpp
file:/src/qged/display/glm/glm/ext/vector_double2.hpp
file:/src/qged/display/glm/glm/ext/vector_double2_precision.hpp
file:/src/qged/display/glm/glm/ext/vector_double3.hpp
file:/src/qged/display/glm/glm/ext/vector_double3_precision.hpp
file:/src/qged/display/glm/glm/ext/vector_double4.hpp
file:/src/qged/display/glm/glm/ext/vector_double4_precision.hpp
file:/src/qged/display/glm/glm/ext/vector_float1.hpp
file:/src/qged/display/glm/glm/ext/vector_float1_precision.hpp
file:/src/qged/display/glm/glm/ext/vector_float2.hpp
file:/src/qged/display/glm/glm/ext/vector_float2_precision.hpp
file:/src/qged/display/glm/glm/ext/vector_float3.hpp
file:/src/qged/display/glm/glm/ext/vector_float3_precision.hpp
file:/src/qged/display/glm/glm/ext/vector_float4.hpp
file:/src/qged/display/glm/glm/ext/vector_float4_precision.hpp
file:/src/qged/display/glm/glm/ext/vector_int1.hpp
file:/src/qged/display/glm/glm/ext/vector_int1_sized.hpp
file:/src/qged/display/glm/glm/ext/vector_int2.hpp
file:/src/qged/display/glm/glm/ext/vector_int2_sized.hpp
file:/src/qged/display/glm/glm/ext/vector_int3.hpp
file:/src/qged/display/glm/glm/ext/vector_int3_sized.hpp
file:/src/qged/display/glm/glm/ext/vector_int4.hpp
file:/src/qged/display/glm/glm/ext/vector_int4_sized.hpp
file:/src/qged/display/glm/glm/ext/vector_integer.hpp
file:/src/qged/display/glm/glm/ext/vector_packing.hpp
file:/src/qged/display/glm/glm/ext/vector_relational.hpp
file:/src/qged/display/glm/glm/ext/vector_uint1.hpp
file:/src/qged/display/glm/glm/ext/vector_uint1_sized.hpp
file:/src/qged/display/glm/glm/ext/vector_uint2.hpp
file:/src/qged/display/glm/glm/ext/vector_uint2_sized.hpp
file:/src/qged/display/glm/glm/ext/vector_uint3.hpp
file:/src/qged/display/glm/glm/ext/vector_uint3_sized.hpp
file:/src/qged/display/glm/glm/ext/vector_uint4.hpp
file:/src/qged/display/glm/glm/ext/vector_uint4_sized.hpp
file:/src/qged/display/glm/glm/ext/vector_ulp.hpp
file:/src/qged/display/glm/glm/fwd.hpp
file:/src/qged/display/glm/glm/geometric.hpp
file:/src/qged/display/glm/glm/glm.hpp
file:/src/qged/display/glm/glm/gtc/bitfield.hpp
file:/src/qged/display/glm/glm/gtc/color_space.hpp
file:/src/qged/display/glm/glm/gtc/constants.hpp
file:/src/qged/display/glm/glm/gtc/epsilon.hpp
file:/src/qged/display/glm/glm/gtc/integer.hpp
file:/src/qged/display/glm/glm/gtc/matrix_access.hpp
file:/src/qged/display/glm/glm/gtc/matrix_integer.hpp
file:/src/qged/display/glm/glm/gtc/matrix_inverse.hpp
file:/src/qged/display/glm/glm/gtc/matrix_transform.hpp
file:/src/qged/display/glm/glm/gtc/noise.hpp
file:/src/qged/display/glm/glm/gtc/packing.hpp
file:/src/qged/display/glm/glm/gtc/quaternion.hpp
file:/src/qged/display/glm/glm/gtc/random.hpp
file:/src/qged/display/glm/glm/gtc/reciprocal.hpp
file:/src/qged/display/glm/glm/gtc/round.hpp
file:/src/qged/display/glm/glm/gtc/type_aligned.hpp
file:/src/qged/display/glm/glm/gtc/type_precision.hpp
file:/src/qged/display/glm/glm/gtc/type_ptr.hpp
file:/src/qged/display/glm/glm/gtc/ulp.hpp
file:/src/qged/display/glm/glm/gtc/vec1.hpp
file:/src/qged/display/glm/glm/gtx/associated_min_max.hpp
file:/src/qged/display/glm/glm/gtx/bit.hpp
file:/src/qged/display/glm/glm/gtx/closest_point.hpp
file:/src/qged/display/glm/glm/gtx/color_encoding.hpp
file:/src/qged/display/glm/glm/gtx/color_space.hpp
file:/src/qged/display/glm/glm/gtx/color_space_YCoCg.hpp
file:/src/qged/display/glm/glm/gtx/common.hpp
file:/src/qged/display/glm/glm/gtx/compatibility.hpp
file:/src/qged/display/glm/glm/gtx/component_wise.hpp
file:/src/qged/display/glm/glm/gtx/dual_quaternion.hpp
file:/src/qged/display/glm/glm/gtx/easing.hpp
file:/src/qged/display/glm/glm/gtx/euler_angles.hpp
file:/src/qged/display/glm/glm/gtx/extend.hpp
file:/src/qged/display/glm/glm/gtx/extended_min_max.hpp
file:/src/qged/display/glm/glm/gtx/exterior_product.hpp
file:/src/qged/display/glm/glm/gtx/fast_exponential.hpp
file:/src/qged/display/glm/glm/gtx/fast_square_root.hpp
file:/src/qged/display/glm/glm/gtx/fast_trigonometry.hpp
file:/src/qged/display/glm/glm/gtx/functions.hpp
file:/src/qged/display/glm/glm/gtx/gradient_paint.hpp
file:/src/qged/display/glm/glm/gtx/handed_coordinate_space.hpp
file:/src/qged/display/glm/glm/gtx/hash.hpp
file:/src/qged/display/glm/glm/gtx/integer.hpp
file:/src/qged/display/glm/glm/gtx/intersect.hpp
file:/src/qged/display/glm/glm/gtx/io.hpp
file:/src/qged/display/glm/glm/gtx/log_base.hpp
file:/src/qged/display/glm/glm/gtx/matrix_cross_product.hpp
file:/src/qged/display/glm/glm/gtx/matrix_decompose.hpp
file:/src/qged/display/glm/glm/gtx/matrix_factorisation.hpp
file:/src/qged/display/glm/glm/gtx/matrix_interpolation.hpp
file:/src/qged/display/glm/glm/gtx/matrix_major_storage.hpp
file:/src/qged/display/glm/glm/gtx/matrix_operation.hpp
file:/src/qged/display/glm/glm/gtx/matrix_query.hpp
file:/src/qged/display/glm/glm/gtx/matrix_transform_2d.hpp
file:/src/qged/display/glm/glm/gtx/mixed_product.hpp
file:/src/qged/display/glm/glm/gtx/norm.hpp
file:/src/qged/display/glm/glm/gtx/normal.hpp
file:/src/qged/display/glm/glm/gtx/normalize_dot.hpp
file:/src/qged/display/glm/glm/gtx/number_precision.hpp
file:/src/qged/display/glm/glm/gtx/optimum_pow.hpp
file:/src/qged/display/glm/glm/gtx/orthonormalize.hpp
file:/src/qged/display/glm/glm/gtx/perpendicular.hpp
file:/src/qged/display/glm/glm/gtx/polar_coordinates.hpp
file:/src/qged/display/glm/glm/gtx/projection.hpp
file:/src/qged/display/glm/glm/gtx/quaternion.hpp
file:/src/qged/display/glm/glm/gtx/range.hpp
file:/src/qged/display/glm/glm/gtx/raw_data.hpp
file:/src/qged/display/glm/glm/gtx/rotate_normalized_axis.hpp
file:/src/qged/display/glm/glm/gtx/rotate_vector.hpp
file:/src/qged/display/glm/glm/gtx/scalar_multiplication.hpp
file:/src/qged/display/glm/glm/gtx/scalar_relational.hpp
file:/src/qged/display/glm/glm/gtx/spline.hpp
file:/src/qged/display/glm/glm/gtx/std_based_type.hpp
file:/src/qged/display/glm/glm/gtx/string_cast.hpp
file:/src/qged/display/glm/glm/gtx/texture.hpp
file:/src/qged/display/glm/glm/gtx/transform.hpp
file:/src/qged/display/glm/glm/gtx/transform2.hpp
file:/src/qged/display/glm/glm/gtx/type_aligned.hpp
file:/src/qged/display/glm/glm/gtx/type_trait.hpp
file:/src/qged/display/glm/glm/gtx/vec_swizzle.hpp
file:/src/qged/display/glm/glm/gtx/vector_angle.hpp
file:/src/qged/display/glm/glm/gtx/vector_query.hpp
file:/src/qged/display/glm/glm/gtx/wrap.hpp
file:/src/qged/display/glm/glm/integer.hpp
file:/src/qged/display/glm/glm/mat2x2.hpp
file:/src/qged/display/glm/glm/mat2x3.hpp
file:/src/qged/display/glm/glm/mat2x4.hpp
file:/src/qged/display/glm/glm/mat3x2.hpp
file:/src/qged/display/glm/glm/mat3x3.hpp
file:/src/qged/display/glm/glm/mat3x4.hpp
file:/src/qged/display/glm/glm/mat4x2.hpp
file:/src/qged/display/glm/glm/mat4x3.hpp
file:/src/qged/display/glm/glm/mat4x4.hpp
file:/src/qged/display/glm/glm/matrix.hpp
file:/src/qged/display/glm/glm/packing.hpp
file:/src/qged/display/glm/glm/simd/common.h
file:/src/qged/display/glm/glm/simd/exponential.h
file:/src/qged/display/glm/glm/simd/geometric.h
file:/src/qged/display/glm/glm/simd/integer.h
file:/src/qged/display/glm/glm/simd/matrix.h
file:/src/qged/display/glm/glm/simd/neon.h
file:/src/qged/display/glm/glm/simd/packing.h
file:/src/qged/display/glm/glm/simd/platform.h
file:/src/qged/display/glm/glm/simd/trigonometric.h
file:/src/qged/display/glm/glm/simd/vector_relational.h
file:/src/qged/display/glm/glm/trigonometric.hpp
file:/src/qged/display/glm/glm/vec2.hpp
file:/src/qged/display/glm/glm/vec3.hpp
file:/src/qged/display/glm/glm/vec4.hpp
file:/src/qged/display/glm/glm/vector_relational.hpp
+31
View File
@@ -0,0 +1,31 @@
https://www.geometrictools.com/GTE/Mathematics/DistPointSegment.h
David Eberly, Geometric Tools, Redmond WA 98052
Copyright (c) 1998-2020
Boost Software License - Version 1.0 - August 17th, 2003
Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:
The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
file:/src/libbg/lseg_pt.c
@@ -22,3 +22,5 @@ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
file:/src/librt/cache_lz4.c
+1 -1
View File
@@ -577,5 +577,5 @@ necessary. Here is a sample; alter the names:
That's all there is to it!
file:/src/libfb/osg_fb_manipulator.h
file:/src/libdm/osgl/osg_fb_manipulator.h
+1 -1
View File
@@ -15,4 +15,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
file:/src/libdm/fontstash/stb_truetype.h
file:/src/libdm/osgl/fontstash/stb_truetype.h
+1 -1
View File
@@ -17,5 +17,5 @@ AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER
IS ON AN "AS IS" BASIS, AND SUN MICROSYSTEMS INC. HAS NO OBLIGATION TO
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
file:/src/libfb/if_X24.c
file:/src/libdm/X/if_X24.c
-1
View File
@@ -12,7 +12,6 @@ set(other_licenses
libvds.txt
libz.txt
linenoise.txt
lz4.txt
OpenNURBS.txt
openscenegraph.txt
poly2tri.txt
-116
View File
@@ -1,116 +0,0 @@
.de HD
'sp |1.0i
..
.de FO
.ft R
.tl ''%''
'bp
..
.wh 0 HD
.wh -1.00i FO
.sp 10
.vs 12
.ll 6.6i
.po .8i
.nf
.\" Last Update to File: 27 October 1992 - to put in troff format
.\" To Print:
.\" troff -Ti300 mk.tr | dimp -P imt2 &
.ft B
.ce
Make Programs
.sp 2
.ft R
.ce 3
Susan A. Coates
The Army Research Laboratory
ARL-SLAD-BVLD-VMB
.sp 2
.fi
This document lists some new programs in BRL-CAD release 4.4 that
create common objects used in mged databases. These programs are
located in the directory proc-db.
.sp
For a more complete description see the manual pages for each program.
.sp 2
.ft B
.nf
mk_bolt
.fi
.ft R
This program creates an mged data base of bolts. There are four types
of bolts that can be created but only one type can be in the data base
at a time. The four types of bolts that may be created are listed
below.
.sp
.in 0.5i
.nf
bolt head
bolt head and washer
bolt head, washer, and bolt stem
bolt head and bolt stem
.fi
.sp
.in -0.5i
Up to twenty-six bolts may be created in one data base. The user may
run this program interactively or he may specify options on a command
line.
.sp 2
.ft B
.nf
mk_handle
.fi
.ft R
This program creates up to twenty-six handles of one size and places
them in a new mged data base. The handles are composed of three
cylinders, two tori, and two arb8s. The top of the handle and the
sides are composed of cylinders. The two bends in the handles are
made by using tori. The arb8s define which part of the tori are to be
used. This program may be run interactively or the user may specify
options on a command line.
.sp 2
.ft B
.nf
mk_window
.fi
.ft R
This program creates an mged data base containing up to twenty-six
windows of the same size. The window is rectangular in shape with
rounded corners. The user may run the program interactively or he may
specify options on the command line.
.sp 2
.ft B
.nf
mk_winfrm
.fi
.ft R
This program creates an mged data base of window frames. Up to
twenty- six window frames of the same size my be created. The window
frame is rectangular in shape with rounded corners. Again, this
program may be run interactively or the user may specify options on
the command line.
.sp 2
.ft B
.nf
mk_gastank
.fi
.ft R
This program creates a solid gas tank with rounded corners. The
object is appropriate for use with radar signature models. It is not
appropriate for infra red models or vulnerability models since the
tank is solid. Again, this program will create up to twenty-six gas
tanks of the same size and place them in a new mged data base. The
user may run the program interactively or he may specify options on
the command line.
.sp 2
.ft B
.nf
mk_wire
.fi
.ft R
This program is used to create up to ten solid wire or fuel segments
by entering the starting and ending points of each segment and the
radius at these points. The maximum number of segments may be
extended to 100 by changing the variable MAXSEG.
View File

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