Compare commits

..
Author SHA1 Message Date
Clifford Yapp fa98b6b94c Work merged into trunk under BRLCAD_ENABLE_BINARY_ATTRIBUTES option - close branch. (svn branch delete)
svn:revision:68290
svn:branch:binary-attributes
svn:account:starseeker
2016-07-14 00:23:08 +00:00
Clifford Yapp 1d2eb7a8d2 Update libbson to 1.3.5, strip it down to essentials
svn:revision:68285
svn:branch:binary-attributes
svn:account:starseeker
2016-07-13 23:02:45 +00:00
Clifford Yapp fa65627150 Fix some syncing issues with trunk
svn:revision:68283
svn:branch:binary-attributes
svn:account:starseeker
2016-07-13 22:41:01 +00:00
Clifford Yapp 0e293b57b8 Sync with trunk thru r68279
svn:revision:68281
svn:branch:binary-attributes
svn:account:starseeker
2016-07-13 22:13:25 +00:00
Thomas Browder 954cd02724 remove unneeded __cplusplus macros
svn:revision:66756
svn:branch:binary-attributes
svn:account:tbrowder2
2015-12-09 16:21:57 +00:00
Thomas Browder cd42d5a38b merged trunk r66743 into binary-attributes branch
svn:revision:66744
svn:branch:binary-attributes
svn:account:tbrowder2
2015-12-07 12:34:12 +00:00
Thomas Browder 32cc34b0d5 merging trunk into branch
svn:revision:66743
svn:branch:binary-attributes
svn:account:tbrowder2
2015-12-05 14:26:09 +00:00
Thomas Browder cbc533dd63 try to use libbson headers
svn:revision:66742
svn:branch:binary-attributes
svn:account:tbrowder2
2015-12-05 14:24:07 +00:00
Thomas Browder 997f87303e need bson.h
svn:revision:66741
svn:branch:binary-attributes
svn:account:tbrowder2
2015-12-05 14:23:30 +00:00
Thomas Browder bb4bca56fb update tests section and BA representation info
svn:revision:66712
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-29 13:08:31 +00:00
Thomas Browder 1c07710e8e save work
svn:revision:66671
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-24 14:03:20 +00:00
Clifford Yapp b1f370cd56 Temporarily add BSON to the reporting list for binary-attributes branch.
svn:revision:66667
svn:branch:binary-attributes
svn:account:starseeker
2015-11-24 02:07:49 +00:00
Thomas Browder 3e500e64bf save work on mged attr command
svn:revision:66666
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-24 00:35:03 +00:00
Clifford Yapp 2d5c52acd5 Don't require BRLCAD_ENABLE_BSON to turn on libbson build.
svn:revision:66661
svn:branch:binary-attributes
svn:account:starseeker
2015-11-23 17:19:02 +00:00
Thomas Browder 658ddb53f2 update info with more details of a working scheme for handling binary attributes as BSON objects
svn:revision:66660
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-23 14:37:19 +00:00
Thomas Browder 3172c8ff23 commit merge of rev 66658
svn:revision:66659
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-23 14:05:57 +00:00
Clifford Yapp 2c00eb0c44 updates, fixes
svn:revision:66656
svn:branch:binary-attributes
svn:account:starseeker
2015-11-23 04:42:59 +00:00
Clifford Yapp cb4a92bd4b Remove autotools build files
svn:revision:66655
svn:branch:binary-attributes
svn:account:starseeker
2015-11-23 04:13:30 +00:00
Clifford Yapp 5f31ee7019 Use relative directories for sources, make a few other tweaks. Untested as yet.
svn:revision:66654
svn:branch:binary-attributes
svn:account:starseeker
2015-11-23 04:12:26 +00:00
Clifford Yapp 49d91518ae Put toplevel configure and install back.
svn:revision:66653
svn:branch:binary-attributes
svn:account:starseeker
2015-11-23 04:10:09 +00:00
Thomas Browder e6dea62c32 ignore auto-generated files
svn:revision:66652
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-23 01:42:32 +00:00
Thomas Browder f29077d926 remove auto-generated file fron version control
svn:revision:66651
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-23 01:05:11 +00:00
Thomas Browder 24ebfae73b remove auto-generated file
svn:revision:66650
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-23 00:19:39 +00:00
Thomas Browder 5bddbc5008 rename per error instructions
svn:revision:66649
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-22 23:39:15 +00:00
Thomas Browder f06ce5a58e weird changes--looks like these files should all be ignored, i.e., they are artifatcs of the build process
svn:revision:66648
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-22 23:29:57 +00:00
Thomas Browder 81bd4b0237 add files from orig source
svn:revision:66647
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-22 23:12:23 +00:00
Thomas Browder 8f9ad51172 initial whack at a cmakefile
svn:revision:66646
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-22 23:04:11 +00:00
Thomas Browder 8ded925717 updated info
svn:revision:66645
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-22 23:02:52 +00:00
Thomas Browder c1453e09a4 add libbson source release 'libbson-1.3.0-beta0'
svn:revision:66644
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-22 21:28:57 +00:00
Thomas Browder 859c8282ea prepare to add libbson as an external required source for binary attributes
svn:revision:66643
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-22 19:52:47 +00:00
Thomas Browder c17ceea043 bring new 'binary-attributes' branch up-to-date with changes in the old 'attr-extension-mods' branch
svn:revision:66641
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-22 18:06:51 +00:00
Thomas Browder 791eec9d8c Creating a new private branch of the trunk for work on binary
attributes to replace the old 'attr-extensions-mod' branch.

