From 53a1e0bf62629a27d755d39670afa623dfa20aab Mon Sep 17 00:00:00 2001 From: Gyedo Jeon Date: Tue, 30 Mar 2010 02:19:21 +0000 Subject: [PATCH] Made multiview camera/manipulation control using BitMask32.bit(21) --- direct/src/directtools/DirectCameraControl.py | 3 ++- direct/src/directtools/DirectManipulation.py | 6 ++++-- direct/src/leveleditor/LevelEditorUIBase.py | 5 ++++- direct/src/leveleditor/ViewPort.py | 3 +++ 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/direct/src/directtools/DirectCameraControl.py b/direct/src/directtools/DirectCameraControl.py index 43c2a5dc54..c70c0f3873 100644 --- a/direct/src/directtools/DirectCameraControl.py +++ b/direct/src/directtools/DirectCameraControl.py @@ -296,7 +296,8 @@ class DirectCameraControl(DirectObject): # create ray from the camera to detect 3d position iRay = SelectionRay(base.direct.camera) iRay.collider.setFromLens(base.direct.camNode, base.direct.dr.mouseX, base.direct.dr.mouseY) - iRay.collideWithBitMask(1) + #iRay.collideWithBitMask(1) + iRay.collideWithBitMask(BitMask32.bit(21)) iRay.ct.traverse(base.direct.grid) entry = iRay.getEntry(0) diff --git a/direct/src/directtools/DirectManipulation.py b/direct/src/directtools/DirectManipulation.py index f9c27fe028..4ec42f81f7 100644 --- a/direct/src/directtools/DirectManipulation.py +++ b/direct/src/directtools/DirectManipulation.py @@ -1466,7 +1466,8 @@ class ObjectHandles(NodePath, DirectObject): # create ray from the camera to detect 3d position iRay = SelectionRay(base.direct.camera) iRay.collider.setFromLens(base.direct.camNode, base.direct.dr.mouseX, base.direct.dr.mouseY) - iRay.collideWithBitMask(1) + #iRay.collideWithBitMask(1) + iRay.collideWithBitMask(BitMask32.bit(21)) iRay.ct.traverse(base.direct.grid) entry = iRay.getEntry(0) @@ -1538,7 +1539,8 @@ class ObjectHandles(NodePath, DirectObject): # create ray from the camera to detect 3d position iRay = SelectionRay(base.direct.camera) iRay.collider.setFromLens(base.direct.camNode, base.direct.dr.mouseX, base.direct.dr.mouseY) - iRay.collideWithBitMask(1) + #iRay.collideWithBitMask(1) + iRay.collideWithBitMask(BitMask32.bit(21)) iRay.ct.traverse(base.direct.grid) entry = iRay.getEntry(0) diff --git a/direct/src/leveleditor/LevelEditorUIBase.py b/direct/src/leveleditor/LevelEditorUIBase.py index 75bd8e9b94..936587338e 100755 --- a/direct/src/leveleditor/LevelEditorUIBase.py +++ b/direct/src/leveleditor/LevelEditorUIBase.py @@ -66,7 +66,10 @@ class PandaTextDropTarget(wx.TextDropTarget): break if hitPt is None: - iRay.collideWithBitMask(1) + if self.view.name == 'persp': + iRay.collideWithBitMask(1) + else: + iRay.collideWithBitMask(BitMask32.bit(21)) iRay.ct.traverse(self.view.collPlane) if iRay.getNumEntries() > 0: entry = iRay.getEntry(0) diff --git a/direct/src/leveleditor/ViewPort.py b/direct/src/leveleditor/ViewPort.py index a342ad31e0..ae12e24a1c 100755 --- a/direct/src/leveleditor/ViewPort.py +++ b/direct/src/leveleditor/ViewPort.py @@ -193,6 +193,7 @@ class Viewport(wx.Panel, DirectObject): v.grid.setHpr(0, 0, 90) collPlane = CollisionNode('LeftGridCol') collPlane.addSolid(CollisionPlane(Plane(1, 0, 0, 0))) + collPlane.setIntoCollideMask(BitMask32.bit(21)) v.collPlane = NodePath(collPlane) v.collPlane.wrtReparentTo(v.grid) #v.grid.gridBack.findAllMatches("**/+GeomNode")[0].setName("_leftViewGridBack") @@ -201,6 +202,7 @@ class Viewport(wx.Panel, DirectObject): v.grid.setHpr(90, 0, 90) collPlane = CollisionNode('FrontGridCol') collPlane.addSolid(CollisionPlane(Plane(0, -1, 0, 0))) + collPlane.setIntoCollideMask(BitMask32.bit(21)) v.collPlane = NodePath(collPlane) v.collPlane.wrtReparentTo(v.grid) #v.grid.gridBack.findAllMatches("**/+GeomNode")[0].setName("_frontViewGridBack") @@ -208,6 +210,7 @@ class Viewport(wx.Panel, DirectObject): else: collPlane = CollisionNode('TopGridCol') collPlane.addSolid(CollisionPlane(Plane(0, 0, 1, 0))) + collPlane.setIntoCollideMask(BitMask32.bit(21)) v.collPlane = NodePath(collPlane) v.collPlane.reparentTo(v.grid) #v.grid.gridBack.findAllMatches("**/+GeomNode")[0].setName("_topViewGridBack")