From cbd680a6ac9e489e4a9ad4bfcadccff5edcb481f Mon Sep 17 00:00:00 2001 From: andreja6 Date: Tue, 24 Apr 2018 17:13:04 -0700 Subject: [PATCH] Changed the way blocks are rendered --- BaseButtonInstance.cpp | 1 + Dialogs.aps | Bin 18120 -> 33680 bytes PhysicalInstance.cpp | 22 +++++++ PhysicalInstance.h | 8 ++- main.cpp | 128 +++++++++++++++++++++-------------------- 5 files changed, 97 insertions(+), 62 deletions(-) diff --git a/BaseButtonInstance.cpp b/BaseButtonInstance.cpp index 0ebed99..c8968e8 100644 --- a/BaseButtonInstance.cpp +++ b/BaseButtonInstance.cpp @@ -25,6 +25,7 @@ void BaseButtonInstance::onMouseClick() if(listener != NULL) { listener->onButton1MouseClick(this); + } } diff --git a/Dialogs.aps b/Dialogs.aps index 51701b7447bd01f66e7debdfdc99f6597fb80bfe..0e9ce3f13515059dd7ecd00065073952913a9b10 100644 GIT binary patch delta 8116 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 delta 269 zcmbQx&UB)eae@o8h%3Y72M(H>JL-9uCKkvrGHvX=Zm&0wk%2*lfq}t;A)LVpNdNzT z5=b&I7%*@OFo9VhF$mxkn4IAlz=gyOaB7=u=OlzGG;4B-1JL-%jSh!pCSVv3F%)F{ zhb^1mh{r4XS0|NmKmI1TI=0|8C}Fat<< r0I>parent = dataModel; } + void Demo::onInit() { // Called before Demo::run() beings @@ -470,76 +472,77 @@ void Demo::onInit() { test->parent = dataModel; test->color = Color3(0.2F,0.3F,1); test->size = Vector3(24,1,24); - - - - - test = makePart(); - test->parent = dataModel; - test->color = Color3(.5F,1,.5F); - test->size = Vector3(4,1,2); - test->position = Vector3(10,1,0); - test = makePart(); - test->parent = dataModel; - test->color = Color3(.5F,1,.5F); - test->size = Vector3(4,1,2); - test->position = Vector3(-10,1,0); - - test = makePart(); - test->parent = dataModel; - test->color = Color3::gray(); - test->size = Vector3(4,1,2); - test->position = Vector3(-7,2,0); - - test = makePart(); - test->parent = dataModel; - test->color = Color3::gray(); - test->size = Vector3(4,1,2); - test->position = Vector3(7,2,0); - - test = makePart(); - test->parent = dataModel; - test->color = Color3::gray(); - test->size = Vector3(4,1,2); - test->position = Vector3(-4,3,0); - - test = makePart(); - test->parent = dataModel; - test->color = Color3::gray(); - test->size = Vector3(4,1,2); - test->position = Vector3(5,3,0); - - test = makePart(); - test->parent = dataModel; - test->color = Color3::gray(); - test->size = Vector3(4,1,2); - test->position = Vector3(-1,4,0); - - test = makePart(); - test->parent = dataModel; - test->color = Color3::gray(); - test->size = Vector3(4,1,2); - test->position = Vector3(3,4,0); - - test = makePart(); - test->parent = dataModel; - test->color = Color3::gray(); - test->size = Vector3(4,1,2); - test->position = Vector3(2,5,0); - + test->setCFrame(CoordinateFrame(Matrix3::fromEulerAnglesXYZ(toRadians(90),toRadians(45),toRadians(45)), Vector3(0,0,0))); selectedInstance = test; + + + + test = makePart(); + test->parent = dataModel; + test->color = Color3(.5F,1,.5F); + test->size = Vector3(4,1,2); + test->setPosition(Vector3(10,1,0)); + test = makePart(); + test->parent = dataModel; + test->color = Color3(.5F,1,.5F); + test->size = Vector3(4,1,2); + test->setPosition(Vector3(-10,1,0)); test = makePart(); test->parent = dataModel; test->color = Color3::gray(); test->size = Vector3(4,1,2); - test->position = Vector3(0,6,0); + test->setPosition(Vector3(-7,2,0)); test = makePart(); test->parent = dataModel; test->color = Color3::gray(); test->size = Vector3(4,1,2); - test->position = Vector3(-2,7,0); + test->setPosition(Vector3(7,2,0)); + + test = makePart(); + test->parent = dataModel; + test->color = Color3::gray(); + test->size = Vector3(4,1,2); + test->setPosition(Vector3(-4,3,0)); + + test = makePart(); + test->parent = dataModel; + test->color = Color3::gray(); + test->size = Vector3(4,1,2); + test->setPosition(Vector3(5,3,0)); + + test = makePart(); + test->parent = dataModel; + test->color = Color3::gray(); + test->size = Vector3(4,1,2); + test->setPosition(Vector3(-1,4,0)); + + test = makePart(); + test->parent = dataModel; + test->color = Color3::gray(); + test->size = Vector3(4,1,2); + test->setPosition(Vector3(3,4,0)); + + test = makePart(); + test->parent = dataModel; + test->color = Color3::gray(); + test->size = Vector3(4,1,2); + test->setPosition(Vector3(2,5,0)); + + + + test = makePart(); + test->parent = dataModel; + test->color = Color3::gray(); + test->size = Vector3(4,1,2); + test->setPosition(Vector3(0,6,0)); + + test = makePart(); + test->parent = dataModel; + test->color = Color3::gray(); + test->size = Vector3(4,1,2); + test->setPosition(Vector3(-2,7,0)); @@ -946,10 +949,13 @@ void Demo::onGraphics(RenderDevice* rd) { { PhysicalInstance* part = (PhysicalInstance*)instance; Vector3 size = part->size; - Vector3 pos = part->position; + Vector3 pos = part->getCFrame().translation; + rd->setObjectToWorldMatrix(CoordinateFrame()); Vector3 pos2 = Vector3((pos.x-size.x/2)/2,(pos.y-size.y/2)/2,(pos.z-size.z/2)/2); Vector3 pos3 = Vector3((pos.x+size.x/2)/2,(pos.y+size.y/2)/2,(pos.z+size.z/2)/2); - Draw::box(Box(pos2 ,pos3), app->renderDevice, part->color, Color4::clear()); + Box box = Box(Vector3(0+size.x/4, 0+size.y/4, 0+size.z/4) ,Vector3(0-size.x/4,0-size.y/4,0-size.z/4)); + CoordinateFrame c = CoordinateFrame(part->getCFrame().rotation,Vector3(part->getCFrame().translation.x/2, part->getCFrame().translation.y/2, part->getCFrame().translation.z/2)); + Draw::box(c.toWorldSpace(box), app->renderDevice, part->color, Color4::clear()); if(selectedInstance == part) { drawOutline(pos2, pos3, rd, lighting, Vector3(size.x/2, size.y/2, size.z/2), Vector3(pos.x/2, pos.y/2, pos.z/2));