def applyActiveMaterial(self): objects = self.getObjectsUnderMouse() if len(objects) > 0: face = objects[0][0] if face.material.material != MaterialPool.ActiveMaterial: action = EditFaceMaterial(face) action.material.material = MaterialPool.ActiveMaterial base.actionMgr.performAction("Apply active material", action)
def __fitTexture(self): actions = [] if self.treatAsOne: cloud = self.__getPointCloud(self.faces) for face in self.faces: action = EditFaceMaterial(face) action.material.fitTextureToPointCloud(cloud, 1, 1) actions.append(action) else: for face in self.faces: cloud = self.__getPointCloud([face]) action = EditFaceMaterial(face) action.material.fitTextureToPointCloud(cloud, 1, 1) actions.append(action) base.actionMgr.performAction("Fit texture", ActionGroup(actions))
def __rotationChanged(self, val): actions = [] for face in self.faces: action = EditFaceMaterial(face) action.material.setTextureRotation(val) actions.append(action) base.actionMgr.performAction("Texture rotation", ActionGroup(actions))
def __yShiftChanged(self, val): actions = [] for face in self.faces: action = EditFaceMaterial(face) action.material.shift.x = val actions.append(action) base.actionMgr.performAction("Texture Y shift", ActionGroup(actions))
def __xScaleChanged(self, val): actions = [] for face in self.faces: action = EditFaceMaterial(face) action.material.scale.x = val actions.append(action) base.actionMgr.performAction("Texture X scale", ActionGroup(actions))
def __doAlign(self, mode): actions = [] if self.treatAsOne: cloud = self.__getPointCloud(self.faces) for face in self.faces: action = EditFaceMaterial(face) action.material.alignTextureWithPointCloud(cloud, mode) actions.append(action) else: for face in self.faces: cloud = self.__getPointCloud([face]) action = EditFaceMaterial(face) action.material.alignTextureWithPointCloud(cloud, mode) actions.append(action) base.actionMgr.performAction("Align texture %s" % mode.name, ActionGroup(actions))
def __alignFace(self): actions = [] for face in self.faces: action = EditFaceMaterial(face) action.material.alignTextureToFace(face) actions.append(action) base.actionMgr.performAction("Align texture to face", ActionGroup(actions)) self.updateForSelection()
def __changeMaterial(self, filename): actions = [] mat = MaterialPool.getMaterial(filename) MaterialPool.ActiveMaterial = mat for face in self.faces: action = EditFaceMaterial(face) action.material.material = mat actions.append(action) base.actionMgr.performAction("Change face material", ActionGroup(actions)) self.updateMaterialIcon()