def run(path=None, gui_thread=False): app = None if path == None: try: import wx from wx.lib.dialogs import * app = Piavca.getWXApp() #wx.PySimpleApp() dialog_return = openFileDialog() path = dialog_return.paths[0] except ImportError: print "please enter name of .conf file to use" path = sys.stdin.readline() print path pathend = path.rfind("\\") print pathend if pathend < 0: pathend = path.rfind("/") print pathend if pathend < 0: print "no path" filename = path else: print "path" filename = path[pathend + 1:] path = path[:pathend + 1] os.chdir(path) print filename, path if filename[-4:] == ".cfg": filename = filename[:-4] print filename script_engine = ScriptEngine("character controller", filename, app) return script_engine
def setUpEventsGUI(): app = Piavca.getWXApp() #wx.PySimpleApp() for avatarName in Piavca.Core.getCore().getAvatarNames(): avatar = Piavca.Core.getCore().getAvatar(avatarName) events = Piavca.getEvents(avatar) if len(events) > 0: frame = wx.Frame(None, -1, title=avatarName + " Events") sizer1 = wx.BoxSizer(wx.HORIZONTAL) sizer2 = wx.BoxSizer(wx.VERTICAL) id_counter = 0 for event in events: button = wx.Button(frame, id_counter, label=event) wx.EVT_BUTTON(frame, id_counter, lambda evt, a=avatar, e=event: a.event(e)) sizer1.Add(button, 1) id_counter += 1 if id_counter % 6 == 0: sizer2.Add(sizer1, 0) sizer1 = wx.BoxSizer(wx.HORIZONTAL) sizer2.Add(sizer1, 0) frame.SetSizer(sizer2) frame.SetAutoLayout(1) sizer2.Fit(frame) frame.Show(True) frame.Layout()
def setUpEventsGUI(): app = Piavca.getWXApp() #wx.PySimpleApp() for avatarName in Piavca.Core.getCore().getAvatarNames(): avatar = Piavca.Core.getCore().getAvatar(avatarName) events = Piavca.getEvents(avatar) if len(events) > 0: frame=wx.Frame(None,-1, title=avatarName+" Events") sizer1=wx.BoxSizer(wx.HORIZONTAL) sizer2=wx.BoxSizer(wx.VERTICAL) id_counter = 0 for event in events: button=wx.Button(frame, id_counter, label=event) wx.EVT_BUTTON (frame, id_counter, lambda evt, a = avatar, e=event : a.event(e)) sizer1.Add(button,1 ) id_counter+=1 if id_counter % 6 == 0: sizer2.Add(sizer1,0) sizer1=wx.BoxSizer(wx.HORIZONTAL) sizer2.Add(sizer1,0) frame.SetSizer(sizer2) frame.SetAutoLayout(1) sizer2.Fit(frame) frame.Show(True) frame.Layout()
def run(path=None, gui_thread=False): app = None if path == None: try: import wx from wx.lib.dialogs import * app = Piavca.getWXApp() #wx.PySimpleApp() dialog_return = openFileDialog () path = dialog_return.paths[0] except ImportError: print "please enter name of .conf file to use" path = sys.stdin.readline() print path pathend = path.rfind("\\") print pathend if pathend < 0: pathend = path.rfind("/") print pathend if pathend < 0: print "no path" filename = path else: print "path" filename = path[pathend+1:] path = path[:pathend+1] os.chdir(path) print filename, path if filename[-4:] == ".cfg": filename = filename[:-4] print filename script_engine = ScriptEngine("character controller", filename, app) return script_engine
def loadToCanvas(self): app = Piavca.getWXApp() canvas = app.getCanvas() if canvas: canvas.addPlugin(self) self.quad = gluNewQuadric() return True else: return False
def load(self, avatar): print "about to load position handler" Piavca.MotionFilter.load(self, avatar) print "getting app" app = Piavca.getWXApp() print "getting canvas" canvas = app.getCanvas() print "canvas" if hasattr(canvas, "loadPositionCallback"): print "has position callback" canvas.loadPositionCallback(lambda pos, rot : self.setPosition(pos)) print "print finished loading position handler"
def GUI(self, avatarName): print "GUI", avatarName if not wxAvailable: print "can't instantiate GUI, wx python not present" print "app", self.app if self.app == None: print "getting app" self.app = Piavca.getWXApp() #wx.PySimpleApp() self.frame = wx.Frame(None, -1) sizer1 = wx.BoxSizer(wx.HORIZONTAL) sizer2 = wx.BoxSizer(wx.VERTICAL) id_counter = 0 for scriptname in self.scripts.keys(): button = wx.Button(self.frame, id_counter, label=scriptname) wx.EVT_BUTTON( self.frame, id_counter, lambda e, s=self, n=scriptname: s.playScript(avatarName, n)) sizer1.Add(button, 1) id_counter += 1 if id_counter % 6 == 0: sizer2.Add(sizer1, 0) sizer1 = wx.BoxSizer(wx.HORIZONTAL) sizer2.Add(sizer1, 0) self.frame.SetSizer(sizer2) self.frame.SetAutoLayout(1) sizer2.Fit(self.frame) self.frame.Show(True) self.frame.Layout() #print "starting gui" if self.gui_thread: thread.start_new_thread(self.app.MainLoop, ())
def redirect(filename="python_output.txt", app=None): import Piavca if wxpresent and app == None: print "creating app" app = Piavca.getWXApp() #wx.PySimpleApp() outputer = outputRedirection(filename) outputer.Show() outputer.write("Piavca\n") #outputer.setOutputFunc(Piavca.PiavcaGlut.outputMessage) outputer.write("output redirection\n") sys.stderr = outputer sys.stdout = outputer #print "hello" print "output redirection successful" if wxpresent: thread.start_new_thread(app.MainLoop, ())
def redirect(filename="python_output.txt", app = None): import Piavca if wxpresent and app == None: print "creating app" app = Piavca.getWXApp() #wx.PySimpleApp() outputer = outputRedirection(filename) outputer.Show() outputer.write("Piavca\n") #outputer.setOutputFunc(Piavca.PiavcaGlut.outputMessage) outputer.write("output redirection\n") sys.stderr = outputer sys.stdout = outputer #print "hello" print "output redirection successful" if wxpresent: thread.start_new_thread(app.MainLoop, ())
def GUI(self, avatarName): print "GUI", avatarName if not wxAvailable: print "can't instantiate GUI, wx python not present" print "app", self.app if self.app == None: print "getting app" self.app = Piavca.getWXApp() #wx.PySimpleApp() self.frame=wx.Frame(None,-1) sizer1=wx.BoxSizer(wx.HORIZONTAL) sizer2=wx.BoxSizer(wx.VERTICAL) id_counter = 0 for scriptname in self.scripts.keys(): button=wx.Button(self.frame, id_counter, label=scriptname) wx.EVT_BUTTON (self.frame, id_counter, lambda e, s = self, n=scriptname : s.playScript(avatarName, n)) sizer1.Add(button,1 ) id_counter+=1 if id_counter % 6 == 0: sizer2.Add(sizer1,0) sizer1=wx.BoxSizer(wx.HORIZONTAL) sizer2.Add(sizer1,0) self.frame.SetSizer(sizer2) self.frame.SetAutoLayout(1) sizer2.Fit(self.frame) self.frame.Show(True) self.frame.Layout() #print "starting gui" if self.gui_thread: thread.start_new_thread(self.app.MainLoop, ())
import sys import os import time import Piavca #Piavca.PiavcaGlut.init() #Piavca.PiavcaGlut.init(Piavca.Core.getCorePointerAsLong()) import Piavca.JointNames Piavca.JointNames.loadDefaults() import wx from wx.lib.dialogs import * import thread app = Piavca.getWXApp() #app = wx.PySimpleApp() import Piavca.FreeCameraCanvas canvas = app.showWindows(canvastype = Piavca.FreeCameraCanvas.FreeCameraCanvas) app.getCanvas().setClearColour(1, 1, 1) if len(sys.argv) > 1: path = sys.argv[1] else: dialog_return = openFileDialog (wildcard="*.cfg") path = dialog_return.paths[0].encode("latin-1") print path pathend = path.rfind("\\") if pathend < 0:
# # #class MyApp(wx.App): # def __init__(self): # wx.App.__init__(self, redirect=False, filename="PiavcaOut.txt") # def OnInit(self): # return True # def showWindows(self): # frame = MyFrame(None, -1, "Piavca Viewer", size=(400,400)) # self.SetTopWindow(frame) # frame.Show(True) # return True #app = wx.PySimpleApp() #app = Piavca.PiavcaWXApp.PiavcaWXApp() app = Piavca.getWXApp() app.showWindows(canvastype=Piavca.ViewerCanvas.ViewerCanvas) app.getCanvas().setClearColour(1.0, 1.0, 1.0) app.getCanvas().tracking = False if len(sys.argv) > 1: path = sys.argv[1] else: dialog_return = openFileDialog() path = dialog_return.paths[0] dirname = os.path.dirname(path) os.chdir(dirname)
def __init__(self, parent=None, extra_panels=None, id=-1, size=(1000, 600)): self.backend = BackEnd(self) self.filename = None wx.Frame.__init__(self, parent, id, "Piavca Designer") self.statusbar = self.CreateStatusBar() menubar = wx.MenuBar() filemenu = wx.Menu() open = filemenu.Append(wx.NewId(), "Open", "") self.Bind(wx.EVT_MENU, self.Open, open) imp = filemenu.Append(wx.NewId(), "Import", "") self.Bind(wx.EVT_MENU, self.Import, imp) save = filemenu.Append(wx.NewId(), "&Save\tCtrl+s", "") self.Bind(wx.EVT_MENU, self.Save, save) saveas = filemenu.Append(wx.NewId(), "SaveAs", "") self.Bind(wx.EVT_MENU, self.SaveAs, saveas) quit = filemenu.Append(wx.NewId(), "Quit", "") self.Bind(wx.EVT_MENU, self.Quit, quit) editmenu = wx.Menu() delete = editmenu.Append(wx.NewId(), "Delete\tdel", "") self.Bind(wx.EVT_MENU, self.backend.Delete, delete) publishevents = editmenu.Append(wx.NewId(), "Publish Events", "") self.Bind(wx.EVT_MENU, self.backend.PublishEvents, publishevents) menubar.Append(filemenu, "&File") menubar.Append(editmenu, "&Edit") self.SetMenuBar(menubar) self.totalheight = self.mainHeight+self.timelineHeight self.totalwidth = self.viewerwidth+self.hierarchywidth+self.listwidth self.splitter1 = wx.SplitterWindow(self, -1)#, size=(1000, 500)) self.splitter2 = wx.SplitterWindow(self.splitter1, -1) #p2 = wx.Panel(self.splitter2, style=wx.SUNKEN_BORDER) #p1 = wx.Panel(self.splitter2, style=wx.SUNKEN_BORDER) #self.viewer = Piavca.FreeCameraCanvas.FreeCameraCanvas(self.splitter2) self.viewer = Piavca.ViewerCanvas.ViewerCanvas(self.splitter2) self.viewer.setClearColour(0.5, 0.5, 1.0) Piavca.getWXApp().setCanvas(self.viewer) self.viewer.tracking = False self.heirarchy = HeirarchyView.HeirarchyView(self.backend, self.splitter2)#, style=wx.SUNKEN_BORDER) self.listboxes = ListBoxController.ListBoxController(self.backend, self.splitter1, extra_panels=extra_panels, style=wx.SUNKEN_BORDER) self.children = [] self.children.append(self.heirarchy) self.children.append(self.listboxes) #self.horizSplitter.Initialize(p1) self.splitter1.SplitVertically(self.splitter2, self.listboxes) self.splitter2.SplitVertically(self.viewer, self.heirarchy) self.playcontrols = PlayControls.PlayControls(self.backend, self, size=(self.totalwidth, self.timelineHeight)) self.sizer=wx.BoxSizer(wx.VERTICAL) self.sizer.Add(self.splitter1, 1, flag=wx.EXPAND) self.sizer.Add(self.playcontrols, flag=wx.EXPAND) self.SetSizer(self.sizer) #self.Fit() self.SetAutoLayout(1) self.sizer.Fit(self) self.Show(True) self.Layout() self.Bind(wx.EVT_IDLE, self.OnIdle) self.SetSizeWH(self.totalwidth, self.totalheight) self.splitter1.SetSashPosition(self.viewerwidth+self.hierarchywidth, redraw=True) self.splitter2.SetSashPosition(self.viewerwidth) #self.SendSizeEvent((1000,500)) self.update()