Revision: 64361
          http://sourceforge.net/p/brlcad/code/64361
Author:   n_reed
Date:     2015-03-10 22:19:54 +0000 (Tue, 10 Mar 2015)
Log Message:
-----------
sync from trunk

Modified Paths:
--------------
    brlcad/branches/brep-debug/AUTHORS
    brlcad/branches/brep-debug/NEWS
    brlcad/branches/brep-debug/TODO
    brlcad/branches/brep-debug/doc/docbook/articles/en/oed.xml
    brlcad/branches/brep-debug/doc/docbook/articles/en/tire.xml
    brlcad/branches/brep-debug/doc/docbook/system/man1/en/g-step.xml
    brlcad/branches/brep-debug/doc/docbook/system/man1/en/gdiff.xml
    brlcad/branches/brep-debug/doc/docbook/system/man1/en/mged.xml
    brlcad/branches/brep-debug/doc/docbook/system/man1/en/plot3-ps.xml
    brlcad/branches/brep-debug/doc/docbook/system/man1/en/tire.xml
    brlcad/branches/brep-debug/doc/docbook/system/man5/en/CMakeLists.txt
    brlcad/branches/brep-debug/doc/docbook/system/mann/en/bo.xml
    brlcad/branches/brep-debug/doc/docbook/system/mann/en/fracture.xml
    brlcad/branches/brep-debug/doc/docbook/system/mann/en/lc.xml
    brlcad/branches/brep-debug/doc/docbook/system/mann/en/search.xml
    brlcad/branches/brep-debug/include/bn/polygon.h
    brlcad/branches/brep-debug/include/bnetwork.h
    brlcad/branches/brep-debug/include/bsocket.h
    brlcad/branches/brep-debug/include/ged.h
    brlcad/branches/brep-debug/include/raytrace.h
    brlcad/branches/brep-debug/misc/win32-msvc/Dll/CMakeLists.txt
    brlcad/branches/brep-debug/misc/win32-msvc/bootstrap.cpp
    brlcad/branches/brep-debug/src/conv/3dm/3dm-g.cpp
    brlcad/branches/brep-debug/src/conv/3dm/conv3dm-g.cpp
    brlcad/branches/brep-debug/src/conv/3dm/conv3dm-g.hpp
    brlcad/branches/brep-debug/src/conv/step/CMakeLists.txt
    brlcad/branches/brep-debug/src/conv/step/ap242-g/CMakeLists.txt
    brlcad/branches/brep-debug/src/conv/step/g-ap242/CMakeLists.txt
    brlcad/branches/brep-debug/src/fb/pixflip-fb.c
    brlcad/branches/brep-debug/src/libbn/chull3d.cpp
    brlcad/branches/brep-debug/src/libbn/polygon.c
    brlcad/branches/brep-debug/src/libbn/tests/CMakeLists.txt
    brlcad/branches/brep-debug/src/libbrep/CMakeLists.txt
    brlcad/branches/brep-debug/src/libbrep/PullbackCurve.cpp
    brlcad/branches/brep-debug/src/libbrep/shape_recognition.cpp
    brlcad/branches/brep-debug/src/libbrep/shape_recognition.h
    brlcad/branches/brep-debug/src/libbrep/shape_recognition_cone.cpp
    brlcad/branches/brep-debug/src/libbrep/shape_recognition_cylinder.cpp
    brlcad/branches/brep-debug/src/libbrep/shape_recognition_planar.cpp
    brlcad/branches/brep-debug/src/libbrep/shape_recognition_util.cpp
    brlcad/branches/brep-debug/src/libbu/kill.c
    brlcad/branches/brep-debug/src/libdm/dm-X.c
    brlcad/branches/brep-debug/src/libdm/dm-ogl.c
    brlcad/branches/brep-debug/src/libdm/dm-plot.c
    brlcad/branches/brep-debug/src/libdm/dm-ps.c
    brlcad/branches/brep-debug/src/libdm/dm-tk.c
    brlcad/branches/brep-debug/src/libdm/dm-wgl.c
    brlcad/branches/brep-debug/src/libgcv/wfobj/obj_parser_state.h
    brlcad/branches/brep-debug/src/libged/analyze.c
    brlcad/branches/brep-debug/src/libged/display_list.c
    brlcad/branches/brep-debug/src/libged/draw.c
    brlcad/branches/brep-debug/src/libged/ged_private.h
    brlcad/branches/brep-debug/src/libged/lc.c
    brlcad/branches/brep-debug/src/libged/vdraw.c
    brlcad/branches/brep-debug/src/librt/db5_io.c
    brlcad/branches/brep-debug/src/librt/primitives/arb8/arb8.c
    brlcad/branches/brep-debug/src/librt/primitives/arbn/arbn.c
    brlcad/branches/brep-debug/src/librt/primitives/bot/bot.c
    brlcad/branches/brep-debug/src/librt/primitives/brep/brep_debug.cpp
    brlcad/branches/brep-debug/src/librt/primitives/hf/hf.c
    brlcad/branches/brep-debug/src/librt/primitives/nmg/nmg.c
    brlcad/branches/brep-debug/src/librt/test_shape_recognition.cpp
    brlcad/branches/brep-debug/src/libtclcad/tclcad_obj.c
    brlcad/branches/brep-debug/src/mged/dodraw.c
    brlcad/branches/brep-debug/src/mged/dozoom.c
    brlcad/branches/brep-debug/src/mged/mged.c
    brlcad/branches/brep-debug/src/other/libgdiam/gdiam.cpp
    brlcad/branches/brep-debug/src/rt/sh_tcl.c
    brlcad/branches/brep-debug/src/tclscripts/archer/ArcherCore.tcl
    brlcad/branches/brep-debug/src/tclscripts/lib/gui_conversion.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/anim.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/lc.tcl
    brlcad/branches/brep-debug/src/tclscripts/mged/overlap.tcl
    brlcad/branches/brep-debug/src/tclscripts/swidgets/scripts/tkgetdir.itk
    brlcad/branches/brep-debug/src/util/pixborder.c
    brlcad/branches/brep-debug/src/util/pixembed.c
    brlcad/branches/brep-debug/src/util/pixfields.c
    brlcad/branches/brep-debug/src/util/pixfieldsep.c
    brlcad/branches/brep-debug/src/util/pixsaturate.c
    brlcad/branches/brep-debug/src/util/pixsubst.c
    brlcad/branches/brep-debug/src/util/plot3-ps.c

Added Paths:
-----------
    brlcad/branches/brep-debug/doc/docbook/system/man5/en/STEP.xml
    brlcad/branches/brep-debug/src/libbn/tests/bn_polygon_triangulate.c
    brlcad/branches/brep-debug/src/libbrep/shape_recognition_sphere.cpp
    brlcad/branches/brep-debug/src/libbrep/shape_recognition_torus.cpp
    brlcad/branches/brep-debug/src/other/stepcode/data/ap242/ap242e1.exp

Removed Paths:
-------------
    brlcad/branches/brep-debug/src/conv/step/g-ap242/ap242.exp
    
brlcad/branches/brep-debug/src/other/stepcode/data/ap242/ap242_1_34_mim_lf.exp

Property Changed:
----------------
    brlcad/branches/brep-debug/
    brlcad/branches/brep-debug/src/libged/polyclip.cpp

Index: brlcad/branches/brep-debug
===================================================================
--- brlcad/branches/brep-debug  2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug  2015-03-10 22:19:54 UTC (rev 64361)

Property changes on: brlcad/branches/brep-debug
___________________________________________________________________
Modified: svn:mergeinfo
## -3,4 +3,4 ##
 /brlcad/branches/cmake:43219
 /brlcad/branches/gct:62423-62425
 /brlcad/branches/osg:62110-62113
-/brlcad/trunk:61364-63668,63670-63802,63805-64016,64018-64176,64243,64249
+/brlcad/trunk:61364-64360
\ No newline at end of property
Modified: brlcad/branches/brep-debug/AUTHORS
===================================================================
--- brlcad/branches/brep-debug/AUTHORS  2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/AUTHORS  2015-03-10 22:19:54 UTC (rev 64361)
@@ -1071,7 +1071,12 @@
 2014 May
 Open Source
 
+Malhotra, Shivoam
+nicknames shiv05
+2015 March
+Open Source
 
+
 CORPORATE AND ORGANIZATION SUPPORT
 ----------------------------------
 

Modified: brlcad/branches/brep-debug/NEWS
===================================================================
--- brlcad/branches/brep-debug/NEWS     2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/NEWS     2015-03-10 22:19:54 UTC (rev 64361)
@@ -14,6 +14,8 @@
 --- 2014-XX-XX  Release 7.26.XX                                    ---
 ----------------------------------------------------------------------
 
+* 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
 * swapped meanings of search's -above/-below options - Sean Morrison
 * upgraded libpng to version 1.6.16 - Cliff Yapp

Modified: brlcad/branches/brep-debug/TODO
===================================================================
--- brlcad/branches/brep-debug/TODO     2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/TODO     2015-03-10 22:19:54 UTC (rev 64361)
@@ -56,6 +56,13 @@
 THESE ARE UNSCHEDULED BACKLOG TASKS
 -----------------------------------
 
