diff --git a/Engine/src/SceneObjects/Node.cpp b/Engine/src/SceneObjects/Node.cpp index 7af8325..f7d62ca 100644 --- a/Engine/src/SceneObjects/Node.cpp +++ b/Engine/src/SceneObjects/Node.cpp @@ -96,7 +96,7 @@ void Prisma::Node::removeChild(uint64_t uuid, bool removeRecursive) { component.second->destroy(); } - + m_children[index]->parent(nullptr); m_children.erase(m_children.begin() + index); CacheScene::getInstance().updateSizes(true); diff --git a/GUI/src/NodeCreator.cpp b/GUI/src/NodeCreator.cpp index c823c23..c78dcf6 100644 --- a/GUI/src/NodeCreator.cpp +++ b/GUI/src/NodeCreator.cpp @@ -281,17 +281,20 @@ std::shared_ptr Prisma::NodeCreator::createArea() verticesData->vertices = vertices; verticesData->indices = indices; - auto planeArea=createMesh(verticesData, "PlaneArea"); + auto newInstance = std::make_shared(); + newInstance->loadModel(verticesData); + newInstance->matrix(glm::mat4(1.0)); + newInstance->name("PlaneMesh" + std::to_string(newInstance->uuid())); auto whiteMaterial = getEmptyMaterial(); whiteMaterial->color(glm::vec4(1.0)); whiteMaterial->plain(true); - std::dynamic_pointer_cast(planeArea->children()[0])->material(whiteMaterial); + newInstance->material(whiteMaterial); auto parent = std::make_shared(); parent->name("ParentArea_" + std::to_string(parent->uuid())); auto light = std::make_shared>(); light->name("Area" + std::to_string(light->uuid())); parent->addChild(light); - parent->addChild(planeArea); + parent->addChild(newInstance); Prisma::GlobalData::getInstance().currentGlobalScene()->root->addChild(parent); return light; }