diff --git a/direct/src/directtools/DirectManipulation.py b/direct/src/directtools/DirectManipulation.py index e572d5a938..bc9be31ada 100644 --- a/direct/src/directtools/DirectManipulation.py +++ b/direct/src/directtools/DirectManipulation.py @@ -26,7 +26,7 @@ class DirectManipulationControl(PandaObject): self.actionEvents = [ ['handleMouse1', self.manipulationStart], ['handleMouse1Up', self.manipulationStop], - ['space', self.toggleObjectHandlesMode], + ['tab', self.toggleObjectHandlesMode], ['.', self.objectHandles.multiplyScalingFactorBy, 2.0], ['>', self.objectHandles.multiplyScalingFactorBy, 2.0], [',', self.objectHandles.multiplyScalingFactorBy, 0.5], diff --git a/direct/src/directtools/DirectSession.py b/direct/src/directtools/DirectSession.py index 4a340b1f94..9011c293bd 100644 --- a/direct/src/directtools/DirectSession.py +++ b/direct/src/directtools/DirectSession.py @@ -84,12 +84,11 @@ class DirectSession(PandaObject): ['SGENodePath_Place', Placer.place], ['SGENodePath_Delete', self.removeNodePath], ] - self.keyEvents = ['left', 'right', 'up', 'down', - 'escape', 'delete', 'control', 'control-up', + self.keyEvents = ['escape', 'delete', 'control', 'control-up', 'shift', 'shift-up', 'alt', 'alt-up', - 'page_up', 'page_down', 'tab', + 'page_up', 'page_down', '[', '{', ']', '}', - 'b', 'l', 's', 't', 'v', 'w'] + 'A', 'b', 'l', 's', 't', 'v', 'w'] self.mouseEvents = ['mouse1', 'mouse1-up', 'mouse2', 'mouse2-up', 'mouse3', 'mouse3-up'] @@ -210,7 +209,7 @@ class DirectSession(PandaObject): self.deselectAll() elif input == 'delete': self.removeAllSelected() - elif input == 'tab': + elif input == 'v': self.toggleWidgetVis() elif input == 'b': base.toggleBackface() @@ -221,7 +220,7 @@ class DirectSession(PandaObject): self.select(self.selected.last) elif input == 't': base.toggleTexture() - elif input == 'v': + elif input == 'A': self.selected.toggleVisAll() elif input == 'w': base.toggleWireframe() diff --git a/direct/src/doc/DIRECT-hotkeys b/direct/src/doc/DIRECT-hotkeys new file mode 100644 index 0000000000..44b5c17346 --- /dev/null +++ b/direct/src/doc/DIRECT-hotkeys @@ -0,0 +1,59 @@ +# UNDO/REDO +[ undo +] redo + +# CAMERA MOVES ++ zoomCam in +- zoomCam out +1 front view +2 back view +3 right view +4 left view +5 top view +6 bottom view +7 3/4 view +8 roll view +9 swing camera about hot point +0 swing camera about hot point +c center on hot point +f fit on hot point +h move camera to home (0,0,0) +u orbit upright cam about hot point +U upright cam +` kill camera move task + +# RENDER STYLE +A show all +b toggle backface +l toggle lights +t toggle texture +w toggle wireframe + +# DIRECT CONTROLS +delete delete selected object +escape deselect all +page_down move down selected objects hierarchy +page_up move up selected objects hierarchy +F grow widget to fit current view +m move widget in front of camera +p plant selected object at cursor intersection point +s (re)select last selected object +v toggle widget visability +tab toggle widget mode (move objects or set center of action) +< shrink widget +> expand widget + +# LEVEL EDITOR +insert add new object of current object type +space add exact copy of current object +right move selected object right (in screen space) +left move selected object left (in screen space) +down move selected object down (in screen space) +up move selected object up (in screen space) +a auto position snap point to selected object +j move selected object to snap point + + + + +================================================== diff --git a/direct/src/leveleditor/LevelEditor.py b/direct/src/leveleditor/LevelEditor.py index 6ff5e0f40b..ffef99b351 100644 --- a/direct/src/leveleditor/LevelEditor.py +++ b/direct/src/leveleditor/LevelEditor.py @@ -295,7 +295,7 @@ class LevelEditor(NodePath, PandaObject): ('select_prop_color', self.setDNATargetColor), # Hot key actions ('a', self.autoPositionGrid), - ('.', self.jumpToInsertionPoint), + ('j', self.jumpToInsertionPoint), ('left', self.keyboardXformSelected, ['left']), ('right', self.keyboardXformSelected, ['right']), ('up', self.keyboardXformSelected, ['up']), diff --git a/direct/src/showbase/Messenger.py b/direct/src/showbase/Messenger.py index 4e84975401..6de44f6ac8 100644 --- a/direct/src/showbase/Messenger.py +++ b/direct/src/showbase/Messenger.py @@ -120,6 +120,16 @@ class Messenger: keys.sort() for event in keys: str = str + 'Event: ' + event + '\n' + acceptorDict = self.dict[event] + for object in acceptorDict.keys(): + method, extraArgs, persistent = acceptorDict[object] + className = object.__class__.__name__ + methodName = method.__name__ + str = str + '\t' + className + '.' + methodName + '(' + if extraArgs: + str = str + `extraArgs` + ' + ' + str = str + 'sentArgs)\n' + str = str + '\n' str = str + '='*50 + '\n' print str @@ -147,23 +157,3 @@ class Messenger: str = str + '='*50 + '\n' return str - def __reprehensible__(self): - """__repr__(self) - Old way to print out the table in a readable format - """ - str = 'Messenger\n' - str = str + '='*50 + '\n' - for event in self.dict.keys(): - acceptorDict = self.dict[event] - str = str + event + '\n' - for object in acceptorDict.keys(): - method, extraArgs, persistent = acceptorDict[object] - str = str + '\t' + `object` + '\n\t' + `method` + '\n\t' + `extraArgs` + ' ' + `persistent` + '\n' - str = str + '='*50 + '\n' - return str - - - - - - diff --git a/direct/src/tkpanels/ParticlePanel.py b/direct/src/tkpanels/ParticlePanel.py index c255a6de88..82a180b3b8 100644 --- a/direct/src/tkpanels/ParticlePanel.py +++ b/direct/src/tkpanels/ParticlePanel.py @@ -600,22 +600,36 @@ class ParticlePanel(AppShell): forceMenu.add_command(label = 'Add Linear Friction Force', command = self.addLinearFrictionForce) """ - forceMenu.add_command(label = 'Add Linear Cylinder Vortex Force', - command = self.addLinearCylinderVortexForce) - forceMenu.add_command(label = 'Add Linear Distance Force', - command = self.addLinearDistanceForce) + # derive from RANDOM derives from Linear Force + # setAmplitude + # setMassDependent + # setVectorMasks forceMenu.add_command(label = 'Add Linear Jitter Force', command = self.addLinearJitterForce) forceMenu.add_command(label = 'Add Linear Noise Force', command = self.addLinearNoiseForce) - forceMenu.add_command(label = 'Add Linear Random Force', - command = self.addLinearRandomForce) + # setCoef + # setLength + # setRadius + forceMenu.add_command(label = 'Add Linear Cylinder Vortex Force', + command = self.addLinearCylinderVortexForce) + forceMenu.add_command(label = 'Add Linear User Defined Force', + command = self.addLinearUserDefinedForce) + # Also friction + + # Linear Distance force + # setFalloffType + # setForceCenter + # setRadius forceMenu.add_command(label = 'Add Linear Sink Force', command = self.addLinearSinkForce) forceMenu.add_command(label = 'Add Linear Source Force', command = self.addLinearSourceForce) - forceMenu.add_command(label = 'Add Linear User Defined Force', - command = self.addLinearUserDefinedForce) + + forceMenu.add_command(label = 'Add Linear Distance Force', + command = self.addLinearDistanceForce) + forceMenu.add_command(label = 'Add Linear Random Force', + command = self.addLinearRandomForce) """ self.addForceButton.pack(expand = 0)