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:
authorrtsell <morgan@mortsell.com>2011-09-24 10:57:20 +0400
committerrtsell <morgan@mortsell.com>2011-09-24 10:57:20 +0400
commit6b43b039d7f2cb4cbdae7cec6d3d3b58000c26be (patch)
treec8d6e85015e7164d1a19167a43d7b9707eed6df9 /modules
parentb8fb19411941edfd5d85041fc6373c580bd7aadd (diff)
Cursor Control 0.6.1
Updated to work with Blender 2.59 [[Split portion of a mixed commit.]]
Diffstat (limited to 'modules')
-rw-r--r--modules/geometry_utils.py15
-rw-r--r--modules/misc_utils.py78
-rw-r--r--modules/ui_utils.py51
3 files changed, 140 insertions, 4 deletions
diff --git a/modules/geometry_utils.py b/modules/geometry_utils.py
index 413c24b8..e928ace2 100644
--- a/modules/geometry_utils.py
+++ b/modules/geometry_utils.py
@@ -21,10 +21,14 @@
geometry_utils.py
3d geometry calculations
+
+
+
'''
-from mathutils import geometry, Vector
+from mathutils import Vector, Matrix
+from mathutils import geometry
# 3D Geometry
@@ -136,7 +140,7 @@ class G3:
def closestP2CylinderAxis(cls, p, fv):
n = G3.ThreePnormal(fv)
c = G3.circumCenter(fv)
- if c is None:
+ if(c==None):
return None
return G3.closestP2L(p, c, c+n)
@@ -163,7 +167,7 @@ class G3:
#print ("G3.closestP2Sphere")
try:
c = G3.centerOfSphere(fv)
- if c is None:
+ if c==None:
return None
pc = p-c
if pc.length == 0:
@@ -178,7 +182,7 @@ class G3:
def closestP2Cylinder(cls, p, fv):
#print ("G3.closestP2Sphere")
c = G3.closestP2CylinderAxis(p, fv)
- if c is None:
+ if c==None:
return None
r = (fv[0] - G3.centerOfSphere(fv)).length
pc = p-c
@@ -206,3 +210,6 @@ class G3:
#else:
#pc.normalize()
#return c + (pc * G3.distanceP2P(c, fv[0]))
+
+
+
diff --git a/modules/misc_utils.py b/modules/misc_utils.py
new file mode 100644
index 00000000..8b71d7d3
--- /dev/null
+++ b/modules/misc_utils.py
@@ -0,0 +1,78 @@
+# -*- coding: utf-8 -*-
+# ##### 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 #####
+
+'''
+ misc_util.py
+
+ Miscellaneous helper methods.
+
+
+
+'''
+
+
+
+import bpy
+from cursor_utils import *
+from mathutils import Vector, Matrix
+
+
+
+class BlenderFake:
+
+ @classmethod
+ def forceUpdate(cls):
+ if bpy.context.mode == 'EDIT_MESH':
+ bpy.ops.object.mode_set(mode='OBJECT')
+ bpy.ops.object.mode_set(mode='EDIT')
+
+ @classmethod
+ def forceRedraw(cls):
+ CursorAccess.setCursor(CursorAccess.getCursor())
+
+
+
+# Converts 3D coordinates in a 3DRegion
+# into 2D screen coordinates for that region.
+# Borrowed from Buerbaum Martin (Pontiac)
+def region3d_get_2d_coordinates(context, loc_3d):
+ # Get screen information
+ mid_x = context.region.width / 2.0
+ mid_y = context.region.height / 2.0
+ width = context.region.width
+ height = context.region.height
+
+ # Get matrices
+ view_mat = context.space_data.region_3d.perspective_matrix
+ total_mat = view_mat
+
+ # order is important
+ vec = total_mat * Vector((loc_3d[0], loc_3d[1], loc_3d[2], 1.0))
+
+ # dehomogenise
+ vec = Vector((
+ vec[0] / vec[3],
+ vec[1] / vec[3],
+ vec[2] / vec[3]))
+
+ x = int(mid_x + vec[0] * width / 2.0)
+ y = int(mid_y + vec[1] * height / 2.0)
+ z = vec[2]
+
+ return Vector((x, y, z))
diff --git a/modules/ui_utils.py b/modules/ui_utils.py
new file mode 100644
index 00000000..e938efa9
--- /dev/null
+++ b/modules/ui_utils.py
@@ -0,0 +1,51 @@
+# -*- coding: utf-8 -*-
+# ##### 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 #####
+
+'''
+ ui_utils.py
+
+ Some UI utility functions
+
+
+
+'''
+
+
+
+class GUI:
+
+ @classmethod
+ def drawIconButton(cls, enabled, layout, iconName, operator, frame=True):
+ col = layout.column()
+ col.enabled = enabled
+ bt = col.operator(operator,
+ text='',
+ icon=iconName,
+ emboss=frame)
+
+ @classmethod
+ def drawTextButton(cls, enabled, layout, text, operator, frame=True):
+ col = layout.column()
+ col.enabled = enabled
+ bt = col.operator(operator,
+ text=text,
+ emboss=frame)
+
+
+