int ZDvidDataSliceHelper::getWidth() const
{
  if (getViewPort().isEmpty()) {
    return 0;
  }

  return getViewPort().width();
}
int ZDvidDataSliceHelper::getHeight() const
{
  if (getViewPort().isEmpty()) {
    return 0;
  }

  return getViewPort().height();
}
/**
* returns paintViewPort
**/
nmc::DkPluginViewPort* DkNikonPlugin::getViewPort() {

	if (!viewport) {
		// >DIR: dummy viewport [4.7.2014 markus]
		viewport = new DkNikonViewPort();
	}

	if (!maidFacade) {
		QMainWindow* mainWindow = getMainWindow();

		maidFacade = new MaidFacade(mainWindow);

		if (maidFacade->init()) {
			
			
			if (!camControls) {

				// get last location
				QSettings settings;
				int dockLocation = settings.value("camControlsLocation", Qt::RightDockWidgetArea).toInt();

				camControls = new DkCamControls(maidFacade, tr("Camera Controls"));
			
				if (mainWindow)
					mainWindow->addDockWidget((Qt::DockWidgetArea)dockLocation, camControls);

				connect(camControls, SIGNAL(updateImage(QImage)), getViewPort(), SIGNAL(loadImage(QImage)));
				connect(camControls, SIGNAL(loadFile(QFileInfo)), getViewPort(), SIGNAL(loadFile(QFileInfo)));
				connect(camControls, SIGNAL(closeSignal()), getViewPort(), SIGNAL(closePlugin()));
			}

			camControls->setVisible(true);		

		} else {
			QMessageBox warningDialog(mainWindow);
			warningDialog.setWindowTitle(tr("MAID Library could not be opened"));
			warningDialog.setText(tr("The MAID library could not be opened. Camera controls will be disabled."));
			warningDialog.setIcon(QMessageBox::Warning);
			warningDialog.setStandardButtons(QMessageBox::Ok);
			warningDialog.setDefaultButton(QMessageBox::Ok);
			warningDialog.show();
			warningDialog.exec();

			return 0;
		}
	}

	return viewport;
}
Exemple #4
0
void Window::setWindowSize( int w, int h ) noexcept
{
    SDL_SetWindowSize( m_wimpl->window, w, h );
    m_wimpl->original_width = w;
    m_wimpl->original_height = h;
    getViewPort( m_wimpl->viewport );
}
Exemple #5
0
    Texture2D* Director::getScreenshot(int format)
    {
#if 0
        fzSize viewPort = getViewPort();
        fzPixelInfo formatInfo = Texture2D::getPixelInfo((fzPixelFormat)format);
        fzTextureInfo textureInfo = Texture2D::getTextureInfo(formatInfo.textureFormat);
        
        fzUInt bufferSize = (formatInfo.bbp * viewPort.width * viewPort.height)/8;
        unsigned char *pixels = new unsigned char[bufferSize];
        
        glReadPixels(0, 0, viewPort.width, viewPort.height, textureInfo.openGLFormat, formatInfo.dataType, pixels);
        
        
        Texture2D *texture;
        try {
            texture = new Texture2D(pixels, (fzTextureFormat)format,
                                    fzMath_nextPOT(viewPort.width), fzMath_nextPOT(viewPort.height), viewPort);
            
        } catch (std::exception& error) {
            FZLOGERROR("%s", error.what());
            delete [] pixels;
            return NULL;
        }
        return texture;
#endif
        return NULL;
    }
