3D Preview - refactor and enable on property tree

This commit is contained in:
Trevor SANDY
2020-10-07 15:44:14 +02:00
parent 506b7a175f
commit 11966ca428
8 changed files with 175 additions and 150 deletions
+19 -18
View File
@@ -16,23 +16,24 @@ lcPreviewWidget* gPreviewWidget;
lcPreviewDockWidget::lcPreviewDockWidget(QMainWindow* Parent)
: QMainWindow(Parent)
{
Preview = new lcPreviewWidget();
ViewWidget = new lcQGLWidget(nullptr, Preview, true/*IsView*/, true/*IsPreview*/);
setCentralWidget(ViewWidget);
mPreview = new lcPreviewWidget();
mViewWidget = new lcQGLWidget(nullptr, mPreview, true/*IsView*/, true/*IsPreview*/);
setCentralWidget(mViewWidget);
setMinimumSize(200, 200);
ToolBar = addToolBar(tr("PreviewDescription"));
ToolBar->setObjectName("PreviewDescription");
ToolBar->setMovable(false);
Label = new QLabel(QString());
ToolBar->addWidget(Label);
mToolBar = addToolBar(tr("PreviewDescription"));
mToolBar->setObjectName("PreviewDescription");
mToolBar->setMovable(false);
mLabel = new QLabel(QString());
mToolBar->addWidget(mLabel);
}
bool lcPreviewDockWidget::SetCurrentPiece(const QString& PartType, int ColorCode)
{
Label->setText("Loading...");
if (Preview->SetCurrentPiece(PartType, ColorCode))
mLabel->setText(tr("Loading..."));
if (mPreview->SetCurrentPiece(PartType, ColorCode))
{
Label->setText(Preview->GetDescription());
mLabel->setText(mPreview->GetDescription());
return true;
}
return false;
@@ -40,8 +41,8 @@ bool lcPreviewDockWidget::SetCurrentPiece(const QString& PartType, int ColorCode
void lcPreviewDockWidget::ClearPreview()
{
Preview->ClearPreview();
Label->setText(QString());
mPreview->ClearPreview();
mLabel->setText(QString());
}
lcPreviewWidget::lcPreviewWidget()
@@ -74,6 +75,7 @@ bool lcPreviewWidget::SetCurrentPiece(const QString& PartType, int ColorCode)
if (Info)
{
mIsModel = Info->IsModel();
mDescription = Info->m_strDescription;
lcModel* ActiveModel = GetActiveModel();
@@ -109,6 +111,7 @@ bool lcPreviewWidget::SetCurrentPiece(const QString& PartType, int ColorCode)
mDescription = mModel->GetProperties().mDescription;
else
mDescription = PartType;
mIsModel = true;
}
ZoomExtents();
@@ -272,14 +275,12 @@ void lcPreviewWidget::DrawAxes()
glEnable(GL_BLEND);
float TextBuffer[6 * 5 * 3];
/*** Native viewer camera globe mod, switch Y and Z axis with -Y(LC -Z) in the up direction ***/
lcVector3 PosX = lcMul30(lcVector3(25.0f, 0.0f, 0.0f), WorldViewMatrix);
gTexFont.GetGlyphTriangles(PosX.x, PosX.y, PosX.z, 'X', TextBuffer);
lcVector3 PosY = lcMul30(lcVector3(0.0f, 25.0f, 0.0f), WorldViewMatrix);
gTexFont.GetGlyphTriangles(PosY.x, PosY.y, PosY.z, 'Z', TextBuffer + 5 * 6);
gTexFont.GetGlyphTriangles(PosY.x, PosY.y, PosY.z, 'Y', TextBuffer + 5 * 6);
lcVector3 PosZ = lcMul30(lcVector3(0.0f, 0.0f, 25.0f), WorldViewMatrix);
gTexFont.GetGlyphTriangles(PosZ.x, PosZ.y, PosZ.z, 'Y', TextBuffer + 5 * 6 * 2);
/*** Camera globe mod end ***/
gTexFont.GetGlyphTriangles(PosZ.x, PosZ.y, PosZ.z, 'Z', TextBuffer + 5 * 6 * 2);
mContext->SetVertexBufferPointer(TextBuffer);
mContext->SetVertexFormat(0, 3, 0, 2, 0, false);
@@ -625,4 +626,4 @@ void lcPreviewWidget::OnMouseWheel(float Direction)
{
mModel->Zoom(mCamera, (int)(((mInputState.Modifiers & Qt::ControlModifier) ? 100 : 10) * Direction));
Redraw();
}
}