diff --git a/Renderer.cpp b/Renderer.cpp index f18bf5e..9be5880 100644 --- a/Renderer.cpp +++ b/Renderer.cpp @@ -216,7 +216,7 @@ void renderShape(const Enum::Shape::Value& shape, const Vector3& size, const Col glPopMatrix(); /*Plusses, can possibly integrate into cylinder code later on*/ glVertexPointer(2, GL_FLOAT,0, square_arr); - glColor(Color3(127,127,127)); + glColor3f(127,127,127); glPushMatrix(); glRotatef(90,0,1,0); glTranslatef(0,0,-(size.z+0.001F)); diff --git a/src/include/DataModelV2/WorkspaceInstance.h b/src/include/DataModelV2/WorkspaceInstance.h index c854d6d..9a62304 100644 --- a/src/include/DataModelV2/WorkspaceInstance.h +++ b/src/include/DataModelV2/WorkspaceInstance.h @@ -8,5 +8,6 @@ class WorkspaceInstance : public: WorkspaceInstance(void); ~WorkspaceInstance(void); + void clearChildren(); std::vector partObjects; }; diff --git a/src/source/DataModelV2/DataModelInstance.cpp b/src/source/DataModelV2/DataModelInstance.cpp index 049620d..989bc9c 100644 --- a/src/source/DataModelV2/DataModelInstance.cpp +++ b/src/source/DataModelV2/DataModelInstance.cpp @@ -6,6 +6,8 @@ #include #include #include "ErrorFunctions.h" +#include "Globals.h" +#include "Application.h" using namespace std; using namespace rapidxml; @@ -60,6 +62,7 @@ void DataModelInstance::modXMLLevel(float modY) void DataModelInstance::clearLevel() { workspace->clearChildren(); + g_usableApp->_propWindow->UpdateSelected(this); } PartInstance* DataModelInstance::makePart() { diff --git a/src/source/DataModelV2/Instance.cpp b/src/source/DataModelV2/Instance.cpp index ab5dbdc..4cb1279 100644 --- a/src/source/DataModelV2/Instance.cpp +++ b/src/source/DataModelV2/Instance.cpp @@ -140,6 +140,10 @@ void Instance::addChild(Instance* newChild) void Instance::clearChildren() { + for (size_t i = 0; i < children.size(); i++) + { + delete children.at(i); + } children.clear(); } void Instance::removeChild(Instance* oldChild) diff --git a/src/source/DataModelV2/PartInstance.cpp b/src/source/DataModelV2/PartInstance.cpp index f731fb2..edecc88 100644 --- a/src/source/DataModelV2/PartInstance.cpp +++ b/src/source/DataModelV2/PartInstance.cpp @@ -245,19 +245,11 @@ bool PartInstance::collides(Box box) void PartInstance::render(RenderDevice* rd) { if (changed) { - - + changed=false; Vector3 renderSize = size/2; - - glNewList(glList, GL_COMPILE_AND_EXECUTE); - glColor(this->color); + glNewList(glList, GL_COMPILE); renderShape(this->shape, renderSize, color); glEndList(); - changed = false; - return; - - changed=false; - } rd->setObjectToWorldMatrix(cFrame); glCallList(glList); diff --git a/src/source/DataModelV2/WorkspaceInstance.cpp b/src/source/DataModelV2/WorkspaceInstance.cpp index a0d2a00..24eaeef 100644 --- a/src/source/DataModelV2/WorkspaceInstance.cpp +++ b/src/source/DataModelV2/WorkspaceInstance.cpp @@ -9,6 +9,12 @@ WorkspaceInstance::WorkspaceInstance(void) canDelete = false; } +void WorkspaceInstance::clearChildren() +{ + children.clear(); + Instance::clearChildren(); +} + WorkspaceInstance::~WorkspaceInstance(void) { }