Exemple #6
0
void Window::toggleFullscreen( const ScreenMode flag ) noexcept
{
    SDL_SetWindowFullscreen( m_wimpl->window, toSDL2Flags_( flag ) );

    if ( flag == ScreenMode::NO_FULLSCREEN )
    {
        setWindowSize( m_wimpl->original_width, m_wimpl->original_height );
    }
    else if ( flag == ScreenMode::FULLSCREEN )
    {
        SDL_RenderSetLogicalSize( m_wimpl->renderer, m_wimpl->original_width,
                                  m_wimpl->original_height );
    }

    getViewPort( m_wimpl->viewport );
}
void CurveWidget::updatePlot()
{
	if (leftPressed || rightPressed)
	{
		drawRubberBand(mousePressBeginPoint, mousePressEndPoint, DASH_SIZE, RUBBER_BAND_COLOR);
	}
	else
	{
		buffer.fill(Qt::white);
		drawAxis();
		curve.draw(getViewPort(), scale, thickness, antiAliasing);
		QRgb oldColor = setColor(qRgb(0, 0, 0));
		drawRect(QPoint(), QPoint(buffer.width() - 1, buffer.height() - 1));
		setColor(oldColor);
	}
	const int FIELD_WIDTH = 2;
	emit thicknessChanged(QString("%1").arg(QString::number(thickness), FIELD_WIDTH));
	emit scaleChanged(QString("%1 : %2").
					  arg(QString::number(scale > 1 ? scale : 1.)).
					  arg(QString::number(scale > 1 ? 1. : 1 / scale)));
	update();
}
Exemple #8
0
Window::Window( WindowInfo& info )
    : m_wimpl( new Window_( info ) )
{
    getInfo( info );
    getViewPort( m_wimpl->viewport );
}
Exemple #9
0
    void Director::updateProjection()
    {
        FZ_ASSERT(OSW::Instance(), "OS Wrapper is not defined.");

        updateViewRect();

        if(!(m_dirtyFlags & kFZDDirty_projection))
            return;
        
        // VIEW PORT
        // The view port must be the display size in pixels.
        // Display size is not equal to the screen size, an application could not use the whole screen.
        fzSize viewPort = getViewPort();
        glViewport(0, 0, viewPort.width, viewPort.height);
        
        
        // PROJECTION
        // The projection must be calculated using the canvas size. No pixels here.
        fzSize canvasSize = getCanvasSize();
        fzOrientation orientation = getOrientation();
        if(orientation == kFZOrientation_LandscapeLeft || orientation == kFZOrientation_LandscapeRight)
            FZ_SWAP(canvasSize.width, canvasSize.height);
        
        
        switch (m_projection) {
            case kFZProjection2D:
            {
                fzMath_mat4OrthoProjection(0, canvasSize.width, 0, canvasSize.height, -1024, 1024, m_transformMV);
                break;
            }
            default:
                FZ_RAISE("Director: Unrecognized projection.");
        }
        
        m_orientationTransform = FZAffineTransformIdentity;
        if(orientation == kFZOrientation_LandscapeLeft) {

            m_orientationTransform.translate(canvasSize.width, 0);
            m_orientationTransform.rotate(FZ_DEGREES_TO_RADIANS(90));
            
            fzMat4 mat;
            fzMath_mat4Multiply(m_transformMV, m_orientationTransform, mat);
            fzMath_mat4Copy(mat, m_transformMV);
            
        }else if(orientation == kFZOrientation_LandscapeRight) {
            m_orientationTransform.translate(0, canvasSize.height);
            m_orientationTransform.rotate(FZ_DEGREES_TO_RADIANS(-90));
            
            fzMat4 mat;
            fzMath_mat4Multiply(m_transformMV, m_orientationTransform, mat);
            fzMath_mat4Copy(mat, m_transformMV);
        }
        m_orientationTransform = m_orientationTransform.getInverse();
        
        m_dirtyFlags &= ~kFZDDirty_projection;

        if(p_runningScene) {
            p_runningScene->updateLayout();
            if(p_hud)
                p_hud->updateLayout();
        }
    }
