[Bf-extensions-cvs] [365f25f] master: curve extra objects, bounce spline, greater precision thanks @JimmyHaze

meta-androcto noreply at git.blender.org
Thu Mar 23 06:54:29 CET 2017


Commit: 365f25f0d7a1eba07586d781efad4731bd4f4335
Author: meta-androcto
Date:   Thu Mar 23 16:53:47 2017 +1100
Branches: master
https://developer.blender.org/rBA365f25f0d7a1eba07586d781efad4731bd4f4335

curve extra objects, bounce spline, greater precision thanks @JimmyHaze

===================================================================

M	add_curve_extra_objects/add_curve_spirofit_bouncespline.py

===================================================================

diff --git a/add_curve_extra_objects/add_curve_spirofit_bouncespline.py b/add_curve_extra_objects/add_curve_spirofit_bouncespline.py
index 9b5d7ae..fcd9b6d 100644
--- a/add_curve_extra_objects/add_curve_spirofit_bouncespline.py
+++ b/add_curve_extra_objects/add_curve_spirofit_bouncespline.py
@@ -108,9 +108,9 @@ def distance(v1, v2):
 
 
 def spiral_point(step, radius, z_coord, spires, waves, wave_height, rndm):
-    x = radius * cos(spires*step) + r.random()*rndm
-    y = radius * sin(spires*step) + r.random()*rndm
-    z = z_coord + (cos(waves*step*pi)*wave_height) + r.random()*rndm
+    x = radius * cos(spires*step) + (r.random()-0.5)*rndm
+    y = radius * sin(spires*step) + (r.random()-0.5)*rndm
+    z = z_coord + (cos(waves*step*pi)*wave_height) + (r.random()-0.5)*rndm
     return [x, y, z]
 
 
@@ -181,37 +181,36 @@ class SpiroFitSpline(bpy.types.Operator):
     bl_options = {'REGISTER', 'UNDO', 'PRESET'}
 
     spire_resolution = bpy.props.IntProperty(name="Spire Resolution",
-            default=4,
-            min=3, soft_min=3,
-            max=128, soft_max=128,
-            description="Spire Resolution")
+            default=8,
+            min=3, max=256,
+            soft_max=128,
+            description="Spire resolution for one turn")
 
     spires = bpy.props.IntProperty(name="Spires",
             default=4,
-            min=1, soft_min=1,
-            max=512, soft_max=512,
-            description="Number of Spire Turns")
+            min=1, max=512,
+            soft_max=256,
+            description="Number of Spire turns")
 
