def bottomElementNode(derivation, target):
 xmlObject = target.xmlObject
 if (xmlObject == None):
  print 'Warning, bottomTarget in bottom could not get xmlObject for:'
  print target
  print derivation.elementNode
  return
 targetMatrix = matrix.getBranchMatrixSetElementNode(target)
 lift = derivation.altitude
 transformedPaths = xmlObject.getTransformedPaths()
 if (len(transformedPaths) > 0):
  lift += (derivation.getAdditionalPathLift() - euclidean.getBottomByPaths(transformedPaths))
 else:
  lift -= boolean_geometry.getMinimumZ(xmlObject)
 targetMatrix.tetragrid = matrix.getIdentityTetragrid(targetMatrix.tetragrid)
 targetMatrix.tetragrid[2][3] += lift
 matrix.setElementNodeDictionaryMatrix(target, targetMatrix)

def bottomElementNode ( derivation , target ) : xmlObject = target . xmlObject if ( xmlObject == None ) : print 'Warning, bottomTarget in bottom could not get xmlObject for:' print target print derivation . elementNode return targetMatrix = matrix . getBranchMatrixSetElementNode ( target ) lift = derivation . altitude transformedPaths = xmlObject . getTransformedPaths ( ) if ( len ( transformedPaths ) > 0 ) : lift += ( derivation . getAdditionalPathLift ( ) - euclidean . getBottomByPaths ( transformedPaths ) ) else : lift -= boolean_geometry . getMinimumZ ( xmlObject ) targetMatrix . tetragrid = matrix . getIdentityTetragrid ( targetMatrix . tetragrid ) targetMatrix . tetragrid [ 2 ] [ 3 ] += lift matrix . setElementNodeDictionaryMatrix ( target , targetMatrix )
bottom target .