# Python: module fabmetheus_utilities.geometry.solids.triangle_mesh

fabmetheus_utilities.geometry.solids.triangle_mesh ($Date: 2008/02/05 $) | index /home/enrique/Desktop/backup/babbleold/script/reprap/fabmetheus/fabmetheus_utilities/geometry/solids/triangle_mesh.py

`Triangle Mesh holds the faces and edges of a triangular mesh.`

Modules

``

__init__
fabmetheus_utilities.geometry.geometry_tools.dictionary
fabmetheus_utilities.euclidean

fabmetheus_utilities.geometry.geometry_utilities.evaluate
fabmetheus_utilities.geometry.geometry_tools.face
fabmetheus_utilities.geometry.solids.group

fabmetheus_utilities.intercircle
math
fabmetheus_utilities.geometry.geometry_utilities.matrix

fabmetheus_utilities.settings
fabmetheus_utilities.geometry.geometry_tools.vertex
fabmetheus_utilities.xml_simple_writer

Classes

``

fabmetheus_utilities.geometry.solids.group.Group(fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary)
  TriangleMesh
EdgePair
FaceGenerator
ZoneArrangement

class EdgePair

``

Methods defined here:

__init__(self)
  `Pair of edges on a face.`

__repr__(self)
  `Get the string representation of this EdgePair.`

getFromIndexesEdges(self, edgeIndexes, edges)
  `Initialize from edge indices.`

class FaceGenerator
`` | `A face generator.`

Methods defined here:

__init__(self, faces, indexedLoopBottom, indexedLoopTop)
  `Initialize.`

addFacesByBottomIndex(self, bottomIndex, faces)
  `Add faces from the bottom index to the next index.`

getBetweenIndex(self, bottomPoint, bottomPointNext, topIndexPlusOne)
  `Get the index of the last point along the loop which is closer to the bottomPoint.`

class TriangleMesh(fabmetheus_utilities.geometry.solids.group.Group)
`` | `A triangle mesh.`

Method resolution order:
  TriangleMesh
  fabmetheus_utilities.geometry.solids.group.Group
  fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary

Methods defined here:

__init__(self)
  `Add empty lists.`

addXMLSection(self, depth, output)
  `Add the xml section for this object.`

getCarveBoundaryLayers(self)
  `Get the boundary layers.`

getCarveCornerMaximum(self)
  `Get the corner maximum of the vertexes.`

getCarveCornerMinimum(self)
  `Get the corner minimum of the vertexes.`

getCarveLayerHeight(self)
  `Get the layer height.`

getFabmetheusXML(self)
  `Return the fabmetheus XML.`

getGeometryOutput(self)
  `Get geometry output dictionary.`

getInterpretationSuffix(self)
  `Return the suffix for a triangle mesh.`

getLoops(self, importRadius, z)
  `Get loops sliced through shape.`

getLoopsFromMesh(self, z)
  `Get loops from a carve of a mesh.`

getMinimumZ(self)
  `Get the minimum z.`

getTransformedVertexes(self)
  `Get all transformed vertexes.`

getTriangleMeshes(self)
  `Get all triangleMeshes.`

getVertexes(self)
  `Get all vertexes.`

setCarveImportRadius(self, importRadius)
  `Set the import radius.`

setCarveIsCorrectMesh(self, isCorrectMesh)
  `Set the is correct mesh flag.`

setCarveLayerHeight(self, layerHeight)
  `Set the layer height.`

setEdgesForAllFaces(self)
  `Set the face edges of all the faces.`

Methods inherited from fabmetheus_utilities.geometry.solids.group.Group:

addXMLInnerSection(self, depth, output)
  `Add xml inner section for this object.`

getMatrix4X4(self)
  `Get the matrix4X4.`

getMatrixChainTetragrid(self)
  `Get the matrix chain tetragrid.`

getVisible(self)
  `Get visible.`

setToElementNode(self, elementNode)
  `Set to elementNode.`

Methods inherited from fabmetheus_utilities.geometry.geometry_tools.dictionary.Dictionary:

__repr__(self)
  `Get the string representation of this object info.`

addXML(self, depth, output)
  `Add xml for this object.`

