#!BPY
"""
Name: 'Mesure on'
Blender: 232
Group: 'Misc'
Tooltip: 'Activate control of the length to the 3Dcursor'
"""
# ============================================
# jmsoler 26/10/2004, Blender artistic licence
# updated : 27/07/2005
# last update : 26/10/2006
# ============================================
import Blender
from Blender import BGL,Draw, Window
p=[0,0,0.0,0.0]
p2=[0,0,0.0,1.0]
viewMatrix = Window.GetPerspMatrix()
viewBuff = [viewMatrix[i][j] for i in xrange(4) for j in xrange(4)]
viewBuff = BGL.Buffer(BGL.GL_FLOAT, 16, viewBuff)
BGL.glLoadIdentity()
BGL.glMatrixMode(BGL.GL_PROJECTION)
BGL.glPushMatrix()
BGL.glLoadMatrixf(viewBuff)
try:
p= Blender.Window.GetCursorPos()
E= Blender.Object.Get(Blender.x3dpos)
p2=E.getLocation()
E.setSize(-p2[0],-p2[1],-p2[2])
BGL.glColor4f(1.0,0.5,0.0,1.0)
BGL.glBegin(BGL.GL_LINES)
BGL.glVertex3f(p[0],p[1],p[2])
BGL.glVertex3f(p2[0],p2[1],p2[2])
BGL.glEnd()
BGL.glColor4f(1.0,1.0,1.0,1.0)
EN=abs((p[0]-p2[0])*(p[0]-p2[0])+
(p[1]-p2[1])*(p[1]-p2[1])+
(p[2]-p2[2])*(p[2]-p2[2]))**0.5
E.setName(" %s"%round(EN,4))
Blender.x3dpos=E.getName()
except:
E=Blender.Object.New('Empty')
sce=Blender.Scene.getCurrent()
sce.link(E)
NAME='mesure.py'
if NAME not in [t.name for t in Blender.Text.Get()]:
SCRIPTDIR = Blender.Get('scriptsdir')+Blender.sys.sep
print SCRIPTDIR+NAME
Blender.Text.Load(SCRIPTDIR+NAME)
p= Blender.Window.GetCursorPos()
p2= [1.0,1.0,1.0]
E.setLocation(p2)
E.setSize(p2)
EN=abs((p[0]-p2[0])*(p[0]-p2[0])+
(p[1]-p2[1])*(p[1]-p2[1])+
(p[2]-p2[2])*(p[2]-p2[2]))**0.5
E.setName(" %s"%round(EN,4))
Blender.x3dpos=E.getName()
E.setDrawMode(8)
if sce.getScriptLinks('Redraw')== None :
sce.addScriptLink('mesure.py','Redraw')
elif 'mesure.py' not in sce.getScriptLinks('Redraw'):
sce.addScriptLink('mesure.py','Redraw')
BGL.glColor4f(1.0,0.5,0.0,1.0)
BGL.glBegin(BGL.GL_LINES)
BGL.glVertex3f(p[0],p[1],p[2])
BGL.glVertex3f(p2[0],p2[1],p2[2])
BGL.glEnd() |