use setTransform() instead of setMat()

This commit is contained in:
David Rose 2002-06-25 18:59:50 +00:00
parent 7b1134461c
commit 08592a90a7
3 changed files with 16 additions and 20 deletions

View File

@ -236,13 +236,12 @@ class DirectCameraControl(PandaObject):
self.camManipRef.setPos(self.coaMarkerPos)
self.camManipRef.setHpr(direct.camera, ZERO_POINT)
else:
wrtMat = Mat4()
wrtMat.assign(direct.camera.getMat( self.camManipRef ))
wrt = direct.camera.getTransform( self.camManipRef )
self.camManipRef.setHpr(self.camManipRef,
(-1 * deltaX * 180.0),
(deltaY * 180.0),
0.0)
direct.camera.setMat(self.camManipRef, wrtMat)
direct.camera.setTransform(self.camManipRef, wrt)
return Task.cont
def spawnMouseRollTask(self):
@ -254,12 +253,12 @@ class DirectCameraControl(PandaObject):
t = Task.Task(self.mouseRollTask)
t.coaCenter = getScreenXY(self.coaMarker)
t.lastAngle = getCrankAngle(t.coaCenter)
# Get a copy of the camera/manipRef offset matrix
t.wrtMat = Mat4(direct.camera.getMat( self.camManipRef ))
# Store the camera/manipRef offset transform
t.wrt = direct.camera.getTransform( self.camManipRef )
taskMgr.add(t, 'manipulateCamera')
def mouseRollTask(self, state):
wrtMat = state.wrtMat
wrt = state.wrt
angle = getCrankAngle(state.coaCenter)
deltaAngle = angle - state.lastAngle
state.lastAngle = angle
@ -267,7 +266,7 @@ class DirectCameraControl(PandaObject):
self.camManipRef.setHpr(self.camManipRef, 0, 0, deltaAngle)
else:
self.camManipRef.setHpr(self.camManipRef, 0, 0, -deltaAngle)
direct.camera.setMat(self.camManipRef, wrtMat)
direct.camera.setTransform(self.camManipRef, wrt)
return Task.cont
def lockCOA(self):
@ -383,7 +382,7 @@ class DirectCameraControl(PandaObject):
# Record undo point
direct.pushUndo([direct.camera])
direct.camera.reparentTo(render)
direct.camera.setMat(Mat4.identMat())
direct.camera.clearMat()
# Resize coa marker
self.updateCoaMarkerSize()

View File

@ -21,8 +21,7 @@ class DirectNodePath(NodePath):
self.mCoa2Dnp.assign(Mat4.identMat())
#self.mCoa2Dnp.setRow(3, Vec4(center[0], center[1], center[2], 1))
# Transform from nodePath to widget
self.mDnp2Widget = Mat4()
self.mDnp2Widget.assign(Mat4.identMat())
self.tDnp2Widget = TransformState.makeIdentity()
def highlight(self):
self.bbox.show()
@ -168,13 +167,13 @@ class SelectedNodePaths(PandaObject):
self.forEachSelectedNodePathDo(self.getWrt)
def getWrt(self, nodePath):
nodePath.mDnp2Widget.assign(nodePath.getMat(direct.widget))
nodePath.tDnp2Widget = nodePath.getTransform(direct.widget)
def moveWrtWidgetAll(self):
self.forEachSelectedNodePathDo(self.moveWrtWidget)
def moveWrtWidget(self, nodePath):
nodePath.setMat(direct.widget, nodePath.mDnp2Widget)
nodePath.setTransform(direct.widget, nodePath.tDnp2Widget)
def deselectAll(self):
self.forEachSelectedNodePathDo(self.deselect)

View File

@ -642,9 +642,8 @@ class DirectSession(PandaObject):
# Assemble group of changes
undoGroup = []
for nodePath in nodePathList:
m = Mat4()
m.assign(nodePath.getMat())
undoGroup.append([nodePath, m])
t = nodePath.getTransform()
undoGroup.append([nodePath, t])
# Now record group
self.undoList.append(undoGroup)
# Truncate list
@ -670,9 +669,8 @@ class DirectSession(PandaObject):
# Assemble group of changes
redoGroup = []
for nodePath in nodePathList:
m = Mat4()
m.assign(nodePath.getMat())
redoGroup.append([nodePath, m])
t = nodePath.getTransform()
redoGroup.append([nodePath, t])
# Now record redo group
self.redoList.append(redoGroup)
# Truncate list
@ -701,7 +699,7 @@ class DirectSession(PandaObject):
# Now undo xform for group
for pose in undoGroup:
# Undo xform
pose[0].setMat(pose[1])
pose[0].setTransform(pose[1])
# Alert anyone who cares
messenger.send('DIRECT_undo')
@ -714,7 +712,7 @@ class DirectSession(PandaObject):
self.pushUndo(nodePathList, fResetRedo = 0)
# Redo xform
for pose in redoGroup:
pose[0].setMat(pose[1])
pose[0].setTransform(pose[1])
# Alert anyone who cares
messenger.send('DIRECT_redo')