<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_20) on Tue Jul 20 22:57:44 BST 2010 -->
<TITLE>
RrCSG
</TITLE>

<META NAME="date" CONTENT="2010-07-20">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="RrCSG";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/RrCSG.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCircle.html" title="class in org.reprap.geometry.polygons"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSGOp.html" title="enum in org.reprap.geometry.polygons"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/reprap/geometry/polygons/RrCSG.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="RrCSG.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.reprap.geometry.polygons</FONT>
<BR>
Class RrCSG</H2>
<PRE>
java.lang.Object
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.reprap.geometry.polygons.RrCSG</B>
</PRE>
<HR>
<DL>
<DT><PRE>public class <B>RrCSG</B><DT>extends java.lang.Object</DL>
</PRE>

<P>
RepRap Constructive Solid Geometry class
 
 RrCSG: 2D polygons as boolean combinations of half-planes
 First version 14 November 2005
<P>

<P>
<HR>

<P>
<!-- =========== FIELD SUMMARY =========== -->

<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#beingDestroyed">beingDestroyed</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Flag to prevent cyclic graphs going round forever</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#c1">c1</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Non-leaf child operands</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#c2">c2</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#comp">comp</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The complement (if there is one)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#complexity">complexity</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;How much is in here (leaf count)?</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrHalfPlane.html" title="class in org.reprap.geometry.polygons">RrHalfPlane</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#hp">hp</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Leaf half plane</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private static&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#n">n</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Null set</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSGOp.html" title="enum in org.reprap.geometry.polygons">RrCSGOp</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#op">op</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Type of set</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private static&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#u">u</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Universal set</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private </CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#RrCSG(boolean)">RrCSG</A></B>(boolean&nbsp;b)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;One off constructor for the universal and null sets</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#RrCSG(org.reprap.geometry.polygons.RrCSG)">RrCSG</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;c)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Deep copy</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private </CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#RrCSG(org.reprap.geometry.polygons.RrCSG, org.reprap.geometry.polygons.RrCSG)">RrCSG</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;a,
      <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;b)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Private constructor for common work setting up booleans</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#RrCSG(org.reprap.geometry.polygons.RrHalfPlane)">RrCSG</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrHalfPlane.html" title="class in org.reprap.geometry.polygons">RrHalfPlane</A>&nbsp;h)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Make a leaf from a single half-plane</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#c_1()">c_1</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get children, operator etc</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#c_2()">c_2</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#categorise(org.reprap.geometry.polygons.RrCSG)">categorise</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;leafA)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This takes a complicated expression assumed to contain multiple instances of leafA
 and returns the equivalent CSG expression involving just leafA.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#complement()">complement</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Lazy evaluation for complement.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#complexity()">complexity</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#crossCategorise(org.reprap.geometry.polygons.RrCSG, org.reprap.geometry.polygons.RrCSG)">crossCategorise</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;leafA,
                <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;leafB)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This takes a complicated expression assumed to contain multiple instances of leafA
 and leafB and returns the equivalent CSG expression involving at most leafA and leafB once 
 (except for non-manifold shapes).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#destroy()">destroy</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Destroy me and all that I point to</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#difference(org.reprap.geometry.polygons.RrCSG, org.reprap.geometry.polygons.RrCSG)">difference</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;a,
           <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;b)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set difference is intersection with complement</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#forceRegularise()">forceRegularise</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Force an approximation to the regulariseing of a set
 This assumes simplify has been run over the set</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#intersection(org.reprap.geometry.polygons.RrCSG, org.reprap.geometry.polygons.RrCSG)">intersection</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;a,
             <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;b)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean operation to perform an intersection</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#leaf(org.reprap.geometry.polygons.Rr2Point)">leaf</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/Rr2Point.html" title="class in org.reprap.geometry.polygons">Rr2Point</A>&nbsp;p)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;leaf find the half-plane that generates the value for a point</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#nothing()">nothing</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#offset(double)">offset</A></B>(double&nbsp;d)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Offset by a distance (+ve or -ve)
 TODO: this should keep track of complements</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSGOp.html" title="enum in org.reprap.geometry.polygons">RrCSGOp</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#operator()">operator</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrHalfPlane.html" title="class in org.reprap.geometry.polygons">RrHalfPlane</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#plane()">plane</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#prune(org.reprap.geometry.polygons.RrRectangle)">prune</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrRectangle.html" title="class in org.reprap.geometry.polygons">RrRectangle</A>&nbsp;b)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Prune the set to a box</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#regularise()">regularise</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Regularise a set with simple contents ( <= 4 )
 This assumes simplify has been run over the set</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#replaceAllSameLeaves(org.reprap.geometry.polygons.RrCSG, double)">replaceAllSameLeaves</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;leaf,
                     double&nbsp;tolerance)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace duplicate of leaf with leaf itself
 TODO: this should also use known complements</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#RrCSGFromBox(org.reprap.geometry.polygons.RrRectangle)">RrCSGFromBox</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrRectangle.html" title="class in org.reprap.geometry.polygons">RrRectangle</A>&nbsp;b)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Make a rectangle</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#simplify_r(org.reprap.geometry.polygons.RrCSG, double)">simplify_r</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;root,
           double&nbsp;tolerance)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace duplicate of all leaves with the last instance of each; also
 link up complements.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#simplify(double)">simplify</A></B>(double&nbsp;tolerance)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Replace duplicate of all leaves with the last instance of each</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#toString_r(java.lang.String, java.lang.String)">toString_r</A></B>(java.lang.String&nbsp;result,
           java.lang.String&nbsp;white)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert to a string</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#toString()">toString</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#union(org.reprap.geometry.polygons.RrCSG, org.reprap.geometry.polygons.RrCSG)">union</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;a,
      <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;b)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Boolean operations, with de Morgan simplifications</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#uniqueList_r(java.util.ArrayList)">uniqueList_r</A></B>(java.util.ArrayList&lt;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&gt;&nbsp;list)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Run through a GSG expression looking at its leaves and return
 a list of the distinct leaves.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>private &nbsp;java.util.ArrayList&lt;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#uniqueList()">uniqueList</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Run through a GSG expression looking at its leaves and return
 a list of the distinct leaves.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#universe()">universe</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Universal or null set</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#value(org.reprap.geometry.polygons.Rr2Point)">value</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/Rr2Point.html" title="class in org.reprap.geometry.polygons">Rr2Point</A>&nbsp;p)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"Potential" value of a point; i.e.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrInterval.html" title="class in org.reprap.geometry.polygons">RrInterval</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html#value(org.reprap.geometry.polygons.RrRectangle)">value</A></B>(<A HREF="../../../../org/reprap/geometry/polygons/RrRectangle.html" title="class in org.reprap.geometry.polygons">RrRectangle</A>&nbsp;b)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The interval value of a box (analagous to point)</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->

