def makePyramidMesh(mmesh, side=20.0): mmesh.SetNumVerts(4) mmesh.SetNumFaces(4) mmesh.SetNumEdges(6) halfside = side / 2.0 mmesh.V(0).p = MaxPlus.Point3(0.0, 0.0, side) mmesh.V(1).p = MaxPlus.Point3(-halfside, -halfside, 0.0) mmesh.V(2).p = MaxPlus.Point3(-halfside, halfside, 0.0) mmesh.V(3).p = MaxPlus.Point3(halfside, 0.0, 0.0) vislist = MaxPlus.CreateBoolList([1, 1, 0]) mmesh.F(0).MakePoly(3, MaxPlus.CreateIntList([0, 1, 2]), vislist) mmesh.F(1).MakePoly(3, MaxPlus.CreateIntList([0, 2, 3]), vislist) mmesh.F(2).MakePoly(3, MaxPlus.CreateIntList([0, 3, 1]), vislist) mmesh.F(3).MakePoly(3, MaxPlus.CreateIntList([1, 2, 3]), vislist) mmesh.FillInMesh()
def main(): geom = MaxPlus.Factory.CreateGeomObject(MaxPlus.ClassIds.PolyMeshObject) poly = MaxPlus.PolyObject._CastFrom(geom) mmesh = poly.mnmesh makePyramidMesh(mmesh) node = MaxPlus.Factory.CreateNode(poly) mmesh.SetMapNum(1) mmesh.InitMap(0) mmap = mmesh.M(0) mmap.SetNumVerts(2) mmap.SetV(0, MaxPlus.Point3(1, 0, 0)) mmap.SetV(1, MaxPlus.Point3(0, 0, 1)) mmap.F(0).SetTV(MaxPlus.CreateIntList([0, 0, 1])) mmap.F(1).SetTV(MaxPlus.CreateIntList([0, 1, 1])) mmap.F(2).SetTV(MaxPlus.CreateIntList([1, 1, 1])) mmap.F(3).SetTV(MaxPlus.CreateIntList([0, 0, 0])) node.VertexColorMode = True
24 def main(): 25 geom = MaxPlus.Factory.CreateGeomObject(MaxPlus.ClassIds.PolyMeshObject) 26 poly = MaxPlus.PolyObject._CastFrom(geom) 27 mmesh = poly.mnmesh 28 makePyramidMesh(mmesh) 29 node = MaxPlus.Factory.CreateNode(poly) 30 mmesh.SetMapNum(1) 31 mmesh.InitMap(0) 32 33 mmap = mmesh.M(0) 34 mmap.SetNumVerts(2) 35 mmap.SetV(0, MaxPlus.Point3(1, 0, 0)) 36 mmap.SetV(1, MaxPlus.Point3(0, 0, 1)) 37 mmap.F(0).SetTV(MaxPlus.CreateIntList([0, 0, 1])) 38 mmap.F(1).SetTV(MaxPlus.CreateIntList([0, 1, 1])) 39 mmap.F(2).SetTV(MaxPlus.CreateIntList([1, 1, 1])) 40 mmap.F(3).SetTV(MaxPlus.CreateIntList([0, 0, 0])) 41 node.VertexColorMode = True 42 43 if __name__ == "__main__": 44 main()
def createPolyFromVertices(vertices, selection): vertex_array = [selection.verts[vertex - 1] for vertex in vertices] geom = MaxPlus.Factory.CreateGeomObject(MaxPlus.ClassIds.PolyMeshObject) poly = MaxPlus.PolyObject._CastFrom(geom) mnmesh = poly.mnmesh nr_vertices = len(vertex_array) mnmesh.SetNumVerts(nr_vertices) mnmesh.SetNumEdges(nr_vertices) mnmesh.SetNumFaces(1) for index, vertex in enumerate(vertex_array): mnmesh.V(index).p = MaxPlus.Point3(vertex.pos.x, vertex.pos.y, vertex.pos.z) vislist = MaxPlus.CreateBoolList([1 for i in range(nr_vertices)]) mnmesh.F(0).MakePoly( nr_vertices, MaxPlus.CreateIntList([i for i in range(nr_vertices)]), vislist) mnmesh.FillInMesh() poly_node = MaxPlus.Factory.CreateNode(poly) return poly_node
2 Demonstrates how to create a mmesh from scratch and to set color per vertex data. 3 ''' 4 import MaxPlus 5 6 7 def makePyramidMesh(mmesh, side=20.0): 8 mmesh.SetNumVerts(4) 9 mmesh.SetNumFaces(4) 10 mmesh.SetNumEdges(6) 11 halfside = side / 2.0 12 mmesh.V(0).p = MaxPlus.Point3(0.0, 0.0, side) 13 mmesh.V(1).p = MaxPlus.Point3(-halfside, -halfside, 0.0) 14 mmesh.V(2).p = MaxPlus.Point3(-halfside, halfside, 0.0) 15 mmesh.V(3).p = MaxPlus.Point3(halfside, 0.0, 0.0) 16 vislist = MaxPlus.CreateBoolList([1, 1, 0]) 17 mmesh.F(0).MakePoly(3, MaxPlus.CreateIntList([0, 1, 2]), vislist) 18 mmesh.F(1).MakePoly(3, MaxPlus.CreateIntList([0, 2, 3]), vislist) 19 mmesh.F(2).MakePoly(3, MaxPlus.CreateIntList([0, 3, 1]), vislist) 20 mmesh.F(3).MakePoly(3, MaxPlus.CreateIntList([1, 2, 3]), vislist) 21 mmesh.FillInMesh() 22 23 24 def main(): 25 geom = MaxPlus.Factory.CreateGeomObject(MaxPlus.ClassIds.PolyMeshObject) 26 poly = MaxPlus.PolyObject._CastFrom(geom) 27 mmesh = poly.mnmesh 28 makePyramidMesh(mmesh) 29 node = MaxPlus.Factory.CreateNode(poly) 30 mmesh.SetMapNum(1) 31 mmesh.InitMap(0) 32