def getLoopsUnion(importRadius, loopLists):
 allPoints = []
 corners = getLoopsListsIntersections(loopLists)
 radiusSideNegative = ((-0.01) * importRadius)
 intercircle.directLoopLists(True, loopLists)
 for loopListIndex in xrange(len(loopLists)):
  insetLoops = loopLists[loopListIndex]
  inBetweenInsetLoops = getInBetweenLoopsFromLoops(insetLoops, importRadius)
  otherLoops = euclidean.getConcatenatedList((loopLists[:loopListIndex] + loopLists[(loopListIndex + 1):]))
  corners += getInsetPointsByInsetLoops(insetLoops, False, otherLoops, radiusSideNegative)
  allPoints += getInsetPointsByInsetLoops(inBetweenInsetLoops, False, otherLoops, radiusSideNegative)
 allPoints += corners[:]
 return triangle_mesh.getDescendingAreaOrientedLoops(allPoints, corners, importRadius)

def getLoopsUnion ( importRadius , loopLists ) : allPoints = [ ] corners = getLoopsListsIntersections ( loopLists ) radiusSideNegative = ( ( - 0.01 ) * importRadius ) intercircle . directLoopLists ( True , loopLists ) for loopListIndex in xrange ( len ( loopLists ) ) : insetLoops = loopLists [ loopListIndex ] inBetweenInsetLoops = getInBetweenLoopsFromLoops ( insetLoops , importRadius ) otherLoops = euclidean . getConcatenatedList ( ( loopLists [ : loopListIndex ] + loopLists [ ( loopListIndex + 1 ) : ] ) ) corners += getInsetPointsByInsetLoops ( insetLoops , False , otherLoops , radiusSideNegative ) allPoints += getInsetPointsByInsetLoops ( inBetweenInsetLoops , False , otherLoops , radiusSideNegative ) allPoints += corners [ : ] return triangle_mesh . getDescendingAreaOrientedLoops ( allPoints , corners , importRadius )
get joined loops sliced through shape .