<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="u"><!-- --></A><H3>
u</H3>
<PRE>
private static final <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>u</B></PRE>
<DL>
<DD>Universal set
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="n"><!-- --></A><H3>
n</H3>
<PRE>
private static final <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>n</B></PRE>
<DL>
<DD>Null set
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="hp"><!-- --></A><H3>
hp</H3>
<PRE>
private <A HREF="../../../../org/reprap/geometry/polygons/RrHalfPlane.html" title="class in org.reprap.geometry.polygons">RrHalfPlane</A> <B>hp</B></PRE>
<DL>
<DD>Leaf half plane
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="op"><!-- --></A><H3>
op</H3>
<PRE>
private <A HREF="../../../../org/reprap/geometry/polygons/RrCSGOp.html" title="enum in org.reprap.geometry.polygons">RrCSGOp</A> <B>op</B></PRE>
<DL>
<DD>Type of set
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="c1"><!-- --></A><H3>
c1</H3>
<PRE>
private <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>c1</B></PRE>
<DL>
<DD>Non-leaf child operands
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="c2"><!-- --></A><H3>
c2</H3>
<PRE>
private <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>c2</B></PRE>
<DL>
<DL>
</DL>
</DL>
<HR>

<A NAME="comp"><!-- --></A><H3>
comp</H3>
<PRE>
private <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>comp</B></PRE>
<DL>
<DD>The complement (if there is one)
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="complexity"><!-- --></A><H3>
complexity</H3>
<PRE>
private int <B>complexity</B></PRE>
<DL>
<DD>How much is in here (leaf count)?
<P>
<DL>
</DL>
</DL>
<HR>

<A NAME="beingDestroyed"><!-- --></A><H3>
beingDestroyed</H3>
<PRE>
private boolean <B>beingDestroyed</B></PRE>
<DL>
<DD>Flag to prevent cyclic graphs going round forever
<P>
<DL>
</DL>
</DL>

