[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3956] contrib/py/scripts/addons: Adding Online Material Library add-on to contrib.

Peter Cassetta peter at cassetta.info
Tue Nov 13 04:21:29 CET 2012


Revision: 3956
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3956
Author:   petercassetta
Date:     2012-11-13 03:21:22 +0000 (Tue, 13 Nov 2012)
Log Message:
-----------
Adding Online Material Library add-on to contrib.
Includes many files such as .bcm and .jpg files for the bundled library.
Hopefully this works!

Added Paths:
-----------
    contrib/py/scripts/addons/online_mat_lib/
    contrib/py/scripts/addons/online_mat_lib/__init__.py
    contrib/py/scripts/addons/online_mat_lib/material-library/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/basic_blue.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/basic_blue.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/dull_coral.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/dull_coral.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/dull_olive.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/dull_olive.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/flaky_green.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/flaky_green.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/flaky_purple.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/flaky_purple.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/flaky_tangelo.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/flaky_tangelo.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/glossy_yellow.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/glossy_yellow.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/metallic_blue.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/car-paint/metallic_blue.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/effects/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/effects/blaster_bolt_red.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/effects/blaster_bolt_red.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/effects/fake_shading.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/effects/fake_shading.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/effects/invisible_light.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/effects/invisible_light.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/effects/simulated_sss.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/effects/simulated_sss.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/effects/volumetric_light.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/effects/volumetric_light.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/food/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/food/gummy_worm.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/food/gummy_worm.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/food/milk_chocolate.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/food/milk_chocolate.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/food/raspberry.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/food/raspberry.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/glass/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/glass/absorption.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/glass/absorption.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/glass/iridescent.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/glass/iridescent.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/glass/lalique.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/glass/lalique.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/glass/soda_lime_common.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/glass/soda_lime_common.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/index.xml
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/liquids/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/liquids/cranberry_juice.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/liquids/cranberry_juice.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/liquids/slime.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/liquids/slime.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/liquids/soap_bubble.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/liquids/soap_bubble.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/metals/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/metals/bronze_ancient.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/metals/bronze_ancient.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/metals/fools_gold.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/metals/fools_gold.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/metals/galvanized_steel.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/metals/galvanized_steel.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/nature/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/nature/pearl.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/nature/pearl.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/plastics/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/plastics/toy_brick_red.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/plastics/toy_brick_red.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/stones/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/stones/diamond.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/stones/diamond.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/stones/malachite.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/stones/malachite.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/stones/polished_haematite.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/stones/polished_haematite.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/synthetic/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/synthetic/carbon_fiber.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/synthetic/carbon_fiber.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/synthetic/carbon_fiber_glossy.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/synthetic/carbon_fiber_glossy.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/synthetic/polystyrene_foam.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/synthetic/polystyrene_foam.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/synthetic/rubber.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/synthetic/rubber.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/textiles/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/textiles/denim.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/textiles/denim.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/textiles/velvet_edged.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/textiles/velvet_edged.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/textiles/woven_wool.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/textiles/woven_wool.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/wood/
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/wood/polished_walnut.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/wood/polished_walnut.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/wood/rough_pine.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/wood/rough_pine.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/wood/rough_walnut.bcm
    contrib/py/scripts/addons/online_mat_lib/material-library/bundled/cycles/wood/rough_walnut.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/mat_lib_preview_image.jpg
    contrib/py/scripts/addons/online_mat_lib/material-library/my-materials/
    contrib/py/scripts/addons/online_mat_lib/material-library/peter.cassetta.info/
    contrib/py/scripts/addons/online_mat_lib/material-library/peter.cassetta.info/release/
    contrib/py/scripts/addons/online_mat_lib/material-library/peter.cassetta.info/release/cycles/
    contrib/py/scripts/addons/online_mat_lib/material-library/peter.cassetta.info/release/cycles/revision_data.ini
    contrib/py/scripts/addons/online_mat_lib/material-library/peter.cassetta.info/testing/
    contrib/py/scripts/addons/online_mat_lib/material-library/peter.cassetta.info/testing/cycles/
    contrib/py/scripts/addons/online_mat_lib/material-library/peter.cassetta.info/testing/cycles/revision_data.ini

