Revision: 78102
          http://sourceforge.net/p/brlcad/code/78102
Author:   starseeker
Date:     2021-01-21 22:50:53 +0000 (Thu, 21 Jan 2021)
Log Message:
-----------
Lay out an example that requires parent comb redefinition.  Still not sure how 
to implement this yet, but there are clearly cases where it can be necessary.

Modified Paths:
--------------
    brlcad/trunk/doc/docbook/system/mann/npush.xml

Modified: brlcad/trunk/doc/docbook/system/mann/npush.xml
===================================================================
--- brlcad/trunk/doc/docbook/system/mann/npush.xml      2021-01-21 21:47:45 UTC 
(rev 78101)
+++ brlcad/trunk/doc/docbook/system/mann/npush.xml      2021-01-21 22:50:53 UTC 
(rev 78102)
@@ -275,9 +275,99 @@
   <para>
     Note that neither option alters the parameters of primitive shapes.
   </para>
+
+  <para>
+    Worse still is a case where multiple copies of identical objects are 
referenced at multiple levels.
+    Consider the following example:
+  </para>
+  <literallayout>
+sph_016/
+       u [M1] sph16a/R
+               u [M2] sph16_1/
+                       u sph16.c/
+                               u sph16.s
+               u sph16_1/
+                       u sph16.c/
+                               u sph16.s
+       u [M3] sph16a/R
+               u [M4] sph16_1/
+                       u sph16.c/
+                               u sph16.s
+               u sph16_1/
+                       u sph16.c/
+                               u sph16.s
+  </literallayout>
+  <para>
+    If we push to depth 3, we end up with four different versions of the 
sph16.c tree: 
+  </para>
+  <literallayout>
+sph_016/
+       u sph16a/R
+               u sph16_1/
+                       u [M12] sph16.c/
+                               u sph16.s
+               u sph16_1/
+                       u [M1] sph16.c/
+                               u sph16.s
+       u sph16a/R
+               u sph16_1/
+                       u [M34] sph16.c/
+                               u sph16.s
+               u sph16_1/
+                       u [M3] sph16.c/
+                               u sph16.s
+  </literallayout>
+  <para>
+    The first stage of the answer is to create three new combinations and 
redefine the sph16a tree:
+  </para>
+  <literallayout>
+sph_016/
+       u sph16a/R
+               u sph16_1_01/
+                       u [M12] sph16.c/
+                               u sph16.s
+               u sph16_1/
+                       u [M1] sph16.c/
+                               u sph16.s
+       u sph16a/R
+               u sph16_1_02/
+                       u [M34] sph16.c/
+                               u sph16.s
+               u sph16_1_03/
+                       u [M3] sph16.c/
+                               u sph16.s
+  </literallayout>
+  <para>
+    That addresses sph16_1, but the tree updates to sph16a created a new 
problem:   now we have
+    two different versions of the sph16a tree.  To resolve that problem, we 
must create a new
+    comb to replace one of the conflicting sph16a instances and redefine the 
sph_016 tree:
+  </para>
+  <literallayout>
+sph_016/
+       u sph16a/R
+               u sph16_1_01/
+                       u [M12] sph16.c/
+                               u sph16.s
+               u sph16_1/
+                       u [M1] sph16.c/
+                               u sph16.s
+       u sph16a_01/R
+               u sph16_1_02/
+                       u [M34] sph16.c/
+                               u sph16.s
+               u sph16_1_03/
+                       u [M3] sph16.c/
+                               u sph16.s
+  </literallayout>
+  <para>
+    Unlike sph16a and sph16_1, sph_016 has not seen any changes to its 
volumetric definition.  sph_016
+    is the "top level" object specified for this push, and as such constitutes 
a reliable termination point for
+    any need to propagate tree changes.  Even if any combs elsewhere in the 
database reference sph_016,
+    they will not see any volumetric changes as a consequence of the operation 
and do not need to redefine
+    their trees to preserve original sph_016 trees for external use in copies 
of sph_016.
+  </para>
+  </refsection>
   
-  </refsection>
- 
   <refsection xml:id="search_options"><title>OPTIONS</title>
 
     <variablelist remap="TP">

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to