Skip to content
Snippets Groups Projects
Commit 16226a15 authored by Thomas Vierjahn's avatar Thomas Vierjahn
Browse files

Reorder functions

#372
parent baa53c73
No related branches found
No related tags found
1 merge request!104Feature/#299 check with the cppcheck developers why it complains about passing shared ptr by value
......@@ -53,42 +53,6 @@ OpenVRControllerSystem::OpenVRControllerSystem(Engine* engine,
resource_manager.RegisterResourceType("openVR", std::move(openvr_loader));
}
Entity* OpenVRControllerSystem::AddControllerEntity(
phx::Scene* scene, ResourcePointer<Mesh> mesh,
ResourcePointer<Material> material, OpenVRControllerBehavior::Side side) {
Entity* controller = scene->CreateEntity();
controller->AddComponent<MeshHandle>()->SetMesh(mesh);
controller->AddComponent<Transform>();
controller->AddComponent<MaterialHandle>()->SetMaterial(material);
controller->AddComponent<OpenVRControllerBehavior>()->SetSide(side);
return controller;
}
Entity* OpenVRControllerSystem::AddController(
phx::Scene* scene, OpenVRControllerBehavior::Side side) {
auto& resource_manager = ResourceManager::instance();
std::string side_string =
side == OpenVRControllerBehavior::LEFT ? "left" : "right";
ResourceDeclaration mesh_declaration{
{"TYPE", "openVR"}, {"OpenVR_type", "mesh"}, {"side", side_string}};
auto mesh =
ResourceManager::instance().DeclareResource<Mesh>(mesh_declaration);
mesh.Load();
ResourceDeclaration material_declaration{
{"TYPE", "openVR"}, {"OpenVR_type", "material"}, {"side", side_string}};
auto material =
resource_manager.DeclareResource<Material>(material_declaration);
material.Load();
if (mesh != nullptr) {
return AddControllerEntity(scene, mesh, material, side);
}
return nullptr;
}
void OpenVRControllerSystem::Update(const FrameTimer::TimeInfo&) {
// check which controllers are active and update their scene representation,
// if necessary
......@@ -142,4 +106,40 @@ void OpenVRControllerSystem::Update(const FrameTimer::TimeInfo&) {
}
}
Entity* OpenVRControllerSystem::AddController(
phx::Scene* scene, OpenVRControllerBehavior::Side side) {
auto& resource_manager = ResourceManager::instance();
std::string side_string =
side == OpenVRControllerBehavior::LEFT ? "left" : "right";
ResourceDeclaration mesh_declaration{
{"TYPE", "openVR"}, {"OpenVR_type", "mesh"}, {"side", side_string}};
auto mesh =
ResourceManager::instance().DeclareResource<Mesh>(mesh_declaration);
mesh.Load();
ResourceDeclaration material_declaration{
{"TYPE", "openVR"}, {"OpenVR_type", "material"}, {"side", side_string}};
auto material =
resource_manager.DeclareResource<Material>(material_declaration);
material.Load();
if (mesh != nullptr) {
return AddControllerEntity(scene, mesh, material, side);
}
return nullptr;
}
Entity* OpenVRControllerSystem::AddControllerEntity(
phx::Scene* scene, ResourcePointer<Mesh> mesh,
ResourcePointer<Material> material, OpenVRControllerBehavior::Side side) {
Entity* controller = scene->CreateEntity();
controller->AddComponent<MeshHandle>()->SetMesh(mesh);
controller->AddComponent<Transform>();
controller->AddComponent<MaterialHandle>()->SetMaterial(material);
controller->AddComponent<OpenVRControllerBehavior>()->SetSide(side);
return controller;
}
} // namespace phx
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment