# [brlcad-commits] SF.net SVN: brlcad:[68869] brlcad/branches/brep-debug/doc/docbook/system/ implementation/en/bool_eval_development.xml

```Revision: 68869
http://sourceforge.net/p/brlcad/code/68869
Author:   brlcad
Date:     2016-09-20 22:38:27 +0000 (Tue, 20 Sep 2016)
Log Message:
-----------
include a high-level introduction to the overall approach being taken which
affords an opportunity to introduce opennurbs, libbrep, and a few other details.```
```
Modified Paths:
--------------

brlcad/branches/brep-debug/doc/docbook/system/implementation/en/bool_eval_development.xml

Modified:
brlcad/branches/brep-debug/doc/docbook/system/implementation/en/bool_eval_development.xml
===================================================================
---
brlcad/branches/brep-debug/doc/docbook/system/implementation/en/bool_eval_development.xml
2016-09-20 21:27:16 UTC (rev 68868)
+++
brlcad/branches/brep-debug/doc/docbook/system/implementation/en/bool_eval_development.xml
2016-09-20 22:38:27 UTC (rev 68869)
@@ -143,9 +143,40 @@
</caption>
</figure>
<section>
-      <title>Major Algorithms</title>
+      <title>Technical Approach</title>
<section>
<para>
+          The technical approach used for evaluating Boolean
+          operations on NURBS entities involves calculating geometric
+          intersections, trimming surfaces accordingly, and stitching
+          together a resulting object.  Boundary representation (BREP)
+          NURBS objects are composed of faces, edges, and vertices;
+          and these topologically describe how surfaces, curves, and
+          points are joined together to represent geometry.  The
+          geometry is used to find intersections.  The topology is
+          used in the application of Boolean logic.  This is
+          oversimplified as there are also trimming curves, loops,
+          orientations, and other details involved, but this is
+          nonetheless a useful foundation for understanding the basic
+          approach employed.
+        </para>
+        <para>
+          BRL-CAD heavily integrates and extends the OpenNURBS Toolkit
+          by Robert McNeel &amp; Associates, developers of the
+          proprietary Rhinoceros freeform NURBS modeling software.
+          BRL-CAD heavily uses OpenNURBS for trimmed NURBS geometry
+          representation (both in-memory and on-disk) and implements
+          functionality not included with OpenNURBS such as ray
+          tracing and Boolean evaluation.  <footnote><para>While their
+          license is permissive, the OpenNURBS Toolkit is only
+          intended for and McNeel only supports it being using for
+          reading and writing 3DM files.</para></footnote> Additional
+          functionality implemented for BRL-CAD is primarily contained
+          within the boundary representation and ray trace libraries
+          (LIBBREP and LIBRT).
+        </para>
+
+        <para>
The overall NURBS Boolean Evaluation algorithm is based on
the paper <emphasis>BOOLE: A System to Compute Boolean
Combinations of Sculptured Solids.</emphasis> (S. Krishnan
@@ -157,10 +188,10 @@
The NURBS surface-surface intersection algorithm is based on
the "NURBS Intersection Curve Evaluation" section of the
paper <emphasis>Performing Efficient NURBS Modeling
-          Operations on the GPU</emphasis> (A. Krishnamurthy et
-          al., 2008). A detailed outline of the algorithm, as
-          implemented, appears in the main implementation file for the
-          NURBS Surface-Surface intersection algorithm,
+          Operations on the GPU</emphasis> (A. Krishnamurthy et al.,
+          2008). A detailed outline of the algorithm, as implemented,
+          appears in the main implementation file for the NURBS
+          Surface-Surface intersection algorithm,
<filename>src/libbrep/intersection.cpp</filename>.
</para>
</section>

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

------------------------------------------------------------------------------
_______________________________________________
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits
```