|
@@ -75,6 +75,9 @@ class ObjectMgrBase:
|
|
|
if parent is None:
|
|
if parent is None:
|
|
|
parent = self.editor.NPParent
|
|
parent = self.editor.NPParent
|
|
|
|
|
|
|
|
|
|
+ if uid is None:
|
|
|
|
|
+ uid = self.genUniqueId()
|
|
|
|
|
+
|
|
|
if self.editor:
|
|
if self.editor:
|
|
|
objDef = self.editor.objectPalette.findItem(typeName)
|
|
objDef = self.editor.objectPalette.findItem(typeName)
|
|
|
if objDef is None:
|
|
if objDef is None:
|
|
@@ -132,6 +135,7 @@ class ObjectMgrBase:
|
|
|
except:
|
|
except:
|
|
|
newobjModel = loader.loadModel(Filename.fromOsSpecific(model).getFullpath(), okMissing=True)
|
|
newobjModel = loader.loadModel(Filename.fromOsSpecific(model).getFullpath(), okMissing=True)
|
|
|
if newobjModel:
|
|
if newobjModel:
|
|
|
|
|
+ self.flatten(newobjModel, model, objDef, uid)
|
|
|
newobj = PythonNodePath(newobjModel)
|
|
newobj = PythonNodePath(newobjModel)
|
|
|
else:
|
|
else:
|
|
|
newobj = None
|
|
newobj = None
|
|
@@ -163,9 +167,6 @@ class ObjectMgrBase:
|
|
|
newobj.reparentTo(parent)
|
|
newobj.reparentTo(parent)
|
|
|
newobj.setTag('OBJRoot','1')
|
|
newobj.setTag('OBJRoot','1')
|
|
|
|
|
|
|
|
- if uid is None:
|
|
|
|
|
- uid = self.genUniqueId()
|
|
|
|
|
-
|
|
|
|
|
# populate obj data using default values
|
|
# populate obj data using default values
|
|
|
properties = {}
|
|
properties = {}
|
|
|
for key in objDef.properties.keys():
|
|
for key in objDef.properties.keys():
|
|
@@ -385,10 +386,12 @@ class ObjectMgrBase:
|
|
|
base.direct.deselectAllCB()
|
|
base.direct.deselectAllCB()
|
|
|
|
|
|
|
|
objNP = obj[OG.OBJ_NP]
|
|
objNP = obj[OG.OBJ_NP]
|
|
|
|
|
+ objDef = obj[OG.OBJ_DEF]
|
|
|
objRGBA = obj[OG.OBJ_RGBA]
|
|
objRGBA = obj[OG.OBJ_RGBA]
|
|
|
|
|
+ uid = obj[OG.OBJ_UID]
|
|
|
|
|
|
|
|
# load new model
|
|
# load new model
|
|
|
- if obj[OG.OBJ_DEF].actor:
|
|
|
|
|
|
|
+ if objDef.actor:
|
|
|
try:
|
|
try:
|
|
|
newobj = Actor(model)
|
|
newobj = Actor(model)
|
|
|
except:
|
|
except:
|
|
@@ -398,6 +401,7 @@ class ObjectMgrBase:
|
|
|
if newobjModel is None:
|
|
if newobjModel is None:
|
|
|
print "Can't load model %s"%model
|
|
print "Can't load model %s"%model
|
|
|
return
|
|
return
|
|
|
|
|
+ self.flatten(newobjModel, model, objDef, uid)
|
|
|
newobj = PythonNodePath(newobjModel)
|
|
newobj = PythonNodePath(newobjModel)
|
|
|
newobj.setTag('OBJRoot','1')
|
|
newobj.setTag('OBJRoot','1')
|
|
|
|
|
|
|
@@ -762,3 +766,7 @@ class ObjectMgrBase:
|
|
|
self.editor.ui.sceneGraphUI.delete(uid)
|
|
self.editor.ui.sceneGraphUI.delete(uid)
|
|
|
newobj = self.addNewObject(typeName, uid, parent=parentNP, fSelectObject=False)
|
|
newobj = self.addNewObject(typeName, uid, parent=parentNP, fSelectObject=False)
|
|
|
newobj.setMat(mat)
|
|
newobj.setMat(mat)
|
|
|
|
|
+
|
|
|
|
|
+ def flatten(self, newobjModel, objDef, uid):
|
|
|
|
|
+ # override this to flatten models
|
|
|
|
|
+ pass
|