Skip to content
Snippets Groups Projects
Commit 7dedccdb authored by Sebastian Pape's avatar Sebastian Pape
Browse files

Worked on menus

parent 7c17201b
No related branches found
No related tags found
No related merge requests found
Showing
with 100 additions and 30 deletions
...@@ -44,7 +44,7 @@ LaserMenu::LaserMenu(phx::Scene* scene, phx::Engine* engine) { ...@@ -44,7 +44,7 @@ LaserMenu::LaserMenu(phx::Scene* scene, phx::Engine* engine) {
} }
} }
MenuHelper::createButtonPairVertical(up_p_, down_p_, text_p_, -0.1f, -0.025f, MenuHelper::createButtonPairVertical(up_p_, down_p_, text_p_, -0.1f, -0.05f,
scene, engine, entity_); scene, engine, entity_);
up_p_->SetOnPress([rayPass, this](phx::Transform*, glm::mat4) { up_p_->SetOnPress([rayPass, this](phx::Transform*, glm::mat4) {
rayPass->NextLaserPattern(); rayPass->NextLaserPattern();
...@@ -65,11 +65,11 @@ LaserMenu::LaserMenu(phx::Scene* scene, phx::Engine* engine) { ...@@ -65,11 +65,11 @@ LaserMenu::LaserMenu(phx::Scene* scene, phx::Engine* engine) {
switch_tir_->GetTransform()->SetParent( switch_tir_->GetTransform()->SetParent(
entity_->GetFirstComponent<phx::Transform>(), false); entity_->GetFirstComponent<phx::Transform>(), false);
switch_tir_->GetTransform()->SetLocalTranslation( switch_tir_->GetTransform()->SetLocalTranslation(
glm::vec3(-0.001f, -0.05f, 0.1f)); glm::vec3(0.0f, -0.075f, 0.1f));
auto text_entity = scene->CreateEntity(); auto text_entity = scene->CreateEntity();
text_entity->AddComponent<phx::Transform>() text_entity->AddComponent<phx::Transform>()
->Translate(glm::vec3(-0.001f, -0.025f, 0.1f)) ->Translate(glm::vec3(-0.001f, -0.05f, 0.1f))
.SetLocalRotationEuler(glm::vec3(180, -90, 0)) .SetLocalRotationEuler(glm::vec3(180, -90, 0))
.SetParent(entity_->GetFirstComponent<phx::Transform>()); .SetParent(entity_->GetFirstComponent<phx::Transform>());
text_tir_ = text_entity->AddComponent<phx::Text>("", 0.006f); text_tir_ = text_entity->AddComponent<phx::Text>("", 0.006f);
...@@ -86,11 +86,11 @@ LaserMenu::LaserMenu(phx::Scene* scene, phx::Engine* engine) { ...@@ -86,11 +86,11 @@ LaserMenu::LaserMenu(phx::Scene* scene, phx::Engine* engine) {
switch_tw_->GetTransform()->SetParent( switch_tw_->GetTransform()->SetParent(
entity_->GetFirstComponent<phx::Transform>(), false); entity_->GetFirstComponent<phx::Transform>(), false);
switch_tw_->GetTransform()->SetLocalTranslation( switch_tw_->GetTransform()->SetLocalTranslation(
glm::vec3(-0.001f, -0.05f, 0.0f)); glm::vec3(0.0f, -0.025f, 0.0f));
auto text_entity2 = scene->CreateEntity(); auto text_entity2 = scene->CreateEntity();
text_entity2->AddComponent<phx::Transform>() text_entity2->AddComponent<phx::Transform>()
->Translate(glm::vec3(-0.001f, -0.025f, 0.0f)) ->Translate(glm::vec3(-0.001f, -0.05f, 0.0f))
.SetLocalRotationEuler(glm::vec3(180, -90, 0)) .SetLocalRotationEuler(glm::vec3(180, -90, 0))
.SetParent(entity_->GetFirstComponent<phx::Transform>()); .SetParent(entity_->GetFirstComponent<phx::Transform>());
text_tw_ = text_entity2->AddComponent<phx::Text>("", 0.006f); text_tw_ = text_entity2->AddComponent<phx::Text>("", 0.006f);
...@@ -102,8 +102,8 @@ LaserMenu::LaserMenu(phx::Scene* scene, phx::Engine* engine) { ...@@ -102,8 +102,8 @@ LaserMenu::LaserMenu(phx::Scene* scene, phx::Engine* engine) {
clear_target_->GetTransform()->SetParent( clear_target_->GetTransform()->SetParent(
entity_->GetFirstComponent<phx::Transform>(), false); entity_->GetFirstComponent<phx::Transform>(), false);
clear_target_->GetTransform()->SetLocalRotationEuler(glm::vec3(0, -90, 90)); clear_target_->GetTransform()->SetLocalRotationEuler(glm::vec3(0, -90, 90));
clear_target_->GetTransform()->SetLocalScale(glm::vec3(0.03f, 0.01f, 0.03f)); clear_target_->GetTransform()->SetLocalScale(glm::vec3(0.06f, 0.01f, 0.017f));
clear_target_->GetTransform()->SetLocalTranslation(glm::vec3(0)); clear_target_->GetTransform()->SetLocalTranslation(glm::vec3(0.0f,-0.075f,0.0f));
clear_target_->SetHoldable(false); clear_target_->SetHoldable(false);
clear_target_->SetOnPress( clear_target_->SetOnPress(
[this, rayPass](phx::Transform*, glm::mat4) { rayPass->clearTargetBuffers(); }); [this, rayPass](phx::Transform*, glm::mat4) { rayPass->clearTargetBuffers(); });
......
...@@ -31,18 +31,16 @@ MenuButton::MenuButton(phx::Engine* engine, phx::Scene* scene, TYPE type) { ...@@ -31,18 +31,16 @@ MenuButton::MenuButton(phx::Engine* engine, phx::Scene* scene, TYPE type) {
} }
phx::MaterialHandle* outer = nullptr; phx::MaterialHandle* outer = nullptr;
phx::MaterialHandle* face = nullptr;
auto transform = entity_->GetFirstComponent<phx::Transform>(); auto transform = entity_->GetFirstComponent<phx::Transform>();
for (auto i = 0u; i < transform->GetChildCount(); i++) { for (auto i = 0u; i < transform->GetChildCount(); i++) {
auto handle = transform->GetChild(i) auto handle = transform->GetChild(i)
->GetEntity() ->GetEntity()
->GetFirstComponent<phx::MaterialHandle>(); ->GetFirstComponent<phx::MaterialHandle>();
if (handle->GetMaterial()->GetName().compare("Base") == 0) { if (handle->GetMaterial()->GetName().compare("ButtonBase") == 0) {
outer = handle; outer = handle;
} }
if (handle->GetMaterial()->GetName().compare("Image") == 0) { if (handle->GetMaterial()->GetName().compare("Image") == 0) {
face = handle; face_ = handle;
} }
} }
...@@ -53,6 +51,9 @@ MenuButton::MenuButton(phx::Engine* engine, phx::Scene* scene, TYPE type) { ...@@ -53,6 +51,9 @@ MenuButton::MenuButton(phx::Engine* engine, phx::Scene* scene, TYPE type) {
outer->SetMaterial(MenuHelper::cloneMaterial( outer->SetMaterial(MenuHelper::cloneMaterial(
outer->GetMaterial(), outer->GetMaterial(),
std::string("Button_Material_") + std::to_string(id))); std::string("Button_Material_") + std::to_string(id)));
face_->SetMaterial(MenuHelper::cloneMaterial(
face_->GetMaterial(),
std::string("Button_Face_Material_") + std::to_string(id)));
outer->GetMaterial()->SetAmbientColor(color_unhovered); outer->GetMaterial()->SetAmbientColor(color_unhovered);
outer->GetMaterial()->SetDiffuseColor(color_unhovered); outer->GetMaterial()->SetDiffuseColor(color_unhovered);
...@@ -122,3 +123,7 @@ MenuButton::MenuButton(phx::Engine* engine, phx::Scene* scene, TYPE type) { ...@@ -122,3 +123,7 @@ MenuButton::MenuButton(phx::Engine* engine, phx::Scene* scene, TYPE type) {
} }
MenuButton::~MenuButton() {} MenuButton::~MenuButton() {}
void MenuButton::SetImage(phx::ResourcePointer<phx::Image> image) {
face_->GetMaterial()->SetAmbientImage(image);
}
...@@ -11,6 +11,8 @@ SUPPRESS_WARNINGS_END ...@@ -11,6 +11,8 @@ SUPPRESS_WARNINGS_END
#include "phx/core/entity.hpp" #include "phx/core/entity.hpp"
#include "phx/core/scene.hpp" #include "phx/core/scene.hpp"
#include "phx/rendering/components/transform.hpp" #include "phx/rendering/components/transform.hpp"
#include "phx/resources/types/image.hpp"
#include "phx/rendering/components/material_handle.hpp"
class MenuButton { class MenuButton {
public: public:
...@@ -33,6 +35,8 @@ class MenuButton { ...@@ -33,6 +35,8 @@ class MenuButton {
void SetHoldable(bool active) { holdable_ = active; }; void SetHoldable(bool active) { holdable_ = active; };
void SetImage(phx::ResourcePointer<phx::Image> image);
private: private:
phx::Entity* entity_; phx::Entity* entity_;
phx::Selector* selector_; phx::Selector* selector_;
...@@ -43,6 +47,7 @@ class MenuButton { ...@@ -43,6 +47,7 @@ class MenuButton {
std::chrono::duration<double> grab_time_; std::chrono::duration<double> grab_time_;
bool hold_activated_ = false; bool hold_activated_ = false;
bool holdable_ = true; bool holdable_ = true;
phx::MaterialHandle* face_;
std::function<void(phx::Transform*, glm::mat4)> onpress_function_ = nullptr; std::function<void(phx::Transform*, glm::mat4)> onpress_function_ = nullptr;
}; };
...@@ -42,24 +42,66 @@ ObjectMenu::ObjectMenu(phx::Scene* scene, phx::Engine* engine) { ...@@ -42,24 +42,66 @@ ObjectMenu::ObjectMenu(phx::Scene* scene, phx::Engine* engine) {
auto object_manager = engine->GetSystem<ObjectManager>(); auto object_manager = engine->GetSystem<ObjectManager>();
create_frame_ = new MenuButton(engine, scene, MenuButton::RECTANGULAR); //Frame Buttons
create_frame_->GetTransform()->SetParent( create_frame_1_ = new MenuButton(engine, scene, MenuButton::RECTANGULAR);
create_frame_1_->GetTransform()->SetParent(
entity_->GetFirstComponent<phx::Transform>(), false); entity_->GetFirstComponent<phx::Transform>(), false);
create_frame_->GetTransform()->SetLocalRotationEuler(glm::vec3(0, -90, 90)); create_frame_1_->GetTransform()->SetLocalRotationEuler(glm::vec3(0, -90, 90));
create_frame_->GetTransform()->SetLocalScale(glm::vec3(0.03f, 0.01f, 0.03f)); create_frame_1_->GetTransform()->SetLocalScale(glm::vec3(0.05f, 0.01f, 0.05f));
create_frame_->GetTransform()->SetLocalTranslation(glm::vec3(0, 0, 0.1f)); create_frame_1_->GetTransform()->SetLocalTranslation(glm::vec3(0, 0, -0.1f));
create_frame_->SetHoldable(false); create_frame_1_->SetImage(phx::ResourceUtils::LoadResourceFromFile<phx::Image>("laser/target/Checker.png"));
create_frame_->SetOnPress( create_frame_1_->SetHoldable(false);
create_frame_1_->SetOnPress(
[this, object_manager](phx::Transform* t, glm::mat4) { [this, object_manager](phx::Transform* t, glm::mat4) {
object_manager->CreateTarget(t->GetGlobalTranslation(), "Checker.png"); object_manager->CreateTarget(t->GetGlobalTranslation(), "Checker.png");
}); });
create_frame_2_ = new MenuButton(engine, scene, MenuButton::RECTANGULAR);
create_frame_2_->GetTransform()->SetParent(
entity_->GetFirstComponent<phx::Transform>(), false);
create_frame_2_->GetTransform()->SetLocalRotationEuler(glm::vec3(0, -90, 90));
create_frame_2_->GetTransform()->SetLocalScale(glm::vec3(0.05f, 0.01f, 0.05f));
create_frame_2_->GetTransform()->SetLocalTranslation(glm::vec3(0, -0.055f, -0.1f));
create_frame_2_->SetImage(phx::ResourceUtils::LoadResourceFromFile<phx::Image>("laser/target/CheckerRed.png"));
create_frame_2_->SetHoldable(false);
create_frame_2_->SetOnPress(
[this, object_manager](phx::Transform* t, glm::mat4) {
object_manager->CreateTarget(t->GetGlobalTranslation(), "CheckerRed.png");
});
create_frame_3_ = new MenuButton(engine, scene, MenuButton::RECTANGULAR);
create_frame_3_->GetTransform()->SetParent(
entity_->GetFirstComponent<phx::Transform>(), false);
create_frame_3_->GetTransform()->SetLocalRotationEuler(glm::vec3(0, -90, 90));
create_frame_3_->GetTransform()->SetLocalScale(glm::vec3(0.05f, 0.01f, 0.05f));
create_frame_3_->GetTransform()->SetLocalTranslation(glm::vec3(0, 0, -0.045f));
create_frame_3_->SetImage(phx::ResourceUtils::LoadResourceFromFile<phx::Image>("laser/target/CheckerBlue.png"));
create_frame_3_->SetHoldable(false);
create_frame_3_->SetOnPress(
[this, object_manager](phx::Transform* t, glm::mat4) {
object_manager->CreateTarget(t->GetGlobalTranslation(), "CheckerBlue.png");
});
create_frame_4_ = new MenuButton(engine, scene, MenuButton::RECTANGULAR);
create_frame_4_->GetTransform()->SetParent(
entity_->GetFirstComponent<phx::Transform>(), false);
create_frame_4_->GetTransform()->SetLocalRotationEuler(glm::vec3(0, -90, 90));
create_frame_4_->GetTransform()->SetLocalScale(glm::vec3(0.05f, 0.01f, 0.05f));
create_frame_4_->GetTransform()->SetLocalTranslation(glm::vec3(0, -0.055f, -0.045f));
create_frame_4_->SetImage(phx::ResourceUtils::LoadResourceFromFile<phx::Image>("laser/target/CheckerGreen.png"));
create_frame_4_->SetHoldable(false);
create_frame_4_->SetOnPress(
[this, object_manager](phx::Transform* t, glm::mat4) {
object_manager->CreateTarget(t->GetGlobalTranslation(), "CheckerGreen.png");
});
create_lens_ = new MenuButton(engine, scene, MenuButton::ROUND); create_lens_ = new MenuButton(engine, scene, MenuButton::ROUND);
create_lens_->GetTransform()->SetParent( create_lens_->GetTransform()->SetParent(
entity_->GetFirstComponent<phx::Transform>(), false); entity_->GetFirstComponent<phx::Transform>(), false);
create_lens_->GetTransform()->SetLocalRotationEuler(glm::vec3(0, -90, 90)); create_lens_->GetTransform()->SetLocalRotationEuler(glm::vec3(0, -90, 90));
create_lens_->GetTransform()->SetLocalScale(glm::vec3(0.03f, 0.01f, 0.03f)); create_lens_->GetTransform()->SetLocalScale(glm::vec3(0.043f, 0.01f, 0.102f));
create_lens_->GetTransform()->SetLocalTranslation(glm::vec3(0, 0, -0.1f)); create_lens_->GetTransform()->SetLocalTranslation(glm::vec3(0, -0.025f, 0.075f));
create_lens_->SetImage(phx::ResourceUtils::LoadResourceFromFile<phx::Image>("models/opticalBench/menu/lens.png"));
create_lens_->SetHoldable(false); create_lens_->SetHoldable(false);
create_lens_->SetOnPress( create_lens_->SetOnPress(
[this, object_manager](phx::Transform* t, glm::mat4) { [this, object_manager](phx::Transform* t, glm::mat4) {
...@@ -68,6 +110,9 @@ ObjectMenu::ObjectMenu(phx::Scene* scene, phx::Engine* engine) { ...@@ -68,6 +110,9 @@ ObjectMenu::ObjectMenu(phx::Scene* scene, phx::Engine* engine) {
} }
ObjectMenu::~ObjectMenu() { ObjectMenu::~ObjectMenu() {
delete create_frame_; delete create_frame_1_;
delete create_frame_2_;
delete create_frame_3_;
delete create_frame_4_;
delete create_lens_; delete create_lens_;
} }
...@@ -29,5 +29,8 @@ class ObjectMenu { ...@@ -29,5 +29,8 @@ class ObjectMenu {
// pattern // pattern
MenuButton* create_lens_; MenuButton* create_lens_;
MenuButton* create_frame_; MenuButton* create_frame_1_;
MenuButton* create_frame_2_;
MenuButton* create_frame_3_;
MenuButton* create_frame_4_;
}; };
resources/laser/target/CheckerBlue.png

128 B

resources/laser/target/CheckerGreen.png

128 B

resources/laser/target/CheckerRed.png

128 B

Source diff could not be displayed: it is stored in LFS. Options to address this: view the blob.
Source diff could not be displayed: it is stored in LFS. Options to address this: view the blob.
Source diff could not be displayed: it is stored in LFS. Options to address this: view the blob.
Source diff could not be displayed: it is stored in LFS. Options to address this: view the blob.
resources/models/opticalBench/menu/lens.png

129 B

No preview for this file type
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment