def enterEditMode():
Blender.Window.EditMode(1)
-def exitEditMode():
+def enterObjectMode():
Blender.Window.EditMode(0)
+def enterPoseMode():
+ Blender.Window.PoseMode(1)
+
def createVector(x, y, z):
return Mathutils.Vector(x, y, z)
indices.append(index)
return indices
+ @staticmethod
+ def createBoneGroup(o, name, color_set='DEFAULT'):
+ # create group
+ object.activate(o)
+ enterPoseMode()
+ bpy.ops.pose.group_add()
+ # set name
+ pose=object.getPose(o)
+ g=pose.active_bone_group
+ g.name=name
+ g.color_set=color_set
+
class modifier:
@staticmethod
@staticmethod
@to_internal_encoding
def create(path):
- image = Blender.Image.Load(path)
+ try:
+ image = Blender.Image.Load(path)
+ except IOError:
+ image = None
texture = Blender.Texture.New(path)
texture.type = Blender.Texture.Types.IMAGE
texture.image = image
return Blender.Material.Get(material_name)
@staticmethod
- def addTexture(material, texture):
- material.mode = material.mode | Blender.Material.Modes.TEXFACE
- material.setTexture(0, texture, Blender.Texture.TexCo.UV)
+ def addTexture(m, texture, enable=True):
+ for i in xrange(10):
+ if m.textures[i]:
+ continue
+ if enable:
+ m.mode = m.mode | Blender.Material.Modes.TEXFACE
+ m.setTexture(i, texture, Blender.Texture.TexCo.UV)
+ else:
+ m.setTexture(i, texture)
+ material.setUseTexture(m, i, False)
+ return i
+
+ @staticmethod
+ def getTexture(m, index):
+ return m.textures[index]
+
+ @staticmethod
+ def hasTexture(m):
+ return len(m.getTextures())>0
@staticmethod
- def hasTexture(material):
- return len(material.getTextures())>0
+ def setUseTexture(m, index, enable):
+ enable_textures=set(m.enabledTextures)
+ if enable:
+ enabledTextures.add(index)
+ else;
+ enabledTextures.remove(index)
+ m.enabledTextures=list(enabledTextures)
@staticmethod
def eachTexturePath(m, dirname):