From 057d86e05a36af7f7203fed91601f1a2794259ca Mon Sep 17 00:00:00 2001 From: MusicalProgrammer <38636805+MusicalProgrammer@users.noreply.github.com> Date: Sat, 27 Oct 2018 19:32:28 -0400 Subject: [PATCH] Using new part dragging code... (Needs adjusting) --- main.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/main.cpp b/main.cpp index 59cc03e..1b9046f 100644 --- a/main.cpp +++ b/main.cpp @@ -994,10 +994,22 @@ void Demo::onUserInput(UserInput* ui) { part = (PartInstance*) g_selectedInstances.at(0); Ray dragRay = cameraController.getCamera()->worldRay(dataModel->mousex, dataModel->mousey, renderDevice->getViewport()); std::vector instances = dataModel->getWorkspace()->getAllChildren(); + for(size_t i = 0; i < instances.size(); i++) { if(PartInstance* moveTo = dynamic_cast(instances.at(i))) { + Vector3 outLocation=Vector3(0,0,0); + Vector3 outNormal=Vector3(0,0,0); + + if (moveTo!=part) { + if (CollisionDetection::collisionTimeForMovingPointFixedBox(dragRay.origin,dragRay.direction*100,moveTo->getBox(),outLocation,outNormal)!=inf()) + { + part->setPosition(Vector3(floor(outLocation.x),floor(outLocation.y+1),floor(outLocation.z))); + break; + } + } + /* float __time = testRay.intersectionTime(moveTo->getBox()); float __nearest=std::numeric_limits::infinity(); if (__time != inf() && moveTo != part) @@ -1009,6 +1021,7 @@ void Demo::onUserInput(UserInput* ui) { part->setPosition(Vector3(floor(closest.x),floor(closest.y),floor(closest.z))); } } + */ } } Sleep(10);