예제 #1
0
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
예제 #2
0
파일: EventsGUI.py 프로젝트: markmze/Piavca
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()
예제 #3
0
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()
예제 #4
0
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
예제 #5
0
    def loadToCanvas(self):
        app = Piavca.getWXApp()
        canvas = app.getCanvas()
        if canvas:
            canvas.addPlugin(self)

            self.quad = gluNewQuadric()

            return True
        else:
            return False
예제 #6
0
    def loadToCanvas(self):
        app = Piavca.getWXApp()
        canvas = app.getCanvas()
        if canvas:
            canvas.addPlugin(self)

            self.quad = gluNewQuadric()

            return True
        else:
            return False
예제 #7
0
	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"
예제 #8
0
    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, ())
예제 #9
0
파일: redirect.py 프로젝트: markmze/Piavca
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, ())
예제 #10
0
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, ())
예제 #11
0
	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, ())
예제 #12
0
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:
예제 #13
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)
예제 #14
0
	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()