[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