Integrating latest 47acbe8
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
"""
|
||||
All or portions of this file Copyright (c) Amazon.com, Inc. or its affiliates or
|
||||
its licensors.
|
||||
|
||||
For complete copyright and license terms please see the LICENSE at the root of this
|
||||
distribution (the "License"). All use of this software is governed by the License,
|
||||
or, if provided, by the license below or the license accompanying this file. Do not
|
||||
remove or modify any license notices. This file is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
"""
|
||||
import azlmbr.scene as sceneApi
|
||||
from scene_api import scene_data as sceneData
|
||||
|
||||
def update_manifest(scene):
|
||||
graph = sceneData.SceneGraph(scene.graph)
|
||||
rootNode = graph.get_root()
|
||||
kidNode = graph.get_node_child(rootNode)
|
||||
chunkNameList = []
|
||||
|
||||
siblingNode = graph.get_node_child(kidNode)
|
||||
while siblingNode.IsValid():
|
||||
chunkGraphName = sceneData.SceneGraphName(graph.get_node_name(siblingNode))
|
||||
chunkName = chunkGraphName.get_name()
|
||||
chunkNameList.append(chunkName)
|
||||
siblingNode = graph.get_node_sibling(siblingNode)
|
||||
|
||||
sceneManifest = sceneData.SceneManifest()
|
||||
|
||||
for activeMeshIndex in range(len(chunkNameList)):
|
||||
meshGroup = sceneManifest.add_mesh_group(chunkNameList[activeMeshIndex])
|
||||
sceneManifest.mesh_group_add_comment(meshGroup, 'auto generated by test_chunks_builder')
|
||||
sceneManifest.mesh_group_set_origin(meshGroup, None, 0, 0, 0, 1.0)
|
||||
for meshIndex in range(len(chunkNameList)):
|
||||
if (activeMeshIndex == meshIndex):
|
||||
sceneManifest.mesh_group_select_node(meshGroup, chunkNameList[meshIndex])
|
||||
else:
|
||||
sceneManifest.mesh_group_unselect_node(meshGroup, chunkNameList[meshIndex])
|
||||
|
||||
return sceneManifest.export()
|
||||
|
||||
mySceneJobHandler = None
|
||||
|
||||
def on_update_manifest(args):
|
||||
scene = args[0]
|
||||
result = update_manifest(scene)
|
||||
global mySceneJobHandler
|
||||
mySceneJobHandler.disconnect()
|
||||
mySceneJobHandler = None
|
||||
return result
|
||||
|
||||
def main():
|
||||
global mySceneJobHandler
|
||||
mySceneJobHandler = sceneApi.ScriptBuildingNotificationBusHandler()
|
||||
mySceneJobHandler.connect()
|
||||
mySceneJobHandler.add_callback('OnUpdateManifest', on_update_manifest)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user