Using new part dragging code... (Needs adjusting)

This commit is contained in:
MusicalProgrammer
2018-10-27 19:32:28 -04:00
parent 89f9e0bfa2
commit 057d86e05a

View File

@@ -994,10 +994,22 @@ void Demo::onUserInput(UserInput* ui) {
part = (PartInstance*) g_selectedInstances.at(0); part = (PartInstance*) g_selectedInstances.at(0);
Ray dragRay = cameraController.getCamera()->worldRay(dataModel->mousex, dataModel->mousey, renderDevice->getViewport()); Ray dragRay = cameraController.getCamera()->worldRay(dataModel->mousex, dataModel->mousey, renderDevice->getViewport());
std::vector<Instance*> instances = dataModel->getWorkspace()->getAllChildren(); 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(PartInstance* moveTo = dynamic_cast<PartInstance*>(instances.at(i))) if(PartInstance* moveTo = dynamic_cast<PartInstance*>(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 __time = testRay.intersectionTime(moveTo->getBox());
float __nearest=std::numeric_limits<float>::infinity(); float __nearest=std::numeric_limits<float>::infinity();
if (__time != inf() && moveTo != part) 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))); part->setPosition(Vector3(floor(closest.x),floor(closest.y),floor(closest.z)));
} }
} }
*/
} }
} }
Sleep(10); Sleep(10);