mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 01:44:06 -04:00
installed interractive ShowPandaObjects
This commit is contained in:
parent
8d592a03e1
commit
29ad1a585c
@ -67,7 +67,11 @@ class LevelEditorUI(WxAppShell):
|
|||||||
|
|
||||||
self.gridSizeMenuItem = self.menuOptions.Append(-1, "&Grid Size ")
|
self.gridSizeMenuItem = self.menuOptions.Append(-1, "&Grid Size ")
|
||||||
self.Bind(wx.EVT_MENU, self.onGridSize, self.gridSizeMenuItem)
|
self.Bind(wx.EVT_MENU, self.onGridSize, self.gridSizeMenuItem)
|
||||||
|
|
||||||
|
self.showPandaObjectsMenuItem = self.menuOptions.Append(-1, "&Show Panda Objects", kind = wx.ITEM_CHECK)
|
||||||
|
self.Bind(wx.EVT_MENU, self.onShowPandaObjects, self.showPandaObjectsMenuItem)
|
||||||
|
|
||||||
|
|
||||||
def createInterface(self):
|
def createInterface(self):
|
||||||
self.createMenu()
|
self.createMenu()
|
||||||
|
|
||||||
@ -175,7 +179,10 @@ class LevelEditorUI(WxAppShell):
|
|||||||
def onGridSize(self, evt):
|
def onGridSize(self, evt):
|
||||||
gridSizeUI = GridSizeUI(self, -1, 'Change Grid Size', self.perspView.grid.gridSize, self.perspView.grid.gridSpacing)
|
gridSizeUI = GridSizeUI(self, -1, 'Change Grid Size', self.perspView.grid.gridSize, self.perspView.grid.gridSpacing)
|
||||||
gridSizeUI.ShowModal()
|
gridSizeUI.ShowModal()
|
||||||
gridSizeUI.Destroy()
|
gridSizeUI.Destroy()
|
||||||
|
|
||||||
|
def onShowPandaObjects(self, evt):
|
||||||
|
self.sceneGraphUI.showPandaObjectChildren()
|
||||||
|
|
||||||
def onDestroy(self, evt):
|
def onDestroy(self, evt):
|
||||||
self.editor.saveSettings()
|
self.editor.saveSettings()
|
||||||
|
@ -22,11 +22,10 @@ class SceneGraphUI(wx.Panel):
|
|||||||
wx.Panel.__init__(self, parent)
|
wx.Panel.__init__(self, parent)
|
||||||
|
|
||||||
self.editor = editor
|
self.editor = editor
|
||||||
|
|
||||||
# self.palette = self.editor.objectPalette
|
|
||||||
self.tree = wx.TreeCtrl(self)
|
self.tree = wx.TreeCtrl(self)
|
||||||
self.root = self.tree.AddRoot('render')
|
self.root = self.tree.AddRoot('render')
|
||||||
#self.addTreeNodes(root, self.palette.data)
|
|
||||||
|
self.shouldShowPandaObjChildren = False
|
||||||
|
|
||||||
sizer = wx.BoxSizer(wx.VERTICAL)
|
sizer = wx.BoxSizer(wx.VERTICAL)
|
||||||
sizer.Add(self.tree, 1, wx.EXPAND, 0)
|
sizer.Add(self.tree, 1, wx.EXPAND, 0)
|
||||||
@ -66,6 +65,21 @@ class SceneGraphUI(wx.Panel):
|
|||||||
objNodePath = obj[OG.OBJ_NP]
|
objNodePath = obj[OG.OBJ_NP]
|
||||||
self.traversePandaObjects(item, objNodePath)
|
self.traversePandaObjects(item, objNodePath)
|
||||||
|
|
||||||
|
def removePandaObjectChildren(self, parent):
|
||||||
|
# first, find Panda Object's NodePath of the item
|
||||||
|
itemId = self.tree.GetItemPyData(parent)
|
||||||
|
obj = self.editor.objectMgr.findObjectById(itemId)
|
||||||
|
if obj is None:
|
||||||
|
self.tree.Delete(parent)
|
||||||
|
return
|
||||||
|
item, cookie = self.tree.GetFirstChild(parent)
|
||||||
|
while item:
|
||||||
|
# recurse...
|
||||||
|
itemToRemove = item
|
||||||
|
# continue iteration to the next child
|
||||||
|
item, cookie = self.tree.GetNextChild(parent, cookie)
|
||||||
|
self.removePandaObjectChildren(itemToRemove)
|
||||||
|
|
||||||
def add(self, item, parentName = None):
|
def add(self, item, parentName = None):
|
||||||
# import pdb;pdb.set_trace()
|
# import pdb;pdb.set_trace()
|
||||||
if item is None:
|
if item is None:
|
||||||
@ -81,7 +95,8 @@ class SceneGraphUI(wx.Panel):
|
|||||||
self.tree.SetItemPyData(newItem, obj[OG.OBJ_UID])
|
self.tree.SetItemPyData(newItem, obj[OG.OBJ_UID])
|
||||||
|
|
||||||
# adding children of PandaObj
|
# adding children of PandaObj
|
||||||
self.addPandaObjectChildren(newItem)
|
if self.shouldShowPandaObjChildren:
|
||||||
|
self.addPandaObjectChildren(newItem)
|
||||||
self.tree.Expand(self.root)
|
self.tree.Expand(self.root)
|
||||||
|
|
||||||
def traverse(self, parent, itemId):
|
def traverse(self, parent, itemId):
|
||||||
@ -167,6 +182,18 @@ class SceneGraphUI(wx.Panel):
|
|||||||
dragToItemObjNodePath = dragToItemObj[OG.OBJ_NP]
|
dragToItemObjNodePath = dragToItemObj[OG.OBJ_NP]
|
||||||
objNodePath.wrtReparentTo(dragToItemObjNodePath)
|
objNodePath.wrtReparentTo(dragToItemObjNodePath)
|
||||||
|
|
||||||
|
def showPandaObjectChildren(self):
|
||||||
|
#import pdb;set_trace()
|
||||||
|
self.shouldShowPandaObjChildren = not self.shouldShowPandaObjChildren
|
||||||
|
item, cookie = self.tree.GetFirstChild(self.root)
|
||||||
|
while item:
|
||||||
|
if self.shouldShowPandaObjChildren:
|
||||||
|
self.addPandaObjectChildren(item)
|
||||||
|
else:
|
||||||
|
self.removePandaObjectChildren(item)
|
||||||
|
# continue iteration to the next child
|
||||||
|
item, cookie = self.tree.GetNextChild(self.root, cookie)
|
||||||
|
|
||||||
def onSelected(self, event):
|
def onSelected(self, event):
|
||||||
itemId = self.tree.GetItemPyData(event.GetItem())
|
itemId = self.tree.GetItemPyData(event.GetItem())
|
||||||
if itemId:
|
if itemId:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user