예제 #1
0
파일: ModelLoader.py 프로젝트: rosedu/hfall
    def saveModel(self):
        self.model = Model([], self.modelName)
        for m in self.parser.object.meshes:
            if m.type != 1:
                continue
            geom = Mesh.Geometry([], [], [])
            # get vertices & texCoordinates
            triangles = []
            geom.vertices = m.data.vertices
            if m.data.coordinates:
                geom.texCoords = m.data.coordinates

            # get faces
            if m.data.faces:
                geom.faces = m.data.faces.faces
                for group in m.data.faces.materialGroups:
                    faces = []
                    for i in group.faces:
                        faces.extend(m.data.faces.faces[i])
                    triangles.append(Mesh.Triangles(faces, self.materialMng.get(group.materialName)))
            # get mesh coordinates
            mat = m.data.matrix
            rot = 9 * [0]
            for i in range(3):
                for j in range(3):
                    rot[3 * i + j] = mat[3 * j + i]

            mesh = Mesh(geom, triangles, Coordinate(rot, mat[9:]))
            mesh.name = m.name
            mesh.init()
            self.model.meshes.append(mesh)
        self.modelMng.add(self.model)