Text archives Help
- From: brownlee@sci.utah.edu
- To: manta@sci.utah.edu
- Subject: [Manta] r1664 - trunk/SwigInterface
- Date: Fri, 17 Aug 2007 18:27:04 -0600 (MDT)
Author: brownlee
Date: Fri Aug 17 18:27:03 2007
New Revision: 1664
Modified:
trunk/SwigInterface/wxManta.py
Log:
Camera controls now allowing copying and pasting and other awesomeness
Modified: trunk/SwigInterface/wxManta.py
==============================================================================
--- trunk/SwigInterface/wxManta.py (original)
+++ trunk/SwigInterface/wxManta.py Fri Aug 17 18:27:03 2007
@@ -3,6 +3,8 @@
import wx
import sys
import time
+import string
+import re
from wxPython.glcanvas import wxGLCanvas
from wx.glcanvas import WX_GL_DOUBLEBUFFER as GL_DOUBLEBUFFER
@@ -177,6 +179,7 @@
# CAMERA FRAME CAMERA FRAME CAMERA FRAME CAMERA
FRAME
###############################################################################
###############################################################################
+#send complaints to: brownlee@cs.utah.edu
class CameraFrame(wx.Frame):
def __init__(self, parent, engine):
@@ -196,73 +199,139 @@
hSizer0 = wx.BoxSizer(wx.HORIZONTAL)
self.channelST = wx.StaticText(panel, -1, "Channel: ")
- self.channelTCL = wx.TextCtrl(panel, -1, "0", size=(125,-1))
+ self.channelSP = wx.SpinCtrl(panel, -1, "", (30,50))
+ self.channelSP.SetRange(0,100)
+ self.channelSP.SetValue(0)
hSizer0.Add(self.channelST)
- hSizer0.Add(self.channelTCL)
+ hSizer0.Add(self.channelSP)
hSizer1 = wx.BoxSizer(wx.HORIZONTAL)
self.eyeST = wx.StaticText(panel, -1, "eye x,y,z: " )
- self.eyeXTCL = wx.TextCtrl(panel, -1, str(eye.x()), size=(125,-1))
- self.eyeYTCL = wx.TextCtrl(panel, -1, str(eye.y()), size=(125, -1))
- self.eyeZTCL = wx.TextCtrl(panel, -1, str(eye.z()), size=(125,-1))
+ self.eyeXSP = self.addSpinner(panel, eye.x())
+ self.eyeYSP = self.addSpinner(panel, eye.y())
+ self.eyeZSP = self.addSpinner(panel, eye.z())
hSizer1.Add(self.eyeST)
- hSizer1.Add(self.eyeXTCL)
- hSizer1.Add(self.eyeYTCL)
- hSizer1.Add(self.eyeZTCL)
+ hSizer1.Add(self.eyeXSP)
+ hSizer1.Add(self.eyeYSP)
+ hSizer1.Add(self.eyeZSP)
hSizer2 = wx.BoxSizer(wx.HORIZONTAL)
self.lookatST = wx.StaticText(panel, -1, "lookat x,y,z: ")
- self.lookXTCL = wx.TextCtrl(panel, -1, str(lookat.x()), size=(125,-1))
- self.lookYTCL = wx.TextCtrl(panel, -1, str(lookat.y()), size=(125,-1))
- self.lookZTCL = wx.TextCtrl(panel, -1, str(lookat.z()),
size=(125,-1))
+ self.lookXSP = self.addSpinner(panel, lookat.x())
+ self.lookYSP = self.addSpinner(panel, lookat.y())
+ self.lookZSP = self.addSpinner(panel,lookat.z())
+ #self.lookZTCL = wx.TextCtrl(panel, -1, str(lookat.z()),
size=(125,-1))
hSizer2.Add(self.lookatST)
- hSizer2.Add(self.lookXTCL)
- hSizer2.Add(self.lookYTCL)
- hSizer2.Add(self.lookZTCL)
+ hSizer2.Add(self.lookXSP)
+ hSizer2.Add(self.lookYSP)
+ hSizer2.Add(self.lookZSP)
hSizer3 = wx.BoxSizer(wx.HORIZONTAL)
self.upST = wx.StaticText(panel, -1, "up vector x,y,z: ")
- self.upXTCL = wx.TextCtrl(panel, -1, str(up.x()), size=(125,-1))
- self.upYTCL = wx.TextCtrl(panel, -1, str(up.y()), size=(125,-1))
- self.upZTCL = wx.TextCtrl(panel, -1, str(up.z()), size=(125,-1))
+ self.upXSP = self.addSpinner(panel, up.x())
+ self.upYSP = self.addSpinner(panel, up.y())
+ self.upZSP = self.addSpinner(panel, up.z())
hSizer3.Add(self.upST)
- hSizer3.Add(self.upXTCL)
- hSizer3.Add(self.upYTCL)
- hSizer3.Add(self.upZTCL)
+ hSizer3.Add(self.upXSP)
+ hSizer3.Add(self.upYSP)
+ hSizer3.Add(self.upZSP)
hSizer4 = wx.BoxSizer(wx.HORIZONTAL)
self.fovST = wx.StaticText(panel, -1, "fov horizontal, vertical: ")
- self.fovXTCL = wx.TextCtrl(panel, -1, str(hfov), size = (125, -1))
- self.fovYTCL = wx.TextCtrl(panel, -1, str(vfov), size = (125,-1))
+ self.fovXSP = self.addSpinner(panel, hfov)
+ self.fovYSP = self.addSpinner(panel, vfov)
hSizer4.Add(self.fovST)
- hSizer4.Add(self.fovXTCL)
- hSizer4.Add(self.fovYTCL)
+ hSizer4.Add(self.fovXSP)
+ hSizer4.Add(self.fovYSP)
+
+ hSizer6 = wx.BoxSizer(wx.HORIZONTAL)
+ self.stringTCL = wx.TextCtrl(panel, -1, "camera string",
size=(400,-1))
+ self.ComputeString()
+ self.stringB = wx.Button(panel, -1, "Set")
+ hSizer6.Add(self.stringTCL)
+ hSizer6.Add(self.stringB)
hSizer5 = wx.BoxSizer(wx.HORIZONTAL)
self.okButton = wx.Button(panel, wx.ID_OK)
self.cancelButton = wx.Button(panel, wx.ID_CANCEL)
self.applyButton = wx.Button(panel, wx.ID_APPLY)
- hSizer5.Add(self.okButton)
- hSizer5.Add(self.cancelButton)
- hSizer5.Add(self.applyButton)
+ hSizer5.Add(self.okButton, wx.ALIGN_CENTER)
+ hSizer5.Add(self.cancelButton, wx.ALIGN_CENTER)
+ hSizer5.Add(self.applyButton, wx.ALIGN_CENTER)
sizer.Add(hSizer0, wx.ALIGN_CENTER, 2)
sizer.Add(hSizer1, wx.ALIGN_CENTER, 2)
sizer.Add(hSizer2, wx.ALIGN_CENTER,2)
sizer.Add(hSizer3, wx.ALIGN_CENTER,2)
sizer.Add(hSizer4, wx.ALIGN_CENTER,2)
+ sizer.Add(hSizer6, wx.ALIGN_CENTER, 2)
sizer.Add(hSizer5, wx.ALIGN_CENTER,2)
panel.SetSizer(sizer)
selfSizer = wx.BoxSizer()
- selfSizer.Add(panel, -1, wx.EXPAND)
+ selfSizer.Add(panel, -1, wx.EXPAND|wx.ALIGN_CENTER)
self.SetSizer(selfSizer)
self.SetAutoLayout(True)
self.Bind(wx.EVT_BUTTON, self.OnClickOK, self.okButton)
self.Bind(wx.EVT_BUTTON, self.OnClickCancel, self.cancelButton)
self.Bind(wx.EVT_BUTTON, self.OnClickApply, self.applyButton)
+ self.Bind(wx.EVT_BUTTON, self.OnClickSet, self.stringB)
self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
+ def OnClickSet(self, evt):
+ p = re.compile('-?\d+\.?\d*')
+ s = p.findall(self.stringTCL.GetValue())
+ print s
+ try:
+ self.eyeXSP.SetValue(float(s[0]))
+ self.eyeYSP.SetValue(float(s[1]))
+ self.eyeZSP.SetValue(float(s[2]))
+ self.lookXSP.SetValue(float(s[3]))
+ self.lookYSP.SetValue(float(s[4]))
+ self.lookZSP.SetValue(float(s[5]))
+ self.upXSP.SetValue(float(s[6]))
+ self.upYSP.SetValue(float(s[7]))
+ self.upZSP.SetValue(float(s[8]))
+ self.fovXSP.SetValue(float(s[9]))
+ self.fovYSP.SetValue(float(s[10]))
+ except ValueError:
+ print "incorrect string value"
+
+ def ComputeString(self):
+ ex = float(self.eyeXSP.GetValue())
+ ey = float(self.eyeYSP.GetValue())
+ ez = float(self.eyeZSP.GetValue())
+
+ lx = float(self.lookXSP.GetValue()) #float(self.lookXTCL.GetValue())
+ ly = float(self.lookYSP.GetValue())
+ lz = float(self.lookZSP.GetValue())
+
+ ux = float(self.upXSP.GetValue())
+ uy = float(self.upYSP.GetValue())
+ uz = float(self.upZSP.GetValue())
+ hfov = float(self.fovXSP.GetValue())
+ vfov = float(self.fovYSP.GetValue())
+
+ s = 'eye: (%f %f %f) lookat: (%f, %f, %f) up: (%f, %f, %f) hfov: %f
vfov: %f' % (ex,ey,ez,lx,ly,lz,ux,uy,uz,hfov,vfov)
+ self.stringTCL.SetValue(s)
+
+
+ def addSpinner(self, where, value, id=wx.ID_ANY):
+ floatspin = FS.FloatSpin(where, id,
+ increment=0.01, value=value,
+ extrastyle=FS.FS_LEFT)
+ floatspin.SetFormat("%g")
+ floatspin.SetDigits(5)
+ floatspin.Bind(FS.EVT_FLOATSPIN, self.OnFloatSpin)
+ return floatspin
+
+ def OnFloatSpin(self, event):
+ # Pull out the new value
+ #spinner = event.GetEventObject()
+ #x = float(spinner.GetValue())
+ self.ApplySettings()
+ self.ComputeString()
+
def OnClickOK(self, evt):
self.ApplySettings()
self.Close(True)
@@ -271,24 +340,24 @@
self.ApplySettings()
def ApplySettings(self):
- channel = int(self.channelTCL.GetValue())
- ex = float(self.eyeXTCL.GetValue())
- ey = float(self.eyeYTCL.GetValue())
- ez = float(self.eyeZTCL.GetValue())
+ channel = int(self.channelSP.GetValue())
+ ex = float(self.eyeXSP.GetValue())
+ ey = float(self.eyeYSP.GetValue())
+ ez = float(self.eyeZSP.GetValue())
- lx = float(self.lookXTCL.GetValue())
- ly = float(self.lookYTCL.GetValue())
- lz = float(self.lookZTCL.GetValue())
-
- ux = float(self.upXTCL.GetValue())
- uy = float(self.upYTCL.GetValue())
- uz = float(self.upZTCL.GetValue())
+ lx = float(self.lookXSP.GetValue()) #float(self.lookXTCL.GetValue())
+ ly = float(self.lookYSP.GetValue())
+ lz = float(self.lookZSP.GetValue())
+
+ ux = float(self.upXSP.GetValue())
+ uy = float(self.upYSP.GetValue())
+ uz = float(self.upZSP.GetValue())
eye = manta_new(Vector(ex,ey,ez))
lookat = manta_new(Vector(lx,ly,lz))
up = manta_new(Vector(ux, uy,uz))
- fovx = float(self.fovXTCL.GetValue())
- fovy = float(self.fovYTCL.GetValue())
+ fovx = float(self.fovXSP.GetValue())
+ fovy = float(self.fovYSP.GetValue())
data = manta_new(BasicCameraData(eye, lookat, up, fovx, fovy))
self.engine.getCamera(channel).setBasicCameraData(data)
- [Manta] r1664 - trunk/SwigInterface, brownlee, 08/17/2007
Archive powered by MHonArc 2.6.16.