11#include <QSvgRenderer>
27#include "qscrollarea.h"
39 : QMainWindow(nullptr)
43 this->setWindowTitle(QString(
"Setting"));
45 QDockWidget* Docker =
new QDockWidget();
46 this->addDockWidget(Qt::LeftDockWidgetArea, Docker);
47 Docker->setMinimumSize(QSize(200, 600));
48 Docker->setMaximumWidth(200);
49 auto titleBar1 = Docker->titleBarWidget();
50 Docker->setTitleBarWidget(
new QWidget());
53 QLabel* SelectLabel =
new QLabel(
"Cateory");
54 SelectLabel->setAlignment(Qt::AlignCenter);
58 QWidget* selectWidget =
new QWidget();
59 QVBoxLayout* selectVLayout =
new QVBoxLayout();
70 selectVLayout->addWidget(SelectLabel);
71 selectVLayout->addWidget(SceneSettingbtr);
72 selectVLayout->addWidget(RenderSettingbtr);
73 selectVLayout->addWidget(OtherSettingbtr);
74 selectVLayout->addStretch();
76 selectWidget->setLayout(selectVLayout);
77 Docker->setWidget(selectWidget);
80 this->addDockWidget(Qt::RightDockWidgetArea,
DockerRight);
142 mTitle =
new QLabel(title.c_str());
143 int detailLabelHeight = 40;
144 mTitle->setMinimumHeight(detailLabelHeight);
145 mTitle->setMaximumHeight(detailLabelHeight);
146 mTitle->setAlignment(Qt::AlignCenter);
151 mScrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
152 mScrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded);
159 QWidget* m_scroll_widget =
new QWidget;
172 Vec3f gValue = scn->getGravity();
173 Vec3f lowerBValue = scn->getLowerBound();
174 Vec3f upperBValue = scn->getUpperBound();
180 QObject::connect(
gravityWidget, SIGNAL(vec3fChange(
double,
double,
double)),
this, SLOT(
setGravity(
double,
double,
double)));
193 scn->setGravity(
Vec3f(
float(v0),
float(v1),
float(v2)));
198 scn->setLowerBound(
Vec3f(
float(v0),
float(v1),
float(v2)));
203 scn->setUpperBound(
Vec3f(
float(v0),
float(v1),
float(v2)));
209 QFormLayout* layout =
new QFormLayout();
229 QHBoxLayout* hLayout =
new QHBoxLayout;
230 hLayout->setContentsMargins(0, 0, 0, 0);
231 hLayout->setSpacing(0);
234 mLineEdit->setText(QString::fromStdString(
""));
236 QPushButton* open =
new QPushButton(
"Open");
240 open->setFixedSize(60, 24);
243 hLayout->addWidget(open, 1);
244 hLayout->setSpacing(3);
246 layout->addRow(
"Env Map", hLayout);
248 connect(open, &QPushButton::clicked,
this, [=]() {
249 QString path = QFileDialog::getOpenFileName(
this, tr(
"Open File"), QString::fromStdString(getAssetPath()), tr(
"Text Files(*.hdr)"));
250 if (!path.isEmpty()) {
252 path = QDir::toNativeSeparators(path);
254 if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
255 QMessageBox::warning(
this, tr(
"Read File"),
256 tr(
"Cannot open file:\n%1").
arg(path));
267 QMessageBox::warning(
this, tr(
"Path"), tr(
"You do not select any file."));
278 mRenderEngine = std::dynamic_pointer_cast<GLRenderEngine>(engine);
PRenderSetting(PSettingEditor *editor, std::string title)
void setShadowBlurIters(int iters)
void setShadowMapSize(int idx)
std::shared_ptr< GLRenderEngine > mRenderEngine
QSpinBox * shadowBlurIters
void updateData() override
QComboBox * shadowMapSize
void setRenderEngine(std::shared_ptr< RenderEngine > engine)
QVector3FieldWidget * upperBoundWidget
void setLowerBound(double v0, double v1, double v2)
QVector3FieldWidget * lowerBoundWidget
void updateData() override
void setGravity(double v0, double v1, double v2)
QVector3FieldWidget * gravityWidget
void setUpperBound(double v0, double v1, double v2)
PSettingWidget * renderSettingWidget
PSettingWidget * settingWidget
PSettingEditor(QWidget *widget=nullptr)
void buildSceneSettingWidget()
void setRenderEngine(std::shared_ptr< RenderEngine > engine)
QDockWidget * DockerRight
void buildOtherSettingWidget()
void showRenderSettingWidget()
static SceneGraphFactory * instance()
std::shared_ptr< SceneGraph > active()
This is an implementation of AdditiveCCD based on peridyno.
DYN_FUNC Real arg(const Complex< Real > &)