def getSubdivisionMesh(self, update=True): """ Create or update the Catmull-Clark subdivided (or smoothed) mesh for this mesh. This does not change the status of isSubdivided(), use setSubdivided() for that. If this mesh is doubled by a proxy, when isProxied() is true, a subdivision mesh for the proxy is used. Returns the subdivided mesh data. """ import catmull_clark_subdivision as cks if self.isProxied(): if not self.__proxySubdivisionMesh: self.__proxySubdivisionMesh = cks.createSubdivisionObject(self.__proxyMesh, None) if self.__seedMesh.object3d: self.attachMesh(self.__proxySubdivisionMesh) elif update: cks.updateSubdivisionObject(self.__proxySubdivisionMesh) return self.__proxySubdivisionMesh else: if not self.__subdivisionMesh: self.__subdivisionMesh = cks.createSubdivisionObject(self.__seedMesh, self.staticFaceMask) if self.__seedMesh.object3d: self.attachMesh(self.__subdivisionMesh) elif update: cks.updateSubdivisionObject(self.__subdivisionMesh) return self.__subdivisionMesh
def getSubdivisionMesh(self, update=True, progressCallback=None): """ Create or update the Catmull-Clark subdivided (or smoothed) mesh for this mesh. This does not change the status of isSubdivided(), use setSubdivided() for that. If this mesh is doubled by a proxy, when isProxied() is true, a subdivision mesh for the proxy is used. Returns the subdivided mesh data. """ if self.isProxied(): if not self.__proxySubdivisionMesh: self.__proxySubdivisionMesh = cks.createSubdivisionObject(self.__proxyMesh, progressCallback) if self.__seedMesh.object3d: self.attachMesh(self.__proxySubdivisionMesh) elif update: cks.updateSubdivisionObject(self.__proxySubdivisionMesh, progressCallback) return self.__proxySubdivisionMesh else: if not self.__subdivisionMesh: self.__subdivisionMesh = cks.createSubdivisionObject(self.__seedMesh, progressCallback) if self.__seedMesh.object3d: self.attachMesh(self.__subdivisionMesh) elif update: cks.updateSubdivisionObject(self.__subdivisionMesh, progressCallback) return self.__subdivisionMesh