浏览代码

*** empty log message ***

Mark Mine 24 年之前
父节点
当前提交
aba01ed56f

+ 9 - 2
direct/src/directtools/DirectSession.py

@@ -106,6 +106,7 @@ class DirectSession(PandaObject):
             ['SGE_Deselect', self.deselect],
             ['SGE_Deselect', self.deselect],
             ['SGE_Set Parent', self.setActiveParent],
             ['SGE_Set Parent', self.setActiveParent],
             ['SGE_Reparent', self.reparent],
             ['SGE_Reparent', self.reparent],
+            ['SGE_WRT Reparent', lambda np, s=self: s.reparent(np, fWrt = 1)],
             ['SGE_Flash', self.flash],
             ['SGE_Flash', self.flash],
             ['SGE_Isolate', self.isolate],
             ['SGE_Isolate', self.isolate],
             ['SGE_Toggle Vis', self.toggleVis],
             ['SGE_Toggle Vis', self.toggleVis],
@@ -255,6 +256,9 @@ class DirectSession(PandaObject):
         elif input == 'r':
         elif input == 'r':
             if self.selected.last:
             if self.selected.last:
                 self.reparent(self.selected.last)
                 self.reparent(self.selected.last)
+        elif input == 'R':
+            if self.selected.last:
+                self.reparent(self.selected.last, fWrt = 1)
         elif input == 's':
         elif input == 's':
             if self.selected.last:
             if self.selected.last:
                 self.select(self.selected.last)
                 self.select(self.selected.last)
@@ -340,11 +344,14 @@ class DirectSession(PandaObject):
         # Alert everyone else
         # Alert everyone else
         messenger.send('DIRECT_activeParent', [self.activeParent])
         messenger.send('DIRECT_activeParent', [self.activeParent])
         
         
-    def reparent(self, nodePath = None):
+    def reparent(self, nodePath = None, fWrt = 0):
         if (nodePath and self.activeParent and
         if (nodePath and self.activeParent and
             self.isNotCycle(nodePath, self.activeParent)):
             self.isNotCycle(nodePath, self.activeParent)):
             oldParent = nodePath.getParent()
             oldParent = nodePath.getParent()
-            nodePath.reparentTo(self.activeParent)
+            if fWrt:
+                nodePath.wrtReparentTo(self.activeParent)
+            else:
+                nodePath.reparentTo(self.activeParent)
             # Alert everyone else
             # Alert everyone else
             messenger.send('DIRECT_reparent',
             messenger.send('DIRECT_reparent',
                            [nodePath, oldParent, self.activeParent])
                            [nodePath, oldParent, self.activeParent])

+ 16 - 2
direct/src/directtools/DirectUtil.py

@@ -1,11 +1,25 @@
 from PandaObject import *
 from PandaObject import *
 from EntryScale import EntryScale
 from EntryScale import EntryScale
 
 
-def adjust(command = None, min = 0.0, max = 1.0, text = 'Adjust'):
+def adjust(**kw):
+    """
+    Popup and entry scale to adjust a parameter
+    Accepts any EntryScale keyword argument.  Typical arguments include:
+    command: The one argument command to execute
+    min: The min value of the slider
+    max: The max value of the slider
+    resolution: The resolution of the slider
+    text: The label on the slider
+    """
+    from Tkinter import *
+    import Pmw
+    from EntryScale import *
     tl = Toplevel()
     tl = Toplevel()
     tl.title('Parameter Adjust')
     tl.title('Parameter Adjust')
-    es = EntryScale(tl, command = command, min = min, max = max, text = text)
+    es = apply(EntryScale, (tl,), kw)
     es.pack(expand = 1, fill = X)
     es.pack(expand = 1, fill = X)
+    es.tl = tl
+    return es
 
 
 ## Background Color ##
 ## Background Color ##
 def setBackgroundColor(r,g,b):
 def setBackgroundColor(r,g,b):

+ 4 - 2
direct/src/tkwidgets/SceneGraphExplorer.py

@@ -6,13 +6,15 @@ import Pmw
 DEFAULT_MENU_ITEMS = [
 DEFAULT_MENU_ITEMS = [
     'Update Explorer',
     'Update Explorer',
     'Separator',
     'Separator',
-    'Select', 'Deselect', 'Set Parent', 'Reparent', 'Set Name',
+    'Select', 'Deselect', 
     'Separator',
     'Separator',
     'Delete',
     'Delete',
     'Separator',
     'Separator',
     'Fit', 'Flash', 'Isolate', 'Toggle Vis', 'Show All',
     'Fit', 'Flash', 'Isolate', 'Toggle Vis', 'Show All',
     'Separator',
     'Separator',
-    'Place', 'Set Color', 'Explore',
+    'Set Parent', 'Reparent', 'WRT Reparent',
+    'Separator',
+    'Place', 'Set Name', 'Set Color', 'Explore',
     'Separator']
     'Separator']
 
 
 class SceneGraphExplorer(Pmw.MegaWidget, PandaObject):
 class SceneGraphExplorer(Pmw.MegaWidget, PandaObject):