Пример #1
0
void RGLView::adjustZoomUpdate(int mouseX, int mouseY)
{
    Viewpoint* viewpoint = scene->getViewpoint();

    int dy = mouseY - zoomBaseY;

    float zoom = clamp ( viewpoint->getZoom() * exp(-dy*ZOOM_PIXELLOGSTEP), ZOOM_MIN, ZOOM_MAX);
    viewpoint->setZoom(zoom);

    View::update();

    zoomBaseY = mouseY;
}
Пример #2
0
void rgl_getZoom(int* successptr, double* zoom)
{
  int success = RGL_FAIL;
  Device* device;

  if (deviceManager && (device = deviceManager->getAnyDevice())) {

    RGLView* rglview = device->getRGLView();
    Scene* scene = rglview->getScene();
    Viewpoint* viewpoint = scene->getViewpoint();
    *zoom = viewpoint->getZoom();
    success = RGL_SUCCESS;
  }
  *successptr = success;
}
Пример #3
0
void rgl_getZoom(int* successptr, double* zoom)
{
  int success = RGL_FAIL;
  Device* device = deviceManager->getAnyDevice();

  if ( device ) {
    RGLView* rglview = device->getRGLView();
    Scene* scene = rglview->getScene();
    Viewpoint* viewpoint = scene->getViewpoint();
    *zoom = viewpoint->getZoom();
    *zoom = 1.0f+(*zoom)* ((float)(VIEWPOINT_MAX_ZOOM-1)) ;
    success = RGL_SUCCESS;
  }
  *successptr = success;
}
Пример #4
0
void RGLView::wheelRotate(int dir)
{
    Viewpoint* viewpoint = scene->getViewpoint();

    float zoom = viewpoint->getZoom();

#define ZOOM_STEP  1.05f
#define ZOOM_PIXELLOGSTEP 0.02f

    switch(dir)
    {
    case GUI_WheelForward:
        zoom *= ZOOM_STEP;
        break;
    case GUI_WheelBackward:
        zoom /= ZOOM_STEP;
        break;
    }

    zoom = clamp( zoom , ZOOM_MIN, ZOOM_MAX);
    viewpoint->setZoom(zoom);

    View::update();
}