*** empty log message ***
This commit is contained in:
parent
5e62418b97
commit
8d25bfaf43
|
|
@ -55,7 +55,7 @@ class DirectJoybox(PandaObject):
|
|||
self.refCS = direct.cameraControl.coaMarker
|
||||
self.tempCS = direct.group.attachNewNode('JoyboxTempCS')
|
||||
# Text object to display current mode
|
||||
self.readout = OnscreenText.OnscreenText( pos = (-0.9, -0.95) )
|
||||
self.readout = OnscreenText.OnscreenText( pos = (-0.9, 0.95) )
|
||||
# List of functions to cycle through
|
||||
self.modeList = [self.joeMode, self.driveMode, self.orbitMode]
|
||||
# Pick initial mode
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class DirectManipulationControl(PandaObject):
|
|||
[',', self.objectHandles.multiplyScalingFactorBy, 0.5],
|
||||
['<', self.objectHandles.multiplyScalingFactorBy, 0.5],
|
||||
['F', self.objectHandles.growToFit],
|
||||
['p', self.plantSelectedNodePath],
|
||||
['P', self.plantSelectedNodePath],
|
||||
]
|
||||
|
||||
def manipulationStart(self):
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
from PandaObject import *
|
||||
from DirectGeometry import *
|
||||
from DirectSelection import *
|
||||
import __builtin__
|
||||
|
||||
UNPICKABLE = ['x-disc-visible', 'y-disc-visible', 'z-disc-visible',
|
||||
'GridBack']
|
||||
'gridBack']
|
||||
|
||||
# MRM: To do: handle broken node paths in selected and deselected dicts
|
||||
class DirectNodePath(NodePath):
|
||||
|
|
@ -55,7 +56,7 @@ class SelectedNodePaths(PandaObject):
|
|||
def reset(self):
|
||||
self.selectedDict = {}
|
||||
self.deselectedDict = {}
|
||||
self.last = None
|
||||
__builtin__.last = self.last = None
|
||||
|
||||
def select(self, nodePath, fMultiSelect = 0):
|
||||
""" Select the specified node path. Multiselect as required """
|
||||
|
|
@ -89,7 +90,7 @@ class SelectedNodePaths(PandaObject):
|
|||
# Add it to the selected dictionary
|
||||
self.selectedDict[dnp.id()] = dnp
|
||||
# And update last
|
||||
self.last = dnp
|
||||
__builtin__.last = self.last = dnp
|
||||
return dnp
|
||||
|
||||
def deselect(self, nodePath):
|
||||
|
|
@ -210,7 +211,7 @@ class SelectedNodePaths(PandaObject):
|
|||
selected = self.last
|
||||
if selected:
|
||||
selected.remove()
|
||||
self.last = None
|
||||
__builtin__.last = self.last = None
|
||||
|
||||
def removeAll(self):
|
||||
# Remove all selected nodePaths from the Scene Graph
|
||||
|
|
|
|||
|
|
@ -49,11 +49,19 @@ class DirectSession(PandaObject):
|
|||
self.ancestryIndex = 0
|
||||
self.activeParent = None
|
||||
|
||||
self.readout = OnscreenText.OnscreenText( pos = (0.1, -0.95), bg=Vec4(1,1,1,1))
|
||||
self.selectedNPReadout = OnscreenText.OnscreenText(
|
||||
pos = (-1.0, -0.9), bg=Vec4(1,1,1,1),
|
||||
scale = 0.05, align = TMALIGNLEFT)
|
||||
# Make sure readout is never lit or drawn in wireframe
|
||||
useDirectRenderStyle(self.readout)
|
||||
# self.readout.textNode.setCardColor(0.5, 0.5, 0.5, 0.5)
|
||||
self.readout.reparentTo( hidden )
|
||||
useDirectRenderStyle(self.selectedNPReadout)
|
||||
self.selectedNPReadout.reparentTo( hidden )
|
||||
|
||||
self.activeParentReadout = OnscreenText.OnscreenText(
|
||||
pos = (-1.0, -0.975), bg=Vec4(1,1,1,1),
|
||||
scale = 0.05, align = TMALIGNLEFT)
|
||||
# Make sure readout is never lit or drawn in wireframe
|
||||
useDirectRenderStyle(self.activeParentReadout)
|
||||
self.activeParentReadout.reparentTo( hidden )
|
||||
|
||||
# Create a vrpn client vrpn-server or default
|
||||
if base.config.GetBool('want-vrpn', 0):
|
||||
|
|
@ -113,7 +121,7 @@ class DirectSession(PandaObject):
|
|||
'shift', 'shift-up', 'alt', 'alt-up',
|
||||
'page_up', 'page_down',
|
||||
'[', '{', ']', '}',
|
||||
'A', 'b', 'l', 's', 't', 'v', 'w']
|
||||
'A', 'b', 'l', 'p', 's', 't', 'v', 'w']
|
||||
self.mouseEvents = ['mouse1', 'mouse1-up',
|
||||
'mouse2', 'mouse2-up',
|
||||
'mouse3', 'mouse3-up']
|
||||
|
|
@ -241,6 +249,9 @@ class DirectSession(PandaObject):
|
|||
base.toggleBackface()
|
||||
elif input == 'l':
|
||||
self.lights.toggle()
|
||||
elif input == 'p':
|
||||
if self.selected.last:
|
||||
self.setActiveParent(self.selected.last)
|
||||
elif input == 's':
|
||||
if self.selected.last:
|
||||
self.select(self.selected.last)
|
||||
|
|
@ -264,9 +275,10 @@ class DirectSession(PandaObject):
|
|||
self.ancestry = dnp.getAncestry()
|
||||
self.ancestry.reverse()
|
||||
self.ancestryIndex = 0
|
||||
# Update the readout
|
||||
self.readout.reparentTo(render2d)
|
||||
self.readout.setText(dnp.name)
|
||||
# Update the selectedNPReadout
|
||||
self.selectedNPReadout.reparentTo(aspect2d)
|
||||
self.selectedNPReadout.setText(
|
||||
'Selected:' + dnp.name)
|
||||
# Show the manipulation widget
|
||||
self.widget.showWidget()
|
||||
# Update camera controls coa to this point
|
||||
|
|
@ -300,8 +312,8 @@ class DirectSession(PandaObject):
|
|||
if dnp:
|
||||
# Hide the manipulation widget
|
||||
self.widget.hideWidget()
|
||||
self.readout.reparentTo(hidden)
|
||||
self.readout.setText(' ')
|
||||
self.selectedNPReadout.reparentTo(hidden)
|
||||
self.selectedNPReadout.setText(' ')
|
||||
taskMgr.removeTasksNamed('followSelectedNodePath')
|
||||
self.ancestry = []
|
||||
# Send an message marking the event
|
||||
|
|
@ -311,13 +323,17 @@ class DirectSession(PandaObject):
|
|||
self.selected.deselectAll()
|
||||
# Hide the manipulation widget
|
||||
self.widget.hideWidget()
|
||||
self.readout.reparentTo(hidden)
|
||||
self.readout.setText(' ')
|
||||
self.selectedNPReadout.reparentTo(hidden)
|
||||
self.selectedNPReadout.setText(' ')
|
||||
taskMgr.removeTasksNamed('followSelectedNodePath')
|
||||
|
||||
def setActiveParent(self, nodePath = None):
|
||||
# Record new parent
|
||||
self.activeParent = nodePath
|
||||
# Update the activeParentReadout
|
||||
self.activeParentReadout.reparentTo(aspect2d)
|
||||
self.activeParentReadout.setText(
|
||||
'Active Parent:' + nodePath.getName())
|
||||
# Alert everyone else
|
||||
messenger.send('DIRECT_activeParent', [self.activeParent])
|
||||
|
||||
|
|
@ -550,8 +566,11 @@ class DirectSession(PandaObject):
|
|||
self.widget = self.manipulationControl.objectHandles
|
||||
self.widget.reparentTo(direct.group)
|
||||
|
||||
def hideReadout(self):
|
||||
self.readout.reparentTo(hidden)
|
||||
def hideSelectedNPReadout(self):
|
||||
self.selectedNPReadout.reparentTo(hidden)
|
||||
|
||||
def hideActiveParentReadout(self):
|
||||
self.activeParentReadout.reparentTo(hidden)
|
||||
|
||||
def toggleWidgetVis(self):
|
||||
self.widget.toggleWidget()
|
||||
|
|
|
|||
|
|
@ -416,8 +416,6 @@ class LevelEditor(NodePath, PandaObject):
|
|||
self.pointDict = {}
|
||||
self.point2edgeDict = {}
|
||||
self.cellDict = {}
|
||||
self.visitedPoints = []
|
||||
self.visitedEdges = []
|
||||
|
||||
# Initialize LevelEditor variables DNAData, DNAToplevel, NPToplevel
|
||||
# DNAParent, NPParent, groupNum, lastAngle
|
||||
|
|
@ -617,6 +615,9 @@ class LevelEditor(NodePath, PandaObject):
|
|||
self.snapList = []
|
||||
# Last menu used
|
||||
self.activeMenu = None
|
||||
# For highlighting suit paths
|
||||
self.visitedPoints = []
|
||||
self.visitedEdges = []
|
||||
# Update scene graph explorer
|
||||
if fUpdateExplorer:
|
||||
self.panel.sceneGraphExplorer.update()
|
||||
|
|
@ -774,17 +775,34 @@ class LevelEditor(NodePath, PandaObject):
|
|||
print 'Suit Point:', pointOrCell
|
||||
if DNASTORE.removeSuitPoint(pointOrCell):
|
||||
print "Removed from DNASTORE"
|
||||
del(self.pointDict[pointOrCell])
|
||||
# Update edge dict
|
||||
for edge in self.point2edgeDict[pointOrCell]:
|
||||
# Is it still in edge dict?
|
||||
oldEdgeLine = self.edgeDict.get(edge, None)
|
||||
if oldEdgeLine:
|
||||
del self.edgeDict[edge]
|
||||
oldEdgeLine.reset()
|
||||
del oldEdgeLine
|
||||
else:
|
||||
print "Not found in DNASTORE"
|
||||
# Remove point from pointDict
|
||||
del(self.pointDict[pointOrCell])
|
||||
# Remove point from visitedPoints list
|
||||
if pointOrCell in self.visitedPoints:
|
||||
self.visitedPoints.remove(pointOrCell)
|
||||
# Update edge related dictionaries
|
||||
for edge in self.point2edgeDict[pointOrCell]:
|
||||
# Is it still in edge dict?
|
||||
oldEdgeLine = self.edgeDict.get(edge, None)
|
||||
if oldEdgeLine:
|
||||
del self.edgeDict[edge]
|
||||
oldEdgeLine.reset()
|
||||
del oldEdgeLine
|
||||
# Find other endpoints of edge and clear out
|
||||
# corresponding point2edgeDict entry
|
||||
startPoint = edge.getStartPoint()
|
||||
endPoint = edge.getEndPoint()
|
||||
if pointOrCell == startPoint:
|
||||
self.point2edgeDict[endPoint].remove(edge)
|
||||
elif pointOrCell == endPoint:
|
||||
self.point2edgeDict[startPoint].remove(edge)
|
||||
# Is it in the visited edges list?
|
||||
if edge in self.visitedEdges:
|
||||
self.visitedEdges.remove(edge)
|
||||
# Now delete point2edgeDict entry for this point
|
||||
del(self.point2edgeDict[pointOrCell])
|
||||
elif (type == 'battleCellMarker'):
|
||||
# Get parent vis group
|
||||
visGroupNP, visGroupDNA = self.findParentVisGroup(nodePath)
|
||||
|
|
@ -894,13 +912,15 @@ class LevelEditor(NodePath, PandaObject):
|
|||
print "Found suit point!", pointOrCell
|
||||
# Ok, now update all the lines into that node
|
||||
for edge in self.point2edgeDict[pointOrCell]:
|
||||
oldEdgeLine = self.edgeDict[edge]
|
||||
del self.edgeDict[edge]
|
||||
oldEdgeLine.reset()
|
||||
del oldEdgeLine
|
||||
newEdgeLine = self.drawSuitEdge(
|
||||
edge, self.NPParent)
|
||||
self.edgeDict[edge] = newEdgeLine
|
||||
# Is it still in edge dict?
|
||||
oldEdgeLine = self.edgeDict.get(edge, None)
|
||||
if oldEdgeLine:
|
||||
del self.edgeDict[edge]
|
||||
oldEdgeLine.reset()
|
||||
del oldEdgeLine
|
||||
newEdgeLine = self.drawSuitEdge(
|
||||
edge, self.NPParent)
|
||||
self.edgeDict[edge] = newEdgeLine
|
||||
elif (type == 'battleCellMarker'):
|
||||
print "Found battle cell!", pointOrCell
|
||||
|
||||
|
|
|
|||
|
|
@ -98,6 +98,12 @@ class Messenger:
|
|||
# If we looked in both dictionaries and made it here
|
||||
# that object must not be accepting that event.
|
||||
return 0
|
||||
|
||||
def whoAccepts(self, event):
|
||||
""" whoAccepts(self, event):
|
||||
Return objects accepting the given event
|
||||
"""
|
||||
return self.dict.get(event, None)
|
||||
|
||||
def isIgnoring(self, event, object):
|
||||
""" isIgnorning(self, string, DirectObject)
|
||||
|
|
|
|||
Loading…
Reference in New Issue