void EXZoomController::moveZoom(CCPoint pt, CCPoint pt2) { //what's the difference in length float length = ccpDistance(pt, pt2); float diff = (length-_firstLength); //ignore small movements if (fabs(diff) < pinchDistanceThreshold) return; //calculate new scale float factor = diff * zoomRate * pinchDamping; float newScale = _oldScale + factor; //bound scale if (newScale > zoomInLimit) newScale = zoomInLimit; else if (newScale < zoomOutLimit) newScale = zoomOutLimit; //set the new scale _node->setScale(newScale); //center on midpoint of pinch if (centerOnPinch) centerOnPoint(_firstTouch, scrollDamping); else updatePosition(_node->getPosition()); }
void View2D::initMap() { centerOnPoint(0, 0); MainWindow::get()->setMouseXY(mouseXScaled, mouseYScaled); MainWindow::get()->setScale(scale); DoomMap* cmap = MainWindow::get()->getMap(); linesArray.vertices.clear(); if (cmap) { //qDebug("MAP FOUND"); for (int i = 0; i < cmap->linedefs.size(); i++) { // 1-2sided DoomMapLinedef& linedef = cmap->linedefs[i]; //if (linedef.getBack()) // glColor4ub(128, 128, 128, 255); //else glColor4ub(255, 255, 255, 255); quint8 c = !!linedef.getBack() ? 128 : 255; GLVertex v1; v1.x = linedef.getV1()->x; v1.y = -linedef.getV1()->y; v1.r = v1.g = v1.b = c; v1.a = 255; GLVertex v2; v2.x = linedef.getV2()->x; v2.y = -linedef.getV2()->y; v2.r = v2.g = v2.b = c; v2.a = 255; linesArray.vertices.append(v1); linesArray.vertices.append(v2); } } linesUpdate = true; }
void View3D::setExplicitCursorPos(const Imath::V3d& pos) { m_explicitCursorPos = true; centerOnPoint(pos); }
void EXZoomController::centerOnPoint(CCPoint pt) { centerOnPoint(pt, 1.0f); }