<!-- ========= CONSTRUCTOR DETAIL ======== -->

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="RrCSG(org.reprap.geometry.polygons.RrHalfPlane)"><!-- --></A><H3>
RrCSG</H3>
<PRE>
public <B>RrCSG</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrHalfPlane.html" title="class in org.reprap.geometry.polygons">RrHalfPlane</A>&nbsp;h)</PRE>
<DL>
<DD>Make a leaf from a single half-plane
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>h</CODE> - </DL>
</DL>
<HR>

<A NAME="RrCSG(boolean)"><!-- --></A><H3>
RrCSG</H3>
<PRE>
private <B>RrCSG</B>(boolean&nbsp;b)</PRE>
<DL>
<DD>One off constructor for the universal and null sets
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>b</CODE> - </DL>
</DL>
<HR>

<A NAME="RrCSG(org.reprap.geometry.polygons.RrCSG)"><!-- --></A><H3>
RrCSG</H3>
<PRE>
public <B>RrCSG</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;c)</PRE>
<DL>
<DD>Deep copy
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>c</CODE> - </DL>
</DL>
<HR>

<A NAME="RrCSG(org.reprap.geometry.polygons.RrCSG, org.reprap.geometry.polygons.RrCSG)"><!-- --></A><H3>
RrCSG</H3>
<PRE>
private <B>RrCSG</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;a,
              <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;b)</PRE>
<DL>
<DD>Private constructor for common work setting up booleans
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>a</CODE> - <DD><CODE>b</CODE> - </DL>
</DL>

<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="destroy()"><!-- --></A><H3>
destroy</H3>
<PRE>
public void <B>destroy</B>()</PRE>
<DL>
<DD>Destroy me and all that I point to
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="universe()"><!-- --></A><H3>
universe</H3>
<PRE>
public static <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>universe</B>()</PRE>
<DL>
<DD>Universal or null set
<P>
<DD><DL>

<DT><B>Returns:</B><DD>universal or null set</DL>
</DD>
</DL>
<HR>

<A NAME="nothing()"><!-- --></A><H3>
nothing</H3>
<PRE>
public static <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>nothing</B>()</PRE>
<DL>
<DD><DL>

<DT><B>Returns:</B><DD>nothing/null set</DL>
</DD>
</DL>
<HR>

<A NAME="c_1()"><!-- --></A><H3>
c_1</H3>
<PRE>
public <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>c_1</B>()</PRE>
<DL>
<DD>Get children, operator etc
<P>
<DD><DL>

<DT><B>Returns:</B><DD>children</DL>
</DD>
</DL>
<HR>

<A NAME="c_2()"><!-- --></A><H3>
c_2</H3>
<PRE>
public <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>c_2</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="operator()"><!-- --></A><H3>
operator</H3>
<PRE>
public <A HREF="../../../../org/reprap/geometry/polygons/RrCSGOp.html" title="enum in org.reprap.geometry.polygons">RrCSGOp</A> <B>operator</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="plane()"><!-- --></A><H3>
plane</H3>
<PRE>
public <A HREF="../../../../org/reprap/geometry/polygons/RrHalfPlane.html" title="class in org.reprap.geometry.polygons">RrHalfPlane</A> <B>plane</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="complexity()"><!-- --></A><H3>
complexity</H3>
<PRE>
public int <B>complexity</B>()</PRE>
<DL>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="toString_r(java.lang.String, java.lang.String)"><!-- --></A><H3>
toString_r</H3>
<PRE>
private java.lang.String <B>toString_r</B>(java.lang.String&nbsp;result,
                                    java.lang.String&nbsp;white)</PRE>
<DL>
<DD>Convert to a string
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>result</CODE> - <DD><CODE>white</CODE> - 
<DT><B>Returns:</B><DD>string representation</DL>
</DD>
</DL>
<HR>

<A NAME="toString()"><!-- --></A><H3>
toString</H3>
<PRE>
public java.lang.String <B>toString</B>()</PRE>
<DL>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
</DD>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="union(org.reprap.geometry.polygons.RrCSG, org.reprap.geometry.polygons.RrCSG)"><!-- --></A><H3>
union</H3>
<PRE>
public static <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>union</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;a,
                          <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;b)</PRE>
<DL>
<DD>Boolean operations, with de Morgan simplifications
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>a</CODE> - <DD><CODE>b</CODE> - 
<DT><B>Returns:</B><DD>union of passed CSG objects a and b</DL>
</DD>
</DL>
<HR>

