[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [3055] contrib/py/scripts/addons/ mesh_vertex_slide.py: Replaced Conv3DtoScreen2D function with location_3d_to_region_2d
Valter Battioli
valtervb at live.com
Sat Mar 3 13:55:18 CET 2012
Revision: 3055
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=3055
Author: valtervb
Date: 2012-03-03 12:55:17 +0000 (Sat, 03 Mar 2012)
Log Message:
-----------
Replaced Conv3DtoScreen2D function with location_3d_to_region_2d
Modified Paths:
--------------
contrib/py/scripts/addons/mesh_vertex_slide.py
Modified: contrib/py/scripts/addons/mesh_vertex_slide.py
===================================================================
--- contrib/py/scripts/addons/mesh_vertex_slide.py 2012-03-03 11:45:00 UTC (rev 3054)
+++ contrib/py/scripts/addons/mesh_vertex_slide.py 2012-03-03 12:55:17 UTC (rev 3055)
@@ -61,6 +61,7 @@
# movement. Left/Right arrow rather than Pus/Minus numpad
#ver. 1.1.6: Now the vertex movement is always coherent with Mouse movement
#ver. 2.0.0: Update to Bmesh and remove all mode switching
+#ver. 2.0.1: Replaced Conv3DtoScreen2D function with location_3d_to_region_2d
#***********************************************************************
import bpy
@@ -82,8 +83,8 @@
self.original = self.Vertex() # Original position
self.new = self.Vertex() # New position
self.t = 0 # Used for move the vertex
- self.x2D = 0 # Screen 2D cooord
- self.y2D = 0 # Screen 2D cooord
+ self.x2D = 0 # Screen 2D cooord of the point
+ self.y2D = 0 # Screen 2D cooord of the point
self.selected = False
class Vertex():
@@ -97,10 +98,10 @@
bl_options = {'REGISTER', 'UNDO', 'GRAB_POINTER', 'BLOCKING', 'INTERNAL'}
Vertex1 = Point() # First selected vertex data
- LinkedVertices1 = [] # List of index of linked vertices of Vertex1
+ LinkedVertices1 = [] # List of index of linked verts of Vertex1
Vertex2 = Point() # Second selected vertex data
- LinkedVertices2 = [] # List of index of linked vertices of Vertex2
- ActiveVertex = None
+ LinkedVertices2 = [] # List of index of linked verts of Vertex2
+ ActiveVertex = None # Index of vertex to be moved
tmpMouse_x = 0
tmpMouse = Vector((0, 0))
Direction = 1.0 # Used for direction and precision of the movement
@@ -108,39 +109,13 @@
VertLinkedIdx = 0 # Index of LinkedVertices1. Used only for 1 vertex select case
LeftAltPress = False # Flag to know if ALT is hold on
LeftShiftPress = False # Flag to know if SHIFT is hold on
- obj = None #Object
- mesh = None #Mesh
- bm = None #BMesh
-
- # Convert a 3D coord to screen 2D coord
- #To be replaced with bpy_extras.view3d_utils.location_3d_to_region_2d
- def Conv3DtoScreen2D(self, context, index):
- # 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
+ obj = None # Object
+ mesh = None # Mesh
+ bm = None # BMesh
- # Get matrices
- view_mat = context.space_data.region_3d.perspective_matrix
- ob_mat = context.active_object.matrix_world
- total_mat = view_mat * ob_mat
-
- Vertices = self.bm.verts
- loc = Vertices[index].co.to_4d() # Where I want draw
-
- vec = total_mat * loc
- if vec[3] != 0:
- vec = vec / vec[3]
- else:
- vec = vec
- x = int(mid_x + vec[0] * width / 2.0)
- y = int(mid_y + vec[1] * height / 2.0)
- return x, y
-
# OpenGL Function to draw on the screen help and pointer *
def draw_callback_px(self, context):
- x, y = self.Conv3DtoScreen2D(context, self.ActiveVertex)
+ x, y = loc3d2d(context.region, context.space_data.region_3d, self.bm.verts[self.ActiveVertex].co)
# Draw an * at the active vertex
blf.position(0, x, y, 0)
@@ -195,7 +170,7 @@
def modal(self, context, event):
if event.type == 'MOUSEMOVE':
Vertices = self.bm.verts
- # Calculate the temp t valuse. Stored in td
+ # Calculate the temp t value. Stored in td
tmpMouse = Vector((event.mouse_x, event.mouse_y))
t_diff = (tmpMouse - self.tmpMouse).length
self.tmpMouse = tmpMouse
@@ -289,18 +264,18 @@
# Keep Vertex movement coherent with Mouse movement
if self.Vertex2.original.idx is not None:
if self.FirstVertexMove:
- tmpX1, tmpY1 = self.Conv3DtoScreen2D(context, self.Vertex1.original.idx)
- tmpX2, tmpY2 = self.Conv3DtoScreen2D(context, self.Vertex2.original.idx)
+ tmpX1, tmpY1 = loc3d2d(context.region, context.space_data.region_3d, self.Vertex1.original.co)
+ tmpX2, tmpY2 = loc3d2d(context.region, context.space_data.region_3d, self.Vertex2.original.co)
if ((tmpX1 > tmpX2 and self.Direction >= 0) or (tmpX2 > tmpX1 and self.Direction >= 0)):
self.Direction = -self.Direction
else:
- tmpX1, tmpY1 = self.Conv3DtoScreen2D(context, self.Vertex2.original.idx)
- tmpX2, tmpY2 = self.Conv3DtoScreen2D(context, self.Vertex1.original.idx)
+ tmpX1, tmpY1 = loc3d2d(context.region, context.space_data.region_3d, self.Vertex2.original.co)
+ tmpX2, tmpY2 = loc3d2d(context.region, context.space_data.region_3d, self.Vertex1.original.co)
if (tmpX1 < tmpX2 and self.Direction < 0) or (tmpX2 < tmpX1 and self.Direction >= 0):
self.Direction = -self.Direction
else:
- tmpX1, tmpY1 = self.Conv3DtoScreen2D(context, self.Vertex1.original.idx)
- tmpX2, tmpY2 = self.Conv3DtoScreen2D(context, self.LinkedVertices1[self.VertLinkedIdx].original.idx)
+ tmpX1, tmpY1 = loc3d2d(context.region, context.space_data.region_3d, self.Vertex1.original.co)
+ tmpX2, tmpY2 = loc3d2d(context.region, context.space_data.region_3d, self.LinkedVertices1[self.VertLinkedIdx].original.co)
if ((tmpX1 > tmpX2 and self.Direction >= 0) or (tmpX2 > tmpX1 and self.Direction < 0)):
self.Direction = -self.Direction
context.area.tag_redraw()
@@ -329,18 +304,18 @@
# Keep Vertex movement coherent with Mouse movement
if self.Vertex2.original.idx is not None:
if self.FirstVertexMove:
- tmpX1, tmpY1 = self.Conv3DtoScreen2D(context, self.Vertex1.original.idx)
- tmpX2, tmpY2 = self.Conv3DtoScreen2D(context, self.Vertex2.original.idx)
+ tmpX1, tmpY1 = loc3d2d(context.region, context.space_data.region_3d, self.Vertex1.original.co)
+ tmpX2, tmpY2 = loc3d2d(context.region, context.space_data.region_3d, self.Vertex2.original.co)
if ((tmpX1 > tmpX2 and self.Direction >= 0) or (tmpX2 > tmpX1 and self.Direction >= 0)):
self.Direction = -self.Direction
else:
- tmpX1, tmpY1 = self.Conv3DtoScreen2D(context, self.Vertex2.original.idx)
- tmpX2, tmpY2 = self.Conv3DtoScreen2D(context, self.Vertex1.original.idx)
+ tmpX1, tmpY1 = loc3d2d(context.region, context.space_data.region_3d, self.Vertex2.original.co)
+ tmpX2, tmpY2 = loc3d2d(context.region, context.space_data.region_3d, self.Vertex1.original.co)
if (tmpX1 < tmpX2 and self.Direction < 0) or (tmpX2 < tmpX1 and self.Direction >= 0):
self.Direction = -self.Direction
else:
- tmpX1, tmpY1 = self.Conv3DtoScreen2D(context, self.Vertex1.original.idx)
- tmpX2, tmpY2 = self.Conv3DtoScreen2D(context, self.LinkedVertices1[self.VertLinkedIdx].original.idx)
+ tmpX1, tmpY1 = loc3d2d(context.region, context.space_data.region_3d, self.Vertex1.original.co)
+ tmpX2, tmpY2 = loc3d2d(context.region, context.space_data.region_3d, self.LinkedVertices1[self.VertLinkedIdx].original.co)
if ((tmpX1 > tmpX2 and self.Direction >= 0) or (tmpX2 > tmpX1 and self.Direction < 0)):
self.Direction = -self.Direction
context.area.tag_redraw()
@@ -410,14 +385,14 @@
self.Vertex1.original.idx = SelectedVertices[0]
self.Vertex1.original.co = self.bm.verts[SelectedVertices[0]].co.copy()
self.Vertex1.new = self.Vertex1.original
- x, y = self.Conv3DtoScreen2D(context, SelectedVertices[0]) # For draw edge
+ x, y = loc3d2d(context.region, context.space_data.region_3d, self.bm.verts[SelectedVertices[0]].co) # For draw edge
self.Vertex1.x2D = x
self.Vertex1.y2D = y
if len(SelectedVertices) == 2:
self.Vertex2.original.idx = SelectedVertices[1]
self.Vertex2.original.co = self.bm.verts[SelectedVertices[1]].co.copy()
self.Vertex2.new = self.Vertex2.original
- x, y = self.Conv3DtoScreen2D(context, SelectedVertices[1]) # For draw edge
+ x, y = loc3d2d(context.region, context.space_data.region_3d, self.bm.verts[SelectedVertices[1]].co) # For draw edge
self.Vertex2.x2D = x
self.Vertex2.y2D = y
@@ -430,7 +405,7 @@
self.LinkedVertices1[-1].original.idx = vert.other_vert(self.bm.verts[self.Vertex1.original.idx]).index #e_0.other_vert(v_0).index
self.LinkedVertices1[-1].original.co = vert.other_vert(self.bm.verts[self.Vertex1.original.idx]).co.copy()
self.LinkedVertices1[-1].new = self.LinkedVertices1[-1].original
- x, y = self.Conv3DtoScreen2D(context, vert.other_vert(self.bm.verts[self.Vertex1.original.idx]).index) # For draw edge
+ x, y = loc3d2d(context.region, context.space_data.region_3d, vert.other_vert(self.bm.verts[self.Vertex1.original.idx]).co) # For draw edge
self.LinkedVertices1[-1].x2D = x
self.LinkedVertices1[-1].y2D = y
if len(SelectedVertices) == 2:
@@ -439,13 +414,12 @@
self.LinkedVertices2[-1].original.idx = vert.other_vert(self.bm.verts[self.Vertex2.original.idx]).index
self.LinkedVertices2[-1].original.co = vert.other_vert(self.bm.verts[self.Vertex2.original.idx]).co.copy()
self.LinkedVertices2[-1].new = self.LinkedVertices1[-1].original
- x, y = self.Conv3DtoScreen2D(context, vert.other_vert(self.bm.verts[self.Vertex2.original.idx]).index) # For draw edge
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list