self.remButton = wx.Button(self, -1, "Remove")\r
self.sliceButton = wx.Button(self, -1, "Slice")\r
\r
- sizer.Add(self.toolbar, (0,0), span=(1,1), flag=wx.EXPAND)\r
- sizer.Add(self.preview, (1,0), span=(3,1), flag=wx.EXPAND)\r
- sizer.Add(self.listbox, (0,1), span=(2,2), flag=wx.EXPAND)\r
+ sizer.Add(self.toolbar, (0,0), span=(1,3), flag=wx.EXPAND)\r
+ sizer.Add(self.preview, (1,0), span=(4,1), flag=wx.EXPAND)\r
+ sizer.Add(self.listbox, (1,1), span=(1,2), flag=wx.EXPAND)\r
sizer.Add(self.addButton, (2,1), span=(1,1))\r
sizer.Add(self.remButton, (2,2), span=(1,1))\r
sizer.Add(self.sliceButton, (3,1), span=(1,1))\r
self.remButton.Bind(wx.EVT_BUTTON, self.OnRemModel)\r
self.sliceButton.Bind(wx.EVT_BUTTON, self.OnSlice)\r
self.listbox.Bind(wx.EVT_LISTBOX, self.OnListSelect)\r
+\r
+ panel = wx.Panel(self, -1)\r
+ sizer.Add(panel, (4,1), span=(1,2))\r
+ \r
+ sizer = wx.GridBagSizer(2,2)\r
+ panel.SetSizer(sizer)\r
\r
+ self.scaleCtrl = wx.TextCtrl(panel, -1, '')\r
+ self.rotateCtrl = wx.SpinCtrl(panel, -1, '', size=(21*4,21), style=wx.SP_ARROW_KEYS)\r
+ self.rotateCtrl.SetRange(0, 360)\r
+\r
+ sizer.Add(wx.StaticText(panel, -1, 'Scale'), (0,0), flag=wx.ALIGN_CENTER_VERTICAL)\r
+ sizer.Add(self.scaleCtrl, (0,1), flag=wx.ALIGN_BOTTOM|wx.EXPAND)\r
+ sizer.Add(wx.StaticText(panel, -1, 'Rotate'), (1,0), flag=wx.ALIGN_CENTER_VERTICAL)\r
+ sizer.Add(self.rotateCtrl, (1,1), flag=wx.ALIGN_BOTTOM|wx.EXPAND)\r
+\r
+ self.scaleCtrl.Bind(wx.EVT_TEXT, self.OnScaleChange)\r
+ self.rotateCtrl.Bind(wx.EVT_SPINCTRL, self.OnRotateChange)\r
+\r
self.SetSize((800,600))\r
\r
def OnClose(self, e):\r
if self.listbox.GetSelection() == -1:\r
return\r
self.selection = self.list[self.listbox.GetSelection()]\r
+ self.scaleCtrl.SetValue(str(self.selection.scale))\r
+ self.rotateCtrl.SetValue(int(self.selection.rotate))\r
self.preview.Refresh()\r
\r
def OnAddModel(self, e):\r
\r
self.updateModelTransform(item)\r
\r
+ item.centerX = -item.getMinimum().x + 5\r
+ item.centerY = -item.getMinimum().y + 5\r
+\r
+ def OnScaleChange(self, e):\r
+ if self.selection == None:\r
+ return\r
+ try:\r
+ self.selection.scale = float(self.scaleCtrl.GetValue())\r
+ except ValueError:\r
+ self.selection.scale = 1.0\r
+ self.preview.Refresh()\r
+ \r
+ def OnRotateChange(self, e):\r
+ if self.selection == None:\r
+ return\r
+ self.selection.rotate = float(self.rotateCtrl.GetValue())\r
+ self.updateModelTransform(self.selection)\r
+\r
def updateModelTransform(self, item):\r
- scale = item.scale\r
- rotate = item.rotate\r
- scaleX = scale\r
- scaleY = scale\r
- scaleZ = scale\r
+ rotate = item.rotate / 180.0 * math.pi\r
+ scaleX = 1.0\r
+ scaleY = 1.0\r
+ scaleZ = 1.0\r
if item.flipX:\r
scaleX = -scaleX\r
if item.flipY:\r
\r
if self.parent.selection == item:\r
if item.gotHit:\r
- glColor3f(1.0,0.3,0.0)\r
+ glColor3f(1.0,0.0,0.3)\r
else:\r
- glColor3f(1.0,1.0,0.0)\r
+ glColor3f(1.0,0.0,1.0)\r
opengl.DrawBox(vMin, vMax)\r
if item.gotHit:\r
- glColor3f(1.0,0.0,0.3)\r
+ glColor3f(1.0,0.3,0.0)\r
else:\r
- glColor3f(1.0,0.0,1.0)\r
+ glColor3f(1.0,1.0,0.0)\r
opengl.DrawBox(vMinHead, vMaxHead)\r
elif seenSelected:\r
if item.gotHit:\r