extend examples

This commit is contained in:
ohyzha
2024-11-04 18:24:31 +02:00
parent 645fac1964
commit 3d96889778
2 changed files with 10 additions and 0 deletions

View File

@@ -88,6 +88,7 @@ namespace OpenVulkano
label.AddText("Additional text" + std::to_string(j));
}
}
m_drawablesPool[i].SetIsHittable(true);
m_scene.GetRoot()->AddChild(&m_nodesPool[i]);
m_nodesPool[i].SetMatrix(Math::Utils::translate(glm::mat4x4(1.f), Vector3f(-5 + std::rand() % 5, -5 + std::rand() % 5, -std::rand() % 10)));
m_nodesPool[i].AddDrawable(&m_drawablesPool[i]);

View File

@@ -71,6 +71,8 @@ namespace OpenVulkano
void CompleteSceneElement(SceneElement *dest)
{
dest->m_drawable.Init(&m_shader, &dest->m_geometry, &m_material);
dest->m_drawable.SetIsHittable(true);
//dest->m_geometry.freeAfterUpload = false;
dest->m_node.Init();
m_scene.GetRoot()->AddChild(&dest->m_node);
dest->m_node.SetUpdateFrequency(Scene::UpdateFrequency::Always);
@@ -81,24 +83,28 @@ namespace OpenVulkano
void CreateSceneElement(SceneElement *dest, const Math::Vector4f &color, float scale)
{
dest->m_geometry = Scene::GeometryFactory::MakeCube(scale, scale, scale, color);
dest->m_geometry.name = fmt::format("Cube {} {} {}", color.r, color.g, color.b);
CompleteSceneElement(dest);
}
void CreatePlane(SceneElement *dest, const Math::Vector4f &color)
{
dest->m_geometry = Scene::GeometryFactory::MakePlane(1, 1, color);
dest->m_geometry.name = "Plane";
CompleteSceneElement(dest);
}
void CreateSphere(SceneElement *dest, const Math::Vector4f &color)
{
dest->m_geometry = Scene::GeometryFactory::MakeSphere(1, 32, 16, color);
dest->m_geometry.name = "Sphere";
CompleteSceneElement(dest);
}
void CreateHemisphere(SceneElement *dest, const Math::Vector4f &color)
{
dest->m_geometry = Scene::GeometryFactory::MakeHemisphere(1, 16, 16, color);
dest->m_geometry.name = "Hemisphere";
CompleteSceneElement(dest);
}
@@ -106,18 +112,21 @@ namespace OpenVulkano
{
dest->m_geometry = Scene::GeometryFactory::MakeTriangle(
Math::Vector3f(0.5, 0., 0.), Math::Vector3f(0., 0.5, 0.), Math::Vector3f(-0.5, 0., 0.), color);
dest->m_geometry.name = "Triangle";
CompleteSceneElement(dest);
}
void CreateCylinder(SceneElement *dest, const Math::Vector4f &color)
{
dest->m_geometry = Scene::GeometryFactory::MakeCylinder(1, 3, 64, color);
dest->m_geometry.name = "Cylinder";
CompleteSceneElement(dest);
}
void CreatePyramid(SceneElement *dest, const Math::Vector4f &color)
{
dest->m_geometry = Scene::GeometryFactory::MakePyramid(0.5, 2, color);
dest->m_geometry.name = "Pyramid";
CompleteSceneElement(dest);
}