+* air regions (aircode > 0) are removed/skipped during prep, but there
+  is no message to the user that this has occurred.  this can result
+  in unexpected behavior (bad usability) if/when air regions are the
+  only geometry being displayed (or are a substantial portion of the
+  current display.  prep needs to return a catalog so summary
+  reporting can be facilitated (of all objects, successful or not).
+
 * look into whether db_dirbuild should call db_update_nref
 
 * evaluate replacing libfft with the KISS FFT library (BSD).  similar
@@ -77,7 +84,8 @@
 * improve performance of these commands that seem to have exponential
   cost: bot_split, killtree
 
-* translate lc command to libged
+* translate lc command to libged (discovered in Feb. 2015 to have already
+  been done -- need information regarding when this was done and committed).
 
 * Integrate ADRT into Archer as a visualization mode.
 
@@ -88,14 +96,14 @@
 * 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
+  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
+  leveraging OpenVDB, PCL, Paraview/VTK, etc.
 
 * multi-region VOL objects.  this basically will either introduce a
   notion of data-reuse where multiple regions reference the same VOL
@@ -163,7 +171,7 @@
   (ways of reducing the geometry complexity with or without
   introducing 3D changes.  provides different stages of compilation
   (e.g., similar to preprocessing, compilation, AST reduction,
-  optimization, encoding transformation, etc).  name ideas: bcg, cg
+  optimization, encoding transformation, etc.).  name ideas: bcg, cg
 
 * geometry debugger.  low-level geometry database tool with minimal/no
   run-time dependencies on our own libraries.  the idea is a tool that
@@ -432,9 +440,6 @@
 
 * replicate the GTK+ ISST interface in TCL
 
-* Archer GUI needs to remember the last size of the command
-  window when it is in detached (2 window) mode
-
 * fix nurbs_ssi and nurbs_tester unit tests
 
 * get rid of the -P#processors user option (except rt* tools) common
@@ -685,10 +690,6 @@
 
 * update g-xxx_facets to use libgcv
 
-* add distribution test for making sure the source code conventions
-  for function replacements are being respected (e.g., bu_strcmp()
-  instead of strcmp()).
-
 * make sure 'preview' works, particularly the 'tree' subcommand.
 
 * make nreed's new bot cleanup interface update interactively without
@@ -1017,6 +1018,10 @@
 * add geometry example of building 238
 
 * Mac OS X SGI dial knobs support
+  - Note that we might do better here to focus on the 3Dconnexion
+    space navigator mouse, which is a lot more commonly available
+    nowadays...  spacenav.sourceforge.net is something to bear in
+    mind in this context.
 
 * ability to "unpush" objects, translating them to a new position and
   applying the correct matrix (using either bounding box or center of
@@ -1604,7 +1609,7 @@
 
   care will need to be taken to avoid bad behavior when presented with
   a malformed procedure (e.g., an infinite loop, fork bomb, syntax
-  error, thrashing condition, etc).
+  error, thrashing condition, etc.).
 
 * spheroid (quadratic) - special performance case of ell
 
@@ -1667,14 +1672,10 @@
 CONVERTERS
 ----------
 
-* implement 3dm-g support for ON_InstanceRef entities.  These are
-  instances of existing geometry that have prescribed referencing edit
-  behavior and can have their own matrices.  Basically, they're combs
-  that should sometimes reference copies of geometry and sometimes not
-  (there's a flag).  unveiled via sf bug report 3575774 where the
-  geometry export from solidworks was predominantly references
-  resulting in a load of geometry missing after import and objects in
-  the wrong position.
+* investigate the asset import library (assimp.sf.net) to see whether
+  we can replace a lot (but probably not all) of our bot-centric
+  importers/exports (ply, obj, stl, etc.) with the assimp library
+  to save us the time/effort of supporting those parser ourselves.
 
 * make the converters export all top-level objects by default
 
@@ -1717,9 +1718,6 @@
 * implement a g-sat (Solidworks) exporter and sat-g importer
   http://local.wasp.uwa.edu.au/~pbourke/dataformats/sat/sat.pdf
 
-* implement a g-ply exporter
-  http://en.wikipedia.org/wiki/PLY_(file_format)
-
 * implement a g-json exporter
   http://www.json.org/
 

Modified: brlcad/branches/brep-debug/doc/docbook/articles/en/oed.xml
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/articles/en/oed.xml  2015-03-10 
22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/doc/docbook/articles/en/oed.xml  2015-03-10 
22:19:54 UTC (rev 64361)
@@ -219,7 +219,7 @@
     </para>
 
     <para> Before beginning the editing process, the
-    <command>l</command> command (a.k.a the "list" command) can be used to 
view both the
+    <command>l</command> command (a.k.a. the "list" command) can be used to 
view both the
     combination and its component primitives:
     <note>
       <para>Note that the list command uses the lower case letter L (l) and

Modified: brlcad/branches/brep-debug/doc/docbook/articles/en/tire.xml
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/articles/en/tire.xml 2015-03-10 
22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/doc/docbook/articles/en/tire.xml 2015-03-10 
22:19:54 UTC (rev 64361)
@@ -24,7 +24,7 @@
     </para>
 
     <para>
-      By default, a basic steel wheel (a.k.a "rim") is included in the model.  
If this wheel
+      By default, a basic steel wheel (a.k.a. "rim") is included in the model. 
 If this wheel
       does not work for a given modeling purpose, it is quite simple to remove 
it and substitute
       in a user-defined wheel so long as the dimensions of the user supplied 
wheel match
       the standard wheel at the key points (radius and width).

Modified: brlcad/branches/brep-debug/doc/docbook/system/man1/en/g-step.xml
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/system/man1/en/g-step.xml    
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/doc/docbook/system/man1/en/g-step.xml    
2015-03-10 22:19:54 UTC (rev 64361)
@@ -78,30 +78,6 @@
        </example>
 </refsect1>
 
-<refsect1 xml:id='see_also'><title>SEE ALSO</title>
-  <para>Further reading:</para>
-<variablelist remap='TP'>
-       <varlistentry>
-               <term></term>
-  <listitem>
-         <para>
-                 <emphasis remap='I'>Recommended Practices for AP203</emphasis>
-                 PDES, Inc. Industry consortium, April 1998
-         </para>
-  </listitem>
-  </varlistentry>
-  <varlistentry>
-               <term></term>
-  <listitem>
-         <para>
-                 <emphasis remap='I'>Usage Guide for the STEP PDM Schema 
V1.2</emphasis>
-                 PDM Implementer Forum, Release 4.3, January 2002
-         </para>
-  </listitem>
-  </varlistentry>
-</variablelist>
-</refsect1>
-
 <refsect1 xml:id='author'><title>AUTHOR</title>
 <para>BRL-CAD Team</para>
 

Modified: brlcad/branches/brep-debug/doc/docbook/system/man1/en/gdiff.xml
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/system/man1/en/gdiff.xml     
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/doc/docbook/system/man1/en/gdiff.xml     
2015-03-10 22:19:54 UTC (rev 64361)
@@ -1,7 +1,7 @@
 <?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>GDIFF2
+               <refentrytitle>GDIFF
                </refentrytitle>
                <manvolnum>1</manvolnum>
                <refmiscinfo class='source'>BRL-CAD</refmiscinfo>

Modified: brlcad/branches/brep-debug/doc/docbook/system/man1/en/mged.xml
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/system/man1/en/mged.xml      
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/doc/docbook/system/man1/en/mged.xml      
2015-03-10 22:19:54 UTC (rev 64361)
@@ -34,15 +34,15 @@
   <refsection xml:id="description"><title>DESCRIPTION</title>
 
     <para>
-      <application>MGED</application>, a.k.a the "Multi-Device Geometry 
Editor" is the
+      <application>MGED</application>, a.k.a. the "Multi-Device Geometry 
Editor", is the
       central interaction environment for the BRL-CAD package.  It offers both 
command line
       and menu driven interactions, as well as wireframe displays and 
integrated raytracing
       capabilities.  It is the primary tool for BRL-CAD geometry creation and 
interactive
       manipulation.
     </para>
     <para>
-      <application>MGED</application>'s history traces back to the earlier 
"GED" (a.k.a "Geometry
-      Editor",) and much of GED's functionality is preserved in 
<application>MGED</application>.
+      <application>MGED</application>'s history traces back to the earlier 
"GED" (a.k.a. "Geometry
+      Editor"), and much of GED's functionality is preserved in 
<application>MGED</application>.
       A full description of MGED's abilities is beyond the scope of this 
document -
       the reader is referred to Volumes II and III of the BRL-CAD Tutorial 
Series, available
       at http://brlcad.org, for a more comprehensive introduction.  This 
document will deal
@@ -172,10 +172,10 @@
 
   <para>Often it is convenient to generate a series of 
<application>MGED</application> commands
        outside <application>MGED</application> and then submit the command 
list to
-       <application>MGED</application>  which will
+       <application>MGED</application>,  which will
        react as if each command were being manually entered within it.
        Simply create a file (say, "cmds.txt") with each line being a desired 
command, and then
-       have <application>MGED</application> execute the list.  At the normal 
shell prompt execute</para>
+       have <application>MGED</application> execute the list.  At the normal 
shell prompt, execute</para>
 
       <programlisting>
 $ mged -c tgm.g &lt; cmds.txt
@@ -189,7 +189,7 @@
 
     <para>
       <application>MGED</application> database names conventionally end with
-      <markup>.g</markup>.
+      <markup>.g</markup> .
     </para>
 
     <para>

Modified: brlcad/branches/brep-debug/doc/docbook/system/man1/en/plot3-ps.xml
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/system/man1/en/plot3-ps.xml  
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/doc/docbook/system/man1/en/plot3-ps.xml  
2015-03-10 22:19:54 UTC (rev 64361)
@@ -18,10 +18,10 @@
 <cmdsynopsis>
   <command>plot3-ps</command>
     <arg choice='opt'>-ec </arg>
-    <arg choice='opt'>-s <replaceable>square_output_size</replaceable></arg>
-    <arg choice='opt'>-w <replaceable>output_width</replaceable></arg>
-    <arg choice='opt'>-n <replaceable>output_height</replaceable></arg>
-    <arg choice='plain'>&lt;</arg>
+    <arg choice='opt'>-s|S <replaceable>square_output_size</replaceable></arg>
+    <arg choice='opt'>-w|W <replaceable>output_width</replaceable></arg>
+    <arg choice='opt'>-n|N <replaceable>output_height</replaceable></arg>
+    <arg choice='opt'>&lt;</arg>
     <arg choice='plain'><replaceable>unix_plot</replaceable></arg>
 </cmdsynopsis>
 </refsynopsisdiv>
@@ -35,13 +35,21 @@
 documents.
 The
 <option>-e</option>
-option will produce and encapsulated PostScript file. The
+option will produce an encapsulated PostScript file. The
+<option>-c</option>
+option causes the output to be centered on an 8.5 x 11 inch page. The
 <option>-s</option>
 ,
 <option>-w</option>
 , and
 <option>-n</option>
-options specify the size of the output image in inches (ignored when used with 
the
+options (alternatively
+<option>-S</option>
+,
+<option>-W</option>
+, and
+<option>-N</option>)
+specify the size of the output image in inches (ignored when used with the
 <option>-e</option>
 option).</para>
 

Modified: brlcad/branches/brep-debug/doc/docbook/system/man1/en/tire.xml
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/system/man1/en/tire.xml      
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/doc/docbook/system/man1/en/tire.xml      
2015-03-10 22:19:54 UTC (rev 64361)
@@ -99,7 +99,7 @@
       <term><option>-D rim diameter #</option></term>
       <listitem>
        <para>
-         Specify the diameter of the rim (a.k.a the steel wheel) in inches. 
This
+         Specify the diameter of the rim (a.k.a. the steel wheel) in inches. 
This
          option overrides the -d option if used together, or the default if 
used
          alone.  Can be used with the -W and -R flags.  Unlike the -d flag, 
allows
          floating point input for more precise definition of rim diameter.

Modified: brlcad/branches/brep-debug/doc/docbook/system/man5/en/CMakeLists.txt
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/system/man5/en/CMakeLists.txt        
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/doc/docbook/system/man5/en/CMakeLists.txt        
2015-03-10 22:19:54 UTC (rev 64361)
@@ -26,6 +26,7 @@
   cmap.xml
   pix.xml
   plot3.xml
+  STEP.xml
   )
 
 

Copied: brlcad/branches/brep-debug/doc/docbook/system/man5/en/STEP.xml (from 
rev 64360, brlcad/trunk/doc/docbook/system/man5/en/STEP.xml)
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/system/man5/en/STEP.xml              
                (rev 0)
+++ brlcad/branches/brep-debug/doc/docbook/system/man5/en/STEP.xml      
2015-03-10 22:19:54 UTC (rev 64361)
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<refentry xmlns="http://docbook.org/ns/docbook"; version="5.0" xml:id="STEP5" 
xmlns:xlink="http://www.w3.org/1999/xlink";>
+  <refmeta>
+    <refentrytitle>STEP</refentrytitle>
+    <manvolnum>5</manvolnum>
+    <refmiscinfo class='source'>BRL-CAD</refmiscinfo>
+    <refmiscinfo class='manual'>BRL-CAD Format Documentation</refmiscinfo>
+  </refmeta>
+
+  <refnamediv xml:id="format">
+    <refname>STEP</refname>
+    <refpurpose>ISO 10303 Standard for the Exchange of Product model 
data</refpurpose>
+  </refnamediv>
+
+  <!-- body begins here -->
+
+  <refsect1 xml:id='background'>
+    <title>BACKGROUND</title>
+    <para>
+      In 1984, the International Organization for Standardization (ISO) began 
working to create
+      a standard to allow for the electronic exchange of product data between 
computer-based
+      product life-cycle systems.  This scope was intentionally much broader 
than just
+      geometry information, and the resulting standard (ISO 10303: Industrial 
automation systems
+      and integration -- Product data representation and exchange) is 
extremely large.  Consequently,
+      the standard is subdivided into <emphasis remap="I">parts</emphasis>, 
which are referred to
+      individually as ISO 10303-xxx where xxx is the part number.  Because of 
the large scope,
+      there is a numbering convention used to represent more focused 
sub-scopes in order to make locating
+      specific types of information simpler:
+      <table>
+       <title>ISO 10303 Part Numbering Scopes</title>
+       <tgroup cols="2">
+         <thead>
+           <row>
+             <entry>Series</entry>
+             <entry>Scope Of Series</entry>
+           </row>
+         </thead>
+         <tbody>
+           <row>
+             <entry>00x</entry>
+             <entry>Overview, fundamental principles</entry>
+           </row>
+           <row>
+             <entry>01x</entry>
+             <entry>Definitional resources</entry>
+           </row>
+           <row>
+             <entry>02x</entry>
+             <entry>Implementation methods</entry>
+           </row>
+           <row>
+             <entry>03x</entry>
+             <entry>Validation of translators for standard conformance</entry>
+           </row>
+           <row>
+             <entry>04x</entry>
+             <entry>Integrated Generic Resources (basic building 
blocks)</entry>
+           </row>
+           <row>
+             <entry>1xx</entry>
+             <entry>Integrated Application Resources (higher level than 
04x)</entry>
+           </row>
+           <row>
+             <entry>2xx</entry>
+             <entry>Application Protocols</entry>
+           </row>
+           <row>
+             <entry>5xx</entry>
+             <entry>Application Interpreted Constructs - reusable components 
of Application Protocols</entry>
+           </row>
+         </tbody>
+       </tgroup>
+      </table>
+      The lowest level parts that define STEP in a practical sense are <link 
xlink:href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=38047";>ISO
 10303-011</link>, <link 
xlink:href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=33713";>ISO
 10303-21</link>, and <link 
xlink:href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=25097";>
 ISO 10303-022</link>.  10303-011 defines
+      the EXPRESS language, which is in turn the language in which application 
protocol schemas are written.  10303-21
+      defines a clear text encoding of the STEP exchange structure - files 
using this schema are referred to as "STEP"
+      or "Part 21" files.
+      10303-022 defines a Standard Data Access Interface (SDAI) which is used 
to automatically generate practical
+      computer code from the EXPRESS schema protocol descriptions.  
Collectively, these define the "container" aspects
+      of the STEP file format and a method to access the information from the 
file.  (This is similar to using XML with
+      a schema file to store information, and newer schemas are also available 
in an XML form in addition to EXPRESS.)
+    </para>
+    <para>
+      A number of <link 
xlink:href="http://www.steptools.com/support/stdev_docs/express/step_irs/";>other</link>
 low level parts and higher level Application Interpreted Constructs (AICs) 
form the foundation
+      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>
+    <para>
+      Within that context, the primary components of interest for practical 
data import and
+      export are the Application Protocols (AP) that focus on shape models and 
assembly
+      structure (among other things.)  The first such protocol was AP203 - 
"Configuration-controlled design".
+      As experience using the standard in real world applications accumulated, 
new revisions and new application protocols
+      were developed.  Today, the following protocols exist:
+      <table>
+       <title>Application Protocols relating to Shape Modeling and Assembly 
Structure</title>
+       <tgroup cols="3">
+         <thead>
+           <row>
+             <entry>Application Protocol</entry>
+             <entry>Title</entry>
+             <entry>Notes</entry>
+           </row>
+         </thead>
+         <tbody>
+           <row>
+             <entry>AP203</entry>
+             <entry><link 
xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=20597";>Configuration
 controlled 3D designs of mechanical parts and assemblies</link></entry>
+             <entry>Most recent version is 10303-203:1994 with additions and 
corrections as follows.  The original document was subsequently revised by one 
amendment<link 
xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=34177";>10303-203:1994/Amd
 1:2000 </link> and three corrections: <link 
xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=26904";>10303-203:1994/Cor
 1:1996 </link>, <link 
xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=30943";>10303-203:1994/Cor
 2:1998 </link>, and <link 
xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=40190";>10303-203:1994/Cor
 3:2004 </link> </entry>
+           </row>
+           <row>
+             <entry>AP203e2</entry>
+             <entry> <link 
xlink:href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=44305";>Configuration
 controlled 3D designs of mechanical parts and assemblies</link></entry>
+             <entry>Most recent version is 10303-203:2011.  Revises <link 
xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=39522";>10303-203:2005</link>,
 which is listed as a modular version that is harmonized with ISO 
10303-2014.</entry>
+           </row>
+           <row>
+             <entry>AP214</entry>
+             <entry> <link 
xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=43669";>Core
 data for automotive mechanical design processes</link></entry>
+             <entry>Most recent version is 10303-214:2010. Two earlier 
versions exist: <link 
xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=38727";>10303-214:2003</link>
 and <link 
xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=23643";>10303-214:2001</link></entry>
+           </row>
+           <row>
+             <entry>AP242</entry>
+             <entry><link 
xlink:href="http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=57620";>Managed
 model-based 3D engineering</link></entry>
+             <entry>Most recent version is 242:2014.  This standard is 
intended to consolidate and replace AP203e2 and AP214.</entry>
+           </row>
+         </tbody>
+       </tgroup>
+      </table>
+    </para>
+    <para>
+      AP203e2 is sufficiently different from AP203 that practically speaking 
it merits
+      being called out as its own distinct protocol, but in the nomenclature 
of the ISO
+      standards it is still considered a revision to AP203.
+    </para>
+    <para>
+      These protocols are the portion of ISO 10303 that address the problem 
domain previously handled by the Initial Graphics Exchange Specification 
(<citerefentry><refentrytitle>IGES</refentrytitle><manvolnum>5</manvolnum></citerefentry>).
  In a computer aided design context where transfer of "STEP files" is being 
discussed, those files will most likely correspond to one of the previous 
protocols.
+    </para>
+
+    <para>
+      TODO - Determine what MIM, AIM and AAM are and document them...
+    </para>
+
+  </refsect1>
+  <refsect1 xml:id='schema_resources'><title>SCHEMAS AND IMPLEMENTATION 
RESOURCES</title>
+    <para>
+      To obtain the latest schema files (which, unlike the ISO standards 
themselves, are freely available) check the <link 
xlink:href="http://stepmod.sourceforge.net/";>STEP Module Repository 
Project</link> - in particular, the <link 
xlink:href="http://stepmod.cvs.sourceforge.net/viewvc/stepmod/stepmod/data/modules/";>modules</link>
 directory.
+    </para>
+    <para>
+      The standards define the structure of the schemas, but in general when 
it comes to the nuts and bolts of implementing a practical importer and 
exporter more resources are needed.  Below are links to some implementation 
resources:
+    </para>
+    <para>
+      PDES, Inc. Industry consortium <link 
xlink:href="http://www.steptools.com/support/stdev_docs/express/ap203/recprac203v8.pdf";>Recommended
 Practices for AP203</link>, April 1998
+    </para>
+    <para>
+      PDM Implementer Forum, <link 
xlink:href="http://www.steptools.com/support/stdev_docs/express/pdm/pdmug_release4_3.pdf";>Usage
 Guide for the STEP PDM Schema V1.2 Release 4.3</link>, January 2002.
+    </para>
+    <para>
+      CAx Implementer Forum Recommended Practices: <link 
xlink:href="https://www.cax-if.org/joint_testing_info.html#recpracs";></link>
+    </para>
+
+  </refsect1>
+  <refsect1 xml:id='see_also'><title>SEE ALSO</title>
+
+    <para>
+      Pratt, Michael J.; <link 
xlink:href="http://www.mel.nist.gov/msidlibrary/doc/jcise1.pdf";> Introduction 
to ISO 10303 - the STEP Standard for Product Data Exchange</link>; NIST; 2001.
+    </para>
+
+  </refsect1>
+
+  <refsect1 xml:id='author'><title>AUTHOR</title>
+    <para>Clifford Yapp</para>
+  </refsect1>
+
+  <refsect1 xml:id='copyright'><title>COPYRIGHT</title>
+    <para>
+      Copyright (c) 2015 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 inaccuracies should be submitted via electronic
+      mail to &lt;[email protected]&gt;.
+    </para>
+  </refsect1>
+</refentry>
+

Modified: brlcad/branches/brep-debug/doc/docbook/system/mann/en/bo.xml
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/system/mann/en/bo.xml        
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/doc/docbook/system/mann/en/bo.xml        
2015-03-10 22:19:54 UTC (rev 64361)
@@ -74,7 +74,7 @@
 
     <example><title>Copy the contents of a particular binary object into a 
specified file.</title>
 
-      <para><prompt>mged&gt;</prompt><userinput>bo -o /home/jim/cmds.html 
cmds</userinput></para>
+      <para><prompt>mged&gt;</prompt> <userinput>bo -o /home/jim/cmds.html 
cmds</userinput></para>
       <para>
        Copies the contents of the binary object named 
<emphasis>cmds</emphasis> into the file named
        <emphasis>/home/jim/cmds.html</emphasis>.

Modified: brlcad/branches/brep-debug/doc/docbook/system/mann/en/fracture.xml
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/system/mann/en/fracture.xml  
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/doc/docbook/system/mann/en/fracture.xml  
2015-03-10 22:19:54 UTC (rev 64361)
@@ -27,7 +27,7 @@
 
   <para>Creates a new NMG shape for every “face” in the specified
        <emphasis>NMG_shape</emphasis>. The new shapes will be named by adding 
an underscore and a number
-       to the <emphasis>prefix</emphasis>. If no <emphasis>prefix</emphasis> 
is specified, then the <emphasis> NMG_shape</emphasis> name provided is used in 
place of the <emphasis>prefix</emphasis>.
+       to the <emphasis>prefix</emphasis>. If no <emphasis>prefix</emphasis> 
is specified, then the <emphasis>NMG_shape</emphasis> name provided is used in 
place of the <emphasis>prefix</emphasis>.
   </para>
 </refsection>
 

Modified: brlcad/branches/brep-debug/doc/docbook/system/mann/en/lc.xml
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/system/mann/en/lc.xml        
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/doc/docbook/system/mann/en/lc.xml        
2015-03-10 22:19:54 UTC (rev 64361)
@@ -9,7 +9,7 @@
 
 <refnamediv xml:id="name">
   <refname>lc</refname>
-  <refpurpose>Lists codes (i.e. region attributes) 'region_id', 'material_id' 
and 'los' within a group or combination.
+  <refpurpose>Lists codes (i.e. region attributes) 'region_id', 'material_id', 
'los', 'region name', 'region parent' within a group or combination.
    </refpurpose>
 </refnamediv>
 
@@ -52,7 +52,7 @@
       <term><option>-d</option></term>
       <listitem>
        <para>
-         Specifies to list only regions with duplicate 'region_id'.
+         Specifies to list only one region with each 'region_id'.
        </para>
       </listitem>
     </varlistentry>
@@ -60,10 +60,10 @@
       <term><option>-s</option></term>
       <listitem>
        <para>
-         Same as '-d' except some duplicates will not be reported
-         (i.e. will be skipped). Skipped duplicates will be those within the
-         specified group, that have the same parent, 'material_id' and
-         'los'.
+         Specifies to list only one region with each combination of 
'region_id',
+         'material_id' and 'los'.  In addition to the output of '-d', it lists
+         those cases where 'region_id' is the same but 'material_id' and/or
+         'los' are different.
        </para>
       </listitem>
     </varlistentry>
@@ -92,7 +92,7 @@
       <term><option>-5</option></term>
       <listitem>
        <para>
-         Specifies sort column 2, 3, 4 or 5.
+         Specifies sort column 2, 3, 4 or 5 (referring to columns listed in 
the description of this command).
        </para>
       </listitem>
     </varlistentry>

Modified: brlcad/branches/brep-debug/doc/docbook/system/mann/en/search.xml
===================================================================
--- brlcad/branches/brep-debug/doc/docbook/system/mann/en/search.xml    
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/doc/docbook/system/mann/en/search.xml    
2015-03-10 22:19:54 UTC (rev 64361)
@@ -567,7 +567,7 @@
          </listitem>
        </varlistentry>
        <varlistentry>
-         <term><emphasis remap="I">expression</emphasis> <emphasis remap="B" 
role="bold">-and</emphasis> <emphasis remap="I">expression</emphasis> (a.k.a 
-a)</term>
+         <term><emphasis remap="I">expression</emphasis> <emphasis remap="B" 
role="bold">-and</emphasis> <emphasis remap="I">expression</emphasis> (a.k.a. 
-a)</term>
          <listitem>
                <para>
                  The and operator operates like the logical AND operator - 
TRUE only if both
@@ -596,7 +596,7 @@
          </listitem>
        </varlistentry>
        <varlistentry>
-         <term><emphasis remap="B" role="bold">-not</emphasis> <emphasis 
remap="I">expression</emphasis> (a.k.a !)</term>
+         <term><emphasis remap="B" role="bold">-not</emphasis> <emphasis 
remap="I">expression</emphasis> (a.k.a. !)</term>
          <listitem>
                <para>
                  The logical NOT operator - returns the opposite of the 
evaluation result of
@@ -605,7 +605,7 @@
          </listitem>
        </varlistentry>
        <varlistentry>
-         <term><emphasis remap="I">expression</emphasis> <emphasis remap="B" 
role="bold">-or</emphasis> <emphasis remap="I">expression</emphasis> (a.k.a 
-o)</term>
+         <term><emphasis remap="I">expression</emphasis> <emphasis remap="B" 
role="bold">-or</emphasis> <emphasis remap="I">expression</emphasis> (a.k.a. 
-o)</term>
          <listitem>
                <para>
                  The logical OR operator - true if either expression is true.

Modified: brlcad/branches/brep-debug/include/bn/polygon.h
===================================================================
--- brlcad/branches/brep-debug/include/bn/polygon.h     2015-03-10 22:08:43 UTC 
(rev 64360)
+++ brlcad/branches/brep-debug/include/bn/polygon.h     2015-03-10 22:19:54 UTC 
(rev 64361)
@@ -37,60 +37,113 @@
 
 __BEGIN_DECLS
 
+/*********************************************************
+  Operations on 2D point types
+ *********************************************************/
+
 /**
  * @brief
- * Calculate the interior area of a polygon.
+ * test whether a polygon is clockwise (CW) or counter clockwise (CCW)
  *
+ * Determine if a set of points forming a polygon are in clockwise
+ * or counter-clockwise order (see http://stackoverflow.com/a/1165943)
+ *
+ * @param[in] npts number of points pts contains
+ * @param[in] pts array of points, building a convex polygon. duplicated points
+ * aren't allowed. the points in the array will be sorted counter-clockwise.
+ *
+ * @return -1 if polygon is counter-clockwise
+ * @return 1 if polygon is clockwise
+ * @return 0 if the test failed
+ */
+BN_EXPORT extern int bn_polygon_clockwise(size_t npts, const point2d_t *pts);
+
+
+/**
+ * @brief
+ * test whether a point is inside a 2d polygon
+ *
+ * franklin's test for point inclusion within a polygon - see
+ * http://www.ecse.rpi.edu/homepages/wrf/research/short_notes/pnpoly.html
+ * for more details and the implementation file polygon.c for license info.
+ *
+ * @param[in] npts number of points pts contains
+ * @param[in] pts array of points, building a convex polygon. duplicated points
+ * aren't allowed. the points in the array will be sorted counter-clockwise.
+ * @param[in] test_pt point to test.
+ *
+ * @return 0 if point is outside polygon
+ * @return 1 if point is inside polygon
+ */
+BN_EXPORT extern int bn_pt_in_polygon(size_t npts, const point2d_t *pts, const 
point2d_t *test_pt);
+
+/**
+ * @brief
+ * Triangulate a 2D polygon.
+ *
+ * This routine generates a triangulation of the input polygon using the method
+ * documented in David Eberly's Triangulation by Ear Clipping, section 2:
+ * http://www.geometrictools.com/Documentation/TriangulationByEarClipping.pdf
+ *
+ * The input polygon cannot have holes and must be provided as an array of
+ * counter-clockwise 2D points.
+ *
+ * No points are added as part of this triangulation process - the result uses
+ * only those points in the original polygon, and hence only the face
+ * information is created as output.
+ *
+ * @param[out] faces Set of faces in the triangulation, stored as integer 
indices to the pts.  The first three indices are the vertices of the first 
face, the second three define the second face, and so forth.
+ * @param[out] num_faces Number of faces created
+ * @param[in] npts Number of points pts contains
+ * @param[in] pts Array of points defining a polygon. Duplicated points
+ * aren't allowed. The points in the array will be sorted counter-clockwise.
+ *
+ * @return 0 if triangulation is successful
+ * @return 1 if triangulation is unsuccessful
+ */
+BN_EXPORT extern int bn_polygon_triangulate(int **faces, int *num_faces, const 
point2d_t *pts, size_t npts);
+
+
+/*********************************************************
+  Operations on 3D point types - these are assumed to be
+  polygons embedded in 3D planes in space
+ *********************************************************/
+
+/**
+ * @brief
+ * Calculate the interior area of a polygon in a 3D plane in space.
+ *
  * If npts > 4, Greens Theorem is used. The polygon mustn't
  * be self-intersecting.
  *
  * @param[out] area The interior area of the polygon
  * @param[in] npts Number of point_ts, stored in pts
  * @param[in] pts All points of the polygon, sorted counter-clockwise.
- * The array mustn't contain duplicated points.
+ * The array mustn't contain duplicated or non-coplanar points.
  *
  * @return 0 if calculation was successful
  * @return 1 if calculation failed, e.g. because one parameter is a 
NULL-pointer
  */
-BN_EXPORT extern int bn_polygon_area(fastf_t *area, size_t npts, const point_t 
*pts);
+BN_EXPORT extern int bn_3d_polygon_area(fastf_t *area, size_t npts, const 
point_t *pts);
 
 
 /**
  * @brief
- * Calculate the centroid of a non self-intersecting polygon
+ * Calculate the centroid of a non self-intersecting polygon in a 3D plane in 
space.
  *
  * @param[out] cent The centroid of the polygon
  * @param[in] npts Number of point_ts, stored in pts
  * @param[in] pts all points of the polygon, sorted counter-clockwise.
- * The array mustn't contain duplicated points.
+ * The array mustn't contain duplicated points or non-coplanar points.
  *
  * @return 0 if calculation was successful
  * @return 1 if calculation failed, e.g. because one in-parameter is a 
NULL-pointer
  */
-BN_EXPORT extern int bn_polygon_centroid(point_t *cent, size_t npts, const 
point_t *pts);
+BN_EXPORT extern int bn_3d_polygon_centroid(point_t *cent, size_t npts, const 
point_t *pts);
 
 
 /**
  * @brief
- * Calculate for an array of plane_eqs, which build a polyhedron, the
- * point_t's for each face.
- *
- * @param[out] npts Array, which stores for every face the number of
- * point_ts, added to pts. Needs to be allocated with npts[neqs] already.
- * @param[out] pts 2D-array which stores the point_ts for every
- * face. The array needs to be allocated with pts[neqs][neqs-1] already.
- * @param[in] neqs Number of plane_ts, stored in eqs
- * @param[in] eqs Array, that contains the plane equations, which
- * build the polyhedron
- *
- * @return 0 if calculation was successful
- * @return 1 if calculation failed, e.g. because one parameter is a 
NULL-Pointer
- */
-BN_EXPORT extern int bn_polygon_mk_pts_planes(size_t *npts, point_t **pts, 
size_t neqs, const plane_t *eqs);
-
-
-/**
- * @brief
  * Sort an array of point_ts, building a convex polygon, counter-clockwise
  *
  *@param[in] npts Number of points, pts contains
@@ -101,27 +154,29 @@
  *@return 0 if calculation was successful
  *@return 1 if calculation failed, e.g. because pts is a NULL-pointer
  */
-BN_EXPORT extern int bn_polygon_sort_ccw(size_t npts, point_t *pts, plane_t 
cmp);
+BN_EXPORT extern int bn_3d_polygon_sort_ccw(size_t npts, point_t *pts, plane_t 
cmp);
 
+
 /**
  * @brief
- * Test whether a point is inside a 2D polygon
+ * Calculate for an array of plane_eqs, which build a polyhedron, the
+ * point_t's for each face.
  *
- * Franklin's test for point inclusion within a polygon - see
- * http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html
- * for more details and the implementation file polygon.c for license info.
+ * @param[out] npts Array, which stores for every face the number of
+ * point_ts, added to pts. Needs to be allocated with npts[neqs] already.
+ * @param[out] pts 2D-array which stores the point_ts for every
+ * face. The array needs to be allocated with pts[neqs][neqs-1] already.
+ * @param[in] neqs Number of plane_ts, stored in eqs
+ * @param[in] eqs Array, that contains the plane equations, which
+ * build the polyhedron
  *
- * @param[in] npts Number of points, pts contains
- * @param pts Array of point_ts, building a convex polygon. Duplicated points
- * aren't allowed. The points in the array will be sorted counter-clockwise.
- * @param[in] cmp Plane equation of the polygon
- *
- * @return 0 if point is outside polygon
- * @return 1 if point is inside polygon
+ * @return 0 if calculation was successful
+ * @return 1 if calculation failed, e.g. because one parameter is a 
NULL-Pointer
  */
-BN_EXPORT extern int bn_pt_in_polygon(size_t npts, const point2d_t *pts, const 
point2d_t *test_pt);
+BN_EXPORT extern int bn_3d_polygon_mk_pts_planes(size_t *npts, point_t **pts, 
size_t neqs, const plane_t *eqs);
 
 
+
 __END_DECLS
 
 #endif  /* BN_POLYGON_H */

Modified: brlcad/branches/brep-debug/include/bnetwork.h
===================================================================
--- brlcad/branches/brep-debug/include/bnetwork.h       2015-03-10 22:08:43 UTC 
(rev 64360)
+++ brlcad/branches/brep-debug/include/bnetwork.h       2015-03-10 22:19:54 UTC 
(rev 64361)
@@ -22,7 +22,7 @@
  * BRL-CAD private system compatibility wrapper header that provides
  * declarations for native and standard system NETWORKING routines.
  *
- * This header is commonly used in leu of including the following:
+ * This header is commonly used in lieu of including the following:
  * winsock2.h (not select, fd_set), netinet/in.h, netinet/tcp.h,
  * arpa/inet.h (htonl, ntohl, etc)
  *

Modified: brlcad/branches/brep-debug/include/bsocket.h
===================================================================
--- brlcad/branches/brep-debug/include/bsocket.h        2015-03-10 22:08:43 UTC 
(rev 64360)
+++ brlcad/branches/brep-debug/include/bsocket.h        2015-03-10 22:19:54 UTC 
(rev 64361)
@@ -22,7 +22,7 @@
  * BRL-CAD private system compatibility wrapper header that provides
  * declarations for native and standard system select() routines.
  *
- * This header is commonly used in leu of including the following:
+ * This header is commonly used in lieu of including the following:
  * sys/select.h, winsock2.h (select, fd_set)
  *
  * This header does not belong to any BRL-CAD library but may used by

Modified: brlcad/branches/brep-debug/include/ged.h
===================================================================
--- brlcad/branches/brep-debug/include/ged.h    2015-03-10 22:08:43 UTC (rev 
64360)
+++ brlcad/branches/brep-debug/include/ged.h    2015-03-10 22:19:54 UTC (rev 
64361)
@@ -79,6 +79,7 @@
 
 #define GED_FUNC_PTR_NULL ((ged_func_ptr)0)
 #define GED_REFRESH_CALLBACK_PTR_NULL ((ged_refresh_callback_ptr)0)
+#define GED_CREATE_VLIST_SOLID_CALLBACK_PTR_NULL 
((ged_create_vlist_solid_callback_ptr)0)
 #define GED_CREATE_VLIST_CALLBACK_PTR_NULL ((ged_create_vlist_callback_ptr)0)
 #define GED_FREE_VLIST_CALLBACK_PTR_NULL ((ged_free_vlist_callback_ptr)0)
 
@@ -367,7 +368,8 @@
     void                       (*ged_refresh_handler)(void *); /**< @brief  
function for handling refresh requests */
     void                       (*ged_output_handler)(struct ged *, char *);    
/**< @brief  function for handling output */
     char                       *ged_output_script;             /**< @brief  
script for use by the outputHandler */
-    void                       (*ged_create_vlist_callback)(struct 
display_list *);    /**< @brief  function to call after creating a vlist */
+    void                       (*ged_create_vlist_solid_callback)(struct solid 
*);     /**< @brief  function to call after creating a vlist to create display 
list for solid */
+    void                       (*ged_create_vlist_callback)(struct 
display_list *);    /**< @brief  function to call after all vlist created that 
loops through creating display list for each solid  */
     void                       (*ged_free_vlist_callback)(unsigned int, int);  
/**< @brief  function to call after freeing a vlist */
 
     /* FIXME -- this ugly hack needs to die.  the result string should be 
stored before the call. */
@@ -389,6 +391,7 @@
 
 typedef int (*ged_func_ptr)(struct ged *, int, const char *[]);
 typedef void (*ged_refresh_callback_ptr)(void *);
+typedef void (*ged_create_vlist_solid_callback_ptr)(struct solid *);
 typedef void (*ged_create_vlist_callback_ptr)(struct display_list *);
 typedef void (*ged_free_vlist_callback_ptr)(unsigned int, int);
 
@@ -464,7 +467,7 @@
 #define POLYGON_HEADER_MAGIC 0x8623bad2
 GED_EXPORT extern void dl_polybinout(struct bu_list *hdlp, struct 
polygon_header *ph, FILE *fp);
 
-GED_EXPORT extern int invent_solid(struct bu_list *hdlp, struct db_i *dbip, 
void (*callback_create)(struct display_list *), void (*callback_free)(unsigned 
int, int), char *name, struct bu_list *vhead, long int rgb, int copy, fastf_t 
transparency, int dmode, struct solid *freesolid, int csoltab);
+GED_EXPORT extern int invent_solid(struct bu_list *hdlp, struct db_i *dbip, 
void (*callback_create)(struct solid *), void (*callback_free)(unsigned int, 
int), char *name, struct bu_list *vhead, long int rgb, int copy, fastf_t 
transparency, int dmode, struct solid *freesolid, int csoltab);
 
 
 /* defined in ged.c */

Modified: brlcad/branches/brep-debug/include/raytrace.h
===================================================================
--- brlcad/branches/brep-debug/include/raytrace.h       2015-03-10 22:08:43 UTC 
(rev 64360)
+++ brlcad/branches/brep-debug/include/raytrace.h       2015-03-10 22:19:54 UTC 
(rev 64361)
@@ -1890,6 +1890,9 @@
 
 /**
  * Used by MGED for labeling vertices of a solid.
+ *
+ * TODO - eventually this should fade into a general annotation
+ * framework
  */
 struct rt_point_labels {
     char str[8];

Modified: brlcad/branches/brep-debug/misc/win32-msvc/Dll/CMakeLists.txt
===================================================================
--- brlcad/branches/brep-debug/misc/win32-msvc/Dll/CMakeLists.txt       
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/misc/win32-msvc/Dll/CMakeLists.txt       
2015-03-10 22:19:54 UTC (rev 64361)
@@ -94,10 +94,17 @@
   ${OPENNURBS_INCLUDE_DIR}
   )
 
-add_definitions(
-  "-DBRLCAD_COREINTERFACE_EXPORT=__declspec(dllexport)"
+if(MSVC)
+  add_definitions(
+    "-DBRLCAD_COREINTERFACE_EXPORT=__declspec(dllexport)"
   )
 
+  set(COREINTERFACE_MSVC_LIBRARIES
+    Ws2_32
+    Psapi
+  )
+endif(MSVC)
+
 add_library(brlcad SHARED
   ${BRLCAD_SOURCES}
   ${COREINTERFACE_SOURCES}
@@ -118,8 +125,7 @@
   p2t_static
   zlib-static
   openNURBS-static
-  Ws2_32
-  Psapi
+  ${COREINTERFACE_MSVC_LIBRARIES}
   )
 
 set_property(TARGET brlcad PROPERTY LINK_INTERFACE_LIBRARIES "")

Modified: brlcad/branches/brep-debug/misc/win32-msvc/bootstrap.cpp
===================================================================
--- brlcad/branches/brep-debug/misc/win32-msvc/bootstrap.cpp    2015-03-10 
22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/misc/win32-msvc/bootstrap.cpp    2015-03-10 
22:19:54 UTC (rev 64361)
@@ -4,7 +4,7 @@
 /*
  * This bootstrap's application static initialization on Windows to
  * add BRL-CAD's library installation path to the list of paths
- * searched for DLLs.  This is useful in leu of requiring PATH being
+ * searched for DLLs.  This is useful in lieu of requiring PATH being
  * set apriori, avoids registry entries (and associated permissions
  * required), and avoids putting libraries in the same dir as binaries
  * (which would make our installation hierarchy inconsistent).

Modified: brlcad/branches/brep-debug/src/conv/3dm/3dm-g.cpp
===================================================================
--- brlcad/branches/brep-debug/src/conv/3dm/3dm-g.cpp   2015-03-10 22:08:43 UTC 
(rev 64360)
+++ brlcad/branches/brep-debug/src/conv/3dm/3dm-g.cpp   2015-03-10 22:19:54 UTC 
(rev 64361)
@@ -28,9 +28,11 @@
 
 #include "common.h"
 
+#include "conv3dm-g.hpp"
+
 #include <iostream>
+#include <stdexcept>
 
-#include "conv3dm-g.hpp"
 #include "bu/getopt.h"
 
 
@@ -43,8 +45,8 @@
     bool verbose_mode = false;
     bool random_colors = false;
     bool use_uuidnames = false;
-    char* outputFileName = NULL;
-    const char* inputFileName;
+    const char *output_path = NULL;
+    const char *input_path;
 
     int c;
 
@@ -54,7 +56,7 @@
                break;
 
            case 'o':   /* specify output file name */
-               outputFileName = bu_optarg;
+               output_path = bu_optarg;
                break;
 
            case 'd':   /* debug */
@@ -82,16 +84,25 @@
     }
 
     argv += bu_optind;
-    inputFileName  = argv[0];
+    input_path = argv[0];
 
-    if (outputFileName == NULL) {
+    if (output_path == NULL) {
        std::cerr << usage;
        return 1;
     }
 
-    conv3dm::RhinoConverter converter(outputFileName, verbose_mode);
-    converter.write_model(inputFileName, use_uuidnames, random_colors);
+    conv3dm::RhinoConverter converter(output_path, verbose_mode);
 
+    try {
+       converter.write_model(input_path, use_uuidnames, random_colors);
+    } catch (const std::logic_error &e) {
+       std::cerr << "Conversion failed: " << e.what() << '\n';
+       return 1;
+    } catch (const std::runtime_error &e) {
+       std::cerr << "Conversion failed: " << e.what() << '\n';
+       return 1;
+    }
+
     return 0;
 }
 

Modified: brlcad/branches/brep-debug/src/conv/3dm/conv3dm-g.cpp
===================================================================
--- brlcad/branches/brep-debug/src/conv/3dm/conv3dm-g.cpp       2015-03-10 
22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/src/conv/3dm/conv3dm-g.cpp       2015-03-10 
22:19:54 UTC (rev 64361)
@@ -169,6 +169,38 @@
 }
 
 
+// ONX_Model::Audit() fails to repair UUID issues on some platforms
+// because ON_CreateUuid() is not implemented.
+// This function repairs nil and duplicate UUIDs.
+static void
+repair_model_uuids(ONX_Model &model)
+{
+    std::set<ON_UUID, conv3dm::UuidCompare> uuids;
+    uuids.insert(ROOT_UUID);
+
+    for (int i = 0; i < model.m_idef_table.Count(); ++i) {
+       ON_UUID &idef_uuid = model.m_idef_table[i].m_uuid;
+
+       while (!uuids.insert(idef_uuid).second)
+           idef_uuid = generate_uuid();
+    }
+
+    for (int i = 0; i < model.m_object_table.Count(); ++i) {
+       ON_UUID &object_uuid = model.m_object_table[i].m_attributes.m_uuid;
+
+       while (!uuids.insert(object_uuid).second)
+           object_uuid = generate_uuid();
+    }
+
+    for (int i = 0; i < model.m_layer_table.Count(); ++i) {
+       ON_UUID &layer_uuid = model.m_layer_table[i].m_layer_id;
+
+       while (!uuids.insert(layer_uuid).second)
+           layer_uuid = generate_uuid();
+    }
+}
+
+
 static const char *
 get_object_suffix(const ON_Object &object)
 {
@@ -299,21 +331,11 @@
 {
 
 
-bool RhinoConverter::UuidCompare::operator()(const ON_UUID &left,
-       const ON_UUID &right) const
+inline bool
+UuidCompare::operator()(const ON_UUID &left,
+                       const ON_UUID &right) const
 {
-#define COMPARE(a, b) do { if ((a) != (b)) return (a) < (b); } while (false)
-
-    COMPARE(left.Data1, right.Data1);
-    COMPARE(left.Data2, right.Data2);
-    COMPARE(left.Data3, right.Data3);
-
-    for (int i = 0; i < 8; ++i)
-       COMPARE(left.Data4[i], right.Data4[i]);
-
-#undef COMPARE
-
-    return false;
+    return ON_UuidCompare(&left, &right) == -1;
 }
 
 
@@ -386,7 +408,7 @@
 
 void
 RhinoConverter::ObjectManager::add(bool use_uuid, const ON_UUID &uuid,
-                                  const std::string &prefix, const char * 
suffix)
+                                  const std::string &prefix, const char 
*suffix)
 {
     ModelObject object;
 
@@ -396,7 +418,7 @@
        object.m_name = unique_name(prefix, suffix);
 
     if (!m_obj_map.insert(std::make_pair(uuid, object)).second)
-       throw std::invalid_argument("uuid in use");
+       throw std::invalid_argument("duplicate uuid");
 }
 
 
@@ -405,7 +427,7 @@
     const ON_UUID &parent_uuid, const ON_UUID &member_uuid)
 {
     if (!m_obj_map[parent_uuid].m_members.insert(member_uuid).second)
-       throw std::invalid_argument("member uuid already in use");
+       throw std::invalid_argument("duplicate member uuid");
 }
 
 
@@ -430,7 +452,7 @@
 }
 
 
-inline const std::set<ON_UUID, RhinoConverter::UuidCompare> &
+inline const std::set<ON_UUID, UuidCompare> &
 RhinoConverter::ObjectManager::get_members(const ON_UUID &uuid) const
 {
     return m_obj_map.at(uuid).m_members;
@@ -557,26 +579,27 @@
 void
 RhinoConverter::clean_model()
 {
-    if (m_model.IsValid(&m_log))
-       return;
-
-    m_log.Print("WARNING: Model is NOT valid. Attempting repairs.\n");
-
     m_model.Polish(); // fill in defaults
 
     int repair_count = 0;
-    ON_SimpleArray<int> warnings;
-    m_model.Audit(true, &repair_count, &m_log, &warnings); // repair
+    int num_problems = m_model.Audit(true, &repair_count, &m_log, NULL);
 
-    m_log.Print("Repaired %d objects.\n", repair_count);
+    if (!num_problems)
+       return;
 
-    for (int i = 0; i < warnings.Count(); ++i)
-       m_log.Print("WARNING: %s\n", warnings[i]);
+    m_log.Print("WARNING: Model is NOT valid. Attempting repairs.\n");
 
-    if (m_model.IsValid(&m_log))
-       m_log.Print("Repair successful, model is now valid.\n");
-    else
-       m_log.Print("WARNING: Repair unsuccessful, model is still NOT 
valid.\n");
+    // repair remaining UUID issues
+    if (num_problems != repair_count) {
+       repair_model_uuids(m_model);
+       num_problems = m_model.Audit(true, &repair_count, NULL, NULL);
+    }
+
+    if (num_problems != repair_count) {
+       m_log.Print("Repair failed. Remaining problems:\n");
+       m_model.Audit(false, NULL, &m_log, NULL);
+    } else
+       m_log.Print("Repair successful; model is now valid.\n");
 }
 
 
@@ -1028,7 +1051,9 @@
            create_object(object, object_attrs);
            ++num_created;
        } else {
-           m_log.Print("Skipping object of type %s\n", 
object.ClassId()->ClassName());
+           m_log.Print("Skipping object of type %s. Name: '%s'\n",
+                       object.ClassId()->ClassName(),
+                       w2string(object_attrs.m_name).c_str());
 
            if (m_verbose_mode) {
                object.Dump(m_log);

Modified: brlcad/branches/brep-debug/src/conv/3dm/conv3dm-g.hpp
===================================================================
--- brlcad/branches/brep-debug/src/conv/3dm/conv3dm-g.hpp       2015-03-10 
22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/src/conv/3dm/conv3dm-g.hpp       2015-03-10 
22:19:54 UTC (rev 64361)
@@ -40,6 +40,11 @@
 {
 
 
+struct UuidCompare {
+    bool operator()(const ON_UUID &left, const ON_UUID &right) const;
+};
+
+
 class RhinoConverter
 {
 public:
@@ -56,11 +61,7 @@
 private:
     class Color;
 
-    struct UuidCompare {
-       bool operator()(const ON_UUID &left, const ON_UUID &right) const;
-    };
 
-
     class ObjectManager
     {
     public:

Modified: brlcad/branches/brep-debug/src/conv/step/CMakeLists.txt
===================================================================
--- brlcad/branches/brep-debug/src/conv/step/CMakeLists.txt     2015-03-10 
22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/src/conv/step/CMakeLists.txt     2015-03-10 
22:19:54 UTC (rev 64361)
@@ -73,7 +73,7 @@
     COMMENT "Generating C++ code to express ${SCHEMA_NAME}..."
     VERBATIM)
   add_custom_target(step-express-${SCHEMA_NAME}-${TARGET_SUFFIX}
-    DEPENDS ${EXPRESS_OUTPUT} 
${SCHEMA_OUT_DIR}/step_express_${SCHEMA_NAME}.done)
+    DEPENDS ${EXP2CXX_EXECUTABLE_TARGET} ${EXPRESS_OUTPUT} 
${SCHEMA_OUT_DIR}/step_express_${SCHEMA_NAME}.done)
   set_target_properties(step-express-${SCHEMA_NAME}-${TARGET_SUFFIX} 
PROPERTIES FOLDER "Compilation Utilities")
 
   set(clean_files

Modified: brlcad/branches/brep-debug/src/conv/step/ap242-g/CMakeLists.txt
===================================================================
--- brlcad/branches/brep-debug/src/conv/step/ap242-g/CMakeLists.txt     
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/src/conv/step/ap242-g/CMakeLists.txt     
2015-03-10 22:19:54 UTC (rev 64361)
@@ -5,7 +5,7 @@
   ${CMAKE_CURRENT_SOURCE_DIR}/../step-g
   )
 
-set(STEP_SCHEMA_FILE ${CMAKE_CURRENT_SOURCE_DIR}/../g-ap242/ap242.exp)
+set(STEP_SCHEMA_FILE 
${CMAKE_CURRENT_SOURCE_DIR}/../../../other/stepcode/data/ap242/ap242e1.exp)
 add_definitions(-DAP242)
 
 GENERATE_SCHEMA_INPUTS(${STEP_SCHEMA_FILE} ap242g)

Modified: brlcad/branches/brep-debug/src/conv/step/g-ap242/CMakeLists.txt
===================================================================
--- brlcad/branches/brep-debug/src/conv/step/g-ap242/CMakeLists.txt     
2015-03-10 22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/src/conv/step/g-ap242/CMakeLists.txt     
2015-03-10 22:19:54 UTC (rev 64361)
@@ -5,7 +5,7 @@
   ${CMAKE_CURRENT_SOURCE_DIR}/../g-step
   )
 
-set(STEP_SCHEMA_FILE ${CMAKE_CURRENT_SOURCE_DIR}/ap242.exp)
+set(STEP_SCHEMA_FILE 
${CMAKE_CURRENT_SOURCE_DIR}/../../../other/stepcode/data/ap242/ap242e1.exp)
 add_definitions(-DAP242)
 
 GENERATE_SCHEMA_INPUTS(${STEP_SCHEMA_FILE} gap242)

Deleted: brlcad/branches/brep-debug/src/conv/step/g-ap242/ap242.exp
===================================================================
--- brlcad/branches/brep-debug/src/conv/step/g-ap242/ap242.exp  2015-03-10 
22:08:43 UTC (rev 64360)
+++ brlcad/branches/brep-debug/src/conv/step/g-ap242/ap242.exp  2015-03-10 
22:19:54 UTC (rev 64361)
@@ -1,35076 +0,0 @@
-(*
-  $Id: mim_lf.exp,v 1.36 2014/05/22 15:53:33 jhaenisch Exp $
-ISO TC184/SC4/WG12 N8324 - ISO/TS 10303-442 AP242 managed model based 3d 
engineering - EXPRESS MIM Long form
-*)
-
-(* 
=====================================================================================
 *)
-(* Long form schema generated by The EXPRESS Data Manager  compiler version 
9.8.3B 20121030*)
-(* Fri Feb 07 11:23:49 2014                                                    
            *)
-(* The schema is converted from ISO10303 P11-2003 to ISO10303 P11-1994         
            *)
-(* 
=====================================================================================
 *)
-(*
- This file was generated by the EXPRESS Pretty Printer exppp,
-part of STEPcode (formerly NIST's SCL). exppp version:
-git commit id: v0.7-353-g0a46b86, build timestamp 26 Feb 2014 19:15
-*)
-
-(*
-patched for bug 4665, 4668, 5004, 5052, 5056, 5057
-link_motion_relationship.WR1 has been commented out.
-*)
-SCHEMA ap242_managed_model_based_3d_engineering_mim_lf;
-
-  CONSTANT
-    schema_date_stamp : STRING := 'Mon Mar 24 10:53:49 2014';
-    deprecated_constructed_data_types        : SET OF STRING :=
-                                                [ 'approved_item' ,
-                                                  'certified_item' ,
-                                                  'change_request_item' ,
-                                                  'contracted_item' ,
-                                                  'cc_classified_item' ,
-                                                  'date_time_item' ,
-                                                  
'cc_person_organization_item' ,
-                                                  'cc_specified_item' ,
-                                                  'start_request_item' ,
-                                                  'work_item' ];
-    deprecated_entity_data_types             : SET OF STRING :=
-                                                [ 'cc_design_approval' ,
-                                                  'cc_design_certification' ,
-                                                  'cc_design_contract' ,
-                                                  
'cc_design_date_and_time_assignment' ,
-                                                  
'cc_design_person_and_organization_assignment' ,
-                                                  
'cc_design_security_classification' ,
-                                                  
'cc_design_specification_reference' ,
-                                                  'change' ,
-                                                  'change_request' ,
-                                                  'design_context' ,
-                                                  
'design_make_from_relationship' ,
-                                                  'mechanical_context' ,
-                                                  
'product_category_relationship' ,
-                                                  'start_request' ,
-                                                  'start_work' ,
-                                                  'supplied_part_relationship' 
];
-    deprecated_interfaced_data_types         : SET OF STRING :=
-                                                [ 'document_with_class' ,
-                                                  'ordinal_date' ,
-                                                  
'product_definition_formation_with_specified_source' ,
-                                                  'week_of_year_and_day_date' 
];
-    dummy_gri                                : geometric_representation_item :=
-                                                representation_item( '' )
-                                                  ||
-                                                  
geometric_representation_item(  );
-    dummy_tri                                : topological_representation_item 
:=
-                                                representation_item( '' )
-                                                  ||
-                                                  
topological_representation_item(  );
-    pre_defined_picture_representation_types : SET [0 : ?] OF STRING :=
-                                                [ 'JPEG' ,
-                                                  'PNG' ,
-                                                  'TIFF' ,
-                                                  'BMP' ,
-                                                  'GIF' ];
-    schema_prefix                            : STRING :=
-                                                
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.' ;
-    the_binarys                              : elementary_space :=
-                                                make_elementary_space(
-                                                  es_binarys );
-    the_booleans                             : elementary_space :=
-                                                make_elementary_space(
-                                                  es_booleans );
-    the_complex_numbers                      : elementary_space :=
-                                                make_elementary_space(
-                                                  es_complex_numbers );
-    the_complex_tuples                       : extended_tuple_space :=
-                                                make_extended_tuple_space(
-                                                  the_zero_tuple_space,
-                                                  the_complex_numbers );
-    the_empty_maths_tuple                    : maths_tuple :=
-                                                [];
-    the_empty_space                          : finite_space :=
-                                                make_finite_space(
-                                                  [] );
-    the_generics                             : elementary_space :=
-                                                make_elementary_space(
-                                                  es_generics );
-    the_integer_tuples                       : extended_tuple_space :=
-                                                make_extended_tuple_space(
-                                                  the_zero_tuple_space,
-                                                  the_integers );
-    the_integers                             : elementary_space :=
-                                                make_elementary_space(
-                                                  es_integers );
-    the_logicals                             : elementary_space :=
-                                                make_elementary_space(
-                                                  es_logicals );
-    the_maths_spaces                         : elementary_space :=
-                                                make_elementary_space(
-                                                  es_maths_spaces );
-    the_neg1_one_interval                    : finite_real_interval :=
-                                                make_finite_real_interval(
-                                                  -
-                                                  1,
-                                                  closed,
-                                                  1,
-                                                  closed );
-    the_neghalfpi_halfpi_interval            : finite_real_interval :=
-                                                make_finite_real_interval(
-                                                  (
-                                                  -
-                                                  0.5 )
-                                                  *
-                                                  PI,
-                                                  closed,
-                                                  0.5
-                                                  *
-                                                  PI,
-                                                  closed );
-    the_negpi_pi_interval                    : finite_real_interval :=
-                                                make_finite_real_interval(
-                                                  -
-                                                  PI,
-                                                  open,
-                                                  PI,
-                                                  closed );
-    the_nonnegative_reals                    : real_interval_from_min :=
-                                                make_real_interval_from_min(
-                                                  0,
-                                                  closed );
-    the_numbers                              : elementary_space :=
-                                                make_elementary_space(
-                                                  es_numbers );
-    the_real_tuples                          : extended_tuple_space :=
-                                                make_extended_tuple_space(
-                                                  the_zero_tuple_space,
-                                                  the_reals );
-    the_reals                                : elementary_space :=
-                                                make_elementary_space(
-                                                  es_reals );
-    the_strings                              : elementary_space :=
-                                                make_elementary_space(
-                                                  es_strings );
-    the_tuples                               : extended_tuple_space :=
-                                                make_extended_tuple_space(
-                                                  the_zero_tuple_space,
-                                                  the_generics );
-    the_zero_pi_interval                     : finite_real_interval :=
-                                                make_finite_real_interval(
-                                                  0,
-                                                  closed,
-                                                  PI,
-                                                  closed );
-    the_zero_tuple_space                     : listed_product_space :=
-                                                make_listed_product_space(
-                                                  [] );
-  END_CONSTANT;
-
-  TYPE absorbed_dose_measure = REAL;
-  END_TYPE;
-
-  TYPE acceleration_measure = REAL;
-  END_TYPE;
-
-  TYPE action_items = SELECT
-    ( action,
-     action_directive,
-     action_method,
-     action_property,
-     action_relationship,
-     action_request_solution,
-     alternate_product_relationship,
-     applied_action_assignment,
-     applied_classification_assignment,
-     applied_person_and_organization_assignment,
-     approval_status,
-     assembly_component_usage_substitute,
-     certification,
-     certification_item,
-     characterized_object,
-     class,
-     class_system,
-     classification_item,
-     configuration_design,
-     configuration_effectivity,
-     configuration_item,
-     configured_effectivity_assignment,
-     contract,
-     document_file,
-     document_reference_item,
-     draughting_model,
-     drawing_revision,
-     evaluated_characteristic,
-     executed_action,
-     general_property,
-     identification_item,
-     material_designation,
-     mechanical_design_geometric_presentation_representation,
-     organization,
-     organization_relationship,
-     organizational_project,
-     person_and_organization,
-     presentation_area,
-     product,
-     product_concept,
-     product_concept_feature,
-     product_concept_feature_association,
-     product_concept_feature_category,
-     product_concept_feature_category_usage,
-     product_definition,
-     product_definition_formation,
-     product_definition_formation_relationship,
-     product_definition_relationship,
-     product_definition_substitute,
-     property_definition,
-     requirement_assigned_item,
-     requirement_for_action_resource,
-     resource_property,
-     security_classification,
-     security_classification_level,
-     shape_aspect,
-     shape_representation,
-     versioned_action_request );
-  END_TYPE;
-
-  TYPE action_method_items = SELECT
-    ( action,
-     action_method,
-     action_property,
-     applied_action_assignment,
-     configuration_design,
-     contract,
-     document_file,
-     event_occurrence,
-     organization,
-     organizational_project,
-     person,
-     person_and_organization,
-     product,
-     product_concept,
-     product_definition,
-     product_definition_formation,
-     product_definition_formation_relationship,
-     product_definition_relationship,
-     property_definition );
-  END_TYPE;
-
-  TYPE action_request_item = SELECT
-    ( action,
-     action_method,
-     action_property,
-     action_relationship,
-     alternate_product_relationship,
-     assembly_component_usage_substitute,
-     configuration_design,
-     configuration_effectivity,
-     configuration_item,
-     configured_effectivity_assignment,
-     document_file,
-     draughting_model,
-     drawing_revision,
-     general_property,
-     material_designation,
-     mechanical_design_geometric_presentation_representation,
-     organizational_project,
-     presentation_area,
-     product,
-     product_concept,
-     product_concept_feature,
-     product_concept_feature_association,
-     product_concept_feature_category,
-     product_concept_feature_category_usage,
-     product_definition,
-     product_definition_formation,
-     product_definition_formation_relationship,
-     product_definition_relationship,
-     product_definition_substitute,
-     property_definition,
-     resource_property,
-     shape_aspect,
-     shape_representation,
-     versioned_action_request );
-  END_TYPE;
-
-  TYPE actuated_direction = ENUMERATION OF
-    ( bidirectional,
-     positive_only,
-     negative_only,
-     not_actuated );
-  END_TYPE;
-
-  TYPE ahead_or_behind = ENUMERATION OF
-    ( ahead,
-     exact,
-     behind );
-  END_TYPE;
-
-  TYPE amount_of_substance_measure = REAL;
-  END_TYPE;
-
-  TYPE angle_direction_reference_select = SELECT
-    ( direction,
-     curve,
-     point_path );
-  END_TYPE;
-
-  TYPE angle_direction_reference_with_a2p3d_select = SELECT
-    ( angle_direction_reference_select,
-     axis2_placement_3d );
-  END_TYPE;
-
-  TYPE angle_relator = ENUMERATION OF
-    ( equal,
-     large,
-     small );
-  END_TYPE;
-
-  TYPE annotation_plane_element = SELECT
-    ( draughting_callout,
-     styled_item );
-  END_TYPE;
-
-  TYPE annotation_representation_select = SELECT
-    ( draughting_model,
-     presentation_area,
-     presentation_view,
-     symbol_representation );
-  END_TYPE;
-
-  TYPE annotation_symbol_occurrence_item = SELECT
-    ( annotation_symbol,
-     defined_symbol );
-  END_TYPE;
-
-  TYPE annotation_text_occurrence_item = SELECT
-    ( text_literal,
-     annotation_text,
-     annotation_text_character,
-     defined_character_glyph,
-     composite_text );
-  END_TYPE;
-
-  TYPE approval_item = SELECT
-    ( action,
-     action_directive,
-     action_property,
-     action_request_solution,
-     alternate_product_relationship,
-     applied_action_assignment,
-     applied_classification_assignment,
-     applied_usage_right,
-     assembly_component_usage_substitute,
-     certification,
-     class,
-     class_system,
-     configuration_design,
-     configuration_effectivity,
-     configuration_item,
-     configured_effectivity_assignment,
-     contract,
-     date,
-     directed_action,
-     document,
-     document_file,
-     draughting_model,
-     drawing_revision,
-     effectivity,
-     executed_action,
-     frozen_assignment,
-     general_property,
-     general_property_relationship,
-     group,
-     group_relationship,
-     information_usage_right,
-     material_designation,
-     mechanical_design_geometric_presentation_representation,
-     organizational_project,
-     presentation_area,
-     product,
-     product_concept,
-     product_concept_feature,
-     product_concept_feature_association,
-     product_concept_feature_category,
-     product_concept_feature_category_usage,
-     product_definition,
-     product_definition_formation,
-     product_definition_formation_relationship,
-     product_definition_relationship,
-     product_definition_substitute,
-     property_definition,
-     representation,
-     requirement_assignment,
-     resource_property,
-     security_classification,
-     shape_aspect_relationship,
-     shape_representation,
-     versioned_action_request );
-  END_TYPE;
-
-  TYPE approved_item = SELECT
-    ( certification,
-     change,
-     change_request,
-     configuration_effectivity,
-     configuration_item,
-     contract,
-     product,
-     security_classification,
-     start_request,
-     start_work );
-  END_TYPE;
-
-  TYPE area_measure = REAL;
-  END_TYPE;
-
-  TYPE area_or_view = SELECT
-    ( presentation_area,
-     presentation_view );
-  END_TYPE;
-
-  TYPE area_unit_type = ENUMERATION OF
-    ( circular,
-     rectangular,
-     square );
-  END_TYPE;
-
-  TYPE atom_based_tuple = LIST OF atom_based_value;
-  END_TYPE;
-
-  TYPE atom_based_value = SELECT
-    ( maths_atom,
-     atom_based_tuple );
-  END_TYPE;
-
-  TYPE attribute_classification_item = SELECT
-    ( action_directive,
-     action_method,
-     action_property,
-     action_property_representation,
-     action_relationship,
-     action_request_solution,
-     action_request_status,
-     alternate_product_relationship,
-     applied_action_assignment,
-     applied_action_request_assignment,
-     applied_approval_assignment,
-     applied_certification_assignment,
-     applied_document_reference,
-     applied_document_usage_constraint_assignment,
-     applied_effectivity_assignment,
-     applied_event_occurrence_assignment,
-     applied_external_identification_assignment,
-     applied_identification_assignment,
-     applied_organization_assignment,
-     applied_organizational_project_assignment,
-     applied_person_and_organization_assignment,
-     approval,
-     approval_person_organization,
-     approval_relationship,
-     approval_status,
-     certification,
-     context_dependent_unit,
-     contract,
-     date_and_time_assignment,
-     date_assignment,
-     derived_unit,
-     descriptive_representation_item,
-     document_file,
-     document_relationship,
-     effectivity,
-     event_occurrence_relationship,
-     executed_action,
-     general_property,
-     general_property_relationship,
-     group,
-     group_relationship,
-     information_right,
-     information_usage_right,
-     language,
-     measure_representation_item,
-     measure_with_unit,
-     named_unit,
-     organization_relationship,
-     organizational_address,
-     organizational_project_relationship,
-     person_and_organization,
-     person_and_organization_address,
-     product,
-     product_category,
-     product_concept,
-     product_concept_context,
-     product_definition,
-     product_definition_context,
-     product_definition_formation,
-     product_definition_formation_relationship,
-     product_definition_relationship,
-     property_definition,
-     property_definition_relationship,
-     property_definition_representation,
-     representation,
-     representation_context,
-     representation_item,
-     security_classification,
-     time_interval_relationship,
-     uncertainty_measure_with_unit,
-     usage_association,
-     versioned_action_request );
-  END_TYPE;
-
-  TYPE attribute_identifier = identifier;
-  WHERE
-    wr1: validate_attribute_id( SELF );
-  END_TYPE;
-
-  TYPE attribute_language_item = SELECT
-    ( action,
-     actuated_kinematic_pair,
-     alternate_product_relationship,
-     application_context,
-     applied_certification_assignment,
-     applied_document_reference,
-     applied_document_usage_constraint_assignment,
-     applied_external_identification_assignment,
-     applied_identification_assignment,
-     applied_organizational_project_assignment,
-     applied_security_classification_assignment,
-     approval,
-     approval_relationship,
-     approval_status,
-     assembly_component_usage_substitute,
-     attribute_value_assignment,
-     certification,
-     certification_type,
-     configuration_design,
-     configuration_item,
-     contract,
-     data_environment,
-     date_role,
-     date_time_role,
-     descriptive_representation_item,
-     document_relationship,
-     document_usage_role,
-     draughting_title,
-     effectivity,
-     effectivity_relationship,
-     event_occurrence,
-     external_source,
-     general_property,
-     general_property_relationship,
-     geometric_representation_item,
-     geometric_tolerance,
-     group,
-     group_relationship,
-     identification_role,
-     information_right,
-     information_usage_right,
-     kinematic_pair,
-     make_from_usage_option,
-     mapped_item,
-     multi_language_attribute_assignment,
-     name_assignment,
-     object_role,
-     organization_relationship,
-     organization_role,
-     organizational_project,
-     organizational_project_relationship,
-     organizational_project_role,
-     person_and_organization,
-     person_and_organization_role,
-     presentation_layer_assignment,
-     process_product_association,
-     product,
-     product_concept,
-     product_concept_feature,
-     product_concept_feature_association,
-     product_concept_relationship,
-     product_definition,
-     product_definition_context,
-     product_definition_formation,
-     product_definition_formation_relationship,
-     product_definition_relationship,
-     product_definition_shape,
-     product_definition_substitute,
-     product_related_product_category,
-     property_definition,
-     property_definition_relationship,
-     representation,
-     representation_relationship,
-     requirement_for_action_resource,
-     resource_property,
-     resource_requirement_type,
-     security_classification,
-     security_classification_assignment,
-     shape_aspect,
-     shape_aspect_relationship,
-     shape_representation,
-     styled_item,
-     time_interval_role,
-     topological_representation_item,
-     uncertainty_measure_with_unit,
-     uncertainty_qualifier,
-     usage_association,
-     versioned_action_request,
-     versioned_action_request_relationship );
-  END_TYPE;
-
-  TYPE attribute_type = SELECT
-    ( label,
-     text );
-  END_TYPE;
-
-  TYPE axial_geometry_constraint_element = SELECT
-    ( point,
-     line,
-     circle,
-     plane,
-     cylindrical_surface,
-     conical_surface,
-     spherical_surface,
-     toroidal_surface,
-     surface_of_revolution,
-     sphere,
-     right_circular_cone,
-     right_circular_cylinder,
-     torus,
-     revolved_face_solid,
-     revolved_area_solid );
-  END_TYPE;
-
-  TYPE axis2_placement = SELECT
-    ( axis2_placement_2d,
-     axis2_placement_3d );
-  END_TYPE;
-
-  TYPE b_spline_curve_form = ENUMERATION OF
-    ( polyline_form,
-     circular_arc,
-     elliptic_arc,
-     parabolic_arc,
-     hyperbolic_arc,
-     unspecified );
-  END_TYPE;
-
-  TYPE b_spline_or_composite_curve_select = SELECT
-    ( b_spline_curve,
-     composite_curve );
-  END_TYPE;
-
-  TYPE b_spline_or_rectangular_composite_surface_select = SELECT
-    ( b_spline_surface,
-     rectangular_composite_surface );
-  END_TYPE;
-
-  TYPE b_spline_surface_form = ENUMERATION OF
-    ( plane_surf,
-     cylindrical_surf,
-     conical_surf,
-     spherical_surf,
-     toroidal_surf,
-     surf_of_revolution,
-     ruled_surf,
-     generalised_cone,
-     quadric_surf,
-     surf_of_linear_extrusion,
-     unspecified );
-  END_TYPE;
-
-  TYPE base_solid_select = SELECT
-    ( solid_model,
-     csg_primitive,
-     boolean_result );
-  WHERE
-    wr1: ( NOT ( 
'AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF.PRIMITIVE_2D' IN TYPEOF( SELF 
) ) );
-  END_TYPE;
-
-  TYPE blend_end_condition_select = SELECT
-    ( point_on_curve,
-     edge_curve,
-     vertex );
-  END_TYPE;
-
-  TYPE blend_radius_variation_type = ENUMERATION OF
-    ( linear_blend,
-     cubic_blend,
-     unspecified_blend );
-  END_TYPE;
-
-  TYPE boolean_operand = SELECT
-    ( boolean_result,
-     csg_primitive,
-     half_space_2d,
-     half_space_solid,
-     solid_model );
-  END_TYPE;
-
-  TYPE boolean_operand_2d = SELECT
-    ( bounded_primitive_2d,
-     boolean_result_2d );
-  END_TYPE;
-
-  TYPE boolean_operator = ENUMERATION OF
-    ( union,
-     intersection,
-     difference );
-  END_TYPE;
-
-  TYPE boolean_value = BOOLEAN;
-  END_TYPE;
-
-  TYPE bounded_primitive_2d = SELECT
-    ( area_with_outer_boundary,
-     circular_area,
-     elliptic_area,
-     path_area_with_parameters,
-     polygonal_area,
-     rectangular_area );
-  END_TYPE;
-
-  TYPE box_characteristic_select = SELECT
-    ( box_height,
-     box_width,
-     box_slant_angle,
-     box_rotate_angle );
-  END_TYPE;
-
-  TYPE box_height = positive_ratio_measure;
-  END_TYPE;
-
-  TYPE box_rotate_angle = plane_angle_measure;
-  END_TYPE;
-
-  TYPE box_slant_angle = plane_angle_measure;
-  END_TYPE;
-
-  TYPE box_width = positive_ratio_measure;
-  END_TYPE;
-
-  TYPE camera_model_d3_multi_clipping_intersection_select = SELECT
-    ( camera_model_d3_multi_clipping_union,
-     plane );
-  END_TYPE;
-
-  TYPE camera_model_d3_multi_clipping_union_select = SELECT
-    ( camera_model_d3_multi_clipping_intersection,
-     plane );
-  END_TYPE;
-
-  TYPE capacitance_measure = REAL;
-  END_TYPE;
-
-  TYPE category_usage_item = SELECT
-    ( product_class );
-  END_TYPE;
-
-  TYPE cc_classified_item = SELECT
-    ( assembly_component_usage,
-     product_definition_formation );
-  END_TYPE;
-
-  TYPE cc_person_organization_item = SELECT
-    ( change,
-     change_request,
-     configuration_item,
-     contract,
-     product,
-     product_definition,
-     product_definition_formation,
-     security_classification,
-     start_request,
-     start_work );
-  END_TYPE;
-
-  TYPE cc_specified_item = SELECT
-    ( product_definition,
-     shape_aspect );
-  END_TYPE;
-
-  TYPE celsius_temperature_measure = REAL;
-  END_TYPE;
-
-  TYPE central_or_parallel = ENUMERATION OF
-    ( central,
-     parallel );
-  END_TYPE;
-
-  TYPE certification_item = SELECT
-    ( alternate_product_relationship,
-     make_from_usage_option,
-     product_definition,
-     product_definition_formation,
-     product_definition_formation_relationship,
-     product_definition_relationship );
-  END_TYPE;
-
-  TYPE certified_item = SELECT
-    ( supplied_part_relationship );
-  END_TYPE;
-
-  TYPE chained_representation_link = SELECT
-    ( mapped_item,
-     representation_context,
-     representation_relationship );
-  END_TYPE;
-
-  TYPE change_management_object = SELECT
-    ( action,
-     action_items,
-     action_relationship,
-     class,
-     event_occurrence,
-     project_item );
-  END_TYPE;
-
-  TYPE change_relationship_select = SELECT
-    ( action_relationship,
-     product_definition_formation_relationship,
-     product_definition_relationship,
-     shape_aspect_relationship );
-  END_TYPE;
-
-  TYPE change_request_item = SELECT
-    ( product_definition_formation );
-  END_TYPE;
-
-  TYPE character_spacing_select = SELECT
-    ( length_measure,
-     ratio_measure,
-     measure_with_unit,
-     descriptive_measure );
-  END_TYPE;
-
-  TYPE character_style_select = SELECT
-    ( character_glyph_style_stroke,
-     character_glyph_style_outline,
-     text_style_for_defined_font );
-  END_TYPE;
-
-  TYPE characterized_action_definition = SELECT
-    ( action,
-     action_method,
-     action_method_relationship,
-     action_relationship );
-  END_TYPE;
-
-  TYPE characterized_definition = SELECT
-    ( characterized_object,
-     characterized_product_definition,
-     shape_definition );
-  END_TYPE;
-
-  TYPE characterized_material_property = SELECT
-    ( material_property_representation,
-     product_material_composition_relationship );
-  END_TYPE;
-
-  TYPE characterized_product_composition_value = SELECT
-    ( measure_with_unit );
-  END_TYPE;
-
-  TYPE characterized_product_definition = SELECT
-    ( product_definition,
-     product_definition_relationship );
-  END_TYPE;
-
-  TYPE characterized_resource_definition = SELECT
-    ( action_resource,
-     action_resource_requirement );
-  END_TYPE;
-
-  TYPE class_usage_effectivity_context_item = SELECT
-    ( product_definition );
-  END_TYPE;
-
-  TYPE classification_item = SELECT
-    ( action,
-     action_directive,
-     action_method,
-     action_property,
-     action_relationship,
-     action_request_solution,
-     action_request_status,
-     address,
-     alternate_product_relationship,
-     applied_action_assignment,
-     applied_action_request_assignment,
-     applied_approval_assignment,
-     applied_certification_assignment,
-     applied_contract_assignment,
-     applied_date_and_time_assignment,
-     applied_date_assignment,
-     applied_document_reference,
-     applied_document_usage_constraint_assignment,
-     applied_effectivity_assignment,
-     applied_event_occurrence_assignment,
-     applied_external_identification_assignment,
-     applied_identification_assignment,
-     applied_organization_assignment,
-     applied_organizational_project_assignment,
-     applied_person_and_organization_assignment,
-     applied_security_classification_assignment,
-     approval,
-     approval_person_organization,
-     approval_relationship,
-     approval_status,
-     assembly_component_usage_substitute,
-     calendar_date,
-     certification,
-     characterized_class,
-     characterized_object,
-     class,
-     classified_item,
-     configuration_item,
-     context_dependent_unit,
-     contract,
-     conversion_based_unit,
-     date_and_time,
-     date_and_time_assignment,
-     date_assignment,
-     derived_unit,
-     descriptive_representation_item,
-     directed_action,
-     document_file,
-     document_relationship,
-     document_type,
-     effectivity,
-     event_occurrence,
-     executed_action,
-     feature_definition,
-     general_feature,
-     general_property,
-     general_property_relationship,
-     group,
-     identification_assignment,
-     information_right,
-     information_usage_right,
-     language,
-     material_designation,
-     measure_representation_item,
-     measure_with_unit,
-     multi_language_attribute_assignment,
-     named_unit,
-     organization,
-     organization_relationship,
-     organizational_address,
-     organizational_project,
-     organizational_project_relationship,
-     person,
-     person_and_organization_address,
-     plus_minus_tolerance,
-     process_operation,
-     product,
-     product_concept,
-     product_concept_feature,
-     product_concept_feature_category,
-     product_definition,
-     product_definition_context,
-     product_definition_formation,
-     product_definition_formation_relationship,
-     product_definition_relationship,
-     property_definition,
-     property_definition_representation,
-     representation,
-     representation_context,
-     representation_item,
-     resource_property,
-     security_classification,
-     security_classification_level,
-     shape_aspect,
-     uncertainty_measure_with_unit,
-     usage_association,
-     versioned_action_request );
-  END_TYPE;
-
-  TYPE classified_item = SELECT
-    ( product,
-     product_definition,
-     product_definition_formation );
-  END_TYPE;
-
-  TYPE closed_or_open_shell_select = SELECT
-    ( closed_shell,
-     open_shell );
-  END_TYPE;
-
-  TYPE common_datum_list = LIST [2 : ?] OF datum_reference_element;
-  WHERE
-    wr1: ( SIZEOF( QUERY ( dre <* SELF | ( dre\shape_aspect.of_shape <> 
SELF[1]\shape_aspect.of_shape ) ) ) = 0 );
-  END_TYPE;
-
-  TYPE compound_inner_area_boundary = SELECT
-    ( set_inner_area_boundary );
-  END_TYPE;
-
-  TYPE compound_item_definition = SELECT
-    ( list_representation_item,
-     set_representation_item );
-  END_TYPE;
-
-  TYPE conductance_measure = REAL;
-  END_TYPE;
-
-  TYPE configuration_design_item = SELECT
-    ( product_definition,
-     product_definition_formation );
-  END_TYPE;
-
-  TYPE configured_effectivity_context_item = SELECT
-    ( product_concept_feature_association );
-  END_TYPE;
-
-  TYPE configured_effectivity_item = SELECT
-    ( action_relationship,
-     process_plan,
-     product_definition,
-     product_process_plan );
-  END_TYPE;
-
-  TYPE constraint_group_member = SELECT
-    ( explicit_constraint,
-     simultaneous_constraint_group );
-  END_TYPE;
-
-  TYPE constructive_geometry_representation_or_shape_representation = SELECT
-    ( constructive_geometry_representation,
-     shape_representation );
-  END_TYPE;
-
-  TYPE context_dependent_measure = REAL;
-  END_TYPE;
-
-  TYPE contract_item = SELECT
-    ( action_directive,
-     alternate_product_relationship,
-     directed_action,
-     drawing_revision,
-     executed_action,
-     information_usage_right,
-     organization,
-     person_and_organization,
-     product,
-     product_definition_formation );
-  END_TYPE;
-
-  TYPE contracted_item = SELECT
-    ( product_definition_formation );
-  END_TYPE;
-
-  TYPE count_measure = NUMBER;
-  END_TYPE;
-
-  TYPE csg_2d_area_select = SELECT
-    ( axis2_placement_2d,
-     csg_primitive_solid_2d );
-  END_TYPE;
-
-  TYPE csg_2d_shape_select = SELECT
-    ( mapped_item,
-     axis2_placement_2d,
-     csg_solid_2d );
-  END_TYPE;
-
-  TYPE csg_primitive = SELECT
-    ( block,
-     bounded_primitive_2d,
-(* The following five items have been added to resolve BZ#5057. *)
-     cyclide_segment_solid,
-     eccentric_cone,
-     ellipsoid,
-     faceted_primitive,
-     rectangular_pyramid,
-(* end of insertion *)
-     right_angular_wedge,
-     right_circular_cone,
-     right_circular_cylinder,
-     sphere,
-     torus );
-  END_TYPE;
-
-  TYPE csg_select = SELECT
-    ( boolean_result,
-     csg_primitive );
-  END_TYPE;
-
-  TYPE csg_select_2d = SELECT
-    ( bounded_primitive_2d,
-     boolean_result_2d );
-  END_TYPE;
-
-  TYPE current_element_assignment_select = SELECT
-    ( modify_element,
-     add_element );
-  END_TYPE;
-
-  TYPE curve_font_or_scaled_curve_font_select = SELECT
-    ( curve_style_font_select,
-     curve_style_font_and_scaling );
-  END_TYPE;
-
-  TYPE curve_on_surface = SELECT
-    ( composite_curve_on_surface,
-     pcurve,
-     surface_curve );
-  END_TYPE;
-
-  TYPE curve_or_annotation_curve_occurrence = SELECT
-    ( curve,
-     annotation_curve_occurrence );
-  END_TYPE;
-
-  TYPE curve_or_curve_set = SELECT
-    ( curve,
-     geometric_curve_set );
-  END_TYPE;
-
-  TYPE curve_or_render = SELECT
-    ( curve_style,
-     curve_style_rendering );
-  END_TYPE;
-
-  TYPE curve_or_surface_constraint_element = SELECT
-    ( curve,
-     surface );
-  END_TYPE;
-
-  TYPE curve_style_font_select = SELECT
-    ( curve_style_font,
-     pre_defined_curve_font,
-     externally_defined_curve_font );
-  END_TYPE;
-
-  TYPE curves_or_area = ENUMERATION OF
-    ( curves,
-     area );
-  END_TYPE;
-
-  TYPE date_and_time_item = SELECT
-    ( action,
-     action_directive,
-     action_method,
-     action_property,
-     action_relationship,
-     action_request_solution,
-     alternate_product_relationship,
-     applied_action_assignment,
-     applied_classification_assignment,
-     applied_organization_assignment,
-     applied_person_and_organization_assignment,
-     applied_security_classification_assignment,
-     approval_person_organization,
-     approval_status,
-     assembly_component_usage_substitute,
-     certification,
-     class,
-     class_system,
-     configuration_design,
-     configuration_item,
-     configured_effectivity_assignment,
-     contract,
-     data_quality_definition,
-     directed_action,
-     document,
-     document_file,
-     draughting_model,
-     drawing_revision,
-     effectivity,
-     event_occurrence,
-     executed_action,
-     general_property,
-     information_usage_right,
-     material_designation,
-     mechanical_design_geometric_presentation_representation,
-     organization_relationship,
-     organizational_project,
-     person_and_organization,
-     presentation_area,
-     product,
-     product_concept,
-     product_concept_feature,
-     product_concept_feature_association,
-     product_concept_feature_category,
-     product_concept_feature_category_usage,
-     product_definition,
-     product_definition_formation,
-     product_definition_formation_relationship,
-     product_definition_relationship,
-     product_definition_substitute,
-     property_definition,
-     requirement_for_action_resource,
-     resource_property,
-     rule_action,
-     security_classification,
-     security_classification_level,
-     shape_representation,
-     versioned_action_request );
-  END_TYPE;
-
-  TYPE date_item = SELECT
-    ( action,
-     action_directive,
-     action_method,
-     action_property,
-     action_relationship,
-     action_request_solution,
-     alternate_product_relationship,
-     applied_action_assignment,
-     applied_classification_assignment,
-     applied_organization_assignment,
-     applied_person_and_organization_assignment,
-     applied_security_classification_assignment,
-     approval_person_organization,
-     approval_status,
-     assembly_component_usage_substitute,
-     certification,
-     class,
-     class_system,
-     configuration_design,
-     configuration_item,
-     configured_effectivity_assignment,
-     contract,
-     data_quality_definition,
-     directed_action,
-     document,
-     document_file,
-     draughting_model,
-     drawing_revision,
-     effectivity,
-     event_occurrence,
-     executed_action,
-     general_property,
-     information_usage_right,
-     material_designation,
-     mechanical_design_geometric_presentation_representation,
-     organization_relationship,
-     organizational_project,
-     person_and_organization,
-     presentation_area,
-     product,
-     product_concept,
-     product_concept_feature,
-     product_concept_feature_association,
-     product_concept_feature_category,
-     product_concept_feature_category_usage,
-     product_definition,
-     product_definition_formation,
-     product_definition_formation_relationship,
-     product_definition_relationship,
-     product_definition_substitute,
-     property_definition,
-     requirement_for_action_resource,
-     resource_property,
-     security_classification,
-     security_classification_level,
-     shape_representation,
-     versioned_action_request );
-  END_TYPE;
-
-  TYPE date_time_item = SELECT
-    ( approval_person_organization,
-     certification,
-     change,
-     change_request,
-     contract,
-     product_definition,
-     security_classification,
-     start_request,
-     start_work );
-  END_TYPE;
-
-  TYPE date_time_or_event_occurrence = SELECT
-    ( date_time_select,
-     event_occurrence );
-  END_TYPE;
-
-  TYPE date_time_select = SELECT
-    ( date,
-     date_and_time,
-     local_time );
-  END_TYPE;
-
-  TYPE datum_or_common_datum = SELECT
-    ( common_datum_list,
-     datum );
-  END_TYPE;
-
-  TYPE datum_reference_modifier = SELECT
-    ( datum_reference_modifier_with_value,
-     simple_datum_reference_modifier );
-  END_TYPE;
-
-  TYPE datum_reference_modifier_type = ENUMERATION OF
-    ( circular_or_cylindrical,
-     distance,
-     projected,
-     spherical );
-  END_TYPE;
-
-  TYPE datum_system_or_reference = SELECT
-    ( datum_reference,
-     datum_system );
-  END_TYPE;
-
-  TYPE day_in_month_number = INTEGER;
-  WHERE
-    wr1: ( ( 1 <= SELF ) AND ( SELF <= 31 ) );
-  END_TYPE;
-
-  TYPE day_in_week_number = INTEGER;
-  WHERE
-    wr1: ( ( 1 <= SELF ) AND ( SELF <= 7 ) );
-  END_TYPE;
-
-  TYPE day_in_year_number = INTEGER;
-  WHERE
-    wr1: ( ( 1 <= SELF ) AND ( SELF <= 366 ) );
-  END_TYPE;
-
-  TYPE defined_glyph_select = SELECT
-    ( pre_defined_character_glyph,
-     externally_defined_character_glyph );
-  END_TYPE;
-
-  TYPE defined_symbol_select = SELECT
-    ( pre_defined_symbol,
-     externally_defined_symbol );
-  END_TYPE;
-
-  TYPE derived_property_select = SELECT
-    ( property_definition,
-     action_property,
-     resource_property );
-  END_TYPE;
-
-  TYPE description_attribute_select = SELECT
-    ( action_request_solution,
-     application_context,
-     approval_role,
-     configuration_design,
-     context_dependent_shape_representation,
-     date_role,
-     date_time_role,
-     effectivity,
-     external_source,
-     organization_role,
-     organizational_project,
-     person_and_organization,
-     person_and_organization_role,
-     property_definition_representation,
-     representation );
-  END_TYPE;
-
-  TYPE descriptive_measure = STRING;
-  END_TYPE;
-
-  TYPE detailed_report_type = ENUMERATION OF
-    ( measured_element,
-     inferior_quality_element );
-  END_TYPE;
-
-  TYPE dimension_count = INTEGER;
-  WHERE
-    wr1: ( SELF > 0 );
-  END_TYPE;
-
-  TYPE dimension_extent_usage = ENUMERATION OF
-    ( origin,
-     target );
-  END_TYPE;
-
-  TYPE dimensional_characteristic = SELECT
-    ( dimensional_location,
-     dimensional_size );
-  END_TYPE;
-
-  TYPE direction_count_select = SELECT
-    ( u_direction_count,
-     v_direction_count );
-  END_TYPE;
-
-  TYPE document_identifier_assigned_item = SELECT
-    ( document );
-  END_TYPE;
-
-  TYPE document_reference_item = SELECT
-    ( action_directive,
-     action_method,
-     action_relationship,
-     applied_action_assignment,
-     applied_external_identification_assignment,
-     approval,
-     assembly_component_usage,
-     certification,
-     characterized_class,
-     characterized_object,
-     class,
-     class_system,
-     configuration_design,
-     configuration_item,
-     contract,
-     descriptive_representation_item,
-     dimensional_size,
-     executed_action,
-     externally_conditioned_data_quality_criterion,
-     externally_defined_dimension_definition,
-     externally_defined_item,
-     feature_definition,
-     general_property,
-     group,
-     group_relationship,
-     information_right,
-     information_usage_right,
-     material_designation,
-     measure_representation_item,
-     organization,
-     organizational_project,
-     person,
-     presentation_area,
-     process_plan,
-     product,
-     product_category,
-     product_concept,
-     product_concept_feature,
-     product_concept_feature_category,
-     product_definition,
-     product_definition_context,
-     product_definition_formation,
-     product_definition_formation_relationship,
-     product_definition_process,
-     product_definition_relationship,
-     product_definition_substitute,
-     product_related_product_category,
-     property_definition,
-     representation,
-     representation_item,
-     resource_requirement_type,
-     retention,
-     rule_set,
-     security_classification,
-     shape_aspect,
-     shape_aspect_relationship,
-     usage_association,
-     versioned_action_request );
-  END_TYPE;
-
-  TYPE dose_equivalent_measure = REAL;
-  END_TYPE;
-
-  TYPE draughting_callout_element = SELECT
-    ( annotation_curve_occurrence,
-     annotation_fill_area_occurrence,
-     annotation_symbol_occurrence,
-     annotation_text_occurrence,
-     tessellated_annotation_occurrence );
-  END_TYPE;
-
-  TYPE draughting_model_item_association_select = SELECT
-    ( annotation_occurrence,
-     draughting_callout );
-  END_TYPE;
-
-  TYPE draughting_model_item_definition = SELECT
-    ( applied_action_assignment,
-     applied_action_method_assignment,
-     applied_action_request_assignment,
-     applied_approval_assignment,
-     applied_certification_assignment,
-     applied_classification_assignment,
-     applied_contract_assignment,
-     applied_date_and_time_assignment,
-     applied_date_assignment,
-     applied_document_reference,
-     applied_document_usage_constraint_assignment,
-     applied_effectivity_assignment,
-     applied_event_occurrence_assignment,
-     applied_external_identification_assignment,
-     applied_group_assignment,
-     applied_identification_assignment,
-     applied_ineffectivity_assignment,
-     applied_name_assignment,
-     applied_organization_assignment,
-     applied_organizational_project_assignment,
-     applied_person_and_organization_assignment,
-     applied_security_classification_assignment,
-     applied_time_interval_assignment,
-     applied_usage_right,
-     dimensional_size,
-     geometric_tolerance,
-     product_definition_relationship,
-     product_definition_shape,
-     property_definition,
-     shape_aspect,
-     shape_aspect_relationship );
-  END_TYPE;
-
-  TYPE draughting_model_item_select = SELECT
-    ( mapped_item,
-     styled_item,
-     axis2_placement,
-     camera_model,
-     draughting_callout );
-  END_TYPE;
-
-  TYPE draughting_subfigure_representation_item = SELECT
-    ( annotation_occurrence,
-     draughting_callout,
-     axis2_placement );
-  END_TYPE;
-
-  TYPE draughting_symbol_representation_item = SELECT
-    ( annotation_curve_occurrence,
-     annotation_symbol_occurrence,
-     annotation_fill_area_occurrence,
-     annotation_text_occurrence,
-     axis2_placement );
-  END_TYPE;
-
-  TYPE draughting_titled_item = SELECT
-    ( drawing_revision,
-     drawing_sheet_revision );
-  END_TYPE;
-
-  TYPE edge_or_curve = SELECT
-    ( curve,
-     edge );
-  END_TYPE;
-
-  TYPE effectivity_item = SELECT
-    ( action,
-     action_method,
-     action_method_relationship,
-     action_property,
-     action_relationship,
-     assembly_component_usage_substitute,
-     class,
-     class_system,
-     configuration_design,
-     configuration_item,
-     configured_effectivity_assignment,
-     document_file,
-     draughting_model,

@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.


------------------------------------------------------------------------------
Dive into the World of Parallel Programming The Go Parallel Website, sponsored
by Intel and developed in partnership with Slashdot Media, is your hub for all
things parallel software development, from weekly thought leadership blogs to
news, videos, case studies, tutorials and more. Take a look and join the 
conversation now. http://goparallel.sourceforge.net/
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to