Finished new datamodel

Not very efficient, but its somewhere
This commit is contained in:
andreja6
2018-05-01 15:02:04 -07:00
parent e6ca1cd502
commit 930aee06dc
5 changed files with 77 additions and 66 deletions

View File

@@ -1,10 +1,20 @@
#include "DataModelInstance.h" #include "DataModelInstance.h"
WorkspaceInstance* workspace;
DataModelInstance::DataModelInstance(void) DataModelInstance::DataModelInstance(void)
{ {
workspace = new WorkspaceInstance();
children.push_back(workspace);
className = "DataModel"; className = "DataModel";
} }
DataModelInstance::~DataModelInstance(void) DataModelInstance::~DataModelInstance(void)
{ {
} }
WorkspaceInstance* DataModelInstance::getWorkspace()
{
return workspace;
}

View File

@@ -1,5 +1,6 @@
#pragma once #pragma once
#include "instance.h" #include "instance.h"
#include "WorkspaceInstance.h"
class DataModelInstance : class DataModelInstance :
public Instance public Instance
@@ -7,4 +8,5 @@ class DataModelInstance :
public: public:
DataModelInstance(void); DataModelInstance(void);
~DataModelInstance(void); ~DataModelInstance(void);
WorkspaceInstance* getWorkspace();
}; };

View File

@@ -3,12 +3,13 @@
#include "Instance.h" #include "Instance.h"
std::string name; std::string name;
Instance* parent; Instance* parent = NULL;
std::vector<Instance* > children; std::vector<Instance* > children;
static std::string className = "BaseInstance"; static std::string className = "BaseInstance";
Instance::Instance(void) Instance::Instance(void)
{ {
parent = NULL;
name = "Default Game Instance"; name = "Default Game Instance";
className = "BaseInstance"; className = "BaseInstance";
} }

View File

@@ -7,7 +7,7 @@ public:
Instance(void); Instance(void);
virtual ~Instance(void); virtual ~Instance(void);
std::string name; std::string name;
Instance* parent; // Another pointer.
std::vector<Instance*> children; // All children. std::vector<Instance*> children; // All children.
std::string getClassName(); std::string getClassName();
Instance* findFirstChild(std::string); Instance* findFirstChild(std::string);
@@ -19,4 +19,5 @@ public:
Instance* getParent(); Instance* getParent();
protected: protected:
std::string className; std::string className;
Instance* parent; // Another pointer.
}; };

121
main.cpp
View File

