mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-18 12:43:44 -04:00
PandaObject to DirectObject
This commit is contained in:
parent
6f16cdb12e
commit
8900f25533
@ -1,6 +1,6 @@
|
||||
""" Class used to create and control radamec device """
|
||||
from math import *
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
from DirectDeviceManager import *
|
||||
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
|
@ -1,5 +1,5 @@
|
||||
""" Class used to create and control joybox device """
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
from DirectDeviceManager import *
|
||||
from direct.directtools.DirectUtil import *
|
||||
from direct.gui import OnscreenText
|
||||
|
@ -1,6 +1,6 @@
|
||||
""" Class used to create and control radamec device """
|
||||
from math import *
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
from DirectDeviceManager import *
|
||||
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
|
@ -1,4 +1,4 @@
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
from DirectUtil import *
|
||||
from DirectGeometry import *
|
||||
from DirectGlobals import *
|
||||
|
@ -1,4 +1,4 @@
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
from DirectGlobals import *
|
||||
from DirectUtil import *
|
||||
from DirectGeometry import *
|
||||
|
@ -1,4 +1,4 @@
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
from DirectGlobals import *
|
||||
from DirectUtil import *
|
||||
from DirectGeometry import *
|
||||
|
@ -1,4 +1,4 @@
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
from DirectGlobals import *
|
||||
from DirectUtil import*
|
||||
from DirectCameraControl import *
|
||||
|
@ -1,4 +1,4 @@
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
from direct.directtools.DirectGeometry import *
|
||||
|
||||
from pandac.PandaModules import NodePath
|
||||
|
@ -4,7 +4,8 @@ This module and class exist only for backward compatibility with
|
||||
existing code. New code should use the FSM module instead.
|
||||
"""
|
||||
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.directnotify.DirectNotifyGlobal import directNotify
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
import types
|
||||
import weakref
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
|
||||
"""State module: contains State class"""
|
||||
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.directnotify.DirectNotifyGlobal import directNotify
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
import types
|
||||
|
||||
# This gets set by a dconfig variable in ShowBase.py
|
||||
|
@ -1,7 +1,8 @@
|
||||
|
||||
"""StateData module: contains StateData class"""
|
||||
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.directnotify.DirectNotifyGlobal import directNotify
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
|
||||
@ -11,7 +12,7 @@ class StateData(DirectObject):
|
||||
State Machine (ClassicFSM).
|
||||
"""
|
||||
|
||||
notify = DirectNotifyGlobal.directNotify.newCategory('StateData')
|
||||
notify = directNotify.newCategory('StateData')
|
||||
|
||||
def __init__(self, doneEvent):
|
||||
self.doneEvent = doneEvent
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
from pandac.PandaModules import *
|
||||
from direct.showbase.MessengerGlobal import *
|
||||
from direct.directnotify.DirectNotifyGlobal import *
|
||||
from direct.directnotify.DirectNotifyGlobal import directNotify
|
||||
import Interval
|
||||
import types
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
"""Interval module: contains the Interval class"""
|
||||
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.directnotify.DirectNotifyGlobal import directNotify
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
from pandac.PandaModules import *
|
||||
from direct.task import Task
|
||||
from direct.showbase import PythonUtil
|
||||
|
@ -1,5 +1,5 @@
|
||||
from pandac.PandaModules import *
|
||||
from direct.showbase.DirectObject import *
|
||||
from direct.showbase.DirectObject import DirectObject
|
||||
from direct.showbase.PhysicsManagerGlobal import *
|
||||
|
||||
from direct.directnotify import DirectNotifyGlobal
|
||||
|
@ -1,8 +1,8 @@
|
||||
from DirectObject import *
|
||||
from pandac.PandaModules import *
|
||||
|
||||
class PandaObject(DirectObject):
|
||||
"""
|
||||
This is the class that all Panda/Show classes should inherit from
|
||||
"""
|
||||
pass
|
||||
## from DirectObject import *
|
||||
## from pandac.PandaModules import *
|
||||
##
|
||||
## class PandaObject(DirectObject):
|
||||
## """
|
||||
## This is the class that all Panda/Show classes should inherit from
|
||||
## """
|
||||
## pass
|
||||
|
@ -54,9 +54,9 @@ import base64, imp, marshal, os, string, sys, md5
|
||||
# usage
|
||||
|
||||
def usage():
|
||||
print
|
||||
print "SQUEEZE", VERSION, "(c) 1997-1998 by Secret Labs AB"
|
||||
print """\
|
||||
print
|
||||
print "SQUEEZE", VERSION, "(c) 1997-1998 by Secret Labs AB"
|
||||
print """\
|
||||
Convert a Python application to a compressed module package.
|
||||
|
||||
Usage: squeeze [-1ux] -o app [-b start] modules... [-d files...]
|
||||
@ -84,7 +84,7 @@ The -x option can be used with -d to create a self-extracting archive,
|
||||
instead of a package. When the resulting script is executed, the
|
||||
data files are extracted. Omit the -b option in this case.
|
||||
"""
|
||||
sys.exit(1)
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
@ -92,44 +92,44 @@ data files are extracted. Omit the -b option in this case.
|
||||
|
||||
class Squeezer:
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self):
|
||||
|
||||
self.rawbytes = self.bytes = 0
|
||||
self.modules = {}
|
||||
self.rawbytes = self.bytes = 0
|
||||
self.modules = {}
|
||||
|
||||
def addmodule(self, file):
|
||||
def addmodule(self, file):
|
||||
|
||||
if file[-1] == "c":
|
||||
file = file[:-1]
|
||||
if file[-1] == "c":
|
||||
file = file[:-1]
|
||||
|
||||
m = os.path.splitext(os.path.split(file)[1])[0]
|
||||
m = os.path.splitext(os.path.split(file)[1])[0]
|
||||
|
||||
# read sourcefile
|
||||
f = open(file)
|
||||
codestring = f.read()
|
||||
f.close()
|
||||
# read sourcefile
|
||||
f = open(file)
|
||||
codestring = f.read()
|
||||
f.close()
|
||||
|
||||
# dump to file
|
||||
self.modules[m] = compile(codestring, m, "exec")
|
||||
# dump to file
|
||||
self.modules[m] = compile(codestring, m, "exec")
|
||||
|
||||
def adddata(self, file):
|
||||
def adddata(self, file):
|
||||
|
||||
self.modules["+"+file] = open(file, "rb").read()
|
||||
self.modules["+"+file] = open(file, "rb").read()
|
||||
|
||||
def getarchive(self):
|
||||
def getarchive(self):
|
||||
|
||||
# marshal our module dictionary
|
||||
data = marshal.dumps(self.modules)
|
||||
self.rawbytes = len(data)
|
||||
# marshal our module dictionary
|
||||
data = marshal.dumps(self.modules)
|
||||
self.rawbytes = len(data)
|
||||
|
||||
# return (compressed) dictionary
|
||||
data = zlib.compress(data, 9)
|
||||
self.bytes = len(data)
|
||||
# return (compressed) dictionary
|
||||
data = zlib.compress(data, 9)
|
||||
self.bytes = len(data)
|
||||
|
||||
return data
|
||||
return data
|
||||
|
||||
def getstatus(self):
|
||||
return self.bytes, self.rawbytes
|
||||
def getstatus(self):
|
||||
return self.bytes, self.rawbytes
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
@ -217,22 +217,22 @@ def explode():
|
||||
|
||||
def getloader(data, package):
|
||||
|
||||
s = loader
|
||||
s = loader
|
||||
|
||||
if data:
|
||||
if explode:
|
||||
s = s + loaderexplode
|
||||
else:
|
||||
s = s + loaderopen
|
||||
if data:
|
||||
if explode:
|
||||
s = s + loaderexplode
|
||||
else:
|
||||
s = s + loaderopen
|
||||
|
||||
dict = {
|
||||
"modules": "marshal, zlib",
|
||||
"data": "zlib.decompress(data)",
|
||||
}
|
||||
dict = {
|
||||
"modules": "marshal, zlib",
|
||||
"data": "zlib.decompress(data)",
|
||||
}
|
||||
|
||||
s = s % dict
|
||||
s = s % dict
|
||||
|
||||
return marshal.dumps(compile(s, "<package>", "exec"))
|
||||
return marshal.dumps(compile(s, "<package>", "exec"))
|
||||
|
||||
|
||||
# --------------------------------------------------------------------
|
||||
@ -249,63 +249,63 @@ embed = 0
|
||||
explode = 0
|
||||
|
||||
def squeeze(app, start, filelist, outputDir):
|
||||
localMagic = MAGIC
|
||||
data = None
|
||||
localMagic = MAGIC
|
||||
data = None
|
||||
|
||||
bootstrap = os.path.join(outputDir, app + ".py")
|
||||
bootstrap = os.path.join(outputDir, app + ".py")
|
||||
archiveBase = app + ".pyz"
|
||||
archive = os.path.join(outputDir, archiveBase)
|
||||
archive = os.path.join(outputDir, archiveBase)
|
||||
|
||||
archiveid = app
|
||||
archiveid = app
|
||||
|
||||
#
|
||||
# avoid overwriting files not generated by squeeze
|
||||
#
|
||||
# avoid overwriting files not generated by squeeze
|
||||
|
||||
try:
|
||||
fp = open(bootstrap)
|
||||
s = fp.readline()
|
||||
string.index(s, MAGIC)
|
||||
except IOError:
|
||||
pass
|
||||
except ValueError:
|
||||
print bootstrap, "was not created by squeeze. You have to manually"
|
||||
print "remove the file to proceed."
|
||||
sys.exit(1)
|
||||
try:
|
||||
fp = open(bootstrap)
|
||||
s = fp.readline()
|
||||
string.index(s, MAGIC)
|
||||
except IOError:
|
||||
pass
|
||||
except ValueError:
|
||||
print bootstrap, "was not created by squeeze. You have to manually"
|
||||
print "remove the file to proceed."
|
||||
sys.exit(1)
|
||||
|
||||
#
|
||||
# collect modules
|
||||
#
|
||||
# collect modules
|
||||
|
||||
sq = Squeezer()
|
||||
for file in filelist:
|
||||
# print 'addmodule:', file
|
||||
sq.addmodule(file)
|
||||
sq = Squeezer()
|
||||
for file in filelist:
|
||||
# print 'addmodule:', file
|
||||
sq.addmodule(file)
|
||||
|
||||
package = sq.getarchive()
|
||||
size = len(package)
|
||||
package = sq.getarchive()
|
||||
size = len(package)
|
||||
|
||||
#
|
||||
# get loader
|
||||
#
|
||||
# get loader
|
||||
|
||||
loader = getloader(data, package)
|
||||
loader = getloader(data, package)
|
||||
|
||||
zbegin, zend = "zlib.decompress(", ")"
|
||||
loader = zlib.compress(loader, 9)
|
||||
zbegin, zend = "zlib.decompress(", ")"
|
||||
loader = zlib.compress(loader, 9)
|
||||
|
||||
loaderlen = len(loader)
|
||||
loaderlen = len(loader)
|
||||
|
||||
magic = repr(imp.get_magic())
|
||||
version = string.split(sys.version)[0]
|
||||
magic = repr(imp.get_magic())
|
||||
version = string.split(sys.version)[0]
|
||||
|
||||
#
|
||||
# generate script and package files
|
||||
#
|
||||
# generate script and package files
|
||||
|
||||
if embed:
|
||||
if embed:
|
||||
|
||||
# embedded archive
|
||||
data = base64.encodestring(loader + package)
|
||||
# embedded archive
|
||||
data = base64.encodestring(loader + package)
|
||||
|
||||
fp = open(bootstrap, "w")
|
||||
fp.write('''\
|
||||
fp = open(bootstrap, "w")
|
||||
fp.write('''\
|
||||
#%(localMagic)s %(archiveid)s
|
||||
import ihooks,zlib,base64,marshal
|
||||
s=base64.decodestring("""
|
||||
@ -314,25 +314,25 @@ exec marshal.loads(%(zbegin)ss[:%(loaderlen)d]%(zend)s)
|
||||
boot("%(app)s",s,%(size)d,%(loaderlen)d)
|
||||
exec "import %(start)s"
|
||||
''' % locals())
|
||||
bytes = fp.tell()
|
||||
bytes = fp.tell()
|
||||
|
||||
else:
|
||||
else:
|
||||
|
||||
# separate archive file
|
||||
# separate archive file
|
||||
|
||||
fp = open(archive, "wb")
|
||||
fp = open(archive, "wb")
|
||||
|
||||
fp.write(loader)
|
||||
fp.write(package)
|
||||
fp.write(loader)
|
||||
fp.write(package)
|
||||
|
||||
bytes = fp.tell()
|
||||
fp.close()
|
||||
#
|
||||
# create bootstrap code
|
||||
bytes = fp.tell()
|
||||
fp.close()
|
||||
#
|
||||
# create bootstrap code
|
||||
|
||||
fp = open(bootstrap, "w")
|
||||
# Note: David Rose adjusted the following to be panda-specific.
|
||||
fp.write("""\
|
||||
fp = open(bootstrap, "w")
|
||||
# Note: David Rose adjusted the following to be panda-specific.
|
||||
fp.write("""\
|
||||
#%(localMagic)s %(archiveid)s
|
||||
import ihooks,zlib,marshal,os,sys
|
||||
|
||||
@ -360,13 +360,13 @@ boot("%(app)s",f,%(size)d)
|
||||
exec "from %(start)s import *"
|
||||
#exec "run()"
|
||||
""" % locals())
|
||||
bytes = bytes + fp.tell()
|
||||
fp.close()
|
||||
bytes = bytes + fp.tell()
|
||||
fp.close()
|
||||
|
||||
#
|
||||
# show statistics
|
||||
#
|
||||
# show statistics
|
||||
|
||||
dummy, rawbytes = sq.getstatus()
|
||||
dummy, rawbytes = sq.getstatus()
|
||||
|
||||
print "squeezed", rawbytes, "to", bytes, "bytes",
|
||||
print "(%d%%)" % (bytes * 100 / rawbytes)
|
||||
print "squeezed", rawbytes, "to", bytes, "bytes",
|
||||
print "(%d%%)" % (bytes * 100 / rawbytes)
|
||||
|
@ -81,15 +81,15 @@ class Slider(Valuator):
|
||||
class SliderWidget(Pmw.MegaWidget):
|
||||
def __init__(self, parent = None, **kw):
|
||||
|
||||
# Define the megawidget options.
|
||||
INITOPT = Pmw.INITOPT
|
||||
optiondefs = (
|
||||
# Define the megawidget options.
|
||||
INITOPT = Pmw.INITOPT
|
||||
optiondefs = (
|
||||
# Appearance
|
||||
('style', VALUATOR_MINI, INITOPT),
|
||||
('style', VALUATOR_MINI, INITOPT),
|
||||
('relief', RAISED, self.setRelief),
|
||||
('borderwidth', 2, self.setBorderwidth),
|
||||
('background', 'grey75', self.setBackground),
|
||||
('fliparrow', 0, INITOPT),
|
||||
('fliparrow', 0, INITOPT),
|
||||
# Behavior
|
||||
# Bounds
|
||||
('min', 0.0, self.setMin),
|
||||
@ -106,14 +106,14 @@ class SliderWidget(Pmw.MegaWidget):
|
||||
('postCallback', None, None),
|
||||
# Extra data to be passed to callback function, needs to be a list
|
||||
('callbackData', [], None),
|
||||
)
|
||||
self.defineoptions(kw, optiondefs)
|
||||
)
|
||||
self.defineoptions(kw, optiondefs)
|
||||
|
||||
# Initialise the base class (after defining the options).
|
||||
Pmw.MegaWidget.__init__(self, parent)
|
||||
# Initialise the base class (after defining the options).
|
||||
Pmw.MegaWidget.__init__(self, parent)
|
||||
|
||||
# Create the components.
|
||||
interior = self.interior()
|
||||
# Create the components.
|
||||
interior = self.interior()
|
||||
|
||||
# Current value
|
||||
self.value = self['value']
|
||||
@ -199,36 +199,36 @@ class SliderWidget(Pmw.MegaWidget):
|
||||
self._maxLabel.pack(side = LEFT)
|
||||
|
||||
# Create slider
|
||||
if self['style'] == VALUATOR_MINI:
|
||||
if self['style'] == VALUATOR_MINI:
|
||||
|
||||
# Create the arrow button to invoke slider
|
||||
self._arrowBtn = self.createcomponent(
|
||||
# Create the arrow button to invoke slider
|
||||
self._arrowBtn = self.createcomponent(
|
||||
'arrowbutton',
|
||||
(), None,
|
||||
Canvas, (interior,), borderwidth = 0,
|
||||
relief = FLAT, width = 14, height = 14,
|
||||
scrollregion = (-7,-7,7,7))
|
||||
self._arrowBtn.pack(expand = 1, fill = BOTH)
|
||||
self._arrowBtn.pack(expand = 1, fill = BOTH)
|
||||
self._arrowBtn.create_polygon(-5, -5, 5, -5, 0, 5,
|
||||
fill = 'grey50',
|
||||
tags = 'arrow')
|
||||
self._arrowBtn.create_line(-5, 5, 5, 5,
|
||||
fill = 'grey50',
|
||||
tags = 'arrow')
|
||||
# Create the dropdown window.
|
||||
self._popup = self.createcomponent(
|
||||
# Create the dropdown window.
|
||||
self._popup = self.createcomponent(
|
||||
'popup',
|
||||
(), None,
|
||||
Toplevel, (interior,),
|
||||
relief = RAISED, borderwidth = 2)
|
||||
self._popup.withdraw()
|
||||
self._popup.overrideredirect(1)
|
||||
self._popup.withdraw()
|
||||
self._popup.overrideredirect(1)
|
||||
|
||||
# Create popup slider
|
||||
createSlider(self._popup)
|
||||
|
||||
# Bind events to the arrow button.
|
||||
self._arrowBtn.bind('<1>', self._postSlider)
|
||||
# Bind events to the arrow button.
|
||||
self._arrowBtn.bind('<1>', self._postSlider)
|
||||
self._arrowBtn.bind('<Enter>', self.highlightWidget)
|
||||
self._arrowBtn.bind('<Leave>', self.restoreWidget)
|
||||
# Need to unpost the popup if the arrow Button is unmapped (eg:
|
||||
@ -236,10 +236,10 @@ class SliderWidget(Pmw.MegaWidget):
|
||||
# displayed.
|
||||
self._arrowBtn.bind('<Unmap>', self._unpostSlider)
|
||||
|
||||
# Bind events to the dropdown window.
|
||||
self._popup.bind('<Escape>', self._unpostSlider)
|
||||
self._popup.bind('<ButtonRelease-1>', self._widgetBtnRelease)
|
||||
self._popup.bind('<ButtonPress-1>', self._widgetBtnPress)
|
||||
# Bind events to the dropdown window.
|
||||
self._popup.bind('<Escape>', self._unpostSlider)
|
||||
self._popup.bind('<ButtonRelease-1>', self._widgetBtnRelease)
|
||||
self._popup.bind('<ButtonPress-1>', self._widgetBtnPress)
|
||||
self._popup.bind('<Motion>', self._widgetMove)
|
||||
|
||||
self._widget.bind('<Left>', self._decrementValue)
|
||||
@ -248,14 +248,14 @@ class SliderWidget(Pmw.MegaWidget):
|
||||
self._widget.bind('<Shift-Right>', self._bigIncrementValue)
|
||||
self._widget.bind('<Home>', self._goToMin)
|
||||
self._widget.bind('<End>', self._goToMax)
|
||||
else:
|
||||
else:
|
||||
createSlider(interior)
|
||||
self._widget['command'] = self._firstScaleCommand
|
||||
self._widget.bind('<ButtonRelease-1>', self._scaleBtnRelease)
|
||||
self._widget.bind('<ButtonPress-1>', self._scaleBtnPress)
|
||||
self._widget.bind('<ButtonRelease-1>', self._scaleBtnRelease)
|
||||
self._widget.bind('<ButtonPress-1>', self._scaleBtnPress)
|
||||
|
||||
# Check keywords and initialise options.
|
||||
self.initialiseoptions(SliderWidget)
|
||||
# Check keywords and initialise options.
|
||||
self.initialiseoptions(SliderWidget)
|
||||
|
||||
# Adjust relief
|
||||
if not kw.has_key('relief'):
|
||||
@ -265,7 +265,7 @@ class SliderWidget(Pmw.MegaWidget):
|
||||
self.updateIndicator(self['value'])
|
||||
|
||||
def destroy(self):
|
||||
if (self['style'] == VALUATOR_MINI) and self._isPosted:
|
||||
if (self['style'] == VALUATOR_MINI) and self._isPosted:
|
||||
Pmw.popgrab(self._popup)
|
||||
Pmw.MegaWidget.destroy(self)
|
||||
|
||||
@ -416,10 +416,10 @@ class SliderWidget(Pmw.MegaWidget):
|
||||
self._fPressInside = 0
|
||||
|
||||
def _unpostOnNextRelease(self, event = None):
|
||||
self._fUnpost = 1
|
||||
self._fUnpost = 1
|
||||
|
||||
def _unpostSlider(self, event=None):
|
||||
if not self._isPosted:
|
||||
if not self._isPosted:
|
||||
# It is possible to get events on an unposted popup. For
|
||||
# example, by repeatedly pressing the space key to post
|
||||
# and unpost the popup. The <space> event may be
|
||||
@ -433,9 +433,9 @@ class SliderWidget(Pmw.MegaWidget):
|
||||
# can't redirect it. Also, return the grab to the next active
|
||||
# window in the stack, if any.
|
||||
Pmw.popgrab(self._popup)
|
||||
self._popup.withdraw()
|
||||
self._popup.withdraw()
|
||||
|
||||
self._isPosted = 0
|
||||
self._isPosted = 0
|
||||
|
||||
# Raise up arrow button
|
||||
self.interior()['relief'] = RAISED
|
||||
|
@ -154,7 +154,7 @@ class myLevelEditor(AppShell):
|
||||
self.initialiseoptions(myLevelEditor)
|
||||
|
||||
self.parent.resizable(False,False) ## Disable the ability to resize for this Window.
|
||||
|
||||
|
||||
######### Set the event handler ##########
|
||||
self.dataFlowEvents = [
|
||||
## Event from Side Window
|
||||
@ -209,14 +209,14 @@ class myLevelEditor(AppShell):
|
||||
['SEditor-ToggleBackface',self.toggleBackface],
|
||||
['SEditor-ToggleTexture',self.toggleTexture],
|
||||
['SEditor-ToggleWireframe',self.toggleWireframe],
|
||||
['ParticlePanel_Added_Effect',self.addParticleEffect],
|
||||
['ParticlePanel_Added_Effect',self.addParticleEffect],
|
||||
]
|
||||
|
||||
|
||||
#################################
|
||||
### Collision detection
|
||||
#################################
|
||||
self.cTrav = CollisionTraverser()
|
||||
self.cTrav = CollisionTraverser()
|
||||
base.cTrav = self.cTrav
|
||||
|
||||
for event in self.dataFlowEvents:
|
||||
@ -230,7 +230,7 @@ class myLevelEditor(AppShell):
|
||||
['SGE_Remove', self.remove],
|
||||
['SGE_Add Dummy', self.addDummyNode],
|
||||
['SGE_Add Collision Object', self.addCollisionObj],
|
||||
['SGE_Metadata', self.openMetadataPanel],
|
||||
['SGE_Metadata', self.openMetadataPanel],
|
||||
['SGE_Set as Reparent Target', self.setAsReparentTarget],
|
||||
['SGE_Reparent to Target', self.reparentToNode],
|
||||
['SGE_Animation Panel', self.openAnimPanel],
|
||||
@ -262,17 +262,17 @@ class myLevelEditor(AppShell):
|
||||
### Create SceneEditor Ver. DirectSession
|
||||
self.seSession = SeSession()
|
||||
self.seSession.enable()
|
||||
SEditor.camera.setPos(0,-50,10)
|
||||
SEditor.camera.setPos(0,-50,10)
|
||||
|
||||
self.placer=None
|
||||
self.MopathPanel = None
|
||||
self.alignPanelDict = {}
|
||||
#self.quadview=QuadView()
|
||||
|
||||
self.placer=None
|
||||
self.MopathPanel = None
|
||||
self.alignPanelDict = {}
|
||||
#self.quadview=QuadView()
|
||||
|
||||
|
||||
self.lightingPanel = None
|
||||
self.controllerPanel = None
|
||||
self.particlePanel = None
|
||||
self.lightingPanel = None
|
||||
self.controllerPanel = None
|
||||
self.particlePanel = None
|
||||
|
||||
### Create Side Window
|
||||
self.sideWindow = sideWindow(worldColor = self.worldColor,
|
||||
@ -305,7 +305,7 @@ class myLevelEditor(AppShell):
|
||||
### Creating the Buttons in the window frame
|
||||
#######################################################
|
||||
buttonFrame = Frame(interior)
|
||||
self.image=[]
|
||||
self.image=[]
|
||||
|
||||
self.image.append(self.getPhotoImage('models/icons/new.gif'))#0
|
||||
self.image.append(self.getPhotoImage('models/icons/open.gif'))#1
|
||||
@ -327,20 +327,20 @@ class myLevelEditor(AppShell):
|
||||
self.image.append(self.getPhotoImage('models/icons/blank.gif'))
|
||||
self.image.append(self.getPhotoImage('models/icons/blank.gif'))
|
||||
self.image.append(self.getPhotoImage('models/icons/blank.gif'))
|
||||
self.image.append(self.getPhotoImage('models/icons/blank.gif'))
|
||||
self.image.append(self.getPhotoImage('models/icons/blank.gif'))
|
||||
self.image.append(self.getPhotoImage('models/icons/blank.gif'))
|
||||
self.image.append(self.getPhotoImage('models/icons/blank.gif'))
|
||||
self.image.append(self.getPhotoImage('models/icons/blank.gif'))
|
||||
self.image.append(self.getPhotoImage('models/icons/blank.gif'))
|
||||
|
||||
i = 0
|
||||
for element in self.image:
|
||||
i += 1
|
||||
button = Button(buttonFrame, image = element, command=lambda n=i : self.buttonPushed(n))
|
||||
button.pack(fill=X, side = LEFT)
|
||||
|
||||
|
||||
|
||||
buttonFrame.pack(fill=X, side=LEFT,expand=True)
|
||||
|
||||
|
||||
|
||||
|
||||
def buttonPushed(self, buttonIndex):
|
||||
#################################################################
|
||||
# buttonPushed(self, buttonNum)
|
||||
@ -351,8 +351,8 @@ class myLevelEditor(AppShell):
|
||||
#### Change here to process the button event further.
|
||||
####
|
||||
if buttonIndex==1: # New Scene
|
||||
self.newScene()
|
||||
return
|
||||
self.newScene()
|
||||
return
|
||||
elif buttonIndex==2: # Open Scene
|
||||
self.openScene()
|
||||
return
|
||||
@ -369,13 +369,13 @@ class myLevelEditor(AppShell):
|
||||
self.openPlacerPanel()
|
||||
return
|
||||
elif buttonIndex==7: # Open Mopath Panel
|
||||
self.openMoPathPanel()
|
||||
self.openMoPathPanel()
|
||||
return
|
||||
elif buttonIndex==8: # Open Lighting Panel
|
||||
self.openLightingPanel()
|
||||
return
|
||||
elif buttonIndex==9: # Open Particle Panel
|
||||
self.openParticlePanel()
|
||||
self.openParticlePanel()
|
||||
return
|
||||
elif buttonIndex==10:
|
||||
self.openInputPanel()
|
||||
@ -582,7 +582,7 @@ class myLevelEditor(AppShell):
|
||||
## Processing message events
|
||||
|
||||
def makeDirty(self):
|
||||
self.Dirty=1
|
||||
self.Dirty=1
|
||||
|
||||
def removeLight(self, lightNode):
|
||||
#################################################################
|
||||
@ -639,7 +639,7 @@ class myLevelEditor(AppShell):
|
||||
list, lightNode = AllScene.createLight(type = type)
|
||||
if self.lightingPanel != None:
|
||||
self.lightingPanel.updateList(list,lightNode)
|
||||
self.makeDirty()
|
||||
self.makeDirty()
|
||||
return
|
||||
|
||||
def lightingPanelClose(self):
|
||||
@ -674,9 +674,9 @@ class myLevelEditor(AppShell):
|
||||
return
|
||||
|
||||
def openMetadataPanel(self,nodePath=None):
|
||||
print nodePath
|
||||
self.MetadataPanel=MetadataPanel(nodePath)
|
||||
pass
|
||||
print nodePath
|
||||
self.MetadataPanel=MetadataPanel(nodePath)
|
||||
pass
|
||||
|
||||
def duplicate(self, nodePath = None):
|
||||
#################################################################
|
||||
@ -718,7 +718,7 @@ class myLevelEditor(AppShell):
|
||||
#
|
||||
#################################################################
|
||||
AllScene.addDummyNode(nodepath)
|
||||
self.makeDirty()
|
||||
self.makeDirty()
|
||||
pass
|
||||
|
||||
def addCollisionObj(self, nodepath = None):
|
||||
@ -832,67 +832,67 @@ class myLevelEditor(AppShell):
|
||||
# and will reset the application title to "New Scene"
|
||||
#################################################################
|
||||
self.closeAllSubWindows() ## Close all sub window
|
||||
if(self.CurrentFileName):
|
||||
currentF=Filename(self.CurrentFileName)
|
||||
self.CurrentFileName=None
|
||||
if(self.CurrentFileName):
|
||||
currentF=Filename(self.CurrentFileName)
|
||||
self.CurrentFileName=None
|
||||
AllScene.resetAll()
|
||||
currentModName=currentF.getBasenameWoExtension()
|
||||
# Let us actually remove the scene from sys modules... this is done because every scene is loaded as a module
|
||||
# And if we reload a scene python wont reload since its already in sys.modules... and hence we delete it
|
||||
# If there is ever a garbage colleciton bug..this might be a point to look at
|
||||
if sys.modules.has_key(currentModName):
|
||||
del sys.modules[currentModName]
|
||||
print sys.getrefcount(AllScene.theScene)
|
||||
del AllScene.theScene
|
||||
else:
|
||||
AllScene.resetAll()
|
||||
self.parent.title('Scene Editor - New Scene')
|
||||
currentModName=currentF.getBasenameWoExtension()
|
||||
# Let us actually remove the scene from sys modules... this is done because every scene is loaded as a module
|
||||
# And if we reload a scene python wont reload since its already in sys.modules... and hence we delete it
|
||||
# If there is ever a garbage colleciton bug..this might be a point to look at
|
||||
if sys.modules.has_key(currentModName):
|
||||
del sys.modules[currentModName]
|
||||
print sys.getrefcount(AllScene.theScene)
|
||||
del AllScene.theScene
|
||||
else:
|
||||
AllScene.resetAll()
|
||||
self.parent.title('Scene Editor - New Scene')
|
||||
pass
|
||||
|
||||
def openScene(self):
|
||||
#################################################################
|
||||
# openScene(self)
|
||||
#################################################################
|
||||
# In the future try and provide merging of two scenes
|
||||
|
||||
# In the future try and provide merging of two scenes
|
||||
|
||||
if(self.CurrentFileName or self.Dirty):
|
||||
saveScene = tkMessageBox._show("Load scene","Save the current scene?",icon = tkMessageBox.QUESTION,type = tkMessageBox.YESNOCANCEL)
|
||||
if (saveScene == "yes"):
|
||||
self.saveScene()
|
||||
elif (saveScene == "cancel"):
|
||||
return
|
||||
saveScene = tkMessageBox._show("Load scene","Save the current scene?",icon = tkMessageBox.QUESTION,type = tkMessageBox.YESNOCANCEL)
|
||||
if (saveScene == "yes"):
|
||||
self.saveScene()
|
||||
elif (saveScene == "cancel"):
|
||||
return
|
||||
|
||||
self.closeAllSubWindows() ## Close all sub window
|
||||
if(self.CurrentFileName):
|
||||
currentF=Filename(self.CurrentFileName)
|
||||
AllScene.resetAll()
|
||||
currentModName=currentF.getBasenameWoExtension()
|
||||
# Let us actually remove the scene from sys modules... this is done because every scene is loaded as a module
|
||||
# And if we reload a scene python wont reload since its already in sys.modules... and hence we delete it
|
||||
# If there is ever a garbage colleciton bug..this might be a point to look at
|
||||
if sys.modules.has_key(currentModName):
|
||||
del sys.modules[currentModName]
|
||||
print sys.getrefcount(AllScene.theScene)
|
||||
del AllScene.theScene
|
||||
if(self.CurrentFileName):
|
||||
currentF=Filename(self.CurrentFileName)
|
||||
AllScene.resetAll()
|
||||
currentModName=currentF.getBasenameWoExtension()
|
||||
# Let us actually remove the scene from sys modules... this is done because every scene is loaded as a module
|
||||
# And if we reload a scene python wont reload since its already in sys.modules... and hence we delete it
|
||||
# If there is ever a garbage colleciton bug..this might be a point to look at
|
||||
if sys.modules.has_key(currentModName):
|
||||
del sys.modules[currentModName]
|
||||
print sys.getrefcount(AllScene.theScene)
|
||||
del AllScene.theScene
|
||||
else:
|
||||
AllScene.resetAll()
|
||||
AllScene.resetAll()
|
||||
|
||||
self.CurrentFileName = AllScene.loadScene()
|
||||
|
||||
if(self.CurrentFileName==None):
|
||||
return
|
||||
self.CurrentFileName = AllScene.loadScene()
|
||||
|
||||
if(self.CurrentFileName==None):
|
||||
return
|
||||
|
||||
thefile=Filename(self.CurrentFileName)
|
||||
thedir=thefile.getFullpathWoExtension()
|
||||
print "SCENE EDITOR::" + thedir
|
||||
self.CurrentDirName=thedir
|
||||
if self.CurrentFileName != None:
|
||||
thefile=Filename(self.CurrentFileName)
|
||||
thedir=thefile.getFullpathWoExtension()
|
||||
print "SCENE EDITOR::" + thedir
|
||||
self.CurrentDirName=thedir
|
||||
if self.CurrentFileName != None:
|
||||
self.parent.title('Scene Editor - '+ Filename.fromOsSpecific(self.CurrentFileName).getBasenameWoExtension())
|
||||
if self.lightingPanel !=None:
|
||||
if self.lightingPanel !=None:
|
||||
lightList=AllScene.getList()
|
||||
self.lightingPanel.updateList(lightList)
|
||||
messenger.send('SGE_Update Explorer',[render])
|
||||
|
||||
|
||||
|
||||
# Close the side window in order to reset all world settings to fit the scene we have loaded.
|
||||
self.sideWindow.quit()
|
||||
@ -917,45 +917,45 @@ class myLevelEditor(AppShell):
|
||||
# If this filename exists in sys.modules you cannot use it
|
||||
#################################################################
|
||||
|
||||
if(self.CurrentFileName):
|
||||
f=FileSaver()
|
||||
f.SaveFile(AllScene,self.CurrentFileName,self.CurrentDirName,1)
|
||||
self.Dirty=0
|
||||
else:
|
||||
self.saveAsScene()
|
||||
if(self.CurrentFileName):
|
||||
f=FileSaver()
|
||||
f.SaveFile(AllScene,self.CurrentFileName,self.CurrentDirName,1)
|
||||
self.Dirty=0
|
||||
else:
|
||||
self.saveAsScene()
|
||||
pass
|
||||
|
||||
|
||||
def saveAsScene(self):
|
||||
#################################################################
|
||||
# saveAsScene(self)
|
||||
# saveAsScene(self)
|
||||
# Ask for filename using a file save dialog
|
||||
# If this filename exists in sys.modules you cannot use it
|
||||
# Instantiate FileSaver from seFileSaver.py and pass it the filename
|
||||
#################################################################
|
||||
|
||||
fileName = tkFileDialog.asksaveasfilename(filetypes = [("PY","py")],title = "Save Scene")
|
||||
if(not fileName):
|
||||
return
|
||||
fCheck=Filename(fileName)
|
||||
#print fCheck.getBasenameWoExtension()
|
||||
###############################################################################
|
||||
# !!!!! See if a module exists by this name... if it does you cannot use this filename !!!!!
|
||||
###############################################################################
|
||||
if(sys.modules.has_key(fCheck.getBasenameWoExtension())):
|
||||
tkMessageBox.showwarning(
|
||||
if(not fileName):
|
||||
return
|
||||
fCheck=Filename(fileName)
|
||||
#print fCheck.getBasenameWoExtension()
|
||||
###############################################################################
|
||||
# !!!!! See if a module exists by this name... if it does you cannot use this filename !!!!!
|
||||
###############################################################################
|
||||
if(sys.modules.has_key(fCheck.getBasenameWoExtension())):
|
||||
tkMessageBox.showwarning(
|
||||
"Save file",
|
||||
"Cannot save with this name because there is a system module with the same name. Please resave as something else."
|
||||
)
|
||||
)
|
||||
|
||||
return
|
||||
self.CurrentDirName=fileName
|
||||
fileName=fileName+".py"
|
||||
return
|
||||
self.CurrentDirName=fileName
|
||||
fileName=fileName+".py"
|
||||
f=FileSaver()
|
||||
self.CurrentFileName=fileName
|
||||
f.SaveFile(AllScene,fileName,self.CurrentDirName,0)
|
||||
self.Dirty=0
|
||||
self.parent.title('Scene Editor - '+ Filename.fromOsSpecific(self.CurrentFileName).getBasenameWoExtension())
|
||||
self.CurrentFileName=fileName
|
||||
f.SaveFile(AllScene,fileName,self.CurrentDirName,0)
|
||||
self.Dirty=0
|
||||
self.parent.title('Scene Editor - '+ Filename.fromOsSpecific(self.CurrentFileName).getBasenameWoExtension())
|
||||
pass
|
||||
|
||||
def loadModel(self):
|
||||
@ -974,7 +974,7 @@ class myLevelEditor(AppShell):
|
||||
title = 'Load New Model',
|
||||
parent = self.parent)
|
||||
if modelFilename:
|
||||
self.makeDirty()
|
||||
self.makeDirty()
|
||||
if not AllScene.loadModel(modelFilename, Filename.fromOsSpecific(modelFilename)):
|
||||
print '----Error! No Such Model File!'
|
||||
pass
|
||||
@ -995,9 +995,9 @@ class myLevelEditor(AppShell):
|
||||
title = 'Load New Actor',
|
||||
parent = self.parent)
|
||||
|
||||
|
||||
|
||||
if ActorFilename:
|
||||
self.makeDirty()
|
||||
self.makeDirty()
|
||||
if not AllScene.loadActor(ActorFilename, Filename.fromOsSpecific(ActorFilename)):
|
||||
print '----Error! No Such Model File!'
|
||||
pass
|
||||
@ -1174,24 +1174,24 @@ class myLevelEditor(AppShell):
|
||||
return
|
||||
|
||||
def addParticleEffect(self,effect_name,effect,node):
|
||||
AllScene.particleDict[effect_name]=effect
|
||||
AllScene.particleNodes[effect_name]=node
|
||||
if not self.ParticleEnable:
|
||||
AllScene.particleDict[effect_name]=effect
|
||||
AllScene.particleNodes[effect_name]=node
|
||||
if not self.ParticleEnable:
|
||||
AllScene.particleNodes[effect_name].setTransparency(True)
|
||||
AllScene.particleNodes[effect_name].setAlphaScale(0)
|
||||
AllScene.particleNodes[effect_name].setBin("fixed",1)
|
||||
return
|
||||
return
|
||||
|
||||
def openParticlePanel(self):
|
||||
if self.particlePanel != None:
|
||||
## There already has a Particle panel!
|
||||
return
|
||||
if(len(AllScene.particleDict)==0):
|
||||
self.particlePanel=seParticlePanel.ParticlePanel()
|
||||
else:
|
||||
for effect in AllScene.particleDict:
|
||||
theeffect=AllScene.particleDict[effect]
|
||||
self.particlePanel=seParticlePanel.ParticlePanel(particleEffect=theeffect,effectsDict=AllScene.particleDict)
|
||||
if(len(AllScene.particleDict)==0):
|
||||
self.particlePanel=seParticlePanel.ParticlePanel()
|
||||
else:
|
||||
for effect in AllScene.particleDict:
|
||||
theeffect=AllScene.particleDict[effect]
|
||||
self.particlePanel=seParticlePanel.ParticlePanel(particleEffect=theeffect,effectsDict=AllScene.particleDict)
|
||||
|
||||
pass
|
||||
|
||||
@ -1337,7 +1337,7 @@ class myLevelEditor(AppShell):
|
||||
self.menuEdit.entryconfig('Duplicate', state=NORMAL)
|
||||
self.menuEdit.entryconfig('Remove', state=NORMAL)
|
||||
self.menuEdit.entryconfig('Object Properties', state=NORMAL)
|
||||
if callBack:
|
||||
if callBack:
|
||||
self.seSession.select(nodePath,fResetAncestry=1)
|
||||
messenger.send('SGE_Update Explorer',[render])
|
||||
if not taskMgr.hasTaskNamed('seMonitorSelectedNode'):
|
||||
|
@ -149,7 +149,7 @@ def oscmd(cmd):
|
||||
else:
|
||||
res = os.system(cmd)
|
||||
if res != 0:
|
||||
exit("")
|
||||
exit("")
|
||||
|
||||
def getbuilding(opts):
|
||||
building = 0
|
||||
@ -1180,7 +1180,7 @@ def EnqueueIgate(ipath=0, opts=0, outd=0, obj=0, src=0, module=0, library=0, als
|
||||
if ((ipath==0)|(opts==0)|(outd==0)|(obj==0)|(src==0)|(module==0)|(library==0)|(also==0)|(skip==0)):
|
||||
exit("syntax error in EnqueueIgate directive")
|
||||
if (COMPILER=="MSVC7"):
|
||||
altdep = "built/bin/interrogate.exe"
|
||||
altdep = "built/bin/interrogate.exe"
|
||||
wobj = "built/tmp/"+obj
|
||||
fn = CompileIgateMSVC7
|
||||
if (COMPILER=="LINUXA"):
|
||||
@ -1234,11 +1234,11 @@ def EnqueueImod(ipath=0, opts=0, obj=0, module=0, library=0, files=0):
|
||||
if ((ipath==0)|(opts==0)|(obj==0)|(module==0)|(library==0)|(files==0)):
|
||||
exit("syntax error in EnqueueImod directive")
|
||||
if (COMPILER=="MSVC7"):
|
||||
altdep = "built/bin/interrogate_module.exe"
|
||||
altdep = "built/bin/interrogate_module.exe"
|
||||
wobj = "built/tmp/"+obj[:-4]+".obj"
|
||||
fn = CompileImodMSVC7
|
||||
if (COMPILER=="LINUXA"):
|
||||
altdep = "built/bin/interrogate_module"
|
||||
altdep = "built/bin/interrogate_module"
|
||||
wobj = "built/tmp/"+obj[:-4]+".o"
|
||||
fn = CompileImodLINUXA
|
||||
if (SLAVEBUILD!=0) and (SLAVEBUILD!=wobj): return
|
||||
|
Loading…
x
Reference in New Issue
Block a user