Exemple #10
0
    void Director::updateViewRect()
    {
        if(!(m_dirtyFlags & kFZDDirty_viewPort))
            return;
        
        if(m_windowSize == FZSizeZero && m_originalCanvasSize == FZSizeZero)
            setFullscreen();
        else if(m_windowSize == FZSizeZero)
            setWindowSize(m_originalCanvasSize);
        
        fzSize windowSize = getWindowSize();
        fzSize canvasSize = (m_originalCanvasSize == FZSizeZero) ? windowSize : m_originalCanvasSize;
        fzOrientation orientation = getOrientation();
        
        if(orientation == kFZOrientation_LandscapeLeft ||
           orientation == kFZOrientation_LandscapeRight)
        {
            FZ_SWAP(canvasSize.width, canvasSize.height);
        }
                
        fzFloat windowRate = windowSize.width/windowSize.height;
        fzFloat canvasRate = canvasSize.width/canvasSize.height;
        fzSize newCanvasSize = canvasSize; // could be the same

        if(windowRate == canvasRate) {
            
            // No resizing because the canvas and window rate is the same.
            m_renderingRect = fzRect(FZPointZero, windowSize);
        
        }else{
            
            // The window and the canvas rate is different, so we have to apply
            // the proper resizing algorythm
            switch (m_resizeMode) {
                    
                case kFZResizeMode_None:
                {
                    m_renderingRect.size = canvasSize;
                    m_renderingRect.origin = (windowSize - canvasSize)/2;
                    
                    break;
                }
                case kFZResizeMode_Expand:
                {
                    m_renderingRect = fzRect(FZPointZero, windowSize);
                    
                    break;
                }
                case kFZResizeMode_Fit:
                {
                    if(canvasRate > windowRate)
                    {
                        m_renderingRect.size.width = windowSize.width;
                        m_renderingRect.size.height = canvasSize.height * windowSize.width/canvasSize.width;
                        m_renderingRect.origin = fzPoint(0, (windowSize.height-m_renderingRect.size.height)/2);
                    }else{
                        m_renderingRect.size.height = windowSize.height;
                        m_renderingRect.size.width = canvasSize.width * windowSize.height/canvasSize.height;
                        m_renderingRect.origin = fzPoint((windowSize.width-m_renderingRect.size.width)/2, 0);
                    }
                    break;
                }
                case kFZResizeMode_FitFill:
                {
                    if(canvasRate > windowRate)
                        newCanvasSize.height = canvasSize.width / windowRate;
                    else
                        newCanvasSize.width = canvasSize.height * windowRate;
                                        
                    m_renderingRect = fzRect(FZPointZero, windowSize);
                    break;
                }
                case kFZResizeMode_IntFit:
                {                    
                    fzFloat factorX = windowSize.width / canvasSize.width;
                    fzFloat factorY = windowSize.height / canvasSize.height;
                    fzFloat factor = MIN(factorX, factorY);
                    factor = (factor >= 1.0f) ? static_cast<fzInt>(factor) : factor;
                    
                    m_renderingRect.size = canvasSize * factor;
                    m_renderingRect.origin = (windowSize - m_renderingRect.size)/2;
                    
                    break;
                }
                case kFZResizeMode_IntFitFill:
                {
                    fzFloat factorX = windowSize.width / canvasSize.width;
                    fzFloat factorY = windowSize.height / canvasSize.height;
                    fzFloat factor = MIN(factorX, factorY);
                    factor = (factor >= 1.0f) ? static_cast<fzInt>(factor) : factor;

                    newCanvasSize = windowSize / factor;
                    
                    m_renderingRect = fzRect(FZPointZero, windowSize);
                    
                    break;
                }
                    
                default:
                    break;
            }
        }
        m_canvasSize = newCanvasSize;

        if(orientation == kFZOrientation_LandscapeLeft ||
           orientation == kFZOrientation_LandscapeRight)
        {
            FZ_SWAP(m_canvasSize.width, m_canvasSize.height);
        }
        
        // FACTORS
        fzSize viewPort = getViewPort();
        fzFloat factorX = viewPort.width / newCanvasSize.width;
        fzFloat factorY = viewPort.height / newCanvasSize.height;
        
        
        // COMPUTE FINAL FACTOR
        fzFloat newFactor = roundf(MAX(MAX(factorX, factorY), 1));
        if(newFactor > DeviceConfig::Instance().getMaxFactor())
            newFactor = DeviceConfig::Instance().getMaxFactor();
        
        if(newFactor > m_resourcesFactor)
        {
            TextureCache::Instance().removeAllTextures();
            FontCache::Instance().removeAllFonts();
        }
        m_resourcesFactor = newFactor;
        
        m_dirtyFlags &= ~kFZDDirty_viewPort;
        m_dirtyFlags |= kFZDDirty_projection;
        
        
        // Notify changes to the OS Wrapper
        OSW::setOrientation(orientation);
        OSW::updateWindow();
    }
		void handleSetViewPort() override {
			getDisplayDevice()->setViewPort(getViewPort());
		}
ZIntCuboid ZDvidDataSliceHelper::getBoundBox() const
{
  return GetBoundBox(getViewPort(), getZ());
}
int ZDvidDataSliceHelper::getY() const
{
  return getViewPort().top();
}
int ZDvidDataSliceHelper::getX() const
{
  return getViewPort().left();
}
QPointF CurveWidget::toAbsolute(const QPointF& relative)
{
	QRectF viewPort = getViewPort();
	return QPointF(relative.x() / scale + viewPort.x(),
				   (buffer.height() - relative.y()) / scale + viewPort.y());
}
QPointF CurveWidget::toRelative(const QPointF& absolute)
{
	QRectF viewPort = getViewPort();
	return QPointF((absolute.x() - viewPort.x()) * scale,
				   buffer.height() - (absolute.y() - viewPort.y()) * scale);
}