Added: contrib/py/scripts/addons/online_mat_lib/__init__.py
===================================================================
--- contrib/py/scripts/addons/online_mat_lib/__init__.py	                        (rev 0)
+++ contrib/py/scripts/addons/online_mat_lib/__init__.py	2012-11-13 03:21:22 UTC (rev 3956)
@@ -0,0 +1,2934 @@
+#  ***** BEGIN GPL LICENSE BLOCK *****
+#
+#  This program is free software: you can redistribute it and/or modify
+#  it under the terms of the GNU General Public License as published by
+#  the Free Software Foundation, either version 3 of the License, or
+#  (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program.  If not, see http://www.gnu.org/licenses/
+#  or write to the Free Software Foundation, Inc., 51 Franklin Street,
+#  Fifth Floor, Boston, MA 02110-1301, USA.
+#
+#  The Original Code is Copyright (C) 2012 by Peter Cassetta    ###
+#  All rights reserved.
+#
+#  Contact:                        matlib at peter.cassetta.info   ###
+#  Information:  http://peter.cassetta.info/material-library/   ###
+#
+#  The Original Code is: all of this file.
+#
+#  Contributor(s): Peter Cassetta.
+#
+#  ***** END GPL LICENSE BLOCK *****
+
+bl_info = {
+    "name": "Online Material Library",
+    "author": "Peter Cassetta",
+    "version": (0, 4),
+    "blender": (2, 6, 3),
+    "location": "Properties > Material > Online Material Library",
+    "description": "Browse and download materials from a online CC0 library.",
+    "warning": "Beta version",
+    "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Material/Online_Material_Library",
+    "tracker_url": "http://projects.blender.org/tracker/index.php?func=detail&aid=31802",
+    "category": "Material"}
+
+import bpy
+from bpy_extras.io_utils import ExportHelper
+import os.path
+import http.client
+import xml.dom.minidom
+
+library = ""
+#editions = [("Release0", "Release", "(recommended) Stable; gets updated with high-quality materials every one or two months."),
+#            ("Testing1", "Testing", "(online only) Volatile; gets updated with new materials continually."),
+#            ("Bundled2", "Bundled", "(offline only) Contains a small amount of materials bundled with this add-on.")]
+#bpy.types.Scene.mat_lib_edition = bpy.props.EnumProperty(name = "Library Edition", items = editions, description = "Choose an edition", options = {'SKIP_SAVE'})
+
+library_data = []
+update_data = ["Up-to-date.", ""]
+
+library_enum_items = [("peter.cassetta.info/material-library/release/", "Peter's Library - Release", "Stable library hosted on peter.cassetta.info (Default)"),
+                      ("peter.cassetta.info/material-library/testing/", "Peter's Library - Testing", "Continually updated library hosted on peter.cassetta.info (Online only)"),
+                      ("bundled", "Bundled Library", "The library bundled with this add-on (Offline only)")]
+bpy.types.Scene.mat_lib_library = bpy.props.EnumProperty(name = "Select library:", items = library_enum_items, description = "Choose a library", options = {'SKIP_SAVE'})
+
+working_mode = "none"
+mat_lib_host = ""
+mat_lib_location = ""
+mat_lib_cached_files = -1
+if os.path.exists(bpy.utils.user_resource('SCRIPTS', path="addons" + os.sep + "online_mat_lib" + os.sep + "material-library")):
+    mat_lib_folder = bpy.utils.user_resource('SCRIPTS', path="addons" + os.sep + "online_mat_lib" + os.sep + "material-library")
+elif os.path.exists(bpy.utils.script_paths()[0] + os.sep + "addons" + os.sep + "online_mat_lib" + os.sep + "material-library"):
+    mat_lib_folder = bpy.utils.script_paths()[0] + os.sep + "addons" + os.sep + "online_mat_lib" + os.sep + "material-library"
+elif bpy.utils.script_paths()[0] + os.sep + "addons_contrib" + os.sep + "online_mat_lib" + os.sep + "material-library":
+    mat_lib_folder = bpy.utils.script_paths()[0] + os.sep + "addons_contrib" + os.sep + "online_mat_lib" + os.sep + "material-library"
+else:
+    print("ONLINE MATERIAL LIBRARY -- MAJOR PROBLEM:"\
+    "COULD NOT LOCATE ADD-ON INSTALLATION PATH.")
+    mat_lib_folder = "error"
+
+mat_lib_contents = "Please refresh."
+mat_lib_category_filenames = []
+mat_lib_category_types = []
+mat_lib_category_names = []
+mat_lib_categories = 0
+
+category_contents = "None"
+category_name = ""
+category_filename = ""
+category_materials = 0
+
+category_type = "none"
+
+sub_category_contents = "None"
+sub_category_name = ""
+sub_category_filename = ""
+sub_category_categories = 0
+sub_category_names = []
+sub_category_filenames = []
+
+material_names = []
+material_filenames = []
+material_contributors = []
+material_ratings = []
+material_fireflies = []
+material_speeds = []
+material_complexities = []
+
+material_file_contents = ""
+
+current_material_number = -1
+current_material_cached = False
+current_material_previewed = False
+preview_message = []
+node_message = []
+save_filename = ""
+
+bpy.types.Scene.mat_lib_auto_preview = bpy.props.BoolProperty(name = "Auto-download previews", description = "Automatically download material previews in online mode", default = True, options = {'SKIP_SAVE'})
+
+bpy.types.Scene.mat_lib_bcm_write = bpy.props.StringProperty(name = "Text Datablock", description = "Name of text datablock to write .bcm data to", default="bcm_file", options = {'SKIP_SAVE'})
+bpy.types.Scene.mat_lib_bcm_read = bpy.props.StringProperty(name = "Text Datablock", description = "Name of text datablock to read .bcm data from", default="bcm_file", options = {'SKIP_SAVE'})
+bpy.types.Scene.mat_lib_bcm_name = bpy.props.StringProperty(name = "Material Name", description = "Specify a name for the new material", default="Untitled", options = {'SKIP_SAVE'})
+
+bpy.types.Scene.mat_lib_bcm_save_location = bpy.props.StringProperty(name = "Save location", description = "Directory to save .bcm files in", default=mat_lib_folder + os.sep + "my-materials" + os.sep, options = {'SKIP_SAVE'}, subtype="DIR_PATH")
+bpy.types.Scene.mat_lib_bcm_open_location = bpy.props.StringProperty(name = "Open location", description = "Location of .bcm file to open", default=mat_lib_folder + os.sep + "my-materials" + os.sep + "untitled.bcm", options = {'SKIP_SAVE'})
+
+category_enum_items = [("None0", "None", "No category selected")]
+bpy.types.Scene.mat_lib_material_category = bpy.props.EnumProperty(name = "", items = category_enum_items, description = "Choose a category", options = {'SKIP_SAVE'})
+prev_category = "None0"
+
+subcategory_enum_items = [("None0", "None", "No Subcategory Selected")]
+bpy.types.Scene.mat_lib_material_subcategory = bpy.props.EnumProperty(name = "", items = subcategory_enum_items, description = "Choose a subcategory", options = {'SKIP_SAVE'})
+
+class OnlineMaterialLibraryPanel(bpy.types.Panel):
+    """Creates a Panel in the Object properties window"""
+    bl_label = "Online Material Library"
+    bl_idname = "OnlineMaterialLibraryPanel"
+    bl_space_type = "PROPERTIES"
+    bl_region_type = "WINDOW"
+    bl_context = "material"
+    
+    def draw(self, context):
+        global show_success_message
+        global show_success_message_timeout
+        global current_material_number
+        global mat_lib_contents
+        global prev_category
+        global save_filename
+        
+        layout = self.layout
+        
+        if context.scene.render.engine == "CYCLES":
+            #Cycles is enabled!
+            row = layout.row()
+            
+            if category_type is not "info" and category_type is not "settings" and category_type is not "tools":
+                if mat_lib_contents == "" or mat_lib_contents == "Please refresh.":
+                    if mat_lib_folder == "error":
+                        row.label(text="ERROR: Could not find installation path!", icon='ERROR')
+                    else:
+                        #Material Library Contents variable is empty -- show welcome message
+                        row.label(text="Online material library add-on -- Version 0.4", icon='SMOOTH')
+                        
+                        row = layout.row()
+                        rowcol = row.column(align=True)
+                        rowcol.alignment = 'EXPAND'
+                        rowcol.prop(context.scene, "mat_lib_library", text="")
+                        
+                        rowcolrow = rowcol.row(align=True)
+                        rowcolrow.alignment = 'EXPAND'
+                        if "bundled" not in context.scene.mat_lib_library:
+                            rowcolrow.operator("material.libraryconnect", text="Connect", icon='WORLD').mode = "online"
+                        if "testing" not in context.scene.mat_lib_library:
+                            rowcolrow.operator("material.libraryconnect", text="Work Offline", icon='DISK_DRIVE').mode = "offline"
+                    
+                elif working_mode is not "none":
+                    #We have a valid material library
+                    row = layout.row(align=True)
+                    row.alignment = 'EXPAND'
+                    row.prop(bpy.context.scene, "mat_lib_material_category")
+                else:
+                    #Could not retrive a valid material library
+                    row.label(text="Could not retrieve material library.", icon='CANCEL')
+                    row = layout.row()
+                    row.label(text=str(mat_lib_contents))
+                    row = layout.row()
+                    row.label(text="..." + str(mat_lib_contents)[-50:])
+                    
+                    row = layout.row()
+                    rowcol = row.column(align=True)
+                    rowcol.alignment = 'EXPAND'
+                    rowcol.prop(context.scene, "mat_lib_library", text="")
+                    
+                    rowcolrow = rowcol.row(align=True)
+                    rowcolrow.alignment = 'EXPAND'
+                    if "bundled" not in context.scene.mat_lib_library:
+                        rowcolrow.operator("material.libraryconnect", text="Attempt Reconnect", icon='WORLD').mode = "online"

@@ Diff output truncated at 10240 characters. @@


More information about the Bf-extensions-cvs mailing list