*** empty log message ***

This commit is contained in:
Mark Mine 2001-01-29 18:55:07 +00:00
parent bb0fcbdd72
commit e5e955af8e
2 changed files with 71 additions and 107 deletions

View File

@ -230,9 +230,9 @@ class DirectManipulationControl(PandaObject):
# Mouse started in central region, xlate # Mouse started in central region, xlate
# Mode depends on shift key # Mode depends on shift key
if direct.fShift: if direct.fShift:
self.xlateCamXZ(state)
else:
self.xlateCamXY(state) self.xlateCamXY(state)
else:
self.xlateCamXZ(state)
if self.fSetCoa: if self.fSetCoa:
# Update coa based on current widget position # Update coa based on current widget position
direct.selected.last.mCoa2Dnp.assign( direct.selected.last.mCoa2Dnp.assign(

View File

@ -92,60 +92,6 @@ class ParticlePanel(AppShell):
label = 'Print Params', label = 'Print Params',
command = lambda s = self: s.particles.printParams()) command = lambda s = self: s.particles.printParams())
# EFFECTS MENU
self.menuBar.addmenu('Effects', 'Particle Effects Operations')
# Get a handle on this menu
effectsMenu = self.menuBar.component('Effects-menu')
# Create new particle effect
self.menuBar.addmenuitem(
'Effects', 'command',
'Create New Particle Effect',
label = 'Create New Effect',
command = self.createNewEffect)
# Add cascade menus to view and enable, saving a handle
effectsConfigureMenu = Menu(effectsMenu, tearoff = 0)
effectsMenu.add_cascade(label = 'Configure',
menu = effectsConfigureMenu)
self.effectsEnableMenu = Menu(effectsMenu, tearoff = 0)
effectsMenu.add_cascade(label = 'Enable/Disable',
menu = self.effectsEnableMenu)
# PARTICLES MENU
self.menuBar.addmenu('Particles', 'Particles Operations')
# Get a handle on this menu
particlesMenu = self.menuBar.component('Particles-menu')
# Create new particles object
self.menuBar.addmenuitem(
'Particles', 'command',
'Create New Particles Object',
label = 'Create New Particles',
command = self.createNewParticles)
# Add cascade menus to view and enable, saving a handle
particlesConfigureMenu = Menu(particlesMenu, tearoff = 0)
particlesMenu.add_cascade(label = 'Configure',
menu = particlesConfigureMenu)
self.particlesEnableMenu = Menu(particlesMenu, tearoff = 0)
particlesMenu.add_cascade(label = 'Enable/Disable',
menu = self.particlesEnableMenu)
# FORCE GROUP MENU
self.menuBar.addmenu('ForceGroup', 'ForceGroup Operations')
# Get a handle on this menu
forceGroupMenu = self.menuBar.component('ForceGroup-menu')
# Create new particle effect
self.menuBar.addmenuitem(
'ForceGroup', 'command',
'Create New ForceGroup Object',
label = 'Create New ForceGroup',
command = self.createNewForceGroup)
# Add cascade menus to view and enable, saving a handle
forceGroupConfigureMenu = Menu(forceGroupMenu, tearoff = 0)
forceGroupMenu.add_cascade(label = 'Configure',
menu = forceGroupConfigureMenu)
self.forceGroupEnableMenu = Menu(forceGroupMenu, tearoff = 0)
forceGroupMenu.add_cascade(label = 'Enable/Disable',
menu = self.forceGroupEnableMenu)
# PARTICLE MANAGER MENU # PARTICLE MANAGER MENU
self.menuBar.addmenu('ParticleMgr', 'ParticleMgr Operations') self.menuBar.addmenu('ParticleMgr', 'ParticleMgr Operations')
self.particleMgrActive = IntVar() self.particleMgrActive = IntVar()
@ -164,40 +110,59 @@ class ParticlePanel(AppShell):
self.effectsLabel = Menubutton(labelFrame, width = 10, self.effectsLabel = Menubutton(labelFrame, width = 10,
relief = RAISED, relief = RAISED,
borderwidth = 2, borderwidth = 2,
font=('MSSansSerif', 14, 'bold'), font=('MSSansSerif', 12, 'bold'),
activebackground = '#909090') activebackground = '#909090')
effectsConfigureLabel = Menu(self.effectsLabel, tearoff = 0) self.effectsLabelMenu = Menu(self.effectsLabel, tearoff = 0)
self.effectsLabel['menu'] = effectsConfigureLabel self.effectsLabel['menu'] = self.effectsLabelMenu
self.effectsLabel.pack(side = LEFT, fill = 'x', expand = 0) self.effectsLabel.pack(side = LEFT, fill = 'x', expand = 1)
self.bind(self.effectsLabel,
'Select effect to configure or create new effect')
self.effectsLabelMenu.add_command(label = 'Create New Effect',
command = self.createNewEffect)
self.effectsEnableMenu = Menu(self.effectsLabelMenu, tearoff = 0)
self.effectsLabelMenu.add_cascade(label = 'Enable/Disable',
menu = self.effectsEnableMenu)
self.effectsLabelMenu.add_separator()
# Current particles # Current particles
self.particlesLabel = Menubutton(labelFrame, width = 10, self.particlesLabel = Menubutton(labelFrame, width = 10,
relief = RAISED, relief = RAISED,
borderwidth = 2, borderwidth = 2,
font=('MSSansSerif', 14, 'bold'), font=('MSSansSerif', 12, 'bold'),
activebackground = '#909090') activebackground = '#909090')
particlesConfigureLabel = Menu(self.particlesLabel, tearoff = 0) self.particlesLabelMenu = Menu(self.particlesLabel, tearoff = 0)
self.particlesLabel['menu'] = particlesConfigureLabel self.particlesLabel['menu'] = self.particlesLabelMenu
self.particlesLabel.pack(side = LEFT, fill = 'x', expand = 0) self.particlesLabel.pack(side = LEFT, fill = 'x', expand = 1)
self.bind(self.particlesLabel,
('Select particles object to configure ' +
'or add new particles object to current effect' ))
self.particlesLabelMenu.add_command(label = 'Create New Particles',
command = self.createNewParticles)
self.particlesEnableMenu = Menu(self.particlesLabelMenu, tearoff = 0)
self.particlesLabelMenu.add_cascade(label = 'Enable/Disable',
menu = self.particlesEnableMenu)
self.particlesLabelMenu.add_separator()
# Current force # Current force
self.forceGroupLabel = Menubutton(labelFrame, width = 10, self.forceGroupLabel = Menubutton(labelFrame, width = 10,
relief = RAISED, relief = RAISED,
borderwidth = 2, borderwidth = 2,
font=('MSSansSerif', 14, 'bold'), font=('MSSansSerif', 12, 'bold'),
activebackground = '#909090') activebackground = '#909090')
forceGroupConfigureLabel = Menu(self.forceGroupLabel, tearoff = 0) self.forceGroupLabelMenu = Menu(self.forceGroupLabel, tearoff = 0)
self.forceGroupLabel['menu'] = forceGroupConfigureLabel self.forceGroupLabel['menu'] = self.forceGroupLabelMenu
self.forceGroupLabel.pack(side = LEFT, fill = 'x', expand = 0) self.forceGroupLabel.pack(side = LEFT, fill = 'x', expand = 1)
self.bind(self.forceGroupLabel,
('Select force group to configure ' +
'or add a new force group to current effect'))
self.forceGroupLabelMenu.add_command(
label = 'Create New ForceGroup',
command = self.createNewForceGroup)
self.forceGroupEnableMenu = Menu(self.forceGroupLabelMenu, tearoff = 0)
self.forceGroupLabelMenu.add_cascade(label = 'Enable/Disable',
menu = self.forceGroupEnableMenu)
self.forceGroupLabelMenu.add_separator()
# Pack labels # Pack labels
labelFrame.pack(fill = 'x', expand = 0) labelFrame.pack(fill = 'x', expand = 0)
# These get updated together
self.effectsConfigureMenus = [effectsConfigureMenu,
effectsConfigureLabel]
self.particlesConfigureMenus = [particlesConfigureMenu,
particlesConfigureLabel]
self.forceGroupConfigureMenus = [forceGroupConfigureMenu,
forceGroupConfigureLabel]
# Create the toplevel notebook pages # Create the toplevel notebook pages
self.mainNotebook = Pmw.NoteBook(interior) self.mainNotebook = Pmw.NoteBook(interior)
self.mainNotebook.pack(fill = BOTH, expand = 1) self.mainNotebook.pack(fill = BOTH, expand = 1)
@ -836,7 +801,7 @@ class ParticlePanel(AppShell):
if self.forceGroup != None: if self.forceGroup != None:
self.forceGroupLabel['text'] = self.forceGroup.getName() self.forceGroupLabel['text'] = self.forceGroup.getName()
else: else:
self.forceGroupLabel['text'] = '' self.forceGroupLabel['text'] = 'Force Group'
def updateMenus(self): def updateMenus(self):
self.updateEffectsMenus() self.updateEffectsMenus()
@ -846,19 +811,18 @@ class ParticlePanel(AppShell):
def updateEffectsMenus(self): def updateEffectsMenus(self):
# Get rid of old effects entries if any # Get rid of old effects entries if any
self.effectsEnableMenu.delete(0, 'end') self.effectsEnableMenu.delete(0, 'end')
for menu in self.effectsConfigureMenus: self.effectsLabelMenu.delete(2, 'end')
menu.delete(0, 'end') self.effectsLabelMenu.add_separator()
# Add in a checkbutton for each effect (to toggle on/off) # Add in a checkbutton for each effect (to toggle on/off)
keys = self.effectsDict.keys() keys = self.effectsDict.keys()
keys.sort() keys.sort()
for name in keys: for name in keys:
effect = self.effectsDict[name] effect = self.effectsDict[name]
for menu in self.effectsConfigureMenus: self.effectsLabelMenu.add_command(
menu.add_command( label = effect.getName(),
label = effect.getName(), command = (lambda s = self,
command = (lambda s = self, e = effect: s.selectEffectNamed(e.getName()))
e = effect: s.selectEffectNamed(e.getName())) )
)
effectActive = IntVar() effectActive = IntVar()
effectActive.set(effect.isEnabled()) effectActive.set(effect.isEnabled())
self.effectsEnableMenu.add_checkbutton( self.effectsEnableMenu.add_checkbutton(
@ -871,20 +835,19 @@ class ParticlePanel(AppShell):
def updateParticlesMenus(self): def updateParticlesMenus(self):
# Get rid of old particles entries if any # Get rid of old particles entries if any
self.particlesEnableMenu.delete(0, 'end') self.particlesEnableMenu.delete(0, 'end')
for menu in self.particlesConfigureMenus: self.particlesLabelMenu.delete(2, 'end')
menu.delete(0, 'end') self.particlesLabelMenu.add_separator()
# Add in a checkbutton for each effect (to toggle on/off) # Add in a checkbutton for each effect (to toggle on/off)
particles = self.particleEffect.getParticlesList() particles = self.particleEffect.getParticlesList()
names = map(lambda x: x.getName(), particles) names = map(lambda x: x.getName(), particles)
names.sort() names.sort()
for name in names: for name in names:
particle = self.particleEffect.getParticlesNamed(name) particle = self.particleEffect.getParticlesNamed(name)
for menu in self.particlesConfigureMenus: self.particlesLabelMenu.add_command(
menu.add_command( label = name,
label = name, command = (lambda s = self,
command = (lambda s = self, n = name: s.selectParticlesNamed(n))
n = name: s.selectParticlesNamed(n)) )
)
particleActive = IntVar() particleActive = IntVar()
particleActive.set(particle.isEnabled()) particleActive.set(particle.isEnabled())
self.particlesEnableMenu.add_checkbutton( self.particlesEnableMenu.add_checkbutton(
@ -897,20 +860,19 @@ class ParticlePanel(AppShell):
def updateForceGroupMenus(self): def updateForceGroupMenus(self):
# Get rid of old forceGroup entries if any # Get rid of old forceGroup entries if any
self.forceGroupEnableMenu.delete(0, 'end') self.forceGroupEnableMenu.delete(0, 'end')
for menu in self.forceGroupConfigureMenus: self.forceGroupLabelMenu.delete(2, 'end')
menu.delete(0, 'end') self.forceGroupLabelMenu.add_separator()
# Add in a checkbutton for each effect (to toggle on/off) # Add in a checkbutton for each effect (to toggle on/off)
forceGroupList = self.particleEffect.getForceGroupList() forceGroupList = self.particleEffect.getForceGroupList()
names = map(lambda x: x.getName(), forceGroupList) names = map(lambda x: x.getName(), forceGroupList)
names.sort() names.sort()
for name in names: for name in names:
force = self.particleEffect.getForceGroupNamed(name) force = self.particleEffect.getForceGroupNamed(name)
for menu in self.forceGroupConfigureMenus: self.forceGroupLabelMenu.add_command(
menu.add_command( label = name,
label = name, command = (lambda s = self,
command = (lambda s = self, n = name: s.selectForceGroupNamed(n))
n = name: s.selectForceGroupNamed(n)) )
)
forceActive = IntVar() forceActive = IntVar()
forceActive.set(force.isEnabled()) forceActive.set(force.isEnabled())
self.forceGroupEnableMenu.add_checkbutton( self.forceGroupEnableMenu.add_checkbutton(
@ -1106,9 +1068,9 @@ class ParticlePanel(AppShell):
lifespanSpread = factory.getLifespanSpread() lifespanSpread = factory.getLifespanSpread()
self.getWidget('Factory', 'Life Span Spread').set(lifespanSpread, 0) self.getWidget('Factory', 'Life Span Spread').set(lifespanSpread, 0)
mass = factory.getMassBase() mass = factory.getMassBase()
self.getWidget('Factory', 'Life Span').set(mass, 0) self.getWidget('Factory', 'Mass').set(mass, 0)
massSpread = factory.getMassSpread() massSpread = factory.getMassSpread()
self.getWidget('Factory', 'Life Span Spread').set(massSpread, 0) self.getWidget('Factory', 'Mass Spread').set(massSpread, 0)
terminalVelocity = factory.getTerminalVelocityBase() terminalVelocity = factory.getTerminalVelocityBase()
self.getWidget('Factory', 'Terminal Velocity').set(terminalVelocity, 0) self.getWidget('Factory', 'Terminal Velocity').set(terminalVelocity, 0)
terminalVelocitySpread = factory.getTerminalVelocitySpread() terminalVelocitySpread = factory.getTerminalVelocitySpread()
@ -1471,10 +1433,12 @@ class ParticlePanel(AppShell):
color[2]/255.0, color[3]/255.0)) color[2]/255.0, color[3]/255.0))
# Geom # # Geom #
def setRendererGeomNode(self, event): def setRendererGeomNode(self, event):
node = loader.loadOnce(self.rendererGeomNode.get()) node = None
if (node == None): nodePath = loader.loadModel(self.rendererGeomNode.get())
return None if nodePath != None:
self.particles.renderer.setGeomNode(node) node = nodePath.node()
if (node != None):
self.particles.renderer.setGeomNode(node)
# Point # # Point #
def setRendererPointSize(self, size): def setRendererPointSize(self, size):
self.particles.renderer.setPointSize(size) self.particles.renderer.setPointSize(size)