Can now switch between paint brush modes
This commit is contained in:
parent
d2f01601ce
commit
b2d86b8181
|
|
@ -87,7 +87,7 @@ def onMouseUpGroup(self, x, y):
|
|||
self.cshape = None
|
||||
elif svlgui.MODE=="p":
|
||||
print len(self.cshape.shapedata)
|
||||
self.cshape.shapedata = misc_funcs.simplify_shape(self.cshape.shapedata, "curve",1)
|
||||
self.cshape.shapedata = misc_funcs.simplify_shape(self.cshape.shapedata, svlgui.PMODE.split()[-1],1)
|
||||
print len(self.cshape.shapedata)
|
||||
self.cshape = None
|
||||
MainWindow.stage.draw()
|
||||
|
|
|
|||
|
|
@ -218,11 +218,27 @@ class MainWindowOSX:
|
|||
self.toolbox.buttons[4][0].onPress = pen
|
||||
self.toolbox.buttons[4][1].onPress = paint_bucket
|
||||
self.scriptwindow = svlgui.TextView()
|
||||
self.frame.layout_self( [self.toolbox,0,None,0,0,"nws",""],
|
||||
self.paintgroup = svlgui.RadioGroup("Draw straight", "Draw smooth", "Draw as inked")
|
||||
def setmode(self):
|
||||
svlgui.PMODE = self.value
|
||||
self.paintgroup.action = setmode
|
||||
self.paintbox = svlgui.Frame()
|
||||
self.pboptions = svlgui.Label("Paintbrush Options")
|
||||
self.paintbox.layout_self([self.pboptions,0,0,0,None,"news",""],
|
||||
[self.paintgroup[0],0,0,self.pboptions._int(),None,"new",""],
|
||||
[self.paintgroup[1],0,0,self.paintgroup[0]._int(),None,"new",""],
|
||||
[self.paintgroup[2],0,0,self.paintgroup[1]._int(),None,"new",""])
|
||||
#)
|
||||
self.frame.layout_self( [self.toolbox,0,None,0,None,"nw",""],
|
||||
#[self.paintbox,0,245,0,0,"nws","v"],
|
||||
[self.timelinebox,self.toolbox._int()+148,-500,0,None,"new","hv"],
|
||||
#[self.timelinebox,self.paintbox._int()+148,-500,0,None,"new","hv"],
|
||||
[self.layerbox,self.toolbox._int(),self.toolbox._int().width+150,0,None,"n","v"],
|
||||
#[self.layerbox,self.paintbox._int(),self.toolbox._int().width+150,0,None,"n","v"],
|
||||
[self.scriptwindow,self.timelinebox._int(),0,0,0,"nse", "hv"],
|
||||
[self.stage,self.toolbox._int(),self.scriptwindow._int(),self.timelinebox._int()+2,0,"nsew", "hv"] )
|
||||
[self.stage,self.toolbox._int(),self.scriptwindow._int(),self.timelinebox._int()+2,0,"nsew", "hv"],
|
||||
[self.paintbox,0,self.stage._int(),self.toolbox._int(),0,"nws","v"] )
|
||||
#[self.stage,self.paintbox._int(),self.scriptwindow._int(),self.timelinebox._int()+2,0,"nsew", "hv"] )
|
||||
self.window.add(self.frame)
|
||||
|
||||
# use mainwindowosx, this is just to comment things out
|
||||
|
|
@ -261,7 +277,10 @@ class MainWindowHTML:
|
|||
self.toolbox.buttons[4][0].onPress = pen
|
||||
self.toolbox.buttons[4][1].onPress = paint_bucket
|
||||
self.scriptwindow = svlgui.TextView()
|
||||
self.frame.layout_self( [self.toolbox,0,None,0,0,"nws",""],
|
||||
self.paintgroup = svlgui.RadioGroup("Draw straight", "Draw smooth", "Draw as inked")
|
||||
self.paintbox = svlgui.VBox([[svlgui.Label("Paintbrush Options")._int()],[self.paintgroup]])
|
||||
self.frame.layout_self( [self.toolbox,0,None,0,None,"nw",""],
|
||||
[self.paintbox,0,None,self.toolbox._int(),0,"nws","v"],
|
||||
[self.timelinebox,self.toolbox._int()+148,-500,0,None,"new","hv"],
|
||||
[self.layerbox,self.toolbox._int(),self.toolbox._int().width+150,0,None,"n","v"],
|
||||
[self.scriptwindow,self.timelinebox._int(),0,0,0,"nse", "hv"],
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ def catmullRom2bezier( points ) :
|
|||
return d;
|
||||
|
||||
def simplify_shape(shape,mode,iterations):
|
||||
if mode in ("straight","curve"):
|
||||
if mode in ("straight","smooth"):
|
||||
for i in xrange(iterations):
|
||||
for j in reversed(range(len(shape))):
|
||||
if j>0 and j<len(shape)-1:
|
||||
|
|
@ -132,11 +132,11 @@ def simplify_shape(shape,mode,iterations):
|
|||
acosB=0
|
||||
if acosB>(165-500/(ab+bc)): # at least 15 degrees away from straight angle
|
||||
del shape[j]
|
||||
if mode=="curve":
|
||||
if mode=="smooth":
|
||||
shape = catmullRom2bezier([shape[0]]*2+shape+[shape[-1]])
|
||||
print shape
|
||||
|
||||
return shape#+nshape
|
||||
return shape#+nshape
|
||||
|
||||
# Timer module - not mine
|
||||
|
||||
|
|
|
|||
50
svlgui.py
50
svlgui.py
|
|
@ -25,6 +25,10 @@ import re
|
|||
# "b": paint bucket tool
|
||||
'''
|
||||
MODE="e"
|
||||
|
||||
#Painbrush mode
|
||||
PMODE = "Draw straight"
|
||||
|
||||
SITER=0
|
||||
|
||||
#Currentframe - the frame selected on the timeline. Not necessarily the frame being shown.
|
||||
|
|
@ -139,6 +143,7 @@ if sys.platform=="linux2":
|
|||
import GUI # Using PyGUI. Experimental.
|
||||
from GUI import Window as OSXWindow, Button as OSXButton, Image as OSXImage
|
||||
from GUI import Frame as OSXFrame, Color as OSXColor, Grid as OSXGrid
|
||||
from GUI import Label as OSXLabel, RadioGroup as OSXRadioGroup, RadioButton as OSXRadioButton
|
||||
from GUI import Column, Row, ScrollableView, TextEditor, Colors
|
||||
from GUI import StdCursors, Alerts, FileDialogs, Font
|
||||
from GUI.StdMenus import basic_menus, file_cmds, print_cmds
|
||||
|
|
@ -159,6 +164,7 @@ elif sys.platform=="win32":
|
|||
import GUI # Using PyGUI. Experimental.
|
||||
from GUI import Window as OSXWindow, Button as OSXButton, Image as OSXImage
|
||||
from GUI import Frame as OSXFrame, Color as OSXColor, Grid as OSXGrid
|
||||
from GUI import Label as OSXLabel, RadioGroup as OSXRadioGroup, RadioButton as OSXRadioButton
|
||||
from GUI import Column, Row, ScrollableView, TextEditor, Colors
|
||||
from GUI import StdCursors, Alerts, FileDialogs, Font
|
||||
from GUI.StdMenus import basic_menus, file_cmds, print_cmds
|
||||
|
|
@ -180,6 +186,7 @@ elif sys.platform=="darwin":
|
|||
import GUI # Using PyGUI. Experimental.
|
||||
from GUI import Window as OSXWindow, Button as OSXButton, Image as OSXImage
|
||||
from GUI import Frame as OSXFrame, Color as OSXColor, Grid as OSXGrid
|
||||
from GUI import Label as OSXLabel, RadioGroup as OSXRadioGroup, RadioButton as OSXRadioButton
|
||||
from GUI import Column, Row, ScrollableView, TextEditor, Colors
|
||||
from GUI import StdCursors, Alerts, FileDialogs, Font
|
||||
from GUI.StdMenus import basic_menus, file_cmds, print_cmds
|
||||
|
|
@ -467,7 +474,50 @@ class HBox(Widget):
|
|||
td = htmlobj("td")
|
||||
td.add(objint)
|
||||
self.tr.add(td)
|
||||
class Label(Widget):
|
||||
def _gettext(self):
|
||||
if SYSTEM=="osx":
|
||||
return self.label.text
|
||||
def _settext(self,text):
|
||||
if SYSTEM=="osx":
|
||||
self.label.text=text
|
||||
text = property(_gettext,_settext)
|
||||
def __init__(self, text=""):
|
||||
if SYSTEM=="osx":
|
||||
self.label = OSXLabel()
|
||||
self.label.text = text
|
||||
def _int(self):
|
||||
if SYSTEM=="osx":
|
||||
return self.label
|
||||
class RadioGroup(Widget):
|
||||
def __getitem__(self,num):
|
||||
return self.buttons[num]
|
||||
def __init__(self,*args):
|
||||
self.buttons = []
|
||||
for i in args:
|
||||
self.buttons.append(RadioButton(i))
|
||||
self.group = OSXRadioGroup([j._int() for j in self.buttons])
|
||||
self.group.value = args[0]
|
||||
self.group.action = self._action
|
||||
def _int(self):
|
||||
return self.group
|
||||
def _getvalue(self):
|
||||
return self.group.value
|
||||
def _setvalue(self,value):
|
||||
self.group.value = value
|
||||
value = property(_getvalue, _setvalue)
|
||||
def _action(self):
|
||||
self.action(self)
|
||||
def action(self,self1=None):
|
||||
pass
|
||||
|
||||
class RadioButton(Widget):
|
||||
def __init__(self,title):
|
||||
if SYSTEM=="osx":
|
||||
self.button = OSXRadioButton(title=title,value=title)
|
||||
def _int(self):
|
||||
return self.button
|
||||
|
||||
class Grid(Widget):
|
||||
def __init__(self,*args):
|
||||
if SYSTEM=="osx":
|
||||
|
|
|
|||
Loading…
Reference in New Issue