X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=blender%2Fio_mspgl%2Fproperties.py;h=9b00a76c27f5c238e05ff9f17904ba9aef34bd79;hb=85fa9efac0d7ba49c0ce9e0adec7ac1145a6c452;hp=dcc8cc34d55a81b0fd38c16c9bf43a6f6dca5add;hpb=1bad86b461abd4fe2a1cb1c6c5685adf5db13935;p=libs%2Fgl.git diff --git a/blender/io_mspgl/properties.py b/blender/io_mspgl/properties.py index dcc8cc34..9b00a76c 100644 --- a/blender/io_mspgl/properties.py +++ b/blender/io_mspgl/properties.py @@ -1,18 +1,293 @@ import bpy -class MspGLProperties(bpy.types.Panel): +class MspGLSceneProperties(bpy.types.Panel): + bl_idname = "SCENE_PT_mspgl_properties" + bl_label = "MspGL properties" + bl_space_type = "PROPERTIES" + bl_region_type = "WINDOW" + bl_context = "scene" + + def draw(self, context): + scene = context.scene + + self.layout.prop(scene, "export_disposition") + +class MspGLWorldProperties(bpy.types.Panel): + bl_idname = "WORLD_PT_mspgl_properties" + bl_label = "MspGL properties" + bl_space_type = "PROPERTIES" + bl_region_type = "WINDOW" + bl_context = "world" + + def draw(self, context): + world = context.scene.world + if not world: + return + + self.layout.prop(world, "use_sky") + if world.use_sky: + self.layout.prop(world, "sun_light") + +class MspGLMeshProperties(bpy.types.Panel): + bl_idname = "MESH_PT_mspgl_properties" + bl_label = "MspGL properties" + bl_space_type = "PROPERTIES" + bl_region_type = "WINDOW" + bl_context = "data" + + @classmethod + def poll(cls, context): + return context.active_object.type=="MESH" + + def draw(self, context): + mesh = context.active_object.data + + self.layout.prop(mesh, "smoothing") + self.layout.prop(mesh, "use_strips") + + self.layout.separator() + + col = self.layout.column() + col.label(text="Data selection") + col.prop(mesh, "use_lines") + col.prop(mesh, "vertex_groups") + col.prop(mesh, "max_groups_per_vertex") + + self.layout.separator() + + col = self.layout.column() + col.label(text="Texturing") + col.prop(mesh, "use_uv") + col.prop(mesh, "tangent_vecs") + col.prop(mesh, "tangent_uvtex") + +class MspGLObjectProperties(bpy.types.Panel): bl_idname = "OBJECT_PT_mspgl_properties" bl_label = "MspGL properties" bl_space_type = "PROPERTIES" bl_region_type = "WINDOW" bl_context = "object" + @classmethod + def poll(cls, context): + return context.active_object.type=="MESH" + def draw(self, context): obj = context.active_object - self.layout.prop(obj, "technique"); - self.layout.prop(obj, "compound"); + self.layout.prop(obj, "compound") + self.layout.prop(obj, "lod_for_parent") + if obj.lod_for_parent: + self.layout.prop(obj, "lod_index") + +class MspGLMaterialProperties(bpy.types.Panel): + bl_idname = "MATERIAL_PT_mspgl_properties" + bl_label = "MspGL properties" + bl_space_type = "PROPERTIES" + bl_region_type = "WINDOW" + bl_context = "material" + + @classmethod + def poll(cls, context): + return context.active_object.active_material is not None + + def draw(self, context): + mat = context.active_object.active_material + if not mat: + return + + self.layout.prop(mat, "render_mode") + if mat.render_mode=='CUSTOM': + self.layout.label(text="Render methods") + self.layout.template_list("MATERIAL_UL_mspgl_render_methods", "", mat, "render_methods", mat, "active_render_method_index") + row = self.layout.row() + row.operator("material.add_render_method") + row.operator("material.remove_render_method") + + if mat.active_render_method_index