addXMLArchivableObjects(self, depth, output)
  `Add xml for this object.`

createShape(self)
  `Create the shape.`

getAttributes(self)
  `Get attribute table.`

getComplexTransformedPathLists(self)
  `Get complex transformed path lists.`

getFabricationExtension(self)
  `Get fabrication extension.`

getFabricationText(self, addLayerTemplate)
  `Get fabrication text.`

getPaths(self)
  `Get all paths.`

getTransformedPaths(self)
  `Get all transformed paths.`

getType(self)
  `Get type.`

getXMLLocalName(self)
  `Get xml local name.`

transformGeometryOutput(self, geometryOutput)
  `Transform the geometry output by the local matrix4x4.`

class ZoneArrangement
`` | `A zone arrangement.`

Methods defined here:

__init__(self, layerHeight, vertexes)
  `Initialize the zone interval and the zZone table.`

getEmptyZ(self, z)
  `Get the first z which is not in the zone table.`

Functions

``

addEdgePair(edgePairTable, edges, faceEdgeIndex, remainingEdgeIndex, remainingEdgeTable)
  `Add edge pair to the edge pair table.`

addFacesByConcaveLoop(faces, indexedLoop)
  `Add faces from a polygon which is concave.`

addFacesByConvex(faces, indexedLoop)
  `Add faces from a convex polygon.`

addFacesByConvexBottomTopLoop(faces, indexedLoopBottom, indexedLoopTop)
  `Add faces from loops.`

addFacesByConvexLoops(faces, indexedLoops)
  `Add faces from loops.`

addFacesByConvexReversed(faces, indexedLoop)
  `Add faces from a reversed convex polygon.`

addFacesByGrid(faces, grid)
  `Add faces from grid.`

addFacesByLoop(faces, indexedLoop)
  `Add faces from a polygon which may be concave.`

addFacesByLoopReversed(faces, indexedLoop)
  `Add faces from a reversed convex polygon.`

addFacesByMeldedConvexLoops(faces, indexedLoops)
  `Add faces from melded loops.`

addLoopToPointTable(loop, pointTable)
  `Add the points in the loop to the point table.`

addMeldedPillarByLoops(faces, indexedLoops)
  `Add melded pillar by loops which may be concave.`

addPillarByLoops(faces, indexedLoops)
  `Add pillar by loops which may be concave.`

addPillarFromConvexLoopsGridTop(faces, indexedGridTop, indexedLoops)
  `Add pillar from convex loops and grid top.`

addPillarFromConvexLoopsGrids(faces, indexedGrids, indexedLoops)
  `Add pillar from convex loops and grids.`

addPointsAtZ(edgePair, points, radius, vertexes, z)
  `Add point complexes on the segment between the edge intersections with z.`

addSymmetricXPath(outputs, path, x)
  `Add x path output to outputs.`

addSymmetricXPaths(outputs, paths, x)
  `Add x paths outputs to outputs.`

addSymmetricYPath(outputs, path, y)
  `Add y path output to outputs.`

addSymmetricYPaths(outputs, paths, y)
  `Add y paths outputs to outputs.`

addVector3Loop(loop, loops, vertexes, z)
  `Add vector3Loop to loops if there is something in it, for inset and outset.`

addWithLeastLength(importRadius, loops, point)
  `Insert a point into a loop, at the index at which the loop would be shortest.`

convertElementNode(elementNode, geometryOutput)
  `Convert the xml element to a TriangleMesh xml element.`

getAddIndexedGrid(grid, vertexes, z)
  `Get and add an indexed grid.`

getAddIndexedLoop(loop, vertexes, z)
  `Get and add an indexed loop.`

getAddIndexedLoops(loop, vertexes, zList)
  `Get and add indexed loops.`

getAdditionalLoopLength(loop, point, pointIndex)
  `Get the additional length added by inserting a point into a loop.`

getCarveIntersectionFromEdge(edge, vertexes, z)
  `Get the complex where the carve intersects the edge.`

getClosestDistanceIndexToPoint(point, loop)
  `Get the distance squared to the closest point of the loop and index of that point.`