-    waves = bpy.props.IntProperty(name="Waves Amount",
+    waves = bpy.props.IntProperty(name="Waves amount",
             default=0,
-            min=0, soft_min=0,
+            min=0,
             description="Waves amount")
 
-    wave_height = bpy.props.FloatProperty(name="Wave Intensity",
+    wave_height = bpy.props.FloatProperty(name="Wave intensity",
             default=0.1,
-            min=0.0, soft_min=0.0,
+            min=0.0,
             description="Wave intensity scale")
 
     rndm_spire = bpy.props.FloatProperty(name="Randomize",
             default=0.0,
-            min=0.0, soft_min=0.0,
+            min=0.0,
             description="Randomize spire")
 
     offset = bpy.props.FloatProperty(name="Offset",
             default=0.0,
             description="Use normal direction to offset spline")
 
-
     splineTypes = [
             ('POLY', 'Poly', 'POLY'),
             ('BEZIER', 'Bezier', 'BEZIER')]
@@ -222,29 +221,30 @@ class SpiroFitSpline(bpy.types.Operator):
 
     spline_resolution = bpy.props.IntProperty(name="Resolution u",
             default=12,
-            min=0, soft_min=0,
-            max=64, soft_max=64,
+            min=0,
+            max=64,
             description="Curve resolution u")
 
     bevel = bpy.props.FloatProperty(name="Bevel radius",
             default=0.0,
-            min=0.0, soft_min=0.0,
+            min=0.0,
+            precision=3,
             description="Bevel depth")
 
     bevel_res = bpy.props.IntProperty(name="Bevel resolution",
             default=0,
-            min=0, soft_min=0,
-            max=32, soft_max=32,
+            min=0,
+            max=32,
             description="Bevel resolution")
 
     spline_random_radius = bpy.props.FloatProperty(name="Random bevel radius",
             default=0.0,
-            min=0.0, soft_min=0.0,
+            min=0.0,
             description="Random radius amount")
 
     random_seed = bpy.props.IntProperty(name="Random seed",
-            default=1,
-            min=0, soft_min=0,
+            default=2,
+            min=0,
             description="Random seed number")
 
     x_ray = bpy.props.BoolProperty(name="X-Ray",
@@ -306,21 +306,17 @@ class SpiroFitSpline(bpy.types.Operator):
 
     def draw(self, context):
         layout = self.layout
-
         col = layout.column(align=True)
         row = col.row(align=True)
 
         row.prop(self, 'x_ray', toggle=True)
         row.separator()
-
         row.prop(self, 'updateSpline', toggle=True) #, icon='FILE_REFRESH')
         row.separator()
-
         properties = row.operator('wm.add_spirofit_spline', text="Add New")
         col.separator()
 
         properties.x_ray = self.x_ray
-
         properties.spire_resolution = self.spire_resolution
         properties.spires = self.spires
         properties.waves = self.waves
@@ -328,7 +324,6 @@ class SpiroFitSpline(bpy.types.Operator):
         properties.offset = self.offset
         properties.rndm_spire = self.rndm_spire
         properties.random_seed = self.random_seed
-
         properties.spline_type = self.spline_type
         properties.spline_resolution = self.spline_resolution
         properties.bevel = self.bevel
@@ -344,7 +339,6 @@ class SpiroFitSpline(bpy.types.Operator):
         col.prop(self, 'rndm_spire')
         col.prop(self, 'random_seed')
         col.separator()
-
         col = layout.column(align=True)
         col.prop(self, 'spline_type', text="")
         col.separator()
@@ -415,19 +409,19 @@ class BounceSpline(bpy.types.Operator):
     bl_options = {'REGISTER', 'UNDO', 'PRESET'}
 
     random_seed = bpy.props.IntProperty(name="Random seed",
-            default=0,
-            min=0, soft_min=0,
+            default=1,
+            min=0,
             description="Random seed number")
 
     bounce_number = bpy.props.IntProperty(name="Bounces",
-            default=100,
-            min=1, soft_min=1,
-            max=9999, soft_max=9999,
+            default=500,
+            min=1, max=99999,
+            soft_max=9999,
             description="Number of Bounces")
 
     ang_noise = bpy.props.FloatProperty(name="Angular noise",
             default=0.25,
-            min=0.0, soft_min=0.0,
+            min=0.0,
             description="Add some noise to ray direction")
 
     offset = bpy.props.FloatProperty(name="Offset",
@@ -436,8 +430,8 @@ class BounceSpline(bpy.types.Operator):
 
     extra = bpy.props.IntProperty(name="Extra",
             default=50,
-            min=0, soft_min=0,
-            max=999, soft_max=999,
+            min=0, max=1000,
+            soft_min=0, soft_max=500,
             description="Number of extra tries if it fails to hit mesh")
 
     active_face = bpy.props.BoolProperty(name="Active face",
@@ -454,24 +448,25 @@ class BounceSpline(bpy.types.Operator):
 
     spline_resolution = bpy.props.IntProperty(name="Resolution u",
             default=12,
-            min=0, soft_min=0,
-            max=64, soft_max=64,
+            min=0,
+            max=64,
             description="Curve resolution u")
 
     bevel = bpy.props.FloatProperty(name="Bevel radius",
             default=0.0,
-            min=0.0, soft_min=0.0,
+            min=0.0,
+            precision=3,
             description="Bevel depth")
 
     bevel_res = bpy.props.IntProperty(name="Bevel resolution",
             default=0,
-            min=0, soft_min=0,
-            max=32, soft_max=32,
+            min=0,
+            max=32,
             description="Bevel resolution")
 
     spline_random_radius = bpy.props.FloatProperty(name="Random bevel radius",
             default=0.0,
-            min=0.0, soft_min=0.0,
+            min=0.0,
             description="Random radius amount")
 
     x_ray = bpy.props.BoolProperty(name="X-Ray",
@@ -536,22 +531,18 @@ class BounceSpline(bpy.types.Operator):
 
         row.prop(self, 'x_ray', toggle=True)
         row.separator()
-
         row.prop(self, 'updateSpline', toggle=True) #, icon='FILE_REFRESH')
         row.separator()
-
         properties = row.operator('wm.add_bounce_spline', text="Add New")
         col.separator()
 
         properties.x_ray = self.x_ray
-
         properties.bounce_number = self.bounce_number
         properties.ang_noise = self.ang_noise
         properties.offset = self.offset
         properties.extra = self.extra
         properties.random_seed = self.random_seed
         properties.active_face = self.active_face
-
         properties.spline_type = self.spline_type
         properties.spline_resolution = self.spline_resolution
         properties.bevel = self.bevel
@@ -567,12 +558,10 @@ class BounceSpline(bpy.types.Operator):
         col.prop(self, 'random_seed')
         col.separator()
         col.prop(self, 'active_face', toggle=False)
-
         col = layout.column(align=True)
         col.prop(self, 'spline_type', text="")
         col.separator()
         col.prop(self, 'spline_resolution')
-
         col.prop(self, 'bevel')
         if self.spline_type == 'BEZIER':
             col.prop(self, 'spline_random_radius')
@@ -596,7 +585,6 @@ class SplinePanel( bpy.types.Panel ):
         layout = self.layout
         col = self.layout.column()
         col.operator(SpiroFitSpline.bl_idname, icon="FORCE_MAGNETIC")
-        col.separator()
         col.operator(BounceSpline.bl_idname, icon="FORCE_HARMONIC")
 
 # ------------------------------------------------------------ # icon="CURVE_DATA"
@@ -617,7 +605,6 @@ def register():
     bpy.utils.register_class(SpiroFitSpline)
     bpy.utils.register_class(BounceSpline)
     bpy.utils.register_class(SplinePanel)
-
     #bpy.types.INFO_MT_curve_add.append(menu_func)
 
 def unregister():



More information about the Bf-extensions-cvs mailing list