<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><title>Python: module fabmetheus_utilities.intercircle</title> </head><body bgcolor="#f0f0f8"> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading"> <tr bgcolor="#7799ee"> <td valign=bottom> <br> <font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="fabmetheus_utilities.html"><font color="#ffffff">fabmetheus_utilities</font></a>.intercircle</strong></big></big> ($Date: 2008/21/04 $)</font></td ><td align=right valign=bottom ><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/home/enrique/Desktop/backup/babbleold/script/reprap/fabmetheus/fabmetheus_utilities/intercircle.py">/home/enrique/Desktop/backup/babbleold/script/reprap/fabmetheus/fabmetheus_utilities/intercircle.py</a></font></td></tr></table> <p><tt>Intercircle is a collection of utilities for intersecting circles, used to get smooth loops around a collection of points and inset & outset loops.</tt></p> <p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#aa55cc"> <td colspan=3 valign=bottom> <br> <font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr> <tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td> <td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="__init__.html">__init__</a><br> </td><td width="25%" valign=top><a href="fabmetheus_utilities.euclidean.html">fabmetheus_utilities.euclidean</a><br> </td><td width="25%" valign=top><a href="math.html">math</a><br> </td><td width="25%" valign=top></td></tr></table></td></tr></table><p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#ee77aa"> <td colspan=3 valign=bottom> <br> <font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr> <tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td> <td width="100%"><dl> <dt><font face="helvetica, arial"><a href="fabmetheus_utilities.intercircle.html#BoundingLoop">BoundingLoop</a> </font></dt><dt><font face="helvetica, arial"><a href="fabmetheus_utilities.intercircle.html#CenterOutset">CenterOutset</a> </font></dt><dt><font face="helvetica, arial"><a href="fabmetheus_utilities.intercircle.html#CircleIntersection">CircleIntersection</a> </font></dt><dt><font face="helvetica, arial"><a href="fabmetheus_utilities.intercircle.html#CircleNode">CircleNode</a> </font></dt></dl> <p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#ffc8d8"> <td colspan=3 valign=bottom> <br> <font color="#000000" face="helvetica, arial"><a name="BoundingLoop">class <strong>BoundingLoop</strong></a></font></td></tr> <tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td> <td colspan=2><tt>A class to hold a bounding loop composed of a minimum complex, a maximum complex and an outset loop.<br> </tt></td></tr> <tr><td> </td> <td width="100%">Methods defined here:<br> <dl><dt><a name="BoundingLoop-__eq__"><strong>__eq__</strong></a>(self, other)</dt><dd><tt>Determine whether this bounding loop is identical to other one.</tt></dd></dl> <dl><dt><a name="BoundingLoop-__repr__"><strong>__repr__</strong></a>(self)</dt><dd><tt>Get the string representation of this bounding loop.</tt></dd></dl> <dl><dt><a name="BoundingLoop-getFromLoop"><strong>getFromLoop</strong></a>(self, loop)</dt><dd><tt>Get the bounding loop from a path.</tt></dd></dl> <dl><dt><a name="BoundingLoop-getOutsetBoundingLoop"><strong>getOutsetBoundingLoop</strong></a>(self, outsetDistance)</dt><dd><tt>Outset the bounding rectangle and loop by a distance.</tt></dd></dl> <dl><dt><a name="BoundingLoop-isEntirelyInsideAnother"><strong>isEntirelyInsideAnother</strong></a>(self, anotherBoundingLoop)</dt><dd><tt>Determine if this bounding loop is entirely inside another bounding loop.</tt></dd></dl> <dl><dt><a name="BoundingLoop-isOverlappingAnother"><strong>isOverlappingAnother</strong></a>(self, anotherBoundingLoop)</dt><dd><tt>Determine if this bounding loop is intersecting another bounding loop.</tt></dd></dl> <dl><dt><a name="BoundingLoop-isOverlappingAnotherInList"><strong>isOverlappingAnotherInList</strong></a>(self, boundingLoops)</dt><dd><tt>Determine if this bounding loop is intersecting another bounding loop in a list.</tt></dd></dl> <dl><dt><a name="BoundingLoop-isRectangleMissingAnother"><strong>isRectangleMissingAnother</strong></a>(self, anotherBoundingLoop)</dt><dd><tt>Determine if the rectangle of this bounding loop is missing the rectangle of another bounding loop.</tt></dd></dl> </td></tr></table> <p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#ffc8d8"> <td colspan=3 valign=bottom> <br> <font color="#000000" face="helvetica, arial"><a name="CenterOutset">class <strong>CenterOutset</strong></a></font></td></tr> <tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td> <td colspan=2><tt>A class to hold a center and an outset.<br> </tt></td></tr> <tr><td> </td> <td width="100%">Methods defined here:<br> <dl><dt><a name="CenterOutset-__init__"><strong>__init__</strong></a>(self, center, outset)</dt><dd><tt>Set the center and outset.</tt></dd></dl> <dl><dt><a name="CenterOutset-__repr__"><strong>__repr__</strong></a>(self)</dt><dd><tt>Get the string representation of this <a href="#CenterOutset">CenterOutset</a>.</tt></dd></dl> </td></tr></table> <p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#ffc8d8"> <td colspan=3 valign=bottom> <br> <font color="#000000" face="helvetica, arial"><a name="CircleIntersection">class <strong>CircleIntersection</strong></a></font></td></tr> <tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td> <td colspan=2><tt>An intersection of two complex circles.<br> </tt></td></tr> <tr><td> </td> <td width="100%">Methods defined here:<br> <dl><dt><a name="CircleIntersection-__init__"><strong>__init__</strong></a>(self, circleNodeAhead, index, circleNodeBehind)</dt></dl> <dl><dt><a name="CircleIntersection-__repr__"><strong>__repr__</strong></a>(self)</dt><dd><tt>Get the string representation of this <a href="#CircleIntersection">CircleIntersection</a>.</tt></dd></dl> <dl><dt><a name="CircleIntersection-addToList"><strong>addToList</strong></a>(self, circleIntersectionPath)</dt><dd><tt>Add this to the circle intersection path, setting stepped on to be true.</tt></dd></dl> <dl><dt><a name="CircleIntersection-getAbsolutePosition"><strong>getAbsolutePosition</strong></a>(self)</dt><dd><tt>Get the absolute position.</tt></dd></dl> <dl><dt><a name="CircleIntersection-getCircleIntersectionAhead"><strong>getCircleIntersectionAhead</strong></a>(self)</dt><dd><tt>Get the first circle intersection on the circle node ahead.</tt></dd></dl> <dl><dt><a name="CircleIntersection-isWithinCircles"><strong>isWithinCircles</strong></a>(self, pixelTable)</dt><dd><tt>Determine if this circle intersection is within the circle node circles.</tt></dd></dl> </td></tr></table> <p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#ffc8d8"> <td colspan=3 valign=bottom> <br> <font color="#000000" face="helvetica, arial"><a name="CircleNode">class <strong>CircleNode</strong></a></font></td></tr> <tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td> <td colspan=2><tt>A complex node of complex circle intersections.<br> </tt></td></tr> <tr><td> </td> <td width="100%">Methods defined here:<br> <dl><dt><a name="CircleNode-__init__"><strong>__init__</strong></a>(self, oneOverRadius, point)</dt></dl> <dl><dt><a name="CircleNode-__repr__"><strong>__repr__</strong></a>(self)</dt><dd><tt>Get the string representation of this <a href="#CircleNode">CircleNode</a>.</tt></dd></dl> <dl><dt><a name="CircleNode-getWithinNodes"><strong>getWithinNodes</strong></a>(self, pixelTable)</dt><dd><tt>Get the nodes this circle node is within.</tt></dd></dl> </td></tr></table></td></tr></table><p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#eeaa77"> <td colspan=3 valign=bottom> <br> <font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr> <tr><td bgcolor="#eeaa77"><tt> </tt></td><td> </td> <td width="100%"><dl><dt><a name="-addCircleIntersectionLoop"><strong>addCircleIntersectionLoop</strong></a>(circleIntersectionLoop, circleIntersections)</dt><dd><tt>Add a circle intersection loop.</tt></dd></dl> <dl><dt><a name="-addEndCap"><strong>addEndCap</strong></a>(begin, end, points, radius)</dt><dd><tt>Get circular end cap.</tt></dd></dl> <dl><dt><a name="-addHalfPath"><strong>addHalfPath</strong></a>(path, points, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Add the points from every point on a half path and between points.</tt></dd></dl> <dl><dt><a name="-addInsetPointFromClockwiseTriple"><strong>addInsetPointFromClockwiseTriple</strong></a>(begin, center, end, loop, radius)</dt><dd><tt>Get inset point with possible intersection from clockwise triple, out from widdershins loop.</tt></dd></dl> <dl><dt><a name="-addOrbits"><strong>addOrbits</strong></a>(distanceFeedRate, loop, orbitalFeedRatePerSecond, temperatureChangeTime, z)</dt><dd><tt>Add orbits with the extruder off.</tt></dd></dl> <dl><dt><a name="-addOrbitsIfLarge"><strong>addOrbitsIfLarge</strong></a>(distanceFeedRate, loop, orbitalFeedRatePerSecond, temperatureChangeTime, z)</dt><dd><tt>Add orbits with the extruder off if the orbits are large enough.</tt></dd></dl> <dl><dt><a name="-addPointsFromSegment"><strong>addPointsFromSegment</strong></a>(pointBegin, pointEnd, points, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Add point complexes between the endpoints of a segment.</tt></dd></dl> <dl><dt><a name="-directLoop"><strong>directLoop</strong></a>(isWiddershins, loop)</dt><dd><tt>Direct the loop.</tt></dd></dl> <dl><dt><a name="-directLoopLists"><strong>directLoopLists</strong></a>(isWiddershins, loopLists)</dt><dd><tt>Direct the loop lists.</tt></dd></dl> <dl><dt><a name="-directLoops"><strong>directLoops</strong></a>(isWiddershins, loops)</dt><dd><tt>Direct the loops.</tt></dd></dl> <dl><dt><a name="-getAroundsFromLoop"><strong>getAroundsFromLoop</strong></a>(loop, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the arounds from the loop.</tt></dd></dl> <dl><dt><a name="-getAroundsFromLoops"><strong>getAroundsFromLoops</strong></a>(loops, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the arounds from the loops.</tt></dd></dl> <dl><dt><a name="-getAroundsFromPath"><strong>getAroundsFromPath</strong></a>(path, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the arounds from the path.</tt></dd></dl> <dl><dt><a name="-getAroundsFromPathPoints"><strong>getAroundsFromPathPoints</strong></a>(points, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the arounds from the path.</tt></dd></dl> <dl><dt><a name="-getAroundsFromPaths"><strong>getAroundsFromPaths</strong></a>(paths, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the arounds from the path.</tt></dd></dl> <dl><dt><a name="-getAroundsFromPoints"><strong>getAroundsFromPoints</strong></a>(points, radius)</dt><dd><tt>Get the arounds from the points.</tt></dd></dl> <dl><dt><a name="-getCentersFromCircleNodes"><strong>getCentersFromCircleNodes</strong></a>(circleNodes, radius)</dt><dd><tt>Get the complex centers of the circle intersection loops from circle nodes.</tt></dd></dl> <dl><dt><a name="-getCentersFromIntersectionLoop"><strong>getCentersFromIntersectionLoop</strong></a>(circleIntersectionLoop, radius)</dt><dd><tt>Get the centers from the intersection loop.</tt></dd></dl> <dl><dt><a name="-getCentersFromIntersectionLoops"><strong>getCentersFromIntersectionLoops</strong></a>(circleIntersectionLoops, radius)</dt><dd><tt>Get the centers from the intersection loops.</tt></dd></dl> <dl><dt><a name="-getCentersFromLoop"><strong>getCentersFromLoop</strong></a>(loop, radius)</dt><dd><tt>Get the centers of the loop.</tt></dd></dl> <dl><dt><a name="-getCentersFromLoopDirection"><strong>getCentersFromLoopDirection</strong></a>(isWiddershins, loop, radius)</dt><dd><tt>Get the centers of the loop which go around in the given direction.</tt></dd></dl> <dl><dt><a name="-getCentersFromPoints"><strong>getCentersFromPoints</strong></a>(points, radius)</dt><dd><tt>Get the centers from the points.</tt></dd></dl> <dl><dt><a name="-getCircleIntersectionLoops"><strong>getCircleIntersectionLoops</strong></a>(circleIntersections)</dt><dd><tt>Get all the loops going through the circle intersections.</tt></dd></dl> <dl><dt><a name="-getCircleIntersectionsFromCircleNodes"><strong>getCircleIntersectionsFromCircleNodes</strong></a>(circleNodes)</dt><dd><tt>Get all the circle intersections which exist between all the circle nodes.</tt></dd></dl> <dl><dt><a name="-getCircleNodesFromLoop"><strong>getCircleNodesFromLoop</strong></a>(loop, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the circle nodes from every point on a loop and between points.</tt></dd></dl> <dl><dt><a name="-getCircleNodesFromPoints"><strong>getCircleNodesFromPoints</strong></a>(points, radius)</dt><dd><tt>Get the circle nodes from a path.</tt></dd></dl> <dl><dt><a name="-getInsetLoopsFromLoop"><strong>getInsetLoopsFromLoop</strong></a>(loop, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the inset loops, which might overlap.</tt></dd></dl> <dl><dt><a name="-getInsetLoopsFromLoops"><strong>getInsetLoopsFromLoops</strong></a>(loops, radius)</dt><dd><tt>Get the inset loops, which might overlap.</tt></dd></dl> <dl><dt><a name="-getInsetLoopsFromVector3Loop"><strong>getInsetLoopsFromVector3Loop</strong></a>(loop, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the inset loops from vector3 loop, which might overlap.</tt></dd></dl> <dl><dt><a name="-getInsetSeparateLoopsFromAroundLoops"><strong>getInsetSeparateLoopsFromAroundLoops</strong></a>(loops, radius, radiusAround, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the separate inset loops.</tt></dd></dl> <dl><dt><a name="-getInsetSeparateLoopsFromLoops"><strong>getInsetSeparateLoopsFromLoops</strong></a>(loops, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the separate inset loops.</tt></dd></dl> <dl><dt><a name="-getIsLarge"><strong>getIsLarge</strong></a>(loop, radius)</dt><dd><tt>Determine if the loop is large enough.</tt></dd></dl> <dl><dt><a name="-getLargestCenterOutsetLoopFromLoop"><strong>getLargestCenterOutsetLoopFromLoop</strong></a>(loop, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the largest circle outset loop from the loop.</tt></dd></dl> <dl><dt><a name="-getLargestCenterOutsetLoopFromLoopRegardless"><strong>getLargestCenterOutsetLoopFromLoopRegardless</strong></a>(loop, radius)</dt><dd><tt>Get the largest circle outset loop from the loop, even if the radius has to be shrunk and even if there is still no outset loop.</tt></dd></dl> <dl><dt><a name="-getLargestInsetLoopFromLoop"><strong>getLargestInsetLoopFromLoop</strong></a>(loop, radius)</dt><dd><tt>Get the largest inset loop from the loop.</tt></dd></dl> <dl><dt><a name="-getLargestInsetLoopFromLoopRegardless"><strong>getLargestInsetLoopFromLoopRegardless</strong></a>(loop, radius)</dt><dd><tt>Get the largest inset loop from the loop, even if the radius has to be shrunk and even if there is still no inset loop.</tt></dd></dl> <dl><dt><a name="-getLoopsFromLoopsDirection"><strong>getLoopsFromLoopsDirection</strong></a>(isWiddershins, loops)</dt><dd><tt>Get the loops going round in a given direction.</tt></dd></dl> <dl><dt><a name="-getPointsFromLoop"><strong>getPointsFromLoop</strong></a>(loop, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the points from every point on a loop and between points.</tt></dd></dl> <dl><dt><a name="-getPointsFromLoops"><strong>getPointsFromLoops</strong></a>(loops, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the points from every point on a loop and between points.</tt></dd></dl> <dl><dt><a name="-getPointsFromPath"><strong>getPointsFromPath</strong></a>(path, radius, thresholdRatio<font color="#909090">=0.9</font>)</dt><dd><tt>Get the points from every point on a path and between points.</tt></dd></dl> <dl><dt><a name="-getSimplifiedInsetFromClockwiseLoop"><strong>getSimplifiedInsetFromClockwiseLoop</strong></a>(loop, radius)</dt><dd><tt>Get loop inset from clockwise loop, out from widdershins loop.</tt></dd></dl> <dl><dt><a name="-getWiddershinsByLength"><strong>getWiddershinsByLength</strong></a>(begin, end, length)</dt><dd><tt>Get the widdershins by length.</tt></dd></dl> <dl><dt><a name="-getWithoutIntersections"><strong>getWithoutIntersections</strong></a>(loop)</dt><dd><tt>Get loop without intersections.</tt></dd></dl> <dl><dt><a name="-isLargeSameDirection"><strong>isLargeSameDirection</strong></a>(inset, loop, radius)</dt><dd><tt>Determine if the inset is in the same direction as the loop and it is large enough.</tt></dd></dl> <dl><dt><a name="-isLoopIntersectingLoop"><strong>isLoopIntersectingLoop</strong></a>(anotherLoop, loop)</dt><dd><tt>Determine if the a loop is intersecting another loop.</tt></dd></dl> <dl><dt><a name="-orbitsAreLarge"><strong>orbitsAreLarge</strong></a>(loop, temperatureChangeTime)</dt><dd><tt>Determine if the orbits are large enough.</tt></dd></dl> <dl><dt><a name="-removeIntersection"><strong>removeIntersection</strong></a>(loop)</dt><dd><tt>Get loop without the first intersection.</tt></dd></dl> </td></tr></table><p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#55aa55"> <td colspan=3 valign=bottom> <br> <font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr> <tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td> <td width="100%"><strong>__author__</strong> = 'Enrique Perez (perez_enrique@yahoo.com)'<br> <strong>__date__</strong> = '$Date: 2008/21/04 $'<br> <strong>__license__</strong> = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html'<br> <strong>absolute_import</strong> = _Feature((2, 5, 0, 'alpha', 1), (2, 7, 0, 'alpha', 0), 16384)<br> <strong>globalDecreasingRadiusMultipliers</strong> = [1.0, 0.55, 0.35, 0.2]<br> <strong>globalIntercircleMultiplier</strong> = 1.04</td></tr></table><p> <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> <tr bgcolor="#7799ee"> <td colspan=3 valign=bottom> <br> <font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr> <tr><td bgcolor="#7799ee"><tt> </tt></td><td> </td> <td width="100%">Enrique Perez (perez_enrique@yahoo.com)</td></tr></table> </body></html>