Revision: 57317
http://sourceforge.net/p/brlcad/code/57317
Author: tbrowder2
Date: 2013-08-30 14:17:45 +0000 (Fri, 30 Aug 2013)
Log Message:
-----------
add new DocBook version of Lee Butler's Power Point presentation
Added Paths:
-----------
brlcad/trunk/doc/docbook/presentations/en/brlcad-app-devel.xml
Added: brlcad/trunk/doc/docbook/presentations/en/brlcad-app-devel.xml
===================================================================
--- brlcad/trunk/doc/docbook/presentations/en/brlcad-app-devel.xml
(rev 0)
+++ brlcad/trunk/doc/docbook/presentations/en/brlcad-app-devel.xml
2013-08-30 14:17:45 UTC (rev 57317)
@@ -0,0 +1,1800 @@
+<?xml version="1.0" encoding="us-ascii"?>
+<article version="5.0"
+ xml:lang="en"
+ xmlns="http://docbook.org/ns/docbook"
+ xmlns:xl="http://www.w3.org/1999/xlink">
+ <info>
+ <title>Building Applications</title>
+ </info>
+
+ <!-- Next 'div' was a 'draw:page'. -->
+ <anchor xml:id="Application_Development_with_BRL-CAD"/>
+
+ <!-- Next 'div' is a draw:frame. -->
+ <!-- Next 'div' was a 'draw:text-box'. -->
+ <orderedlist><listitem>
+ <para> Application Development with BRL-CAD</para>
+ </listitem>
+ </orderedlist>
+ <!-- Next 'div' is a draw:frame. -->
+ <!-- Next 'div' was a 'draw:text-box'. -->
+ <orderedlist><listitem>
+ <para>Lee A. Butler</para>
+ <para>John Anderson</para>
+ </listitem>
+ </orderedlist>
+ <!-- Next 'div' was a 'draw:page'. -->
+
+ <para> <!-- Next 'div' is a draw:frame. -->
+ <!-- Next 'div' was a 'draw:text-box'. -->
+<orderedlist><listitem>
+ <para> WARNING Code Intensive Presentation</para>
+ </listitem>
+</orderedlist> <!-- Next 'div' is a draw:frame. -->
+ <!-- Next 'div' was a 'draw:text-box'. -->
+<orderedlist><listitem>
+ <para> For Code Warriors Only!</para>
+ <para>non-programmers will need atropine, caffeine, and
electro-shock therapy</para>
+ <para>(run, do not walk, to the nearest exit)</para>
+ </listitem>
+</orderedlist></para>
+
+<!-- Next 'div' was a 'draw:page'. -->
+<anchor xml:id="Overview"/> <!-- Next 'div' is a draw:frame. -->
+ <!-- Next 'div' was a 'draw:text-box'. -->
+<orderedlist><listitem>
+ <para> Overview</para>
+ </listitem>
+</orderedlist> <!-- Next 'div' is a draw:frame. -->
+ <!-- Next 'div' was a 'draw:text-box'. -->
+<itemizedlist>
+ <listitem>
+ <para>Header files</para>
+ </listitem>
+ <listitem>
+ <para>Shooting Rays</para>
+ </listitem>
+ <listitem>
+ <para>Ray-Tracing User Interface Framework (RTUIF)</para>
+ </listitem>
+ <listitem>
+ <para>Geometry Forms</para>
+ </listitem>
+ <listitem>
+ <para>Creating Geometry</para>
+ </listitem>
+ <listitem>
+ <para>Reading Geometry</para>
+ </listitem>
+ <listitem>
+ <para>Modifying Geometry</para>
+ </listitem>
+ </itemizedlist>
+<!-- Next 'div' was a 'draw:page'. -->
+<anchor xml:id="Header_Files"/> <!-- Next 'div' is a draw:frame. -->
+ <!-- Next 'div' was a 'draw:text-box'. -->
+<orderedlist><listitem>
+ <para>Header Files</para>
+ </listitem>
+</orderedlist> <!-- Next 'div' is a draw:frame. -->
+ <!-- Next 'div' was a 'draw:text-box'. -->
+<itemizedlist>
+ <listitem>
+ <para>The Big-6</para>
+ </listitem>
+ </itemizedlist>
+ <!-- Next 'div' is a draw:frame. -->
+<informaltable frame="none">
+ <tgroup cols="2">
+ <colspec colname="c1" colwidth="50*"/>
+ <colspec colname="c2" colwidth="50*"/>
+ <tbody>
+ <row>
+ <entry><para><orderedlist><listitem>
+ <para>Header</para>
+ </listitem>
+</orderedlist></para></entry>
+ <entry><para><orderedlist><listitem>
+ <para>Library</para>
+ </listitem>
+</orderedlist></para></entry>
+ </row>
+ <row>
+ <entry><para><orderedlist><listitem>
+ <para>bu.h</para>
+ </listitem>
+</orderedlist></para></entry>
+ <entry><para><orderedlist><listitem>
+ <para>libbu</para>
+ </listitem>
+</orderedlist></para></entry>
+ </row>
+ <row>
+ <entry><para><orderedlist><listitem>
+ <para>bn.h</para>
+ </listitem>
+</orderedlist></para></entry>
+ <entry><para><orderedlist><listitem>
+ <para>libbn</para>
+ </listitem>
+</orderedlist></para></entry>
+ </row>
+ <row>
+ <entry><para><orderedlist><listitem>
+ <para>raytrace.h</para>
+ </listitem>
+</orderedlist></para></entry>
+ <entry><para><orderedlist><listitem>
+ <para>librt</para>
+ </listitem>
+</orderedlist></para></entry>
+ </row>
+ <row>
+ <entry><para><orderedlist><listitem>
+ <para>rtgeom.h</para>
+ </listitem>
+</orderedlist></para></entry>
+ <entry><para><orderedlist><listitem>
+ <para>librt / libwdb</para>
+ </listitem>
+</orderedlist></para></entry>
+ </row>
+ <row>
+ <entry><para><orderedlist><listitem>
+ <para>wdb.h</para>
+ </listitem>
+</orderedlist></para></entry>
+ <entry><para><orderedlist><listitem>
+ <para>libwdb</para>
+ </listitem>
+</orderedlist></para></entry>
+ </row>
+ <row>
+ <entry><para><orderedlist><listitem>
+ <para>vmath.h</para>
+ </listitem>
+</orderedlist></para></entry>
+ <entry><para><orderedlist><listitem>
+ <para>(data types)</para>
+ </listitem>
+</orderedlist></para></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <!-- Next 'div' was a 'draw:page'. -->
+<anchor xml:id="Prototype_Application__rtexample_c"/>
+<!-- Next 'div' is a draw:frame. -->
+ <!-- Next 'div' was a 'draw:text-box'. -->
+<orderedlist><listitem>
+ <para> Prototype Application: rtexample.c</para>
+ </listitem>
+</orderedlist> <!-- Next 'div' is a draw:frame. -->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Opens a database</para>
+ </listitem>
+ <listitem>
+ <para>Retrieves geometry</para>
+ </listitem>
+ <listitem>
+ <para>Prepares geometry for raytrace</para>
+ </listitem>
+ <listitem>
+ <para>Performs raytrace</para>
+ </listitem>
+ <listitem>
+ <para>See source tree: rt/rtexample.c</para>
+ </listitem>
+ </itemizedlist>
+<!-- Next 'div' was a 'draw:page'. -->
+<anchor xml:id="Necessary_Headers"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Necessary Headers</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>The conf.h and machine.h are ubiquitous in almost all BRLCAD
apps</para>
+ </listitem>
+ <listitem>
+ <para>The raytrace.h is present for geometry programs</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>Includes some additional headers</para>
+ </listitem>
+ <listitem>
+ <para>Contains most ray-tracing data structure definitions</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Opening_the_Database"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para> Opening the Database</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Opens database file</para>
+ </listitem>
+ <listitem>
+ <para>Builds a directory of objects in the database</para>
+ </listitem>
+ <listitem>
+ <para>Allows us to retrieve individual objects</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Reading_Geometry"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para> Reading Geometry</para>
+ </listitem>
+</orderedlist> <!-- Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Retrieves tree top specified by argv[2] into a working set used
by librt</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Preparing_Geometry_for_Raytracing"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Preparing Geometry for Raytracing</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Pre-computes useful terms for each primitive</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>E.g.: triangle normals, function roots, trig terms</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para>Builds space partition tree to accelerate ray-trace</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Application_Struct___Shot"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Application Struct and Shot</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>The application struct contains information about the
+ ray that is to be computed and what should be done with the
+ results.</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!-- Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Application_Struct"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Application Struct</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Miss_Routine"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Miss Routine</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Called when ray does not hit any geometry</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Hit_Routine"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Hit Routine</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>hit(register struct application *ap, /* see raytrace.h */</para>
+ <para>struct partition *PartHeadp) /* see raytrace.h */</para>
+ <para>{</para>
+ <para>register struct partition *pp;</para>
+ <para>register struct hit *hitp;</para>
+ <para>point_t pt;</para>
+ <para>for (pp = PartHeadp->pt_forw;</para>
+ <para>pp != PartHeadp;</para>
+ <para>pp = pp->pt_forw ) {</para>
+ <para>hitp = pp->pt_inhit;</para>
+ <para>VJOIN1( pt, ap->a_ray.r_pt, hitp->hit_dist,
ap->a_ray.r_dir);</para>
+ </listitem>
+</orderedlist><itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para><orderedlist><listitem>
+ <para>VPRINT(Hit Point, pt);</para>
+ </listitem>
+</orderedlist></para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<orderedlist><listitem>
+ <para>}</para>
+ <para>return 1; /* value returned by rt_shootray();</para>
+ <para>}</para>
+ </listitem>
+</orderedlist>
+<!-- Next 'div' was a 'draw:page'. -->
+<anchor xml:id="Hit_Routine_Breakdown"/>
+<!-- Next 'div' is a draw:frame. -->
+<orderedlist><listitem>
+ <para> Hit Routine Breakdown</para>
+ </listitem>
+</orderedlist>
+<!-- Next 'div' is a draw:frame. -->
+<itemizedlist>
+ <listitem>
+ <para>Partition Structure contains information about intervals
+ of the ray which pass through geometry</para>
+ </listitem>
+ <listitem>
+ <para>Hit structure contains information about an individual
boundary/ray intersection</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Partition_Structure"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para> Partition Structure</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>From h/raytrace.h</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Hit_Structure"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Hit Structure</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para> struct hit {</para>
+ <para>long hit_magic;</para>
+ <para>fastf_t hit_dist; /* dist from r_pt to hit_point */</para>
+ <para>point_t hit_point; /* Intersection point */</para>
+ <para>vect_t hit_normal; /* Surface Normal at hit_point */</para>
+ <para>vect_t hit_vpriv; /* PRIVATE vector for xxx_*() */</para>
+ <para>genptr_t hit_private; /* PRIVATE handle for xxx_shot() */</para>
+ <para>int hit_surfno; /* solid-specific surface indicator */</para>
+ <para>struct xray *hit_rayp; /* pointer to defining ray */</para>
+ <para>};</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Hit_Routine__Again_"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para> Hit Routine (Again)</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para> hit(register struct application *ap, /* see raytrace.h */</para>
+ <para>struct partition *PartHeadp) /* see raytrace.h */</para>
+ <para>{</para>
+ <para>register struct partition *pp;</para>
+ <para>register struct hit *hitp;</para>
+ <para>point_t pt;</para>
+ <para>for (pp = PartHeadp->pt_forw;</para>
+ <para>pp != PartHeadp;</para>
+ <para>pp = pp->pt_forw ) {</para>
+ <para>hitp = pp->pt_inhit;</para>
+ <para>VJOIN1(pt, ap->a_ray.r_pt, hitp->hit_dist,
ap->a_ray.r_dir);</para>
+ </listitem>
+</orderedlist><itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para><orderedlist><listitem>
+ <para>VPRINT(Hit Point, pt);</para>
+ </listitem>
+</orderedlist></para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<orderedlist><listitem>
+<para>}</para>
+<para>return 1; /* value returned by rt_shootray();</para>
+<para>}</para>
+</listitem>
+</orderedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Using_the_RTUIF"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Using the RTUIF</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Makes shooting grids of rays easy.</para>
+ </listitem>
+ <listitem>
+ <para>Uses the same command line interface as rt.</para>
+ </listitem>
+ <listitem>
+ <para>Foundation for: rt, rtweight, rthide, and other raytracing based
applications.</para>
+ </listitem>
+ <listitem>
+ <para>Simplest example shown in rt/viewdummy.c in source tree</para>
+ </listitem>
+ </itemizedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="The_5_RTUIF_Functions"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>The 5 RTUIF Functions</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>view_init</para>
+ </listitem>
+ <listitem>
+ <para>view_setup</para>
+ </listitem>
+ <listitem>
+ <para>view_2init</para>
+ </listitem>
+ <listitem>
+ <para>view_pixel</para>
+ </listitem>
+ <listitem>
+ <para>view_end</para>
+ </listitem>
+ </itemizedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="RTUIF_Routines1"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>RTUIF Routines1</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>int view_init(struct application *ap, char *file,</para>
+ <para>char *obj, int minus_o);</para>
+ <para>Called by main() at the start of a run. Returns 1 if framebuffer
should be opened, else 0.</para>
+ <para>void view_setup(struct rt_i *rtip);</para>
+ </listitem>
+</orderedlist><itemizedlist>
+ <listitem>
+ <para><orderedlist><listitem>
+ <para>Called by do_prep(), just before rt_prep() is
+ called, in do.c. This allows the lighting model to get
+ set up for this frame, e.g., generate lights, associate
+ materials routines, etc.</para>
+ </listitem>
+</orderedlist></para>
+ </listitem>
+ </itemizedlist>
+<orderedlist><listitem>
+ <para>Void view_2init(struct application *ap);</para>
+ <para>Called at the beginning of a frame. Called by</para>
+ <para>do_frame() just before raytracing starts.</para>
+ </listitem>
+</orderedlist><!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="RTUIF_Routines2"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>RTUIF Routines2</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para> int rayhit(struct application *ap, struct partition
*PartHeadp);</para>
+ <para>Called via a_hit linkage from rt_shootray() when ray hits.</para>
+ <para>int raymiss(struct application *ap);</para>
+ <para>Called via a_miss linkage from rt_shootray() when ray
misses.</para>
+ </listitem>
+</orderedlist><!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="RTUIF_Routines3"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>RTUIF Routines3</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para> void view_pixel(struct application *ap);</para>
+ <para>Called by worker() after the end of proccessing for</para>
+ <para>each pixel.</para>
+ <para>void view_end(struct application *ap);</para>
+ <para>Called in do_frame() at the end of a frame, just after
raytracing completes.</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="So_Much_for_the_Trivialities"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>So Much for the Trivialities</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Now we look at actual geometry</para>
+ </listitem>
+ </itemizedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Thinking_About_Geometry"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para> Thinking About Geometry</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>How to create it</para>
+ </listitem>
+ <listitem>
+ <para>How to read it</para>
+ </listitem>
+ <listitem>
+ <para>Doing anything useful with it</para>
+ </listitem>
+ </itemizedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Geometric_Representation"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Geometric Representation</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>BRL-CAD geometry has 3 forms:</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>External (Disk/DB)</para>
+ <itemizedlist>
+ <listitem>
+ <para>Space efficient</para>
+ </listitem>
+ <listitem>
+ <para>Network integers (Big-Endian)</para>
+ </listitem>
+ <listitem>
+ <para>IEEE double-precision floating point
(Big-Endian)</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>Internal (Editing)</para>
+ <itemizedlist>
+ <listitem>
+ <para>Convenient parameter editing</para>
+ </listitem>
+ <listitem>
+ <para>Host float/int representation</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>Prepped (Raytrace)</para>
+ <itemizedlist>
+ <listitem>
+ <para>Fast ray/primitive intersections</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="On-Disk_Representation"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>On-Disk Representation</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Space Efficient</para>
+ </listitem>
+ <listitem>
+ <para>Machine independent</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>Only in new database format</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para>Database access is separate from object retrieval.</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>Database layer returns named objects.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Does not understand content.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ <listitem>
+ <para>Primitive objects get Bag-o-Bytes to turn into in-memory
representation.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Have no knowledge of data origins</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Internal_Representation"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Internal Representation</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Convenient editing form</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>Host format floating point and integers</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para>Must be exported to be written to disk</para>
+ </listitem>
+ <listitem>
+ <para>Primitive shape data structures defined in h/rtgeom.h</para>
+ </listitem>
+ <listitem>
+ <para>Combination (and hence region) structure defined in
raytrace.h</para>
+ </listitem>
+ </itemizedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Prep-ed_Representation"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para> Prepped Representation</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>The form that is actually raytraced</para>
+ </listitem>
+ <listitem>
+ <para>Created from internal form by rt_prep() call</para>
+ </listitem>
+ <listitem>
+ <para>May not include internal form</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>Saves memory</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para>May include additional fields</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>Pre-computed values, additional data</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Simple_Database_Appilcation"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Simple Database Application</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Necessary headers</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Opening_The_Database"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Opening The Database</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="_Creating_Geometry"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Creating Geometry</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Note: All db units are in mm</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>Set mk_conv2mm global for other units</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Getting_Geometry"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para> Getting Geometry</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>To retrieve geometry, we have to get an internal
representation</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Primitive_-Methods-"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Primitive Methods</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Retrieved geometry has a specific set of defined operations and
methods available</para>
+ </listitem>
+ <listitem>
+ <para>See h/raytrace.h for a description of</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><orderedlist><listitem>
+ <para>struct rt_functab</para>
+ </listitem>
+</orderedlist></para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para>Primitives should implement every method</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>Some do not. See librt/table.c for specifics</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Putting_Geometry_Back"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Putting Geometry Back</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Database I/O layer converts from internal to external
format.</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Building_Boolean_Trees"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Building Boolean Trees</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Regions/combinations used to store boolean trees.</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>Both are same type of database record</para>
+ </listitem>
+ <listitem>
+ <para>old GIFT form detailed here</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para>Simple boolean tree that contains</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>Names of objects</para>
+ </listitem>
+ <listitem>
+ <para>Boolean operations.</para>
+ </listitem>
+ <listitem>
+ <para>Matrix transformations</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para>Database record contains no actual geometry.</para>
+ </listitem>
+ <listitem>
+ <para>Example code taken from</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>libwdb/wdb_example.c</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Constructing_Boolean_List"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Constructing Boolean List</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Build the list of elements first:</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Regions_Combinations"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Regions/Combinations</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Constructing the actual combination record</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>Note: use mk_lcomb/mk_comb for inital creation only!</para>
+ <itemizedlist>
+ <listitem>
+ <para>caveat: can use to update boolean tree under special
conditions</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Retrieving_A_Combination"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Retrieving A Combination</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Simple retrieval only gets:</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>List of elements</para>
+ </listitem>
+ <listitem>
+ <para>Boolean operations</para>
+ </listitem>
+ <listitem>
+ <para>Matrix transformations.</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Combination_Write-Back"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Combination Write-Back</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Modify the boolean tree</para>
+ </listitem>
+ <listitem>
+ <para>Write back out to db</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Combination_Tree_Info"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Combination Tree Info</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Need to prep the tree to obtain geometry</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>First, create rt instance struct rt_i object</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Processing_combination_tree"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Processing combination tree</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Now to retrieve a treetop and prep:</para>
+ </listitem>
+ <listitem>
+ <para>This could have been any level in the tree, not just a
region.</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Accessing_Prepped_Regions"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Accessing Prepped Regions</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>rtip has list of regions</para>
+ </listitem>
+ <listitem>
+ <para>Access as a linked list</para>
+ </listitem>
+ <listitem>
+ <para>Example: getting bounding box of regions</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Making_Temporary_Changes"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Making Temporary Changes</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Changes that only last for 1 application run</para>
+ </listitem>
+ <listitem>
+ <para>Changes do not reside in on-disk database</para>
+ </listitem>
+ </itemizedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Dynamic_Geometry"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Dynamic Geometry</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Involves special inmem database</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para><itemizedlist>
+ <listitem>
+ <para>Contains only modifications</para>
+ </listitem>
+ <listitem>
+ <para>Akin to union filesystem of Unix</para>
+ </listitem>
+ </itemizedlist>
+</para>
+ </listitem>
+ </itemizedlist>
+<itemizedlist>
+ <listitem>
+ <para>Directory structure tracks whether current version of object is
on disk or in inmem database</para>
+ </listitem>
+ <listitem>
+ <para>Object retrieval gets most current version</para>
+ </listitem>
+ <listitem>
+ <para>Writes to inmem arranged though special wdb_dbopen() call</para>
+ </listitem>
+ </itemizedlist>
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Accessing_inmem_database"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Accessing inmem database</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>small difference in wdb_dbopen call</para>
+ </listitem>
+ <listitem>
+ <para>all writes to this rt_wdb will go to memory database only</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Closing_the_Database"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Closing the Database</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<itemizedlist>
+ <listitem>
+ <para>Important to flush data and purge data structures!</para>
+ </listitem>
+ </itemizedlist>
+ <!--
+Next 'div' added for floating.
+-->
+ <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<!--
+Next 'div' was a 'draw:page'.
+-->
+<anchor xml:id="Thank_you"/> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Thank you</para>
+ </listitem>
+</orderedlist> <!--
+Next 'div' is a draw:frame.
+-->
+ <!--
+Next 'div' was a 'draw:text-box'.
+-->
+<orderedlist><listitem>
+ <para>Lee A. Butler</para>
+ </listitem>
+</orderedlist><orderedlist><listitem>
+ <para><link
xl:hrexf="mailto:[email protected]">[email protected].</link>
+ <link xl:href="mailto:[email protected]">mil</link></para>
+ </listitem>
+</orderedlist><orderedlist><listitem>
+ <para>410 278 9200</para>
+ </listitem>
+</orderedlist>
+</article>
Property changes on:
brlcad/trunk/doc/docbook/presentations/en/brlcad-app-devel.xml
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/xml
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits