def addCylinderOutputByEndStart(endZ, inradiusComplex, outputs, sides, start, topOverBottom=1.0):
 inradius = Vector3(inradiusComplex.real, inradiusComplex.imag, (0.5 * abs((endZ - start.z))))
 cylinderOutput = getGeometryOutput(inradius, sides, topOverBottom)
 vertexes = matrix.getVertexes(cylinderOutput)
 if (endZ < start.z):
  for vertex in vertexes:
   vertex.z = (- vertex.z)
 translation = Vector3(start.x, start.y, (inradius.z + min(start.z, endZ)))
 euclidean.translateVector3Path(vertexes, translation)
 outputs.append(cylinderOutput)

def addCylinderOutputByEndStart ( endZ , inradiusComplex , outputs , sides , start , topOverBottom = 1.0 ) : inradius = Vector3 ( inradiusComplex . real , inradiusComplex . imag , ( 0.5 * abs ( ( endZ - start . z ) ) ) ) cylinderOutput = getGeometryOutput ( inradius , sides , topOverBottom ) vertexes = matrix . getVertexes ( cylinderOutput ) if ( endZ < start . z ) : for vertex in vertexes : vertex . z = ( - vertex . z ) translation = Vector3 ( start . x , start . y , ( inradius . z + min ( start . z , endZ ) ) ) euclidean . translateVector3Path ( vertexes , translation ) outputs . append ( cylinderOutput )
add cylinder triangle mesh by endz .