mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 09:52:27 -04:00
Made widget be shown in black when non-movable object selected
This commit is contained in:
parent
37df0df5c7
commit
ff36eb76cb
@ -24,6 +24,7 @@ class DirectManipulationControl(DirectObject):
|
||||
self.fWidgetTop = 0
|
||||
self.fFreeManip = 1
|
||||
self.fScaling = 0
|
||||
self.fMovable = 1
|
||||
self.mode = None
|
||||
self.actionEvents = [
|
||||
['DIRECT-mouse1', self.manipulationStart],
|
||||
@ -189,15 +190,30 @@ class DirectManipulationControl(DirectObject):
|
||||
taskMgr.remove('resizeObjectHandles')
|
||||
|
||||
def toggleObjectHandlesMode(self):
|
||||
self.fSetCoa = 1 - self.fSetCoa
|
||||
if self.fSetCoa:
|
||||
self.objectHandles.coaModeColor()
|
||||
if self.fMovable:
|
||||
self.fSetCoa = 1 - self.fSetCoa
|
||||
|
||||
if self.fSetCoa:
|
||||
self.objectHandles.coaModeColor()
|
||||
else:
|
||||
self.objectHandles.manipModeColor()
|
||||
else:
|
||||
self.objectHandles.manipModeColor()
|
||||
self.objectHandles.disabledModeColor()
|
||||
|
||||
def removeManipulateObjectTask(self):
|
||||
taskMgr.remove('manipulateObject')
|
||||
|
||||
def enableWidgetMove(self):
|
||||
self.fMovable = 1
|
||||
if self.fSetCoa:
|
||||
self.objectHandles.coaModeColor()
|
||||
else:
|
||||
self.objectHandles.manipModeColor()
|
||||
|
||||
def disableWidgetMove(self):
|
||||
self.fMovable = 0
|
||||
self.objectHandles.disabledModeColor()
|
||||
|
||||
#--------------------------------------------------------------------------
|
||||
# Function: get edit types list for specified objects which indicate
|
||||
# how editable the objects are
|
||||
@ -662,9 +678,12 @@ class ObjectHandles(NodePath, DirectObject):
|
||||
def coaModeColor(self):
|
||||
self.setColor(.5, .5, .5, 0.5, 1)
|
||||
|
||||
def disabledModeColor(self):
|
||||
self.setColor(0.1,0.1,0.1,0.1,1)
|
||||
|
||||
def manipModeColor(self):
|
||||
self.clearColor()
|
||||
|
||||
|
||||
def toggleWidget(self):
|
||||
if self.fActive:
|
||||
self.deactivate()
|
||||
|
@ -520,6 +520,11 @@ class DirectSession(DirectObject):
|
||||
'Selected:' + dnp.getName())
|
||||
# Show the manipulation widget
|
||||
self.widget.showWidget()
|
||||
editTypes = self.manipulationControl.getEditTypes([dnp])
|
||||
if (editTypes & EDIT_TYPE_UNEDITABLE == EDIT_TYPE_UNEDITABLE):
|
||||
self.manipulationControl.disableWidgetMove()
|
||||
else:
|
||||
self.manipulationControl.enableWidgetMove()
|
||||
# Update camera controls coa to this point
|
||||
# Coa2Camera = Coa2Dnp * Dnp2Camera
|
||||
mCoa2Camera = dnp.mCoa2Dnp * dnp.getMat(self.camera)
|
||||
|
Loading…
x
Reference in New Issue
Block a user