<A NAME="intersection(org.reprap.geometry.polygons.RrCSG, org.reprap.geometry.polygons.RrCSG)"><!-- --></A><H3>
intersection</H3>
<PRE>
public static <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>intersection</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;a,
                                 <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;b)</PRE>
<DL>
<DD>Boolean operation to perform an intersection
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>a</CODE> - <DD><CODE>b</CODE> - 
<DT><B>Returns:</B><DD>intersection of passed CSG objects a and b</DL>
</DD>
</DL>
<HR>

<A NAME="complement()"><!-- --></A><H3>
complement</H3>
<PRE>
public <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>complement</B>()</PRE>
<DL>
<DD>Lazy evaluation for complement.
<P>
<DD><DL>

<DT><B>Returns:</B><DD>complement</DL>
</DD>
</DL>
<HR>

<A NAME="difference(org.reprap.geometry.polygons.RrCSG, org.reprap.geometry.polygons.RrCSG)"><!-- --></A><H3>
difference</H3>
<PRE>
public static <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>difference</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;a,
                               <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;b)</PRE>
<DL>
<DD>Set difference is intersection with complement
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>a</CODE> - <DD><CODE>b</CODE> - 
<DT><B>Returns:</B><DD>set difference as CSG object based on input CSG objects a and b</DL>
</DD>
</DL>
<HR>

<A NAME="RrCSGFromBox(org.reprap.geometry.polygons.RrRectangle)"><!-- --></A><H3>
RrCSGFromBox</H3>
<PRE>
public static <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>RrCSGFromBox</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrRectangle.html" title="class in org.reprap.geometry.polygons">RrRectangle</A>&nbsp;b)</PRE>
<DL>
<DD>Make a rectangle
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="categorise(org.reprap.geometry.polygons.RrCSG)"><!-- --></A><H3>
categorise</H3>
<PRE>
private <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>categorise</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;leafA)</PRE>
<DL>
<DD>This takes a complicated expression assumed to contain multiple instances of leafA
 and returns the equivalent CSG expression involving just leafA.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>leafA</CODE> - 
<DT><B>Returns:</B><DD>equivalent CSG expression involving just leafA</DL>
</DD>
</DL>
<HR>

<A NAME="crossCategorise(org.reprap.geometry.polygons.RrCSG, org.reprap.geometry.polygons.RrCSG)"><!-- --></A><H3>
crossCategorise</H3>
<PRE>
private <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>crossCategorise</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;leafA,
                              <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;leafB)</PRE>
<DL>
<DD>This takes a complicated expression assumed to contain multiple instances of leafA
 and leafB and returns the equivalent CSG expression involving at most leafA and leafB once 
 (except for non-manifold shapes).
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>leafA</CODE> - <DD><CODE>leafB</CODE> - 
<DT><B>Returns:</B><DD>equivalent CSG expression involving at most leafA and leafB once</DL>
</DD>
</DL>
<HR>

<A NAME="uniqueList_r(java.util.ArrayList)"><!-- --></A><H3>
uniqueList_r</H3>
<PRE>
private void <B>uniqueList_r</B>(java.util.ArrayList&lt;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&gt;&nbsp;list)</PRE>
<DL>
<DD>Run through a GSG expression looking at its leaves and return
 a list of the distinct leaves.  Note: leaf and leaf.complement() are
 not considered distinct.
 Recursive internal call.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>expression</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="uniqueList()"><!-- --></A><H3>
uniqueList</H3>
<PRE>
private java.util.ArrayList&lt;<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&gt; <B>uniqueList</B>()</PRE>
<DL>
<DD>Run through a GSG expression looking at its leaves and return
 a list of the distinct leaves.  Note: leaf and leaf.complement() are
 not considered distinct.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>expression</CODE> - 
<DT><B>Returns:</B><DD></DL>
</DD>
</DL>
<HR>

<A NAME="regularise()"><!-- --></A><H3>
regularise</H3>
<PRE>
public <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>regularise</B>()</PRE>
<DL>
<DD>Regularise a set with simple contents ( <= 4 )
 This assumes simplify has been run over the set
<P>
<DD><DL>

<DT><B>Returns:</B><DD>regularised CSG object</DL>
</DD>
</DL>
<HR>

<A NAME="forceRegularise()"><!-- --></A><H3>
forceRegularise</H3>
<PRE>
public <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>forceRegularise</B>()</PRE>
<DL>
<DD>Force an approximation to the regulariseing of a set
 This assumes simplify has been run over the set
<P>
<DD><DL>

<DT><B>Returns:</B><DD>regularised CSG object</DL>
</DD>
</DL>
<HR>

