def addShaft(derivation, negatives, positives):
 if (len(derivation.shaftPath) < 3):
  return
 positiveVertexes = matrix.getVertexes(positives)
 bottomPath = euclidean.getTopPath(positiveVertexes)
 topPath = euclidean.getBottomByPath(positiveVertexes)
 copyShallow = derivation.elementNode.getCopyShallow()
 copyShallow.attributes['path'] = [Vector3(0.0, 0.0, bottomPath), Vector3(0.0, 0.0, topPath)]
 extrudeDerivation = extrude.ExtrudeDerivation(copyShallow)
 extrude.addNegativesPositives(extrudeDerivation, negatives, [derivation.shaftPath], positives)

def addShaft ( derivation , negatives , positives ) : if ( len ( derivation . shaftPath ) < 3 ) : return positiveVertexes = matrix . getVertexes ( positives ) bottomPath = euclidean . getTopPath ( positiveVertexes ) topPath = euclidean . getBottomByPath ( positiveVertexes ) copyShallow = derivation . elementNode . getCopyShallow ( ) copyShallow . attributes [ 'path' ] = [ Vector3 ( 0.0 , 0.0 , bottomPath ) , Vector3 ( 0.0 , 0.0 , topPath ) ] extrudeDerivation = extrude . ExtrudeDerivation ( copyShallow ) extrude . addNegativesPositives ( extrudeDerivation , negatives , [ derivation . shaftPath ] , positives )
add shaft .