|
@@ -147,7 +147,7 @@ class ObjectMgr:
|
|
|
if fSelectObject:
|
|
if fSelectObject:
|
|
|
self.editor.select(newobj, fUndo=0)
|
|
self.editor.select(newobj, fUndo=0)
|
|
|
self.editor.ui.sceneGraphUI.add(newobj)
|
|
self.editor.ui.sceneGraphUI.add(newobj)
|
|
|
-
|
|
|
|
|
|
|
+ self.editor.fNeedToSave = True
|
|
|
return newobj
|
|
return newobj
|
|
|
|
|
|
|
|
def removeObjectByNodePath(self, nodePath):
|
|
def removeObjectByNodePath(self, nodePath):
|
|
@@ -160,6 +160,7 @@ class ObjectMgr:
|
|
|
for child in nodePath.getChildren():
|
|
for child in nodePath.getChildren():
|
|
|
if child.hasTag('OBJRoot'):
|
|
if child.hasTag('OBJRoot'):
|
|
|
self.removeObjectByNodePath(child)
|
|
self.removeObjectByNodePath(child)
|
|
|
|
|
+ self.editor.fNeedToSave = True
|
|
|
|
|
|
|
|
def findObjectById(self, uid):
|
|
def findObjectById(self, uid):
|
|
|
return self.objects.get(uid)
|
|
return self.objects.get(uid)
|
|
@@ -195,13 +196,16 @@ class ObjectMgr:
|
|
|
objDef = obj[OG.OBJ_DEF]
|
|
objDef = obj[OG.OBJ_DEF]
|
|
|
objProp = obj[OG.OBJ_PROP]
|
|
objProp = obj[OG.OBJ_PROP]
|
|
|
self.editor.ui.objectPropertyUI.updateProps(obj)
|
|
self.editor.ui.objectPropertyUI.updateProps(obj)
|
|
|
-
|
|
|
|
|
|
|
+ self.editor.fNeedToSave = True
|
|
|
|
|
+
|
|
|
def onEnterObjectPropUI(self, event):
|
|
def onEnterObjectPropUI(self, event):
|
|
|
taskMgr.remove('_le_updateObjectUITask')
|
|
taskMgr.remove('_le_updateObjectUITask')
|
|
|
|
|
+ self.editor.ui.wxApp.Unbind(wx.EVT_CHAR)
|
|
|
|
|
|
|
|
def onLeaveObjectPropUI(self, event):
|
|
def onLeaveObjectPropUI(self, event):
|
|
|
self.spawnUpdateObjectUITask()
|
|
self.spawnUpdateObjectUITask()
|
|
|
-
|
|
|
|
|
|
|
+ self.editor.ui.wxApp.Bind(wx.EVT_CHAR, self.editor.ui.onKeyEvent)
|
|
|
|
|
+
|
|
|
def spawnUpdateObjectUITask(self):
|
|
def spawnUpdateObjectUITask(self):
|
|
|
if self.currNodePath is None:
|
|
if self.currNodePath is None:
|
|
|
return
|
|
return
|
|
@@ -290,11 +294,13 @@ class ObjectMgr:
|
|
|
self.editor.actionMgr.push(action)
|
|
self.editor.actionMgr.push(action)
|
|
|
np.remove()
|
|
np.remove()
|
|
|
action()
|
|
action()
|
|
|
-
|
|
|
|
|
|
|
+ self.editor.fNeedToSave = True
|
|
|
|
|
+
|
|
|
def setObjectTransform(self, uid, xformMat):
|
|
def setObjectTransform(self, uid, xformMat):
|
|
|
obj = self.findObjectById(uid)
|
|
obj = self.findObjectById(uid)
|
|
|
if obj:
|
|
if obj:
|
|
|
obj[OG.OBJ_NP].setMat(xformMat)
|
|
obj[OG.OBJ_NP].setMat(xformMat)
|
|
|
|
|
+ self.editor.fNeedToSave = True
|
|
|
|
|
|
|
|
def updateObjectColor(self, r, g, b, a, np=None):
|
|
def updateObjectColor(self, r, g, b, a, np=None):
|
|
|
if np is None:
|
|
if np is None:
|
|
@@ -309,7 +315,8 @@ class ObjectMgr:
|
|
|
child.getName() != 'bboxLines':
|
|
child.getName() != 'bboxLines':
|
|
|
child.setTransparency(1)
|
|
child.setTransparency(1)
|
|
|
child.setColorScale(r, g, b, a)
|
|
child.setColorScale(r, g, b, a)
|
|
|
-
|
|
|
|
|
|
|
+ self.editor.fNeedToSave = True
|
|
|
|
|
+
|
|
|
def updateObjectModel(self, model, obj, fSelectObject=True):
|
|
def updateObjectModel(self, model, obj, fSelectObject=True):
|
|
|
""" replace object's model """
|
|
""" replace object's model """
|
|
|
if obj[OG.OBJ_MODEL] != model:
|
|
if obj[OG.OBJ_MODEL] != model:
|
|
@@ -348,6 +355,8 @@ class ObjectMgr:
|
|
|
if fSelectObject:
|
|
if fSelectObject:
|
|
|
base.direct.select(newobj, fUndo=0)
|
|
base.direct.select(newobj, fUndo=0)
|
|
|
|
|
|
|
|
|
|
+ self.editor.fNeedToSave = True
|
|
|
|
|
+
|
|
|
def updateObjectAnim(self, anim, obj, fSelectObject=True):
|
|
def updateObjectAnim(self, anim, obj, fSelectObject=True):
|
|
|
""" replace object's anim """
|
|
""" replace object's anim """
|
|
|
if obj[OG.OBJ_ANIM] != anim:
|
|
if obj[OG.OBJ_ANIM] != anim:
|
|
@@ -362,6 +371,8 @@ class ObjectMgr:
|
|
|
if fSelectObject:
|
|
if fSelectObject:
|
|
|
base.direct.select(objNP, fUndo=0)
|
|
base.direct.select(objNP, fUndo=0)
|
|
|
|
|
|
|
|
|
|
+ self.editor.fNeedToSave = True
|
|
|
|
|
+
|
|
|
def updateObjectModelFromUI(self, event, obj):
|
|
def updateObjectModelFromUI(self, event, obj):
|
|
|
""" replace object's model with one selected from UI """
|
|
""" replace object's model with one selected from UI """
|
|
|
model = event.GetString()
|
|
model = event.GetString()
|
|
@@ -488,8 +499,10 @@ class ObjectMgr:
|
|
|
self.editor.actionMgr.push(action)
|
|
self.editor.actionMgr.push(action)
|
|
|
action()
|
|
action()
|
|
|
|
|
|
|
|
- if self.editor and fSelectObject:
|
|
|
|
|
- base.direct.select(obj[OG.OBJ_NP], fUndo=0)
|
|
|
|
|
|
|
+ if self.editor:
|
|
|
|
|
+ self.editor.fNeedToSave = True
|
|
|
|
|
+ if fSelectObject:
|
|
|
|
|
+ base.direct.select(obj[OG.OBJ_NP], fUndo=0)
|
|
|
|
|
|
|
|
def updateObjectProperties(self, nodePath, propValues):
|
|
def updateObjectProperties(self, nodePath, propValues):
|
|
|
"""
|
|
"""
|
|
@@ -582,7 +595,6 @@ class ObjectMgr:
|
|
|
# copy other properties
|
|
# copy other properties
|
|
|
for key in obj[OG.OBJ_PROP]:
|
|
for key in obj[OG.OBJ_PROP]:
|
|
|
self.updateObjectPropValue(newObj, key, obj[OG.OBJ_PROP][key])
|
|
self.updateObjectPropValue(newObj, key, obj[OG.OBJ_PROP][key])
|
|
|
-
|
|
|
|
|
return newObjNP
|
|
return newObjNP
|
|
|
|
|
|
|
|
def duplicateChild(self, nodePath, parent):
|
|
def duplicateChild(self, nodePath, parent):
|
|
@@ -605,6 +617,8 @@ class ObjectMgr:
|
|
|
for newNodePath in duplicatedNPs:
|
|
for newNodePath in duplicatedNPs:
|
|
|
base.direct.select(newNodePath, fMultiSelect = 1, fUndo=0)
|
|
base.direct.select(newNodePath, fMultiSelect = 1, fUndo=0)
|
|
|
|
|
|
|
|
|
|
+ self.editor.fNeedToSave = True
|
|
|
|
|
+
|
|
|
def makeSelectedLive(self):
|
|
def makeSelectedLive(self):
|
|
|
obj = self.findObjectByNodePath(base.direct.selected.last)
|
|
obj = self.findObjectByNodePath(base.direct.selected.last)
|
|
|
if obj:
|
|
if obj:
|