Repository URL to install this package:
|
Version:
1.1.1+20170304112533-1ppa1 ▾
|
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
"""
**Project Name:** MakeHuman
**Product Home Page:** http://www.makehuman.org/
**Code Home Page:** https://bitbucket.org/MakeHuman/makehuman/
**Authors:** Thomas Larsson, Jonas Hauquier
**Copyright(c):** MakeHuman Team 2001-2017
**Licensing:** AGPL3
This file is part of MakeHuman (www.makehuman.org).
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Abstract
--------
Exports proxy mesh to obj
"""
import wavefront
import os
from progress import Progress
import numpy as np
#
# exportObj(human, filepath, config):
#
def exportObj(filepath, config=None):
progress = Progress(0, None)
human = config.human
config.setupTexFolder(filepath)
filename = os.path.basename(filepath)
name = config.goodName(os.path.splitext(filename)[0])
progress(0, 0.3, "Collecting Objects")
objects = human.getObjects(excludeZeroFaceObjs=not config.hiddenGeom)
meshes = [o.mesh for o in objects]
if config.hiddenGeom:
# Disable the face masking on copies of the input meshes
meshes = [m.clone(filterMaskedVerts=False) for m in meshes]
for m in meshes:
# Would be faster if we could tell clone() to do this, but it would
# make the interface more complex.
# We could also let the wavefront module do this, but this would
# introduce unwanted "magic" behaviour into the export function.
face_mask = np.ones(m.face_mask.shape, dtype=bool)
m.changeFaceMask(face_mask)
m.calcNormals()
m.updateIndexBuffer()
progress(0.3, 0.99, "Writing Objects")
wavefront.writeObjFile(filepath, meshes, True, config, filterMaskedFaces=not config.hiddenGeom)
progress(1.0, None, "OBJ Export finished. Output file: %s" % filepath)