svn:revision:66640
svn:branch:binary-attributes
svn:account:tbrowder2
2015-11-22 13:21:58 +00:00
7350 changed files with 975240 additions and 1260077 deletions
+1 -51
View File
@@ -279,7 +279,6 @@ Schueler, Betty J.
Edwards, Eric
SURVICE Engineering, Inc.
Open Source (Doc Camp)
Kregel, Dwayne
SURVICE Engineering, Inc.
@@ -335,37 +334,6 @@ Perez, Alex
2012 November
Open Source (GCI)
Singh, Harmanpreet
nicknames harmanpreet
2013 October
Open Source (Doc Camp)
Kamga, Isaac
nicknames Izak, iiizzzaaakkk
2013 October
Open Source (Doc Camp)
Check, Nyah
nicknames Ch3ck
2013 October
Open Source (Doc Camp)
Scott Nesbitt
2013 October
Open Source (Doc Camp)
Wood, David
2013 November
Open Source (GCI)
Agarwal, Yatharth
2013 November
Open Source (GCI)
McDonald, Rob
2013 November
Open Source
Tannous, Marc
2014 December
Open Source (GCI)
@@ -794,7 +762,7 @@ nicknames huskmate13
2014 January
Open Source
Granroth, Gustave
Gustave Granroth
2014 May
Open Source
@@ -852,20 +820,6 @@ Hanji, Param
2016 March
Open Source (GSoC)
Bagavathy, Rakshika
nicknames tandoorichick
2016 October
Open Source (GSoC)
Gao, Tianyue
2016 December
Open Source (GCI)
Rathore, Shubham
nicknames gabbar1947
2017 April
Open Source
SPECIAL THANKS
--------------
@@ -1172,10 +1126,6 @@ nicknames bchepkwny
2015 December
Open Source
Sagarwal
2017 January
Open Source (GCI)
CORPORATE AND ORGANIZATION SUPPORT
----------------------------------
+14 -40
View File
@@ -15,42 +15,6 @@ on-going issues.
Recent Bugs
-----------
* get_regions tcl command doesn't respond well to situations where
child object names in combs have dashes (the "-" character) in
names. It tries to interpret the dash as an argument delimiter.
Looks like this may be only in situations where the "-" is the
lead character and on Windows? Been hard to reproduce...
* dsp does not facetize correctly with zero elevation areas in the
data - need robustness improvements
* dsp primitives specifying data using Windows style file paths
don't work.
* attempting to create a dsp using a binary object caused a crash on
Linux - need to figure out if this was caused by feeding it the wrong
kind of binary object or some other error...
* screengrab on windows does not work
* Recursive submodel predictably goes infinite, need stack-based
db_walk_tree(): mged> in submodel submodel submodel grid test.g
* running rt -s20 -F file.pix ... does not result in an 20x20 image
being written out. it ends up being 512x512.
* running rt -C255/0/0 -o file.pix ... does not result in the
background color getting used. It does work with -F file.pix, going
through libfb instead of libicv.
* ogl display manager and framebuffer are creating windows with
transparent backgrounds (the glClear color is not being drawn) on
Linux. Presumably a driver-related issue, alpha channel, or expose
event issue. Inspecting further, it may be related to environments
where shmget() fails (or is requested via /dev/oglp) and we get
private memory -- looks like private memory is not initialized
(observed on Mac 10.6, Windows, and Ubuntu Linux using 7.26).
* rtedge's overlay mode appears to be generating different results on
Windows and Linux for the m35 steering wheel (rtwizard rendering
mode D.)
@@ -104,6 +68,14 @@ Recent Bugs
* report of g-iges crashing (on Windows) when exporting a 1.2MB BoT
mesh (presumably imported via stl-g). worked for smaller models.
* ogl display manager and framebuffer are creating windows with
transparent backgrounds (the glClear color is not being drawn) on
Linux. Presumably a driver-related issue, alpha channel, or expose
event issue. Inspecting further, it may be related to environments
where shmget() fails (or is requested via /dev/oglp) and we get
private memory -- looks like private memory is not initialized
(observed on Mac 10.6).
* autoview [scale] isn't updating the wireframe when opening a
database, drawing geometry, then running autoview. the status bar
shows the scale change, but the graphics window remains unaffected
@@ -364,10 +336,9 @@ Recent Bugs
* File->Export seems to not work on Windows
* xpush fails to properly create a hierarchy killing existing objects
resulting in dangling references. This may have been fixed by
r69256, but a model that exposes the issue has to be tested to be
sure.
* xpush fails to properly create a hierarchy leaving some as top-level
objects and killing other existing objects resulting in dangling
references.
* mged on Mac OS X will crash on an X11 call if compiled against
system Tcl/Tk (at least on 10.4 linking against 8.4), see TODO
@@ -486,6 +457,9 @@ Recent Bugs
* triangulation of some pipe in toyjeep.g fails (rather reliably) on
some given bend. fails in nmg_triangulate model().
* tgc reports one hit errors though hit point has 0,0,0 direction
implying that maybe the point was supposedly deleted.
* rtedge is not respecting the -c"set" options. needs to give some
indication that they were parsed too since it ignores unrecognized
values apparently.
+108 -232
View File
@@ -2,144 +2,120 @@
BRL-CAD Interface Change Policy
===============================
This policy describes formal rules for changing an interface that
potentially impacts developers or users. The scope is limited to
public interfaces including developer application programming
interfaces (APIs), user application command-line interfaces (CLIs),
and graphical user interfaces (GUIs). The policy aims to balance
developer agility with interface stability.
Included below are details of BRL-CAD public interface changes that
potentially impact external developers and users. Public interfaces
include developer application programming interface (API) calls as
well as user application command-line interface (CLI) and graphical
user interface (GUI) behaviors. Changes are characterized as:
1) those affecting a new interface,
2) being minimally impacting, or
3) requiring adherence to deprecation policy.
This policy is intentionally designed to balance developer agility,
helping accelerate development, with interface stability, helping
preserve application developer and user investments.
All changes to BRL-CAD are expected to conform to this change policy.
Changes MUST either be:
A) MINIMALLY IMPACTING, or
B) FORMALLY DEPRECATED.
NEW INTERFACE
-------------
Changes to interfaces that have been recently introduced are often
subject to further change and should not yet be relied upon by
application developers or users until they stabilize. They are
allowed to change from release to release and are not subject to
change policy restrictions until they have been included in at least
TWO releases without any change.
MINIMALLY IMPACTING
-------------------
Changes deemed "minimally impacting" can be made at any time. For a
change to be considered as such, its effect must be strictly limited.
Most are itemized under MINIMALLY IMPACTING CHANGES. They MUST be:
If a change to an interface has a suitable and completely equivalent
alternative, the change is deemed to be "minimally impacting" and can
be made during any release. Examples of such changes include renaming
an interface, reordering parameters, adding optional parameters,
adding additional parameters for previously implicit behavior, and
removing unused parameters.
A.1) a relatively new interface
Interfaces introduced recently are often subject to rapid
development change. New interfaces are not subject to formal
deprecation rules until they have been included in at least
TWO releases without change.
A.2) an appreciably broken interface
Interfaces that have been unusable for at least TWO releases
may be fixed, changed, or removed without notice. A broken
interface is one that does not perform its intended function
and does not have secondary utility.
A.3) an elementary change
Simple changes that are trivially accommodated without
conditional logic or manual inspection can be made at will.
It includes mechanical changes that can be automatically
updated by a single static regular expression substitution.
Examples include renaming, reordering parameters, adding
optional parameters, eliminating a duplicate equivalent
interface, adding parameters for implicit behavior, and
removing unused parameters.
Generally, the impact can usually be considered minimally impacting if
a static regular expression search-and-replace is all that is needed
to update calling code, and no manual intervention is required.
FORMALLY DEPRECATED
-------------------
DEPRECATION POLICY
------------------
Changes not minimally impacting must follow formal deprecation
process. This defers significant changes to major release points or
requires public notification in advance. Changes are documented in
this file first as DEPRECATED CHANGES then later as OBSOLETED CHANGES.
An interface may be changed:
If a change will intentionally alter, replace, or remove functionality
that has been documented and published in at least TWO releases, it
must first be announced as DEPRECATED. Otherwise, changes to
interfaces that have not been publicly announced or are not publicly
documented for at least two releases may be changed without notice.
B.1) during a major release (e.g. from 7.*.* to 8.*.*)
The general practice is that public interface changes may go from
deprecated to obsolete, whereby previous behavior is removed or
changed, during one of the following events:
Any change may be made without notice. Major version number
releases imply intrinsic incompatibility or interface change.
a) during a major release (e.g. going from 7.*.* to 8.*.*)
B.2) during a minor release (e.g., from 7.26.* to 7.28.*)
b) during a minor release provided the change was publicly announced
as deprecated beforehand AND sufficient deprecation warning was
given via i) TWO minor releases included the deprecation notice,
and ii) at least THREE months (90 days) have passed since the
deprecation was announced
The interface must be publicly deprecated beforehand with
advance notice given in at least TWO minor releases and after
at least 90 days elapsed since initial release announcement.
c) during any release provided there still exists an EQUIVALENT
alternative interface that does not impose an undue burden on users
or developers (see "MINIMALLY IMPACTING")
Public interfaces scheduled for change should be noted in this file
and visibly marked in the source code. This marking may be the
DEPRECATED keyword on function declarations, #warning "DEPRECATED ..."
pre-processor statements, @DEPRECATED source code comments, and
combinations thereof.
Public interfaces scheduled for removal should be visibly marked as
deprecated during compilation with the DEPRECATED keyword on function
declarations, with #warning "DEPRECATED ..." pre-processor statements,
and with @DEPRECATED in source code comments. Where users are not
adversely affected, a run-time DEPRECATION statement may be printed.
Where usage is not adversely affected, a run-time statement may be
displayed (typically "DEPRECATION WARNING: ..."). All call references
and documentation should be updated prior to obsoleting.
Whenever published functionality is finally removed, move its entry
from the DEPRECATED section below to the REMOVED section for the
version in which it was removed. Make sure the entry retains a
reference to the version in which the item was marked as deprecated.
EXAMPLES
--------
Example #1: rt_shootray() removal
Example #1: Say we decided during 7.50.3 development to remove
rt_shootray() from the API without a replacement. That does NOT
qualify as "minimally impacting" because there's no replacement and
rt_shootray() has been published and documented in more than two
releases. We'd annotate the deprecation in the CHANGES file, mark the
function as DEPRECATED in the API header, and post the 7.50.4 release.
The soonest that function could be removed would be in the 7.54.0
release during 7.53 development. It could NOT be removed in 7.54.2
since it's a patch version, prior to the 7.54 release line, nor even
during 7.54.0 if less than 90 days had passed since 7.50.6 was posted.
It's decided during 7.50.3 development to remove the rt_shootray()
function. That does NOT qualify as "minimally impacting" because
there's no equivalent replacement and rt_shootray() has been published
and documented in more than two releases. The function gets listed as
DEPRECATED in the CHANGES file, marked as DEPRECATED in the API
header, and is published via the 7.50.4 release.
The soonest that function could be removed / obsoleted would be in
7.54.0 during 7.53.* development provided more than 90 days had passed
since the intiial announcement. It could NOT be removed in 7.54.2 as
that's a patch version, prior to 7.54, nor during 7.54.0 if less than
90 days had passed since 7.50.6 was posted.
Example #2: bu_log() mod
It's decided during 7.48.1 development to modify bu_log() by adding an
additional optional enum parameter denoting a message type, e.g.,
bu_log(INFO, ...). This change is considered "minimally impacting"
because it can be characterized by a simple regular expression (e.g.,
"s/bu_log\(/bu_log(INFO, /g)" and calling codes are trivially
accommodated. All calls to bu_log() should be updated to the new form
prior to change announcement.
The function could be changed at any time so long as it's documented
under MINIMALLY IMPACTING CHANGES.
Example #2: Say we decide during 7.48.0 development to modify bu_log()
by adding a new additional enum parameter denoting a message type.
This change is considered minimally impacting because it can be
characterized by a simple regular expression (e.g.,
s/bu_log(/bu_log(PRINT, /g). Updates to calling codes are considered
trivial. The change would get documented in the CHANGES file and all
calls that can be updated must be updated at that time.
**********************************************************************
*** DEPRECATED CHANGES ***
**********************************************************************
(reverse chronological order)
**************
* DEPRECATED *
**************
The interfaces announced below are scheduled to significantly change
or be removed. They are categorized by the release in which
deprecation was first announced. If the inteface change involved a
removal or transition, both the original and new interface names are
generally listed for reference.
Items marked with a "'" (single quote) are undocumented and may be
The items listed below are interfaces that are deprecated. They are
categorized by the release in which the change was made. If the
change involved a removal of a command or function, both the original
and new names should be listed for reference. If an item is marked
with a "'" (single quote), that means it was not documented and may be
removed at any time.
7.28
----
include/vmath.h
VCOMB3, VCOMB3N, VJOIN4
Removed as inconsistent and unused API [deprecated 7.28]
MGED commands
?devel, ?lib, aproposdevel, aproposlib, %, animmate, db_glob,
debugbu, debugdir, debuglib, debugmem, debugnmg, expand,
loadtk, match, memprint, preview, regdebug, regdef, rmats, rrt,
savekey, shaded_mode, sync
Removed as part of distillation effort [deprecated 7.28]
7.26
----
@@ -182,11 +158,12 @@ signal analysis tools
Removed as part of distillation effort [deprecated 7.26]
infrared & shapefactor tools
all_sf', if-X, ifdisp, pictx, showterm, firpass, secpass, shapefact
ssamp-bw, ssampview', ssampview.tcl'
Removed as part of distillation effort [deprecated 7.26]
misc tools
fix_polysolids' : obsolete primitive
remapid : superseded by reid+remat
buffer : unnecessary network/stream buffering tool
buffer : unnecesary network/stream buffering tool
hex : superseded by hexdump
Removed as part of distillation effort [deprecated 7.26]
include/bu/ptbl.h
@@ -269,6 +246,8 @@ include/raytrace.h librt
RT_FREE_TREE -> BU_PUT [deprecation 7.22]
include/bu.h
bu_parse_mm() [deprecated 7.22]
librtserver
becoming stand-alone project, removes optional java dependency [deprecated 7.22]
mged
em, e_muves, l_muves, lm, read_muves, and t_muves MUVES-specific commands [deprecated 7.22]
@@ -376,16 +355,13 @@ include/raytrace.h
struct hit.hit_normal -> RT_HIT_NORMAL [deprecated pre-7.0]
**********************************************************************
*** OBSOLETED CHANGES ***
**********************************************************************
(reverse chronological order)
***********
* REMOVED *
***********
7.28.0
------
libmultispectral, rttherm, ssamp-bw, ssampview, ssampview.tcl
removed, not working in testing [minimally impacting]
Below are the interfaces that have followed deprecation policy or were
deemed minimally impacting and, regardless, are now no longer a part
of BRL-CAD.
7.26.0
------
@@ -418,7 +394,7 @@ Dunn camera and Canon printer tools
genptr_t/GENPTR_NULL
genptr_t -> void* [deprecated 7.16]
include/bu.h
bu_argv0() -> bu_basename(bu_argv0_full_path(), NULL) [deprecated 7.16]
bu_argv0() -> bu_basename(bu_argv0_full_path()); [deprecated 7.16]
include/dm_color.h
dm_color.h -> dm.h [deprecated 7.14]
include/fb.h
@@ -448,7 +424,7 @@ mged
SGI-specific tools
pl-sgi -> pl-fb [deprecated 7.16]
src/gtools
g_diff, g_lint, g_qa, g_transfer -> gdiff, glint, gqa, gtransfer [deprecated 7.14]
g_[toolname] -> g[toolname] [deprecated 7.14]
src/librt/cmd.c
rt_split_cmd() -> bu_argv_from_string() [deprecated 7.12]
any-png.sh
@@ -628,27 +604,22 @@ include/[library].h (several)
[library]_version -> [library]_version() [private]
**********************************************************************
*** MINIMALLY IMPACTING CHANGES ***
**********************************************************************
(forward chronological order)
***********************************
* MINIMALLY IMPACTING API CHANGES *
***********************************
All minimally impacting changes are listed by release as regular
expressions. Unless noted otherwise, expressions are shown using Perl
syntax (i.e., the '(', ')', and '|' characters pertain to
subexpression captures, escaping with '\' matches literally.
Expressions should apply via:
Included in following are various minimally impacting API changes that
have been identified in chronological order. As expressions are not
extensively tested, use with caution.
perl -0777 -pi -e 'EXPRESSION' FILE
To apply an expression to an entire source tree, the following pattern
may work:
Unless noted otherwise, expressions are shown using Perl syntax and
may need adjustment (particularly quoting of '(', ')', and '|'
characters) for other environments. Most expressions will apply with:
perl -0777 -pi -e 'EXPRESSION' FILE
To apply them to an entire SVN checkout, the following pattern is useful:
find . -type f -not -path "*.svn/*" -regex '.*\(c\|cpp\|cxx\|h\|hpp\)$' -exec perl -0777 -pi -e 'EXPRESSION' {} \;
Expressions are minimally tested, use with caution. Make a backup.
6.0 (sed lines)
---
g/struct structparse/s//struct bu_structparse/g
@@ -1239,98 +1210,3 @@ s/bu_dir_list/bu_file_list/g
bu_dir_list -> bu_file_list [7.25]
s/BU_FNMATCH_NOMATCH/1/g
don't use an explicit define for the non-matching case [7.25]
s/bu_basename\(([^\)]*)\)/bu_basename(\1, NULL)/g
pass NULL argument to get a dynamically allocated buffer back [7.25]
7.28
----
s/bu_free_array/bu_free_args/g
fixed misleading name [7.26]
s/(#[[:space:]]*include[[:space:]]+["<])bu\/rb\.h/\1bu\/redblack.h/g
clearer header name [7.26]
s/rt_plot_vlblock/bn_plot_vlblock/g
s/rt_vlist_to_uplot/bn_vlist_to_uplot/g
move vlist functions to libbn [7.26]
s/rt_nurb_bezier/nmg_nurb_bezier/g
s/rt_nurb_c_split/nmg_nurb_c_split/g
s/rt_nurb_free_cnurb/nmg_nurb_free_cnurb/g
s/rt_nurb_free_snurb/nmg_nurb_free_snurb/g
s/rt_nurb_intersect/nmg_nurb_intersect/g
s/rt_nurb_new_cnurb/nmg_nurb_new_cnurb/g
s/rt_nurb_new_snurb/nmg_nurb_new_snurb/g
s/rt_nurb_s_eval/nmg_nurb_s_eval/g
s/rt_nurb_s_norm/nmg_nurb_s_norm/g
s/rt_nurb_uv_hit/nmg_nurb_uv_hit/g
s/rt_arc2d_to_cnurb/nmg_arc2d_to_cnurb/g
s/rt_join_cnurbs/nmg_join_cnurbs/g
s/rt_nurb_c_eval/nmg_nurb_c_eval/g
s/rt_nurb_c_print/nmg_nurb_c_print/g
s/rt_nurb_kvgen/nmg_nurb_kvgen/g
s/rt_nurb_kvmerge/nmg_nurb_kvmerge/g
s/rt_nurb_s_print/nmg_nurb_s_print/g
s/rt_nurb_s_refine/nmg_nurb_s_refine/g
s/rt_bez_check/nmg_bez_check/g
s/rt_nurb_back_solve/nmg_nurb_back_solve/g
s/rt_nurb_basis_eval/nmg_nurb_basis_eval/g
s/rt_nurb_c_bound/nmg_nurb_c_bound/g
s/rt_nurb_c_check/nmg_nurb_c_check/g
s/rt_nurb_c_diff/nmg_nurb_c_diff/g
s/rt_nurb_c_refine/nmg_nurb_c_refine/g
s/rt_nurb_c_xsplit/nmg_nurb_c_xsplit/g
s/rt_nurb_calc_oslo/nmg_nurb_calc_oslo/g
s/rt_nurb_cinterp/nmg_nurb_cinterp/g
s/rt_nurb_clean_cnurb/nmg_nurb_clean_cnurb/g
s/rt_nurb_clip_srf/nmg_nurb_clip_srf/g
s/rt_nurb_crv_copy/nmg_nurb_crv_copy/g
s/rt_nurb_crv_flat/nmg_nurb_crv_flat/g
s/rt_nurb_curvature/nmg_nurb_curvature/g
s/rt_nurb_doolittle/nmg_nurb_doolittle/g
s/rt_nurb_eval_crv/nmg_nurb_eval_crv/g
s/rt_nurb_forw_solve/nmg_nurb_forw_solve/g
s/rt_nurb_free_oslo/nmg_nurb_free_oslo/g
s/rt_nurb_gen_knot_vector/nmg_nurb_gen_knot_vector/g
s/rt_nurb_knot_index/nmg_nurb_knot_index/g
s/rt_nurb_kvcheck/nmg_nurb_kvcheck/g
s/rt_nurb_kvcopy/nmg_nurb_kvcopy/g
s/rt_nurb_kvextract/nmg_nurb_kvextract/g
s/rt_nurb_kvknot/nmg_nurb_kvknot/g
s/rt_nurb_kvmult/nmg_nurb_kvmult/g
s/rt_nurb_kvnorm/nmg_nurb_kvnorm/g
s/rt_nurb_map_oslo/nmg_nurb_map_oslo/g
s/rt_nurb_mesh_diff/nmg_nurb_mesh_diff/g
s/rt_nurb_mk_poly/nmg_nurb_mk_poly/g
s/rt_nurb_p_mat/nmg_nurb_p_mat/g
s/rt_nurb_plot_cnurb/nmg_nurb_plot_cnurb/g
s/rt_nurb_plot_snurb/nmg_nurb_plot_snurb/g
s/rt_nurb_poly/nmg_nurb_poly/g
s/rt_nurb_pr_crv/nmg_nurb_pr_crv/g
s/rt_nurb_pr_kv/nmg_nurb_pr_kv/g
s/rt_nurb_pr_mesh/nmg_nurb_pr_mesh/g
s/rt_nurb_pr_oslo/nmg_nurb_pr_oslo/g
s/rt_nurb_print_pt_type/nmg_nurb_print_pt_type/g
s/rt_nurb_project_srf/nmg_nurb_project_srf/g
s/rt_nurb_region_from_srf/nmg_nurb_region_from_srf/g
s/rt_nurb_s_bound/nmg_nurb_s_bound/g
s/rt_nurb_s_check/nmg_nurb_s_check/g
s/rt_nurb_s_diff/nmg_nurb_s_diff/g
s/rt_nurb_s_flat/nmg_nurb_s_flat/g
s/rt_nurb_s_plot/nmg_nurb_s_plot/g
s/rt_nurb_s_split/nmg_nurb_s_split/g
s/rt_nurb_s_xsplit/nmg_nurb_s_xsplit/g
s/rt_nurb_scopy/nmg_nurb_scopy/g
s/rt_nurb_sinterp/nmg_nurb_sinterp/g
s/rt_nurb_solve/nmg_nurb_solve/g
s/rt_nurb_to_poly/nmg_nurb_to_poly/g
rename old nurbs functions intertwined with nmg to use nmg prefix [7.26]
s/RTG.NMG_debug/nmg_debug/g
make nmg debug flag top level, like libbu's [7.26]
s/BU_ASSERT(_[A-Z_]+)\(([^,]+|.*\(.*,.*\)),([^,]+|.*\(.*,.*\)),([^,]+|.*\(.*,.*\))\);/BU_ASSERT(\2\3\4);/g
consolidated BU_ASSERT_PTR, BU_ASSERT_LONG, BU_ASSERT_SIZE_T, BU_ASSERT_SSIZE_T, BU_ASSERT_DOUBLE [7.26]
s/BU_FLSTR/CPP_FILELINE/g
s/vert_root/bn_vert_tree/g
s/create_vert_tree[[:space:]]*\(/bn_vert_tree_create\(/g
s/create_vert_tree_w_norms[[:space:]]*\(/bn_vert_tree_create_w_norms\(/g
s/free_vert_tree[[:space:]]*\(/bn_vert_tree_destroy\(/g
s/Add_vert[[:space:]]*\(([^,]*,)([^,]*,)([^,]*,)([^,]*,)/bn_vert_tree_add\(\4\1\2\3/g
s/Add_vert_and_norm[[:space:]]*\(([^,]*,)([^,]*,)([^,]*,)([^,]*,)([^,]*,)([^,]*,)([^,]*,)/bn_vert_tree_add_w_norm\(\7\1\2\3\4\5\6/g
s/clean_vert_tree[[:space:]]*\(/bn_vert_tree_clean\(/g
+647 -1113
View File
File diff suppressed because it is too large Load Diff
+43126 -4388
View File
File diff suppressed because it is too large Load Diff
+22 -20
View File
@@ -285,6 +285,13 @@ libfft: The Fast-Fourier Transform library is a signal processing
library for performing FFTs or inverse FFTs efficiently.
Depends on: libm
libmultispectral: The multispectral optics library is a separate
compilation mode of the optics library where support for additional
bands of energy are added. By providing a defined spectrum of energy,
the raytrace library will produce different signal analyses for a
given set of geometry.
Depends on: librt libbn libbu libtcl
liboptical: The optical library is the basis for BRL-CAD's shaders.
This includes shaders such as the Phong and Cook-Torrence lighting
models, as well as various visual effects such as texturing, marble,
@@ -541,7 +548,7 @@ math for portability and performance reasons. When floating point
comparisons are necessary, use the NEAR_EQUAL and NEAR_ZERO macros
with a specified tolerance or the EQUAL and ZERO macros where a
tolerance is indeterminate (all the macros are available by including
vmath.h). Examples:
bn.h, part of libbn). Examples:
For known tolerances:
@@ -1323,8 +1330,6 @@ Release steps are as follows:
#####################################################################
# 09: Sync RELEASE to STABLE branch:
# Update the NEWS release date for the current release to today's date
# NON-AUTO: Review the log and obtain the last merge revision
# number from comments.
svn log --stop-on-copy https://svn.code.sf.net/p/brlcad/code/brlcad/branches/STABLE | less
@@ -1396,32 +1401,32 @@ Release steps are as follows:
SFUSERNAME=`ls ~/.subversion/auth/svn.simple/* | xargs -n 1 grep -A4 sourceforge | tail -1`
echo "SFUSERNAME=$SFUSERNAME MAJOR=$MAJOR MINOR=$MINOR PATCH=$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net create
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH"
# create binary dirs (as needed)
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH"
ssh -v $SFUSERNAME,brlcad@shell.sf.net mkdir "/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH"
# upload source dist and any binaries
scp brlcad-$MAJOR.$MINOR.$PATCH* "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
scp brlcad-$MAJOR.$MINOR.$PATCH* "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
# extract and upload release notes to source dir
cat ../NEWS | tr '\n' '@' | perl -p -e "s/.*?(@---[[:space:]@-]*[0-9]{4}-[0-9]{2}-[0-9]{2}[[:space:]]*Release[[:space:]]*${MAJOR}\.${MINOR}\.${PATCH}[[:space:]@-]*.*?)@---.*/\1/" | tr '@' '\n' > README-${MAJOR}-${MINOR}-${PATCH}.txt
cat ../NEWS | tr '\n' '@' | perl -pi -e "s/.*?(@---[[:space:]@-]*[0-9]{4}-[0-9]{2}-[0-9]{2}[[:space:]]*Release[[:space:]]*${MAJOR}\.${MINOR}\.${PATCH}[[:space:]@-]*.*?)@---.*/\1/" | tr '@' '\n' > README-${MAJOR}-${MINOR}-${PATCH}.txt
echo "Release notes for $MAJOR.$MINOR.$PATCH" && echo "==="
cat README-$MAJOR-$MINOR-$PATCH.txt && echo "==="
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ Source/$MAJOR.$MINOR.$PATCH/."
# NON-AUTO: Following the NAMING A BINARY RELEASE convention,
# upload any release binaries and platform-specific release notes.
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ Runtime\ Libraries/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ BSD/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Linux/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Mac\ OS\ X/$MAJOR.$MINOR.$PATCH/."
scp README-$MAJOR-$MINOR-$PATCH.txt "$SFUSERNAME,brlcad@shell.sf.net:/home/frs/project/b/br/brlcad/BRL-CAD\ for\ Windows/$MAJOR.$MINOR.$PATCH/."
# NON-AUTO: Be sure to mark binaries as default download, then
# close shell session
@@ -1451,9 +1456,6 @@ Release steps are as follows:
Slackware maintainer
http://slackbuilds.org/result/?search=brlcad
Fedora maintainer
https://fedoraproject.org/wiki/User:Germano#Contact
#####################################################################
# 18: Announce the new release.
+18 -29
View File
@@ -1,6 +1,8 @@
The Installation Guide to BRL-CAD
=================================
Please read this document if you are interested in installing BRL-CAD.
This document covers the basics of installing BRL-CAD from either a
source or binary distribution. Please see the 'Reporting Problems'
section if you run into any trouble installing BRL-CAD.
@@ -544,17 +546,6 @@ first for a system version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_TINYCTHREAD
--- BRLCAD_LZ4 ---
Option for enabling and disabling compilation of the lz4 data
compression library provided with BRL-CAD's source code. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_LZ4
--- BRLCAD_FREETYPE ---
Option for enabling and disabling compilation of the FreeType
@@ -731,6 +722,15 @@ version if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_SPR
--- BRLCAD_BSON ---
Option for enabling and disabling compilation of the Libbson library
provided with BRL-CAD's source code. Default is BUNDLED, using
the included other/src version.
Aliases: ENABLE_BSON
--- BRLCAD_SC ---
Option for enabling and disabling compilation of the NIST Step Class
@@ -773,26 +773,15 @@ AUTO.
Aliases: ENABLE_GDIAM
--- BRLCAD_PROJ4 ---
--- BRLCAD_BULLET ---
Option for enabling and disabling compilation of the PROJ.4 geographic
projection library provided with BRL-CAD's source code. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Option for enabling and disabling compilation of the Bullet Realtime
Physics Simulation Libraries provided with BRL-CAD's source
distribution. Default is AUTO, responsive to the toplevel
BRLCAD_BUNDLED_LIBS option and testing first for a system version
if BRLCAD_BUNDLED_LIBS is also AUTO.
Aliases: ENABLE_PROJ4
--- BRLCAD_GDAL ---
Option for enabling and disabling compilation of the GDAL geographic
library provided with BRL-CAD's source code. Default
is AUTO, responsive to the toplevel BRLCAD_BUNDLED_LIBS option and
testing first for a system version if BRLCAD_BUNDLED_LIBS is also
AUTO.
Aliases: ENABLE_GDAL
Aliases: ENABLE_BULLET
+11 -137
View File
@@ -10,121 +10,26 @@ descriptive text that emphasizes or further describes significant
changes made. See document footer for additional details.
----------------------------------------------------------------------
--- 201X-XX-XX Release 7.28.0 ---
--- 2016-07-XX Release 7.26.2 ---
----------------------------------------------------------------------
* Remove libmultispectral, rttherm, and related code/docs - Cliff Yapp
----------------------------------------------------------------------
--- 2017-09-22 Release 7.26.4 ---
--- 2016-06-XX Release 7.26.0 ---
----------------------------------------------------------------------
This is a patch release, primary focused on updates to the build
system logic.
This major release update of BRL-CAD culminates several years of
development efforts to provide robust boundary representation (BREP)
NURBS import and ray tracing support. Our NURBS capability gets us a
step closer to full hybrid representation modeling, supporting
seamless transitioning and mixing of boundary representation geometry
(e.g., NURBS or polygonal meshes) with implicit representation
geometry (e.g., primitives with CSG).
* fixed MGED bindings behavior for c, A, P, and S chars - Bob Parker
* fixed gdiff usage statement - Sean Morrison
* removed anim.txt, sun.txt, tube.txt and movie.txt - Cliff Yapp
----------------------------------------------------------------------
--- 2017-06-10 Release 7.26.2 ---
----------------------------------------------------------------------
Among a variety of bugs fixed, the patch corrects a critical error in
BoT triangle mesh ray tracing. For improved performance, it also
changes the default frame buffer display behavior to fully buffer ray
tracing images instead of displaying them incrementally. A variety of
MGED commands see improvements too with 'ls' now supporting listing
objects by their on-disk size and the 'simulate' command applying
forces on objects (e.g., gravity) with greater ease. Not yet
complete, there is a new interface being developed for resolving
overlaps more efficiently, currently under development and usability
testing with select users. Lastly, a number of dependencies were
upgraded, including Tcl/Tk, in order to patch security vulnerabilities
and address portability issues.
* upgraded Tcl/Tk from 8.5.9 to 8.5.19 - Sean Morrison
* fixed background color setting in MGED - Cliff Yapp
* upgraded libpng to version 1.6.29 - Cliff Yapp
* upgraded zlib to version 1.2.11 - Cliff Yapp
* reduced 'shade_inputs' flipped normal reporting - Sean Morrison
* numerous 'simulate' command enhancements and fixes - Jon Engbert
* fixed rtweight .density file loading on Windows - Cliff Yapp
* fixed dsp handling of invalid uniform binary objects - Sean Morrison
* fixed brlman problem with viewing benchmark man page - Cliff Yapp
* fixed name of dbfind man page (was listed as 'find') - Cliff Yapp
* added -H option to ls for human readable size reporting - Cliff Yapp
* added -S option to ls command for size based sorting - Cliff Yapp
* improved 'loadview' command view script handling - Sean Morrison
* fixed TIE raytracing for zero thickness BoTs - Cliff Yapp
* added Wavefront OBJ File->Open GUI support in Archer - Cliff Yapp
* fixed attr show error printing large attribute values - Cliff Yapp
* fixed rt support for lights created prior to rel 6.0 - Sean Morrison
* fixed infinite loop bug in when using shadow lights - Sean Morrison
* removed man pages: erase_all, export_body, vrmgr, dall - Cliff Yapp
* added manual pages for the 'brlman' and 'man' commands - Cliff Yapp
* improved gdiff default grid spacing and tolerancing - Cliff Yapp
* updated brlman to support browsing all page categories - Cliff Yapp
* added support for .rtwizardrc configuration file - Cliff Yapp
* renamed MGED gdiff grid spacing -t option to -g - Cliff Yapp
* updated MGED gdiff default drawing options to -l -r - Cliff Yapp
* removed MGED gdiff -R option, now default behavior - Cliff Yapp
* replaced obsolete 'g_diff' manual page with 'gdiff' - Cliff Yapp
* improved 'keep' error message when file is not created - Cliff Yapp
* improved rtwizard window sizing and "RtWizard" titling - Cliff Yapp
* brep command attaches .brep suffix instead of _brep - Sean Morrison
* changed ogl & wgl framebuffer delayed write behavior - Sean Morrison
* upgraded freetype to version 2.6.5 - Cliff Yapp
* fix rtedge foreground/background color options - Jon Engbert
* support rt -C colors specified as 0-255 or 0.0-1.0 - Jon Engbert
* fixed xpush bug leaving stray top-level objects - Nick Reed
----------------------------------------------------------------------
--- 2016-08-08 Release 7.26.0 ---
----------------------------------------------------------------------
This major release of BRL-CAD culminates several years of development
effort to provide robust explicit boundary representation (BREP)
Non-uniform Rational Basis Spline (NURBS) import and ray tracing
analysis support. Compared to previous polygonal mesh (BoT) methods,
NURBS offer superior interoperability with other CAD systems, faithful
shape-preserving import, and significantly reduced model sizes. NURBS
may be imported from the ISO STEP (AP203) and Rhino 3DM file formats,
both with improved hierarchy preservation and entity support.
Unprecedented in BRL-CAD's history, this release initiates steps to
significantly reduce complexity and improve usability. Many features
are being consolidated, reorganized, and removed via BRL-CAD's
deprecation process. There are widespread documentation system
enhancements including new manual pages, improved command usage,
better help facilities, and more.
This release introduces the 'gcv' and 'icv' tools for geometry and
image conversion respectively. These plugin-architecture tools are
intended to eventually consolidate and replace all of BRL-CAD's
conversion and processing functionality into an easy universal
interface for users and application developers. GCV currently
supports import and export of STL, 3DM, OBJ, VRML, and FASTGEN
geometry as well as mesh decimation, facetization, and solidity
testing. The new FASTGEN exporter implements extensive compatibility
feature mapping for round-trip geometry conversion.
Ray tracing performance on Windows is vastly improved on symmetric
multiprocessing (SMP) multicore and multiple CPU systems. Implemented
as 'datum' objects, BRL-CAD provides new modeling support for
reference points, lines (axes), and planes. Major features still
under experimental development include NURBS Boolean evaluation, a new
marching cubes method for polygonal mesh export, rigging joints for
constrained geometry articulation, and an OpenCL-accelerated high
performance ray tracing pipeline.
* mass-deprecation of 121 command-line utilities - BRL-CAD Developers
* fixed bad args crash in metaball 'in' command - Cliff Yapp
* added manual page for lt comb child listing command - Cliff Yapp
* added lt -c option for specifying separation character - Bob Parker
* mass-deprecation of 121 command-line utilities - BRL-CAD Developers
* improved hierarchy preservation in 3dm-g importer - Jon Engbert
* fixed upside down 'screengrab' images on some platforms - Nick Reed
* updated wireframe drawing to respect primitive colors - Cliff Yapp
@@ -141,16 +46,6 @@ performance ray tracing pipeline.
* extended nirt to list current and available formats - Sean Morrison
* fixed NURBS wireframe drawing crash - Cliff Yapp
* fixed firing of single rays using the rtshot tool - Sean Morrision
* removed pixread.sh, pixwrite.sh; obsolete hardware - Sean Morrison
* removed cray.sh and sgisnap.sh; obsolete hardware - Sean Morrison
* removed cadbug.sh - use sourceforge tracker - Sean Morrison
* removed any-png.sh - use pix tools - Sean Morrison
* removed librtserver interface - Cliff Yapp
* removed MGED per_line command - Sean Morrison
* updated MGED tops command: default to -g -u behavior- Sean Morrison
* removed MGED -n option; use -c instead - Sean Morrison
* removed MGED commands pl, pov and polybinout - Sean Morrison
* removed UtahRLE image tools - Cliff Yapp
* improved rcodes command feedback in the no changes case - Cliff Yapp
* added brlman -S option to specify man page section - Cliff Yapp
* modified rtg3 to avoid outputting excessive LOS - Nick Gerstner
@@ -168,7 +63,6 @@ performance ray tracing pipeline.
* added draw -L# to draw bounding boxes for large objects - Cliff Yapp
* added 3dm-g instance reference and definition import - Jon Engbert
* minor rtwizard graphical user interface reorganization - Cliff Yapp
* fixed rtwizard edge and ghosted image bug on Windows - Bob Parker
* ported 'brlman' manual page viewer with GUI to Windows - Cliff Yapp
* added gdiff -h help command-line option - Cliff Yapp
* added facetize -m marching cubes option - Erik Greenwald
@@ -180,7 +74,6 @@ performance ray tracing pipeline.
* added new algorithm to bot_decimate (via -f option) - Jon Engbert
* fixed benchmark bug running from paths with spaces - Sean Morrison
* fixed adjust command crash when working with BoTs - Daniel Roßberg
* removed fb-orle, orle-fb, orle-pix, and pix-orle tools - Cliff Yapp
* removed support for RLE v1 and v2 ('orle') image format - Cliff Yapp
* fixed datum type 'in' command unit conversion bug - Cliff Yapp
* fixed rpatch / patch-g line handling on Windows - Daniel Roßberg
@@ -192,19 +85,15 @@ performance ray tracing pipeline.
* improved point cloud plot visualization - Sean Morrison
* fixed program freezing bug in MGED grouper command - Bob Parker
* added 'rhc' reporting to analyze command - Kalpit Thakkar
* improved command option and manual page consistency - Carl Moore
* improved help option consistency across numerous tools - Carl Moore
* added prefatory FASTGEN4 geometry export support - Jon Engbert
* added FASTGEN4 illegal thickness CCONE1 entity import - Cliff Yapp
* improved help message for 'tire' command - Cliff Yapp, Carl Moore
* improved option parsing and output options for gencolor - Carl Moore
* fixed saveview usage help string and running from archer - Nick Reed
* fixed and improved killtree man page - Nick Reed
* fixed composition bugs in pixmatte and pixmerge - Carl Moore
* fixed definition of "light year" in unit conversions - Cliff Yapp
* fixed duplicate name errors in dbconcat - Daniel Roßberg
* modernized documents and improved infrastructure - Hitesh Sofat
* added mirroring support for hrt primitive objects - Isaac Kamga
* added manual page documenting the STEP geometry format - Cliff Yapp
* ported the mged Overlap Tool to Windows - Sean Morrison
* improved NURBS prep performance for UV-remapped surfaces - Nick Reed
* fixed dbconcat -c crash when color table does not exist - Nick Reed
@@ -213,7 +102,6 @@ performance ray tracing pipeline.
* updated libregex to apply a fix for CVE-2015-2305 - Cliff Yapp
* upgraded libpng to version 1.6.20 - Cliff Yapp
* added command window option for pasting tree view paths - Nick Reed
* improved 'bb' command digits and units output - Keith Bowman
* improved robustness of bb command oriented box option - Peter Amidon
* added example NURBS B-Rep geometry files from NIST - Cliff Yapp
* removed "high resolution" options from all commands - Carl Moore
@@ -239,15 +127,12 @@ performance ray tracing pipeline.
* renamed 'make_bb' mged command name to 'bb' - Cliff Yapp
* added g-ply exporter for Stanford PLY geometry format - Rishub Jain
* added ply-g importer for Stanford PLY geometry format - Rishub Jain
* improved rtedge help option output - Carl Moore
* fixed texture mapping crash with bad image dimensions - Ștefan Mirea
* fixed g2asc and asc2g handling of dsp primitive - Cliff Yapp
* rewrote gdiff with improved output & reporting options - Cliff Yapp
* fixed pix-ps -S -W -N output size options being ignored - Carl Moore
* fixed crash exporting mixed mode merged BoT meshes - Sean Morrison
* fixed submodel primitive crash - Cliff Yapp, Sean Morrison
* added fbclear command to archer - Bob Parker
* improved rtwizard command-line mode manual page docs - Cliff Yapp
* support non-.g file import in Archer's file open dialog - Cliff Yapp
* added brep support to g2asc and asc2g - Cliff Yapp
* fixed a CPU affinity locking bug on Linux platforms - Sean Morrison
@@ -265,33 +150,22 @@ performance ray tracing pipeline.
* fixed memory leaks in a number of pix utilities - Cezar Elnazli
* improved NURBS ray tracing & tessellation robustness - Keith Bowman
* improved step-g NURBS geometry import robustness - Keith Bowman
* added -f vertex fuse option to obj-g importer - Jon Engbert
* added -v verbose output option to mged 'search' command - Cliff Yapp
* fixed g_lint and pixcount red-black tree memory leaks - Tom Browder
* added conversion time reporting to step-g importer - Keith Bowman
* fixed crash of extrude with special case bezier curves - huskmate13
* improved performance of 'terrain' & numerous shaders - Sean Morrison
* new manual pages for rtexample and brep_simple - Shardul Chiplunkar
* added key binding to reopen/focus mged command window - Emory Huff
* added menu option to restore mged command window - Cezar Elnazli
* improved DocBook documentation output formatting
- David Wood, Yatharth Agarwal
* added 'search' -params option for geometric parameters - Cliff Yapp
* search command now recognizes hyp and metaball types - Cliff Yapp
* improved spec formatting, added v5 timestamp proposal - Tom Browder
* improved search command documentation examples - Cliff Yapp
* improved archer interface's behavior on start-up - Nick Reed
* added -depth option to mged 'search' command - Cliff Yapp
* initial support for rigging joints and constrained articulation
- Nick Reed, Keith Bowman, Cliff Yapp, Sean Morrison
* improved 'search' with 'flat' search path modifier - Cliff Yapp
* improved 'search' with above/equal/below depth limits - Cliff Yapp
* improved support for sub-millimeter (tiny) meshes - Keith Bowman
* added comb -S option to stop when object already exists - Cliff Yapp
* improved comb command documentation with many examples - Cliff Yapp
* implemented new 'hrt' heart-shaped primitive object - Isaac Kamga
* added support for multicore / SMP ray tracing on Windows
- Adrián Calle, Arjun Govindjee, Daniel Roßberg, Sean Morrison
----------------------------------------------------------------------
+2 -2
View File
@@ -1,5 +1,5 @@
BRL-CAD
Release 7.28.0
Release 7.26.2
http://brlcad.org/
BRL-CAD is a powerful cross-platform open source combinatorial
@@ -31,7 +31,7 @@ TABLE OF CONTENTS
GETTING STARTED
---------------
----------------
This README file exists only to provide you a brief roadmap to the
contents of the BRL-CAD distribution.
+164
View File
@@ -0,0 +1,164 @@
branch/binary-attributes
========================
To turn on the use of binary attributes define:
USE_BINARY_ATTRIBUTES
E.g., prior to running CMake:
export CFLAGS=-DUSE_BINARY_ATTRIBUTES
export CXXFLAGS=-DUSE_BINARY_ATTRIBUTES
external code added:
-------------------
BSON
specification: http://bsonspec.org/spec.html
libbson source: https://github.com/mongodb/libbson
current release tarball: https://github.com/mongodb/libbson/releases/
libbson-1.3.0-beta0.tar.gz
converter: libbson has tools included to convert BSON to/from JSON
Scheme
------
The BRL-CAD V5 database seems to allow an arbitrary binary chunk
following the ASCII attributes. The idea is to define the total
attribute chunk length to include any desired binary objects. The
read or write (RW) of the ASCII attributes stops with the char* RW of
a double NULL which should be a sufficient stop RW mark. Then, any
difference in length read versus attribute chunk length is the length
of a chunk of binary attributes (BAs) which we will define as a BSON
collection of BSON documents (??? check BSON terminology). At that
point we use libbson to RW the BAs.
As a minumum, a BA must have an ASCII key and a binary value.
Following the BSON specification, the user can add other objects in
the BA if desired.
The user interface relies on AVS handling which will have to also
handle the BAs (that appears to be doable). Our best practice should
encourage (maybe require?) a BA to have a short ASCII comment.
We will need appropriate functions to convert BAs to/from AVS
objects. In the course of developing the BA capability we will add a
file IO scheme for users to manipulate the BAs.
User interface (mged)
---------------------
Current attr usage
******************
mged> attr
Usage: attr {[-c sep_char] set|get|show|rm|append|sort|list} object [key [value] ... ]
Proposed attr usage
*******************
mged> attr
Usage: attr {[-c sep_char][-b] set|get|show|rm|append|sort|list} object [key [value] ... ]
Where the '-b', indicating a binary attribute (BA), works with 'get'
and 'set' only (and ignored for the other commands).
Note that 'set' and 'get' for binary attributes require an external
file name (which must must be a valid JSON file for 'set') and must
NOT exist for 'get'. The 'append' command will NOT work for a BA.
The 'show', 'sort', and 'list' commands will show for BAs their key
followed by followed by '(binary)' followed by their comment string,
if it exists (we should make that mandatory I believe). The 'rm'
command will remove the BA referenced by the key.
The BAs will have both a key and a comment, and it is an error to try
to add a BA with a key the same as an existing key.
Tentative JSON format of a BA
-----------------------------
(See http://www.json.org/ for the JSON specification.)
Functions needed
----------------
JSON BA to/from in-memory AVS
see current functions:
AVS BA to/from on-disk attribute body
see current functions:
...
Macro definitions needed
------------------------
Data structures needed
----------------------
Other notes
-----------
Files affected:
./include/bu/parse.h
./include/bu/avs.h
./src/librt/db5_io.c
./src/librt/attributes.c
Features to be implemented and other considerations:
+ add a binary attribute using similar syntax as a string attribute
+ a binary attribute should have an optional description field
+ implement auto update of an object's ctime (creation time) and
mtime (last modification)
+ mtime and ctime should be 64-bit integers (based on Unix time and
epoch) (int64_t; see src/libbu/y2038/time64_config.h)
+ binary attributes should be able to be entered from or output to a
file
A db admin tool:
./src/util/db-admin-tool.cpp
On-disk format of a binary attribute [following the (char*)NULL
(char*)NULL end of the normal attributes]:
While I believe we can use the existing AVS attribute section for BAs,
I believe in the future we ought to create a separate object structure
section for binary attributes, especially if we use a more compact
binary representation such as CBOR.
The following describes the current V5 db:
BRL_CAD_g_format_V5.xml
The following describes the proposed V6 db with the binary attributes:
BRL_CAD_g_format_V6.xml
Possible tests:
1. Simple TGM
+ create a single-object TGM
+ copy the TGM to a new file (TGM2)
+ add multiple binary attributes to TGM2
+ add a file to TGM2
+ use the admin-db tool to check TGM2
+ export the file; check that it is the same as was imported
+ delete the added binary attributes from TGM2
+ run cmp on TGM and TGM2 to see they are the same
2. Complex TGM
+ select a complex TGM in the db directory as a test subject
+ copy the TGM to a new file (TGM2)
+ add multiple binary attributes to TGM2
+ add a file to TGM2
+ use the admin-db tool to check TGM2
+ export the file; check that it is the same as was imported
+ delete the added binary attributes from TGM2
+ run cmp on TGM and TGM2 to see they are the same
See the TODO file, sections "ATTRIBUTES" and "THESE BREAK PROTOCOL OR
ARE BACKWARDS-INCOMPATIBLE" for more official information.
+128 -146
View File
@@ -18,76 +18,34 @@ tasks as they are completed.
THESE TASKS SHOULD HAPPEN BEFORE THE NEXT RELEASE
-------------------------------------------------
* quick check of CHANGES to make sure user-vis obsoletions are in NEWS
* fix regressions in lc -d and -s options
* regressed behavior in mged and archer: they seem to be defaulting
objects to black instead of white/gray. wireframes and default
black-background rendering make newly created objects practically
invisible.
* check these commits for documentation:
58415 - NEWS, attributes are now case-insensitive (test: any or just standard ones?)
58147 - NEWS, improved search command documentation examples
58146 - NEWS, improved archer initialization, removed startup flashing
58145 - NEWS, minor but technically user visible and potentially significant if the assumptions made are incorrect (improved tire command usage statement)
58254 - NEWS, fixed bug you say? what bug?
58325 - NEWS, improved v5 specification formatting, added timestamp proposal
64637 - NEWS, almost certainly fixed mysterious errors during dbconcat and db_opens with duplicate names found
58475 - AUTHORS if user identified the fix (not just the bug), NEWS if g-step considered published
58594, 58608 - AUTHORS for mged tutorial fixes (doc or code contrib section), NEWS if user-vis
61168 - NEWS, new param option to search
64314 - NEWS, announce the new doc
63132 - NEWS, expanded rtedge usage
THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
-------------------------------------------------------
* move the rt_*_timer timing facilities to libbu and rework to allow
contexts, allowing for more than one timer to be active. Make sure
the old librt API can be obsoleted cleanly.
* check that dbconcat supports objects created with the bo cmd
* libgcv should add objects to an existing .g if one is specified
as the output target - right now it's overwriting the old file
* consolidate dbconcat, clone, make_name, and any other .g I/O
routines that need to autogenerate names to use the new
bu_vls_incr/bu_vls_simplify functions.
* Explicitly list the CMakeLists.txt files rather than adding
them automatically in the add_subdirectory override, now that
we are listing all files explicitly - preserve the new simplicity
* renamed zlib and libpng when building bundled to avoid conflicting
with system-installed libs. e.g., default to ENABLE_Z_PREFIX=ON
with name z_brlcad (perhaps as a post-compile rename custom command)
and png_brlcad respectively.
* investigate possibility of using simple, compact libs
like miniz and lodepng to replace the complexity of
managing zlib and libpng in src/other. These have been
a source of ongoing annoyance, particularly (but not
exclusively) on OSX.
* f_dbopen in MGED doesn't seem to be reporting failure
if a non-.g file is fed to opendb. That doesn't seem
right... shouldn't the open process completely fail
if the file isn't a valid .g?
* add regression test for BoT ray tracing
* add regression test for directional light sources
* bundle primary rays in rt front end into postage stamps, shoot via
rt_shootrays(), modify to pass all rays down through the spatial
partitioning simultaneously
* create a catalog of all possible entity types. including distinct
parameterizations with sufficient variety that conveys the object's
parameterization options (e.g. ell as sphere, flat disc, long spike,
etc.). this is necessarily defined per object type and possibly
programmable. see src/proc-db/csgbrep.cpp for a basic start.
create a BRL-CAD .g with all possible object types embedded.
integrate into testing.
* create a catalog of all possible/distinct/useful shader settings.
see regress/shaders.sh for a basic start.
* readd support for vrml v1 to g-vrml so that users can select whether
they want v2 (default) or previous v1 output format via a
command-line switch. see http://brlcad.svn.sf.net/viewvc/brlcad/brlcad/trunk/conv/g-vrml.c?view=diff&pathrev=22798&r1=16900&r2=16901
* try to come up with a way we can report the number of times
the configuration step has been run and changed something
without triggering almost a full rebuild. Maybe have the
bits that need to report it pull from a file in bu_brlcad_data?
* make sure TIE can raytrace all of the various BoT modes
* metaball in command input needs sanity checks and better
validation.
* update astyle
* integrate gen-registered-attributes-html output into website
@@ -99,62 +57,42 @@ THESE TASKS SHOULD HAPPEN WITHIN TWO RELEASE ITERATIONS
$ /usr/brlcad/rel-7.18.0/bin/brlcad-config rt
-L/usr/brlcad/rel-7.18.0/lib -m64 -L/usr/local/lib64 -L/usr/local/lib -pipe -fno-strict-aliasing -fno-common -fexceptions -ggdb3 -D_FORTIFY_SOURCE=2 -O3 -w -L/usr/brlcad/rel-7.18.0/lib -lrt -lbn -lbu -ltcl8.5 -ldl -lm -lpng14 -lz -lc -lpthread -lregex -lsysv -lopenNURBS
* OpenCL for enhanced performance boolweave sorting
* bu_*_argv -> bu_argv_*
* create boolweave+boolfinal unit tests to validate weaving behavior
and performance.
* obsd stack crashers
* make sure we can run db_dirbuild() multiple times without creating
duplicate entries.
* rt moss.g facetize rt bot bug
* heap unit test needs to actually compare performance against system
allocation, not just do some work
THESE ARE UNSCHEDULED BACKLOG TASKS
-----------------------------------
* mater command does not validate its arguments - fix that. Also
properly document using "." to skip specifying something - not in
the man page currently.
* bullet integration - need to expose restitution as an
object parameter so we can configure behavior:
http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?p=&f=&t=3248
* afl on libged/mged/rt/...
* moodycamel as libbu queue/list/ptbl implementation
* reinstate 'stat' and search -size, see r67636 through r67646
* update dem-g to not use full paths for dsp primitive data locations -
should default to embedding the data in the .g file as a binary object,
with an option for a relative path if the user explicitly requests
it. Full paths make for non-portable .g files and should only exist
if the user explicitly manipulates the dsp to create such a path.
* define geometry URL and VFS behavior
* change _mged_ command prefix to a simple '.' prefix to hide/protect
the built-in commands.
* invoke graphical with console, play nicely
* sync tgc/rec shot() behavior, sort results for proper normal.
inspect t62 grazing with r653,r735 (tgc on an arb8) looking at ae0,0
and z=1524 (was hit/overlap, now misses).
* havoc.g s.nos5g reliably exhibits the grazing edge bug where only
one hit point is being returned. to reproduce:
e s.nos5g ; ae 35 25 ; units mm ; center 26912.4 7089.08 7168.96 ; nirt
* reinstate 'stat' and search -size, see r67636 through r67646
* obsd stack crashers
* turn on Bullet code (simulate command) unconditionally
* create a BRL-CAD .g with all possible object types embedded. The
csgbrep command is a good starting point, but only about half of
them.
* bundle primary rays in rt front end into postage stamps, shoot via
rt_shootrays(), modify to pass all rays down through the spatial
partitioning simultaneously
* resolve bot bin sort optimization crash, disabled during release
* closing the graphics window brings down X11 on Mac due to a bad
context. fix or revert recent close window behavior.
* resolve bot bin sort optimization crash, disabled during release
* havoc.g s.nos5g reliably exhibits the grazing edge bug where only
one hit point is being returned. to reproduce:
e s.nos5g ; ae 35 25 ; units mm ; center 26912.4 7089.08 7168.96 ; nirt
* rt moss.g facetize rt bot bug
THESE ARE UNSCHEDULED BACKLOG TASKS
-----------------------------------
* evaluate OpenMesh (http://www.openmesh.org) and OpenFlipper
(http://www.openflipper.org) for smoothing, decimation, and
@@ -172,6 +110,11 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* implement unit tests for bu dirent / stat API
* OpenCL for enhanced performance boolweave sorting
* create boolweave+boolfinal unit tests to validate weaving behavior
and performance.
* convert src/util/terrain.c to src/shapes/terrain.c writing out the
datafile to a binunif along with a referencing dsp. perhaps add
command line option to skip .g to retain prior datafile capability.
@@ -204,23 +147,34 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* Need to rethink libbu hash API - ideally should be much simpler and
expose much less to the user.
* The current libbu mime API needs to be retired in favor of something
more powerful. It was a mistake to use enums generated from the
mime types - they are static, cannot be enriched at runtime (say,
by icv plugins) and the separation of the context from the type
itself (image/png -> BU_MIME_IMAGE and BU_MIME_IMAGE_PNG for example)
is both cumbersome and unnecessary. Instead, grab a subset of the
capabilities of libmagic (https://github.com/file/file) and define
a new libbu mime/data-typing subsystem that is runtime populated by
a default set of pseudo-libmagic style file definitions (may want
to adjust their format slightly, to require a mime type for each
entry, and we need an way to define entries where we don't (yet)
know how to inspect the file contents to identify them...)
* consider whether the file introspection capabilities of libmagic
(https://github.com/file/file) should be hooked into the libbu
mime type system to support more robust file type identification
beyond that offered by file extension + context. In principle
we want the most powerful capability we can get, but there are
some not-entirely-trivial design issues involved.
This approach will let us define the types that are of interest to
BRL-CAD, while also letting plugins "educate" the system to support
processing of formats the base system (and the "standard" mime type
lists) know nothing about.
- Do we want to use file introspection to replace the "context"
mechanism we're currently using to disambiguate file extensions?
- Is it practical to define enough "magic" for the file types we
will be interested in? (the current "cad" entry just has a
few autodesk formats - would need considerable expansion.)
- How should we return the "human readable" string libmagic provides,
particularly in the context of bu_path_component - the mime type
is currently returned as a string.
- libmagic is capable of greater fidelity than the basic file
extension based mime types - should we define custom mime types
to allow that refinement? e.g. MIME_MODEL_STEP if we don't know
what step version, and MIME_MODEL_STEP_AP203 if libmagic ids the
file as a particular version? There are many situations where
this capability could be very useful, but we would have to
rethink how we are currently defining our mime types. Ideally
we would want to generate specific mimes from the magic definition
files, but we would have to make sure all the magic files we
use for BRL-CAD provide mimes for all entires.
* investigate merging functionality from the sig tools into libicv
and removing the tools themselves. Also, need some documentation
@@ -282,10 +236,14 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
parallel. This would be a way to easily parallelize existing code
without needing to create wrapper functions for bu_parallel().
* Now that we have >3.0 CMake required, look into replacing our custom
time stamping code in favor of using the CMake time stamp mechanism.
Also get rid of the fallback in src/libgcv/plugins/CMakeLists.txt
(and any others that have crept in over the years...)
* Post 7.26.0 release, need to look at migrating CMake logic off of
the OLD behavior for policy 0026 (using LOCATION property.) Now
that Debian stable is using CMake >=3.0 we should be OK to require
the more modern CMake. Another TODO once we require the newer CMake
is retiring our custom time stamping code in favor of using
the CMake time stamp mechanism. Also get rid of the fallback in
src/libgcv/plugins/CMakeLists.txt (and any others that have crept
in over the years...)
* convert usages of Tcl_InitHashTable() and friends to libbu
containers (see src/conv/enf-g.c for example usage)
@@ -337,6 +295,15 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* Document a CLI feature list (prioritized).
* create a catalog of all possible entity types. including distinct
parameterizations with sufficient variety that conveys the object's
parameterization options (e.g. ell as sphere, flat disc, long spike,
etc.). this is necessarily defined per object type and possibly
programmable. see src/proc-db/csgbrep.cpp for a basic start.
* create a catalog of all possible/distinct/useful shader settings.
see regress/shaders.sh for a basic start.
* high-performance VOL for medical data visualization. consider
leveraging OpenVDB, PCL, Paraview/VTK, etc.
@@ -370,12 +337,6 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
functions until it provides some clear advantage (e.g., portability,
performance, and/or maintainability).
* rename the "joint2" articulation command (possibly also rename the
"joint" command) worked on when joint objects were implemented.
joint2 interfaces with the old text-file based articulation
interface, but conceivably should get updated when joint objects can
describe everything in the old text files.
* create a joint articulation (manually is good, automatic is better)
for the tin woodsman so he can move his arms, legs, neck, and head.
@@ -406,6 +367,12 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* convert all calls to BU_SETJUMP/BU_UNSETJUMP into familiar try/catch
logic layout using if/else.
* heap unit test needs to actually compare performance against system
allocation, not just do some work
* make sure we can run db_dirbuild() multiple times without creating
duplicate entries.
* re-do the sh/enumerate.sh script for CMake
* get bu_extern out of bu/parse.h into its own header file.
@@ -606,6 +573,9 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
is causing ipathpos to get incremented to a number larger than the
number of objects in the full path it's supposed to be referencing.
* change _mged_ command prefix to a simple '.' prefix to hide/protect
the built-in commands.
* refactor rt_mirror (src/librt/primitives/mirror.c) into the functab
* refactor rt_functab accessors to go through an api call or calls so
@@ -776,6 +746,9 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* fix the "(type)(size_t)val" hacks (using ints like ptrs, etc.)
* Mac OS X mouse input binding problem seems to be back with rotations
stalling during interactive use.
* pixdiff reports bytes, but reports incorrect (off-by-one) bytes for
.bw input files. cause is due to tool assuming input is rgb triplets
(even though output is bytes, wtf?). should probably report pixels
@@ -854,6 +827,12 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* clean up new rt -l8 heat graph lighting model so that it works in
parallel and with no "splotches"
* make rt_prep_timer() take or return a context that gets subsequently
passed to rt_get_timer() calls for returning the elapsed time. this
will allow multiple overlapping timers instead of just one global
timers. move the timing facilities to libbu as part of the process
so API can be obsoleted cleanly.
* separation of stderr from stdout within libbu, particularly for
MGED, so that there is a clean separation of result output from
diagnostic output. this is a fairly separate idea from having log
@@ -950,6 +929,10 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
* refactor mged's signal handling to make it possible to safely
interrupt long-running commands
* readd support for vrml v1 to g-vrml so that users can select whether
they want v2 (default) or previous v1 output format via a
command-line switch. see http://brlcad.svn.sf.net/viewvc/brlcad/brlcad/trunk/conv/g-vrml.c?view=diff&pathrev=22798&r1=16900&r2=16901
* make Mac OS X universal binaries actually work.
* fully implement analyze for all primitives
@@ -1157,6 +1140,11 @@ THESE ARE UNSCHEDULED BACKLOG TASKS
combinations of these primitives, provided their continuity at the
ends ensures continuity all along "seams" - something to consider.
* look into embedding both rgb[3] and complex[n] data types in a union
to allow unification of libmultispectral and liboptical APIs to a
single more general liboptical. Need to be careful about
performance and maintainability concerns.
* we need to define a libbu api for option handling that supports more
features than getopt:
@@ -1380,9 +1368,7 @@ LIBGED
optionally list everything
* improve performance of these commands that seem to have exponential
cost: bot_split, killtree, and
make s sph; make a arb8; sed a; e a; tra 0 0 500; r hemi u s - a; tol norm 1 ; facetize hemi.bot hemi
# compared to tol norm 2, # triangles is up ~20% but facetize is >200%
cost: bot_split, killtree
* translate lc command to libged (discovered in Feb. 2015 to have already
been done -- need information regarding when this was done and committed).
@@ -1508,9 +1494,6 @@ ARCHER
ATTRIBUTES
----------
* See src/libbu/TODO.binary_attributes for more info about
bson based binary attribute work.
* attr command option to output to a file
* attr command change to only output non-standard attributes
@@ -1854,6 +1837,7 @@ The following binaries are not yet available on Windows. The reason
is identified in parentheses.
bombardier (possibly just a problem with the build logic)
burst (TERMLIB)
enigma (not ported)
fbcolor (TERMLIB)
fbed (TERMLIB)
@@ -1867,7 +1851,10 @@ pl-dm (possibly X11 specific)
pp-fb (TERMLIB)
remrt (remrt dir commented out for WIN32 in src/CMakeLists.txt)
rtsrv (remrt dir commented out for WIN32 in src/CMakeLists.txt)
rttherm (rttherm dir commented out for WIN32 in src/CMakeLists.txt)
scriptsort (lex)
ssamp-bw (rttherm dir commented out for WIN32 in src/CMakeLists.txt)
ssampview (rttherm dir commented out for WIN32 in src/CMakeLists.txt)
ttcp (not ported)
The MGED points support doesn't appear as an executable, but it is
@@ -1877,9 +1864,6 @@ missing on Windows due to needing lex.
CONVERTERS
----------
* add gcv support for the Microstation file format (DGN), probably
leveraging http://dgnlib.maptools.org/ (MIT-licensed)
* integrate the submitted x3d-g (Web3D, VRML successor) importer
(pending patch on sf)
@@ -2102,9 +2086,6 @@ being rtgl specific.
Provide a generic mechanism in MGED run loop to hook in features like
point cloud rendering, instead of hard-coding it.
* consider utilizing something like moodycamel::ConcurrentQueue for
handling ray dispatch: https://github.com/cameron314/concurrentqueue
LIBPC
-----
@@ -2290,6 +2271,7 @@ DOCUMENTATION
archer
bombardier
brlman
damdf
dauto
dauto2
+1 -1
View File
@@ -206,7 +206,7 @@ main(int argc, char *argv[])
stat(argv[1], &sf2);
if (sf1.st_size != sf2.st_size) {
bu_exit(FILE_ERROR, "Different file sizes found: %s(%d) and %s(%d). Cannot perform pixcmp.\n", argv[0], (int)sf1.st_size, argv[1], (int)sf2.st_size);
bu_exit(FILE_ERROR, "Different file sizes found: %s(%d) and %s(%d). Cannot perform pixcmp.\n", argv[0], sf1.st_size, argv[1], sf2.st_size);
}
if (!print_bytes) {
Vendored
+8 -12
View File
@@ -10,9 +10,9 @@ while [ "$1" != "" ]
do
case $1
in
--enable-all) options="$options -DBRLCAD_BUNDLED_LIBS=BUNDLED";
--enable-all) options="$options -DBRLCAD_BUNDLED_LIBS=ON";
shift;;
--disable-all) options="$options -DBRLCAD_BUNDLED_LIBS=SYSTEM";
--disable-all) options="$options -DBRLCAD_BUNDLED_LIBS=OFF";
shift;;
--enable-opengl) options="$options -DBRLCAD_ENABLE_OPENGL=ON";
shift;;
@@ -130,10 +130,6 @@ do
shift;;
--disable-tinycthread) options="$options -DBRLCAD_TINYCTHREAD=SYSTEM";
shift;;
--enable-lz4) options="$options -DBRLCAD_LZ4=BUNDLED";
shift;;
--disable-lz4) options="$options -DBRLCAD_LZ4=SYSTEM";
shift;;
--enable-freetype) options="$options -DBRLCAD_FREETYPE=BUNDLED";
shift;;
--disable-freetype) options="$options -DBRLCAD_FREETYPE=SYSTEM";
@@ -194,6 +190,10 @@ do
shift;;
--disable-spr) options="$options -DBRLCAD_SPR=SYSTEM";
shift;;
--enable-bson) options="$options -DBRLCAD_BSON=BUNDLED";
shift;;
--disable-bson) options="$options -DBRLCAD_BSON=SYSTEM";
shift;;
--enable-scl) options="$options -DBRLCAD_SC=BUNDLED";
shift;;
--disable-scl) options="$options -DBRLCAD_SC=SYSTEM";
@@ -218,13 +218,9 @@ do
shift;;
--disable-gdiam) options="$options -DBRLCAD_GDIAM=SYSTEM";
shift;;
--enable-proj4) options="$options -DBRLCAD_PROJ4=BUNDLED";
--enable-bullet) options="$options -DBRLCAD_BULLET=BUNDLED";
shift;;
--disable-proj4) options="$options -DBRLCAD_PROJ4=SYSTEM";
shift;;
--enable-gdal) options="$options -DBRLCAD_GDAL=BUNDLED";
shift;;
--disable-gdal) options="$options -DBRLCAD_GDAL=SYSTEM";
--disable-bullet) options="$options -DBRLCAD_BULLET=SYSTEM";
shift;;
--prefix=*) inputstr=$1;
options="$options -DCMAKE_INSTALL_PREFIX=${inputstr#--prefix=}";
+1 -4
View File
@@ -8,7 +8,6 @@ set(G_BENCHMARK_MODELS
)
set(G_SAMPLE_MODELS
aet.asc
axis.asc
boolean-ops.asc
castle.asc
@@ -93,12 +92,10 @@ if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
BRLCAD_ADDDATA(terra.dsp db)
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
CMAKEFILES(
aet.rt
cornell.rt
cube.rt
db.php
include/ctype.inc
include/debug.inc
include
)
# Local Variables:
-68
View File
@@ -1,68 +0,0 @@
title {Untitled BRL-CAD Database}
units mm
put {xyzringtrc.s} tgc V {0.31168735027313232421875 0.31356084346771240234375 0.2343517243862152099609375} H {-0.02296111360192298889160156 -0.02476786263287067413330078 0.03948847576975822448730469} A {-0.003937630914151668548583984 -0.02411045134067535400390625 -0.01741208322346210479736328} B {0.02662250958383083343505859 -0.01068659685552120208740234 0.008777192793786525726318359} C {-3.937628207495436072349548E-05 -0.0002411044843029230833053589 -0.0001741207961458712816238403} D {0.0002662249607965350151062012 -0.0001068659257725812494754791 8.77717902767471969127655E-05}
put {viewdirtrc.s} tgc V {0.08660250157117843627929688 0.08660250157117843627929688 0.08660250157117843627929688} H {-0.07794228941202163696289062 -0.07794228941202163696289062 -0.07794228941202163696289062} A {0 0.02828427031636238098144531 -0.02828427031636238098144531} B {0.03265986219048500061035156 -0.01632993109524250030517578 -0.01632993109524250030517578} C {0 0.000212132028536871075630188 -0.000212132028536871075630188} D {0.0002449489838909357786178589 -0.0001224744919454678893089294 -0.0001224744919454678893089294}
put {twistpanel.r} comb region yes tree {l twistpanel.c}
attr set {twistpanel.r} {color} {232/198/232} {shader} {glass {tr 0.6}} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
put {xyzringcut.c} comb region no tree {- {- {- {- {- {- {- {- {- {- {l ringxyztor.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut4.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l viewdirrcc.s}} {l xyzcutrcc.s}} {l xyzringtrc.s}}
put {viewdirrcc.s} tgc V {0.779421329498291015625 0.779421329498291015625 0.779421329498291015625} H {-0.6928203105926513671875 -0.6928203105926513671875 -0.6928203105926513671875} A {0 0.007071067579090595245361328 -0.007071067579090595245361328} B {0.008164965547621250152587891 -0.004082482773810625076293945 -0.004082482773810625076293945} C {0 0.007071067579090595245361328 -0.007071067579090595245361328} D {0.008164965547621250152587891 -0.004082482773810625076293945 -0.004082482773810625076293945}
put {twistpanel.c} comb region no tree {- {- {- {l twistrcc.s} {l twisttor.s}} {l twisttrc.s}} {l viewdirrcc.s}}
put {ringxytor.s} tor V {0 0 0} H {0 0 1} r_a 0.5 r_h 0.009999999776482582092285156
put {twistring.r} comb region yes tree {l twistring.c}
attr set {twistring.r} {color} {232/198/232} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1000} {material_id} {1} {los} {100}
put {xyringtrc.s} tgc V {0.3913685381412506103515625 0.3006020486354827880859375 -0.0009004921885207295417785645} H {-0.03143119439482688903808594 0.04401883110404014587402344 -0.0006720747915096580982208252} A {0.02089671231806278228759766 0.01464617997407913208007812 -0.01800444535911083221435547} B {-0.01446941774338483810424805 -0.01072130445390939712524414 -0.02551533468067646026611328} C {0.0002089670742861926555633545 0.0001464617671445012092590332 -0.0001800443860702216625213623} D {-0.0001446941751055419445037842 -0.0001072130180546082556247711 -0.0002551533398218452930450439}
put {xyzcutrcc.s} arb8 V1 {0.285196959972381591796875 0.223926544189453125 0.2792418301105499267578125} V2 {0.3270788453519344329833984 0.2655878327786922454833984 0.2198253460228443145751953} V3 {0.3691307827830314636230469 0.3075636327266693115234375 0.2788994473521597683429718} V4 {0.3272488489747047424316406 0.2659022919833660125732422 0.3383159413933753967285156} V5 {0.2260562554001808166503906 0.2832767628133296966552734 0.2791691728780278936028481} V6 {0.2679381202906370162963867 0.3249380290508270263671875 0.2197526805102825164794922} V7 {0.3099901042878627777099609 0.366913974285125732421875 0.2788267984578851610422134} V8 {0.2681080885231494903564453 0.3252525255084037780761719 0.3382433503866195678710938}
put {xyringcut.c} comb region no tree {- {- {- {- {- {- {- {- {- {l ringxytor.s} {l cut0.s}} {l cut1.s}} {l cut3.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l ringxyztor.s}} {l xycutrcc.s}} {l xyringtrc.s}}
put {testdisks.c} comb region no tree {u {- {- {- {l xyzrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {- {- {- {- {- {l xyrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut3.s}} {l cut0.s}}}
put {twistring.c} comb region no tree {u {- {- {l twisttor.s} {l twistcut.s}} {l twisttrc.s}} {l twisttrc.s}}
put {halfplane.s} half N {0 0 1} d -0.536277353763580322265625
put {halfplane.r} comb region yes tree {l halfplane.s}
attr set {halfplane.r} {color} {255/255/255} {shader} {stack {{phong {sp 0.05 di 0.95}} }} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
put {twisttor.s} tor V {0.449999988079071044921875 0.449999988079071044921875 0.449999988079071044921875} H {-0.577350269189625731058868 -0.577350269189625731058868 -0.577350269189625731058868} r_a 0.1500000016475442066177237 r_h 0.01000000030444709100962974
put {twistcut.s} part V {0.3950000000000000177635684 0.3850000000000000088817842 0.5649999999999999467092948} H {0.0003640000000000000114804 -0.0003699999999999999946917462 -0.0005000000000000000104083409} r_v 0.02800000000000000058286709 r_h 0.02800000000000000058286709
put {twisttrc.s} tgc V {0.37255561351776123046875 0.40711653232574462890625 0.57051956653594970703125} H {0.03641721233725547790527344 -0.03706122934818267822265625 -0.0005011741304770112037658691} A {0.01779515855014324188232422 0.01750466972589492797851562 -0.001385415205731987953186035} B {0.001156966434791684150695801 0.0007993413601070642471313477 0.02496042102575302124023438} C {0.0001779512967914342880249023 0.0001750463998178020119667053 -1.385413543175673112273216E-05} D {1.156978123617591336369514E-05 7.993325198185630142688751E-06 0.0002496042288839817047119141}
put {xyzpanel.r} comb region yes tree {l xyzcut.c}
attr set {xyzpanel.r} {color} {205/253/172} {shader} {glass {tr 0.6}} {region} {R} {region_id} {1003} {material_id} {1} {los} {100}
put {twistrcc.s} tgc V {0.4472982883453369140625 0.4472982883453369140625 0.4472982883453369140625} H {0.005773502867668867111206055 0.005773502867668867111206055 0.005773502867668867111206055} A {0 -0.1060660183429718017578125 0.1060660183429718017578125} B {0.1224744841456413269042969 -0.06123724207282066345214844 -0.06123724207282066345214844} C {0 -0.1060660183429718017578125 0.1060660183429718017578125} D {0.1224744841456413269042969 -0.06123724207282066345214844 -0.06123724207282066345214844}
put {xycutrcc.s} arb8 V1 {0.4098457992076873779296875 0.330240428447723388671875 -0.03679068386554718017578125} V2 {0.3675903864204883575439453 0.3863152638077735900878906 -0.03679068386160150305741467} V3 {0.3675903864204883575439453 0.3863152638077735900878906 0.03342260420322418212890625} V4 {0.4098457992100617008901509 0.3302404284445723536833839 0.03342260420322418212890625} V5 {0.3537709638476371765136719 0.2879850156605243682861328 -0.03679068386554718017578125} V6 {0.3115155547857284545898438 0.3440598426386713981628418 -0.03679068386160150305741467} V7 {0.3115155547857284545898438 0.3440598426386713981628418 0.03342260420322418212890625} V8 {0.3537709638476371765136719 0.2879850156605243682861328 0.03342260420322418212890625}
put {cutdisks.c} comb region no tree {- {- {- {- {- {l disks.c} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut3.s}} {l cut4.s}}
put {twistcut.s.backu} ell V {0.3945335447788238525390625 0.383843958377838134765625 0.5655720233917236328125} A {0.03095294535160064697265625 -0.0002858481311704963445663452 -0.0002035317302215844392776489} B {0.0002871743054129183292388916 0.03095294535160064697265625 0.0002016565413214266300201416} C {0.0002016565558733418583869934 -0.0002035317156696692109107971 0.03095364384353160858154297}
put {xyzring.r} comb region yes tree {u {l xyzringcut.c} {l xyzringtrc.s}}
attr set {xyzring.r} {color} {230/253/215} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1005} {material_id} {1} {los} {100}
put {viewdir.r} comb region yes tree {l viewdir.c}
attr set {viewdir.r} {color} {253/227/198} {shader} {phong {tr .1 ri 1.5 sh 2}} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
put {xypanel.r} comb region yes tree {l xycut.c}
attr set {xypanel.r} {color} {178/221/243} {shader} {glass {tr 0.6}} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
put {diagram.r} comb region no tree {u {u {u {l arrows.r} {l twistpanel.r}} {u {l twistring.r} {l xypanel.r}}} {u {u {l xyring.r} {l xyzpanel.r}} {u {l xyzring.r} {l viewdir.r}}}}
put {viewdir.c} comb region no tree {u {l viewdirrcc.s} {- {- {- {l viewdirtrc.s} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}}}
put {arrows.r} comb region yes tree {l coordinates.c}
attr set {arrows.r} {color} {217/217/254} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
put {xyring.r} comb region yes tree {u {l xyringcut.c} {l xyringtrc.s}}
attr set {xyring.r} {color} {206/230/242} {shader} {mirror {tr .1 re 0.4}} {region} {R} {region_id} {1004} {material_id} {1} {los} {100}
put {ground.s} ell V {0 0 -10000.08984375} A {10000 0 0} B {0 6.12303176911188629105709E-13 10000} C {0 -10000 6.12303176911188629105709E-13}
put {xyzcut.c} comb region no tree {- {- {- {- {- {- {- {- {- {- {- {l xyzrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l cut4.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l viewdirtrc.s}} {l viewdirrcc.s}} {l ringxyztor.s}} {l xyzringtrc.s}}
put {ground.r} comb region yes tree {l ground.c}
attr set {ground.r} {color} {255/255/255} {shader} {stack {{checker {b {192 192 192} s 8192.0}} {phong {sp 0.8 sh 4 em .5}} }} {region} {R} {region_id} {1001} {material_id} {1} {los} {100}
put {xyzrcc.s} tgc V {0.005014000460505485534667969 -0.004998999647796154022216797 7.123547086408665851564592E-19} H {-0.009999999776482582092285156 0.009999999776482582092285156 0} A {-0.356000006198883056640625 -0.356000006198883056640625 0} B {0 0 0.5} C {-0.356000006198883056640625 -0.356000006198883056640625 0} D {0 0 0.5}
put {ground.c} comb region no tree {l ground.s}
put {disks2.c} comb region no tree {u {- {- {- {- {l xyzrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}} {l xyrcc.s}} {- {- {- {l xyrcc.s} {l cut0.s}} {l cut1.s}} {l cut2.s}}}
put {light.s} ell V {-98.451141357421875 103.03456878662109375 200.0417633056640625} A {14 0 0} B {0 14 0} C {0 0 14}
put {light.r} comb region yes tree {l light.s}
attr set {light.r} {color} {255/255/255} {shader} {light {a 270 d {1 0 0} s 16 v 0}} {region} {R} {region_id} {1002} {material_id} {1} {los} {100}
put {xyrcc.s} tgc V {0 0 -0.004999999888241291046142578} H {0 0 0.009999999776482582092285156} A {0 -0.5 0} B {0.5 0 0} C {0 -0.5 0} D {0.5 0 0}
put {xycut.c} comb region no tree {- {- {- {- {- {- {- {- {- {- {- {l xyrcc.s} {l cut0.s}} {l cut1.s}} {l cut3.s}} {l xrcc.s}} {l yrcc.s}} {l zrcc.s}} {l xyzrcc.s}} {l ringxytor.s}} {l viewdirtrc.s}} {l xyringtrc.s}} {l viewdirrcc.s}}
put {disks.c} comb region no tree {u {- {l xyzrcc.s} {l xyrcc.s}} {l xyrcc.s}}
put {rings.c} comb region no tree {u {l ringxytor.s} {l ringxyztor.s}}
put {ztec.s} tgc V {0 0 1} H {0 0 0.1000000014901161193847656} A {0.02999999932944774627685547 0 0} B {0 0.02999999932944774627685547 0} C {0.0003000000142492353916168213 0 0} D {0 0.0003000000142492353916168213 0}
put {ytec.s} tgc V {0 1 0} H {0 0.1000000014901161193847656 0} A {0.02999999932944774627685547 0 0} B {0 0 0.02999999932944774627685547} C {0.0003000000142492353916168213 0 0} D {0 0 0.0003000000142492353916168213}
put {xtec.s} tgc V {1 0 0} H {0.1000000014901161193847656 0 0} A {0 0.02999999932944774627685547 0} B {0 0 0.02999999932944774627685547} C {0 0.0003000000142492353916168213 0} D {0 0 0.0003000000142492353916168213}
put {zrcc.s} tgc V {0 0 0} H {0 0 1} A {0 -0.009999999776482582092285156 0} B {0.009999999776482582092285156 0 0} C {0 -0.009999999776482582092285156 0} D {0.009999999776482582092285156 0 0}
put {yrcc.s} tgc V {0 0 0} H {0 1 0} A {0 0 0.009999999776482582092285156} B {0.009999999776482582092285156 0 0} C {0 0 0.009999999776482582092285156} D {0.009999999776482582092285156 0 0}
put {xrcc.s} tgc V {0 0 0} H {1 0 0} A {0 0 -0.009999999776482582092285156} B {0 0.009999999776482582092285156 0} C {0 0 -0.009999999776482582092285156} D {0 0.009999999776482582092285156 0}
put {cut4.s} arb8 V1 {1 1 1} V2 {1 -1 1} V3 {-1 -1 1} V4 {-1 1 1} V5 {-1 -1 -1} V6 {-1 -1 -1} V7 {-1 -1 -1} V8 {-1 -1 -1}
put {cut3.s} arb8 V1 {1.010072231292724609375 1.0000178813934326171875 1.010089874267578125} V2 {1.010072231292724831419605 1.0000178813934326171875 -1.0000002384185791015625} V3 {-1.0000178813934326171875 -1.010072231292724609375 -1.0000002384185791015625} V4 {-1.0000178813934326171875 -1.010072231292724609375 1.01008987426757901317842} V5 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625} V6 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625} V7 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625} V8 {-1.0000178813934326171875 1.0000178813934326171875 -1.0000002384185791015625}
put {cut2.s} arb8 V1 {1 -1 -1.0051000118255615234375} V2 {1 1 -1.0051000118255615234375} V3 {1 1 -0.0051000118255615234375} V4 {1 -1 -0.0051000118255615234375} V5 {-1 -1 -1.0051000118255615234375} V6 {-1 1 -1.0051000118255615234375} V7 {-1 1 -0.0051000118255615234375} V8 {-1 -1 -0.0051000118255615234375}
put {cut1.s} arb8 V1 {0 -1 -1} V2 {0 1 -1} V3 {0 1 1} V4 {0 -1 1} V5 {-1 -1 -1} V6 {-1 1 -1} V7 {-1 1 1} V8 {-1 -1 1}
put {cut0.s} arb8 V1 {1 -1 -1} V2 {1 0 -1} V3 {1 0 1} V4 {1 -1 1} V5 {-1 -1 -1} V6 {-1 0 -1} V7 {-1 0 1} V8 {-1 -1 1}
put {coordinates.c} comb region no tree {u {u {u {u {u {- {- {l xrcc.s} {l yrcc.s}} {l zrcc.s}} {- {- {l yrcc.s} {l xrcc.s}} {l zrcc.s}}} {- {- {l zrcc.s} {l xrcc.s}} {l yrcc.s}}} {l xtec.s}} {l ytec.s}} {l ztec.s}}
put {ringxyztor.s} tor V {0 0 0} H {-0.7071067811865475727373109 0.7071067811865475727373109 0} r_a 0.4999999914428644998132256 r_h 0.009999999670806607177109271
-13
View File
@@ -1,13 +0,0 @@
#!/bin/sh
rt -M -p50 -W \
$*\
aet.g\
'diagram.r' \
<<EOF
viewsize 3.58095758486442e+00;
orientation 4.58468551319667e-01 5.46381543126676e-01 5.36927647047512e-01 4.50535790606452e-01;
eye_pt 2.16300884070308e+00 6.60866025843505e-01 3.68751836397137e-01;
start 0; clean;
end;
EOF
+58 -70
View File
@@ -11,81 +11,77 @@ set(NIST_SAMPLE_3DM_MODELS
NIST_MBE_PMI_7-10.3dm
)
function(ADD_NIST_STEP_TARGET step_model folder)
# Base output file name on input file
macro(ADD_NIST_STEP_TARGET step_model folder)
string(REGEX REPLACE "([0-9a-z]*).stp" "\\1" step_model_root "${step_model}")
# Define a relative output path - the quirks of CMake require this...
set(output_file ${DATA_DIR}/db/${step_model_root}.g)
# One log file per target
set(output_file ${bin_root}/${DATA_DIR}/db/${step_model_root}.g)
set(log_file ${CMAKE_CURRENT_BINARY_DIR}/${step_model_root}.log)
# Define the target
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND step-g -O ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file} ${CMAKE_CURRENT_SOURCE_DIR}/${step_model} > ${log_file} 2>&1
OUTPUT ${output_file}
COMMAND step-g -O ${output_file} ${CMAKE_CURRENT_SOURCE_DIR}/${step_model} > ${log_file} 2>&1
DEPENDS step-g ${CMAKE_CURRENT_SOURCE_DIR}/${step_model}
)
add_custom_target(${step_model_root}.g ALL DEPENDS ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file})
# Assign a target folder for tools like Visual Studio
)
add_custom_target(${step_model_root}.g ALL DEPENDS ${output_file})
set_target_properties(${step_model_root}.g PROPERTIES FOLDER "${folder}")
# If we're installing geometry, set up the install rule
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
install(FILES ${CMAKE_CURRENT_BUILD_DIR_INSTALL}/${output_file} DESTINATION ${DATA_DIR}/db)
if(NOT "${CMAKE_CFG_INTDIR}" STREQUAL "." AND CMAKE_CONFIGURATION_FILES)
string(REPLACE "${CMAKE_CFG_INTDIR}" "\${BUILD_TYPE}" output_file "${output_file}")
endif(NOT "${CMAKE_CFG_INTDIR}" STREQUAL "." AND CMAKE_CONFIGURATION_FILES)
install(FILES ${output_file} DESTINATION ${DATA_DIR}/db)
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
# Cleanup
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file};${log_file}")
set(BUILT_MODELS "${BUILT_MODELS};${output_file}")
set(LOG_FILES "${LOG_FILES};${log_file}")
DISTCLEAN(${log_file})
endmacro(ADD_NIST_STEP_TARGET step_model folder)
endfunction(ADD_NIST_STEP_TARGET step_model folder)
# Get our root path
if(CMAKE_CONFIGURATION_TYPES)
set(bin_root "${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}")
else(CMAKE_CONFIGURATION_TYPES)
set(bin_root "${CMAKE_BINARY_DIR}")
endif(CMAKE_CONFIGURATION_TYPES)
function(ADD_NIST_3DM_TARGET rhino_model folder)
# The general pattern of the BRL-CAD build is to use CMAKE_CFG_INTDIR when
# multi-configuration builds complicate the location of binaries. In this
# case, however, we are using a generated script with a different mechanism
# for handling this situation, and we need to update the executable paths
# accordingly if they are configuration dependent.
if(CMAKE_CONFIGURATION_TYPES)
string(REPLACE "${CMAKE_CFG_INTDIR}" "\${BUILD_TYPE}" rbin_root "${bin_root}")
else(CMAKE_CONFIGURATION_TYPES)
set(rbin_root "${bin_root}")
endif(CMAKE_CONFIGURATION_TYPES)
# Base output file name on input file
# Use the CMake executable to figure out if we need an extension
get_filename_component(EXE_EXT "${CMAKE_COMMAND}" EXT)
macro(ADD_NIST_3DM_TARGET rhino_model folder)
set(CMD_EXEC ${rbin_root}/${BIN_DIR}/3dm-g${EXE_EXT})
string(REGEX REPLACE "([0-9a-z]*).3dm" "\\1" rhino_model_root "${rhino_model}")
# Define a relative output path - the quirks of CMake require this...
set(output_file ${DATA_DIR}/db/${rhino_model_root}.g)
# Because we won't know the output directory in the script reliably until run time,
# we append CURRENT_BUILD_DIR as a string to the arguments - it is the script's
# responsibility to handle it correctly at run time.
set(CMD_ARGS "-o" "CURRENT_BUILD_DIR/${output_file}" "${CMAKE_CURRENT_SOURCE_DIR}/${rhino_model}")
# One log file per target - we capture both stdout and stderror here
set(output_file ${rbin_root}/${DATA_DIR}/db/${rhino_model_root}.g)
set(log_file ${CMAKE_CURRENT_BINARY_DIR}/${rhino_model_root}.log)
# Use the model name for the script as well, since the output file is specific to this input
set(script_file "${CMAKE_CURRENT_BINARY_DIR}/${rhino_model_root}.cmake")
# We know enough - write the script
generate_cmd_script(3dm-g "${script_file}" OLOG "${log_file}" ELOG "${log_file}" CARGS "${CMD_ARGS}")
# Define the target
set(STDOUT_LOG "${log_file}")
set(STDERR_LOG "${log_file}")
set(CMD_ARGS "-o \"${output_file}\" \"${CMAKE_CURRENT_SOURCE_DIR}/${rhino_model}\"")
configure_file(${BRLCAD_CMAKE_DIR}/builddir_cmd.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/3dm-g.cmake @ONLY)
set(output_file ${bin_root}/${DATA_DIR}/db/${rhino_model_root}.g)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file}
COMMAND ${CMAKE_COMMAND} -P "${script_file}"
OUTPUT ${output_file}
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/3dm-g.cmake
DEPENDS 3dm-g ${CMAKE_CURRENT_SOURCE_DIR}/${rhino_model}
)
add_custom_target(${rhino_model_root}.g ALL DEPENDS ${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file})
# Assign a target folder for tools like Visual Studio
)
add_custom_target(${rhino_model_root}.g ALL DEPENDS ${output_file})
set_target_properties(${rhino_model_root}.g PROPERTIES FOLDER "${folder}")
# If we're installing geometry, set up the install rule
if(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
install(FILES ${CMAKE_CURRENT_BUILD_DIR_INSTALL}/${output_file} DESTINATION ${DATA_DIR}/db)
if(NOT "${CMAKE_CFG_INTDIR}" STREQUAL "." AND CMAKE_CONFIGURATION_FILES)
string(REPLACE "${CMAKE_CFG_INTDIR}" "\${BUILD_TYPE}" output_file "${output_file}")
endif(NOT "${CMAKE_CFG_INTDIR}" STREQUAL "." AND CMAKE_CONFIGURATION_FILES)
install(FILES ${output_file} DESTINATION ${DATA_DIR}/db)
endif(BRLCAD_INSTALL_EXAMPLE_GEOMETRY)
# Cleanup
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${CMAKE_CURRENT_BUILD_DIR_SCRIPT}/${output_file};${log_file}")
endfunction(ADD_NIST_3DM_TARGET rhino_model folder)
set(BUILT_MODELS "${BUILT_MODELS};${output_file}")
set(LOG_FILES "${LOG_FILES};${log_file}")
DISTCLEAN(${log_file})
endmacro(ADD_NIST_3DM_TARGET rhino_model folder)
foreach(step_input ${NIST_SAMPLE_STEP_MODELS})
@@ -99,21 +95,13 @@ endforeach(rhino_input ${NIST_SAMPLE_3DM_MODELS})
CMAKEFILES(${NIST_SAMPLE_3DM_MODELS})
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${BUILT_MODELS}")
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "${LOG_FILES}")
CMAKEFILES(
README
pdf/1.pdf
pdf/2.pdf
pdf/3.pdf
pdf/4.pdf
pdf/5.pdf
pdf/6.pdf
pdf/7-10_assem.pdf
pdf/7.pdf
pdf/8.pdf
pdf/9.pdf
pdf/10.pdf
pdf/11.pdf
)
pdf
)
# Local Variables:
# tab-width: 8
-26
View File
@@ -1887,19 +1887,6 @@ eprint = {}
timestamp = {2010.02.23}
}
@INPROCEEDINGS{Yapp11,
author = {Yapp, Clifford},
title = {A CMake-Based Cross Platform Build System for Tcl/Tk},
booktitle = {18'th Annual Tcl Association Tcl/Tk Conference Proceedings},
pages = {135-143},
year = {2011},
month = {October},
isbn = {978-0-578-09801-2},
note = {Presented at the 18th Tcl/Tk Conference in Manassas, VA on October 24-28, 2011},
owner = {morrison},
timestamp = {2016.11.27}
}
@TECHREPORT{Yapp12,
author = {Yapp, Clifford},
title = {Generating Coils in BRL-CAD},
@@ -2046,19 +2033,6 @@ eprint = {}
timestamp = {2015.12.01}
}
@TECHREPORT{Yapp17,
author = {Yapp, Clifford},
title = {Converting Geometry from Creo Parametric to BRL-CAD},
institution = {United States Army, Army Research Laboratory, Survivability/Lethality Analysis Directorate},
year = {2017},
month = {June},
number = {ARL-SR-0376},
address = {Army Research Laboratory, Aberdeen Proving Ground, MD 21005-5068},
note = {Approved for Public Release, distribution unlimited. Available online: http://www.arl.army.mil/arlreports/2017/ARL-SR-0376.pdf},
owner = {morrison},
timestamp = {2017.06.28}
}
@comment{jabref-meta: selector_journal:}
@comment{jabref-meta: selector_author:}
+6 -14
View File
@@ -1,23 +1,13 @@
if(BRLCAD_EXTRADOCS)
verbose_add_subdirectory(doc docbook)
else(BRLCAD_EXTRADOCS)
include(${CMAKE_CURRENT_SOURCE_DIR}/docbook_files.cmake)
CMAKEFILES_IN_DIR(docbook_files docbook)
CMAKEFILES(docbook)
endif(BRLCAD_EXTRADOCS)
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
)
CMAKEFILES(parsers)
set(documentation_DATA
IDEAS
@@ -32,6 +22,7 @@ set(documentation_DATA
README.Windows
TODO.BREP
TODO.shaded_displays
anim.txt
archer_ack.txt
benchmark.tr
brep.txt
@@ -215,10 +206,13 @@ set(documentation_mged_old_DATA
mged/wm-prims.ps
mged/wm-tube.ps
mk.tr
movie.txt
old-mged.tr
pkg.tr
regions.txt
rounding.txt
sun.txt
tube.txt
tool_categories.txt
ecosystem.dot
)
@@ -232,9 +226,7 @@ CMAKEFILES(
STARTERS
STRATEGY
csv_to_comgeom.txt
docbook_files.cmake
implicit_constraints.txt
lcov.txt
pad_file.xml.in
trunk_hierarchy.org
)
+1 -1
View File
@@ -15,7 +15,7 @@ familiar with the project.
* Render some pictures using rt and rtedge
* Perform basic geometric analysis using rtarea, rtweight, and gqa
* Perform basic geometric analysis using rtarea, rtweight, and g_qa
* Write a procedural geometry tool (see examples in src/proc-db)
+2 -1
View File
@@ -86,7 +86,8 @@ testing tool for TCP implementers via Network Working Group RFC 2398.
This product does not yet exist but is a long term goal. It's
basically several of the core libraries form BRL-CAD's geometry
modeling kernel including the present libbu, libbn, librt, libwdb,
liboptical, and the ray-trace interface application back-end.
liboptical, libmultispectral, and the ray-trace interface application
back-end.
This modeling kernel provides fundamental geometric representation,
ray-trace analysis, and geometric processing capabilities via a
-17
View File
@@ -42,20 +42,3 @@ compiled as libpng.so). If this happens, it likely indicates a problem
with the CMake build logic and should be reported as a bug - you may also
need to install a shared version of the library. Another possibility
would be to add -mipure-text to the linker flags.
OpenIndiana
-----------
To build with gcc and CMake on OpenIndiana, you need to install the
following packages:
pkg install pkg:/developer/gcc-7
pkg install pkg:/developer/build/cmake
pkg install pkg:/developer/versioning/subversion
pkg install pkg:/system/header
pkg install pkg:/developer/lexer/flex
(Note that gcc-7 building doesn't work as of 2017-08-23 - the above
install list is a starting point, but the repo currently doesn't
build and isn't close to building. It may be an older gcc would
have better luck...)
+3 -9
View File
@@ -43,15 +43,9 @@ BRL-CAD on Windows will generate over 800 of them) and a large list of
targets will appear. To build everything look for a target named
ALL_BUILD. Start compiling that target.
Once compilation is successfully complete, you can find the compiled
executables in a 'bin' directory in your build directory. For
example, mged.exe would be in brlcad-svn-trunk\.build\Debug\bin if
brlcad-svn-trunk\.build is the build directory specified to CMake and
CMAKE_BUILD_TYPE was set to Debug.
You may want to produce an NSIS installer. If so, locate a target
named PACKAGE and run it. The end result should be an .exe file
capable of installing BRL-CAD.
Once compilation is successfully complete, you may want to produce an
NSIS installer. If so, locate a target named PACKAGE and run it. The
end result should be an .exe file capable of installing BRL-CAD.
MINGW (WORK IN PROGRESS - THIS DOES NOT YET WORK!!!)
-----
+145
View File
@@ -0,0 +1,145 @@
Date: Fri, 30 Oct 87 3:58:14 EST
From: Phil Dykstra <phil@BRL.ARPA>
Subject: Re: Animation querry.
I have been meaning to put a few notes together about animation in
BRL-CAD for some time now. Your message presses the point so here's
a really quick basic overview. Note that animation control is
still very early and experimental. Don't be surprised if much of
it changes in the future.
------
The earliest form of animation was just changing the viewpoint.
So that RT could ray trace the "current" MGED view, a -M flag was
added which tells RT to read the viewing matrix from stdin.
This matrix is written on six lines in the form:
viewsize
xpos ypos zpos
[4x4 rotation matrix, 4 elements per line]
Such data can be saved along with an RT shell script by the "saveview"
command in MGED. To get just this data (i.e. without the shell script),
the "savekey" command can be used. Thus one can save a string of
viewpoint keyframes via "savekey." ["Times" can also be added to
the keyframes for the purposes of some interpolation programs.]
Several tools were written (not in the distribution) which generate
sequences of such views, interpolate a set a keyframes, etc.
The "rmats" command was added to allow a file of these views to be
read in to MGED so you could watch the keyframes go by. Feeding the
same data to RT (via the -M flag) computes an image for each view.
The views either go to the frame buffer, or if an output filename
is given, they go into files with frame number suffixes.
Animation previews are typically made via low resolution ray traces,
composited into one large image via "pixtile," and viewed on a frame
buffer via "fbanim" (preferably one with hardware pan and zoom).
Later we wished to articulate the models themselves, so a command
script language was created for RT. These are also fed to RT
via the -M flag. RT figures out whether it is given the old form
above or a real script. An animation description script contains
transformation matrices to be applied to the model tree. A simple
one might look like:
start 42;
clean;
anim frob/nitz matrix rmul
1 0 0 1
0 1 0 2
0 0 1 0
0 0 0 0;
end;
etc.
start - says to start frame number 42.
clean - make RT clean up after itself (this may not be needed any more...).
anim - says to apply an matrix animation to the arc connecting frob to
nitz. The type of matrix operation is a right multiply (choices
include right or left multiply, replace, or reroot (i.e. world
coordinates)).
end - tells it to go ahead and shoot this frame.
Eventually there will be things besides "matrix" animations to allow
material properties etc. to be animated.
Various outboard tools generate motions, merge animation scripts
together, allow the previewing/editing of motions, etc. For the
most part these tools are sufficiently ad hoc and experimental
that we aren't giving any of them away yet. Next year some time....
-------
I didn't explain any of it in much detail, but hopefully it
gives you an overview. One of these days we will write some
more about it - like when we start including some motion tools.
==============================
Date: Fri, 30 Oct 87 16:42:14 EST
From: Phil Dykstra <phil@BRL.ARPA>
Subject: Re: Animation querry.
Here's a bit more about the matrix operations available in RT
animation scripts.
-----
RT Matrix Animation Operations:
==============================
In BRL-CAD, matrices are handled in their usual mathematical form
(the transpose of the Newman and Sproull "computer graphics form").
That is, a matrix looks like this:
r1 r2 r3 dx
r4 r5 r6 dy
r7 r8 r9 dz
0 0 0 1/s
Points are *column* vectors, so a point is transformed by:
newpoint = Matrix * oldpoint;
Thus the world coordinate system is on the "left" end of a stack of
matrix operations; the local coordinate system being that of the point
on the extreme right.
In walking a model tree (such as "prep'ing" the model for ray tracing),
each arc crossed from root to leaf normally gets its matrix multiplied on
the right side of the current matrix stack[1]. Rigid body articulations
of a model can then be described by changing or adding matrices at the
appropriate points in this stack.
The matrix animation operations currently recognized by RT are:
rstack replace the entire stack up to this point
rarc replace the matrix on the specified arc
rboth replace the entire stack and the arc matrix
rmul arc = arc * Matrix
lmul arc = Matrix * arc
The path specifying where in the model tree the operation is to
be applied can either be an absolute path, e.g.
/body/left/arm/hand
which would affect the arc between the left arm of body and the hand
(note that hand need not be a leaf), or it can be a "wildcard", e.g.
arm/hand
would mean the arc between arm and hand anywhere in the model tree, i.e.
it is not restricted to the left one as above. Finally a wildcard like
arm
means the arc before any node called arm.
-------------------------
[1] It is interesting to note that our "right multiply" operation
corresponds exactly to the SGI Iris multmatrix() command. The later
pre-multiplies the matrix stack, but the matrix stack post-multiplies
any points being transformed! In fact, if one looks at the Iris at the
geometry engine level, one finds that it works with matrices in the
usual mathematical form - the gl2 library transposes them in and out of
N&S form.
+1 -2
View File
@@ -47,11 +47,10 @@ 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 fop.xconf.in log4j.properties resources)
CMAKEFILES(README.DB_authors_notes)
CMAKEFILES(css/brlcad.css)
+35
View File
@@ -3386,6 +3386,11 @@
<link xlink:href="../../man1/en/g-var.php">G-var</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/g-vrml.php">G-vrml</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/g-x3d.php">G x3d</link>
@@ -3881,6 +3886,11 @@
<link xlink:href="../../man1/en/rtshot.php">Rt shot</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/rttherm.php">Rt therm</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/rtwalk.php">Rt Walk</link>
@@ -3926,6 +3936,11 @@
<link xlink:href="../../man1/en/showtherm.php">Show Therm </link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/ssamp-bw.php">Ssamp Bw</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../man1/en/stl-g.php">Stl g</link>
@@ -4313,6 +4328,11 @@
<link xlink:href="../../mann/en/d.php">D</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/dall.php">Dall</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/db.php">DB</link>
@@ -4458,6 +4478,11 @@
<link xlink:href="../../mann/en/erase.php">Erase</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/erase_all.php">Erase All</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/ev.php">EV</link>
@@ -4478,6 +4503,11 @@
<link xlink:href="../../mann/en/expand.php">Expand</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/export_body.php">Export Body</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/extrude.php">Extrude</link>
@@ -5203,6 +5233,11 @@
<link xlink:href="../../mann/en/vquery_ray.php">Vquery Ray</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/vrmgr.php">Vrmgr</link>
</para>
</listitem>
<listitem>
<para>
<link xlink:href="../../mann/en/vrot.php">vrot</link>
+142 -2
View File
@@ -5162,6 +5162,9 @@ x delete character
<entry>
<link linkend="d">d</link>
</entry>
<entry>
<link linkend="dall">dall</link>
</entry>
<entry>
<link linkend="db">db</link>
</entry>
@@ -5244,6 +5247,9 @@ x delete character
<entry>
<link linkend="erase">erase</link>
</entry>
<entry>
<link linkend="erase_all">erase_all</link>
</entry>
<entry>
<link linkend="ev">ev</link>
</entry>
@@ -5255,6 +5261,9 @@ x delete character
<entry>
<link linkend="expand">expand</link>
</entry>
<entry>
<link linkend="export_body">export_body</link>
</entry>
<entry>
<link linkend="expand_comb">expand_comb</link>
</entry>
@@ -5705,6 +5714,9 @@ x delete character
<entry>
<link linkend="vquery_ray">vquery_ray</link>
</entry>
<entry>
<link linkend="vrmgr">vrmgr</link>
</entry>
<entry>
<link linkend="vrot">vrot</link>
</entry>
@@ -7906,7 +7918,8 @@ x delete character
explicitly displayed objects). Objects that are displayed as
members of explicitly displayed combinations cannot be deleted
from the display with this command (see
<link linkend="erase">erase -r</link>). Note that this
<link linkend="dall">dall</link> or
<link linkend="erase_all">erase_all</link>). Note that this
has no effect on the <emphasis>BRL-CAD</emphasis> database
itself. To actually remove objects from the database, use the
<link linkend="kill">kill</link> command.
@@ -7932,6 +7945,36 @@ x delete character
<para>
<emphasis role="strong"></emphasis>
</para>
<variablelist xml:id="dall">
<varlistentry>
<term>
dall <emphasis>&lt;objects</emphasis>&gt;
</term>
<listitem>
<para>
The <quote>dall</quote> command deletes the specified list of
objects from the <emphasis>mged</emphasis> display. This is a
synonym for the <link linkend="erase_all">erase_all</link>
command. This command will allow the user to delete objects
that have not been explicitly displayed (unlike the
<link linkend="d">d</link> command). Note that this has no
effect on the <emphasis>BRL-CAD</emphasis> database itself. To
actually remove objects from the database, use the
<link linkend="kill">kill</link> command.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Examples:
</term>
<listitem>
<para>
mged&gt; dall region1 shapea
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
– Delete <emphasis>region1</emphasis> and
<emphasis>shapea</emphasis> from the <emphasis>mged</emphasis>
@@ -9258,7 +9301,8 @@ x delete character
explicitly displayed objects). Objects that are displayed as
members of explicitly displayed combinations cannot be deleted
from the display with this command (see
<link linkend="erase">erase -r</link>). Note that this
<link linkend="dall">dall</link> or
<link linkend="erase_all">erase_all</link>). Note that this
has no effect on the <emphasis>BRL-CAD</emphasis> database
itself. To actually remove objects from the database, use the
<link linkend="kill">kill</link> command.
@@ -9283,6 +9327,36 @@ x delete character
<para>
<emphasis role="strong"></emphasis>
</para>
<variablelist xml:id="erase_all">
<varlistentry>
<term>
erase_all <emphasis>&lt;objects</emphasis>&gt;
</term>
<listitem>
<para>
The <quote>erase_all</quote> command deletes the specified
list of objects from the MGED display. This is a synonym for
the <link linkend="dall">dall</link> command. This command
will allow the user to delete objects that have not been
explicitly displayed (unlike the <link linkend="d">d</link> or
<link linkend="erase">erase</link> commands). Note that this
has no effect on the <emphasis>BRL-CAD</emphasis> database
itself. To actually remove objects from the database, use the
<link linkend="kill">kill</link> command.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Examples:
</term>
<listitem>
<para>
mged&gt; erase_all region1 shapea
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
– Delete <emphasis>region1</emphasis> and
<emphasis>shapea</emphasis> from the MGED display.
@@ -9462,6 +9536,28 @@ x delete character
<para>
<emphasis role="strong"></emphasis>
</para>
<para xml:id="export_body">
export_body object file
</para>
<para>
The <quote>export_body</quote> command is used to copy the contents
of the specified binary <emphasis>object</emphasis> into the
specified <emphasis>file</emphasis>. Currently, only binary objects
containing a uniform array of simple objects is supported.
</para>
<para>
Examples:
</para>
<para>
<literal></literal>
</para>
<para>
mged&gt; export_body bin_chars /home/fred/chars
</para>
<para>
– Copy the contents of <quote>bin_chars</quote> into the file
<quote>/home/fred/chars</quote>
</para>
<para xml:id="expand_comb">
expand_comb <emphasis>prefix comb …</emphasis>
</para>
@@ -16639,6 +16735,50 @@ EOF
<para>
<emphasis role="strong"></emphasis>
</para>
<variablelist xml:id="vrmgr">
<varlistentry>
<term>
vrmgr <emphasis>host</emphasis> {<emphasis>master</emphasis> |
<emphasis>slave</emphasis> | <emphasis>overview</emphasis>}
</term>
<listitem>
<para>
The <quote>vrmgr</quote> command establishes a link between
the current MGED display and a <emphasis>vrmgr</emphasis>
process running on the specified <emphasis>host</emphasis>.
The <emphasis>vrmgr</emphasis> program is a manager for
virtual reality displays using MGED. The
<emphasis>vrmgr</emphasis> process must be started on
<emphasis>host</emphasis> prior to executing the
<emphasis>vrmgr</emphasis> command in MGED. The second command
line argument to the <emphasis>vrmgr</emphasis> command is the
role of the current MGED display. The
<emphasis>master</emphasis> display controls the viewing
parameters of itself and all the <emphasis>slave</emphasis>
displays. The <emphasis>overview</emphasis> display acts as an
observer of the entire virtual reality process.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
Examples:
</term>
<listitem>
<para>
mged&gt; vrmgr host1.brlcad.org master
</para>
</listitem>
</varlistentry>
</variablelist>
<para>
– Set the current MGED display as the <emphasis>master</emphasis>
for the <emphasis>vrmgr</emphasis> process running on the host named
<emphasis>host1.brlcad.org.</emphasis>
</para>
<para>
<emphasis role="strong"></emphasis>
</para>
<variablelist xml:id="vrot">
<varlistentry>
<term>
+4
View File
@@ -138,6 +138,10 @@ eccetera.</para>
(fb), che gestisce l'apertura di una finestra di framebuffer sulla quale
effettuare il raytracing.</para>
<para>- <emphasis role="bold">libmultispectral</emphasis><emphasis role="bold">and liboptical</emphasis> &#xFFFD;
sono le librerie per lo shading ed il texturing utilizzate dal
raytracing.</para>
<para>- <emphasis role="bold">libpkg</emphasis> &#xFFFD; &#xFFFD; una libreria che inplementa il
meccanismo per il richiamo di una procedura remota (rpc). Questa libreria &#xFFFD;
un predecessore del sistema attuale rpc. Al contrario del tipico servizio
@@ -122,7 +122,7 @@
</listitem>
<listitem>
<para>
liboptical - the shader and texturing library for the raytracer.
libmultispectral and liboptical - the shader and texturing libraries for the raytracer.
</para>
</listitem>
<listitem>
@@ -2963,7 +2963,7 @@ comb comb_name u a - b + c
<para>
There are several ways to evaluate BRL-CAD geometry. These include
(1) rendering the image using rt, (2) checking for overlaps using rtcheck
(or the lesser-known/used glint or MGED's overlap tool), and (3) checking
(or the lesser-known/used g_lint or MGED's overlap tool), and (3) checking
for faulty material composition (e.g., densities) using rtweight.
</para>
<para>
@@ -2977,7 +2977,7 @@ comb comb_name u a - b + c
</para>
<para>
As subcomponents are organized into assemblies and the complexity of the
geometry increases, it is then a good practice to use rtcheck (or glint
geometry increases, it is then a good practice to use rtcheck (or g_lint
or the overlap tool) to help find any errors in the geometry and isolate
any problems.
</para>
-69
View File
@@ -1,69 +0,0 @@
set(dr_ignore_files
CMakeLists.txt
README
brlcad/brlcad-article-fo-stylesheet.xsl.in
brlcad/brlcad-article-xhtml-stylesheet.xsl.in
brlcad/brlcad-book-fo-stylesheet.xsl.in
brlcad/brlcad-book-xhtml-stylesheet.xsl.in
brlcad/brlcad-common.xsl.in
brlcad/brlcad-fo-stylesheet.xsl.in
brlcad/brlcad-fonts.xsl.in
brlcad/brlcad-gendata.xsl
brlcad/brlcad-lesson-fo-stylesheet.xsl.in
brlcad/brlcad-lesson-xhtml-stylesheet.xsl.in
brlcad/brlcad-man-fo-stylesheet.xsl.in
brlcad/brlcad-man-stylesheet.xsl.in
brlcad/brlcad-man-xhtml-stylesheet.xsl.in
brlcad/brlcad-presentation-fo-stylesheet.xsl.in
brlcad/brlcad-presentation-xhtml-stylesheet.xsl.in
brlcad/brlcad-specification-fo-stylesheet.xsl.in
brlcad/brlcad-specification-xhtml-stylesheet.xsl.in
brlcad/brlcad-xhtml-header-navigation.xsl
brlcad/brlcad-xhtml-stylesheet.xsl.in
brlcad/center-table-print.xsl
brlcad/images/brlcad-logo-669966.svg
brlcad/images/brlcad-logo-6699cc.svg
brlcad/images/brlcad-logo-blue.svg
brlcad/images/brlcad-logo-cc6666.svg
brlcad/images/brlcad-logo-cc9966.svg
brlcad/images/brlcad-logo-green.svg
brlcad/images/brlcad-logo-limegreen.svg
brlcad/images/brlcad-logo-red.svg
brlcad/images/logo-vm-gears.png
brlcad/images/logo-vm-gears.svg
brlcad/presentation.xsl.in
brlcad/tutorial-cover-template.xsl.in
brlcad/tutorial-template.xsl.in
brlcad/wordpress.xsl.in
other/README.schema
other/docbook-5.0.tar.bz2
other/docbook5xi.rnc
other/docbookxi.nvdl
other/expand.cmake
other/fonts/README
other/fonts/dejavu-lgc-fonts.tar.bz2
other/fonts/dejavu_COPYING.txt
other/fonts/stix-fonts.tar.bz2
other/fonts/stix_COPYING.txt
other/fonts/y14.5.tar.bz2
other/fonts/y14.5_COPYING.txt
other/offo/README.offo
other/offo/licenses.txt
other/offo/offo-2.0.tar.bz2
other/standard/README.svg
other/standard/README.xsl
other/standard/docbook-xsl-ns.tar.bz2
other/standard/met-fonts.xsl
other/standard/w3_svg_dtd.tar.bz2
)
CMAKEFILES(${dr_ignore_files})
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
@@ -3,8 +3,6 @@ set(specifications_EN
)
ADD_DOCBOOK("HTML;PHP;PDF" specifications_EN specifications/en "")
CMAKEFILES(BRL_CAD_g_format_V6.xml)
# Local Variables:
# tab-width: 8
# mode: cmake
+5 -10
View File
@@ -5,7 +5,6 @@ set(man1_EN
anim_track.xml
anim_turn.xml
ap-pix.xml
alias-pix.xml
asc-nmg.xml
asc-plot3.xml
asc2dsp.xml
@@ -13,7 +12,6 @@ set(man1_EN
azel.xml
bary.xml
benchmark.xml
brlman.xml
bot_dump.xml
bot_shell-vtk.xml
brep_simple.xml
@@ -89,7 +87,6 @@ set(man1_EN
fbzoom.xml
firpass.xml
g-acad.xml
g-dot.xml
g-dxf.xml
g-egg.xml
g-euclid.xml
@@ -107,16 +104,16 @@ set(man1_EN
g-voxel.xml
g-vrml.xml
g-x3d.xml
g-dot.xml
g2asc.xml
gastank.xml
g_diff.xml
g_lint.xml
gdiff.xml
gencolor.xml
gif-fb.xml
gif2fb.xml
glint.xml
gqa.xml
halftone.xml
handle.xml
hex.xml
icv.xml
iges-g.xml
@@ -135,7 +132,6 @@ set(man1_EN
obj-g.xml
patch-g.xml
pictx.xml
picket_fence.xml
pix-alias.xml
pix-bw.xml
pix-fb.xml
@@ -219,6 +215,7 @@ set(man1_EN
rtregis.xml
rtscale.xml
rtshot.xml
rttherm.xml
rtwalk.xml
rtweight.xml
rtwizard.xml
@@ -228,6 +225,7 @@ set(man1_EN
shapefact.xml
showshot.xml
showtherm.xml
ssamp-bw.xml
stl-g.xml
sun-pix.xml
tabinterp.xml
@@ -239,9 +237,6 @@ set(man1_EN
vdeck.xml
viewpoint-g.xml
wavelet.xml
window.xml
window_frame.xml
wire.xml
wdb_example.xml
)
+17
View File
@@ -284,6 +284,23 @@ are, by convention, lower case for file information,
and upper case for screen information.
Here's a list of some of the common options you may encounter:</para>
<variablelist remap='TP'>
<varlistentry>
<term><option>-h</option></term>
<listitem>
<para>The "high resolution" flag, increasing the default screen and file
size of 512x512
to 1024x1024. Has same effect as
<option>-s</option> 1024 (or <option>-S</option> 1024)
but exists as a convenient shorthand held over from the simple days
when framebuffers were square, and only came in two resolutions.
This historical usage unfortunately preempts this letter from use
as a height specifier, forcing that function to relocate under
protest to
<option>-n</option>,
which can be thought of as "number of scanlines", which isn't
too bad a mnemonic.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-i</option></term>
<listitem>
-109
View File
@@ -1,109 +0,0 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="brlman1">
<refmeta>
<refentrytitle>BRLMAN</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>brlman</refname>
<refpurpose>
a manual page viewer for BRL-CAD
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>brlman</command>
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
<arg choice="opt"><replaceable>manpage</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>
<command>brlman</command> provides manual page viewing capabilities for
BRL-CAD's programs, commands, libraries, and conventions (such as file
formats and attribute standards.) On Unix-type systems, its default
behavior is to wrap the system <command>man</command> command with the appropriate path
information to allow man to find and display BRL-CAD's man pages. On
systems without a <command>man</command> command, <command>brlman</command>
will instead launch a Tcl/Tk based graphical view that displays html
versions of the manual pages. Both versions are generated from the same
DocBook source files and contain the same information.
</para>
</refsection>
<refsection xml:id="brlman_options"><title>OPTIONS</title>
<variablelist remap="TP">
<varlistentry>
<term><emphasis remap="B" role="bold">-h</emphasis></term>
<listitem>
<para>
Prints help.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-g</emphasis></term>
<listitem>
<para>
Instructs <command>brlman</command> to use its graphical man page viewer.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-L</emphasis></term>
<listitem>
<para>
Specify a language to use when selecting man pages.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-S [1 3 5 n]</emphasis></term>
<listitem>
<para>
Specify a particular section to use when searching for a man page. Useful when there are programs and MGED commands with the same names - the default man page returned will be that of the program, so <option>-S</option> can be used to specify the MGED page instead. Allowed sections are 1 (programs), 3 (libraries), 5 (conventions), and n (MGED).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">--no-gui</emphasis></term>
<listitem>
<para>
Instructs <command>brlman</command> <emphasis>not</emphasis> to use its graphical man page viewer, even in situations where there is no command line option. Primarily useful in scripting situations.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title>
<para>Clifford Yapp</para>
</refsection>
<refsection xml:id="copyright"><title>COPYRIGHT</title>
<para>
This software is Copyright (c) 2016 United States Government as
represented by the U.S. Army Rebrlman Laboratory.
</para>
</refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
<!-- vim: set shiftwidth=2 : -->
+1 -1
View File
@@ -97,7 +97,7 @@ to avoid having to create a font converter.</para>
</refsection>
<refsection xml:id="example"><title>EXAMPLE</title>
<para>fblabel -f "oldenglish.14" `fbpoint -H` "Hello"</para>
<para>fblabel -f "oldenglish.14" `fbpoint -h` "Hello"</para>
</refsection>
<refsection xml:id="see_also"><title>SEE ALSO</title>
+91
View File
@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- lifted from troff+man by doclifter -->
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='g_diff1'>
<refmeta>
<refentrytitle>G_DIFF
</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
</refmeta>
<refnamediv>
<refname>g_diff</refname>
<refpurpose>a BRL-CAD differential geometry comparator</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>g_diff</command><arg choice='opt'>-m </arg>
<arg choice='opt'>-f </arg>
<arg choice='opt'>-v </arg>
<arg choice='plain'><replaceable>model1.g</replaceable></arg>
<arg choice='plain'><replaceable>model2.g</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para><command>g_diff</command>
compares the two BRL-CAD models specified on the command line. The results of this comparison
are written to standard out in a human readable form describing the changes from model1 to model2.
If the
<option>-m</option>
option is exercised, the output will be a script, readable by <command>mged(1)</command>, that will perform the
necessary changes to model1 to make it a copy of model2. The produced script makes extensive use
of the
<emphasis remap='I'>db get</emphasis>,
<emphasis remap='I'>db put</emphasis>,
and
<emphasis remap='I'>db adjust</emphasis>
commands in <command>mged(1)</command>. A few solid types are not supported by these commands, and changes involving these
solids are merely noted (the script will not actually be capable of performing all the changes in this case).
The
<option>-e</option>
option selections evolutionary mode, which attempts to guess if a change in a region is due to an evolutionary change or a reworking.
The output is similar to -m, but it is NOT mged readable.
The
<option>-f</option>
option requests that all floating point numerical comparisons be done in single precision rather
than the default double precision. This may be useful when comparing different format databases.
The
<option>-v</option>
option requests that the default attributes of each region in both files be checked for
consistency. Any inconsistencies are written to stderr.</para>
<para>The program returns 0 if the files being compared have no differences and non-zero otherwise.</para>
</refsect1>
<refsect1 xml:id='example'><title>EXAMPLE</title>
<para>The command</para>
<!-- .in +5 -->
<para>g_diff -m uncle.g aunt.g &gt; mged.script</para>
<!-- .in &bsol;-5 -->
<para>will create a file named "mged.script" that may be sourced in <command>mged(1)</command> to change
uncle.g into aunt.g .</para>
</refsect1>
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
<para><citerefentry><refentrytitle>mged</refentrytitle><manvolnum>1</manvolnum></citerefentry></para>
</refsect1>
<refsect1 xml:id='author'><title>AUTHOR</title>
<para>BRL-CAD Team</para>
</refsect1>
<refsect1 xml:id='copyright'><title>COPYRIGHT</title>
<para>This software is Copyright (c) 1999-2016 by the United States
Government as represented by U.S. Army Research Laboratory.</para>
</refsect1>
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
<para>Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;.</para>
</refsect1>
</refentry>
+332
View File
@@ -0,0 +1,332 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- lifted from troff+man by doclifter -->
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='g_lint1'>
<refmeta>
<refentrytitle>G_LINT
</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
</refmeta>
<refnamediv>
<refname>g_lint</refname>
<refpurpose>a BRL-CAD geometry checker</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>g_lint</command> <arg choice='opt'><replaceable>options</replaceable></arg>
<arg choice='plain'><replaceable>model.g</replaceable></arg>
<arg choice='plain' rep='repeat'><replaceable>objects</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para><command>g_lint</command>
uses
<citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry>
to fire an array of parallel rays
at the specified
<emphasis remap='I'>objects</emphasis>
in the database
<emphasis remap='I'>model.g</emphasis>
and reports
overlaps,
vacuums,
and potential problems with air regions.
By default, the output consists of single-line reports,
each of which contains a tag identifying the report type
and then other data as appropriate for that type report.
Unless the
<option>-p</option>
option is specified,
the exact formats are:</para>
<variablelist remap='TP'>
<varlistentry>
<term><emphasis remap='B'>overlap</emphasis><emphasis remap='I'> r1 r2 length x_in y_in z_in x_out y_out z_out</emphasis></term>
<listitem>
<para>Consecutive partitions overlap by more than
<emphasis remap='I'>tol</emphasis>
(see the
<option>-t</option>
option).
The data reported are
the names of the two regions involved,
the length of the overlap along the ray,
and the model coordinates of the ray's entry into and exit from
the overlap.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap='B'>air_contiguous</emphasis><emphasis remap='I'> r1 a1 r2 a2 x y z</emphasis></term>
<listitem>
<para>Consecutive partitions have unlike (nonzero) air codes
and the space between them is less than
<emphasis remap='I'>tol</emphasis>
(see the
<option>-t</option>
option).
The data reported are
the names and air codes of the two regions involved
and the model coordinates of the point of contiguity.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap='B'>air_unconfined</emphasis><emphasis remap='I'> r1 (s1) r2 (s2) length x1 y1 z1 x2 y2 z2</emphasis></term>
<listitem>
<para>A partition with nonzero air code
follows or precedes another partition
and the space between them is more than
<emphasis remap='I'>tol</emphasis>
(see the
<option>-t</option>
option).
The data reported are
the names of the two regions (and solids) involved,
the length of the gap along the ray,
and the model coordinates of the ray's exiting the first partition
and entering the second.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap='B'>air_first</emphasis><emphasis remap='I'> r a x y z</emphasis></term>
<listitem>
<para>The first partition has a nonzero air code.
The data reported are
the name and air code of the region involved
and the model coordinates of the ray's entering the partition.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap='B'>air_last</emphasis><emphasis remap='I'> r a x y z</emphasis></term>
<listitem>
<para>The last partition has a nonzero air code.
The data reported are
the name and air code of the region involved
and the model coordinates of the ray's exiting the partition.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap='B'>vacuum</emphasis><emphasis remap='I'> r1 (s1) r2 (s2) length x1 y1 z1 x2 y2 z2</emphasis></term>
<listitem>
<para>The space between consecutive partitions is more than
<emphasis remap='I'>tol</emphasis>
(see the
<option>-t</option>
option).
The data reported are
the names of the two regions (and solids) involved,
the length of the gap along the ray,
and the model coordinates of the ray's exiting the first partition
and entering the second.</para>
</listitem>
</varlistentry>
</variablelist>
<refsect2 xml:id='commandline_options'><title>Command-line options</title>
<variablelist remap='TP'>
<varlistentry>
<term><option>-a</option><replaceable> az</replaceable></term>
<listitem>
<para>Sets the azimuth from which to fire rays to
<emphasis remap='I'>az</emphasis>
degrees.
The default is 0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<listitem>
<para>Specifies that one ray should be fired from the center of each grid cell.
By default,
<command>g_lint</command>
fires a ray from one random point in each cell.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-e</option><replaceable> el</replaceable></term>
<listitem>
<para>Sets the elevation from which to fire rays to
<emphasis remap='I'>el</emphasis>
degrees.
The default is 0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-g</option><replaceable> gridsize</replaceable></term>
<listitem>
<para>Sets the width and height of each grid cell to
<emphasis remap='I'>gridsize</emphasis>
millimeters.
The default is 100 mm.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-o</option></term>
<listitem>
<para>Causes
<command>g_lint</command>
to include in each report
the model coordinates of the ray origination point.
These appear between the tag and the rest of the data.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-p</option></term>
<listitem>
<para>Causes
<command>g_lint</command>
to produce its reports as
<emphasis remap='I'>plot3(5)</emphasis>
drawing commands instead of ASCII text.
This is useful in conjunction with the "overlay" command of
<emphasis remap='I'>mged</emphasis>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-r</option><replaceable> bits</replaceable></term>
<listitem>
<para>Specifies which types of reports to produce.
If, after an optional minus sign,
<emphasis remap='I'>bits</emphasis>
begins with either "0x" or "0X",
the remainder is interpreted in hexadecimal.
Otherwise, if
<emphasis remap='I'>bits</emphasis>
begins with "0",
the remainder is interpreted in octal.
Otherwise,
<emphasis remap='I'>bits</emphasis>
is interpreted in decimal.
The meaning of the individual bits is as follows:
<!-- .in +5 -->
1 overlaps
<!-- .in &bsol;-5
.in +5 -->
2 contiguous unlike airs
<!-- .in &bsol;-5
.in +5 -->
4 unconfined airs
<!-- .in &bsol;-5
.in +5 -->
8 air first on rays
<!-- .in &bsol;-5
.in +5 -->
16 air last on rays
<!-- .in &bsol;-5
.in +5 -->
32 vacuums.
<!-- .in &bsol;-5 -->
If there was no initial minus sign, then
<emphasis remap='I'>bits</emphasis>
specifies which report types to produce.
The minus sign implies complementation:
when it is present,
<emphasis remap='I'>bits</emphasis>
specifies which report types
<emphasis remap='I'>not</emphasis>
to produce.
The default is 1.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-s</option></term>
<listitem>
<para>Causes
<command>g_lint</command>
to collect all the overlap reports and sort them before printing them.
The reports for a given pair of regions
are printed contiguously,
and the clusters of reports for the various pairs of regions
appear in order of decreasing cumulative overlap length.
By default,
<command>g_lint</command>
reports overlaps immediately and in the order of their discovery.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-t</option><replaceable> tol</replaceable></term>
<listitem>
<para>Sets the tolerance for overlaps, contiguous and unconfined airs,
and vacuums
to
<emphasis remap='I'>tol</emphasis>
millimeters.
The default is 0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem>
<para>Sets the
<emphasis remap='I'>useair</emphasis>
member of the
<emphasis remap='I'>rt_i</emphasis>
structure to 1,
which causes
<emphasis remap='I'>librt</emphasis>
to report partitions containing air.
It is also set implicitly if any air-related reports have been specified.
By default,
<emphasis remap='I'>librt</emphasis>
ignores air regions.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-x</option><replaceable> bits</replaceable></term>
<listitem>
<para>Sets the
<command>g_lint</command>
debug flags to
<emphasis remap='I'>bits</emphasis>.
See the
<option>-r</option>
option
for more details.
Note that some of the report types have no corresponding diagnostics.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
</refsect1>
<refsect1 xml:id='example'><title>EXAMPLE</title>
<para>The command</para>
<!-- .in +5 -->
<para>g_lint -a 35 -e 25 -c -g 1 -r 31 -t 0.01 <emphasis remap='I'>kitchen.g appliances</emphasis></para>
<!-- .in &bsol;-5 -->
<para>fires a ray every millimeter and produces overlap reports
and every type of air-related report,
but no vacuum reports.</para>
</refsect1>
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
<para><citerefentry><refentrytitle>mged</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>strtoul</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>plot3</refentrytitle><manvolnum>5</manvolnum></citerefentry></para>
</refsect1>
<refsect1 xml:id='author'><title>AUTHOR</title>
<para>BRL-CAD Team</para>
</refsect1>
<refsect1 xml:id='copyright'><title>COPYRIGHT</title>
<para>This software is Copyright (c) 1995-2016 by the United States
Government as represented by U.S. Army Research Laboratory.</para>
</refsect1>
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
<para>Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;.</para>
</refsect1>
</refentry>
+324 -324
View File
@@ -1,100 +1,100 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='gdiff1'>
<refmeta>
<refentrytitle>GDIFF
</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
</refmeta>
<refmeta>
<refentrytitle>GDIFF
</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
</refmeta>
<refnamediv>
<refname>gdiff</refname>
<refpurpose>a BRL-CAD differential geometry comparator</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>gdiff</command>
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
<arg choice='plain'><replaceable>left_model.g</replaceable></arg>
<arg choice='opt'><replaceable>ancestor_model.g</replaceable></arg>
<arg choice='plain'><replaceable>right_model.g</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refnamediv>
<refname>gdiff</refname>
<refpurpose>a BRL-CAD differential geometry comparator</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>gdiff</command>
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
<arg choice='plain'><replaceable>left_model.g</replaceable></arg>
<arg choice='opt'><replaceable>ancestor_model.g</replaceable></arg>
<arg choice='plain'><replaceable>right_model.g</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para>
<command>gdiff</command> compares BRL-CAD models
specified on the command line, reporting differences according to the
specified options. It supports a plain "diff" comparison between two
files, as well as a "3-way" comparison that accepts a third file with
"ancestral" information that provides a context for the left and right
files.
</para>
<para>The following options are recognized:</para>
<variablelist remap="TP">
<varlistentry>
<term><option>-a</option></term>
<listitem>
<para>(two-way diff) Report objects added in right_model.g</para>
<para>(three-way diff) Report objects added in left_model.g and/or right_model.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<listitem>
<para>(two-way diff) Report objects deleted in right_model.g</para>
<para>(three-way diff) Report objects deleted in left_model.g and/or right_model.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-m</option></term>
<listitem>
<para>(two-way diff) Report objects modified in right_model.g</para>
<para>(three-way diff) Report objects that are different in left_model.g and/or right_model.g relative to ancestor.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem>
<para>(two-way diff) Report objects that are identical in left_model.g and right_model.g</para>
<para>(three-way diff) Report objects that are identical in ancestor_model.g, left_model.g and right_model.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-v #</option></term>
<listitem><para>Control the verbosity of the output. Zero will suppress all reporting and only the return value of the program will contain information, one will provide categorized lists of objects but no details on what changed, two will list each changed object preceded by a modifier, three will print more details for changed objects, and four will print all available information. All settings for this option will respect other constraints applied to the reporting output.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t #</option></term>
<listitem><para>Set a numerical comparison tolerance used to compare numerical properties. Default value is RT_LEN_TOL, but be aware that this comparison is not aware of units.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-F "filter_string"</option></term>
<listitem><para>Apply filters to the diff output, using the same set of filters available in the <command>search</command> command's search. See the <command>search</command> manual page for more details.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-M merged_file.g</option></term>
<listitem><para>Merge the files being diffed into one output file.</para></listitem>
</varlistentry>
</variablelist>
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para>
<command>gdiff</command> compares BRL-CAD models
specified on the command line, reporting differences according to the
specified options. It supports a plain "diff" comparison between two
files, as well as a "3-way" comparison that accepts a third file with
"ancestral" information that provides a context for the left and right
files.
</para>
<para>The following options are recognized:</para>
<variablelist remap="TP">
<varlistentry>
<term><option>-a</option></term>
<listitem>
<para>(two-way diff) Report objects added in right_model.g</para>
<para>(three-way diff) Report objects added in left_model.g and/or right_model.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-d</option></term>
<listitem>
<para>(two-way diff) Report objects deleted in right_model.g</para>
<para>(three-way diff) Report objects deleted in left_model.g and/or right_model.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-m</option></term>
<listitem>
<para>(two-way diff) Report objects modified in right_model.g</para>
<para>(three-way diff) Report objects that are different in left_model.g and/or right_model.g relative to ancestor.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem>
<para>(two-way diff) Report objects that are identical in left_model.g and right_model.g</para>
<para>(three-way diff) Report objects that are identical in ancestor_model.g, left_model.g and right_model.g</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-v #</option></term>
<listitem><para>Control the verbosity of the output. Zero will suppress all reporting and only the return value of the program will contain information, one will provide categorized lists of objects but no details on what changed, two will list each changed object preceded by a modifier, three will print more details for changed objects, and four will print all available information. All settings for this option will respect other constraints applied to the reporting output.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-t #</option></term>
<listitem><para>Set the length tolerance used to compare numerical properties. Units are millimeters. Default value is RT_LEN_TOL.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-F "filter_string"</option></term>
<listitem><para>Apply filters to the diff output, using the same set of filters available in the <command>search</command> command's search. See the <command>search</command> manual page for more details.</para></listitem>
</varlistentry>
<varlistentry>
<term><option>-M merged_file.g</option></term>
<listitem><para>Merge the files being diffed into one output file.</para></listitem>
</varlistentry>
</variablelist>
<para>
The program returns 0 if the files being compared have no differences that satisfy
the user-supplied options, otherwise it returns the total number of differing objects that do
satisfy the supplied options. Default is to report all differences that rise above RT_LEN_TOL.
</para>
</refsect1>
<para>
The program returns 0 if the files being compared have no differences that satisfy
the user-supplied options, otherwise it returns the total number of differing objects that do
satisfy the supplied options. Default is to report all differences that rise above RT_LEN_TOL.
</para>
</refsect1>
<refsect1 xml:id='example'><title>EXAMPLES</title>
<refsect1 xml:id='example'><title>EXAMPLES</title>
<example><title>Default Diffing Results</title>
<para>
Running the default options on two pre-prepared examples of Moss World gives us a summary of the status of various objects:
<literallayout>
<computeroutput>
<para>
Running the default options on two pre-prepared examples of Moss World gives us a summary of the status of various objects:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff moss.g moss2.g</userinput>
M platform.r
M ellipse.s
@@ -107,29 +107,29 @@ M tor.r
D LIGHT
A tgc_new.s
A eto.s
</computeroutput>
</literallayout>
'M' denotes an object that was modified, 'D' is an object that was deleted, and 'A' is an object that was added.
</para>
</example>
</computeroutput>
</literallayout>
'M' denotes an object that was modified, 'D' is an object that was deleted, and 'A' is an object that was added.
</para>
</example>
<example><title>Alternate Diffing Result Outputs</title>
<para>
The <option>v</option> provides various styles of output, as follows:
</para>
<para>
<option>-v 0</option> (no output except the return code):
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 0 moss.g moss2.g</userinput>
</computeroutput>
</literallayout>
</para>
<example><title>Alternate Diffing Result Outputs</title>
<para>
The <option>v</option> provides various styles of output, as follows:
</para>
<para>
<option>-v 0</option> (no output except the return code):
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 0 moss.g moss2.g</userinput>
</computeroutput>
</literallayout>
</para>
<para>
<option>-v 1</option>:
<literallayout>
<computeroutput>
<para>
<option>-v 1</option>:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 1 moss.g moss2.g</userinput>
Added:
tgc_new.s, eto.s
@@ -139,15 +139,15 @@ LIGHT
Changed:
platform.r, ellipse.s, light.r, _GLOBAL, cone.s, cone.r, box.s, tor.r
</computeroutput>
</literallayout>
Objects are reported in lists, categorized by their status.
</para>
</computeroutput>
</literallayout>
Objects are reported in lists, categorized by their status.
</para>
<para>
<option>-v 2</option> (default):
<literallayout>
<computeroutput>
<para>
<option>-v 2</option> (default):
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 2 moss.g moss2.g</userinput>
M platform.r
M ellipse.s
@@ -160,15 +160,15 @@ M tor.r
D LIGHT
A tgc_new.s
A eto.s
</computeroutput>
</literallayout>
If verbosity is not specified, this is the default output.
</para>
</computeroutput>
</literallayout>
If verbosity is not specified, this is the default output.
</para>
<para>
<option>-v 3</option>:
<literallayout>
<computeroutput>
<para>
<option>-v 3</option>:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 3 moss.g moss2.g</userinput>
- "platform.r" tree(p): l platform.s
+ "platform.r" tree(p): - {l platform.s} {l cone.s}
@@ -199,17 +199,17 @@ A eto.s
D LIGHT
A tgc_new.s
A eto.s
</computeroutput>
</literallayout>
Verbosity 3 is a more detailed version of the previous setting, with each parameter in the modified objects reported in detail. '-' lines
show what was removed for a given attribute or parameter, and '+' lines contain the data that replaced them.
</para>
</computeroutput>
</literallayout>
Verbosity 3 is a more detailed version of the previous setting, with each parameter in the modified objects reported in detail. '-' lines
show what was removed for a given attribute or parameter, and '+' lines contain the data that replaced them.
</para>
<para>
<option>-v 4</option>:
<literallayout>
<computeroutput>
<para>
<option>-v 4</option>:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 4 moss.g moss2.g</userinput>
- "platform.r" tree(p): l platform.s
+ "platform.r" tree(p): - {l platform.s} {l cone.s}
@@ -255,70 +255,70 @@ A "eto.s" C(p): 3.448298656000062134552309 0 3.448298656000062134552309
A "eto.s" N(p): 0 0 0.01724149328000028000285049
A "eto.s" V(p): 8.533195938359670051909234 -11.04524849332910996224655 -1.403988582132086548881489
A "eto.s" DB5_MINORTYPE(p): eto
</computeroutput>
</literallayout>
Verbosity 4 is a fully detailed diff that contains all information added or removed.
</para>
</computeroutput>
</literallayout>
Verbosity 4 is a fully detailed diff that contains all information added or removed.
</para>
</example>
</example>
<example><title>Filtering Based on Difference Type</title>
<para>
The options <option>a</option>, <option>d</option>, <option>m</option>, and <option>u</option> control
which categories of diff results (added, deleted, modified, and unchanged) are reported. By default
added, deleted and modified items are reported, but once one of these four options is specified only
those specified are reported:
</para>
<para>
Report only objects added:
<literallayout>
<computeroutput>
<example><title>Filtering Based on Difference Type</title>
<para>
The options <option>a</option>, <option>d</option>, <option>m</option>, and <option>u</option> control
which categories of diff results (added, deleted, modified, and unchanged) are reported. By default
added, deleted and modified items are reported, but once one of these four options is specified only
those specified are reported:
</para>
<para>
Report only objects added:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -a moss.g moss2.g</userinput>
A tgc_new.s
A eto.s
</computeroutput>
</literallayout>
</para>
<para>
Report only objects deleted:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
</para>
<para>
Report only objects deleted:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -d moss.g moss2.g</userinput>
D LIGHT
</computeroutput>
</literallayout>
</para>
<para>
Report both added and deleted objects, but not modified objects:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
</para>
<para>
Report both added and deleted objects, but not modified objects:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -a -d moss.g moss2.g</userinput>
D LIGHT
A tgc_new.s
A eto.s
</computeroutput>
</literallayout>
</para>
<para>
Report unmodified objects:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
</para>
<para>
Report unmodified objects:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -u moss.g moss2.g</userinput>
ellipse.r
box.r
all.g
</computeroutput>
</literallayout>
</para>
</example>
ellipse.r
box.r
all.g
</computeroutput>
</literallayout>
</para>
</example>
<example><title>Filtering Results With Tolerance</title>
<para>
To eliminate differences in modifications that are too small to be of interest, the <option>t</option> is used. What
difference constitutes "too small" is up to the user - in this example, we will use 30 millimeters:
<literallayout>
<computeroutput>
<example><title>Filtering Results With Tolerance</title>
<para>
To eliminate differences in modifications that are too small to be of interest, the <option>t</option> is used. What
difference constitutes "too small" is up to the user - in this example, we will use 30 millimeters:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 3 -t 30.0 moss.g moss2.g</userinput>
- "platform.r" tree(p): l platform.s
+ "platform.r" tree(p): - {l platform.s} {l cone.s}
@@ -335,30 +335,30 @@ all.g
D LIGHT
A tgc_new.s
A eto.s
</computeroutput>
</literallayout>
Notice that ellipse.s, which was on earlier lists, is now filtered out. cone.s has a difference in the x coordinates
of the parameter V that is large enough to satisfy the tolerance filter, so that parameter stays in. Parameters that
are not strictly numerical comparisons, or those that are part of added or deleted objects, remain in the report.
</para>
</example>
</computeroutput>
</literallayout>
Notice that ellipse.s, which was on earlier lists, is now filtered out. cone.s has a difference in the x coordinates
of the parameter V that is large enough to satisfy the tolerance filter, so that parameter stays in. Parameters that
are not strictly numerical comparisons, or those that are part of added or deleted objects, remain in the report.
</para>
</example>
<example><title>Filtering Results With Search Filters</title>
<para>
The <emphasis>search</emphasis> filtering technique can be used to select specific subsets of the database to see
in reports, using the <option>F</option> option. For example, limiting the diff report to only objects of type elliptical torus:
<literallayout>
<computeroutput>
<example><title>Filtering Results With Search Filters</title>
<para>
The <emphasis>search</emphasis> filtering technique can be used to select specific subsets of the database to see
in reports, using the <option>F</option> option. For example, limiting the diff report to only objects of type elliptical torus:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -F "-type eto" moss.g moss2.g</userinput>
A eto.s
</computeroutput>
</literallayout>
</para>
<para>
Note that this option will work at all levels of verbosity:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
</para>
<para>
Note that this option will work at all levels of verbosity:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 4 -F "-type eto" moss.g moss2.g</userinput>
A "eto.s" r_d(p): 1.724149328000026404339451
A "eto.s" r(p): 13.79319462400021123471561
@@ -366,17 +366,17 @@ A "eto.s" C(p): 3.448298656000062134552309 0 3.448298656000062134552309
A "eto.s" N(p): 0 0 0.01724149328000028000285049
A "eto.s" V(p): 8.533195938359670051909234 -11.04524849332910996224655 -1.403988582132086548881489
A "eto.s" DB5_MINORTYPE(p): eto
</computeroutput>
</literallayout>
</para>
</example>
</computeroutput>
</literallayout>
</para>
</example>
<example><title>Combining Multiple Filters</title>
<para>
The various diff filters can be used together. For example, repeating the search
filter with ell types added to the accepted list produces the following:
<literallayout>
<computeroutput>
<example><title>Combining Multiple Filters</title>
<para>
The various diff filters can be used together. For example, repeating the search
filter with ell types added to the accepted list produces the following:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 4 -F "-type eto -or -type ell" moss.g moss2.g</userinput>
- "ellipse.s" C(p): 0 8.980256080627000869753829 8.980256080627000869753829
+ "ellipse.s" C(p): 0 1.561016355403846755933728 1.561016355403846755933728
@@ -393,13 +393,13 @@ A "eto.s" C(p): 3.448298656000062134552309 0 3.448298656000062134552309
A "eto.s" N(p): 0 0 0.01724149328000028000285049
A "eto.s" V(p): 8.533195938359670051909234 -11.04524849332910996224655 -1.403988582132086548881489
A "eto.s" DB5_MINORTYPE(p): eto
</computeroutput>
</literallayout>
</para>
<para>
If we now add the tolerance filter, we see ellipse.s is filtered out:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
</para>
<para>
If we now add the tolerance filter, we see ellipse.s is filtered out:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 4 -t 30.0 -F "-type eto -or -type ell" moss.g moss2.g</userinput>
D "LIGHT" C(p): 0 0 2.539999961852999810218989
D "LIGHT" B(p): 0 2.539999961852999810218989 0
@@ -412,23 +412,23 @@ A "eto.s" C(p): 3.448298656000062134552309 0 3.448298656000062134552309
A "eto.s" N(p): 0 0 0.01724149328000028000285049
A "eto.s" V(p): 8.533195938359670051909234 -11.04524849332910996224655 -1.403988582132086548881489
A "eto.s" DB5_MINORTYPE(p): eto
</computeroutput>
</literallayout>
ellipse.s satisfies the search filter, but is filtered by virtue of having no differences larger than 30 in its parameters.
</para>
</computeroutput>
</literallayout>
ellipse.s satisfies the search filter, but is filtered by virtue of having no differences larger than 30 in its parameters.
</para>
</example>
</example>
<example><title>Three Way Differences</title>
<para>
A "3-way" diff uses an ancestor file as a basis for evaluating the differences between two
other files. This ancestor provides a "context" in which it is possible to tell whether a
difference between two files is a) the product of a change in one but not the other in
comparison to the original or b) whether both have (incompatibly) changed in comparison
to the original. For example, if we compare moss2.g from the previous examples to a new
file moss3.g:
<literallayout>
<computeroutput>
<example><title>Three Way Differences</title>
<para>
A "3-way" diff uses an ancestor file as a basis for evaluating the differences between two
other files. This ancestor provides a "context" in which it is possible to tell whether a
difference between two files is a) the product of a change in one but not the other in
comparison to the original or b) whether both have (incompatibly) changed in comparison
to the original. For example, if we compare moss2.g from the previous examples to a new
file moss3.g:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff moss2.g moss3.g</userinput>
M platform.r
M ellipse.s
@@ -444,12 +444,12 @@ M all.g
M tor
A ellipse2.r
A LIGHT
</computeroutput>
</literallayout>
All we can tell is that these objects differ from each other. If, however, we add moss.g
to the comparison as an ancestor file:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
All we can tell is that these objects differ from each other. If, however, we add moss.g
to the comparison as an ancestor file:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff moss2.g moss.g moss3.g</userinput>
M platform.r
M ellipse.s
@@ -466,17 +466,17 @@ M tor
A(B) tgc_new.s
C eto.s
A(R) ellipse2.r
</computeroutput>
</literallayout>
We can now see that ellipse.r was deleted only from the right file (moss3.g) and was unchanged in moss2.g.
Similarly, we can tell that LIGHT wsa deleted from moss2.g, ellipse2.r was added in moss3.g, tgc_new.s was
added identically in both moss2.g and moss3.g, and eto.s is different in moss2.g and moss3.g in some fashion
that the ancestor file moss.g cannot help gdiff resolve (a conflict, denoted by 'C'.)
</para>
<para>
To delve deeper into the nature of the changes, we increase the verbosity with the <option>v</option> option:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
We can now see that ellipse.r was deleted only from the right file (moss3.g) and was unchanged in moss2.g.
Similarly, we can tell that LIGHT wsa deleted from moss2.g, ellipse2.r was added in moss3.g, tgc_new.s was
added identically in both moss2.g and moss3.g, and eto.s is different in moss2.g and moss3.g in some fashion
that the ancestor file moss.g cannot help gdiff resolve (a conflict, denoted by 'C'.)
</para>
<para>
To delve deeper into the nature of the changes, we increase the verbosity with the <option>v</option> option:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v 3 moss2.g moss.g moss3.g</userinput>
M(L) "platform.r" tree(p): - {l platform.s} {l cone.s}
M(L) "ellipse.s" C(p): 0 1.561016355403846755933728 1.561016355403846755933728
@@ -502,64 +502,64 @@ M(R) "tor" r_a(p): 30.18139425891995841766402
A(B) tgc_new.s
C(LA!=RA) eto.s
A(R) ellipse2.r
</computeroutput>
</literallayout>
At this level of verbosity, we can now see that most of the modifications are from the left (moss2.g) file. M(L) denotes
a change that is present only in the left file - the right (moss3.g) agrees with the ancestor. Similarly, we can now see
that the deletion of ellipse.r, the addition of ellipse2.r and the change to all.g come from moss3.g. The conflict
on eto.s is that two add operations (one in moss2.g, one in moss3.g) produced different eto.s primitives - there is no
ancestor for eto.s in moss.g, so there is no way to identify one of the eto.s primitives as "correct" - they have equal
standing, and manual intervention is needed to determine which eto.s is the "correct" version.
</para>
</example>
</computeroutput>
</literallayout>
At this level of verbosity, we can now see that most of the modifications are from the left (moss2.g) file. M(L) denotes
a change that is present only in the left file - the right (moss3.g) agrees with the ancestor. Similarly, we can now see
that the deletion of ellipse.r, the addition of ellipse2.r and the change to all.g come from moss3.g. The conflict
on eto.s is that two add operations (one in moss2.g, one in moss3.g) produced different eto.s primitives - there is no
ancestor for eto.s in moss.g, so there is no way to identify one of the eto.s primitives as "correct" - they have equal
standing, and manual intervention is needed to determine which eto.s is the "correct" version.
</para>
</example>
<example><title>Complex Three Way Differences</title>
<para>
Conflicts can arise from situations other than incompatible additions - an incompatible modification
is also enough to trigger a conflict. Consider three ellipsoids, one of which is an ancestor, one of
which has had its A and B vectors modified, and the other of which has had its B and C vectors modified.
A three-way diff of these files reports a conflict:
<literallayout>
<computeroutput>
<example><title>Complex Three Way Differences</title>
<para>
Conflicts can arise from situations other than incompatible additions - an incompatible modification
is also enough to trigger a conflict. Consider three ellipsoids, one of which is an ancestor, one of
which has had its A and B vectors modified, and the other of which has had its B and C vectors modified.
A three-way diff of these files reports a conflict:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff ell_1.g ell_0.g ell_2.g</userinput>
C ell.s
</computeroutput>
</literallayout>
</computeroutput>
</literallayout>
However, closer inspection reveals that this conflict is different than the one reported above for the eto.s object:
<literallayout>
<computeroutput>
However, closer inspection reveals that this conflict is different than the one reported above for the eto.s object:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v3 ell_1.g ell_0.g ell_2.g</userinput>
C(LM!=RM) ell.s
</computeroutput>
</literallayout>
This notation indicates that a modification in the left side (ell_1.g) does not match a modification made in ell_2.g.
Unlike the eto.s, which reported an add conflict, this is a modification conflict triggered by incompatible, different
parameters. Indeed a full verbosity inspection:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
This notation indicates that a modification in the left side (ell_1.g) does not match a modification made in ell_2.g.
Unlike the eto.s, which reported an add conflict, this is a modification conflict triggered by incompatible, different
parameters. Indeed a full verbosity inspection:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -v4 ell_1.g ell_0.g ell_2.g</userinput>
M(R) "ell.s" C(p): 0 0 300
C(A) "ell.s" B(p): 0 500 0
C(L) "ell.s" B(p): 0 510 0
C(R) "ell.s" B(p): 0 300 0
M(L) "ell.s" A(p): 1100 0 0
</computeroutput>
</literallayout>
reveals that the changes to the A and C parameters are <emphasis>not</emphasis> in conflict - it is the B parameter that
is causing the problem.
</para>
</example>
</computeroutput>
</literallayout>
reveals that the changes to the A and C parameters are <emphasis>not</emphasis> in conflict - it is the B parameter that
is causing the problem.
</para>
</example>
<example><title>Merging Files</title>
<para>
The last and most powerful feature of <command>gdiff</command> is to <emphasis>merge</emphasis> two or three different
geometry files into a single output file. This is most useful when an ancestor is available and a three way merge can
be performed - in the two way case, the "ancestor" is an empty file and the results will tend to include many more
conflicts. For example, the three way merge of the moss examples earlier:
<literallayout>
<computeroutput>
<example><title>Merging Files</title>
<para>
The last and most powerful feature of <command>gdiff</command> is to <emphasis>merge</emphasis> two or three different
geometry files into a single output file. This is most useful when an ancestor is available and a three way merge can
be performed - in the two way case, the "ancestor" is an empty file and the results will tend to include many more
conflicts. For example, the three way merge of the moss examples earlier:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -M moss_merged.g moss2.g moss0.g moss3.g</userinput>
M platform.r
M ellipse.s
@@ -583,12 +583,12 @@ CONFLICT(eto.s).right cone.s platform.s
all.g/ ellipse.s tgc_new.s
box.r/R ellipse2.r/R tor
box.s light.r/R tor.r/R
</computeroutput>
</literallayout>
The resulting file has only two conflict objects present - the same eto.s issue that was discussed earlier. Trying to
do the same merge <emphasis>without</emphasis> the ancestor file:
<literallayout>
<computeroutput>
</computeroutput>
</literallayout>
The resulting file has only two conflict objects present - the same eto.s issue that was discussed earlier. Trying to
do the same merge <emphasis>without</emphasis> the ancestor file:
<literallayout>
<computeroutput>
<prompt>~:</prompt><userinput> gdiff -M moss_2way_merge.g moss2.g moss3.g</userinput>
M platform.r
M ellipse.s
@@ -619,36 +619,36 @@ CONFLICT(ellipse.s).right ellipse.r/R
CONFLICT(eto.s).left ellipse2.r/R
CONFLICT(eto.s).right platform.s
CONFLICT(light.r).left/R tgc_new.s
</computeroutput>
</literallayout>
The result is far less clean, although the merge was still performed - in this latter case, the end user will have to
resolve many more conflicting object states manually.
</para>
</example>
</computeroutput>
</literallayout>
The result is far less clean, although the merge was still performed - in this latter case, the end user will have to
resolve many more conflicting object states manually.
</para>
</example>
</refsect1>
</refsect1>
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
<para><citerefentry><refentrytitle>search</refentrytitle><manvolnum>n</manvolnum></citerefentry></para>
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
<para><citerefentry><refentrytitle>search</refentrytitle><manvolnum>n</manvolnum></citerefentry></para>
</refsect1>
</refsect1>
<refsect1 xml:id='author'><title>AUTHOR</title>
<para>BRL-CAD Team</para>
<refsect1 xml:id='author'><title>AUTHOR</title>
<para>BRL-CAD Team</para>
</refsect1>
</refsect1>
<refsect1 xml:id='copyright'><title>COPYRIGHT</title>
<para>This software is Copyright (c) 2014-2016 by the United States
Government as represented by U.S. Army Research Laboratory.</para>
<refsect1 xml:id='copyright'><title>COPYRIGHT</title>
<para>This software is Copyright (c) 2014-2016 by the United States
Government as represented by U.S. Army Research Laboratory.</para>
</refsect1>
</refsect1>
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
<para>Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;.</para>
</refsect1>
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
<para>Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;.</para>
</refsect1>
</refentry>
-332
View File
@@ -1,332 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- lifted from troff+man by doclifter -->
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='glint1'>
<refmeta>
<refentrytitle>G_LINT
</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
</refmeta>
<refnamediv>
<refname>glint</refname>
<refpurpose>a BRL-CAD geometry checker</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>glint</command> <arg choice='opt'><replaceable>options</replaceable></arg>
<arg choice='plain'><replaceable>model.g</replaceable></arg>
<arg choice='plain' rep='repeat'><replaceable>objects</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para><command>glint</command>
uses
<citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry>
to fire an array of parallel rays
at the specified
<emphasis remap='I'>objects</emphasis>
in the database
<emphasis remap='I'>model.g</emphasis>
and reports
overlaps,
vacuums,
and potential problems with air regions.
By default, the output consists of single-line reports,
each of which contains a tag identifying the report type
and then other data as appropriate for that type report.
Unless the
<option>-p</option>
option is specified,
the exact formats are:</para>
<variablelist remap='TP'>
<varlistentry>
<term><emphasis remap='B'>overlap</emphasis><emphasis remap='I'> r1 r2 length x_in y_in z_in x_out y_out z_out</emphasis></term>
<listitem>
<para>Consecutive partitions overlap by more than
<emphasis remap='I'>tol</emphasis>
(see the
<option>-t</option>
option).
The data reported are
the names of the two regions involved,
the length of the overlap along the ray,
and the model coordinates of the ray's entry into and exit from
the overlap.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap='B'>air_contiguous</emphasis><emphasis remap='I'> r1 a1 r2 a2 x y z</emphasis></term>
<listitem>
<para>Consecutive partitions have unlike (nonzero) air codes
and the space between them is less than
<emphasis remap='I'>tol</emphasis>
(see the
<option>-t</option>
option).
The data reported are
the names and air codes of the two regions involved
and the model coordinates of the point of contiguity.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap='B'>air_unconfined</emphasis><emphasis remap='I'> r1 (s1) r2 (s2) length x1 y1 z1 x2 y2 z2</emphasis></term>
<listitem>
<para>A partition with nonzero air code
follows or precedes another partition
and the space between them is more than
<emphasis remap='I'>tol</emphasis>
(see the
<option>-t</option>
option).
The data reported are
the names of the two regions (and solids) involved,
the length of the gap along the ray,
and the model coordinates of the ray's exiting the first partition
and entering the second.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap='B'>air_first</emphasis><emphasis remap='I'> r a x y z</emphasis></term>
<listitem>
<para>The first partition has a nonzero air code.
The data reported are
the name and air code of the region involved
and the model coordinates of the ray's entering the partition.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap='B'>air_last</emphasis><emphasis remap='I'> r a x y z</emphasis></term>
<listitem>
<para>The last partition has a nonzero air code.
The data reported are
the name and air code of the region involved
and the model coordinates of the ray's exiting the partition.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap='B'>vacuum</emphasis><emphasis remap='I'> r1 (s1) r2 (s2) length x1 y1 z1 x2 y2 z2</emphasis></term>
<listitem>
<para>The space between consecutive partitions is more than
<emphasis remap='I'>tol</emphasis>
(see the
<option>-t</option>
option).
The data reported are
the names of the two regions (and solids) involved,
the length of the gap along the ray,
and the model coordinates of the ray's exiting the first partition
and entering the second.</para>
</listitem>
</varlistentry>
</variablelist>
<refsect2 xml:id='commandline_options'><title>Command-line options</title>
<variablelist remap='TP'>
<varlistentry>
<term><option>-a</option><replaceable> az</replaceable></term>
<listitem>
<para>Sets the azimuth from which to fire rays to
<emphasis remap='I'>az</emphasis>
degrees.
The default is 0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-c</option></term>
<listitem>
<para>Specifies that one ray should be fired from the center of each grid cell.
By default,
<command>glint</command>
fires a ray from one random point in each cell.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-e</option><replaceable> el</replaceable></term>
<listitem>
<para>Sets the elevation from which to fire rays to
<emphasis remap='I'>el</emphasis>
degrees.
The default is 0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-g</option><replaceable> gridsize</replaceable></term>
<listitem>
<para>Sets the width and height of each grid cell to
<emphasis remap='I'>gridsize</emphasis>
millimeters.
The default is 100 mm.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-o</option></term>
<listitem>
<para>Causes
<command>glint</command>
to include in each report
the model coordinates of the ray origination point.
These appear between the tag and the rest of the data.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-p</option></term>
<listitem>
<para>Causes
<command>glint</command>
to produce its reports as
<emphasis remap='I'>plot3(5)</emphasis>
drawing commands instead of ASCII text.
This is useful in conjunction with the "overlay" command of
<emphasis remap='I'>mged</emphasis>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-r</option><replaceable> bits</replaceable></term>
<listitem>
<para>Specifies which types of reports to produce.
If, after an optional minus sign,
<emphasis remap='I'>bits</emphasis>
begins with either "0x" or "0X",
the remainder is interpreted in hexadecimal.
Otherwise, if
<emphasis remap='I'>bits</emphasis>
begins with "0",
the remainder is interpreted in octal.
Otherwise,
<emphasis remap='I'>bits</emphasis>
is interpreted in decimal.
The meaning of the individual bits is as follows:
<!-- .in +5 -->
1 overlaps
<!-- .in &bsol;-5
.in +5 -->
2 contiguous unlike airs
<!-- .in &bsol;-5
.in +5 -->
4 unconfined airs
<!-- .in &bsol;-5
.in +5 -->
8 air first on rays
<!-- .in &bsol;-5
.in +5 -->
16 air last on rays
<!-- .in &bsol;-5
.in +5 -->
32 vacuums.
<!-- .in &bsol;-5 -->
If there was no initial minus sign, then
<emphasis remap='I'>bits</emphasis>
specifies which report types to produce.
The minus sign implies complementation:
when it is present,
<emphasis remap='I'>bits</emphasis>
specifies which report types
<emphasis remap='I'>not</emphasis>
to produce.
The default is 1.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-s</option></term>
<listitem>
<para>Causes
<command>glint</command>
to collect all the overlap reports and sort them before printing them.
The reports for a given pair of regions
are printed contiguously,
and the clusters of reports for the various pairs of regions
appear in order of decreasing cumulative overlap length.
By default,
<command>glint</command>
reports overlaps immediately and in the order of their discovery.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-t</option><replaceable> tol</replaceable></term>
<listitem>
<para>Sets the tolerance for overlaps, contiguous and unconfined airs,
and vacuums
to
<emphasis remap='I'>tol</emphasis>
millimeters.
The default is 0.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-u</option></term>
<listitem>
<para>Sets the
<emphasis remap='I'>useair</emphasis>
member of the
<emphasis remap='I'>rt_i</emphasis>
structure to 1,
which causes
<emphasis remap='I'>librt</emphasis>
to report partitions containing air.
It is also set implicitly if any air-related reports have been specified.
By default,
<emphasis remap='I'>librt</emphasis>
ignores air regions.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>-x</option><replaceable> bits</replaceable></term>
<listitem>
<para>Sets the
<command>glint</command>
debug flags to
<emphasis remap='I'>bits</emphasis>.
See the
<option>-r</option>
option
for more details.
Note that some of the report types have no corresponding diagnostics.</para>
</listitem>
</varlistentry>
</variablelist>
</refsect2>
</refsect1>
<refsect1 xml:id='example'><title>EXAMPLE</title>
<para>The command</para>
<!-- .in +5 -->
<para>glint -a 35 -e 25 -c -g 1 -r 31 -t 0.01 <emphasis remap='I'>kitchen.g appliances</emphasis></para>
<!-- .in &bsol;-5 -->
<para>fires a ray every millimeter and produces overlap reports
and every type of air-related report,
but no vacuum reports.</para>
</refsect1>
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
<para><citerefentry><refentrytitle>mged</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>strtoul</refentrytitle><manvolnum>3</manvolnum></citerefentry>, <citerefentry><refentrytitle>plot3</refentrytitle><manvolnum>5</manvolnum></citerefentry></para>
</refsect1>
<refsect1 xml:id='author'><title>AUTHOR</title>
<para>BRL-CAD Team</para>
</refsect1>
<refsect1 xml:id='copyright'><title>COPYRIGHT</title>
<para>This software is Copyright (c) 1995-2016 by the United States
Government as represented by U.S. Army Research Laboratory.</para>
</refsect1>
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
<para>Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;.</para>
</refsect1>
</refentry>
+2 -1
View File
@@ -290,6 +290,7 @@
The
<citerefentry><refentrytitle>pix-fb</refentrytitle><manvolnum>1</manvolnum></citerefentry>
utility can be used later to display ".pix" files.
Note that using -o disables parallel processing.
</para>
</listitem>
</varlistentry>
@@ -393,7 +394,7 @@
<term><option>-C #/#/#</option></term>
<listitem>
<para>sets the background color to the RGB value #/#/#, where each #
is in the range of 0 to 255 or 0.0 to 1.0.
is in the range of 0 to 255.
All non-background colors will be dithered away from this value.</para>
</listitem>
</varlistentry>
+14 -15
View File
@@ -61,7 +61,7 @@
<term><option>-. #</option></term>
<listitem>
<para>
selects the factor used in NUgrid algorithm. Default is 1.5 .
selects the factor used in NUgrid algorithm. Default is 1.5 .
</para>
</listitem>
</varlistentry>
@@ -70,7 +70,7 @@
<term><option>-, #</option></term>
<listitem>
<para>
selects which space partitioning algorithm to use
selects which space partitioning algorithm to use
</para>
</listitem>
</varlistentry>
@@ -106,7 +106,7 @@
<term><option>-d #</option></term>
<listitem>
<para>sets flag for reporting of pixel distances: 1 for on, 0 (default) for off.
(Each pixel is represented by 3 bytes of color information followed by 8 bytes
(Each pixel is represented by 3 bytes of color information followed by 8 bytes
for a double, in IEEE format, which gives the distance to the ray's first hit.
If the ray doesn't hit, a zero distance is reported by default
which causes <citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>
@@ -379,7 +379,7 @@
<term><option>-C #/#/#</option></term>
<listitem>
<para>sets the background color to the RGB value #/#/#, where each #
is in the range of 0 to 255 or 0.0 to 1.0.
is in the range of 0 to 255.
All non-background colors will be dithered away from this value.</para>
</listitem>
</varlistentry>
@@ -388,7 +388,7 @@
<term><option>-D #</option></term>
<listitem>
<para>This is the "desired frame" flag, specifying the frame number to start with.
Used with animation scripts; specify the desired ending (kill-after) frame with
Used with animation scripts; specify the desired ending (kill-after) frame with
<option>-K #</option> .</para>
</listitem>
</varlistentry>
@@ -397,7 +397,7 @@
<term><option>-E #</option></term>
<listitem>
<para>sets the distance from the eye point to the center of the model RPP; default is
the square root of 2.
the square root of 2.
Only useful with auto-sizing, and conflicts with
<option>-M</option> .</para>
</listitem>
@@ -425,10 +425,10 @@
<varlistentry>
<term><option>-H #</option></term>
<listitem>
<para>This is the "hypersample" flag, specifying number of extra rays to fire for each pixel to
obtain more accurate results without needing to store the extra pixels. Automatically invokes
<para>This is the "hypersample" flag, specifying number of extra rays to fire for each pixel to
obtain more accurate results without needing to store the extra pixels. Automatically invokes
<option>-J 1</option>. The final colors of all rays are averaged together. Better results can be
obtained by simply increasing the resolution, and decimating the results with a filter such as
obtained by simply increasing the resolution, and decimating the results with a filter such as
<citerefentry><refentrytitle>pixhalve</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para>
</listitem>
</varlistentry>
@@ -621,7 +621,7 @@
<term><option>-+ #</option></term>
<listitem>
<para>specifies (setting argument to "t") that output is NOT binary (default is that it is).
<option>-+</option> is otherwise not implemented.
<option>-+</option> is otherwise not implemented.
</para>
</listitem>
</varlistentry>
@@ -672,8 +672,8 @@
<listitem>
<para>
set the color of the foreground (edges) to the
given r,g,b triple, where each of r,g,b, is in the range 0 to 255 or 0.0 to 1.0.
The default is white (255/255/255).
given r,g,b triple. The default is white
(255,255,255).
</para>
</listitem>
</varlistentry>
@@ -688,8 +688,7 @@
<listitem>
<para>
set the color of the background to the r,g,b
triple, where each of r,g,b is in the range 0 to 255 or 0.0 to 1.0.
The default is near-black (0,0,1).
triple. The default is near-black (0,0,1).
</para>
</listitem>
</varlistentry>
@@ -944,7 +943,7 @@
<para>
The command
<userinput>rtedge -s1024 -o new.pix -c"set fg=0/255/0 bg=255/0/0" havoc.g havoc</userinput>
<userinput>rtedge -s1024 -o new.pix -c"set fg=0,255,0 bg=255,0,0" havoc.g havoc</userinput>
changes the edge color to be green and the background color to be red.
</para>
+165
View File
@@ -0,0 +1,165 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- lifted from troff+man by doclifter -->
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='rttherm1'>
<refmeta>
<refentrytitle>RTTHERM
</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
</refmeta>
<refnamediv>
<refname>rttherm</refname>
<refpurpose>raytrace a hyper-spectral thermal image of an mged model</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>rttherm</command>
<arg choice='opt' rep='repeat'><replaceable>options</replaceable></arg>
<arg choice='plain'>-o <replaceable>output.ssamp</replaceable></arg>
<arg choice='plain'><replaceable>model.g</replaceable></arg>
<arg choice='plain' rep='repeat'><replaceable>objects</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para><citerefentry><refentrytitle>rttherm</refentrytitle><manvolnum>1</manvolnum></citerefentry>
is a member of the RTUIF family of programs,
and implements the same options as
<citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
with the exception that the
<option>-F</option>
(framebuffer)
option is currently not implemented and reserved for future use.
<citerefentry><refentrytitle>rttherm</refentrytitle><manvolnum>1</manvolnum></citerefentry>
creates a hyper-spectral ray-trace into
the output file
specified with the
<option>-o</option>
option.
It also writes a second file (using bn_table_write) with
the suffix ".spect" which describes
the spectral sampling pattern used when creating the output file.</para>
</refsect1>
<refsect1 xml:id='specifying_temperatures'><title>SPECIFYING TEMPERATURES</title>
<para>Temperatures are always specified in degrees Kelvin ("Kelvins").</para>
<para>The background (ambient) temperature may be set from the command
line with the
<option>-c set bg_temp=degK</option>
command, or in the animation script with the command</para>
<literallayout remap='.nf'>
set bg_temp=293.0
</literallayout> <!-- .fi -->
<para>which is the default. (20 degrees C is 293 degrees Kelvin).</para>
<para>The spectral sampling density may be set from the command line
with the
<option>-c set spectrum=nsamp/lo_nm/hi_nm</option>
option, or in the animation script with the command</para>
<literallayout remap='.nf'>
set spectrum=nsamp/lo_nm/hi_nm
</literallayout> <!-- .fi -->
<para>The default setting is 100/380/12000,
which takes 100 samples equally spaced from 380nm (low end of the optical
band) to 12microns (upper end of the "Far-IR" band).</para>
<para><citerefentry><refentrytitle>rttherm</refentrytitle><manvolnum>1</manvolnum></citerefentry>
is built using
<citerefentry><refentrytitle>libmultispectral</refentrytitle><manvolnum>3</manvolnum></citerefentry>
rather than
<citerefentry><refentrytitle>liboptical</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
which provides a similar set of shaders.
Most notable is the "temp" shader,
which applies a two-dimensional temperature map to a region
in exactly the same way as the "texture" and "bwtexture" shaders apply
colors to the surface.</para>
<para>The temperature of a region may be modified by the
rt animation script which is read by
<citerefentry><refentrytitle>rttherm</refentrytitle><manvolnum>1</manvolnum></citerefentry>
when the
<option>-M</option>
flag is specified.
The syntax of the anim command is:</para>
<literallayout remap='.nf'>
anim path temp ## ;
</literallayout> <!-- .fi -->
<para>where
"anim" is a keyword,
"path" is the path specification for the affected combination(s),
"temp" is a keyword ("temperature" is also accepted), and
## is the new temperature for the combination(s) in Kelvins.</para>
<para>The Tcl interface to the database supports adjusting region temperatures.
The syntax of the anim command is:</para>
<literallayout remap='.nf'>
db put|adjust combname temp ##
</literallayout> <!-- .fi -->
<para>where
"db" is the name of the Tcl database object for the desired
database (typically "db" or ".inmem"),
"put" and "adjust" are keywords,
"combname" is the name of the combination,
"temp" is a keyword,
and
## is the new temperature for the combination in Kelvins.
Note that the BRL-CAD v4 database has no place for
storing region temperatures on disk,
so this command won't have any effect on v4 databases.</para>
</refsect1>
<refsect1 xml:id='post_processing'><title>POST PROCESSING</title>
<para><citerefentry><refentrytitle>ssampview</refentrytitle><manvolnum>1</manvolnum></citerefentry>
is a GUI tool for viewing
the multi-spectral output files created by
<citerefentry><refentrytitle>rttherm</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
In the works is a post-processing tool which will
extract a spectral window into a conventional
8-bit/pixel
<citerefentry><refentrytitle>bw</refentrytitle><manvolnum>5</manvolnum></citerefentry>
file, probably in two steps:
(1) extracting a representative power value per pixel
into a
<citerefentry><refentrytitle>dbw</refentrytitle><manvolnum>5</manvolnum></citerefentry>
(double-precision .bw file),
and then (2) using
<citerefentry><refentrytitle>cv</refentrytitle><manvolnum>1</manvolnum></citerefentry>
to perform a direct conversion, or using
<citerefentry><refentrytitle>dpix-pix</refentrytitle><manvolnum>1</manvolnum></citerefentry>
or similar tool to perform scaling and/or auto-ranging.</para>
</refsect1>
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
<para><citerefentry><refentrytitle>brlcad</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>mged</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>rt</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
<citerefentry><refentrytitle>librt</refentrytitle><manvolnum>3</manvolnum></citerefentry></para>
</refsect1>
<refsect1 xml:id='author'><title>AUTHOR</title>
<para>BRL-CAD Team</para>
</refsect1>
<refsect1 xml:id='copyright'><title>COPYRIGHT</title>
<para>This software is Copyright (c) 1999-2016 United States Government as
represented by the U.S. Army Research Laboratory.</para>
</refsect1>
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
<para>Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;.</para>
</refsect1>
</refentry>
+119
View File
@@ -0,0 +1,119 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- lifted from troff+man by doclifter -->
<refentry xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en' xml:id='ssampbw1'>
<refmeta>
<refentrytitle>SSAMP-BW
</refentrytitle>
<manvolnum>1</manvolnum>
<refmiscinfo class='source'>BRL-CAD</refmiscinfo>
<refmiscinfo class='manual'>BRL-CAD</refmiscinfo>
</refmeta>
<refnamediv>
<refname>ssamp-bw</refname>
<refpurpose>convert spectral sample data into a monochrome image</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id='synopsis'>
<cmdsynopsis>
<command>ssamp-bw</command>
<arg choice='opt'>-v </arg>
<arg choice='opt'>-s <replaceable>squarefilesize</replaceable></arg>
<arg choice='opt'>-w <replaceable>file_width</replaceable></arg>
<arg choice='opt'>-n <replaceable>file_height</replaceable></arg>
<arg choice='opt'>-l <replaceable>lower_wavelen</replaceable></arg>
<arg choice='opt'>-u <replaceable>upper_wavelen</replaceable></arg>
<arg choice='opt'>-m <replaceable>minval</replaceable></arg>
<arg choice='opt'>-M <replaceable>maxval</replaceable></arg>
<arg choice='plain'><replaceable>file.ssamp</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsect1 xml:id='description'><title>DESCRIPTION</title>
<para><citerefentry><refentrytitle>ssamp-bw</refentrytitle><manvolnum>1</manvolnum></citerefentry>
reads a
<citerefentry><refentrytitle>ssamp</refentrytitle><manvolnum>5</manvolnum></citerefentry>
format file of spectral samples for the named file,
and produces a monochrome image in
<citerefentry><refentrytitle>bw</refentrytitle><manvolnum>5</manvolnum></citerefentry>
format.
The spectral definition is read from a second file named
file.ssamp.spect</para>
<para>Using the
<option>-l</option>
and
<option>-u</option>
parameters, a filter is constructed to select the energy collected
over a portion of the spectrum.
This filter is convolved with each pixel of the two-dimensional input
file and the power levels are summed into a two-dimensional array of
scalor results.</para>
<para>The scalor array is scanned to compute the maximum and minimum
power levels encountered in this image.
These are used to drive an "automatic gain control" algorithm
which maximizes the use of the limited 0..255 intensity output range.
Using the
<option>-m</option>
and
<option>-M</option>
options, either the minimum or maximum values (or both) may
be over-ridden from the command line.
This is particularly useful when processing a series of
<emphasis remap='I'>ssamp</emphasis>
files
(e.g. for an animation sequence)
and you don't want the gain control settings changing
from frame to frame.</para>
<para>The
<option>-v</option>
option sets "verbose" mode,
causing the spectral sampling definition and the filter kernel to be
printed on standard error.</para>
</refsect1>
<refsect1 xml:id='example'><title>EXAMPLE</title>
<para> ssamp-bw -s512 -M0.3 -l3000 -u5000 moss.ssamp | bw-fb -s512</para>
<para>This converts the energy received in the 3-5 micron ("mid-IR") band
into a monochrome image,
clamping any power greater than 0.3 to a value of 255 in the output,
and displays this monochrome image on the current framebuffer.</para>
</refsect1>
<refsect1 xml:id='see_also'><title>SEE ALSO</title>
<para><citerefentry><refentrytitle>rttherm</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>bw-fb</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>dpix-pix</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>pix</refentrytitle><manvolnum>5</manvolnum></citerefentry></para>
</refsect1>
<refsect1 xml:id='diagnostics'><title>DIAGNOSTICS</title>
<para>If the
<emphasis remap='I'>pix</emphasis>
file is shorter than expected,
or the size parameters are given incorrectly,
an error is printed.</para>
<para>If the spectral range specified for the filter is outside the
spectral range sampled in the input file, the program aborts with an error.</para>
</refsect1>
<refsect1 xml:id='author'><title>AUTHOR</title>
<para>BRL-CAD Team</para>
</refsect1>
<refsect1 xml:id='copyright'><title>COPYRIGHT</title>
<para>This software is Copyright (c) 2000-2016 by the United States
Government as represented by U.S. Army Research Laboratory.</para>
</refsect1>
<refsect1 xml:id='bug_reports'><title>BUG REPORTS</title>
<para>Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;.</para>
</refsect1>
</refentry>
+11 -11
View File
@@ -81,7 +81,7 @@
a schema file to store information, and newer schemas are also available in an XML form in addition to EXPRESS.)
</para>
<para>
A number of <link xlink:href="https://en.wikipedia.org/wiki/List_of_STEP_%28ISO_10303%29_parts#AIC_-_Application_interpreted_constructs">other</link> low level parts and higher level Application Interpreted Constructs (AICs) form the foundation
A number of <link xlink:href="http://www.steptools.com/support/stdev_docs/express/step_irs/">other</link> low level parts and higher level Application Interpreted Constructs (AICs) form the foundation
on which the more complete "high level" parts are defined. This separation is performed mainly to allow
maximal sharing and compatibility between different high level parts that need the same lower level foundations.
</para>
@@ -104,23 +104,23 @@
<tbody>
<row>
<entry>AP203</entry>
<entry><link xlink:href="https://www.iso.org/standard/20597.html">Configuration controlled 3D designs of mechanical parts and assemblies</link></entry>
<entry>Most recent version is 10303-203:1994 with additions and corrections as follows: the original document was subsequently revised by one amendment <link xlink:href="https://www.iso.org/standard/34177.html">10303-203:1994/Amd 1:2000 </link> and three corrections: <link xlink:href="https://www.iso.org/standard/26904.html">10303-203:1994/Cor 1:1996 </link>, <link xlink:href="https://www.iso.org/standard/30943.html">10303-203:1994/Cor 2:1998 </link>, and <link xlink:href="https://www.iso.org/standard/40190.html">10303-203:1994/Cor 3:2004 </link>. <link xlink:href="https://www.iso.org/standard/39522.html">10303-203:2005</link> is considered a revision to this standard.</entry>
<entry><link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=20597">Configuration controlled 3D designs of mechanical parts and assemblies</link></entry>
<entry>Most recent version is 10303-203:1994 with additions and corrections as follows. The original document was subsequently revised by one amendment<link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=34177">10303-203:1994/Amd 1:2000 </link> and three corrections: <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=26904">10303-203:1994/Cor 1:1996 </link>, <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=30943">10303-203:1994/Cor 2:1998 </link>, and <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=40190">10303-203:1994/Cor 3:2004 </link> </entry>
</row>
<row>
<entry>AP203e2</entry>
<entry> <link xlink:href="https://www.iso.org/standard/44305.html">Configuration controlled 3D designs of mechanical parts and assemblies</link></entry>
<entry>Most recent version is 10303-203:2011. Revises <link xlink:href="https://www.iso.org/standard/39522.html">10303-203:2005</link>, which is listed as a modular version that is harmonized with ISO 10303-214. <link xlink:href="https://www.iso.org/standard/57620.html">10303-242:2014</link> is considered a revision to this standard.</entry>
<entry> <link xlink:href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=44305">Configuration controlled 3D designs of mechanical parts and assemblies</link></entry>
<entry>Most recent version is 10303-203:2011. Revises <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=39522">10303-203:2005</link>, which is listed as a modular version that is harmonized with ISO 10303-2014.</entry>
</row>
<row>
<entry>AP214</entry>
<entry> <link xlink:href="https://www.iso.org/standard/43669.html">Core data for automotive mechanical design processes</link></entry>
<entry>Most recent version is 10303-214:2010 (a.k.a AP214e3). Two earlier versions exist: <link xlink:href="https://www.iso.org/standard/38727.html">10303-214:2003</link> and <link xlink:href="https://www.iso.org/standard/23643.html">10303-214:2001</link>. <link xlink:href="https://www.iso.org/standard/57620.html">10303-242:2014</link> is considered a revision to this standard.</entry>
<entry> <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=43669">Core data for automotive mechanical design processes</link></entry>
<entry>Most recent version is 10303-214:2010. Two earlier versions exist: <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=38727">10303-214:2003</link> and <link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=23643">10303-214:2001</link></entry>
</row>
<row>
<entry>AP242</entry>
<entry><link xlink:href="https://www.iso.org/standard/57620.html">Managed model-based 3D engineering</link></entry>
<entry>Most recent version is 10303-242:2014. This standard is intended to consolidate and replace AP203e2 and AP214. One correction has been published: <link xlink:href="https://www.iso.org/standard/72059.html">10303-242:2014/Cor 1:2016</link>.</entry>
<entry><link xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=57620">Managed model-based 3D engineering</link></entry>
<entry>Most recent version is 242:2014. This standard is intended to consolidate and replace AP203e2 and AP214.</entry>
</row>
</tbody>
</tgroup>
@@ -148,10 +148,10 @@
The standards define the structure of the schemas, but in general when it comes to the nuts and bolts of implementing a practical importer and exporter more resources are needed. Below are links to some implementation resources:
</para>
<para>
PDES, Inc. Industry consortium <link xlink:href="http://www.oasis-open.org/committees/download.php/11728/recprac8.pdf">Recommended Practices for AP203</link>, April 1998
PDES, Inc. Industry consortium <link xlink:href="http://www.steptools.com/support/stdev_docs/express/ap203/recprac203v8.pdf">Recommended Practices for AP203</link>, April 1998
</para>
<para>
PDM Implementer Forum, <link xlink:href="http://www.cax-if.org/documents/pdmug_release4_3.pdf">Usage Guide for the STEP PDM Schema V1.2 Release 4.3</link>, January 2002.
PDM Implementer Forum, <link xlink:href="http://www.steptools.com/support/stdev_docs/express/pdm/pdmug_release4_3.pdf">Usage Guide for the STEP PDM Schema V1.2 Release 4.3</link>, January 2002.
</para>
<para>
CAx Implementer Forum Recommended Practices: <link xlink:href="https://www.cax-if.org/joint_testing_info.html#recpracs"></link>
+13 -5
View File
@@ -6,6 +6,7 @@ set(mann_EN
Z.xml
adc.xml
ae.xml
alias-pix.xml
all_sf.xml
analyze.xml
anim_cascade.xml
@@ -52,8 +53,8 @@ set(mann_EN
cp.xml
cpi.xml
d.xml
dall.xml
db.xml
dbfind.xml
db_glob.xml
dbconcat.xml
dbupgrade.xml
@@ -81,22 +82,26 @@ set(mann_EN
em.xml
eqn.xml
erase.xml
erase_all.xml
ev.xml
exists.xml
exit.xml
expand.xml
export_body.xml
extrude.xml
eye_pt.xml
facedef.xml
facetize.xml
find.xml
fracture.xml
g.xml
garbage_collect.xml
gdiff.xml
gastank.xml
gqa.xml
gr.xml
graph.xml
gui.xml
handle.xml
help.xml
helpdevel.xml
helplib.xml
@@ -128,7 +133,6 @@ set(mann_EN
lt.xml
make.xml
make_pnts.xml
man.xml
mater.xml
matpick.xml
memprint.xml
@@ -149,6 +153,7 @@ set(mann_EN
pathlist.xml
paths.xml
permute.xml
picket_fence.xml
plot.xml
prcolor.xml
prefix.xml
@@ -199,9 +204,8 @@ set(mann_EN
sed.xml
setview.xml
shader.xml
shells.xml
shell.xml
showmats.xml
simulate.xml
size.xml
solids.xml
sph-part.xml
@@ -228,6 +232,7 @@ set(mann_EN
vnirt.xml
voxelize.xml
vquery_ray.xml
vrmgr.xml
vrot.xml
wcodes.xml
whatid.xml
@@ -235,6 +240,9 @@ set(mann_EN
whichair.xml
whichid.xml
who.xml
window.xml
window_frame.xml
wire.xml
wmater.xml
x.xml
xpush.xml
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>ALIAS-PIX</refentrytitle>
<manvolnum>1</manvolnum>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
+27 -33
View File
@@ -21,49 +21,43 @@
<arg rep="norepeat">options</arg>
</cmdsynopsis>
<variablelist>
<varlistentry><term></term><listitem>
<cmdsynopsis sepchar=" ">
<command>get</command>
<group choice="req" rep="norepeat">
<arg choice="plain">faces</arg>
<arg choice="plain">minEdge</arg>
<arg choice="plain">maxEdge</arg>
<arg choice="plain">orientation</arg>
<arg choice="plain">type</arg>
<arg choice="plain">vertices</arg>
</group>
<arg choice="req" rep="norepeat">input_bot</arg>
</cmdsynopsis>
</listitem></varlistentry>
<varlistentry><term></term><listitem>
<cmdsynopsis sepchar=" ">
<command>chull</command>
<arg choice="req" rep="norepeat">input_bot</arg>
<arg choice="req" rep="norepeat">output_bot</arg>
</cmdsynopsis>
</listitem></varlistentry>
<varlistentry><term></term><listitem>
<cmdsynopsis sepchar=" ">
<command>solid</command>
<arg choice="req" rep="norepeat">input_bot</arg>
</cmdsynopsis>
</listitem></varlistentry>
<varlistentry><term></term><listitem>
<cmdsynopsis sepchar=" ">
<command>get</command>
<group choice="req" rep="norepeat">
<arg choice="plain">faces</arg>
<arg choice="plain">minEdge</arg>
<arg choice="plain">maxEdge</arg>
<arg choice="plain">orientation</arg>
<arg choice="plain">type</arg>
<arg choice="plain">vertices</arg>
</group>
<arg choice="req" rep="norepeat">input_bot</arg>
</cmdsynopsis>
</listitem></varlistentry>
<varlistentry><term></term><listitem>
<cmdsynopsis sepchar=" ">
<command>chull</command>
<arg choice="req" rep="norepeat">input_bot</arg>
<arg choice="req" rep="norepeat">output_bot</arg>
</cmdsynopsis>
</listitem></varlistentry>
</variablelist>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>The <command>bot</command> command.</para>
<para>The <command>bot</command> command.</para>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title>
<para>BRL-CAD Team</para>
<para>BRL-CAD Team</para>
</refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
+1 -1
View File
@@ -31,7 +31,7 @@
<command>d</command> command (use the <command>who</command> command to see
a list of explicitly displayed objects). Objects that are displayed as members
of explicitly displayed combinations cannot be deleted from the display with
this command (see <command>erase -r</command>).
this command (see <command>dall</command> or <command>erase_all</command>).
Note that this has no effect on the <emphasis>BRL-CAD</emphasis> database
itself. To actually remove objects from the database, use the
<command>kill</command> command.
+62
View File
@@ -0,0 +1,62 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="dall">
<refmeta>
<refentrytitle>DALL</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>dall</refname>
<refpurpose>Deletes the specified list of objects from the <emphasis>mged</emphasis>
display. This is a synonym for the <command>erase_all</command>command.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>dall</command>
<arg choice="req" rep="norepeat"><replaceable>objects</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>
Deletes the specified list of objects from the <emphasis>mged</emphasis>
display. This is a synonym for the <command>erase_all</command> command.
This command will allow the user to delete objects that have not been explicitly
displayed (unlike the <command>d</command> command). Note that this has no effect on the
<emphasis>BRL-CAD</emphasis> database itself. To actually remove objects from the database,
use the <command>kill</command>command.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>
The example shows the use of the <command>dall</command> command to delete a
region and a shape from the <emphasis>mged</emphasis> display, even if they
have not been explicitly displayed.
</para>
<example><title>Delete a region and a shape from the <emphasis>mged</emphasis> display,
even if they have not been explicitly displayed.</title>
<para><prompt>mged&gt;</prompt> <userinput>dall region1 shapea</userinput></para>
<para>Deletes <emphasis>region1</emphasis> and <emphasis>shapea</emphasis> from
the <emphasis>mged</emphasis> display.</para>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
-60
View File
@@ -1,60 +0,0 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="dbfind">
<refmeta>
<refentrytitle>DBFIND</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>dbfind</refname>
<refpurpose>Displays all combinations that have any of the <emphasis>objects</emphasis> specified
as a member.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>dbfind</command>
<arg choice="req" rep="norepeat"><replaceable>objects</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Displays all combinations that have any of the <emphasis>objects</emphasis> specified
as a member.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>dbfind</command> command to display all combinations that refer to the specified object.
</para>
<example><title>Display all combinations that refer to a specified object.</title>
<variablelist>
<varlistentry>
<term><prompt>mged&gt;</prompt> <userinput>dbfind shapea</userinput></term>
<listitem>
<para>Lists all combinations that refer to <emphasis>shapea</emphasis>.
</para>
</listitem>
</varlistentry>
</variablelist>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
+60
View File
@@ -0,0 +1,60 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="erase_all">
<refmeta>
<refentrytitle>ERASE_ALL</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>erase_all</refname>
<refpurpose>Deletes the specified list of objects from the MGED display.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>erase_all</command>
<arg choice="req" rep="norepeat"><replaceable>objects</replaceable></arg>
<arg choice="opt" rep="norepeat"/>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Deletes the specified list of objects from the MGED display. It is a synonym for the <command>dall</command> command. It allows the user to delete objects that have not been explicitly displayed (unlike the <command>d </command> or <command>erase</command> commands). Note that this has no effect on the BRL-CAD database itself. To actually remove objects from the database, use the <command>kill</command> command.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>erase_all</command> command to delete two objects from the MGED display.
</para>
<example><title>Delete objects from the MGED display.</title>
<variablelist>
<varlistentry>
<term><prompt>mged&gt;</prompt> <userinput>erase_all region1 shapea</userinput></term>
<listitem>
<para>Two objects, <emphasis>region1</emphasis> and <emphasis>shapea</emphasis>, are deleted from the MGED display.
</para>
</listitem>
</varlistentry>
</variablelist>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
+59
View File
@@ -0,0 +1,59 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="export_body">
<refmeta>
<refentrytitle>EXPORT_BODY</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>export_body</refname>
<refpurpose>Copies the contents of the specified binary <emphasis>object</emphasis> into the specified <emphasis>file</emphasis>.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>export_body</command>
<arg choice="req" rep="norepeat"><replaceable>object file</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Copies the contents of the specified binary <emphasis>object</emphasis> into the specified <emphasis>file</emphasis>. Currently, only binary objects containing a uniform
array of simple objects are supported.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>export_body</command> command to copy the contents of a particular binary <emphasis>object</emphasis> into a specified <emphasis>file</emphasis>.
</para>
<example><title>Copy the contents of a binary object into a file.</title>
<variablelist>
<varlistentry>
<term><prompt>mged&gt;</prompt> <userinput>export_body bin_chars /home/fred/chars </userinput></term>
<listitem>
<para>Copies the contents of “bin_chars” into the file “/home/fred/chars.”
</para>
</listitem>
</varlistentry>
</variablelist>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
+60
View File
@@ -0,0 +1,60 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="find">
<refmeta>
<refentrytitle>FIND</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>find</refname>
<refpurpose>Displays all combinations that have any of the <emphasis>objects</emphasis> specified
as a member.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>find</command>
<arg choice="req" rep="norepeat"><replaceable>objects</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Displays all combinations that have any of the <emphasis>objects</emphasis> specified
as a member.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>find</command> command to display all combinations that refer to the specified object.
</para>
<example><title>Display all combinations that refer to a specified object.</title>
<variablelist>
<varlistentry>
<term><prompt>mged&gt;</prompt> <userinput>find shapea</userinput></term>
<listitem>
<para>Lists all combinations that refer to <emphasis>shapea</emphasis>.
</para>
</listitem>
</varlistentry>
</variablelist>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>GASTANK</refentrytitle>
<manvolnum>1</manvolnum>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
-129
View File
@@ -1,129 +0,0 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="gdiffn">
<refmeta>
<refentrytitle>GDIFF</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>gdiff</refname>
<refpurpose>
a BRL-CAD differential geometry comparator
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>gdiff</command>
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
<arg choice="plain"><replaceable>left_object</replaceable></arg>
<arg choice="plain"><replaceable>right_object</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>
<command>gdiff</command> compares BRL-CAD geometry objects using
LIBRT's solid raytracing capabilities and visualizes differences in
the display manager.
</para>
<para>
Red segments are those generated only from intersections with the <emphasis>left_obj</emphasis>
object while blue segments represent intersections unique to the <emphasis>right_obj</emphasis>
object. White segments represent intersections common to both objects. By default, only segments
unique to the left and/or right objects are displayed.
</para>
<para>
Users will want to pay careful attention to grid size. By default gdiff
will try to guess a reasonable grid spacing using the bounding boxes of the
objects in question, but depending on the visual quality of the result users
may want to adjust the spacing up or down. Be careful of specifying tolerances
that are too fine - performance will drop off rapidly as grid spacing becomes
very small.
</para>
</refsection>
<refsection xml:id="gdiff_mged_options"><title>OPTIONS</title>
<variablelist remap="TP">
<varlistentry>
<term><emphasis remap="B" role="bold">-h</emphasis></term>
<listitem>
<para>
Prints help.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-g #</emphasis></term>
<listitem>
<para>
Controls grid spacing. Units are mm.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-l</emphasis></term>
<listitem>
<para>
Visualize solid segments occurring only in the left object.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-r</emphasis></term>
<listitem>
<para>
Visualize solid segments occurring only in the right object.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-b</emphasis></term>
<listitem>
<para>
Visualize solid segments occurring in both the left and right object (i.e. common or shared volume).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">-G</emphasis></term>
<listitem>
<para>
Report differences in grazing hits. By default, differences are reported only when they can be
verified by shooting parallel rays offset around the original shotline reporting a difference.
This options disables that filter.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title>
<para>Clifford Yapp</para>
</refsection>
<refsection xml:id="copyright"><title>COPYRIGHT</title>
<para>
This software is Copyright (c) 2016 United States Government as
represented by the U.S. Army Research Laboratory.
</para>
</refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
<!-- vim: set shiftwidth=2 : -->
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>HANDLE</refentrytitle>
<manvolnum>1</manvolnum>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
+1 -9
View File
@@ -19,7 +19,7 @@ command. If the object argument is supplied, only those objects are listed.
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>ls</command>
<arg choice="opt" rep="norepeat">-A -o -a -c -r -s -p -l -q -H -S</arg>
<arg choice="opt" rep="norepeat">-A -o -a -c -r -s -p -l -q</arg>
<arg choice="opt" rep="norepeat"><replaceable>objects</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
@@ -60,14 +60,6 @@ command. If the object argument is supplied, only those objects are listed.
length.
</para>
</listitem>
<listitem>
<para>H -- When printing using long format, use human readable sizes for object size.
</para>
</listitem>
<listitem>
<para>S -- Sort using object size rather than object name.
</para>
</listitem>
<listitem>
<para>q -- Suppress informational output messages during database lookup process
</para>
-51
View File
@@ -1,51 +0,0 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="man_MGED">
<refmeta>
<refentrytitle>MAN</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD MGED Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>man</refname>
<refpurpose>View manual pages.</refpurpose>
</refnamediv>
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>man</command>
<arg choice="req" rep="norepeat"><replaceable>cmdname</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>
Launches the <command>brlman</command> graphical man page viewer with
the man page documenting the specified MGED command name.
</para>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title>
<para>
BRL-CAD Team
</para>
</refsection>
<refsection xml:id="copyright"><title>COPYRIGHT</title>
<para>
This software is Copyright (c) 2016 United States Government as
represented by the U.S. Army Rebrlman Laboratory.
</para>
</refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
<!-- vim: set shiftwidth=2 : -->
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>PICKET_FENCE</refentrytitle>
<manvolnum>1</manvolnum>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
+4 -28
View File
@@ -41,16 +41,11 @@
<para>
Search Inputs are specified using
<link linkend="primitives">PATHS</link> and
matching of objects is done according to a search plan
built using boolean
expressions constructed using the
matching of objects is done according to boolean
expressions formed using the
<link linkend="primitives">PRIMITIVES</link> and
<link linkend="operators">OPERATORS</link>
described below. Note that <link linkend="search_options">OPTIONS</link>
are not used to form search plans - unlike the search plan they are specified
<emphasis remap="I">before</emphasis> the paths and are used to control settings
that apply globally to <command>search</command>'s behavior and reporting during
the execution of the search.
described below.
</para>
</refsection>
@@ -661,6 +656,7 @@
</para>
</example>
<example><title>Name Pattern Matching at Depth &gt;= 3</title>
<para>
@@ -872,26 +868,6 @@
Prints all BoT primitives using "plate" mode, instead of the closed-mesh-requiring "volume" mode.
</para>
</example>
<example><title>Verbose Reporting of Search Information </title>
<para>
<prompt>mged&gt; </prompt><userinput>search -v /all.g ! -type comb</userinput>
<literallayout class="normal">
/u all.g(c)/u platform.r(r)/u platform.s(arb8)
/u all.g(c)/u box.r(r)/u box.s(arb8)
/u all.g(c)/u cone.r(r)/u cone.s(tgc)
/u all.g(c)/u ellipse.r(r)/u ellipse.s(ell)
/u all.g(c)/u tor.r(r)/u tor(tor)
/u all.g(c)/u light.r(r)/u LIGHT(ell)
</literallayout>
</para>
<para>
Report all paths ending in an object that is not a comb using "verbose" output style. The
verbose form of path reporting reports not just the path, but the boolean operator used at
each setp along the path and the primitive type of each object along the path.
</para>
</example>
<example><title>Using <command>search</command> Results</title>
<para>
+58
View File
@@ -0,0 +1,58 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="shell">
<refmeta>
<refentrytitle>SHELL</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>shell</refname>
<refpurpose>Separates the specified NMG shape into its constituent shells.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>shells</command>
<arg choice="opt" rep="norepeat"><replaceable>NMG_shape</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Separates the specified NMG shape into its constituent shells. Each shell is written to
the database as a separate NMG object with a name of the
form “shell” with a number appended to make the name unique. If the <emphasis>NMG</emphasis> has only
one shell, then only one new object will be created. This differs from the <command>decompose </command> command in that <command>decompose</command> will actually break the object into a number of separate shells if possible.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>shells</command> command to break an NMG shape into its constituent shells.
</para>
<example><title>Break an NMG shape into its constituent shells.</title>
<para>
<prompt>mged&gt;</prompt><userinput>object.nmg</userinput>
</para>
<para>Breaks the NMG shape named <emphasis>object.nmg</emphasis> into its constituent shells.
</para>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
-58
View File
@@ -1,58 +0,0 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="shells">
<refmeta>
<refentrytitle>SHELL</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>shells</refname>
<refpurpose>Separates the specified NMG shape into its constituent shells.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>shells</command>
<arg choice="opt" rep="norepeat"><replaceable>NMG_shape</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Separates the specified NMG shape into its constituent shells. Each shell is written to
the database as a separate NMG object with a name of the
form “shell” with a number appended to make the name unique. If the <emphasis>NMG</emphasis> has only
one shell, then only one new object will be created. This differs from the <command>decompose </command> command in that <command>decompose</command> will actually break the object into a number of separate shells if possible.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>shells</command> command to break an NMG shape into its constituent shells.
</para>
<example><title>Break an NMG shape into its constituent shells.</title>
<para>
<prompt>mged&gt;</prompt><userinput>object.nmg</userinput>
</para>
<para>Breaks the NMG shape named <emphasis>object.nmg</emphasis> into its constituent shells.
</para>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
-208
View File
@@ -1,208 +0,0 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="simulaten">
<refmeta>
<refentrytitle>SIMULATE</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>simulate</refname>
<refpurpose>
a Bullet-based physics simulator for MGED
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>simulate</command>
<arg choice="opt" rep="repeat"><replaceable>options</replaceable></arg>
<arg choice="plain"><replaceable>path</replaceable></arg>
<arg choice="plain"><replaceable>duration</replaceable></arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>
<command>simulate</command> performs rigid-body physics evaluation.
The Bullet physics engine is used with a collision algorithm that
utilizes the librt ray tracer.
</para>
<para>
The <replaceable>path</replaceable> parameter specifies the path to the
objects within the simulation. All primitives under this path are regarded
as separate physical objects by default. If a combination has the
attribute <literal>simulate::type=region</literal>, all primitives below it
in the hierarchy are regarded as one physical object.
</para>
<para>
The <replaceable>duration</replaceable> parameter specifies the duration
of the physics simulation (each use of the <command>simulate</command>
command operates within a new physics environment).
</para>
<para>
All values are specified in units of meters, kilograms, and seconds.
Note that Bullet is primarily designed for objects of sizes between
approximately 0.05 and 10.0 meters, with a collision tolerance of 0.004
meters; hence, using <command>simulate</command> on a model that is
significantly different from this scale may give worse results.
</para>
</refsection>
<refsection xml:id="simulate_options"><title>OPTIONS</title>
<variablelist remap="TP">
<varlistentry>
<term><emphasis remap="B" role="bold">--debug=<replaceable>MODE</replaceable></emphasis></term>
<listitem>
<para>
Set the debugging mode. Multiple mode flags can be separated
using commas.
<variablelist remap="B">
<varlistentry>
<term><emphasis remap="I">aabb</emphasis></term>
<listitem><para>
Draw Bullet's axis-aligned bounding boxes after
the simulation step. These can usually be regarded as
indicating the "true" position of geometry. Any discrepancies
may indicate that the <command>simulate</command> command is
incorrectly applying the Bullet transformations.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="I">contact</emphasis></term>
<listitem><para>
Draw all of Bullet's collision contact points during the
simulation.
</para></listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="I">ray</emphasis></term>
<listitem><para>
Draw all of the rays fired by the internal
collision detection algorithm.
</para></listitem>
</varlistentry>
</variablelist>
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection xml:id="simulate_attributes"><title>OBJECT ATTRIBUTES</title>
<para>
The simulation can be configured by setting certain attributes on objects
within the specified path.
</para>
<variablelist remap="TP">
<varlistentry>
<term><emphasis remap="B" role="bold">simulate::type=<replaceable>TYPE</replaceable></emphasis></term>
<listitem>
<para>
Specify the type of the associated object.
<variablelist remap="B">
<varlistentry>
<term><emphasis remap="I">region</emphasis></term>
<listitem><para>
Regard all solids under this combination as belonging to
one rigid body.
</para></listitem>
</varlistentry>
</variablelist>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">simulate::mass=<replaceable>SCALAR</replaceable></emphasis></term>
<listitem>
<para>
Specify the mass of the associated object. Objects with a mass of
<literal>0.0</literal> are immobile.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">simulate::linear_velocity=&lt;<replaceable>x</replaceable>, <replaceable>y</replaceable>, <replaceable>z</replaceable>&gt;</emphasis></term>
<listitem>
<para>
Specify the linear velocity of the associated object as a vector.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">simulate::angular_velocity=&lt;<replaceable>x</replaceable>, <replaceable>y</replaceable>, <replaceable>z</replaceable>&gt;</emphasis></term>
<listitem>
<para>
Specify the angular velocity of the associated object as a vector.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">simulate::gravity=&lt;<replaceable>x</replaceable>, <replaceable>y</replaceable>, <replaceable>z</replaceable>&gt;</emphasis></term>
<listitem>
<para>
Specify the acceleration due to gravity as a vector. This
attribute can only be applied to the topmost object under
<replaceable>path</replaceable>. The default gravity vector
is <literal>&lt;0.0, 0.0, -9.80665&gt;</literal>, specifying an
accleration of -9.8 mm/s/s along the z-axis.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis remap="B" role="bold">simulate::grid_radius=x</emphasis></term>
<listitem>
<para>
Specify the number of rays along the radii of the circular grids of
rays fired during collision detection. This attribute can only be
applied to the topmost object under <replaceable>path</replaceable>.
The default value is <literal>10</literal>.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title>
<para>BRL-CAD Team</para>
</refsection>
<refsection xml:id="copyright"><title>COPYRIGHT</title>
<para>
This software is Copyright (c) 2017 United States Government as
represented by the U.S. Army Research Laboratory.
</para>
</refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
<!-- vim: set shiftwidth=2 : -->
+67
View File
@@ -0,0 +1,67 @@
<refentry xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="vrmgr">
<refmeta>
<refentrytitle>VRMGR</refentrytitle>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD MGED Commands</refmiscinfo>
</refmeta>
<refnamediv xml:id="name">
<refname>vrmgr</refname>
<refpurpose>Establishes a link between the current MGED display and a
<emphasis>vrmgr</emphasis> process running on the specified <emphasis>host</emphasis>.
</refpurpose>
</refnamediv>
<!-- body begins here -->
<refsynopsisdiv xml:id="synopsis">
<cmdsynopsis sepchar=" ">
<command>vrmgr</command>
<arg choice="req" rep="norepeat"><replaceable>host</replaceable></arg>
<group choice="opt" rep="norepeat">
<arg choice="req" rep="norepeat">master</arg>
<arg choice="req" rep="norepeat">slave</arg>
<arg choice="req" rep="norepeat">overview</arg>
</group>
</cmdsynopsis>
</refsynopsisdiv>
<refsection xml:id="description"><title>DESCRIPTION</title>
<para>Establishes a link between the current MGED display and a
<emphasis>vrmgr</emphasis> process running on the specified <emphasis>host</emphasis>. The <emphasis>vrmgr</emphasis> program is a manager for virtual reality displays using MGED. The <emphasis>vrmgr</emphasis> process must be started on <emphasis>host</emphasis> prior to executing the <command>vrmgr</command> command in MGED. The second command line argument to the <command>vrmgr</command> command is the role of the current MGED display. The <emphasis>master</emphasis> display controls the viewing parameters of itself and all the <emphasis>slave</emphasis> displays. The <emphasis>overview</emphasis> display acts as an observer of the entire virtual reality process.
</para>
</refsection>
<refsection xml:id="examples"><title>EXAMPLES</title>
<para>The example shows the use of the <command>vrmgr</command> command to set the current MGED display as the master for the <emphasis>vrmgr</emphasis> process running on the host.
</para>
<example><title>Set the current MGED display as the master for the <emphasis>vrmgr</emphasis> process running on the host.
</title>
<para>
<prompt>mged&gt;</prompt><userinput>vrmgr host1.arl.army.mil master</userinput>
</para>
<para>Sets the current MGED display as the <emphasis>master</emphasis> for the <emphasis>vrmgr</emphasis> process running on the host named <emphasis>host1.arl.army.mil</emphasis>.
</para>
</example>
</refsection>
<refsection xml:id="author"><title>AUTHOR</title><para>BRL-CAD Team</para></refsection>
<refsection xml:id="bug_reports"><title>BUG REPORTS</title>
<para>
Reports of bugs or problems should be submitted via electronic
mail to &lt;devs@brlcad.org&gt;, or via the "cadbug.sh" script.
</para>
</refsection>
</refentry>
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>WINDOW</refentrytitle>
<manvolnum>1</manvolnum>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>WINDOW_FRAME</refentrytitle>
<manvolnum>1</manvolnum>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
@@ -2,7 +2,7 @@
<refmeta>
<refentrytitle>WIRE</refentrytitle>
<manvolnum>1</manvolnum>
<manvolnum>nged</manvolnum>
<refmiscinfo class="source">BRL-CAD</refmiscinfo>
<refmiscinfo class="manual">BRL-CAD User Commands</refmiscinfo>
</refmeta>
File diff suppressed because it is too large Load Diff
+3 -4
View File
@@ -336,11 +336,10 @@ ADD_DOC(relnotes_5_summary_HTML html/ReleaseNotes/Rel5.0/Summary)
ADD_DOC(ReleaseNotes/Rel6.0/index.html html/ReleaseNotes/Rel6.0)
add_subdirectory(manuals/mged/animmate)
set(html_ignore_files
ReleaseNotes/Rel6.0/index.html
manuals/shaders/camo.html
ReleaseNotes/Rel6.0
manuals/mged/animmate
manuals/shaders
manuals/small-eagleCAD.ico
)
CMAKEFILES(${html_ignore_files})
+1 -1
View File
@@ -80,7 +80,7 @@ tops tree whatid whichair whichid</B>
Methods associated with
<A HREF="../librt/dg_obj.html#sect9">LIBRT's drawable geometry object</A>:<BR>
<DL>
<DD><B>assoc blast clear draw erase ev get_autoview
<DD><B>assoc blast clear draw erase erase_all ev get_autoview
illum label observer overlay report rt rtcheck vdraw who zap</B>
</DD>
</DL>
+1 -1
View File
@@ -56,7 +56,7 @@ The following commands are possible for drawable objects:
Methods associated with
<A HREF="../librt/dg_obj.html#sect9">LIBRT's drawable geometry object</A>:<BR>
<DL>
<DD><B>assoc blast clear draw erase ev get_autoview
<DD><B>assoc blast clear draw erase erase_all ev get_autoview
illum label observer overlay report rt rtcheck vdraw who zap</B>
</DD>
</DL>
+1 -1
View File
@@ -146,7 +146,7 @@ title tol tops tree whatid whichair whichid</B>
<P>
Methods associated with <A HREF="../librt/dg_obj.html#sect9">LIBRT's drawable geometry object</A>:<BR>
<DL>
<DD><B>blast clear draw erase ev
<DD><B>blast clear draw erase erase_all ev
get_autoview get_dgname illum label overlay
report rt rtcheck vdraw who zap</B>
</DD>
+1
View File
@@ -80,6 +80,7 @@ BRL-CAD<font size="-1">(tm)</font> Unleashed
<ol>
<li><H2>rt</h2>
<li><H2>remrt</h2>
<li><H2>rttherm</h2>
<li><H2><a HREF="shaders/index.html">Shaders and Material Properties</a></h2>
<li><H2>Animation</h2>
<ol>
+2 -2
View File
@@ -80,13 +80,13 @@ region id based colors.
may be deleted with the ``erase'' command (use the <a href="#who">who</a>
command to see a list of explicitly displayed objects). Objects that are
displayed as members of explicitly displayed combinations cannot be
deleted from the display with this command (see <a href="#erase -r">erase -r</a>).
deleted from the display with this command (see <a href="#erase_all">erase_all</a>).
Note that this has no effect on the
<I>BRL&#173CAD</I> database itself. To actually remove objects from the
database, use the <a href="#kill">kill</a> command.
</DD>
<P>
<DT><I>dgName</I> <A NAME="erase -r"><B>erase -r</B></A> <I>&lt;objects&gt</I></DT>
<DT><I>dgName</I> <A NAME="erase_all"><B>erase_all</B></A> <I>&lt;objects&gt</I></DT>
<DD>Delete the specified list of objects from the display list.
This command will allow the user to delete objects
that have not been explicitly displayed (unlike the <a href="#erase">erase</a> command).
@@ -1,78 +0,0 @@
set(anim_ignore_files
CMakeLists.txt
anim_cascade.html
anim_doc.html
anim_fly.html
anim_hardtrack.html
anim_keyread.html
anim_lookat.html
anim_man_pages.html
anim_offset.html
anim_orient.html
anim_script.html
anim_sort.html
anim_time.html
anim_track.html
anim_turn.html
anim_tut.html
animate.html
ceditor.gif
chan_mult.html
chan_permute.html
combine_doc.html
cscripts.gif
curve_doc.html
end_tut.html
etime.gif
fbanim.html
left.tcl
left_wheels.txt
mmenu.gif
object_tut.html
oscript.gif
oscript_doc.html
pixtile.html
prep_tut.html
right.tcl
right_wheels.txt
rt.html
rt_tut.html
scriptsort.html
show_doc.html
sscripts.gif
tabinterp.html
table_doc.html
tabsub.html
tank_path.txt
teditor.gif
track.txt
track_tut.html
tscript.gif
tscript_doc.html
tut.html
tut1.png
tut2.png
tut4.gif
tut5.gif
tut6.png
tut7.png
tut8.png
vcdwidget.gif
vceditor.gif
vcurve_doc.html
vdraw.html
view_tut.html
viewget.html
vscript_doc.html
)
CMAKEFILES(${anim_ignore_files})
# Local Variables:
# tab-width: 8
# mode: cmake
# indent-tabs-mode: t
# End:
# ex: shiftwidth=2 tabstop=8
+43 -14
View File
@@ -110,6 +110,8 @@
<FONT SIZE=2><P></FONT><A HREF="#cpi"><FONT SIZE=2>cpi</FONT></A></TD>
<TD WIDTH="20%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#d"><FONT SIZE=2>d</FONT></A></TD>
<TD WIDTH="22%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#dall"><FONT SIZE=2>dall</FONT></A></TD>
<TD WIDTH="21%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#db"><FONT SIZE=2>db</FONT></A></TD>
</TR>
@@ -163,6 +165,8 @@
<FONT SIZE=2><P></FONT><A HREF="#em"><FONT SIZE=2>em</FONT></A></TD>
<TD WIDTH="20%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#erase"><FONT SIZE=2>erase</FONT></A></TD>
<TD WIDTH="22%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#erase_all"><FONT SIZE=2>erase_all</FONT></A></TD>
<TD WIDTH="21%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#ev"><FONT SIZE=2>ev</FONT></A></TD>
</TR>
@@ -170,6 +174,8 @@
<FONT SIZE=2><P></FONT><A HREF="#exit"><FONT SIZE=2>exit</FONT></A></TD>
<TD WIDTH="19%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#expand"><FONT SIZE=2>expand</FONT></A></TD>
<TD WIDTH="20%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#export_body"><FONT SIZE=2>export_body</FONT></A></TD>
<TD WIDTH="22%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#expand_comb"><FONT SIZE=2>expand_comb</FONT></A></TD>
<TD WIDTH="21%" VALIGN="MIDDLE">
@@ -194,8 +200,6 @@
<FONT SIZE=2><P></FONT><A HREF="#garbage_collect"><FONT SIZE=2>garbage_collect</FONT></A></TD>
<TD WIDTH="20%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#gui"><FONT SIZE=2>gui</FONT></A></TD>
<TD WIDTH="20%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#heal"><FONT SIZE=2>heal</FONT></A></TD>
<TD WIDTH="22%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#help"><FONT SIZE=2>help</FONT></A></TD>
<TD WIDTH="21%" VALIGN="MIDDLE">
@@ -463,6 +467,9 @@
<FONT SIZE=2><P></FONT><A HREF="#vnirt"><FONT SIZE=2>vnirt</FONT></A></TD>
<TD WIDTH="20%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#vquery_ray"><FONT SIZE=2>vquery_ray</FONT></A></TD>
<TD WIDTH="22%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#vrmgr"><FONT SIZE=2>vrmgr</FONT></A></TD>
<TD WIDTH="21%" VALIGN="MIDDLE">
<FONT SIZE=2><P></FONT><A HREF="#vrot"><FONT SIZE=2>vrot</FONT></A></TD>
</TR>
<TR><TD WIDTH="18%" VALIGN="MIDDLE">
@@ -1085,12 +1092,20 @@
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="d"></A>d</B> <I>&lt;objects</I>&gt;</DT>
<DD>The &quot;d&quot; command deletes the specified list of objects from the <I>mged</I> display. This is a synonym for the <A HREF="#erase">erase</A> command. Only objects that have been explicitly displayed may be deleted with the &quot;d&quot; command (use the <A HREF="#who">who</A> command to see a list of explicitly displayed objects). Objects that are displayed as members of explicitly displayed combinations cannot be deleted from the display with this command (see <A HREF="#erase">erase -r</A>). Note that this has no effect on the <I>BRL-CAD</I> database itself. To actually remove objects from the database, use the <A HREF="#kill">kill</A> command.</DD>
<DD>The &quot;d&quot; command deletes the specified list of objects from the <I>mged</I> display. This is a synonym for the <A HREF="#erase">erase</A> command. Only objects that have been explicitly displayed may be deleted with the &quot;d&quot; command (use the <A HREF="#who">who</A> command to see a list of explicitly displayed objects). Objects that are displayed as members of explicitly displayed combinations cannot be deleted from the display with this command (see <A HREF="#dall">dall</A> or <A HREF="#erase_all">erase_all</A>). Note that this has no effect on the <I>BRL-CAD</I> database itself. To actually remove objects from the database, use the <A HREF="#kill">kill</A> command.</DD>
<FONT SIZE=4><DT>Examples:</DT>
</FONT><TT><DD>mged&gt;</TT> <B>d region1 shapea</DD>
</DL>
</B><FONT SIZE=2><P>-- Delete <I>region1</I> and <I>shapea</I> from the <I>mged</I> display. </P>
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="dall"></A>dall</B> <I>&lt;objects</I>&gt;</DT>
<DD>The &quot;dall&quot; command deletes the specified list of objects from the <I>mged</I> display. This is a synonym for the <A HREF="#erase_all">erase_all</A> command. This command will allow the user to delete objects that have not been explicitly displayed (unlike the <A HREF="#d">d</A> command). Note that this has no effect on the <I>BRL-CAD</I> database itself. To actually remove objects from the database, use the <A HREF="#kill">kill</A> command.</DD>
<FONT SIZE=4><DT>Examples:</DT>
</FONT><TT><DD>mged&gt;</TT> <B>dall region1 shapea</DD>
</DL>
</B><FONT SIZE=2><P>-- Delete <I>region1</I> and <I>shapea</I> from the <I>mged</I> display. </P>
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="db"></A>db</B> <I>command</I> [<I>args...</I>]</DT>
@@ -1451,13 +1466,21 @@ l r230 r231 r232 r233 r234 r235 r236 r237 r238 r239 <BR>
<DD><HR ALIGN="RIGHT"></DD></DIR>
<B><DT>erase</B> <I>&lt;objects</I>&gt;</DT>
<DD>The &quot;erase&quot; command deletes the specified list of objects from the MGED<I> </I>display. This is a synonym for the <A HREF="#d">d</A> command. Only objects that have been explicitly displayed may be deleted with the &quot;erase&quot; command (use the <A HREF="#who">who</A> command to see a list of explicitly displayed objects). Objects that are displayed as members of explicitly displayed combinations cannot be deleted from the display with this command (see <A HREF="#erase">erase -r</A>). Note that this has no effect on the <I>BRL-CAD</I> database itself. To actually remove objects from the database, use the <A HREF="#kill">kill</A> command.</DD>
<DD>The &quot;erase&quot; command deletes the specified list of objects from the MGED<I> </I>display. This is a synonym for the <A HREF="#d">d</A> command. Only objects that have been explicitly displayed may be deleted with the &quot;erase&quot; command (use the <A HREF="#who">who</A> command to see a list of explicitly displayed objects). Objects that are displayed as members of explicitly displayed combinations cannot be deleted from the display with this command (see <A HREF="#dall">dall</A> or <A HREF="#erase_all">erase_all</A>). Note that this has no effect on the <I>BRL-CAD</I> database itself. To actually remove objects from the database, use the <A HREF="#kill">kill</A> command.</DD>
<FONT SIZE=4><DT>Examples:</DT>
</FONT><TT><DD>mged&gt;</TT> <B>erase region1 shapea</DD>
</DL>
</B><FONT SIZE=2><P>-- Delete <I>region1</I> and <I>shapea</I> from the MGED display. </P>
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="erase_all"></A>erase_all</B> <I>&lt;objects</I>&gt;</DT>
<DD>The &quot;erase_all&quot; command deletes the specified list of objects from the MGED display. This is a synonym for the <A HREF="#dall">dall</A> command. This command will allow the user to delete objects that have not been explicitly displayed (unlike the <A HREF="#d">d</A> or <A HREF="#erase">erase</A> commands). Note that this has no effect on the <I>BRL-CAD</I> database itself. To actually remove objects from the database, use the <A HREF="#kill">kill</A> command.</DD>
<FONT SIZE=4><DT>Examples:</DT>
</FONT><TT><DD>mged&gt;</TT> <B>erase_all region1 shapea</DD>
</DL>
</B><FONT SIZE=2><P>-- Delete <I>region1</I> and <I>shapea</I> from the MGED display. </P>
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="ev"></A>ev</B> [<I>-dfnrstuvwST</I>] [<I>-P#</I>] [-C#/#/#] &lt;<I>objects</I>&gt;</DT>
<DD>The &quot;ev&quot; command evaluates the <I>objects</I> specified by tessellating all <A HREF="#SOLID">primitive shapes</A> in the objects and then performing any <A HREF="#BOOLEAN">Boolean operations</A> specified in the <I>objects</I>. The result is then displayed in the MGED display according to the specified options:</DD>
</DL>
@@ -1505,6 +1528,13 @@ l r230 r231 r232 r233 r234 r235 r236 r237 r238 r239 <BR>
</B><FONT SIZE=2><P>-- Display a list of all database object names that end in &quot;.r&quot;. </P>
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="export_body"></A>export_body <I>object file </DT>
</B></I><DD>The &quot;export_body&quot; command is used to copy the contents of the specified binary <I>object</I> into the specified <I>file</I>. Currently, only binary objects containing a uniform array of simple objects is supported. </DD>
<DT></DT>
<FONT SIZE=4><DD>Examples: </DD>
</FONT><TT><DD>mged&gt;</TT> <B>export_body bin_chars /home/fred/chars</DD>
</B><DD>-- Copy the contents of &quot;bin_chars&quot; into the file &quot;/home/fred/chars&quot;</DD>
<DT><HR ALIGN="RIGHT"></DT>
<DT><b><a name="expand_comb"></a>expand_comb <i>prefix comb ...</i></DT>
<DD>The <i>expand_comb</i> will create a new combination object <i>prefix</i>.
For each Boolean node in the original tree of the combination a new
@@ -1716,16 +1746,6 @@ foo.r_xpand/R
</TR>
</TABLE>
<FONT SIZE=2><P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="heal"></A>heal</B> [<I>command</I>]</DT>
<DD><P>The &quot;heal&quot; command takes in the bot as input along with the tolerances. As of now, it takes the tolerance only for zippering. </P>
<P>The healing essentially comprises only of zippering now, but more features will be added later on. The algorithm cannot support non-manifold meshes (those containing singular vertices or edges). The bots need not be oriented, the algorithm takes care of that. </P></DD>
<FONT SIZE=4><DT>Examples:</DT>
</FONT><TT><DD>mged&gt;</TT> <B>heal samplebot.s 47.3</DD>
</DL>
<FONT SIZE=2><P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="help"></A>help</B> [<I>command</I>]</DT>
@@ -3490,6 +3510,15 @@ All textual arguments may be abbreviated by their first letter. </P>
<DT><A NAME="vquery_ray"></A>vquery_ray</B> <I>x y</DT>
</I><DD>Same as <A HREF="#vnirt">vnirt</A>.</DD>
</DL>
<FONT SIZE=2><P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
<DT><A NAME="vrmgr"></A>vrmgr</B> <I>host</I> {<I>master</I> | <I>slave</I> | <I>overview</I>}</DT>
<DD>The &quot;vrmgr&quot; command establishes a link between the current MGED display and a <I>vrmgr</I> process running on the specified <I>host</I>. The <I>vrmgr</I> program is a manager for virtual reality displays using MGED. The <I>vrmgr</I> process must be started on <I>host</I> prior to executing the <I>vrmgr</I> command in MGED. The second command line argument to the <I>vrmgr</I> command is the role of the current MGED display. The <I>master</I> display controls the viewing parameters of itself and all the <I>slave</I> displays. The <I>overview</I> display acts as an observer of the entire virtual reality process.</DD>
<FONT SIZE=4><DT>Examples:</DT>
</FONT><TT><DD>mged&gt;</TT> <B>vrmgr host1.brlcad.org master</DD>
</DL><DIR>
</B><FONT SIZE=2><P>-- Set the current MGED display as the <I>master</I> for the <I>vrmgr</I> process running on the host named <I>host1.brlcad.org.</I> </P></DIR>
<P><HR ALIGN="RIGHT"></P>
</FONT><B><DL>
-34
View File
@@ -1,34 +0,0 @@
Notes on using gcov/lcov with BRL-CAD
Build with the BRLCAD_ENABLE_CAPTURE option set to ON
If using only gcov, you need to cd to the directory where the object files were
built and specify the object file(s) in question fully, e.g. (from the build
directory):
$ cd src/libbu/CMakeFiles/libbu.dir/
$ gcov b64.c.o vls.c.o
File '/brlcad/src/libbu/b64.c'
Lines executed:88.10% of 126
/brlcad/src/libbu/b64.c:creating 'b64.c.gcov'
File '/brlcad/src/libbu/vls.c'
Lines executed:74.66% of 363
/brlcad/src/libbu/vls.c:creating 'vls.c.gcov'
When running lcov (from the build directory, assuming the
build directory itself is <source_dir>/build):
find . -name '*.gcda' -print0 | xargs -0 rm
make -j3 check
lcov --capture --directory . --output-file coverage.info
lcov -r coverage.info \*\/build\/\* > coverage-2.info
lcov -r coverage-2.info \*\/other\/\* > coverage-3.info
lcov -r coverage-3.info \/usr\/\* > coverage-4.info
lcov -r coverage-4.info \*\/misc\/\* > coverage-5.info
lcov -r coverage-5.info \*\/tests\/\* > coverage_cad.info
rm coverage-*.info
genhtml coverage_cad.info --output-directory lcov-output
+29
View File
@@ -0,0 +1,29 @@
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
General Discussion about how to Make Animations using the BRL-CAD Package
There are several distinct aspects to producing an animation:
1) The creative insight.
2) Specification of the geometry.
3) Specification of the material properties, colors, textures.
4) Specification of the model motion and articulation (choreography),
plus specification of the camera motion and lighting details
(cinematography).
5) Previewing the animation sequence using wireframe tools.
6) Computation ("rendering") of the final sequence in very low
resolution, suitable for frame-buffer animation previews (see
fbanim(1)).
7) Computation ("rendering") of the final ray-traced images, storing
them in .pix files.
8) Viewing selected frames, to review them for quality.
9) Recording of the final images either on videotape or 16mm movie
film.
+27
View File
@@ -0,0 +1,27 @@
Some notes on using BRL-CAD on Sun Workstations (Release 3.0):
As of Release 3.0 MGED is much improved on the Suns. It now opens
its own window which can be resized, iconified, etc., like other
windows under SunTools.
While a generic replacement for knobs and buttons was not completed,
the function keys F1-F7 help somewhat. Pressing these keys attaches
certain "knob" functions to the mouse X or Y motions:
F# Function Mouse
1 Zoom y
2 Z Slew y
3 X Slew x
4 Y Slew y
5 X Rotate x
6 Y Rotate y
7 Z Rotate y
These keys can be used as "chords", e.g. pressing F3 and F4 together
will give you X and Y translates on the mouse.
Frame buffer support has also been greatly enhanced, but the released
version does not yet open its own window for display. Rather, it
covers the window a frame buffer command was invoked from with the
display. Panning and Zooming are now supported, as is shared memory.
"/dev/sunp" can be used to get private memory.
+3
View File
@@ -24,6 +24,7 @@ rtscale
rtshot
rtsil
rtsrv
rttherm
rtwalk
rtweight
rtwizard (GUI)
@@ -149,6 +150,7 @@ pix-yuv
png-bw
png-pix
rle-pix
ssamp-bw
sun-pix
u-a
u-bw
@@ -290,6 +292,7 @@ random
script-tab
scriptsort
smod
ssampview (GUI)
syn
tabinterp
tabsub
+25 -1
View File
@@ -721,6 +721,7 @@
****** [[file:../doc/docbook/system/man1/en/png-bw.xml][png-bw.xml]]
****** [[file:../doc/docbook/system/man1/en/wdb_example.xml][wdb_example.xml]]
****** [[file:../doc/docbook/system/man1/en/bw-rle.xml][bw-rle.xml]]
****** [[file:../doc/docbook/system/man1/en/rttherm.xml][rttherm.xml]]
****** [[file:../doc/docbook/system/man1/en/pix-ppm.xml][pix-ppm.xml]]
****** [[file:../doc/docbook/system/man1/en/pixblend.xml][pixblend.xml]]
****** [[file:../doc/docbook/system/man1/en/fbed.xml][fbed.xml]]
@@ -905,6 +906,7 @@
****** [[file:../doc/docbook/system/man1/en/bwhisteq.xml][bwhisteq.xml]]
****** [[file:../doc/docbook/system/man1/en/fbanim.xml][fbanim.xml]]
****** [[file:../doc/docbook/system/man1/en/fb-bw.xml][fb-bw.xml]]
****** [[file:../doc/docbook/system/man1/en/ssamp-bw.xml][ssamp-bw.xml]]
****** [[file:../doc/docbook/system/man1/en/rt.xml][rt.xml]]
****** [[file:../doc/docbook/system/man1/en/hex.xml][hex.xml]]
****** [[file:../doc/docbook/system/man1/en/sun-pix.xml][sun-pix.xml]]
@@ -1005,6 +1007,7 @@
****** [[file:../doc/docbook/system/mann/en/facedef.xml][facedef.xml]]
****** [[file:../doc/docbook/system/mann/en/rcc-cap.xml][rcc-cap.xml]]
****** [[file:../doc/docbook/system/mann/en/quit.xml][quit.xml]]
****** [[file:../doc/docbook/system/mann/en/vrmgr.xml][vrmgr.xml]]
****** [[file:../doc/docbook/system/mann/en/make.xml][make.xml]]
****** [[file:../doc/docbook/system/mann/en/whichair.xml][whichair.xml]]
****** [[file:../doc/docbook/system/mann/en/viewsize.xml][viewsize.xml]]
@@ -1034,6 +1037,7 @@
****** [[file:../doc/docbook/system/mann/en/attr.xml][attr.xml]]
****** [[file:../doc/docbook/system/mann/en/dup.xml][dup.xml]]
****** [[file:../doc/docbook/system/mann/en/eye_pt.xml][eye_pt.xml]]
****** [[file:../doc/docbook/system/mann/en/dall.xml][dall.xml]]
****** [[file:../doc/docbook/system/mann/en/bot_split.xml][bot_split.xml]]
****** [[file:../doc/docbook/system/mann/en/copymat.xml][copymat.xml]]
****** [[file:../doc/docbook/system/mann/en/read_muves.xml][read_muves.xml]]
@@ -1070,7 +1074,7 @@
****** [[file:../doc/docbook/system/mann/en/preview.xml][preview.xml]]
****** [[file:../doc/docbook/system/mann/en/search.xml][search.xml]]
****** [[file:../doc/docbook/system/mann/en/brep.xml][brep.xml]]
****** [[file:../doc/docbook/system/mann/en/erase.xml][erase.xml]]
****** [[file:../doc/docbook/system/mann/en/erase_all.xml][erase_all.xml]]
****** [[file:../doc/docbook/system/mann/en/expand.xml][expand.xml]]
****** [[file:../doc/docbook/system/mann/en/xpush.xml][xpush.xml]]
****** [[file:../doc/docbook/system/mann/en/pull.xml][pull.xml]]
@@ -1079,6 +1083,7 @@
****** [[file:../doc/docbook/system/mann/en/l.xml][l.xml]]
****** [[file:../doc/docbook/system/mann/en/handle.xml][handle.xml]]
****** [[file:../doc/docbook/system/mann/en/edmater.xml][edmater.xml]]
****** [[file:../doc/docbook/system/mann/en/export_body.xml][export_body.xml]]
****** [[file:../doc/docbook/system/mann/en/tol.xml][tol.xml]]
****** [[file:../doc/docbook/system/mann/en/exists.xml][exists.xml]]
****** [[file:../doc/docbook/system/mann/en/title.xml][title.xml]]
@@ -1794,6 +1799,9 @@
*** [[file:../src/anim/anim_sort.c][anim_sort.c]]
*** [[file:../src/anim/anim_track.c][anim_track.c]]
*** [[file:../src/anim/anim_turn.c][anim_turn.c]]
** [[file:../src/libmultispectral][libmultispectral]]
*** [[file:../src/libmultispectral/sh_temp.c][sh_temp.c]]
*** [[file:../src/libmultispectral/CMakeLists.txt][CMakeLists.txt]]
** [[file:../src/brlman][brlman]]
*** [[file:../src/brlman/brlman.sh.in][brlman.sh.in]]
*** [[file:../src/brlman/brlman.bat][brlman.bat]]
@@ -4362,6 +4370,7 @@
*** [[file:../src/mged/edsol.c][edsol.c]]
*** [[file:../src/mged/rtif.c][rtif.c]]
*** [[file:../src/mged/muves.c][muves.c]]
*** [[file:../src/mged/mged.bat][mged.bat]]
*** [[file:../src/mged/clone.c][clone.c]]
*** [[file:../src/mged/columns.c][columns.c]]
*** [[file:../src/mged/doevent.c][doevent.c]]
@@ -4633,6 +4642,16 @@
*** [[file:../src/sig/i-f.c][i-f.c]]
*** [[file:../src/sig/dauto2.c][dauto2.c]]
*** [[file:../src/sig/ddisp.c][ddisp.c]]
** [[file:../src/rttherm][rttherm]]
*** [[file:../src/rttherm/ssampview.c][ssampview.c]]
*** [[file:../src/rttherm/spectrum.c][spectrum.c]]
*** [[file:../src/rttherm/ssampview.tcl][ssampview.tcl]]
*** [[file:../src/rttherm/test.sh][test.sh]]
*** [[file:../src/rttherm/std_day_1km.dat][std_day_1km.dat]]
*** [[file:../src/rttherm/ssamp-bw.c][ssamp-bw.c]]
*** [[file:../src/rttherm/CMakeLists.txt][CMakeLists.txt]]
*** [[file:../src/rttherm/viewtherm.c][viewtherm.c]]
*** [[file:../src/rttherm/pixtest.c][pixtest.c]]
** [[file:../src/libwdb][libwdb]]
*** [[file:../src/libwdb/mater.c][mater.c]]
*** [[file:../src/libwdb/datum.c][datum.c]]
@@ -12795,6 +12814,7 @@
*** [[file:../regress/mged/rotobj.mged][rotobj.mged]]
*** [[file:../regress/mged/i.mged][i.mged]]
*** [[file:../regress/mged/run_test][run_test]]
*** [[file:../regress/mged/dall.mged][dall.mged]]
*** [[file:../regress/mged/mvall.mged][mvall.mged]]
*** [[file:../regress/mged/center.mged][center.mged]]
*** [[file:../regress/mged/push.mged][push.mged]]
@@ -12960,9 +12980,11 @@
*** [[file:../misc/profont/readme.txt][readme.txt]]
*** [[file:../misc/profont/LICENSE][LICENSE]]
** [[file:../misc/nsis][nsis]]
*** [[file:../misc/nsis/brlcad.nsi][brlcad.nsi]]
*** [[file:../misc/nsis/side.bmp][side.bmp]]
*** [[file:../misc/nsis/archer.ico][archer.ico]]
*** [[file:../misc/nsis/brlcad.ico][brlcad.ico]]
*** [[file:../misc/nsis/updateVersion.tcl][updateVersion.tcl]]
*** [[file:../misc/nsis/uninstall.ico][uninstall.ico]]
*** [[file:../misc/nsis/header.bmp][header.bmp]]
** [[file:../misc/jove.emacs][jove.emacs]]
@@ -13671,6 +13693,7 @@
*** [[file:../misc/doxygen/libfft.dox][libfft.dox]]
*** [[file:../misc/doxygen/libtclcad.dox][libtclcad.dox]]
*** [[file:../misc/doxygen/libtermio.dox][libtermio.dox]]
*** [[file:../misc/doxygen/libmultispectral.dox][libmultispectral.dox]]
*** [[file:../misc/doxygen/libanalyze.dox][libanalyze.dox]]
*** [[file:../misc/doxygen/images][images]]
**** [[file:../misc/doxygen/images/README.txt][README.txt]]
@@ -13910,6 +13933,7 @@
** [[file:../misc/pkgconfig][pkgconfig]]
*** [[file:../misc/pkgconfig/libgm.pc.in][libgm.pc.in]]
*** [[file:../misc/pkgconfig/libicv.pc.in][libicv.pc.in]]
*** [[file:../misc/pkgconfig/libmultispectral.pc.in][libmultispectral.pc.in]]
*** [[file:../misc/pkgconfig/librt.pc.in][librt.pc.in]]
*** [[file:../misc/pkgconfig/libfft.pc.in][libfft.pc.in]]
*** [[file:../misc/pkgconfig/libpkg.pc.in][libpkg.pc.in]]
+158
View File
@@ -0,0 +1,158 @@
DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT DRAFT
Specific details about producing an animation of a gun tube,
using the BRL-CAD Package and various IBD simulation codes.
As things presently stand, the central part of this linkage is a program
called TUBE.C that takes two input files describing the motion of the
scene, and generates an MGED database containing a separate tree
(Directed Acyclic Graph [DAG]) for each frame. The name of combination
at the top of the tree is the letter "g" (for group) followed by the
frame number, so that the first frame of the animation is tree "g0", the
second frame is tree "g1", etc.
The current X displacement data for the gun tube center of mass points
is presently contained in the array dxtab[] compiled into the program.
The input file "pos.dat" contains the projectile position data. On each
input line, the time (in milliseconds) is listed first, followed by the
X displacement of the base of the projectile, offset from the projectile
starting position. The time values listed in this file do not have to
correspond to the time values listed for the articulation; the proper
time will be chosen by the program. If the file "tank.out" contains the
output from a normal run of IBHVG2, the file "pos.dat" can be created by
running this Shell script:
cat tank.out |
sed -n '/ TIME TRAV/,/ PROJECTILE EXIT/p' |
grep -v "[A-Z]" |
cut -c2-132 |
grep -v "^[ ]*$" |
awk '{printf "%10.2f %10.2f\n", $1, $2 }' > pos.dat
The mass displacement file is presented to the TUBE program on standard
input, where each time step has the following format: First a line with
the word "TIME" followed by a floating point number, in milliseconds.
Then, one input line for each of ``nmass'' (e.g., 12) mass points, in
ascending order of mass point number, starting with one, with one
integer and three floating point numbers on each line: the mass number,
the X, Y, and Z deviations (currently expected in inches, where +X is
towards the muzzle, +Y is in the vertical direction, and +Z is to the
right of the muzzle). There must be exactly one blank line after the
last mass point data line and before the next "TIME" line. Note that
mass point 1 corresponds to "m1" on the diagram, and mass point 12 is
"m12" on the diagram. The position of a two additional points (0 and
13) are guessed within the program, with mass point 0 being the outer
edge of the breach block, and mass point 13 being the muzzle end, but
these two points are not specified in the input file. E.g.,
TIME 0.02
1 0.01 0.00035 0.00000075
2 0.01 0.00040 0.00000900
(etc.)
12 1.01 0.0784 3.129
TIME 0.04
(etc.)
Therefore, assuming the mass displacement file is in "mass.dat",
and that the "pos.dat" file exists in the same directory,
and that the model for the projectile is in the file "projectile.g"
with main (top) combination named "ke",
the TUBE program is run as follows:
tube < mass.dat > anim.g
cat projectile.g >> anim.g
This MGED database can be examined with MGED. To see the first
frame, say:
mged anim.g
then respond to the "attach" question appropriately for the type of
graphics device being used, and then enter the command
B g0
This will display the geometry configuration for frame zero.
The "B" command in MGED stands for "Blast screen clear, then display
named object(s)". To view frame 42, enter the command
B g42
and so on. The MGED control dials can be used to translate, rotate,
and zoom the current viewpoint. When a desirable viewpoint has been
selected, it can saved in a file called "view1.sh" with the command
saveview view1.sh
This file is actually a Shell script that will render that one frame for
you, using RT, and store it in a file. However, in this case, a text
editor is used to extract just the viewsize, eye point, and homogeneous
transform matrix (20 numbers in all) and store them in another file, say
"view1.mat".
To preview the whole animation in wireframe format, assuming that there
are 300 frames running 0 to 299, this Shell script (called, say,
"preview.sh") is used:
rm -f temp.sh
cat << END > temp.sh
mged anim.g
attach ir (for SGI 3-D, or "sgi" for SGI 4-D)
B g0
rmats view1.mat
END
for frame in `loop 0 299`
do
echo "B g${frame}" >> temp.sh
done
sh temp.sh
rm -f temp.sh
Assuming that this animation sequence and viewpoint are satisfactory,
and that the desired "graph paper" background file is stored in a
128x128 .pix file called "movie128bw.pix" in the current directory,
the animation can be rendered the Shell script given below (called, say,
"render.sh"):
for frame in `loop 0 299`
do
rt -s512 -M -o out.pix.${frame} \
anim.g g${frame} < view1.mat >>& render.log
done
The "-s512" parameter specifies that the desired image is to be square,
and 512x512 pixels in size. This is typically the desired resolution
for videotape. The "-M" parameter specifies that the view matrix is to
be obtained from stdin. The "-o out.pix.${frame}" says that the output
picture is to be stored in a file called "out.pix.123" where "123"
represents the current frame number. (The backslash at the end of the
line continues the command to the next line). Specifying "anim.g"
names the input MGED database, and "g${frame}" specifies the treetop
appropriate for the current frame.
Because this procedure is likely to take a significant amount of time,
the shell script should be submitted as a batch job. On the minicomputers,
the MDQS command
batch render.sh
should be used. On both of the UNICOS Cray systems, the NQS command
qsub render.sh
should be used.
To view one of these files, the Shell environment variable FB_FILE
should be set to indicate the appropriate framebuffer on the network
to use, and the program "pix-fb" is used to transfer the picture to
the framebuffer. For more details on the variable FB_FILE, consult
the brlcad(1) manual page; for more details on the program "pix-fb",
consult the pix-fb(1) manual page; for more details on the framebuffer
library, consult libfb(3) manual page. This can be done on BRL-IBD
with these commands:
man brlcad
man pix-fb
man libfb
+3 -7
View File
@@ -22,7 +22,6 @@ set(public_hdrs
common.h
cursor.h
ged.h
pinttypes.h
pstdint.h
raytrace.h
rtserver.h
@@ -42,6 +41,7 @@ set(public_hdrs
photonmap.h
pc.h
pkg.h
spectrum.h
vmath.h
wdb.h
)
@@ -57,6 +57,7 @@ endif(WIN32)
# headers used by multiple packages but still considered private.
# public headers should NOT include these headers.
set(noinst_HEADERS
brlcad_ident.h
brlcad_version.h
)
CMAKEFILES(${noinst_HEADERS})
@@ -79,12 +80,7 @@ CMAKEFILES(${noinst_HEADERS})
#endif(inc_error)
set(include_misc
brlcad_ident.h.in
conf/BrlcadConfig.tmpl
conf/MAJOR
conf/MINOR
conf/PATCH
conf/make.vbs
conf
config_win.h.in
)
CMAKEFILES(${include_misc})
-3
View File
@@ -212,9 +212,6 @@ analyze_find_subtracted(struct bu_ptbl *results, struct rt_wdb *wdbp,
const char *pbrep, struct rt_gen_worker_vars *pbrep_rtvars,
const char *curr_comb, struct bu_ptbl *candidates, void *curr_union_data, int ncpus);
ANALYZE_EXPORT void
analyze_heal_bot(struct rt_bot_internal *bot, double zipper_tol);
__END_DECLS
+3 -4
View File
@@ -44,8 +44,8 @@
/** @file bg.h */
/** @} */
#ifndef BG_H
#define BG_H
#ifndef GM_H
#define GM_H
#include "common.h"
@@ -55,9 +55,8 @@
#include "bg/polygon.h"
#include "bg/tri_ray.h"
#include "bg/tri_tri.h"
#include "bg/trimesh.h"
#endif /* BG_H */
#endif /* GM_H */
/*
* Local Variables:
+1 -4
View File
@@ -1,19 +1,16 @@
set(bg_headers
chull.h
defines.h
chull.h
obr.h
polygon.h
tri_ray.h
tri_tri.h
trimesh.h
)
install(FILES ${bg_headers} DESTINATION ${INCLUDE_DIR}/brlcad/bg)
CMAKEFILES(${bg_headers})
CMAKEFILES(pointgen.h)
# Local Variables:
# tab-width: 8
# mode: cmake
-64
View File
@@ -1,64 +0,0 @@
/* P O I N T G E N . H
* BRL-CAD
*
* Copyright (c) 2004-2016 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this file; see the file named COPYING for more
* information.
*/
/*----------------------------------------------------------------------*/
/* @file pointgen.h */
/** @addtogroup pointgen */
/** @{ */
/**
* @brief Routines for the generation of pseudo-random and quasi-random
* points.
*/
#ifndef BG_POINTGEN_H
#define BG_POINTGEN_H
#include "common.h"
#include "vmath.h"
#include "bg/defines.h"
__BEGIN_DECLS
/**
* @brief
* Generate points on a sphere per Marsaglia (1972).
*
* The return code is the number of points generated.
*
* The user is responsible for selecting the numerical generator used to
* supply pseudo or quasi-random numbers to bg_sph_sample - different
* types of inputs may be needed depending on the application.
*/
BG_EXPORT extern size_t bg_sph_sample(point_t *pnts, size_t cnt, const point_t center, const fastf_t radius, bn_numgen n);
__END_DECLS
#endif /* BG_POINTGEN_H */
/** @} */
/*
* Local Variables:
* mode: C
* tab-width: 8
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
-56
View File
@@ -1,56 +0,0 @@
/* T R I M E S H . H
* BRL-CAD
*
* Copyright (c) 2004-2016 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this file; see the file named COPYING for more
* information.
*/
/*----------------------------------------------------------------------*/
/* @file trimesh.h */
/** @addtogroup trimesh */
/** @{ */
/**
* @brief
* Algorithms related to 3D meshes built from triangles.
*/
#ifndef BG_TRIMESH_H
#define BG_TRIMESH_H
#include "common.h"
#include "vmath.h"
#include "bg/defines.h"
__BEGIN_DECLS
BG_EXPORT extern int bg_trimesh_closed_fan(size_t vcnt, size_t fcnt, fastf_t *v, int *f);
BG_EXPORT extern int bg_trimesh_orientable(size_t vcnt, size_t fcnt, fastf_t *v, int *f);
BG_EXPORT extern int bg_trimesh_solid(size_t vcnt, size_t fcnt, fastf_t *v, int *f, int **bedges);
__END_DECLS
#endif /* BG_TRIMESH_H */
/** @} */
/*
* Local Variables:
* mode: C
* tab-width: 8
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
-2
View File
@@ -32,8 +32,6 @@ install(FILES ${bn_headers} DESTINATION ${INCLUDE_DIR}/brlcad/bn)
CMAKEFILES(${bn_headers})
CMAKEFILES(numgen.h)
# Local Variables:
# tab-width: 8
# mode: cmake
+3 -3
View File
@@ -18,8 +18,8 @@
* information.
*/
#ifndef BN_DVEC_H
#define BN_DVEC_H
#ifndef DVEC_H
#define DVEC_H
#include "common.h"
@@ -207,7 +207,7 @@ extern "C++" {
/** @} */
#endif /* BN_DVEC_H */
#endif /* DVEC_H */
/*
* Local Variables:
-141
View File
@@ -1,141 +0,0 @@
/* N U M G E N . H
* BRL-CAD
*
* Copyright (c) 2016 United States Government as represented by
* the U.S. Army Research Laboratory.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
* version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this file; see the file named COPYING for more
* information.
*/
/*----------------------------------------------------------------------*/
/** @addtogroup bn_rand
*
* @brief
* Routines for generating series of pseudo-random or quasi-random numbers.
*
* @code
* @endcode
*/
/** @{ */
/** @file numgen.h */
#ifndef BN_NUMGEN_H
#define BN_NUMGEN_H
#include "common.h"
#include "bn/defines.h"
__BEGIN_DECLS
/* Most of the following are API design possibilities only - not yet active */
#if 0
/**
* The following container holds all state associated with a particular
* number generator. The details of that state are specific to the
* type of selected generator and are not public, but the container allows
* libbn to avoid using globals to maintain state - instead, each "generator"
* instance has its own state.
*/
typedef struct bn_num_s *bn_numgen;
/**
* The available number generators in libbn.
*/
typedef enum {
BN_NUMGEN_PRAND_TABLE = 0,
BN_NUMGEN_PRAND_MT1337,
BN_NUMGEN_QRAND_SOBOL,
BN_NUMGEN_QRAND_SCRAMBLED_SOBOL,
BN_NUMGEN_QRAND_HALTON,
BN_NUMGEN_NRAND_BOX_MULLER,
BN_NUMGEN_NRAND_RATIO_OF_UNIFORMS,
BN_NUMGEN_NULL
} bn_numgen_t;
/**
* Create an instance of the number generator with the type
* and seed specified by the user. By default, a generator will
* return numbers between 0 and 1 - to adjust the range, use
* bn_numgen_setrange */
BN_EXPORT bn_numgen bn_numgen_create(bn_numgen_t type, int dim, double seed);
/** Returns the type of a bn_numgen instance */
BN_EXPORT bn_numgen_t bn_numgen_type(bn_numgen n);
/**
* Set the range of the numbers to be returned. Return 1 if range
* is valid for the generator, and zero if it is unsupported. */
BN_EXPORT int bn_numgen_setrange(bn_numgen ngen, double lb, double ub);
/**
* Some generators only support a finite number of unique returns before
* repeating. By default, bn_numgen generators are periodic - they will start
* over at the beginning.
*
* If this function is called with flag == 0, the generator will refuse to
* repeat itself and not assign any numbers once it reaches its periodic limit.
* If flag is set to 1, it will restore a generator to its default behavior.
*
* If passed -1 in the flag var, the return code will report the existing
* periodic flag state but will not change it in the generator.
*/
BN_EXPORT int bn_numgen_periodic(bn_numgen ngen, int flag);
/**
* Destroy the specified bn_numgen instance */
BN_EXPORT void bn_numgen_destroy(bn_numgen n);
/**
* Get the next cnt numbers in the generator's sequence. See the documentation
* for each individual generator for the particulars of what output will be
* returned in the array. The user is responsible for allocating an array
* large enough to hold the requested output.
*
* When in non-periodic mode, an exhausted generator will report zero numbers
* assigned to output arrays and will not alter the array contents.
*
* Return codes: >= 0 number of numbers assigned.
* < 0 error.
*/
BN_EXPORT int bn_numgen_next_ints(int *l, size_t cnt, bn_numgen ngen);
BN_EXPORT int bn_numgen_next_ulongs(unsigned long *l, size_t cnt, bn_numgen ngen);
BN_EXPORT int bn_numgen_next_fastf_t(fastf_t *l, size_t cnt, bn_numgen ngen);
BN_EXPORT int bn_numgen_next_doubles(double *l, size_t cnt, bn_numgen ngen);
#endif
/**
* @brief
* Generate points on a unit sphere per Marsaglia (1972):
* https://projecteuclid.org/euclid.aoms/1177692644
*
* The user is responsible for selecting the numerical generator used to
* supply pseudo or quasi-random numbers to bg_sph_sample - different
* types of inputs may be needed depending on the application.
*/
BN_EXPORT extern void bn_sph_pnts(point_t *pnts, size_t cnt, bn_numgen n);
__END_DECLS
#endif /* BN_RAND_H */
/** @} */
/*
* Local Variables:
* mode: C
* tab-width: 8
* indent-tabs-mode: t
* c-file-style: "stroustrup"
* End:
* ex: shiftwidth=4 tabstop=8
*/
+3 -3
View File
@@ -30,8 +30,8 @@
/** @{ */
/** @file plot3.h */
#ifndef BN_PLOT3_H
#define BN_PLOT3_H
#ifndef PLOT3_H
#define PLOT3_H
#include "common.h"
@@ -484,7 +484,7 @@ BN_EXPORT extern void BU_FORTRAN(f3vect, F3VECT)(FILE **fp,
__END_DECLS
#endif /* BN_PLOT3_H */
#endif /* PLOT3_H */
/** @} */
/*
+1 -1
View File
@@ -145,7 +145,7 @@ BN_EXPORT extern void quat_sberp(quat_t qout,
* smallest rotation from q2 (of the two versions of q1 which
* produce the same orientation).
*
* Note that smallest euclidean distance implies smallest great
* Note that smallest euclidian distance implies smallest great
* circle distance as well (since surface is convex).
*/
BN_EXPORT extern void quat_make_nearest(quat_t q1,
-12
View File
@@ -51,7 +51,6 @@
#include "common.h"
#include "bn/defines.h"
#include "vmath.h"
__BEGIN_DECLS
@@ -141,17 +140,6 @@ BN_EXPORT extern const float bn_sin_table[BN_SINTABSIZE];
*/
BN_EXPORT extern void bn_mathtab_constant(void);
/**
* @brief
* Generate a sample point on a sphere per Marsaglia (1972).
*
* Note that bn_sph_sample and its internal routines do not initialize the
* randmt seed - the user should call bn_randmt_seed in their code if a
* variable seed is required.
*/
BN_EXPORT extern void bn_rand_sph_sample(point_t sample, const point_t center, const fastf_t radius);
__END_DECLS
#endif /* BN_RAND_H */
+3 -3
View File
@@ -26,8 +26,8 @@
/** @{ */
/** @file spm.h */
#ifndef BN_SPM_H
#define BN_SPM_H
#ifndef SPM_H
#define SPM_H
#include "common.h"
#include "bn/defines.h"
@@ -135,7 +135,7 @@ BN_EXPORT extern void bn_spm_dump(bn_spm_map_t *mp, int verbose);
__END_DECLS
#endif /* BN_SPM_H */
#endif /* SPM_H */
/** @} */
/*
+24 -22
View File
@@ -19,7 +19,7 @@
*/
/*----------------------------------------------------------------------*/
/** @addtogroup bn_vert_tree
/** @addtogroup bn_vtree
*
* @brief
* Vertex tree support
@@ -47,7 +47,7 @@ __BEGIN_DECLS
* packaging structure
* holds all the required info for a single vertex tree
*/
struct bn_vert_tree {
struct vert_root {
uint32_t magic;
int tree_type; /**< @brief vertices or vertices with normals */
union vert_tree *the_tree; /**< @brief the actual vertex tree */
@@ -56,10 +56,12 @@ struct bn_vert_tree {
size_t max_vert; /**< @brief the current maximum capacity of the array */
};
#define BN_VERT_TREE_TYPE_VERTS 1
#define BN_VERT_TREE_TYPE_VERTS_AND_NORMS 2
#define TREE_TYPE_VERTS 1
#define TREE_TYPE_VERTS_AND_NORMS 2
#define BN_CK_VERT_TREE(_p) BU_CKMAG(_p, BN_VERT_TREE_MAGIC, "vert_tree")
#define VERT_BLOCK 512 /**< @brief number of vertices to malloc per call when building the array */
#define BN_CK_VERT_TREE(_p) BU_CKMAG(_p, VERT_TREE_MAGIC, "vert_tree")
/**
@@ -68,7 +70,7 @@ struct bn_vert_tree {
*
* Possible refinements include specifying an initial size
*/
BN_EXPORT extern struct bn_vert_tree *bn_vert_tree_create(void);
BN_EXPORT extern struct vert_root *create_vert_tree(void);
/**
*@brief
@@ -76,13 +78,13 @@ BN_EXPORT extern struct bn_vert_tree *bn_vert_tree_create(void);
*
* Possible refinements include specifying an initial size
*/
BN_EXPORT extern struct bn_vert_tree *bn_vert_tree_create_w_norms(void);
BN_EXPORT extern struct vert_root *create_vert_tree_w_norms(void);
/**
*@brief
* Routine to free a vertex tree and all associated dynamic memory
*/
BN_EXPORT extern void bn_vert_tree_destroy(struct bn_vert_tree *tree);
BN_EXPORT extern void free_vert_tree(struct vert_root *tree_root);
/**
*@brief
@@ -90,11 +92,11 @@ BN_EXPORT extern void bn_vert_tree_destroy(struct bn_vert_tree *tree);
* The array is re-alloc'd if needed.
* Returns index into the array of vertices where this vertex is stored
*/
BN_EXPORT extern size_t bn_vert_tree_add(struct bn_vert_tree *tree,
double x,
double y,
double z,
fastf_t local_tol_sq);
BN_EXPORT extern size_t Add_vert(double x,
double y,
double z,
struct vert_root *tree_root,
fastf_t local_tol_sq);
/**
*@brief
@@ -102,21 +104,21 @@ BN_EXPORT extern size_t bn_vert_tree_add(struct bn_vert_tree *tree,
* The array is re-alloc'd if needed.
* Returns index into the array of vertices where this vertex and normal is stored
*/
BN_EXPORT extern size_t bn_vert_tree_add_w_norm(struct bn_vert_tree *tree,
double x,
double y,
double z,
double nx,
double ny,
double nz,
fastf_t local_tol_sq);
BN_EXPORT extern size_t Add_vert_and_norm(double x,
double y,
double z,
double nx,
double ny,
double nz,
struct vert_root *tree_root,
fastf_t local_tol_sq);
/**
*@brief
* Routine to free the binary search tree and reset the current number of vertices.
* The vertex array is left untouched, for re-use later.
*/
BN_EXPORT extern void bn_vert_tree_clean(struct bn_vert_tree *tree);
BN_EXPORT extern void clean_vert_tree(struct vert_root *tree_root);
__END_DECLS
+28 -69
View File
@@ -22,7 +22,6 @@
#define BN_VLIST_H
#include "common.h"
#include <stdio.h> /* for FILE */
#include "vmath.h"
#include "bu/magic.h"
#include "bu/list.h"
@@ -75,24 +74,23 @@ struct bn_vlist {
/* should these be enum? -Erik */
/* Values for cmd[] */
#define BN_VLIST_LINE_MOVE 0 /**< @brief specify new line */
#define BN_VLIST_LINE_DRAW 1 /**< @brief subsequent line vertex */
#define BN_VLIST_POLY_START 2 /**< @brief pt[] has surface normal */
#define BN_VLIST_POLY_MOVE 3 /**< @brief move to first poly vertex */
#define BN_VLIST_POLY_DRAW 4 /**< @brief subsequent poly vertex */
#define BN_VLIST_POLY_END 5 /**< @brief last vert (repeats 1st), draw poly */
#define BN_VLIST_POLY_VERTNORM 6 /**< @brief per-vertex normal, for interpolation */
#define BN_VLIST_TRI_START 7 /**< @brief pt[] has surface normal */
#define BN_VLIST_TRI_MOVE 8 /**< @brief move to first triangle vertex */
#define BN_VLIST_TRI_DRAW 9 /**< @brief subsequent triangle vertex */
#define BN_VLIST_TRI_END 10 /**< @brief last vert (repeats 1st), draw poly */
#define BN_VLIST_TRI_VERTNORM 11 /**< @brief per-vertex normal, for interpolation */
#define BN_VLIST_POINT_DRAW 12 /**< @brief Draw a single point */
#define BN_VLIST_POINT_SIZE 13 /**< @brief specify point pixel size */
#define BN_VLIST_LINE_WIDTH 14 /**< @brief specify line pixel width */
#define BN_VLIST_DISPLAY_MAT 15 /**< @brief specify the model matrix */
#define BN_VLIST_MODEL_MAT 16 /**< @brief specify the display matrix */
#define BN_VLIST_CMD_MAX 16 /**< @brief Max command number */
#define BN_VLIST_LINE_MOVE 0
#define BN_VLIST_LINE_DRAW 1
#define BN_VLIST_POLY_START 2 /**< @brief pt[] has surface normal */
#define BN_VLIST_POLY_MOVE 3 /**< @brief move to first poly vertex */
#define BN_VLIST_POLY_DRAW 4 /**< @brief subsequent poly vertex */
#define BN_VLIST_POLY_END 5 /**< @brief last vert (repeats 1st), draw poly */
#define BN_VLIST_POLY_VERTNORM 6 /**< @brief per-vertex normal, for interpolation */
#define BN_VLIST_TRI_START 7 /**< @brief pt[] has surface normal */
#define BN_VLIST_TRI_MOVE 8 /**< @brief move to first triangle vertex */
#define BN_VLIST_TRI_DRAW 9 /**< @brief subsequent triangle vertex */
#define BN_VLIST_TRI_END 10 /**< @brief last vert (repeats 1st), draw poly */
#define BN_VLIST_TRI_VERTNORM 11 /**< @brief per-vertex normal, for interpolation */
#define BN_VLIST_POINT_DRAW 12 /**< @brief Draw a single point */
#define BN_VLIST_POINT_SIZE 13 /**< @brief specify point pixel size */
#define BN_VLIST_LINE_WIDTH 14 /**< @brief specify line pixel width */
#define BN_VLIST_CMD_MAX 14 /**< @brief Max command number */
/**
* Applications that are going to use BN_ADD_VLIST and BN_GET_VLIST
* are required to execute this macro once, on their _free_hd:
@@ -129,31 +127,6 @@ struct bn_vlist {
_vp->cmd[_vp->nused++] = (draw); \
}
/** Change the transformation matrix to display */
#define BN_VLIST_SET_DISP_MAT(_free_hd, _dest_hd, _ref_pt) { \
struct bn_vlist *_vp; \
BU_CK_LIST_HEAD(_dest_hd); \
_vp = BU_LIST_LAST(bn_vlist, (_dest_hd)); \
if (BU_LIST_IS_HEAD(_vp, (_dest_hd)) || _vp->nused >= BN_VLIST_CHUNK) { \
BN_GET_VLIST(_free_hd, _vp); \
BU_LIST_INSERT((_dest_hd), &(_vp->l)); \
} \
VMOVE(_vp->pt[_vp->nused], (_ref_pt)); \
_vp->cmd[_vp->nused++] = BN_VLIST_DISPLAY_MAT; \
}
/** Change the transformation matrix to model */
#define BN_VLIST_SET_MODEL_MAT(_free_hd, _dest_hd) { \
struct bn_vlist *_vp; \
BU_CK_LIST_HEAD(_dest_hd); \
_vp = BU_LIST_LAST(bn_vlist, (_dest_hd)); \
if (BU_LIST_IS_HEAD(_vp, (_dest_hd)) || _vp->nused >= BN_VLIST_CHUNK) { \
BN_GET_VLIST(_free_hd, _vp); \
BU_LIST_INSERT((_dest_hd), &(_vp->l)); \
} \
_vp->cmd[_vp->nused++] = BN_VLIST_MODEL_MAT; \
}
/** Set a point size to apply to the vlist elements that follow. */
#define BN_VLIST_SET_POINT_SIZE(_free_hd, _dest_hd, _size) { \
struct bn_vlist *_vp; \
@@ -265,8 +238,8 @@ BN_EXPORT extern int bn_ck_vlist(const struct bu_list *vhead);
* densely packed than the source.
*/
BN_EXPORT extern void bn_vlist_copy(struct bu_list *vlists,
struct bu_list *dest,
const struct bu_list *src);
struct bu_list *dest,
const struct bu_list *src);
/**
@@ -277,8 +250,8 @@ BN_EXPORT extern void bn_vlist_copy(struct bu_list *vlists,
* length are available conveniently.
*/
BN_EXPORT extern void bn_vlist_export(struct bu_vls *vls,
struct bu_list *hp,
const char *name);
struct bu_list *hp,
const char *name);
/**
@@ -286,39 +259,25 @@ BN_EXPORT extern void bn_vlist_export(struct bu_vls *vls,
* vls_vlist() and received from another machine, into a vlist chain.
*/
BN_EXPORT extern void bn_vlist_import(struct bu_list *vlists,
struct bu_list *hp,
struct bu_vls *namevls,
const unsigned char *buf);
struct bu_list *hp,
struct bu_vls *namevls,
const unsigned char *buf);
BN_EXPORT extern void bn_vlist_cleanup(struct bu_list *hd);
BN_EXPORT extern struct bn_vlblock *bn_vlblock_init(struct bu_list *free_vlist_hd, /* where to get/put free vlists */
int max_ent);
int max_ent);
BN_EXPORT extern void bn_vlblock_free(struct bn_vlblock *vbp);
BN_EXPORT extern struct bu_list *bn_vlblock_find(struct bn_vlblock *vbp,
int r,
int g,
int b);
int r,
int g,
int b);
BN_EXPORT void bn_vlist_rpp(struct bu_list *vlists, struct bu_list *hd, const point_t minn, const point_t maxx);
/**
* Output a bn_vlblock object in extended UNIX-plot format, including
* color.
*/
BN_EXPORT extern void bn_plot_vlblock(FILE *fp,
const struct bn_vlblock *vbp);
/**
* Output a vlist as an extended 3-D floating point UNIX-Plot file.
* You provide the file. Uses libplot3 routines to create the
* UNIX-Plot output.
*/
BN_EXPORT extern void bn_vlist_to_uplot(FILE *fp,
const struct bu_list *vhead);
/** @} */
+137 -47
View File
@@ -28,8 +28,11 @@
#define BREP_BBNODE_H
#include "common.h"
#include "brep.h"
#include "brep/defines.h"
#include "brep/ray.h"
#include "brep/brnode.h"
#include "brep/curvetree.h"
#include "brep/util.h"
/** @{ */
/** @file brep/bbnode.h */
@@ -62,22 +65,18 @@ extern "C++" {
/**
* Bounding Box Hierarchy Node
*/
class BREP_EXPORT BBNode : public PooledObject<BBNode> {
class BREP_EXPORT BBNode {
public:
explicit BBNode(const ON_BoundingBox &node, const CurveTree *ct = NULL);
BBNode(const CurveTree *ct,
const ON_BoundingBox &node,
const ON_BrepFace *face,
const ON_Interval &u,
const ON_Interval &v,
bool checkTrim,
bool trimmed);
~BBNode();
BBNode(Deserializer &deserieralizer, const CurveTree &ctree);
void serialize(Serializer &serializer) const;
const ON_BrepFace &get_face() const;
/** Test if this node is a leaf node in the hierarchy */
bool isLeaf() const;
@@ -123,12 +122,14 @@ extern "C++" {
void BuildBBox();
bool prepTrims();
const std::vector<BBNode *> &get_children() const;
/** List of all children of a given node */
std::vector<BBNode *> * const m_children;
/** Bounding Box */
ON_BoundingBox m_node;
/** Surface Information */
const ON_BrepFace *m_face;
ON_Interval m_u;
ON_Interval m_v;
@@ -144,15 +145,12 @@ extern "C++" {
/* Normal at the m_estimate point */
ON_3dVector m_normal;
/** Curve Tree associated with the parent Surface Tree */
const CurveTree * const m_ctree;
private:
BBNode(const BBNode &source);
BBNode &operator=(const BBNode &source);
void removeChild(BBNode *child);
bool intersectedBy(const ON_Ray &ray, double *tnear = NULL, double *tfar = NULL) const;
/** Report if a given uv point is within the uv boundaries defined
@@ -160,22 +158,76 @@ extern "C++" {
*/
bool containsUV(const ON_2dPoint &uv) const;
bool doTrimming() const;
void getTrimsAbove(const ON_2dPoint &uv, std::list<const BRNode *> &out_leaves) const;
const BBNode *closer(const ON_3dPoint &pt, const BBNode *left, const BBNode *right) const;
struct Stl : public PooledObject<Stl> {
Stl() : m_children(), m_trims_above() {}
/** Curve Tree associated with the parent Surface Tree */
const CurveTree * const m_ctree;
std::vector<BBNode *> m_children;
std::list<const BRNode *> m_trims_above;
} * const m_stl;
std::list<const BRNode *> * const m_trims_above;
};
inline
BBNode::BBNode(const ON_BoundingBox &node, const CurveTree *ct) :
m_children(new std::vector<BBNode *>),
m_node(node),
m_face(NULL),
m_u(),
m_v(),
m_checkTrim(true),
m_trimmed(false),
m_estimate(),
m_normal(),
m_ctree(ct),
m_trims_above(new std::list<const BRNode *>)
{
for (int i = 0; i < 3; i++) {
double d = m_node.m_max[i] - m_node.m_min[i];
if (ON_NearZero(d, ON_ZERO_TOLERANCE)) {
m_node.m_min[i] -= 0.001;
m_node.m_max[i] += 0.001;
}
}
}
inline
_BU_ATTR_ALWAYS_INLINE
BBNode::BBNode(
const CurveTree *ct,
const ON_BoundingBox &node,
const ON_BrepFace *face,
const ON_Interval &u,
const ON_Interval &v,
bool checkTrim,
bool trimmed):
m_children(new std::vector<BBNode *>),
m_node(node),
m_face(face),
m_u(u),
m_v(v),
m_checkTrim(checkTrim),
m_trimmed(trimmed),
m_estimate(),
m_normal(),
m_ctree(ct),
m_trims_above(new std::list<const BRNode *>)
{
for (int i = 0; i < 3; i++) {
double d = m_node.m_max[i] - m_node.m_min[i];
if (ON_NearZero(d, ON_ZERO_TOLERANCE)) {
m_node.m_min[i] -= 0.001;
m_node.m_max[i] += 0.001;
}
}
}
inline void
BBNode::addChild(BBNode *child)
{
if (LIKELY(child != NULL)) {
m_stl->m_children.push_back(child);
m_children->push_back(child);
}
}
@@ -183,55 +235,93 @@ extern "C++" {
BBNode::removeChild(BBNode *child)
{
std::vector<BBNode *>::iterator i;
for (i = m_stl->m_children.begin(); i != m_stl->m_children.end();) {
for (i = m_children->begin(); i != m_children->end();) {
if (*i == child) {
delete *i;
i = m_stl->m_children.erase(i);
i = m_children->erase(i);
} else {
++i;
}
}
}
inline const ON_BrepFace &
BBNode::get_face() const
{
return *m_ctree->m_face;
}
inline const std::vector<BBNode *> &
BBNode::get_children() const
{
return m_stl->m_children;
}
inline bool
BBNode::isLeaf() const
{
return m_stl->m_children.empty();
if (m_children->empty()) {
return true;
}
return false;
}
inline void
BBNode::GetBBox(float *min, float *max) const
{
min[0] = (float)m_node.m_min.x;
min[1] = (float)m_node.m_min.y;
min[2] = (float)m_node.m_min.z;
max[0] = (float)m_node.m_max.x;
max[1] = (float)m_node.m_max.y;
max[2] = (float)m_node.m_max.z;
min[0] = m_node.m_min[0];
min[1] = m_node.m_min[1];
min[2] = m_node.m_min[2];
max[0] = m_node.m_max[0];
max[1] = m_node.m_max[1];
max[2] = m_node.m_max[2];
}
inline void
BBNode::GetBBox(double *min, double *max) const
{
min[0] = m_node.m_min.x;
min[1] = m_node.m_min.y;
min[2] = m_node.m_min.z;
max[0] = m_node.m_max.x;
max[1] = m_node.m_max.y;
max[2] = m_node.m_max.z;
min[0] = m_node.m_min[0];
min[1] = m_node.m_min[1];
min[2] = m_node.m_min[2];
max[0] = m_node.m_max[0];
max[1] = m_node.m_max[1];
max[2] = m_node.m_max[2];
}
inline bool
BBNode::intersectedBy(const ON_Ray &ray, double *tnear_opt /* = NULL */, double *tfar_opt /* = NULL */) const
{
double tnear = -DBL_MAX;
double tfar = DBL_MAX;
bool untrimmedresult = true;
for (int i = 0; i < 3; i++) {
if (UNLIKELY(ON_NearZero(ray.m_dir[i]))) {
if (ray.m_origin[i] < m_node.m_min[i] || ray.m_origin[i] > m_node.m_max[i]) {
untrimmedresult = false;
}
} else {
double t1 = (m_node.m_min[i] - ray.m_origin[i]) / ray.m_dir[i];
double t2 = (m_node.m_max[i] - ray.m_origin[i]) / ray.m_dir[i];
if (t1 > t2) {
double tmp = t1; /* swap */
t1 = t2;
t2 = tmp;
}
V_MAX(tnear, t1);
V_MIN(tfar, t2);
if (tnear > tfar) { /* box is missed */
untrimmedresult = false;
}
/* go ahead and solve hits behind us
if (tfar < 0) untrimmedresult = false;
*/
}
}
if (LIKELY(tnear_opt != NULL && tfar_opt != NULL)) {
*tnear_opt = tnear;
*tfar_opt = tfar;
}
if (isLeaf()) {
return !m_trimmed && untrimmedresult;
} else {
return untrimmedresult;
}
}
inline bool
BBNode::doTrimming() const
{
return m_checkTrim;
}
+150 -28
View File
@@ -17,8 +17,7 @@
* License along with this file; see the file named COPYING for more
* information.
*/
/** @{ */
/** @file brep/brnode.h */
/** @addtogroup brep_brnode
*
* @brief
@@ -29,32 +28,33 @@
#define BREP_BRNODE_H
#include "common.h"
#ifdef __cplusplus
extern "C++" {
/* @cond */
# include <vector>
# include <list>
#include <vector>
#include <list>
/* @endcond */
}
#endif
#include "brep/defines.h"
#include "brep.h"
/** @{ */
/** @file brep/brnode.h */
#ifdef __cplusplus
__BEGIN_DECLS
#ifdef __cplusplus
extern "C++" {
namespace brlcad {
/**
* Bounding Rectangle Hierarchy
*/
class BREP_EXPORT BRNode : public PooledObject<BRNode> {
class BREP_EXPORT BRNode {
public:
explicit BRNode(const ON_BoundingBox &node);
BRNode(const ON_Curve *curve,
int trim_index,
int adj_face_index,
const ON_BoundingBox &node,
const ON_BrepFace *face,
@@ -64,9 +64,6 @@ extern "C++" {
bool trimmed);
~BRNode();
BRNode(Deserializer &deserializer, const ON_Brep &brep);
void serialize(Serializer &serializer) const;
/** Node management functions */
void addChild(BRNode *child);
@@ -110,7 +107,7 @@ extern "C++" {
bool m_XIncreasing;
bool m_Horizontal;
bool m_Vertical;
bool m_innerTrim;
const bool m_innerTrim;
private:
BRNode(const BRNode &source);
@@ -121,34 +118,152 @@ extern "C++" {
/** Test if this node is a leaf node (i.e. m_children is empty) */
bool isLeaf() const;
bool doTrimming() const;
fastf_t getLinearEstimateOfV(fastf_t u) const;
const BRNode *closer(const ON_3dPoint &pt, const BRNode *left, const BRNode *right) const;
struct Stl : public PooledObject<Stl> {
Stl() : m_children() {}
/** List of all children of a given node */
std::vector<const BRNode *> * const m_children;
std::vector<const BRNode *> m_children;
} * const m_stl;
const ON_BrepFace *m_face;
const ON_BrepFace * const m_face;
ON_Interval m_u;
const ON_Curve *m_trim;
int m_trim_index;
const ON_Curve * const m_trim;
ON_Interval m_t;
bool m_checkTrim;
bool m_trimmed;
ON_3dPoint m_estimate;
const bool m_checkTrim;
const bool m_trimmed;
const ON_3dPoint m_estimate;
fastf_t m_slope;
fastf_t m_bb_diag;
ON_3dPoint m_start;
ON_3dPoint m_end;
};
inline
_BU_ATTR_ALWAYS_INLINE
BRNode::BRNode(
const ON_Curve *curve,
int adj_face_index,
const ON_BoundingBox &node,
const ON_BrepFace *face,
const ON_Interval &t,
bool innerTrim,
bool checkTrim,
bool trimmed) :
m_node(node),
m_v(),
m_adj_face_index(adj_face_index),
m_XIncreasing(false),
m_Horizontal(false),
m_Vertical(false),
m_innerTrim(innerTrim),
m_children(new std::vector<const BRNode *>),
m_face(face),
m_u(),
m_trim(curve),
m_t(t),
m_checkTrim(checkTrim),
m_trimmed(trimmed),
m_estimate(),
m_slope(0.0),
m_bb_diag(0.0),
m_start(curve->PointAt(m_t[0])),
m_end(curve->PointAt(m_t[1]))
{
/* check for vertical segments they can be removed from trims
* above (can't tell direction and don't need
*/
m_Horizontal = false;
m_Vertical = false;
/*
* should be okay since we split on Horz/Vert tangents
*/
if (m_end[X] < m_start[X]) {
m_u[0] = m_end[X];
m_u[1] = m_start[X];
} else {
m_u[0] = m_start[X];
m_u[1] = m_end[X];
}
if (m_end[Y] < m_start[Y]) {
m_v[0] = m_end[Y];
m_v[1] = m_start[Y];
} else {
m_v[0] = m_start[Y];
m_v[1] = m_end[Y];
}
if (NEAR_EQUAL(m_end[X], m_start[X], 0.000001)) {
m_Vertical = true;
if (m_innerTrim) {
m_XIncreasing = false;
} else {
m_XIncreasing = true;
}
} else if (NEAR_EQUAL(m_end[Y], m_start[Y], 0.000001)) {
m_Horizontal = true;
if ((m_end[X] - m_start[X]) > 0.0) {
m_XIncreasing = true;
} else {
m_XIncreasing = false;
}
m_slope = 0.0;
} else {
if ((m_end[X] - m_start[X]) > 0.0) {
m_XIncreasing = true;
} else {
m_XIncreasing = false;
}
m_slope = (m_end[Y] - m_start[Y]) / (m_end[X] - m_start[X]);
}
m_bb_diag = DIST_PT_PT(m_start, m_end);
}
inline
_BU_ATTR_ALWAYS_INLINE
BRNode::BRNode(const ON_BoundingBox &node) :
m_node(node),
m_v(),
m_adj_face_index(-99),
m_XIncreasing(false),
m_Horizontal(false),
m_Vertical(false),
m_innerTrim(false),
m_children(new std::vector<const BRNode *>),
m_face(NULL),
m_u(),
m_trim(NULL),
m_t(),
m_checkTrim(true),
m_trimmed(false),
m_estimate(),
m_slope(0.0),
m_bb_diag(0.0),
m_start(ON_3dPoint::UnsetPoint),
m_end(ON_3dPoint::UnsetPoint)
{
for (int i = 0; i < 3; i++) {
double d = m_node.m_max[i] - m_node.m_min[i];
if (NEAR_ZERO(d, ON_ZERO_TOLERANCE)) {
m_node.m_min[i] -= 0.001;
m_node.m_max[i] += 0.001;
}
}
m_start = m_node.m_min;
m_end = m_node.m_max;
}
inline void
BRNode::addChild(BRNode *child)
{
if (LIKELY(child != NULL)) {
m_stl->m_children.push_back(child);
m_children->push_back(child);
}
}
@@ -156,10 +271,10 @@ extern "C++" {
BRNode::removeChild(BRNode *child)
{
std::vector<const BRNode *>::iterator i;
for (i = m_stl->m_children.begin(); i != m_stl->m_children.end();) {
for (i = m_children->begin(); i != m_children->end();) {
if (*i == child) {
delete *i;
i = m_stl->m_children.erase(i);
i = m_children->erase(i);
} else {
++i;
}
@@ -169,13 +284,14 @@ extern "C++" {
inline bool
BRNode::isLeaf() const
{
if (m_stl->m_children.empty()) {
if (m_children->empty()) {
return true;
}
return false;
}
inline void
_BU_ATTR_ALWAYS_INLINE
BRNode::GetBBox(fastf_t *min, fastf_t *max) const
{
VSETALL(min, INFINITY);
@@ -188,6 +304,12 @@ extern "C++" {
}
}
inline bool
BRNode::doTrimming() const
{
return m_checkTrim;
}
extern bool sortX(const BRNode *first, const BRNode *second);
extern bool sortY(const BRNode *first, const BRNode *second);

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