Bläddra i källkod

Use UnitResource data to set poses of objects

Daniele Bartolini 12 år sedan
förälder
incheckning
61eb531ef0
1 ändrade filer med 8 tillägg och 10 borttagningar
  1. 8 10
      engine/Unit.cpp

+ 8 - 10
engine/Unit.cpp

@@ -72,28 +72,28 @@ UnitId Unit::id()
 //-----------------------------------------------------------------------------
 void Unit::create(const Matrix4x4& pose)
 {
-	// Create the root node
-	int32_t root_node = m_scene_graph.create_node(-1, pose);
+	// Create the scene graph
+	m_scene_graph.create(m_resource->num_scene_graph_nodes(), m_resource->scene_graph_names(),
+							m_resource->scene_graph_poses(), m_resource->scene_graph_parents());
+
 	int32_t p_root_node = m_physics_graph.create_node(-1, pose);
 
 	// Create renderables
 	for (uint32_t i = 0; i < m_resource->num_renderables(); i++)
 	{
-		int32_t node = m_scene_graph.create_node(root_node, Vector3::ZERO, Quaternion::IDENTITY);
-
 		UnitRenderable renderable = m_resource->get_renderable(i);
 
 		switch (renderable.type)
 		{
 			case UnitRenderable::MESH:
 			{
-				MeshId mesh = m_world.create_mesh(renderable.resource, m_scene_graph, node);
+				MeshId mesh = m_world.create_mesh(renderable.resource, m_scene_graph, renderable.node);
 				add_mesh(renderable.name, mesh);
 				break;
 			}
 			case UnitRenderable::SPRITE:
 			{
-				SpriteId sprite = m_world.create_sprite(renderable.resource, m_scene_graph, node);
+				SpriteId sprite = m_world.create_sprite(renderable.resource, m_scene_graph, renderable.node);
 				add_sprite(renderable.name, sprite);
 				break;
 			}
@@ -108,11 +108,9 @@ void Unit::create(const Matrix4x4& pose)
 	// Create cameras
 	for (uint32_t i = 0; i < m_resource->num_cameras(); i++)
 	{
-		const int32_t cam_node = m_scene_graph.create_node(root_node, Vector3::ZERO, Quaternion::IDENTITY);
-
 		UnitCamera camera = m_resource->get_camera(i);
-		CameraId cam = m_world.create_camera(m_scene_graph, cam_node);
-		
+		CameraId cam = m_world.create_camera(m_scene_graph, camera.node);
+
 		add_camera(camera.name, cam);
 	}