def getArcPath(xmlElement):
 begin = xmlElement.getPreviousVertex(Vector3())
 end = evaluate.getVector3FromXMLElement(xmlElement)
 largeArcFlag = evaluate.getEvaluatedBooleanDefault(True, 'largeArcFlag', xmlElement)
 radius = lineation.getComplexByPrefix('radius', complex(1.0, 1.0), xmlElement)
 sweepFlag = evaluate.getEvaluatedBooleanDefault(True, 'sweepFlag', xmlElement)
 xAxisRotation = math.radians(evaluate.getEvaluatedFloatDefault(0.0, 'xAxisRotation', xmlElement))
 arcComplexes = svg_reader.getArcComplexes(begin.dropAxis(), end.dropAxis(), largeArcFlag, radius, sweepFlag, xAxisRotation)
 path = []
 if (len(arcComplexes) < 1):
  return []
 incrementZ = ((end.z - begin.z) / float(len(arcComplexes)))
 z = begin.z
 for pointIndex in xrange(len(arcComplexes)):
  pointComplex = arcComplexes[pointIndex]
  z += incrementZ
  path.append(Vector3(pointComplex.real, pointComplex.imag, z))
 if (len(path) > 0):
  path[(-1)] = end
 return path

def getArcPath ( xmlElement ) : begin = xmlElement . getPreviousVertex ( Vector3 ( ) ) end = evaluate . getVector3FromXMLElement ( xmlElement ) largeArcFlag = evaluate . getEvaluatedBooleanDefault ( True , 'largeArcFlag' , xmlElement ) radius = lineation . getComplexByPrefix ( 'radius' , complex ( 1.0 , 1.0 ) , xmlElement ) sweepFlag = evaluate . getEvaluatedBooleanDefault ( True , 'sweepFlag' , xmlElement ) xAxisRotation = math . radians ( evaluate . getEvaluatedFloatDefault ( 0.0 , 'xAxisRotation' , xmlElement ) ) arcComplexes = svg_reader . getArcComplexes ( begin . dropAxis ( ) , end . dropAxis ( ) , largeArcFlag , radius , sweepFlag , xAxisRotation ) path = [ ] if ( len ( arcComplexes ) < 1 ) : return [ ] incrementZ = ( ( end . z - begin . z ) / float ( len ( arcComplexes ) ) ) z = begin . z for pointIndex in xrange ( len ( arcComplexes ) ) : pointComplex = arcComplexes [ pointIndex ] z += incrementZ path . append ( Vector3 ( pointComplex . real , pointComplex . imag , z ) ) if ( len ( path ) > 0 ) : path [ ( - 1 ) ] = end return path
get the arc path .