getDescendingAreaLoops(allPoints, corners, importRadius)
  `Get descending area loops which include most of the points.`

getDescendingAreaOrientedLoops(allPoints, corners, importRadius)
  `Get descending area oriented loops which include most of the points.`

getGeometryOutputByFacesVertexes(faces, vertexes)
  `Get geometry output dictionary by faces and vertexes.`

getGeometryOutputCopy(object)
  `Get the geometry output copy.`

getIndexedCellLoopsFromIndexedGrid(grid)
  `Get indexed cell loops from an indexed grid.`

getIndexedLoopFromIndexedGrid(indexedGrid)
  `Get indexed loop from around the indexed grid.`

getInfillDictionary(arounds, aroundWidth, infillInset, infillWidth, pixelTable, rotatedLoops, testLoops=None)
  `Get combined fill loops which include most of the points.`

getInsetPoint(loop, tinyRadius)
  `Get the inset vertex.`

getIsPathEntirelyOutsideTriangle(begin, center, end, vector3Path)
  `Determine if a path is entirely outside another loop.`

getIsPointCloseInline(close, loop, point, pointIndex)
  `Insert a point into a loop, at the index at which the loop would be shortest.`

getLoopLayerAppend(loopLayers, z)
  `Get next z and add extruder loops.`

getLoopsFromCorrectMesh(edges, faces, vertexes, z)
  `Get loops from a carve of a correct mesh.`

getLoopsFromUnprovenMesh(edges, faces, importRadius, vertexes, z)
  `Get loops from a carve of an unproven mesh.`

getLoopsWithCorners(corners, importRadius, loops, pointTable)
  `Add corners to the loops.`

getMeldedPillarOutput(loops)
  `Get melded pillar output.`

getNewDerivation(elementNode)
  `Get new derivation.`

getNextEdgeIndexAroundZ(edge, faces, remainingEdgeTable)
  `Get the next edge index in the mesh carve.`

getOrientedLoops(loops)
  `Orient the loops which must be in descending order.`

getOverlapRatio(loop, pointTable)
  `Get the overlap ratio between the loop and the point table.`

getPath(edges, pathIndexes, loop, z)
  `Get the path from the edge intersections.`

getPillarOutput(loops)
  `Get pillar output.`

getPillarsOutput(loopLists)
  `Get pillars output.`

getRemainingEdgeTable(edges, vertexes, z)
  `Get the remaining edge hashtable.`

getRemainingLoopAddFace(faces, remainingLoop)
  `Get the remaining loop and add face.`

getSharedFace(firstEdge, faces, secondEdge)
  `Get the face which is shared by two edges.`

getSymmetricXLoop(path, vertexes, x)
  `Get symmetrix x loop.`

getSymmetricYLoop(path, vertexes, y)
  `Get symmetrix y loop.`

getUnifiedOutput(outputs)
  `Get unified output.`

getUniqueVertexes(loops)
  `Get unique vertexes.`

getWideAnglePointIndex(loop)
  `Get a point index which has a wide enough angle, most point indexes have a wide enough angle, this is just to make sure.`

isInline(beginComplex, centerComplex, endComplex)
  `Determine if the three complex points form a line.`

isPathAdded(edges, faces, loops, remainingEdgeTable, vertexes, z)
  `Get the path indexes around a triangle mesh carve and add the path to the flat loops.`

processElementNode(elementNode)
  `Process the xml element.`

setEdgeMaximumMinimum(edge, vertexes)
  `Set the edge maximum and minimum.`

sortLoopsInOrderOfArea(isDescending, loops)
  `Sort the loops in the order of area according isDescending.`

Data
`` |  | __author__ = 'Enrique Perez (perez_enrique@yahoo.com)' __credits__ = 'Art of Illusion <http://www.artofillusion.org/>' __date__ = '$Date: 2008/02/05 $' __license__ = 'GNU Affero General Public License http://www.gnu.org/licenses/agpl.html' absolute_import = _Feature((2, 5, 0, 'alpha', 1), (2, 7, 0, 'alpha', 0), 16384)

Author
`` |  | Enrique Perez (perez_enrique@yahoo.com)

Credits
`` |  | Art of Illusion <http://www.artofillusion.org/>