Simulation Industry

Virtual Reality

IKEA is evaluating bringing more realism in the interior design with the help virtual reality that will allow people to not only experience a full 360° view, but to also experience walking around the virtual models and feel measurement.See video on ’YouTube’.

Below meshing of the complete room (floor, cabinet, …)

FBX autodesk API to create the meshing …

// main algorithm 
	bool SimpleApplication::createCompleteRoom(FbxManager* g_SdkManager, FbxScene* pScene)
	{
		bool w_ret = false;

		std::cout << "Starting the extract procedure of the complete room\n";

		// sanity check, make sure scene exist
		assert(nullptr != pScene->GetRootNode());
		size_t w_sceneChildCount = pScene->GetRootNode()->GetChildCount();

		// --- create Room with nothing in it (empty room)
		FbxNode* w_roomStuffNode = createRoomStuff(g_SdkManager, pScene);
		assert( nullptr != w_roomStuffNode);
#if 1
		// --- createItemsFloor
		FbxNode* w_itemsFloorNode = createFloorItems(g_SdkManager, pScene);
		assert(nullptr != w_itemsFloorNode);
		std::cout << "Room extracted succesfully\n";

		// NOTE: Room is base node of the cabinet (parent node)
		// add Items_Floor (group node)
		w_roomStuffNode->AddChild(w_itemsFloorNode);
#endif // testing purpose

		// --- add nodes to scene
		pScene->GetRootNode()->AddChild(w_roomStuffNode);

		// clean model (removing BBox) not needed 
		if (FbxNode* w_foundIt = pScene->GetRootNode()->FindChild("Obstacles"))
		{
			std::cout << "Found a node which belongs to BBox";
			// returns child count
			size_t w_obsTclChild = w_foundIt->GetChildCount();
			do
			{
				FbxNode* w_child2rem = w_foundIt->FindChild("Mesh");
				FbxNode* w_remChild = w_foundIt->RemoveChild(w_child2rem);
			} while (--w_obsTclChild);
			assert(0 == w_foundIt->GetChildCount());

			std::cout << "Let's remove i for now\n";
			FbxNode* w_remNode = pScene->GetRootNode()->RemoveChild(w_foundIt);
			std::cout << "Node removed is: " << w_remNode->GetName() << "\n";
		}

		const char* w_EmptyRoom = "CompleteRoomDebug.fbx";
		if( Export(w_EmptyRoom, g_SdkManager, pScene, -1) == true)
		{
			// don't forget to delete the SdkManager 
			// and all objects created by the SDK manager
			DestroySdkObjects(g_SdkManager, true);
			w_ret = true;
		}
		else // could not create the scene
		{
			std::cerr << "Could not create scene to export\n";
			DestroySdkObjects(g_SdkManager, false);
			w_ret = false;
		}

		std::cout << "Finished exporting fbx scene to file\n";

		return w_ret;
	}

Below video showing the final product

Surgical Training Simulator

To be completed