<A NAME="replaceAllSameLeaves(org.reprap.geometry.polygons.RrCSG, double)"><!-- --></A><H3>
replaceAllSameLeaves</H3>
<PRE>
private void <B>replaceAllSameLeaves</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;leaf,
                                  double&nbsp;tolerance)</PRE>
<DL>
<DD>Replace duplicate of leaf with leaf itself
 TODO: this should also use known complements
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>leaf</CODE> - <DD><CODE>tolerance</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="simplify_r(org.reprap.geometry.polygons.RrCSG, double)"><!-- --></A><H3>
simplify_r</H3>
<PRE>
private void <B>simplify_r</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A>&nbsp;root,
                        double&nbsp;tolerance)</PRE>
<DL>
<DD>Replace duplicate of all leaves with the last instance of each; also
 link up complements.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>root</CODE> - <DD><CODE>tolerance</CODE> - </DL>
</DD>
</DL>
<HR>

<A NAME="simplify(double)"><!-- --></A><H3>
simplify</H3>
<PRE>
public <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>simplify</B>(double&nbsp;tolerance)</PRE>
<DL>
<DD>Replace duplicate of all leaves with the last instance of each
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>tolerance</CODE> - 
<DT><B>Returns:</B><DD>simplified CSG object</DL>
</DD>
</DL>
<HR>

<A NAME="offset(double)"><!-- --></A><H3>
offset</H3>
<PRE>
public <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>offset</B>(double&nbsp;d)</PRE>
<DL>
<DD>Offset by a distance (+ve or -ve)
 TODO: this should keep track of complements
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>d</CODE> - 
<DT><B>Returns:</B><DD>offset CSG object by distance d</DL>
</DD>
</DL>
<HR>

<A NAME="leaf(org.reprap.geometry.polygons.Rr2Point)"><!-- --></A><H3>
leaf</H3>
<PRE>
public <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>leaf</B>(<A HREF="../../../../org/reprap/geometry/polygons/Rr2Point.html" title="class in org.reprap.geometry.polygons">Rr2Point</A>&nbsp;p)</PRE>
<DL>
<DD>leaf find the half-plane that generates the value for a point
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>p</CODE> - 
<DT><B>Returns:</B><DD>leaf?</DL>
</DD>
</DL>
<HR>

<A NAME="value(org.reprap.geometry.polygons.Rr2Point)"><!-- --></A><H3>
value</H3>
<PRE>
public double <B>value</B>(<A HREF="../../../../org/reprap/geometry/polygons/Rr2Point.html" title="class in org.reprap.geometry.polygons">Rr2Point</A>&nbsp;p)</PRE>
<DL>
<DD>"Potential" value of a point; i.e. a membership test
 -ve means inside; 0 means on the surface; +ve means outside
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>p</CODE> - 
<DT><B>Returns:</B><DD>potential value of a point</DL>
</DD>
</DL>
<HR>

<A NAME="value(org.reprap.geometry.polygons.RrRectangle)"><!-- --></A><H3>
value</H3>
<PRE>
public <A HREF="../../../../org/reprap/geometry/polygons/RrInterval.html" title="class in org.reprap.geometry.polygons">RrInterval</A> <B>value</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrRectangle.html" title="class in org.reprap.geometry.polygons">RrRectangle</A>&nbsp;b)</PRE>
<DL>
<DD>The interval value of a box (analagous to point)
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>b</CODE> - 
<DT><B>Returns:</B><DD>value of a box</DL>
</DD>
</DL>
<HR>

<A NAME="prune(org.reprap.geometry.polygons.RrRectangle)"><!-- --></A><H3>
prune</H3>
<PRE>
public <A HREF="../../../../org/reprap/geometry/polygons/RrCSG.html" title="class in org.reprap.geometry.polygons">RrCSG</A> <B>prune</B>(<A HREF="../../../../org/reprap/geometry/polygons/RrRectangle.html" title="class in org.reprap.geometry.polygons">RrRectangle</A>&nbsp;b)</PRE>
<DL>
<DD>Prune the set to a box
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>b</CODE> - 
<DT><B>Returns:</B><DD>pruned box as new CSG object</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/RrCSG.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCircle.html" title="class in org.reprap.geometry.polygons"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../org/reprap/geometry/polygons/RrCSGOp.html" title="enum in org.reprap.geometry.polygons"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?org/reprap/geometry/polygons/RrCSG.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="RrCSG.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>