From: ousttrue Date: Wed, 30 Jun 2010 23:07:41 +0000 (+0900) Subject: fix bl24 encoding. X-Git-Url: http://git.osdn.jp/view?a=commitdiff_plain;h=0432b9cff78fdbda82e8e193a903badce5d0af36;p=meshio%2Fmeshio.git fix bl24 encoding. --- diff --git a/swig/blender/bl24.py b/swig/blender/bl24.py index 5d4fceb..3ef3dab 100755 --- a/swig/blender/bl24.py +++ b/swig/blender/bl24.py @@ -17,6 +17,17 @@ if os.path.exists(os.path.dirname(sys.argv[0])+"/utf8"): else: INTERNAL_ENCODING=FS_ENCODING +def to_internal_encoding(fn): + ''' + decorator for fix string encoding + ''' + def newfn(*args): + return fn(*[ + v.encode(INTERNAL_ENCODING) if isinstance(v, unicode) else v + for v in args]) + return newfn + + SCENE=None def initialize(name, scene): global SCENE @@ -34,6 +45,7 @@ def finalize(): #if mode_edit: # Blender.Window.EditMode(1) +@to_internal_encoding def message(msg): res=Blender.Draw.PupMenu(msg + "%t|OK") print(res) @@ -94,11 +106,10 @@ class ProgressBar(object): self.progress=float(progress) self._print(message) + @to_internal_encoding def _print(self, message): - print(message) + print(message.decode(INTERNAL_ENCODING)) message="%s: %s" % (self.base, message) - if message.__class__ is unicode: - message=message.encode(FS_ENCODING) Blender.Window.DrawProgressBar(self.progress, message) def finish(self): @@ -133,6 +144,7 @@ class scene: class object: @staticmethod + @to_internal_encoding def createEmpty(name): global SCENE empty=SCENE.objects.new("Empty") @@ -198,11 +210,12 @@ class object: return o.getData(mesh=True).key.blocks @staticmethod + @to_internal_encoding def addShapeKey(o, name): mesh=o.getData(mesh=True) mesh.insertKey() block=mesh.key.blocks[-1] - block.name=name.encode(INTERNAL_ENCODING) + block.name=name return block @staticmethod @@ -222,10 +235,12 @@ class object: return o.getPose() @staticmethod + @to_internal_encoding def addVertexGroup(o, name): o.getData(mesh=True).addVertGroup(name) @staticmethod + @to_internal_encoding def assignVertexGroup(o, name, index, weight): o.getData(mesh=True).assignVertsToGroup(name, [index], weight, Blender.Mesh.AssignModes.ADD) @@ -235,6 +250,7 @@ class object: return o.getData(mesh=True).getVertGroupNames() @staticmethod + @to_internal_encoding def getVertexGroup(o, name): indices=[] for index in o.getData(mesh=True).getVertsFromGroup(name): @@ -284,9 +300,10 @@ class shapekey: class texture: @staticmethod + @to_internal_encoding def create(path): - image = Blender.Image.Load(path.encode(INTERNAL_ENCODING)) - texture = Blender.Texture.New(path.encode(INTERNAL_ENCODING)) + image = Blender.Image.Load(path) + texture = Blender.Texture.New(path) texture.type = Blender.Texture.Types.IMAGE texture.image = image texture.imageFlags|=Blender.Texture.ImageFlags.USEALPHA @@ -295,6 +312,7 @@ class texture: class material: @staticmethod + @to_internal_encoding def create(name): m = Blender.Material.New(name) return m @@ -324,10 +342,11 @@ class material: class mesh: @staticmethod + @to_internal_encoding def create(name): global SCENE m=Blender.Mesh.New() - o=SCENE.objects.new(m, name.encode(INTERNAL_ENCODING)) + o=SCENE.objects.new(m, name) return m, o @staticmethod @@ -471,9 +490,10 @@ class armature: return constraint @staticmethod + @to_internal_encoding def createBone(armature_object, name): bone=Blender.Armature.Editbone() - bone.name=name.encode(INTERNAL_ENCODING) + bone.name=name armature_object.bones[name]=bone return bone diff --git a/swig/setup.py b/swig/setup.py index a2ced8f..78146dc 100644 --- a/swig/setup.py +++ b/swig/setup.py @@ -64,7 +64,7 @@ else: for i in range(len(ext_modules)+1): try: setup(name="meshio", - version='0.12', + version='0.13', description='polygon mesh io utilities', author='ousttrue', author_email='ousttrue@gmail.com',