Example #1
0
	GameObjectPtr VoxelWorldTemplate::CreateGameObject()
	{
		GameObjectPtr pObj = m_pManager->CreateGameObject(L"VoxelWorld");

		VoxelWorldPtr pWorld = m_pManager->GetAllocator()->AllocObject<VoxelWorld>(m_pManager);

		pObj->AddComponent(pWorld);

		VoxelWorldRendererPtr pRenderer = m_pManager->GetAllocator()->AllocObject<VoxelWorldRenderer>(m_pManager);
		pObj->AddComponent(pRenderer);

		return pObj;
	}
Example #2
0
	GameObjectPtr Tpl_Sphere::CreateGameObject()
	{
		GameObjectPtr pObj = m_pManager->CreateGameObject(L"Sphere");
		
		MeshDataPtr pMD = boost::shared_dynamic_cast<MeshData>(m_pManager->CreateComponent(L"MeshData"));
		pMD->SetMeshAsset(L"_sphere_");

		pObj->AddComponent(pMD);

		MeshRendererPtr pMR = boost::shared_dynamic_cast<MeshRenderer>(m_pManager->CreateComponent(L"MeshRenderer"));
		pObj->AddComponent(pMR);

		return pObj;
	}
Example #3
0
	GameObjectPtr DirLightTpl::CreateGameObject()
	{
		GameObjectPtr pObj = m_pManager->CreateGameObject(L"Directional Light");

		GameObjectComponentPtr pLight = m_pManager->CreateComponent(L"DirectionalLight");
		pObj->AddComponent(pLight);

		return pObj;
	}
Example #4
0
	GameObjectPtr PointLightTpl::CreateGameObject()
	{
		GameObjectPtr pObj = m_pManager->CreateGameObject(L"Point Light");

		GameObjectComponentPtr pLight = m_pManager->CreateComponent(L"PointLight");
		pObj->AddComponent(pLight);

		return pObj;
	}
Example #5
0
	GameObjectPtr CubeTpl::CreateGameObject()
	{
		GameObjectPtr pObj = m_pManager->CreateGameObject(L"Cube");
		
		RenderSystemPtr pRS = m_pManager->GetRenderSystem();


		MaterialPtr pMaterial = pRS->CreateMaterialFromFile("./assets/standard/material/editor_shape.fx");
		MeshPtr pMesh = MeshUtil::CreateCube(2, pMaterial);

		MeshDataPtr pMD = boost::shared_dynamic_cast<MeshData>(m_pManager->CreateComponent(L"MeshData"));
		pMD->SetMesh(pMesh);

		pObj->AddComponent(pMD);

		MeshRendererPtr pMR = boost::shared_dynamic_cast<MeshRenderer>(m_pManager->CreateComponent(L"MeshRenderer"));
		pObj->AddComponent(pMR);

		return pObj;
	}
Example #6
0
	void FbxParser::LoadMesh(GameObjectPtr node, FbxNode * fbxNode)
	{
		FbxMesh* fbxMesh = static_cast<FbxMesh*>(fbxNode->GetNodeAttribute());

		auto mesh = CreateMesh(node, fbxNode);

		auto renderer = MeshRender::Create();
		renderer->mMesh = mesh;
		renderer->mMaterial = Material::Create();
		node->AddComponent(renderer);
	}
Example #7
0
	bool Scene::UnSerializeObject(GameObjectPtr pObj, DataStream* pStream)
	{
		std::string name;
		pStream->ReadString(name);
		pObj->SetName(name);

		math::Matrix44 local;
		pStream->Read(&local, sizeof(local));
		pObj->SetLocalTransform(local);

		uint16 nCom = 0;
		nCom = pStream->ReadInt16();

		for(uint16 i = 0; i < nCom; ++i)
		{
			std::string comName;
			pStream->ReadString(comName);

			
			GameObjectComponentPtr pCom = m_pObjectManager->CreateComponent(comName);
			if(pCom == nullptr)
			{
				logger() << "failed to create component: " << comName << "\n";
				return false;
			}
			pObj->AddComponent(pCom);

			if(false == pCom->UnSerialize(pStream))
			{
				logger() << "failed to load component: " << comName << "\n";
				return false;
			}

		}
		
		uint16 nChild = 0;
		nChild = pStream->ReadInt16();
		for(uint16 i = 0; i < nChild; ++i)
		{
			GameObjectPtr pChild = m_pObjectManager->CreateGameObject("");
			if(false == UnSerializeObject(pChild, pStream))
			{
				pChild->Clear();
				pChild.reset();
				return false;
			}
			pChild->LinkTo(pObj);
		}
		
		return true;
	}
Example #8
0
GameObjectPtr Tpl_SkyLight::CreateGameObject()
{
    GameObjectPtr pObj = m_pManager->CreateGameObject("Sky Light");

    GameObjectComponentPtr pLight = m_pManager->CreateComponent("SkyLight");

    if(false == pObj->AddComponent(pLight))
    {
        pObj->Clear();
        pObj.reset();
        return GameObjectPtr();
    }

    return pObj;
}
Example #9
0
engine::GameObjectPtr GameScene::CreateObject(const std::wstring& name)
{
	using namespace engine;

	CString full_name;

	full_name.Format(L"%s-%d", name.c_str(), m_objNo);

	GameObjectPtr pObj = m_pCore->CreateGameObject(full_name.GetString());

	GameObjectComponentPtr pPM = CreateGameObjectComponent(L"DT_Gizmo");
	pObj->AddComponent(pPM);

	m_objNo++;
	return pObj;
}
Example #10
0
void CMainFrame::OnComponentMenu(UINT nID)
{
	using namespace engine;
	ExtPackage::ComponentClass* pClass = FindClassByMenuID(nID);

	GameObjectPtr pObj = Project::Instance()->GetSelObject();

	if(pObj->GetComponent(pClass->m_name) != GameObjectComponentPtr())
	{
		CString str = pClass->m_name.c_str() + CString(L" can only be added once per object");
		MessageBox(str, L"Component Error", MB_ICONERROR);
		return;
	}

	GameObjectComponentPtr pCom = Project::Instance()->CreateGameObjectComponent(pClass->m_name);

	pObj->AddComponent(pCom);

	UpdatePropGrid(pObj);
	return;
}