@@ -16,6 +16,7 @@
#include "PhysicalInstance.h" #include "PhysicalInstance.h"
#include "TextButtonInstance.h" #include "TextButtonInstance.h"
#include "ImageButtonInstance.h" #include "ImageButtonInstance.h"
#include "DataModelInstance.h"
#include "AudioPlayer.h" #include "AudioPlayer.h"
#include <limits.h> #include <limits.h>
@@ -26,9 +27,9 @@ HWND hwnd;
static const float VNUM = 0.01F; static const float VNUM = 0.01F;
static std::string title = ""; static std::string title = "";
static const std::string VERSION = "PRE-ALPHA "; static const std::string VERSION = "PRE-ALPHA ";
static std::vector<Instance*> instances; //static std::vector<Instance*> instances;
static std::vector<Instance*> instances_2D; static std::vector<Instance*> instances_2D;
static Instance* dataModel; static DataModelInstance* dataModel;
GFontRef fntdominant = NULL; GFontRef fntdominant = NULL;
GFontRef fntlighttrek = NULL; GFontRef fntlighttrek = NULL;
Ray testRay; Ray testRay;
@@ -175,10 +176,10 @@ Demo::Demo(App* _app) : GApplet(_app), app(_app) {
void clearInstances() void clearInstances()
{ {
for(size_t i = 0; i < instances.size(); i++) //for(size_t i = 0; i < instances.size(); i++)
{ //{
delete instances.at(i); // delete instances.at(i);
} //}
delete dataModel; delete dataModel;
} }
@@ -226,14 +227,14 @@ std::string Convert (float number){
PhysicalInstance* makePart() PhysicalInstance* makePart()
{ {
PhysicalInstance* part = new PhysicalInstance(); PhysicalInstance* part = new PhysicalInstance();
instances.push_back(part); // instances.push_back(part);
return part; return part;
} }
TextButtonInstance* makeTextButton() TextButtonInstance* makeTextButton()
{ {
TextButtonInstance* part = new TextButtonInstance(); TextButtonInstance* part = new TextButtonInstance();
instances.push_back(part); // instances.push_back(part);
instances_2D.push_back(part); instances_2D.push_back(part);
return part; return part;
} }
@@ -241,7 +242,7 @@ TextButtonInstance* makeTextButton()
ImageButtonInstance* makeImageButton(G3D::TextureRef newImage = NULL, G3D::TextureRef overImage = NULL, G3D::TextureRef downImage = NULL, G3D::TextureRef disableImage = NULL) ImageButtonInstance* makeImageButton(G3D::TextureRef newImage = NULL, G3D::TextureRef overImage = NULL, G3D::TextureRef downImage = NULL, G3D::TextureRef disableImage = NULL)
{ {
ImageButtonInstance* part = new ImageButtonInstance(newImage,overImage, downImage, disableImage); ImageButtonInstance* part = new ImageButtonInstance(newImage,overImage, downImage, disableImage);
instances.push_back(part); // instances.push_back(part);
instances_2D.push_back(part); instances_2D.push_back(part);
return part; return part;
} }
@@ -316,19 +317,13 @@ void deleteInstance()
{ {
if(selectedInstance != NULL) if(selectedInstance != NULL)
{ {
for(size_t i = 0; i < instances.size(); i++) if(selectedInstance->getParent() != NULL)
{ selectedInstance->getParent()->removeChild(selectedInstance);
if(instances.at(i) == selectedInstance) delete selectedInstance;
{
Instance* deleting = instances.at(i);
instances.erase(instances.begin() + i);
delete deleting;
selectedInstance = NULL; selectedInstance = NULL;
AudioPlayer::playSound(GetFileInPath("/content/sounds/pageturn.wav")); AudioPlayer::playSound(GetFileInPath("/content/sounds/pageturn.wav"));
} }
} }
}
}
class DeleteListener : public ButtonListener { class DeleteListener : public ButtonListener {
@@ -380,7 +375,7 @@ void initGUI()
button->boxBegin = Vector2(0, -24); button->boxBegin = Vector2(0, -24);
button->boxEnd = Vector2(80, 0); button->boxEnd = Vector2(80, 0);
button->floatBottom = true; button->floatBottom = true;
button->parent = dataModel; button->setParent(dataModel);
button->font = fntlighttrek; button->font = fntlighttrek;
button->textColor = Color3(0,255,255); button->textColor = Color3(0,255,255);
button->textOutlineColor = Color4::clear(); button->textOutlineColor = Color4::clear();
@@ -392,7 +387,7 @@ void initGUI()
button->boxBegin = Vector2(0, -48); button->boxBegin = Vector2(0, -48);
button->boxEnd = Vector2(80, -24); button->boxEnd = Vector2(80, -24);
button->floatBottom = true; button->floatBottom = true;
button->parent = dataModel; button->setParent(dataModel);
button->font = fntlighttrek; button->font = fntlighttrek;
button->textColor = Color3(0,255,255); button->textColor = Color3(0,255,255);
button->textOutlineColor = Color4::clear(); button->textOutlineColor = Color4::clear();
@@ -404,7 +399,7 @@ void initGUI()
button->boxBegin = Vector2(0, -72); button->boxBegin = Vector2(0, -72);
button->boxEnd = Vector2(80, -48); button->boxEnd = Vector2(80, -48);
button->floatBottom = true; button->floatBottom = true;
button->parent = dataModel; button->setParent(dataModel);
button->font = fntlighttrek; button->font = fntlighttrek;
button->textColor = Color3(0,255,255); button->textColor = Color3(0,255,255);
button->textOutlineColor = Color4::clear(); button->textOutlineColor = Color4::clear();
@@ -416,7 +411,7 @@ void initGUI()
button->boxBegin = Vector2(0, -96); button->boxBegin = Vector2(0, -96);
button->boxEnd = Vector2(80, -72); button->boxEnd = Vector2(80, -72);
button->floatBottom = true; button->floatBottom = true;
button->parent = dataModel; button->setParent(dataModel);
button->font = fntlighttrek; button->font = fntlighttrek;
button->textColor = Color3(0,255,255); button->textColor = Color3(0,255,255);
button->textOutlineColor = Color4::clear(); button->textOutlineColor = Color4::clear();
@@ -428,7 +423,7 @@ void initGUI()
button->boxBegin = Vector2(0, -120); button->boxBegin = Vector2(0, -120);
button->boxEnd = Vector2(80, -96); button->boxEnd = Vector2(80, -96);
button->floatBottom = true; button->floatBottom = true;
button->parent = dataModel; button->setParent(dataModel);
button->font = fntlighttrek; button->font = fntlighttrek;
button->textColor = Color3(0,255,255); button->textColor = Color3(0,255,255);
button->boxOutlineColor = Color3(0,255,255); button->boxOutlineColor = Color3(0,255,255);
@@ -439,7 +434,7 @@ void initGUI()
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(0, 0); button->boxBegin = Vector2(0, 0);
button->boxEnd = Vector2(125, 25); button->boxEnd = Vector2(125, 25);
button->parent = dataModel; button->setParent(dataModel);
button->font = fntlighttrek; button->font = fntlighttrek;
button->textColor = Color3::white(); button->textColor = Color3::white();
button->boxColor = Color4::clear(); button->boxColor = Color4::clear();
@@ -452,7 +447,7 @@ void initGUI()
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(125, 0); button->boxBegin = Vector2(125, 0);
button->boxEnd = Vector2(250, 25); button->boxEnd = Vector2(250, 25);
button->parent = dataModel; button->setParent(dataModel);
button->font = fntlighttrek; button->font = fntlighttrek;
button->textColor = Color3::white(); button->textColor = Color3::white();
button->boxColor = Color4::clear(); button->boxColor = Color4::clear();
@@ -465,7 +460,7 @@ void initGUI()
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(250, 0); button->boxBegin = Vector2(250, 0);
button->boxEnd = Vector2(375, 25); button->boxEnd = Vector2(375, 25);
button->parent = dataModel; button->setParent(dataModel);
button->font = fntlighttrek; button->font = fntlighttrek;
button->textColor = Color3::white(); button->textColor = Color3::white();
button->boxColor = Color4::clear(); button->boxColor = Color4::clear();
@@ -478,7 +473,7 @@ void initGUI()
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(375, 0); button->boxBegin = Vector2(375, 0);
button->boxEnd = Vector2(500, 25); button->boxEnd = Vector2(500, 25);
button->parent = dataModel; button->setParent(dataModel);
button->font = fntlighttrek; button->font = fntlighttrek;
button->textColor = Color3::white(); button->textColor = Color3::white();
button->boxColor = Color4::clear(); button->boxColor = Color4::clear();
@@ -491,7 +486,7 @@ void initGUI()
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(500, 0); button->boxBegin = Vector2(500, 0);
button->boxEnd = Vector2(625, 25); button->boxEnd = Vector2(625, 25);
button->parent = dataModel; button->setParent(dataModel);
button->font = fntlighttrek; button->font = fntlighttrek;
button->textColor = Color3::white(); button->textColor = Color3::white();
button->boxColor = Color4::clear(); button->boxColor = Color4::clear();
@@ -514,7 +509,7 @@ void initGUI()
button->setAllColorsSame(); button->setAllColorsSame();
button->font = fntlighttrek; button->font = fntlighttrek;
button->fontLocationRelativeTo = Vector2(10, 0); button->fontLocationRelativeTo = Vector2(10, 0);
button->parent = dataModel; button->setParent(dataModel);
button = makeTextButton(); button = makeTextButton();
@@ -528,7 +523,7 @@ void initGUI()
button->setAllColorsSame(); button->setAllColorsSame();
button->font = fntlighttrek; button->font = fntlighttrek;
button->fontLocationRelativeTo = Vector2(10, 0); button->fontLocationRelativeTo = Vector2(10, 0);
button->parent = dataModel; button->setParent(dataModel);
button = makeTextButton(); button = makeTextButton();
button->boxBegin = Vector2(0,265); button->boxBegin = Vector2(0,265);
@@ -541,7 +536,7 @@ void initGUI()
button->setAllColorsSame(); button->setAllColorsSame();
button->font = fntlighttrek; button->font = fntlighttrek;
button->fontLocationRelativeTo = Vector2(10, 0); button->fontLocationRelativeTo = Vector2(10, 0);
button->parent = dataModel; button->setParent(dataModel);
button->name = "Duplicate"; button->name = "Duplicate";
button->setButtonListener(new GUDButtonListener()); button->setButtonListener(new GUDButtonListener());
@@ -550,7 +545,7 @@ void initGUI()
instance->name = "go"; instance->name = "go";
instance->size = Vector2(65,65); instance->size = Vector2(65,65);
instance->position = Vector2(6.5, 25); instance->position = Vector2(6.5, 25);
instance->parent = dataModel; instance->setParent(dataModel);
@@ -561,14 +556,14 @@ void initGUI()
Texture::fromFile(GetFileInPath("/content/images/ArrowTool_ds.png"))); Texture::fromFile(GetFileInPath("/content/images/ArrowTool_ds.png")));
instance->size = Vector2(50,50); instance->size = Vector2(50,50);
instance->position = Vector2(15, 90); instance->position = Vector2(15, 90);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "Cursor"; instance->name = "Cursor";
instance->setButtonListener(new ModeSelectionListener()); instance->setButtonListener(new ModeSelectionListener());
instance = makeImageButton(Texture::fromFile(GetFileInPath("/content/images/ScaleTool.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_ovr.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_dn.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_ds.png"))); instance = makeImageButton(Texture::fromFile(GetFileInPath("/content/images/ScaleTool.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_ovr.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_dn.png")),Texture::fromFile(GetFileInPath("/content/images/ScaleTool_ds.png")));
instance->size = Vector2(40,40); instance->size = Vector2(40,40);
instance->position = Vector2(0, 140); instance->position = Vector2(0, 140);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "Resize"; instance->name = "Resize";
instance->setButtonListener(new ModeSelectionListener()); instance->setButtonListener(new ModeSelectionListener());
@@ -580,7 +575,7 @@ void initGUI()
Texture::fromFile(GetFileInPath("/content/images/MoveTool_ds.png"))); Texture::fromFile(GetFileInPath("/content/images/MoveTool_ds.png")));
instance->size = Vector2(40,40); instance->size = Vector2(40,40);
instance->position = Vector2(40, 140); instance->position = Vector2(40, 140);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "Arrows"; instance->name = "Arrows";
instance->setButtonListener(new ModeSelectionListener()); instance->setButtonListener(new ModeSelectionListener());
@@ -591,7 +586,7 @@ void initGUI()
Texture::fromFile(GetFileInPath("/content/images/SelectionRotate_ds.png"))); Texture::fromFile(GetFileInPath("/content/images/SelectionRotate_ds.png")));
instance->size = Vector2(30,30); instance->size = Vector2(30,30);
instance->position = Vector2(10, 175); instance->position = Vector2(10, 175);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "Rotate"; instance->name = "Rotate";
instance->setButtonListener(new RotateButtonListener()); instance->setButtonListener(new RotateButtonListener());
@@ -602,7 +597,7 @@ void initGUI()
Texture::fromFile(GetFileInPath("/content/images/SelectionTilt_ds.png"))); Texture::fromFile(GetFileInPath("/content/images/SelectionTilt_ds.png")));
instance->size = Vector2(30,30); instance->size = Vector2(30,30);
instance->position = Vector2(40, 175); instance->position = Vector2(40, 175);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "Tilt"; instance->name = "Tilt";
instance->setButtonListener(new RotateButtonListener()); instance->setButtonListener(new RotateButtonListener());
@@ -614,7 +609,7 @@ void initGUI()
Texture::fromFile(GetFileInPath("/content/images/Delete_ds.png"))); Texture::fromFile(GetFileInPath("/content/images/Delete_ds.png")));
instance->size = Vector2(40,46); instance->size = Vector2(40,46);
instance->position = Vector2(20, 284); instance->position = Vector2(20, 284);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "Delete"; instance->name = "Delete";
instance->setButtonListener(new DeleteListener()); instance->setButtonListener(new DeleteListener());
@@ -626,7 +621,7 @@ void initGUI()
instance->floatBottom = true; instance->floatBottom = true;
instance->floatRight = true; instance->floatRight = true;
instance->position = Vector2(-77, -90); instance->position = Vector2(-77, -90);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "ZoomIn"; instance->name = "ZoomIn";
instance->setButtonListener(new CameraButtonListener()); instance->setButtonListener(new CameraButtonListener());
@@ -638,7 +633,7 @@ void initGUI()
instance->floatBottom = true; instance->floatBottom = true;
instance->floatRight = true; instance->floatRight = true;
instance->position = Vector2(-77, -31); instance->position = Vector2(-77, -31);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "ZoomOut"; instance->name = "ZoomOut";
instance->setButtonListener(new CameraButtonListener()); instance->setButtonListener(new CameraButtonListener());
@@ -650,7 +645,7 @@ void initGUI()
instance->floatBottom = true; instance->floatBottom = true;
instance->floatRight = true; instance->floatRight = true;
instance->position = Vector2(-110, -50); instance->position = Vector2(-110, -50);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "PanLeft"; instance->name = "PanLeft";
instance->setButtonListener(new CameraButtonListener()); instance->setButtonListener(new CameraButtonListener());
@@ -662,7 +657,7 @@ void initGUI()
instance->floatBottom = true; instance->floatBottom = true;
instance->floatRight = true; instance->floatRight = true;
instance->position = Vector2(-45, -50); instance->position = Vector2(-45, -50);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "PanRight"; instance->name = "PanRight";
instance->setButtonListener(new CameraButtonListener()); instance->setButtonListener(new CameraButtonListener());
@@ -674,7 +669,7 @@ void initGUI()
instance->floatBottom = true; instance->floatBottom = true;
instance->floatRight = true; instance->floatRight = true;
instance->position = Vector2(-77, -60); instance->position = Vector2(-77, -60);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "CenterCam"; instance->name = "CenterCam";
instance->setButtonListener(new CameraButtonListener()); instance->setButtonListener(new CameraButtonListener());
@@ -686,7 +681,7 @@ void initGUI()
instance->floatBottom = true; instance->floatBottom = true;
instance->floatRight = true; instance->floatRight = true;
instance->position = Vector2(-105, -75); instance->position = Vector2(-105, -75);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "TiltUp"; instance->name = "TiltUp";
instance->setButtonListener(new CameraButtonListener()); instance->setButtonListener(new CameraButtonListener());
@@ -698,7 +693,7 @@ void initGUI()
instance->floatBottom = true; instance->floatBottom = true;
instance->floatRight = true; instance->floatRight = true;
instance->position = Vector2(-40, -75); instance->position = Vector2(-40, -75);
instance->parent = dataModel; instance->setParent(dataModel);
instance->name = "TiltDown"; instance->name = "TiltDown";
instance->setButtonListener(new CameraButtonListener()); instance->setButtonListener(new CameraButtonListener());
} }
@@ -709,15 +704,15 @@ void Demo::onInit() {
// Called before Demo::run() beings // Called before Demo::run() beings
dataModel = new Instance(); dataModel = new DataModelInstance();
dataModel->parent = NULL; dataModel->setParent(NULL);
dataModel->name = "undefined"; dataModel->name = "undefined";
initGUI(); initGUI();
PhysicalInstance* test = makePart(); PhysicalInstance* test = makePart();
test->parent = dataModel; test->setParent(dataModel->getWorkspace());
test->color = Color3(0.2F,0.3F,1); test->color = Color3(0.2F,0.3F,1);
test->setSize(Vector3(24,1,24)); test->setSize(Vector3(24,1,24));
test->setPosition(Vector3(0,0,0)); test->setPosition(Vector3(0,0,0));
@@ -727,54 +722,54 @@ void Demo::onInit() {
test = makePart(); test = makePart();
test->parent = dataModel; test->setParent(dataModel->getWorkspace());
test->color = Color3(.5F,1,.5F); test->color = Color3(.5F,1,.5F);
test->setSize(Vector3(4,1,2)); test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(-10,1,0)); test->setPosition(Vector3(-10,1,0));
test = makePart(); test = makePart();
test->parent = dataModel; test->setParent(dataModel->getWorkspace());
test->color = Color3(.5F,1,.5F); test->color = Color3(.5F,1,.5F);
test->setSize(Vector3(4,1,2)); test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(10,1,0)); test->setPosition(Vector3(10,1,0));
test = makePart(); test = makePart();
test->parent = dataModel; test->setParent(dataModel->getWorkspace());
test->color = Color3::gray(); test->color = Color3::gray();
test->setSize(Vector3(4,1,2)); test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(7,2,0)); test->setPosition(Vector3(7,2,0));
test = makePart(); test = makePart();
test->parent = dataModel; test->setParent(dataModel->getWorkspace());
test->color = Color3::gray(); test->color = Color3::gray();
test->setSize(Vector3(4,1,2)); test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(-7,2,0)); test->setPosition(Vector3(-7,2,0));
test = makePart(); test = makePart();
test->parent = dataModel; test->setParent(dataModel->getWorkspace());
test->color = Color3::gray(); test->color = Color3::gray();
test->setSize(Vector3(4,1,2)); test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(4,3,0)); test->setPosition(Vector3(4,3,0));
test = makePart(); test = makePart();
test->parent = dataModel; test->setParent(dataModel->getWorkspace());
test->color = Color3::gray(); test->color = Color3::gray();
test->setSize(Vector3(4,1,2)); test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(-5,3,0)); test->setPosition(Vector3(-5,3,0));
test = makePart(); test = makePart();
test->parent = dataModel; test->setParent(dataModel->getWorkspace());
test->color = Color3::gray(); test->color = Color3::gray();
test->setSize(Vector3(4,1,2)); test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(1,4,0)); test->setPosition(Vector3(1,4,0));
test = makePart(); test = makePart();
test->parent = dataModel; test->setParent(dataModel->getWorkspace());
test->color = Color3::gray(); test->color = Color3::gray();
test->setSize(Vector3(4,1,2)); test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(-3,4,0)); test->setPosition(Vector3(-3,4,0));
test = makePart(); test = makePart();
test->parent = dataModel; test->setParent(dataModel->getWorkspace());
test->color = Color3::gray(); test->color = Color3::gray();
test->setSize(Vector3(4,1,2)); test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(-2,5,0)); test->setPosition(Vector3(-2,5,0));
@@ -783,13 +778,13 @@ void Demo::onInit() {
test = makePart(); test = makePart();
test->parent = dataModel; test->setParent(dataModel->getWorkspace());
test->color = Color3::gray(); test->color = Color3::gray();
test->setSize(Vector3(4,1,2)); test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(0,6,0)); test->setPosition(Vector3(0,6,0));
test = makePart(); test = makePart();
test->parent = dataModel; test->setParent(dataModel->getWorkspace());
test->color = Color3::gray(); test->color = Color3::gray();
test->setSize(Vector3(4,1,2)); test->setSize(Vector3(4,1,2));
test->setPosition(Vector3(2,7,0)); test->setPosition(Vector3(2,7,0));
@@ -1138,9 +1133,10 @@ void Demo::onUserInput(UserInput* ui) {
testRay = app->debugCamera.worldRay(mousex, mousey, app->renderDevice->getViewport()); testRay = app->debugCamera.worldRay(mousex, mousey, app->renderDevice->getViewport());
float nearest=std::numeric_limits<float>::infinity(); float nearest=std::numeric_limits<float>::infinity();
Vector3 camPos = app->debugCamera.getCoordinateFrame().translation; Vector3 camPos = app->debugCamera.getCoordinateFrame().translation;
std::vector<Instance*> instances = dataModel->getWorkspace()->getAllChildren();
for(size_t i = 0; i < instances.size(); i++) for(size_t i = 0; i < instances.size(); i++)
{ {
if(instances.at(i)->getClassName() == "Part" && instances.at(i)->parent == dataModel) if(instances.at(i)->getClassName() == "Part")
{ {
PhysicalInstance* test = (PhysicalInstance*)instances.at(i); PhysicalInstance* test = (PhysicalInstance*)instances.at(i);
float time = testRay.intersectionTime(test->getBox()); float time = testRay.intersectionTime(test->getBox());
@@ -1237,7 +1233,7 @@ void drawButtons(RenderDevice* rd)
for(size_t i = 0; i < instances_2D.size(); i++) for(size_t i = 0; i < instances_2D.size(); i++)
{ {
Instance* instance = instances_2D.at(i); Instance* instance = instances_2D.at(i);
if((instance->getClassName() == "TextButton" || instance->getClassName() == "ImageButton") && instance->parent == dataModel) if((instance->getClassName() == "TextButton" || instance->getClassName() == "ImageButton") && instance->getParent() == dataModel)
{ {
BaseButtonInstance* tbi = (BaseButtonInstance*)instance; BaseButtonInstance* tbi = (BaseButtonInstance*)instance;
tbi->drawObj(rd, Vector2(mousex, mousey), mouseButton1Down); tbi->drawObj(rd, Vector2(mousex, mousey), mouseButton1Down);
@@ -1448,10 +1444,11 @@ void Demo::onGraphics(RenderDevice* rd) {
//app->renderDevice->pushState(); //app->renderDevice->pushState();
//app->renderDevice->popState(); //app->renderDevice->popState();
std::vector<Instance*> instances = dataModel->getWorkspace()->getAllChildren();
for(size_t i = 0; i < instances.size(); i++) for(size_t i = 0; i < instances.size(); i++)
{ {
Instance* instance = instances.at(i); Instance* instance = instances.at(i);
if(instance->getClassName() == "Part" && instance->parent != NULL) if(instance->getClassName() == "Part")
{ {
PhysicalInstance* part = (PhysicalInstance*)instance; PhysicalInstance* part = (PhysicalInstance*)instance;