Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrendon Murphy <meta.androcto1@gmail.com>2015-04-18 08:51:59 +0300
committerBrendon Murphy <meta.androcto1@gmail.com>2015-05-04 03:46:39 +0300
commit8cf173ddbe041e9a4b0ac22f83e7290e53936a9d (patch)
tree8f853e5fb62c0b630244b5be5e19ae7ea86b5846 /add_curve_extra_objects/add_curve_torus_knots.py
parente75551f7062c6ef3d2eee456492a7c6d6bc6aeb2 (diff)
test
Diffstat (limited to 'add_curve_extra_objects/add_curve_torus_knots.py')
-rw-r--r--add_curve_extra_objects/add_curve_torus_knots.py223
1 files changed, 0 insertions, 223 deletions
diff --git a/add_curve_extra_objects/add_curve_torus_knots.py b/add_curve_extra_objects/add_curve_torus_knots.py
deleted file mode 100644
index 22fe48fe..00000000
--- a/add_curve_extra_objects/add_curve_torus_knots.py
+++ /dev/null
@@ -1,223 +0,0 @@
-# ##### 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-#
-# ##### END GPL LICENSE BLOCK #####
-
-'''
-bl_info = {
- "name": "Torus Knots",
- "author": "testscreenings",
- "version": (0, 1),
- "blender": (2, 59, 0),
- "location": "View3D > Add > Curve",
- "description": "Adds many types of (torus) knots",
- "warning": "",
- "wiki_url": "http://wiki.blender.org/index.php/Extensions:2.6/Py/"
- "Scripts/Curve/Torus_Knot",
- "category": "Add Curve"}
-'''
-
-##------------------------------------------------------------
-#### import modules
-import bpy
-from bpy.props import *
-from math import sin, cos, pi
-from bpy_extras.object_utils import AddObjectHelper, object_data_add
-
-
-########################################################################
-####################### Knot Definitions ###############################
-########################################################################
-def Torus_Knot(self):
- p = self.torus_p
- q = self.torus_q
- w = self.torus_w
- res = self.torus_res
- h = self.torus_h
- u = self.torus_u
- v = self.torus_v
- rounds = self.torus_rounds
-
- newPoints = []
- angle = 2*rounds
- step = angle/(res-1)
- scale = h
- height = w
-
- for i in range(res-1):
- t = ( i*step*pi)
-
- x = (2 * scale + cos((q*t)/p*v)) * cos(t * u)
- y = (2 * scale + cos((q*t)/p*v)) * sin(t * u)
- z = sin(q*t/p) * height
-
- newPoints.extend([x,y,z,1])
-
- return newPoints
-
-
-##------------------------------------------------------------
-# Main Function
-def create_torus_knot(self, context):
- verts = Torus_Knot(self)
-
- curve_data = bpy.data.curves.new(name='Torus Knot', type='CURVE')
- spline = curve_data.splines.new(type='NURBS')
- spline.points.add(int(len(verts)*0.25 - 1))
- spline.points.foreach_set('co', verts)
- spline.use_endpoint_u = True
- spline.use_cyclic_u = True
- spline.order_u = 4
- curve_data.dimensions = '3D'
-
- if self.geo_surf:
- curve_data.bevel_depth = self.geo_bDepth
- curve_data.bevel_resolution = self.geo_bRes
- curve_data.fill_mode = 'FULL'
- curve_data.extrude = self.geo_extrude
- #curve_data.offset = self.geo_width # removed, somehow screws things up all of a sudden
- curve_data.resolution_u = self.geo_res
-
- new_obj = object_data_add(context, curve_data, operator=self)
-
-
-class torus_knot_plus(bpy.types.Operator, AddObjectHelper):
- """"""
- bl_idname = "curve.torus_knot_plus"
- bl_label = "Torus Knot +"
- bl_options = {'REGISTER', 'UNDO', 'PRESET'}
- bl_description = "adds many types of knots"
-
- #### general options
- options_plus = BoolProperty(name="plus options",
- default=False,
- description="Show more options (the plus part)")
-
- #### GEO Options
- geo_surf = BoolProperty(name="Surface",
- default=True)
- geo_bDepth = FloatProperty(name="bevel",
- default=0.08,
- min=0, soft_min=0)
- geo_bRes = IntProperty(name="bevel res",
- default=2,
- min=0, soft_min=0,
- max=4, soft_max=4)
- geo_extrude = FloatProperty(name="extrude",
- default=0.0,
- min=0, soft_min=0)
- geo_res = IntProperty(name="resolution",
- default=12,
- min=1, soft_min=1)
-
-
- #### Parameters
- torus_res = IntProperty(name="Resoulution",
- default=100,
- min=3, soft_min=3,
- description='Resolution, Number of controlverticies')
- torus_p = IntProperty(name="p",
- default=2,
- min=1, soft_min=1,
- #max=1, soft_max=1,
- description="p")
- torus_q = IntProperty(name="q",
- default=3,
- min=1, soft_min=1,
- #max=1, soft_max=1,
- description="q")
- torus_w = FloatProperty(name="Height",
- default=1,
- #min=0, soft_min=0,
- #max=1, soft_max=1,
- description="Height in Z")
- torus_h = FloatProperty(name="Scale",
- default=1,
- #min=0, soft_min=0,
- #max=1, soft_max=1,
- description="Scale, in XY")
- torus_u = IntProperty(name="u",
- default=1,
- min=1, soft_min=1,
- #max=1, soft_max=1,
- description="u")
- torus_v = IntProperty(name="v",
- default=1,
- min=1, soft_min=1,
- #max=1, soft_max=1,
- description="v")
- torus_rounds = IntProperty(name="Rounds",
- default=2,
- min=1, soft_min=1,
- #max=1, soft_max=1,
- description="Rounds")
-
- ##### DRAW #####
- def draw(self, context):
- layout = self.layout
-
- # general options
- layout.label(text="Torus Knot Parameters:")
-
- # Parameters
- box = layout.box()
- box.prop(self, 'torus_res')
- box.prop(self, 'torus_w')
- box.prop(self, 'torus_h')
- box.prop(self, 'torus_p')
- box.prop(self, 'torus_q')
- box.prop(self, 'options_plus')
- if self.options_plus:
- box.prop(self, 'torus_u')
- box.prop(self, 'torus_v')
- box.prop(self, 'torus_rounds')
-
- # surface Options
- col = layout.column()
- col.label(text="Geometry Options:")
- box = layout.box()
- box.prop(self, 'geo_surf')
- if self.geo_surf:
- box.prop(self, 'geo_bDepth')
- box.prop(self, 'geo_bRes')
- box.prop(self, 'geo_extrude')
- box.prop(self, 'geo_res')
-
- col = layout.column()
- col.prop(self, 'location')
- col.prop(self, 'rotation')
-
- ##### POLL #####
- @classmethod
- def poll(cls, context):
- return context.scene != None
-
- ##### EXECUTE #####
- def execute(self, context):
- # turn off undo
- undo = bpy.context.user_preferences.edit.use_global_undo
- bpy.context.user_preferences.edit.use_global_undo = False
-
- if not self.options_plus:
- self.torus_rounds = self.torus_p
-
- #recoded for add_utils
- create_torus_knot(self, context)
-
- # restore pre operator undo state
- bpy.context.user_preferences.edit.use_global_undo = undo
-
- return {'FINISHED'}