Recalculate max zoom level depending of arch
This commit is contained in:
parent
96efe48847
commit
529a595157
@ -276,7 +276,7 @@ QMatrix4x4 FPGAViewWidget::getProjection(void)
|
|||||||
QMatrix4x4 matrix;
|
QMatrix4x4 matrix;
|
||||||
|
|
||||||
const float aspect = float(width()) / float(height());
|
const float aspect = float(width()) / float(height());
|
||||||
matrix.perspective(90, aspect, zoomNear_, zoomFar_);
|
matrix.perspective(90, aspect, zoomNear_, zoomFar_ + 0.1f);
|
||||||
return matrix;
|
return matrix;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -756,7 +756,7 @@ void FPGAViewWidget::zoomIn() { zoom(10); }
|
|||||||
|
|
||||||
void FPGAViewWidget::zoomOut() { zoom(-10); }
|
void FPGAViewWidget::zoomOut() { zoom(-10); }
|
||||||
|
|
||||||
void FPGAViewWidget::zoomToBB(const PickQuadTree::BoundingBox &bb, float margin)
|
void FPGAViewWidget::zoomToBB(const PickQuadTree::BoundingBox &bb, float margin, bool clamp)
|
||||||
{
|
{
|
||||||
if (fabs(bb.w()) < 0.00005 && fabs(bb.h()) < 0.00005)
|
if (fabs(bb.w()) < 0.00005 && fabs(bb.h()) < 0.00005)
|
||||||
return;
|
return;
|
||||||
@ -769,14 +769,15 @@ void FPGAViewWidget::zoomToBB(const PickQuadTree::BoundingBox &bb, float margin)
|
|||||||
float distance_w = bb.w() / 2 + margin;
|
float distance_w = bb.w() / 2 + margin;
|
||||||
float distance_h = bb.h() / 2 + margin;
|
float distance_h = bb.h() / 2 + margin;
|
||||||
zoom_ = std::max(distance_w, distance_h);
|
zoom_ = std::max(distance_w, distance_h);
|
||||||
clampZoom();
|
if (clamp)
|
||||||
|
clampZoom();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FPGAViewWidget::zoomSelected()
|
void FPGAViewWidget::zoomSelected()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
QMutexLocker lock(&rendererDataLock_);
|
QMutexLocker lock(&rendererDataLock_);
|
||||||
zoomToBB(rendererData_->bbSelected, 0.5f);
|
zoomToBB(rendererData_->bbSelected, 0.5f, true);
|
||||||
}
|
}
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
@ -785,7 +786,8 @@ void FPGAViewWidget::zoomOutbound()
|
|||||||
{
|
{
|
||||||
{
|
{
|
||||||
QMutexLocker lock(&rendererDataLock_);
|
QMutexLocker lock(&rendererDataLock_);
|
||||||
zoomToBB(rendererData_->bbGlobal, 1.0f);
|
zoomToBB(rendererData_->bbGlobal, 1.0f, false);
|
||||||
|
zoomFar_ = zoom_;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ class FPGAViewWidget : public QOpenGLWidget, protected QOpenGLFunctions
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
const float zoomNear_ = 0.1f; // do not zoom closer than this
|
const float zoomNear_ = 0.1f; // do not zoom closer than this
|
||||||
const float zoomFar_ = 30.0f; // do not zoom further than this
|
float zoomFar_ = 10.0f; // do not zoom further than this
|
||||||
const float zoomLvl1_ = 1.0f;
|
const float zoomLvl1_ = 1.0f;
|
||||||
const float zoomLvl2_ = 5.0f;
|
const float zoomLvl2_ = 5.0f;
|
||||||
|
|
||||||
@ -291,7 +291,7 @@ class FPGAViewWidget : public QOpenGLWidget, protected QOpenGLFunctions
|
|||||||
QMutex rendererDataLock_;
|
QMutex rendererDataLock_;
|
||||||
|
|
||||||
void clampZoom();
|
void clampZoom();
|
||||||
void zoomToBB(const PickQuadTree::BoundingBox &bb, float margin);
|
void zoomToBB(const PickQuadTree::BoundingBox &bb, float margin, bool clamp);
|
||||||
void zoom(int level);
|
void zoom(int level);
|
||||||
void renderLines(void);
|
void renderLines(void);
|
||||||
void renderGraphicElement(LineShaderData &out, PickQuadTree::BoundingBox &bb, const GraphicElement &el, float x,
|
void renderGraphicElement(LineShaderData &out, PickQuadTree::BoundingBox &bb, const GraphicElement &el, float x,
|
||||||
|
Loading…
Reference in New Issue
Block a user