[Bf-extensions-cvs] [fdd8247] master: Initial commit Btrace: T50928
meta-androcto
noreply at git.blender.org
Mon Mar 20 04:12:47 CET 2017
Commit: fdd8247e8691b37c17a9cffb01dfcf9b17a496a1
Author: meta-androcto
Date: Mon Mar 20 14:12:16 2017 +1100
Branches: master
https://developer.blender.org/rBAfdd8247e8691b37c17a9cffb01dfcf9b17a496a1
Initial commit Btrace: T50928
===================================================================
A btrace/__init__.py
A btrace/bTrace.py
===================================================================
diff --git a/btrace/__init__.py b/btrace/__init__.py
new file mode 100644
index 0000000..40ff4df
--- /dev/null
+++ b/btrace/__init__.py
@@ -0,0 +1,67 @@
+#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 2
+#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, write to the Free Software Foundation,
+#Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#END GPL LICENCE BLOCK
+
+bl_info = {
+ "name": "Btrace",
+ "author": "liero, crazycourier, Atom, Meta-Androcto, MacKracken",
+ "version": (1, 1, ),
+ "blender": (2, 68, 0),
+ "location": "View3D > Tools",
+ "description": "Tools for converting/animating objects/particles into curves",
+ "warning": "",
+ "wiki_url": "https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Curve/Btrace",
+ "tracker_url": "https://developer.blender.org/maniphest/task/edit/form/2/",
+ "category": "Add Curve"}
+
+
+import bpy
+from .bTrace import *
+import selection_utils
+from bpy.props import FloatProperty, EnumProperty, IntProperty, BoolProperty, FloatVectorProperty
+
+### Define Classes to register
+classes = [
+ TracerProperties,
+ TracerPropertiesMenu,
+ addTracerObjectPanel,
+ OBJECT_OT_convertcurve,
+ OBJECT_OT_objecttrace,
+ OBJECT_OT_objectconnect,
+ OBJECT_OT_writing,
+ OBJECT_OT_particletrace,
+ OBJECT_OT_traceallparticles,
+ OBJECT_OT_curvegrow,
+ OBJECT_OT_reset,
+ OBJECT_OT_fcnoise,
+ OBJECT_OT_meshfollow,
+ OBJECT_OT_materialChango,
+ OBJECT_OT_clearColorblender
+ ]
+
+def register():
+ for c in classes:
+ bpy.utils.register_class(c)
+ bpy.types.WindowManager.curve_tracer = bpy.props.PointerProperty(type=TracerProperties)
+ bpy.types.WindowManager.btrace_menu = bpy.props.PointerProperty(type=TracerPropertiesMenu, update=deselect_others)
+
+def unregister():
+ for c in classes:
+ bpy.utils.unregister_class(c)
+ del bpy.types.WindowManager.curve_tracer
+if __name__ == "__main__":
+ register()
diff --git a/btrace/bTrace.py b/btrace/bTrace.py
new file mode 100644
index 0000000..9ac2cfc
--- /dev/null
+++ b/btrace/bTrace.py
@@ -0,0 +1,1628 @@
+#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 2
+#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, write to the Free Software Foundation,
+#Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#END GPL LICENCE BLOCK
+
+bl_info = {
+ "name": "Btrace",
+ "author": "liero, crazycourier, Atom, Meta-Androcto, MacKracken",
+ "version": (1, 1, ),
+ "blender": (2, 71, 0),
+ "location": "View3D > Toolshelf > Addons Tab",
+ "description": "Tools for converting/animating objects/particles into curves",
+ "warning": "Still under development, bug reports appreciated",
+ "wiki_url": "",
+ "tracker_url": "https://developer.blender.org/T29563",
+ "category": "Add Curve"}
+
+
+#### TO DO LIST ####
+### [ ] Add more options to curve radius/modulation plus cyclic/connect curve option
+
+import bpy
+import selection_utils
+from bpy.props import FloatProperty, EnumProperty, IntProperty, BoolProperty, FloatVectorProperty
+
+
+def deselect_others(ob, context):
+ """For tool menu select, deselects others if one selected"""
+ selected = addTracerObjectPanel.selected
+ ob[selected] = False
+ keys = [key for key in ob.keys() if ob[key]] # all the True keys
+ if len(keys) <= 0:
+ ob[selected] = True # reselect
+ return None
+ for key in keys:
+ addTracerObjectPanel.selected = key
+ ob[key] = True
+
+
+# Class for properties panel
+class TracerPropertiesMenu(bpy.types.PropertyGroup):
+ """Toolbar show/hide booleans for tool options"""
+ tool_objectTrace = BoolProperty(name="Object Trace", default=False, description="Trace selected mesh object with a curve", update=deselect_others)
+ tool_objectsConnect = BoolProperty(name="Objects Connect", default=False, description="Connect objects with a curve controlled by hooks", update=deselect_others)
+ tool_particleTrace = BoolProperty(name="Particle Trace", default=False, description="Trace particle path with a curve", update=deselect_others)
+ tool_meshFollow = BoolProperty(name="Mesh Follow", default=False, description="Follow selection items on animated mesh object", update=deselect_others)
+ tool_particleConnect = BoolProperty(name="Particle Connect", default=False, description="Connect particles with a curves and animated over particle lifetime", update=deselect_others)
+ tool_growCurve = BoolProperty(name="Grow Curve", default=False, description="Animate curve bevel over time by keyframing points radius", update=deselect_others)
+ tool_handwrite = BoolProperty(name="Handwriting", default=False, description="Create and Animate curve using the grease pencil", update=deselect_others)
+ tool_fcurve = BoolProperty(name="F-Curve Noise", default=False, description="Add F-Curve noise to selected objects", update=deselect_others)
+ tool_colorblender = BoolProperty(name="Color Blender", default=False, description="Add F-Curve noise to selected objects", update=deselect_others)
+
+
+# Class to define properties
+class TracerProperties(bpy.types.PropertyGroup):
+ """Options for tools"""
+ curve_spline = EnumProperty(name="Spline", items=(("POLY", "Poly", "Use Poly spline type"), ("NURBS", "Nurbs", "Use Nurbs spline type"), ("BEZIER", "Bezier", "Use Bezier spline type")), description="Choose which type of spline to use when curve is created", default="BEZIER")
+ curve_handle = EnumProperty(name="Handle", items=(("ALIGNED", "Aligned", "Use Aligned Handle Type"), ("AUTOMATIC", "Automatic", "Use Auto Handle Type"), ("FREE_ALIGN", "Free Align", "Use Free Handle Type"), ("VECTOR", "Vector", "Use Vector Handle Type")), description="Choose which type of handle to use when curve is created", default="VECTOR")
+ curve_resolution = IntProperty(name="Bevel Resolution", min=1, max=32, default=4, description="Adjust the Bevel resolution")
+ curve_depth = FloatProperty(name="Bevel Depth", min=0.0, max=100.0, default=0.1, description="Adjust the Bevel depth")
+ curve_u = IntProperty(name="Resolution U", min=0, max=64, default=12, description="Adjust the Surface resolution")
+ curve_join = BoolProperty(name="Join Curves", default=False, description="Join all the curves after they have been created")
+ curve_smooth = BoolProperty(name="Smooth", default=True, description="Render curve smooth")
+ # Option to Duplicate Mesh
+ object_duplicate = BoolProperty(name="Apply to Copy", default=False, description="Apply curve to a copy of object")
+ # Distort Mesh options
+ distort_modscale = IntProperty(name="Modulation Scale", min=0, max=50, default=2, description="Add a scale to modulate the curve at random points, set to 0 to disable")
+ distort_noise = FloatProperty(name="Mesh Noise", min=0.0, max=50.0, default=0.00, description="Adjust noise added to mesh before adding curve")
+ # Particle Options
+ particle_step = IntProperty(name="Step Size", min=1, max=50, default=5, description="Sample one every this number of frames")
+ particle_auto = BoolProperty(name='Auto Frame Range', default=True, description='Calculate Frame Range from particles life')
+ particle_f_start = IntProperty(name='Start Frame', min=1, max=5000, default=1, description='Start frame')
+ particle_f_end = IntProperty(name='End Frame', min=1, max=5000, default=250, description='End frame')
+ # F-Curve Modifier Properties
+ fcnoise_rot = BoolProperty(name="Rotation", default=False, description="Affect Rotation")
+ fcnoise_loc = BoolProperty(name="Location", default=True, description="Affect Location")
+ fcnoise_scale = BoolProperty(name="Scale", default=False, description="Affect Scale")
+ fcnoise_amp = IntProperty(name="Amp", min=1, max=500, default=5, description="Adjust the amplitude")
+ fcnoise_timescale = FloatProperty(name="Time Scale", min=1, max=500, default=50, description="Adjust the time scale")
+ fcnoise_key = BoolProperty(name="Add Keyframe", default=True, description="Keyframe is needed for tool, this adds a LocRotScale keyframe")
+ show_curve_settings = BoolProperty(name="Curve Settings", default=False, description="Change the curve settings for the created curve")
+ material_settings = BoolProperty(name="Material Settings", default=False, description="Change the material settings for the created curve")
+ particle_settings = BoolProperty(name="Particle Settings", default=False, description="Show the settings for the created curve")
+ animation_settings = BoolProperty(name="Animation Settings", default=False, description="Show the settings for the Animations")
+ distort_curve = BoolProperty(name="Add Distortion", default=False, description="Set options to distort the final curve")
+ connect_noise = BoolProperty(name="F-Curve Noise", default=False, description="Adds F-Curve Noise Modifier to selected objects")
+ settings_objectTrace = BoolProperty(name="Object Trace Settings", default=False, description="Trace selected mesh object with a curve")
+ settings_objectsConnect = BoolProperty(name="Objects Connect Settings", default=Fal
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list