Skip to content
Snippets Groups Projects

Feature/#459 default primitives

Closed Jan Delember requested to merge feature/#459_default_primitives into stable
10 files
+ 268
25
Compare changes
  • Side-by-side
  • Inline

Files

@@ -40,6 +40,7 @@
#include "phx/rendering/components/mesh_render_settings.hpp"
#include "phx/resources/loaders/assimp_model_loader.hpp"
#include "phx/resources/loaders/scene_loader.hpp"
#include "phx/resources/resource_utils.hpp"
#include "phx/setup.hpp"
#include "vr_controller_interaction_behavior.hpp"
@@ -55,6 +56,7 @@ int main(int, char**) {
auto openvr_system = engine->GetSystem<phx::DisplaySystemOpenVR>();
auto device_system = engine->GetSystem<phx::DeviceSystem>();
phx::SplashScreen* splash = engine->CreateSystem<phx::SplashScreen>(
engine->GetSystem<phx::DisplaySystemWindow>()->GetWindow());
engine->MoveSystemBefore(splash,
@@ -85,8 +87,8 @@ int main(int, char**) {
auto handle = std::async([&right_interaction_behavior, &scene,
rendering_system, splash, input_system,
openvr_system]() {
auto model_surface_entity = phx::SceneLoader::InsertModelIntoScene(
"models/combustion/mixture_surface_0.2_lower.stl", scene.get());
auto model_surface_entity =
phx::SceneLoader::InsertModelIntoScene("models/bunny.obj", scene.get());
auto surface_transform =
model_surface_entity->GetFirstComponent<phx::Transform>();
auto surface_material_handle =
@@ -125,36 +127,34 @@ int main(int, char**) {
vis_root_transform->SetLocalScale(glm::vec3(0.001f, 0.001f, 0.001f));
vis_root_transform->SetLocalTranslation(glm::vec3(-0.4f, 0.02f, -0.25f));
auto floor_entity = phx::SceneLoader::InsertModelIntoScene(
"models/cube/cube.obj", scene.get());
auto floor_transform = floor_entity->GetFirstComponent<phx::Transform>();
floor_transform->SetLocalScale(glm::vec3(1000.0f, 0.05f, 1000.0f));
auto floor_material = floor_transform->GetChild(0)
->GetEntity()
->GetFirstComponent<phx::MaterialHandle>();
floor_material->GetMaterial()->SetDiffuseColor(glm::vec3(0.5f, 0.5f, 0.5f));
floor_material->GetMaterial()->SetSpecularColor(
glm::vec3(1.0f, 1.0f, 1.0f));
floor_material->GetMaterial()->SetAmbientColor(glm::vec3(0.1f, 0.1f, 0.1f));
auto floor_resource =
phx::ResourceUtils::LoadBox("box", glm::vec3(5.0f, 0.5f, 5.0f));
auto floor_entity =
phx::SceneLoader::InsertMeshIntoScene(floor_resource, scene.get());
auto floor_material = floor_entity->AddComponent<phx::MaterialHandle>();
auto floor_material_resource = phx::ResourceUtils::LoadGenericMaterial(
"floor_material", glm::vec3(0.5f, 0.05f, 0.5f),
glm::vec3(1.0f, 1.0f, 1.0f), glm::vec3(0.1f, 0.1f, 0.1f));
floor_material->SetMaterial(floor_material_resource);
if (right_interaction_behavior)
right_interaction_behavior->SetTarget(vis_root_transform);
auto desk_entity = phx::SceneLoader::InsertModelIntoScene(
"models/cube/cube2.obj", scene.get());
auto desk_resource =
phx::ResourceUtils::LoadBox("box", glm::vec3(2.0f, 0.03f, 1.0f));
auto desk_entity =
phx::SceneLoader::InsertMeshIntoScene(desk_resource, scene.get());
auto desk_material = desk_entity->AddComponent<phx::MaterialHandle>();
auto desk_material_resource = phx::ResourceUtils::LoadGenericMaterial(
"desk_material", glm::vec3(0.5f, 1.0f, 0.5f),
glm::vec3(1.0f, 1.0f, 1.0f), glm::vec3(0.1f, 0.2f, 0.1f));
desk_material->SetMaterial(desk_material_resource);
auto desk_transform = desk_entity->GetFirstComponent<phx::Transform>();
desk_transform->SetLocalScale(glm::vec3(2.0f, 0.03f, 1.0f));
auto desk_material = desk_transform->GetChild(0)
->GetEntity()
->GetFirstComponent<phx::MaterialHandle>();
desk_material->GetMaterial()->SetDiffuseColor(glm::vec3(0.5f, 1.0f, 0.5f));
desk_material->GetMaterial()->SetSpecularColor(glm::vec3(1.0f, 1.0f, 1.0f));
desk_material->GetMaterial()->SetAmbientColor(glm::vec3(0.1f, 0.2f, 0.1f));
desk_transform->SetLocalTranslation(glm::vec3(0.0f, 0.8f, 0.0f));
auto desk_root = scene->CreateEntity();
auto desk_root_transform = desk_root->AddComponent<phx::Transform>();
desk_root_transform->SetLocalTranslation(glm::vec3(0.0f, 0.8f, 0.0f));
desk_transform->SetParent(desk_root_transform, false);
vis_root_transform->SetParent(desk_root_transform, false);
desk_root->AddComponent<DeskBehavior>(openvr_system);
Loading