Changed: #1193 Code cleanup.
This commit is contained in:
parent
623ec55753
commit
5dc9ff7b51
84 changed files with 510 additions and 453 deletions
|
@ -88,7 +88,7 @@ void CAnimationSetDialog::updateListObject()
|
||||||
std::vector<std::string> listObjects;
|
std::vector<std::string> listObjects;
|
||||||
Modules::objView().getListObjects(listObjects);
|
Modules::objView().getListObjects(listObjects);
|
||||||
|
|
||||||
for (size_t i = 0; i < listObjects.size(); i++)
|
for (size_t i = 0; i < listObjects.size(); ++i)
|
||||||
ui.objectsComboBox->addItem(QString(listObjects[i].c_str()));
|
ui.objectsComboBox->addItem(QString(listObjects[i].c_str()));
|
||||||
|
|
||||||
if (listObjects.empty())
|
if (listObjects.empty())
|
||||||
|
@ -118,22 +118,22 @@ void CAnimationSetDialog::updateListAnim()
|
||||||
return;
|
return;
|
||||||
CEntity &entity = Modules::objView().getEntity(curObj);
|
CEntity &entity = Modules::objView().getEntity(curObj);
|
||||||
|
|
||||||
std::vector<std::string>& animationList = entity.getAnimationList();
|
std::vector<std::string> &animationList = entity.getAnimationList();
|
||||||
std::vector<std::string>& swtList = entity.getSWTList();
|
std::vector<std::string> &swtList = entity.getSWTList();
|
||||||
std::vector<std::string>& playListAnimation = entity.getPlayListAnimation();
|
std::vector<std::string> &playListAnimation = entity.getPlayListAnimation();
|
||||||
|
|
||||||
// update animation list widget
|
// update animation list widget
|
||||||
for(size_t i = 0; i < animationList.size(); ++i)
|
for(size_t i = 0; i < animationList.size(); ++i)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem *item = new QTreeWidgetItem(ui.animTreeWidget);
|
QTreeWidgetItem *item = new QTreeWidgetItem(ui.animTreeWidget);
|
||||||
item->setText(0,QString(animationList[i].c_str()));
|
item->setText(0, QString(animationList[i].c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// update skeleton weight template list widget
|
// update skeleton weight template list widget
|
||||||
for(size_t i = 0; i < swtList.size(); ++i)
|
for(size_t i = 0; i < swtList.size(); ++i)
|
||||||
{
|
{
|
||||||
QTreeWidgetItem *item = new QTreeWidgetItem(ui.skeletonTreeWidget);
|
QTreeWidgetItem *item = new QTreeWidgetItem(ui.skeletonTreeWidget);
|
||||||
item->setText(0,QString(swtList[i].c_str()));
|
item->setText(0, QString(swtList[i].c_str()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// update PlayList animation widget
|
// update PlayList animation widget
|
||||||
|
@ -224,9 +224,9 @@ void CAnimationSetDialog::resetAnim()
|
||||||
void CAnimationSetDialog::addAnim()
|
void CAnimationSetDialog::addAnim()
|
||||||
{
|
{
|
||||||
CEntity &entity = Modules::objView().getEntity(Modules::objView().getCurrentObject());
|
CEntity &entity = Modules::objView().getEntity(Modules::objView().getCurrentObject());
|
||||||
QList<QTreeWidgetItem*> list = ui.animTreeWidget->selectedItems();
|
QList<QTreeWidgetItem *> list = ui.animTreeWidget->selectedItems();
|
||||||
|
|
||||||
Q_FOREACH(QTreeWidgetItem* item, list)
|
Q_FOREACH(QTreeWidgetItem *item, list)
|
||||||
{
|
{
|
||||||
std::string animName = item->text(0).toStdString();
|
std::string animName = item->text(0).toStdString();
|
||||||
entity.addAnimToPlayList(animName);
|
entity.addAnimToPlayList(animName);
|
||||||
|
@ -237,9 +237,9 @@ void CAnimationSetDialog::addAnim()
|
||||||
void CAnimationSetDialog::removeAnim()
|
void CAnimationSetDialog::removeAnim()
|
||||||
{
|
{
|
||||||
CEntity &entity = Modules::objView().getEntity(Modules::objView().getCurrentObject());
|
CEntity &entity = Modules::objView().getEntity(Modules::objView().getCurrentObject());
|
||||||
QList<QListWidgetItem*> list = ui.animPlaylistWidget->selectedItems();
|
QList<QListWidgetItem *> list = ui.animPlaylistWidget->selectedItems();
|
||||||
|
|
||||||
Q_FOREACH(QListWidgetItem* item, list)
|
Q_FOREACH(QListWidgetItem *item, list)
|
||||||
{
|
{
|
||||||
int row = ui.animPlaylistWidget->row(item);
|
int row = ui.animPlaylistWidget->row(item);
|
||||||
QListWidgetItem *removeItem = ui.animPlaylistWidget->takeItem(row);
|
QListWidgetItem *removeItem = ui.animPlaylistWidget->takeItem(row);
|
||||||
|
@ -252,7 +252,7 @@ void CAnimationSetDialog::removeAnim()
|
||||||
void CAnimationSetDialog::upAnim()
|
void CAnimationSetDialog::upAnim()
|
||||||
{
|
{
|
||||||
CEntity &entity = Modules::objView().getEntity(Modules::objView().getCurrentObject());
|
CEntity &entity = Modules::objView().getEntity(Modules::objView().getCurrentObject());
|
||||||
QList<QListWidgetItem*> list = ui.animPlaylistWidget->selectedItems();
|
QList<QListWidgetItem *> list = ui.animPlaylistWidget->selectedItems();
|
||||||
|
|
||||||
if (list.empty())
|
if (list.empty())
|
||||||
return;
|
return;
|
||||||
|
@ -273,7 +273,7 @@ void CAnimationSetDialog::upAnim()
|
||||||
void CAnimationSetDialog::downAnim()
|
void CAnimationSetDialog::downAnim()
|
||||||
{
|
{
|
||||||
CEntity &entity = Modules::objView().getEntity(Modules::objView().getCurrentObject());
|
CEntity &entity = Modules::objView().getEntity(Modules::objView().getCurrentObject());
|
||||||
QList<QListWidgetItem*> list = ui.animPlaylistWidget->selectedItems();
|
QList<QListWidgetItem *> list = ui.animPlaylistWidget->selectedItems();
|
||||||
|
|
||||||
if (list.empty())
|
if (list.empty())
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -45,11 +45,12 @@ namespace NLQT
|
||||||
|
|
||||||
CAttribWidget::CAttribWidget(QWidget *parent)
|
CAttribWidget::CAttribWidget(QWidget *parent)
|
||||||
: QGroupBox(parent),
|
: QGroupBox(parent),
|
||||||
_SrcInputEnabled(true),
|
_SrcInputEnabled(true),
|
||||||
_EnableConstantValue(true),
|
_EnableConstantValue(true),
|
||||||
_DisableMemoryScheme(false),
|
_DisableMemoryScheme(false),
|
||||||
_NbCycleEnabled(true),
|
_NbCycleEnabled(true),
|
||||||
_Node(NULL), _SchemeWidget(NULL)
|
_Node(NULL),
|
||||||
|
_SchemeWidget(NULL)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
_ui.constRangeUIntWidget->hide();
|
_ui.constRangeUIntWidget->hide();
|
||||||
|
|
|
@ -32,30 +32,25 @@ namespace NLQT
|
||||||
{
|
{
|
||||||
|
|
||||||
CAutoLODDialog::CAutoLODDialog(CWorkspaceNode *ownerNode, NL3D::CParticleSystem *ps, QWidget *parent)
|
CAutoLODDialog::CAutoLODDialog(CWorkspaceNode *ownerNode, NL3D::CParticleSystem *ps, QWidget *parent)
|
||||||
: QDialog(parent), _Node(ownerNode), _PS(ps)
|
: QDialog(parent),
|
||||||
|
_Node(ownerNode),
|
||||||
|
_PS(ps)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
setFixedHeight(sizeHint().height());
|
setFixedHeight(sizeHint().height());
|
||||||
|
|
||||||
_DistRatioWrapper.PS = _PS;
|
|
||||||
_MaxDistLODBiasWrapper.PS = _PS;
|
|
||||||
_DistRatioWrapper.OwnerNode = _Node;
|
|
||||||
_MaxDistLODBiasWrapper.OwnerNode = _Node;
|
|
||||||
|
|
||||||
// Edit the distance at which LOD starts
|
// Edit the distance at which LOD starts
|
||||||
_ui.startPercentDistWidget->setRange(0.f, 0.99f);
|
_ui.startPercentDistWidget->setRange(0.f, 0.99f);
|
||||||
_ui.startPercentDistWidget->enableUpperBound(1.f, true);
|
_ui.startPercentDistWidget->enableUpperBound(1.f, true);
|
||||||
_ui.startPercentDistWidget->enableLowerBound(0.f, false);
|
_ui.startPercentDistWidget->enableLowerBound(0.f, false);
|
||||||
_ui.startPercentDistWidget->setWrapper(&_DistRatioWrapper);
|
_ui.startPercentDistWidget->setValue(_PS->getAutoLODStartDistPercent());
|
||||||
_ui.startPercentDistWidget->updateUi();
|
|
||||||
|
|
||||||
// For non-shared systems only : Set the LOD bias at the max distance, so that some particles are still displayed
|
// For non-shared systems only : Set the LOD bias at the max distance, so that some particles are still displayed
|
||||||
_ui.maxDistBiasWidget->setRange(0.f, 1.0f);
|
_ui.maxDistBiasWidget->setRange(0.f, 1.0f);
|
||||||
_ui.maxDistBiasWidget->enableUpperBound(1.f, false);
|
_ui.maxDistBiasWidget->enableUpperBound(1.f, false);
|
||||||
_ui.maxDistBiasWidget->enableLowerBound(0.f, false);
|
_ui.maxDistBiasWidget->enableLowerBound(0.f, false);
|
||||||
_ui.maxDistBiasWidget->setWrapper(&_MaxDistLODBiasWrapper);
|
_ui.maxDistBiasWidget->setValue(_PS->getMaxDistLODBias());
|
||||||
_ui.maxDistBiasWidget->updateUi();
|
|
||||||
|
|
||||||
if (_PS->isSharingEnabled())
|
if (_PS->isSharingEnabled())
|
||||||
{
|
{
|
||||||
|
@ -86,4 +81,16 @@ void CAutoLODDialog::setSkipParticles(bool state)
|
||||||
_PS->setAutoLODMode(state);
|
_PS->setAutoLODMode(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CAutoLODDialog::setDistRatio(float value)
|
||||||
|
{
|
||||||
|
_PS->setupAutoLOD(value, _PS->getAutoLODDegradationExponent());
|
||||||
|
_Node->setModified(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CAutoLODDialog::setMaxDistLODBias(float value)
|
||||||
|
{
|
||||||
|
_PS->setMaxDistLODBias(value);
|
||||||
|
_Node->setModified(true);
|
||||||
|
}
|
||||||
|
|
||||||
} /* namespace NLQT */
|
} /* namespace NLQT */
|
|
@ -47,36 +47,12 @@ private Q_SLOTS:
|
||||||
void setDegradationExponent(int value);
|
void setDegradationExponent(int value);
|
||||||
void setSkipParticles(bool state);
|
void setSkipParticles(bool state);
|
||||||
|
|
||||||
|
void setDistRatio(float value);
|
||||||
|
void setMaxDistLODBias(float value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
NL3D::CParticleSystem *_PS;
|
||||||
NL3D::CParticleSystem *_PS;
|
|
||||||
|
|
||||||
struct CDistRatioWrapper : IPSWrapperFloat
|
|
||||||
{
|
|
||||||
NL3D::CParticleSystem *PS;
|
|
||||||
virtual float get() const
|
|
||||||
{
|
|
||||||
return PS->getAutoLODStartDistPercent();
|
|
||||||
}
|
|
||||||
virtual void set(const float &v)
|
|
||||||
{
|
|
||||||
PS->setupAutoLOD(v, PS->getAutoLODDegradationExponent());
|
|
||||||
}
|
|
||||||
} _DistRatioWrapper;
|
|
||||||
|
|
||||||
struct CMaxDistLODBiasWrapper : IPSWrapperFloat
|
|
||||||
{
|
|
||||||
NL3D::CParticleSystem *PS;
|
|
||||||
virtual float get() const
|
|
||||||
{
|
|
||||||
return PS->getMaxDistLODBias();
|
|
||||||
}
|
|
||||||
virtual void set(const float &v)
|
|
||||||
{
|
|
||||||
PS->setMaxDistLODBias(v);
|
|
||||||
}
|
|
||||||
} _MaxDistLODBiasWrapper;
|
|
||||||
|
|
||||||
Ui::CAutoLODDialog _ui;
|
Ui::CAutoLODDialog _ui;
|
||||||
}; /* class CAutoLODDialog */
|
}; /* class CAutoLODDialog */
|
||||||
|
|
|
@ -34,8 +34,10 @@ namespace NLQT
|
||||||
NLMISC::CMatrix BuildEulerMatrix(float psi, float theta, float phi)
|
NLMISC::CMatrix BuildEulerMatrix(float psi, float theta, float phi)
|
||||||
{
|
{
|
||||||
float ca = cosf(psi), sa = sinf(psi)
|
float ca = cosf(psi), sa = sinf(psi)
|
||||||
, cb = cosf(theta), sb = sinf(theta)
|
, cb = cosf(theta)
|
||||||
, cc = cosf(phi), sc = sinf(phi);
|
, sb = sinf(theta)
|
||||||
|
, cc = cosf(phi)
|
||||||
|
, sc = sinf(phi);
|
||||||
NLMISC::CMatrix m;
|
NLMISC::CMatrix m;
|
||||||
m.identity();
|
m.identity();
|
||||||
m.setRot(NLMISC::CVector(ca * cb * cc - sa * sc, -cc * sa - ca * cb *sc, ca * sb)
|
m.setRot(NLMISC::CVector(ca * cb * cc - sa * sc, -cc * sa - ca * cb *sc, ca * sb)
|
||||||
|
@ -113,8 +115,10 @@ NLMISC::CVector GetEulerAngles(const NLMISC::CMatrix &mat)
|
||||||
for (uint k = 0; k < 8; ++k)
|
for (uint k = 0; k < 8; ++k)
|
||||||
{
|
{
|
||||||
float ca = cosf(sol[k].x), sa = sinf(sol[k].x)
|
float ca = cosf(sol[k].x), sa = sinf(sol[k].x)
|
||||||
, cb = cosf(sol[k].y), sb = sinf(sol[k].y)
|
, cb = cosf(sol[k].y)
|
||||||
, cc = cosf(sol[k].z), sc = sinf(sol[k].z);
|
, sb = sinf(sol[k].y)
|
||||||
|
, cc = cosf(sol[k].z)
|
||||||
|
, sc = sinf(sol[k].z);
|
||||||
|
|
||||||
float gap = fabsf(m[0][0] - ca * cb * cc + sa * sc);
|
float gap = fabsf(m[0][0] - ca * cb * cc + sa * sc);
|
||||||
gap += fabsf(m[1][0] + cc * sa + ca * cb *sc);
|
gap += fabsf(m[1][0] + cc * sa + ca * cb *sc);
|
||||||
|
@ -135,7 +139,8 @@ NLMISC::CVector GetEulerAngles(const NLMISC::CMatrix &mat)
|
||||||
}
|
}
|
||||||
|
|
||||||
CBasicEditWidget::CBasicEditWidget(QWidget *parent)
|
CBasicEditWidget::CBasicEditWidget(QWidget *parent)
|
||||||
: QWidget(parent), _Wrapper(NULL)
|
: QWidget(parent),
|
||||||
|
_Wrapper(NULL)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
|
@ -155,7 +160,8 @@ void CBasicEditWidget::setWrapper(IPSWrapper<NL3D::CPlaneBasis> *wrapper)
|
||||||
|
|
||||||
void CBasicEditWidget::updateUi()
|
void CBasicEditWidget::updateUi()
|
||||||
{
|
{
|
||||||
if (_Wrapper == NULL) return;
|
if (_Wrapper == NULL)
|
||||||
|
return;
|
||||||
NL3D::CPlaneBasis pb = _Wrapper->get();
|
NL3D::CPlaneBasis pb = _Wrapper->get();
|
||||||
NLMISC::CMatrix mat;
|
NLMISC::CMatrix mat;
|
||||||
mat.setRot(pb.X, pb.Y, pb.X ^ pb.Y);
|
mat.setRot(pb.X, pb.Y, pb.X ^ pb.Y);
|
||||||
|
@ -178,7 +184,8 @@ void CBasicEditWidget::updateUi()
|
||||||
|
|
||||||
void CBasicEditWidget::updateGraphics()
|
void CBasicEditWidget::updateGraphics()
|
||||||
{
|
{
|
||||||
if (_Wrapper == NULL) return;
|
if (_Wrapper == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
NLMISC::CVector angles(2.f * (float) NLMISC::Pi * _ui.psiSpinBox->value() / 360.f
|
NLMISC::CVector angles(2.f * (float) NLMISC::Pi * _ui.psiSpinBox->value() / 360.f
|
||||||
, 2.f * (float) NLMISC::Pi * _ui.thetaSpinBox->value() / 360.f
|
, 2.f * (float) NLMISC::Pi * _ui.thetaSpinBox->value() / 360.f
|
||||||
|
|
|
@ -41,8 +41,8 @@ CBinOpDialog::CBinOpDialog(QWidget *widget1, QWidget *widget2, QWidget *parent)
|
||||||
setWindowTitle(tr("Bin operator"));
|
setWindowTitle(tr("Bin operator"));
|
||||||
_comboBox->clear();
|
_comboBox->clear();
|
||||||
|
|
||||||
qobject_cast<QGroupBox*>(widget1)->setTitle(tr("Arg1"));
|
qobject_cast<QGroupBox *>(widget1)->setTitle(tr("Arg1"));
|
||||||
qobject_cast<QGroupBox*>(widget2)->setTitle(tr("Arg2"));
|
qobject_cast<QGroupBox *>(widget2)->setTitle(tr("Arg2"));
|
||||||
connect(_comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setNewOp(int)));
|
connect(_comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(setNewOp(int)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,9 @@ namespace NLQT
|
||||||
{
|
{
|
||||||
|
|
||||||
CColorEditWidget::CColorEditWidget(QWidget *parent)
|
CColorEditWidget::CColorEditWidget(QWidget *parent)
|
||||||
: QWidget(parent), _Wrapper(NULL), _emit(true)
|
: QWidget(parent),
|
||||||
|
_Wrapper(NULL),
|
||||||
|
_emit(true)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
|
@ -77,15 +79,23 @@ void CColorEditWidget::updateUi()
|
||||||
_ui.gSpinBox->setValue(_Wrapper->get().G);
|
_ui.gSpinBox->setValue(_Wrapper->get().G);
|
||||||
_ui.bSpinBox->setValue(_Wrapper->get().B);
|
_ui.bSpinBox->setValue(_Wrapper->get().B);
|
||||||
_ui.aSpinBox->setValue(_Wrapper->get().A);
|
_ui.aSpinBox->setValue(_Wrapper->get().A);
|
||||||
_ui.graphicsWidget->setColor(QColor(_ui.rSpinBox->value(), _ui.gSpinBox->value(), _ui.bSpinBox->value(), _ui.aSpinBox->value()));
|
_ui.graphicsWidget->setColor(QColor(_ui.rSpinBox->value(),
|
||||||
|
_ui.gSpinBox->value(),
|
||||||
|
_ui.bSpinBox->value(),
|
||||||
|
_ui.aSpinBox->value()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CColorEditWidget::setRed(int r)
|
void CColorEditWidget::setRed(int r)
|
||||||
{
|
{
|
||||||
_ui.graphicsWidget->setColor(QColor(_ui.rSpinBox->value(), _ui.gSpinBox->value(), _ui.bSpinBox->value(), _ui.aSpinBox->value()));
|
_ui.graphicsWidget->setColor(QColor(_ui.rSpinBox->value(),
|
||||||
|
_ui.gSpinBox->value(),
|
||||||
|
_ui.bSpinBox->value(),
|
||||||
|
_ui.aSpinBox->value()));
|
||||||
|
|
||||||
if (_emit)
|
if (_emit)
|
||||||
Q_EMIT colorChanged(NLMISC::CRGBA(r, _ui.gSpinBox->value(), _ui.bSpinBox->value(), _ui.aSpinBox->value()));
|
Q_EMIT colorChanged(NLMISC::CRGBA(r, _ui.gSpinBox->value(),
|
||||||
|
_ui.bSpinBox->value(),
|
||||||
|
_ui.aSpinBox->value()));
|
||||||
|
|
||||||
if (_Wrapper == NULL)
|
if (_Wrapper == NULL)
|
||||||
return;
|
return;
|
||||||
|
@ -102,10 +112,16 @@ void CColorEditWidget::setRed(int r)
|
||||||
|
|
||||||
void CColorEditWidget::setGreen(int g)
|
void CColorEditWidget::setGreen(int g)
|
||||||
{
|
{
|
||||||
_ui.graphicsWidget->setColor(QColor(_ui.rSpinBox->value(), _ui.gSpinBox->value(), _ui.bSpinBox->value(), _ui.aSpinBox->value()));
|
_ui.graphicsWidget->setColor(QColor(_ui.rSpinBox->value(),
|
||||||
|
_ui.gSpinBox->value(),
|
||||||
|
_ui.bSpinBox->value(),
|
||||||
|
_ui.aSpinBox->value()));
|
||||||
|
|
||||||
if (_emit)
|
if (_emit)
|
||||||
Q_EMIT colorChanged(NLMISC::CRGBA(_ui.rSpinBox->value(), g, _ui.bSpinBox->value(), _ui.aSpinBox->value()));
|
Q_EMIT colorChanged(NLMISC::CRGBA(_ui.rSpinBox->value(),
|
||||||
|
g,
|
||||||
|
_ui.bSpinBox->value(),
|
||||||
|
_ui.aSpinBox->value()));
|
||||||
|
|
||||||
if (_Wrapper == NULL) return;
|
if (_Wrapper == NULL) return;
|
||||||
|
|
||||||
|
@ -120,10 +136,16 @@ void CColorEditWidget::setGreen(int g)
|
||||||
|
|
||||||
void CColorEditWidget::setBlue(int b)
|
void CColorEditWidget::setBlue(int b)
|
||||||
{
|
{
|
||||||
_ui.graphicsWidget->setColor(QColor(_ui.rSpinBox->value(), _ui.gSpinBox->value(), _ui.bSpinBox->value(), _ui.aSpinBox->value()));
|
_ui.graphicsWidget->setColor(QColor(_ui.rSpinBox->value(),
|
||||||
|
_ui.gSpinBox->value(),
|
||||||
|
_ui.bSpinBox->value(),
|
||||||
|
_ui.aSpinBox->value()));
|
||||||
|
|
||||||
if (_emit)
|
if (_emit)
|
||||||
Q_EMIT colorChanged(NLMISC::CRGBA(_ui.rSpinBox->value(), _ui.gSpinBox->value(), b, _ui.aSpinBox->value()));
|
Q_EMIT colorChanged(NLMISC::CRGBA(_ui.rSpinBox->value(),
|
||||||
|
_ui.gSpinBox->value(),
|
||||||
|
b,
|
||||||
|
_ui.aSpinBox->value()));
|
||||||
|
|
||||||
if (_Wrapper == NULL) return;
|
if (_Wrapper == NULL) return;
|
||||||
|
|
||||||
|
@ -138,10 +160,16 @@ void CColorEditWidget::setBlue(int b)
|
||||||
|
|
||||||
void CColorEditWidget::setAlpha(int a)
|
void CColorEditWidget::setAlpha(int a)
|
||||||
{
|
{
|
||||||
_ui.graphicsWidget->setColor(QColor(_ui.rSpinBox->value(), _ui.gSpinBox->value(), _ui.bSpinBox->value(), a));
|
_ui.graphicsWidget->setColor(QColor(_ui.rSpinBox->value(),
|
||||||
|
_ui.gSpinBox->value(),
|
||||||
|
_ui.bSpinBox->value(),
|
||||||
|
a));
|
||||||
|
|
||||||
if (_emit)
|
if (_emit)
|
||||||
Q_EMIT colorChanged(NLMISC::CRGBA(_ui.rSpinBox->value(), _ui.gSpinBox->value(), _ui.bSpinBox->value(), a));
|
Q_EMIT colorChanged(NLMISC::CRGBA(_ui.rSpinBox->value(),
|
||||||
|
_ui.gSpinBox->value(),
|
||||||
|
_ui.bSpinBox->value(),
|
||||||
|
a));
|
||||||
|
|
||||||
if (_Wrapper == NULL) return;
|
if (_Wrapper == NULL) return;
|
||||||
|
|
||||||
|
|
|
@ -201,7 +201,8 @@ CRGBA CConfiguration::getValue(const CConfigFile::CVar &var, const CRGBA &defaul
|
||||||
{
|
{
|
||||||
if (var.size() >= 3)
|
if (var.size() >= 3)
|
||||||
{
|
{
|
||||||
if (var.size() > 4) nlwarning("RGBA value in config value '%s' is too long, ignoring unused values");
|
if (var.size() > 4)
|
||||||
|
nlwarning("RGBA value in config value '%s' is too long, ignoring unused values");
|
||||||
return CRGBA((uint8)var.asInt(0), (uint8)var.asInt(1), (uint8)var.asInt(2), var.size() >= 4 ? (uint8)var.asInt(3) : 255);
|
return CRGBA((uint8)var.asInt(0), (uint8)var.asInt(1), (uint8)var.asInt(2), var.size() >= 4 ? (uint8)var.asInt(3) : 255);
|
||||||
}
|
}
|
||||||
nlwarning("Invalid RGBA value in config value '%s', reverting to default { %i, %i, %i, %i }", var.Name.c_str(), (sint)defaultValue.R, (sint)defaultValue.G, (sint)defaultValue.B, (sint)defaultValue.A);
|
nlwarning("Invalid RGBA value in config value '%s', reverting to default { %i, %i, %i, %i }", var.Name.c_str(), (sint)defaultValue.R, (sint)defaultValue.G, (sint)defaultValue.B, (sint)defaultValue.A);
|
||||||
|
|
|
@ -70,9 +70,9 @@ private:
|
||||||
void disconnectGlobalTexAnim();
|
void disconnectGlobalTexAnim();
|
||||||
void updateGlobalTexAnim(int value);
|
void updateGlobalTexAnim(int value);
|
||||||
|
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
|
||||||
NL3D::CPSConstraintMesh *_CM;
|
NL3D::CPSConstraintMesh *_CM;
|
||||||
|
|
||||||
Ui::CConstraintMeshWidget _ui;
|
Ui::CConstraintMeshWidget _ui;
|
||||||
}; /* class CConstraintMeshWidget */
|
}; /* class CConstraintMeshWidget */
|
||||||
|
|
|
@ -27,7 +27,11 @@ namespace NLQT
|
||||||
{
|
{
|
||||||
|
|
||||||
CurveEditDialog::CurveEditDialog(NL3D::CPSFloatCurveFunctor *curve, CWorkspaceNode *ownerNode, QWidget *parent)
|
CurveEditDialog::CurveEditDialog(NL3D::CPSFloatCurveFunctor *curve, CWorkspaceNode *ownerNode, QWidget *parent)
|
||||||
: QDialog(parent) , _Curve(curve), _scale(1.0), _pos(0.0), _Node(ownerNode)
|
: QDialog(parent),
|
||||||
|
_scale(1.0),
|
||||||
|
_pos(0.0),
|
||||||
|
_Node(ownerNode),
|
||||||
|
_Curve(curve)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
|
@ -90,7 +94,7 @@ void CurveEditDialog::curveChanged(const QPolygonF &points)
|
||||||
_Curve->removeCtrlPoint(0);
|
_Curve->removeCtrlPoint(0);
|
||||||
else if (_Curve->getNumCtrlPoints() < uint(points.size()))
|
else if (_Curve->getNumCtrlPoints() < uint(points.size()))
|
||||||
_Curve->addControlPoint(NL3D::CPSFloatCurveFunctor::CCtrlPoint(1, 0.5f));
|
_Curve->addControlPoint(NL3D::CPSFloatCurveFunctor::CCtrlPoint(1, 0.5f));
|
||||||
for (int i = 0; i < points.size(); i++)
|
for (int i = 0; i < points.size(); ++i)
|
||||||
_Curve->setCtrlPoint(uint(i), NL3D::CPSFloatCurveFunctor::CCtrlPoint(points.at(i).x() / _ui.curveWidget->width(),
|
_Curve->setCtrlPoint(uint(i), NL3D::CPSFloatCurveFunctor::CCtrlPoint(points.at(i).x() / _ui.curveWidget->width(),
|
||||||
(_ui.curveWidget->height() - points.at(i).y() + _pos) / (_ui.curveWidget->height() * _scale)));
|
(_ui.curveWidget->height() - points.at(i).y() + _pos) / (_ui.curveWidget->height() * _scale)));
|
||||||
}
|
}
|
||||||
|
@ -146,7 +150,7 @@ void CurveEditDialog::setNumSamples(uint32 value)
|
||||||
void CurveEditDialog::buildPoints()
|
void CurveEditDialog::buildPoints()
|
||||||
{
|
{
|
||||||
QPolygonF points;
|
QPolygonF points;
|
||||||
for (uint i = 0; i < _Curve->getNumCtrlPoints(); i++)
|
for (uint i = 0; i < _Curve->getNumCtrlPoints(); ++i)
|
||||||
points << QPointF((_Curve->getControlPoint(i).Date * _ui.curveWidget->width()),
|
points << QPointF((_Curve->getControlPoint(i).Date * _ui.curveWidget->width()),
|
||||||
_pos + _ui.curveWidget->height() - (_scale * _Curve->getControlPoint(i).Value * _ui.curveWidget->height()));
|
_pos + _ui.curveWidget->height() - (_scale * _Curve->getControlPoint(i).Value * _ui.curveWidget->height()));
|
||||||
|
|
||||||
|
|
|
@ -52,9 +52,6 @@ public:
|
||||||
CurveEditDialog(NL3D::CPSFloatCurveFunctor *curve, CWorkspaceNode *ownerNode, QWidget *parent = 0);
|
CurveEditDialog(NL3D::CPSFloatCurveFunctor *curve, CWorkspaceNode *ownerNode, QWidget *parent = 0);
|
||||||
~CurveEditDialog();
|
~CurveEditDialog();
|
||||||
|
|
||||||
/// the scheme being edited
|
|
||||||
NL3D::CPSFloatCurveFunctor *_Curve;
|
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void setSmoothing(bool state);
|
void setSmoothing(bool state);
|
||||||
void setDisplayInterpolation(bool state);
|
void setDisplayInterpolation(bool state);
|
||||||
|
@ -74,8 +71,10 @@ protected:
|
||||||
|
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
|
||||||
HoverPoints *_hoverPoints;
|
/// the scheme being edited
|
||||||
|
NL3D::CPSFloatCurveFunctor *_Curve;
|
||||||
|
|
||||||
|
HoverPoints *_hoverPoints;
|
||||||
Ui::CurveEditDialog _ui;
|
Ui::CurveEditDialog _ui;
|
||||||
}; /* CurveEditDialog */
|
}; /* CurveEditDialog */
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,9 @@ namespace NLQT
|
||||||
const int max_range = 9999;
|
const int max_range = 9999;
|
||||||
|
|
||||||
CEditRangeUIntWidget::CEditRangeUIntWidget(QWidget *parent)
|
CEditRangeUIntWidget::CEditRangeUIntWidget(QWidget *parent)
|
||||||
: QWidget(parent), _Wrapper(NULL), _emit(true)
|
: QWidget(parent),
|
||||||
|
_Wrapper(NULL),
|
||||||
|
_emit(true)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
|
|
|
@ -58,7 +58,6 @@ CEmitterPage::CEmitterPage(QWidget *parent)
|
||||||
|
|
||||||
// SPEED_INHERITANCE_FACTOR
|
// SPEED_INHERITANCE_FACTOR
|
||||||
_ui.speedInherFactorWidget->setRange(-1.f, 1.f);
|
_ui.speedInherFactorWidget->setRange(-1.f, 1.f);
|
||||||
//_ui.speedInherFactorWidget->setWrapper(&_SpeedInheritanceFactorWrapper);
|
|
||||||
|
|
||||||
// DELAYED_EMISSION
|
// DELAYED_EMISSION
|
||||||
_ui.delayedEmissionWidget->setRange(0.f, 10.f);
|
_ui.delayedEmissionWidget->setRange(0.f, 10.f);
|
||||||
|
|
|
@ -133,7 +133,7 @@ private:
|
||||||
} _ModulatedStrenghtWrapper;
|
} _ModulatedStrenghtWrapper;
|
||||||
|
|
||||||
// the emitter being edited
|
// the emitter being edited
|
||||||
NL3D::CPSEmitter *_Emitter;
|
NL3D::CPSEmitter *_Emitter;
|
||||||
|
|
||||||
// contains pointers to the located
|
// contains pointers to the located
|
||||||
std::vector<NL3D::CPSLocated *> _LocatedList;
|
std::vector<NL3D::CPSLocated *> _LocatedList;
|
||||||
|
|
|
@ -43,7 +43,23 @@ using namespace NL3D;
|
||||||
namespace NLQT
|
namespace NLQT
|
||||||
{
|
{
|
||||||
|
|
||||||
CSlotInfo& CSlotInfo::operator=(const CSlotInfo & slotInfo)
|
CSlotInfo::CSlotInfo()
|
||||||
|
: Animation("empty"),
|
||||||
|
Skeleton("empty"),
|
||||||
|
Offset(0),
|
||||||
|
StartTime(0),
|
||||||
|
EndTime(0),
|
||||||
|
StartBlend(1),
|
||||||
|
EndBlend (1),
|
||||||
|
Smoothness(1),
|
||||||
|
SpeedFactor(1),
|
||||||
|
ClampMode(0),
|
||||||
|
SkeletonInverted(false),
|
||||||
|
Enable(true)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
CSlotInfo &CSlotInfo::operator=(const CSlotInfo &slotInfo)
|
||||||
{
|
{
|
||||||
if ( this != &slotInfo)
|
if ( this != &slotInfo)
|
||||||
{
|
{
|
||||||
|
@ -63,11 +79,16 @@ CSlotInfo& CSlotInfo::operator=(const CSlotInfo & slotInfo)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
CEntity::CEntity(void):
|
CEntity::CEntity(void)
|
||||||
_Name("<Unknown>"), _FileNameShape(""),
|
: _Name("<Unknown>"),
|
||||||
_FileNameSkeleton(""), _inPlace(false), _incPos(false),
|
_FileNameShape(""),
|
||||||
_Instance(NULL), _Skeleton(NULL),
|
_FileNameSkeleton(""),
|
||||||
_PlayList(NULL), _AnimationSet(NULL)
|
_inPlace(false),
|
||||||
|
_incPos(false),
|
||||||
|
_Instance(NULL),
|
||||||
|
_Skeleton(NULL),
|
||||||
|
_PlayList(NULL),
|
||||||
|
_AnimationSet(NULL)
|
||||||
{
|
{
|
||||||
_CharacterScalePos = 1;
|
_CharacterScalePos = 1;
|
||||||
}
|
}
|
||||||
|
@ -188,7 +209,7 @@ void CEntity::update(NL3D::TAnimationTime time)
|
||||||
|
|
||||||
void CEntity::resetChannel()
|
void CEntity::resetChannel()
|
||||||
{
|
{
|
||||||
for(uint i = 0; i < NL3D::CChannelMixer::NumAnimationSlot; i++)
|
for(uint i = 0; i < NL3D::CChannelMixer::NumAnimationSlot; ++i)
|
||||||
_PlayList->setAnimation(i, UPlayList::empty);
|
_PlayList->setAnimation(i, UPlayList::empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -386,7 +407,7 @@ void CEntity::animatePlayList(NL3D::TAnimationTime time)
|
||||||
|
|
||||||
void CEntity::animateChannelMixer()
|
void CEntity::animateChannelMixer()
|
||||||
{
|
{
|
||||||
for (uint i = 0; i < NL3D::CChannelMixer::NumAnimationSlot; i++)
|
for (uint i = 0; i < NL3D::CChannelMixer::NumAnimationSlot; ++i)
|
||||||
{
|
{
|
||||||
if (_SlotInfo[i].Enable)
|
if (_SlotInfo[i].Enable)
|
||||||
{
|
{
|
||||||
|
|
|
@ -48,13 +48,7 @@ namespace NLQT
|
||||||
class CSlotInfo
|
class CSlotInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CSlotInfo ():
|
CSlotInfo();
|
||||||
Animation("empty"), Skeleton("empty"),
|
|
||||||
Offset(0), StartTime(0), EndTime(0),
|
|
||||||
StartBlend(1), EndBlend (1), Smoothness(1),
|
|
||||||
SpeedFactor(1), ClampMode(0),
|
|
||||||
SkeletonInverted(false),
|
|
||||||
Enable(true) {} ;
|
|
||||||
|
|
||||||
std::string Animation;
|
std::string Animation;
|
||||||
std::string Skeleton;
|
std::string Skeleton;
|
||||||
|
@ -104,8 +98,8 @@ public:
|
||||||
float SpeedAnim;
|
float SpeedAnim;
|
||||||
int Mode;
|
int Mode;
|
||||||
|
|
||||||
SAnimationStatus():
|
SAnimationStatus()
|
||||||
LoopAnim(false), PlayAnim(false),
|
: LoopAnim(false), PlayAnim(false),
|
||||||
CurrentTimeAnim(0), StartAnim(0),
|
CurrentTimeAnim(0), StartAnim(0),
|
||||||
EndAnim(0), SpeedAnim(1), Mode(Mode::PlayList) {}
|
EndAnim(0), SpeedAnim(1), Mode(Mode::PlayList) {}
|
||||||
};
|
};
|
||||||
|
@ -262,44 +256,44 @@ private:
|
||||||
bool removeLast);
|
bool removeLast);
|
||||||
|
|
||||||
// The name of the entity
|
// The name of the entity
|
||||||
std::string _Name;
|
std::string _Name;
|
||||||
std::string _FileNameShape;
|
std::string _FileNameShape;
|
||||||
std::string _FileNameSkeleton;
|
std::string _FileNameSkeleton;
|
||||||
|
|
||||||
SAnimationStatus _AnimationStatus;
|
SAnimationStatus _AnimationStatus;
|
||||||
|
|
||||||
bool _inPlace;
|
bool _inPlace;
|
||||||
bool _incPos;
|
bool _incPos;
|
||||||
|
|
||||||
float _CharacterScalePos;
|
float _CharacterScalePos;
|
||||||
|
|
||||||
// The mesh instance associated to this entity
|
// The mesh instance associated to this entity
|
||||||
NL3D::UInstance _Instance;
|
NL3D::UInstance _Instance;
|
||||||
|
|
||||||
// The skeleton binded to the instance
|
// The skeleton binded to the instance
|
||||||
NL3D::USkeleton _Skeleton;
|
NL3D::USkeleton _Skeleton;
|
||||||
|
|
||||||
NL3D::UPlayList *_PlayList;
|
NL3D::UPlayList *_PlayList;
|
||||||
|
|
||||||
NL3D::UAnimationSet *_AnimationSet;
|
NL3D::UAnimationSet *_AnimationSet;
|
||||||
|
|
||||||
// Animation input file
|
// Animation input file
|
||||||
std::vector<std::string> _AnimationList;
|
std::vector<std::string> _AnimationList;
|
||||||
|
|
||||||
// Skeleton weight input file
|
// Skeleton weight input file
|
||||||
std::vector<std::string> _SWTList;
|
std::vector<std::string> _SWTList;
|
||||||
|
|
||||||
// Play list animation
|
// Play list animation
|
||||||
std::vector<std::string > _PlayListAnimation;
|
std::vector<std::string> _PlayListAnimation;
|
||||||
|
|
||||||
// Slot info for this object
|
// Slot info for this object
|
||||||
CSlotInfo _SlotInfo[NL3D::CChannelMixer::NumAnimationSlot];
|
CSlotInfo _SlotInfo[NL3D::CChannelMixer::NumAnimationSlot];
|
||||||
|
|
||||||
friend class CObjectViewer;
|
friend class CObjectViewer;
|
||||||
}; /* class CEntity */
|
}; /* class CEntity */
|
||||||
|
|
||||||
typedef std::map<std::string, CEntity> CEntities;
|
typedef std::map<std::string, CEntity> CEntities;
|
||||||
typedef CEntities::iterator EIT;
|
typedef CEntities::iterator EIT;
|
||||||
|
|
||||||
} /* namespace NLQT */
|
} /* namespace NLQT */
|
||||||
|
|
||||||
|
|
|
@ -176,10 +176,10 @@ void CPluginManager::setPluginState(CPluginSpec *spec, int destState)
|
||||||
|
|
||||||
void CPluginManager::stopAll()
|
void CPluginManager::stopAll()
|
||||||
{
|
{
|
||||||
Q_FOREACH (CPluginSpec *spec, _pluginSpecs)
|
Q_FOREACH (CPluginSpec *spec, _pluginSpecs)
|
||||||
setPluginState(spec, State::Stopped);
|
setPluginState(spec, State::Stopped);
|
||||||
|
|
||||||
Q_FOREACH (CPluginSpec *spec, _pluginSpecs)
|
Q_FOREACH (CPluginSpec *spec, _pluginSpecs)
|
||||||
setPluginState(spec, State::Deleted);
|
setPluginState(spec, State::Deleted);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -99,7 +99,7 @@ QString CPluginSpec::errorString() const
|
||||||
bool CPluginSpec::setFileName(const QString &fileName)
|
bool CPluginSpec::setFileName(const QString &fileName)
|
||||||
{
|
{
|
||||||
_name = _version
|
_name = _version
|
||||||
= _vendor
|
= _vendor
|
||||||
= _description
|
= _description
|
||||||
= _location
|
= _location
|
||||||
= _filePath
|
= _filePath
|
||||||
|
@ -138,7 +138,7 @@ bool CPluginSpec::loadLibrary()
|
||||||
if (!loader.load())
|
if (!loader.load())
|
||||||
return reportError(loader.errorString());
|
return reportError(loader.errorString());
|
||||||
|
|
||||||
IPlugin *pluginObject = qobject_cast<IPlugin*>(loader.instance());
|
IPlugin *pluginObject = qobject_cast<IPlugin *>(loader.instance());
|
||||||
if (!pluginObject)
|
if (!pluginObject)
|
||||||
{
|
{
|
||||||
loader.unload();
|
loader.unload();
|
||||||
|
|
|
@ -30,7 +30,9 @@ namespace NLQT
|
||||||
{
|
{
|
||||||
|
|
||||||
CFollowPathDialog::CFollowPathDialog(NL3D::CPSPlaneBasisFollowSpeed *pbfs, CWorkspaceNode *ownerNode, QWidget *parent)
|
CFollowPathDialog::CFollowPathDialog(NL3D::CPSPlaneBasisFollowSpeed *pbfs, CWorkspaceNode *ownerNode, QWidget *parent)
|
||||||
: QDialog(parent), _FollowPath(pbfs), _Node(ownerNode)
|
: QDialog(parent),
|
||||||
|
_FollowPath(pbfs),
|
||||||
|
_Node(ownerNode)
|
||||||
{
|
{
|
||||||
resize(270, 90);
|
resize(270, 90);
|
||||||
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
|
QSizePolicy sizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
|
||||||
|
|
|
@ -56,7 +56,7 @@ protected:
|
||||||
QPushButton *pushButton;
|
QPushButton *pushButton;
|
||||||
|
|
||||||
NL3D::CPSPlaneBasisFollowSpeed *_FollowPath;
|
NL3D::CPSPlaneBasisFollowSpeed *_FollowPath;
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
}; /* class CFollowPathDialog */
|
}; /* class CFollowPathDialog */
|
||||||
|
|
||||||
} /* namespace NLQT */
|
} /* namespace NLQT */
|
||||||
|
|
|
@ -32,8 +32,6 @@ CGlobalWindDialog::CGlobalWindDialog(QWidget *parent)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
//_ui.directionWidget->setWrapper(&_DirectionWrapper);
|
|
||||||
|
|
||||||
connect(_ui.horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(setWndPower(int)));
|
connect(_ui.horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(setWndPower(int)));
|
||||||
connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(updateWnd(bool)));
|
connect(this, SIGNAL(visibilityChanged(bool)), this, SLOT(updateWnd(bool)));
|
||||||
}
|
}
|
||||||
|
@ -55,17 +53,6 @@ void CGlobalWindDialog::updateWnd(bool visible)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_ui.horizontalSlider->setValue(int(Modules::objView().getScene()->getGlobalWindPower() * _ui.horizontalSlider->maximum()));
|
_ui.horizontalSlider->setValue(int(Modules::objView().getScene()->getGlobalWindPower() * _ui.horizontalSlider->maximum()));
|
||||||
// _ui.directionWidget->updateUi();
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
NLMISC::CVector CGlobalWindDialog::CDirectionWrapper::get(void) const
|
|
||||||
{
|
|
||||||
return Modules::objView().getScene()->getGlobalWindDirection();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CGlobalWindDialog::CDirectionWrapper::set(const NLMISC::CVector &d)
|
|
||||||
{
|
|
||||||
Modules::objView().getScene()->setGlobalWindDirection(d);
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
} /* namespace NLQT */
|
} /* namespace NLQT */
|
|
@ -44,12 +44,6 @@ private Q_SLOTS:
|
||||||
void updateWnd(bool visible);
|
void updateWnd(bool visible);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// wrappers to tune the direction of wind
|
|
||||||
/* struct CDirectionWrapper : public IPSWrapper<NLMISC::CVector>
|
|
||||||
{
|
|
||||||
NLMISC::CVector get(void) const;
|
|
||||||
void set(const NLMISC::CVector &d);
|
|
||||||
} _DirectionWrapper;*/
|
|
||||||
|
|
||||||
Ui::CGlobalWindDialog _ui;
|
Ui::CGlobalWindDialog _ui;
|
||||||
|
|
||||||
|
|
|
@ -117,7 +117,7 @@ void CGraphicsInfoWidget::paintEvent(QPaintEvent *event)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for(uint k = 1; k < _verts.size(); k++)
|
for(uint k = 1; k < _verts.size(); ++k)
|
||||||
{
|
{
|
||||||
painter.drawLine(int((width() / 2.0) * (1 + _verts[k - 1].x)),
|
painter.drawLine(int((width() / 2.0) * (1 + _verts[k - 1].x)),
|
||||||
int((height() / 2.0) * (1 - _verts[k - 1].y)),
|
int((height() / 2.0) * (1 - _verts[k - 1].y)),
|
||||||
|
|
|
@ -120,11 +120,11 @@ void CGraphicsViewport::resizeEvent(QResizeEvent *resizeEvent)
|
||||||
|
|
||||||
typedef bool (*winProc)(NL3D::IDriver *driver, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
|
typedef bool (*winProc)(NL3D::IDriver *driver, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
|
||||||
|
|
||||||
bool CGraphicsViewport::winEvent(MSG * message, long * result)
|
bool CGraphicsViewport::winEvent(MSG *message, long *result)
|
||||||
{
|
{
|
||||||
if (Modules::objView().getDriver() && Modules::objView().getDriver()->isActive())
|
if (Modules::objView().getDriver() && Modules::objView().getDriver()->isActive())
|
||||||
{
|
{
|
||||||
NL3D::IDriver *driver = dynamic_cast<NL3D::CDriverUser*>(Modules::objView().getDriver())->getDriver();
|
NL3D::IDriver *driver = dynamic_cast<NL3D::CDriverUser *>(Modules::objView().getDriver())->getDriver();
|
||||||
if (driver)
|
if (driver)
|
||||||
{
|
{
|
||||||
winProc proc = (winProc)driver->getWindowProc();
|
winProc proc = (winProc)driver->getWindowProc();
|
||||||
|
@ -137,7 +137,7 @@ bool CGraphicsViewport::winEvent(MSG * message, long * result)
|
||||||
|
|
||||||
#elif defined(NL_OS_MAC)
|
#elif defined(NL_OS_MAC)
|
||||||
|
|
||||||
typedef bool (*cocoaProc)(NL3D::IDriver*, const void* e);
|
typedef bool (*cocoaProc)(NL3D::IDriver *, const void *e);
|
||||||
|
|
||||||
bool CGraphicsViewport::macEvent(EventHandlerCallRef caller, EventRef event)
|
bool CGraphicsViewport::macEvent(EventHandlerCallRef caller, EventRef event)
|
||||||
{
|
{
|
||||||
|
@ -146,7 +146,7 @@ bool CGraphicsViewport::macEvent(EventHandlerCallRef caller, EventRef event)
|
||||||
|
|
||||||
if (Modules::objView().getDriver() && Modules::objView().getDriver()->isActive())
|
if (Modules::objView().getDriver() && Modules::objView().getDriver()->isActive())
|
||||||
{
|
{
|
||||||
NL3D::IDriver *driver = dynamic_cast<NL3D::CDriverUser*>(Modules::objView().getDriver())->getDriver();
|
NL3D::IDriver *driver = dynamic_cast<NL3D::CDriverUser *>(Modules::objView().getDriver())->getDriver();
|
||||||
if (driver)
|
if (driver)
|
||||||
{
|
{
|
||||||
cocoaProc proc = (cocoaProc)driver->getWindowProc();
|
cocoaProc proc = (cocoaProc)driver->getWindowProc();
|
||||||
|
@ -165,7 +165,7 @@ bool CGraphicsViewport::x11Event(XEvent *event)
|
||||||
{
|
{
|
||||||
if (Modules::objView().getDriver() && Modules::objView().getDriver()->isActive())
|
if (Modules::objView().getDriver() && Modules::objView().getDriver()->isActive())
|
||||||
{
|
{
|
||||||
NL3D::IDriver *driver = dynamic_cast<NL3D::CDriverUser*>(Modules::objView().getDriver())->getDriver();
|
NL3D::IDriver *driver = dynamic_cast<NL3D::CDriverUser *>(Modules::objView().getDriver())->getDriver();
|
||||||
if (driver)
|
if (driver)
|
||||||
{
|
{
|
||||||
x11Proc proc = (x11Proc)driver->getWindowProc();
|
x11Proc proc = (x11Proc)driver->getWindowProc();
|
||||||
|
|
|
@ -81,7 +81,7 @@ protected:
|
||||||
virtual void resizeEvent(QResizeEvent *resizeEvent);
|
virtual void resizeEvent(QResizeEvent *resizeEvent);
|
||||||
|
|
||||||
#if defined(NL_OS_WINDOWS)
|
#if defined(NL_OS_WINDOWS)
|
||||||
virtual bool winEvent(MSG * message, long * result);
|
virtual bool winEvent(MSG *message, long *result);
|
||||||
#elif defined(NL_OS_MAC)
|
#elif defined(NL_OS_MAC)
|
||||||
virtual bool macEvent(EventHandlerCallRef caller, EventRef event);
|
virtual bool macEvent(EventHandlerCallRef caller, EventRef event);
|
||||||
#elif defined(NL_OS_UNIX)
|
#elif defined(NL_OS_UNIX)
|
||||||
|
|
|
@ -393,7 +393,7 @@ private:
|
||||||
|
|
||||||
void touchPSState();
|
void touchPSState();
|
||||||
|
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
|
||||||
/// The bindable being edited
|
/// The bindable being edited
|
||||||
NL3D::CPSLocatedBindable *_Bindable;
|
NL3D::CPSLocatedBindable *_Bindable;
|
||||||
|
|
|
@ -13,9 +13,10 @@
|
||||||
#include <nel/misc/file.h>
|
#include <nel/misc/file.h>
|
||||||
#include <nel/misc/path.h>
|
#include <nel/misc/path.h>
|
||||||
#include <nel/misc/command.h>
|
#include <nel/misc/command.h>
|
||||||
#include "extension_system/iplugin_spec.h"
|
|
||||||
// Project includes
|
// Project includes
|
||||||
#include "modules.h"
|
#include "modules.h"
|
||||||
|
#include "extension_system/iplugin_spec.h"
|
||||||
|
|
||||||
// nel_qt log file name
|
// nel_qt log file name
|
||||||
#define NLQT_LOG_FILE "nel_qt.log"
|
#define NLQT_LOG_FILE "nel_qt.log"
|
||||||
|
@ -65,7 +66,7 @@ sint main(int argc, char **argv)
|
||||||
// use log.log if NEL_LOG_IN_FILE and NLQT_USE_LOG_LOG defined as 1
|
// use log.log if NEL_LOG_IN_FILE and NLQT_USE_LOG_LOG defined as 1
|
||||||
createDebug(NULL, NLQT_USE_LOG_LOG, false);
|
createDebug(NULL, NLQT_USE_LOG_LOG, false);
|
||||||
#if NLQT_USE_LOG
|
#if NLQT_USE_LOG
|
||||||
// create toverhex_client.log
|
// create NLQT_LOG_FILE
|
||||||
// filedisplayer only deletes the 001 etc
|
// filedisplayer only deletes the 001 etc
|
||||||
if (NLQT_ERASE_LOG && CFile::isExists(NLQT_LOG_FILE))
|
if (NLQT_ERASE_LOG && CFile::isExists(NLQT_LOG_FILE))
|
||||||
CFile::deleteFile(NLQT_LOG_FILE);
|
CFile::deleteFile(NLQT_LOG_FILE);
|
||||||
|
@ -79,7 +80,7 @@ sint main(int argc, char **argv)
|
||||||
ErrorLog->addDisplayer(NLQT::s_FileDisplayer);
|
ErrorLog->addDisplayer(NLQT::s_FileDisplayer);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
nlinfo("Welcome to NeL!");
|
nlinfo("Welcome to NeL Object Viewer Qt!");
|
||||||
|
|
||||||
NLMISC::CPath::remapExtension("tga", "png", true);
|
NLMISC::CPath::remapExtension("tga", "png", true);
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,10 +56,14 @@ namespace NLQT
|
||||||
|
|
||||||
CMainWindow::CMainWindow(QWidget *parent)
|
CMainWindow::CMainWindow(QWidget *parent)
|
||||||
: QMainWindow(parent),
|
: QMainWindow(parent),
|
||||||
_isGraphicsInitialized(false), _isGraphicsEnabled(false),
|
_isGraphicsInitialized(false),
|
||||||
_isSoundInitialized(false), _isSoundEnabled(false),
|
_isGraphicsEnabled(false),
|
||||||
_isLandscapeInitialized(false), _isLandscapeEnabled(false),
|
_isSoundInitialized(false),
|
||||||
_GraphicsViewport(NULL), _lastDir(".")
|
_isSoundEnabled(false),
|
||||||
|
_isLandscapeInitialized(false),
|
||||||
|
_isLandscapeEnabled(false),
|
||||||
|
_GraphicsViewport(NULL),
|
||||||
|
_lastDir(".")
|
||||||
{
|
{
|
||||||
nldebug("CMainWindow::CMainWindow:");
|
nldebug("CMainWindow::CMainWindow:");
|
||||||
setObjectName("CMainWindow");
|
setObjectName("CMainWindow");
|
||||||
|
|
|
@ -57,9 +57,9 @@ private Q_SLOTS:
|
||||||
void editMorph();
|
void editMorph();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
|
||||||
NL3D::CPSShapeParticle *_ShapeParticle;
|
NL3D::CPSShapeParticle *_ShapeParticle;
|
||||||
|
|
||||||
void updateForMorph();
|
void updateForMorph();
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,9 @@ namespace NLQT
|
||||||
{
|
{
|
||||||
|
|
||||||
CMorphMeshDialog::CMorphMeshDialog(CWorkspaceNode *ownerNode, NL3D::CPSConstraintMesh *cm, QWidget *parent)
|
CMorphMeshDialog::CMorphMeshDialog(CWorkspaceNode *ownerNode, NL3D::CPSConstraintMesh *cm, QWidget *parent)
|
||||||
: QDialog(parent), _Node(ownerNode), _CM(cm)
|
: QDialog(parent),
|
||||||
|
_Node(ownerNode),
|
||||||
|
_CM(cm)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ private:
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
|
||||||
// the constraint mesh being edited
|
// the constraint mesh being edited
|
||||||
NL3D::CPSConstraintMesh *_CM;
|
NL3D::CPSConstraintMesh *_CM;
|
||||||
|
|
||||||
Ui::CMorphMeshDialog _ui;
|
Ui::CMorphMeshDialog _ui;
|
||||||
}; /* class CMorphMeshDialog */
|
}; /* class CMorphMeshDialog */
|
||||||
|
|
|
@ -31,7 +31,9 @@ namespace NLQT
|
||||||
{
|
{
|
||||||
|
|
||||||
CMultiTexDialog::CMultiTexDialog(CWorkspaceNode *ownerNode, NL3D::CPSMultiTexturedParticle *mtp, QWidget *parent)
|
CMultiTexDialog::CMultiTexDialog(CWorkspaceNode *ownerNode, NL3D::CPSMultiTexturedParticle *mtp, QWidget *parent)
|
||||||
: QDialog(parent), _Node(ownerNode), _MTP(mtp)
|
: QDialog(parent),
|
||||||
|
_Node(ownerNode),
|
||||||
|
_MTP(mtp)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
|
|
||||||
#include "ui_multi_tex_form.h"
|
#include "ui_multi_tex_form.h"
|
||||||
|
|
||||||
|
|
||||||
// STL includes
|
// STL includes
|
||||||
|
|
||||||
// Qt includes
|
// Qt includes
|
||||||
|
@ -75,7 +74,7 @@ private:
|
||||||
virtual void set(NL3D::ITexture *);
|
virtual void set(NL3D::ITexture *);
|
||||||
} _AlternateTexWrapper;
|
} _AlternateTexWrapper;
|
||||||
|
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
|
||||||
NL3D::CPSMultiTexturedParticle *_MTP;
|
NL3D::CPSMultiTexturedParticle *_MTP;
|
||||||
|
|
||||||
|
|
|
@ -54,11 +54,13 @@ namespace NLQT
|
||||||
{
|
{
|
||||||
|
|
||||||
CObjectViewer::CObjectViewer()
|
CObjectViewer::CObjectViewer()
|
||||||
: _Driver(NULL), _TextContext(NULL),
|
: _Driver(NULL),
|
||||||
_phi(0), _psi(0),_dist(20),
|
_TextContext(NULL),
|
||||||
_CameraFocal(75),
|
_phi(0), _psi(0),_dist(20),
|
||||||
_CurrentInstance(""),
|
_CameraFocal(75),
|
||||||
_BloomEffect(false), _Scene(0)
|
_CurrentInstance(""),
|
||||||
|
_BloomEffect(false),
|
||||||
|
_Scene(0)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -243,7 +245,7 @@ void CObjectViewer::saveScreenshot(const std::string &nameFile, bool jpg, bool p
|
||||||
bool CObjectViewer::loadMesh(const std::string &meshFileName, const std::string &skelFileName)
|
bool CObjectViewer::loadMesh(const std::string &meshFileName, const std::string &skelFileName)
|
||||||
{
|
{
|
||||||
std::string fileName = CFile::getFilenameWithoutExtension(meshFileName);
|
std::string fileName = CFile::getFilenameWithoutExtension(meshFileName);
|
||||||
if ( _Entities.count(fileName) != 0)
|
if (_Entities.count(fileName) != 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
CPath::addSearchPath(CFile::getPath(meshFileName), false, false);
|
CPath::addSearchPath(CFile::getPath(meshFileName), false, false);
|
||||||
|
|
|
@ -145,7 +145,7 @@ public:
|
||||||
|
|
||||||
/// Get current instance from the scene
|
/// Get current instance from the scene
|
||||||
/// @return name current instance, "" if no instance edited
|
/// @return name current instance, "" if no instance edited
|
||||||
const std::string& getCurrentObject()
|
std::string getCurrentObject() const
|
||||||
{
|
{
|
||||||
return _CurrentInstance;
|
return _CurrentInstance;
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,13 +34,20 @@
|
||||||
namespace NLQT
|
namespace NLQT
|
||||||
{
|
{
|
||||||
|
|
||||||
CParticleEditor::CParticleEditor(void):
|
CParticleEditor::CParticleEditor(void)
|
||||||
_ActiveNode(NULL), _State(State::Stopped), _Speed(1.0f),
|
: _ActiveNode(NULL),
|
||||||
_AutoRepeat(false), _DisplayBBox(false),
|
_State(State::Stopped),
|
||||||
_DisplayHelpers(false), _AutoUpdateBBox(false),
|
_Speed(1.0f),
|
||||||
_EmptyBBox(true), _PW(NULL),
|
_AutoRepeat(false),
|
||||||
_Driver(NULL), _Scene(NULL),
|
_DisplayBBox(false),
|
||||||
_FontManager(NULL), _FontGen(NULL)
|
_DisplayHelpers(false),
|
||||||
|
_AutoUpdateBBox(false),
|
||||||
|
_EmptyBBox(true),
|
||||||
|
_PW(NULL),
|
||||||
|
_Driver(NULL),
|
||||||
|
_Scene(NULL),
|
||||||
|
_FontManager(NULL),
|
||||||
|
_FontGen(NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,13 +57,13 @@ CParticleEditor::~CParticleEditor(void)
|
||||||
|
|
||||||
void CParticleEditor::init()
|
void CParticleEditor::init()
|
||||||
{
|
{
|
||||||
NL3D::CDriverUser *driver = dynamic_cast<NL3D::CDriverUser*>(Modules::objView().getDriver());
|
NL3D::CDriverUser *driver = dynamic_cast<NL3D::CDriverUser *>(Modules::objView().getDriver());
|
||||||
_Driver = driver->getDriver();
|
_Driver = driver->getDriver();
|
||||||
|
|
||||||
NL3D::CSceneUser *scene = dynamic_cast<NL3D::CSceneUser*>(Modules::objView().getScene());
|
NL3D::CSceneUser *scene = dynamic_cast<NL3D::CSceneUser *>(Modules::objView().getScene());
|
||||||
_Scene = &scene->getScene();
|
_Scene = &scene->getScene();
|
||||||
|
|
||||||
NL3D::CTextContextUser *textContext = dynamic_cast<NL3D::CTextContextUser*>(Modules::objView().getTextContext());
|
NL3D::CTextContextUser *textContext = dynamic_cast<NL3D::CTextContextUser *>(Modules::objView().getTextContext());
|
||||||
_FontManager = textContext->getTextContext().getFontManager();
|
_FontManager = textContext->getTextContext().getFontManager();
|
||||||
_FontGen = textContext->getTextContext().getFontGenerator();
|
_FontGen = textContext->getTextContext().getFontGenerator();
|
||||||
NL3D::CParticleSystem::setSerializeIdentifierFlag(true);
|
NL3D::CParticleSystem::setSerializeIdentifierFlag(true);
|
||||||
|
@ -125,7 +132,7 @@ void CParticleEditor::loadWorkspace(const std::string &fullPath)
|
||||||
}
|
}
|
||||||
if (node->isLoaded() && !firstLoadedNode)
|
if (node->isLoaded() && !firstLoadedNode)
|
||||||
firstLoadedNode = node;
|
firstLoadedNode = node;
|
||||||
itr++;
|
++itr;
|
||||||
}
|
}
|
||||||
closeWorkspace();
|
closeWorkspace();
|
||||||
_PW = newPW.release();
|
_PW = newPW.release();
|
||||||
|
@ -172,7 +179,7 @@ void CParticleEditor::saveWorkspaceContent()
|
||||||
if (node->isModified())
|
if (node->isModified())
|
||||||
node->savePS();
|
node->savePS();
|
||||||
node->setModified(false);
|
node->setModified(false);
|
||||||
itr++;
|
++itr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -242,7 +249,7 @@ void CParticleEditor::startMultiple()
|
||||||
CWorkspaceNode *node = (*itr);
|
CWorkspaceNode *node = (*itr);
|
||||||
if (node->isLoaded())
|
if (node->isLoaded())
|
||||||
if (checkHasLoop(*node)) return;
|
if (checkHasLoop(*node)) return;
|
||||||
itr++;
|
++itr;
|
||||||
}
|
}
|
||||||
|
|
||||||
itr = _PW->getNodeList().begin();
|
itr = _PW->getNodeList().begin();
|
||||||
|
@ -257,7 +264,7 @@ void CParticleEditor::startMultiple()
|
||||||
|
|
||||||
_PlayingNodes.push_back(node);
|
_PlayingNodes.push_back(node);
|
||||||
}
|
}
|
||||||
itr++;
|
++itr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -405,7 +412,7 @@ void CParticleEditor::update()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
itr++;
|
++itr;
|
||||||
}
|
}
|
||||||
if (fxStarted && allFXFinished)
|
if (fxStarted && allFXFinished)
|
||||||
restartAllFX();
|
restartAllFX();
|
||||||
|
@ -440,7 +447,7 @@ void CParticleEditor::update()
|
||||||
node->getPSModel()->hide();
|
node->getPSModel()->hide();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
itr++;
|
++itr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -481,7 +488,7 @@ void CParticleEditor::setSpeed(float value)
|
||||||
CWorkspaceNode *node = (*itr);
|
CWorkspaceNode *node = (*itr);
|
||||||
if (node->isLoaded())
|
if (node->isLoaded())
|
||||||
node->getPSModel()->setEllapsedTimeRatio(value);
|
node->getPSModel()->setEllapsedTimeRatio(value);
|
||||||
itr++;
|
++itr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -234,25 +234,25 @@ private:
|
||||||
|
|
||||||
// Current state
|
// Current state
|
||||||
int _State;
|
int _State;
|
||||||
float _Speed;
|
float _Speed;
|
||||||
bool _AutoRepeat;
|
bool _AutoRepeat;
|
||||||
bool _DisplayBBox;
|
bool _DisplayBBox;
|
||||||
bool _DisplayHelpers;
|
bool _DisplayHelpers;
|
||||||
|
|
||||||
// The system bbox must be updated automatically
|
// The system bbox must be updated automatically
|
||||||
bool _AutoUpdateBBox;
|
bool _AutoUpdateBBox;
|
||||||
|
|
||||||
// The last computed bbox for the system
|
// The last computed bbox for the system
|
||||||
bool _EmptyBBox;
|
bool _EmptyBBox;
|
||||||
NLMISC::CAABBox _CurrBBox;
|
NLMISC::CAABBox _CurrBBox;
|
||||||
|
|
||||||
|
|
||||||
CParticleWorkspace *_PW;
|
CParticleWorkspace *_PW;
|
||||||
NL3D::IDriver *_Driver;
|
NL3D::IDriver *_Driver;
|
||||||
NL3D::CScene *_Scene;
|
NL3D::CScene *_Scene;
|
||||||
|
|
||||||
// Font manager
|
// Font manager
|
||||||
NL3D::CFontManager *_FontManager;
|
NL3D::CFontManager *_FontManager;
|
||||||
|
|
||||||
// Font generator
|
// Font generator
|
||||||
NL3D::CFontGenerator *_FontGen;
|
NL3D::CFontGenerator *_FontGen;
|
||||||
|
|
|
@ -43,7 +43,7 @@ namespace NLQT
|
||||||
class CLocatedItem: public QListWidgetItem
|
class CLocatedItem: public QListWidgetItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CLocatedItem ( const QString & text, QListWidget * parent = 0, int type = UserType ):
|
CLocatedItem ( const QString & text, QListWidget *parent = 0, int type = UserType ):
|
||||||
QListWidgetItem(text, parent, type), _loc(NULL) {}
|
QListWidgetItem(text, parent, type), _loc(NULL) {}
|
||||||
|
|
||||||
void setUserData(NL3D::CPSLocated *loc)
|
void setUserData(NL3D::CPSLocated *loc)
|
||||||
|
|
|
@ -35,7 +35,7 @@ CParticleLinkDialog::CParticleLinkDialog(CSkeletonTreeModel *model, QWidget *par
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
qobject_cast< QMainWindow* >(parent)->addDockWidget(Qt::RightDockWidgetArea, this);
|
qobject_cast<QMainWindow *>(parent)->addDockWidget(Qt::RightDockWidgetArea, this);
|
||||||
|
|
||||||
_ui.treeView->setModel(model);
|
_ui.treeView->setModel(model);
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ void CParticleLinkDialog::setLink()
|
||||||
if (curObj.empty())
|
if (curObj.empty())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CSkeletonTreeItem *item = static_cast<CSkeletonTreeItem*>(_ui.treeView->currentIndex().internalPointer());
|
CSkeletonTreeItem *item = static_cast<CSkeletonTreeItem *>(_ui.treeView->currentIndex().internalPointer());
|
||||||
|
|
||||||
NL3D::CSkeletonModel *skel = Modules::objView().getEntity(curObj).getSkeleton().getObjectPtr();
|
NL3D::CSkeletonModel *skel = Modules::objView().getEntity(curObj).getSkeleton().getObjectPtr();
|
||||||
uint boneIndex = item->getId();
|
uint boneIndex = item->getId();
|
||||||
|
@ -85,7 +85,7 @@ void CParticleLinkDialog::resetModel()
|
||||||
_ui.unlinkPushButton->setEnabled(false);
|
_ui.unlinkPushButton->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CParticleLinkDialog::clickedItem(const QModelIndex & index)
|
void CParticleLinkDialog::clickedItem(const QModelIndex &index)
|
||||||
{
|
{
|
||||||
_ui.linkPushButton->setEnabled(true);
|
_ui.linkPushButton->setEnabled(true);
|
||||||
_ui.unlinkPushButton->setEnabled(true);
|
_ui.unlinkPushButton->setEnabled(true);
|
||||||
|
|
|
@ -44,7 +44,7 @@ private Q_SLOTS:
|
||||||
void setLink();
|
void setLink();
|
||||||
void setUnlink();
|
void setUnlink();
|
||||||
void resetModel();
|
void resetModel();
|
||||||
void clickedItem(const QModelIndex & index);
|
void clickedItem(const QModelIndex &index);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|
|
@ -56,14 +56,16 @@ CWorkspaceNode::~CWorkspaceNode()
|
||||||
void CWorkspaceNode::memorizeState()
|
void CWorkspaceNode::memorizeState()
|
||||||
{
|
{
|
||||||
nlassert(_WS);
|
nlassert(_WS);
|
||||||
if (!_PS) return;
|
if (!_PS)
|
||||||
|
return;
|
||||||
_InitialPos.copySystemInitialPos(_PS);
|
_InitialPos.copySystemInitialPos(_PS);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CWorkspaceNode::restoreState()
|
void CWorkspaceNode::restoreState()
|
||||||
{
|
{
|
||||||
nlassert(_WS);
|
nlassert(_WS);
|
||||||
if (!_PS) return;
|
if (!_PS)
|
||||||
|
return;
|
||||||
_InitialPos.restoreSystem();
|
_InitialPos.restoreSystem();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,7 +80,8 @@ void CWorkspaceNode::stickPSToSkeleton(NL3D::CSkeletonModel *skel,
|
||||||
const std::string &parentBoneName)
|
const std::string &parentBoneName)
|
||||||
{
|
{
|
||||||
nlassert(_WS);
|
nlassert(_WS);
|
||||||
if (!_PSM) return;
|
if (!_PSM)
|
||||||
|
return;
|
||||||
unstickPSFromSkeleton();
|
unstickPSFromSkeleton();
|
||||||
_ParentSkelName = parentSkelName;
|
_ParentSkelName = parentSkelName;
|
||||||
_ParentBoneName = parentBoneName;
|
_ParentBoneName = parentBoneName;
|
||||||
|
@ -308,7 +311,7 @@ CParticleWorkspace::CParticleWorkspace()
|
||||||
|
|
||||||
CParticleWorkspace::~CParticleWorkspace()
|
CParticleWorkspace::~CParticleWorkspace()
|
||||||
{
|
{
|
||||||
for (size_t i = 0; i < _Nodes.size(); i++)
|
for (size_t i = 0; i < _Nodes.size(); ++i)
|
||||||
delete _Nodes[i];
|
delete _Nodes[i];
|
||||||
_Nodes.clear();
|
_Nodes.clear();
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,27 +163,27 @@ public:
|
||||||
void setTriggerAnim(const std::string &anim);
|
void setTriggerAnim(const std::string &anim);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string _TriggerAnim;
|
std::string _TriggerAnim;
|
||||||
NL3D::CParticleSystem *_PS;
|
NL3D::CParticleSystem *_PS;
|
||||||
NL3D::CParticleSystemModel *_PSM;
|
NL3D::CParticleSystemModel *_PSM;
|
||||||
|
|
||||||
// Keep a shape bank per node because we want the whole path to identify the ps, not just its filename
|
// Keep a shape bank per node because we want the whole path to identify the ps, not just its filename
|
||||||
// (shape bank keeps the filename only)
|
// (shape bank keeps the filename only)
|
||||||
NL3D::CShapeBank *_ShapeBank;
|
NL3D::CShapeBank *_ShapeBank;
|
||||||
|
|
||||||
// Relative path from which the ps was inserted
|
// Relative path from which the ps was inserted
|
||||||
// relative path is also a unique identifier for this ps in the workspace
|
// relative path is also a unique identifier for this ps in the workspace
|
||||||
std::string _RelativePath;
|
std::string _RelativePath;
|
||||||
|
|
||||||
// initial pos of system. Allow to restore the initial instances of the system when doing start / stop
|
// initial pos of system. Allow to restore the initial instances of the system when doing start / stop
|
||||||
CPSInitialPos _InitialPos;
|
CPSInitialPos _InitialPos;
|
||||||
bool _Modified;
|
bool _Modified;
|
||||||
CParticleWorkspace *_WS;
|
CParticleWorkspace *_WS;
|
||||||
NLMISC::CRefPtr<NL3D::CSkeletonModel> _ParentSkel;
|
NLMISC::CRefPtr<NL3D::CSkeletonModel> _ParentSkel;
|
||||||
bool _ResetAutoCount;
|
bool _ResetAutoCount;
|
||||||
//
|
//
|
||||||
std::string _ParentSkelName;
|
std::string _ParentSkelName;
|
||||||
std::string _ParentBoneName;
|
std::string _ParentBoneName;
|
||||||
private:
|
private:
|
||||||
void setup(NL3D::CParticleSystemModel &psm);
|
void setup(NL3D::CParticleSystemModel &psm);
|
||||||
public:
|
public:
|
||||||
|
@ -339,13 +339,13 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// use smart ptr to avoir prb wih resize
|
// use smart ptr to avoir prb wih resize
|
||||||
TNodeVect _Nodes;
|
TNodeVect _Nodes;
|
||||||
// path + name of workspace
|
// path + name of workspace
|
||||||
std::string _Filename;
|
std::string _Filename;
|
||||||
bool _Modified;
|
bool _Modified;
|
||||||
IModificationCallback *_ModificationCallback;
|
IModificationCallback *_ModificationCallback;
|
||||||
// workspace user name
|
// workspace user name
|
||||||
std::string _Name;
|
std::string _Name;
|
||||||
|
|
||||||
/// serial the object
|
/// serial the object
|
||||||
void serial(NLMISC::IStream &f) throw(NLMISC::EStream);
|
void serial(NLMISC::IStream &f) throw(NLMISC::EStream);
|
||||||
|
|
|
@ -68,25 +68,25 @@ public:
|
||||||
private:
|
private:
|
||||||
void setupUi();
|
void setupUi();
|
||||||
|
|
||||||
QWidget *_dockWidgetContents;
|
QWidget *_dockWidgetContents;
|
||||||
QGridLayout *_gridLayout;
|
QGridLayout *_gridLayout;
|
||||||
QGridLayout *_pagesGridLayout;
|
QGridLayout *_pagesGridLayout;
|
||||||
QScrollArea *_scrollArea;
|
QScrollArea *_scrollArea;
|
||||||
QWidget *_scrollAreaWidgetContents;
|
QWidget *_scrollAreaWidgetContents;
|
||||||
|
|
||||||
QStackedWidget *_stackedWidget;
|
QStackedWidget *_stackedWidget;
|
||||||
CWorkspacePage *_wpPage;
|
CWorkspacePage *_wpPage;
|
||||||
CParticleSystemPage *_psPage;
|
CParticleSystemPage *_psPage;
|
||||||
CLocatedBindablePage *_locatedBindablePage;
|
CLocatedBindablePage *_locatedBindablePage;
|
||||||
CLocatedPage *_locatedPage;
|
CLocatedPage *_locatedPage;
|
||||||
CForcePage *_forcePage;
|
CForcePage *_forcePage;
|
||||||
CLightPage *_lightPage;
|
CLightPage *_lightPage;
|
||||||
CZonePage *_zonePage;
|
CZonePage *_zonePage;
|
||||||
CSoundPage *_soundPage;
|
CSoundPage *_soundPage;
|
||||||
CEmitterPage *_emitterPage;
|
CEmitterPage *_emitterPage;
|
||||||
CPSMoverPage *_psMoverPage;
|
CPSMoverPage *_psMoverPage;
|
||||||
|
|
||||||
CParticleTreeModel *_treeModel;
|
CParticleTreeModel *_treeModel;
|
||||||
|
|
||||||
friend class CParticleWorkspaceDialog;
|
friend class CParticleWorkspaceDialog;
|
||||||
}; /* class CPropertyDialog */
|
}; /* class CPropertyDialog */
|
||||||
|
|
|
@ -117,7 +117,7 @@ private:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// the sound being edited
|
/// the sound being edited
|
||||||
NL3D::CPSSound *_Sound;
|
NL3D::CPSSound *_Sound;
|
||||||
|
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
|
||||||
|
|
|
@ -116,7 +116,7 @@ private:
|
||||||
if ((_Node) && (enabledModifiedFlag)) _Node->setModified(true);
|
if ((_Node) && (enabledModifiedFlag)) _Node->setModified(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
|
||||||
struct CGlobalColorWrapper : public IPSSchemeWrapperRGBA
|
struct CGlobalColorWrapper : public IPSSchemeWrapperRGBA
|
||||||
{
|
{
|
||||||
|
|
|
@ -68,10 +68,10 @@ private Q_SLOTS:
|
||||||
private:
|
private:
|
||||||
void updateTexture();
|
void updateTexture();
|
||||||
|
|
||||||
IPSWrapperTexture *_Wrapper ;
|
IPSWrapperTexture *_Wrapper;
|
||||||
|
|
||||||
// the current texture
|
// the current texture
|
||||||
NLMISC::CSmartPtr<NL3D::ITexture> _Texture ;
|
NLMISC::CSmartPtr<NL3D::ITexture> _Texture;
|
||||||
|
|
||||||
Ui::CParticleTextureWidget _ui;
|
Ui::CParticleTextureWidget _ui;
|
||||||
}; /* class CParticleTextureWidget */
|
}; /* class CParticleTextureWidget */
|
||||||
|
|
|
@ -114,7 +114,7 @@ CParticleTreeItem *CParticleTreeItem::parent()
|
||||||
int CParticleTreeItem::row() const
|
int CParticleTreeItem::row() const
|
||||||
{
|
{
|
||||||
if (_parentItem)
|
if (_parentItem)
|
||||||
return _parentItem->_childItems.indexOf(const_cast<CParticleTreeItem*>(this));
|
return _parentItem->_childItems.indexOf(const_cast<CParticleTreeItem *>(this));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,7 +188,7 @@ QVariant CParticleTreeModel::data(const QModelIndex &index, int role) const
|
||||||
|
|
||||||
if (role == Qt::DisplayRole)
|
if (role == Qt::DisplayRole)
|
||||||
{
|
{
|
||||||
CParticleTreeItem *item = static_cast<CParticleTreeItem*>(index.internalPointer());
|
CParticleTreeItem *item = static_cast<CParticleTreeItem *>(index.internalPointer());
|
||||||
if (item->itemType() == ItemType::ParticleSystem)
|
if (item->itemType() == ItemType::ParticleSystem)
|
||||||
{
|
{
|
||||||
if (item->getNode()->isModified())
|
if (item->getNode()->isModified())
|
||||||
|
@ -203,7 +203,7 @@ QVariant CParticleTreeModel::data(const QModelIndex &index, int role) const
|
||||||
}
|
}
|
||||||
if (role == Qt::FontRole)
|
if (role == Qt::FontRole)
|
||||||
{
|
{
|
||||||
CParticleTreeItem *item = static_cast<CParticleTreeItem*>(index.internalPointer());
|
CParticleTreeItem *item = static_cast<CParticleTreeItem *>(index.internalPointer());
|
||||||
if (Modules::psEdit().getActiveNode() != NULL)
|
if (Modules::psEdit().getActiveNode() != NULL)
|
||||||
{
|
{
|
||||||
if (item->data(0) == QString(Modules::psEdit().getActiveNode()->getFilename().c_str()))
|
if (item->data(0) == QString(Modules::psEdit().getActiveNode()->getFilename().c_str()))
|
||||||
|
@ -224,7 +224,7 @@ Qt::ItemFlags CParticleTreeModel::flags(const QModelIndex &index) const
|
||||||
if (!index.isValid())
|
if (!index.isValid())
|
||||||
return itmFlags;
|
return itmFlags;
|
||||||
|
|
||||||
CParticleTreeItem *item = static_cast<CParticleTreeItem*>(index.internalPointer());
|
CParticleTreeItem *item = static_cast<CParticleTreeItem *>(index.internalPointer());
|
||||||
switch (item->itemType())
|
switch (item->itemType())
|
||||||
{
|
{
|
||||||
case ItemType::Particle:
|
case ItemType::Particle:
|
||||||
|
@ -247,7 +247,7 @@ Qt::ItemFlags CParticleTreeModel::flags(const QModelIndex &index) const
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
//CParticleWorkspaceDialog *pwsd = qobject_cast<CParticleWorkspaceDialog*>(QObject::parent());
|
//CParticleWorkspaceDialog *pwsd = qobject_cast<CParticleWorkspaceDialog *>(QObject::parent());
|
||||||
//pwsd->updateTreeView();
|
//pwsd->updateTreeView();
|
||||||
|
|
||||||
return itmFlags;
|
return itmFlags;
|
||||||
|
@ -273,7 +273,7 @@ const
|
||||||
if (!parent.isValid())
|
if (!parent.isValid())
|
||||||
parentItem = _rootItem;
|
parentItem = _rootItem;
|
||||||
else
|
else
|
||||||
parentItem = static_cast<CParticleTreeItem*>(parent.internalPointer());
|
parentItem = static_cast<CParticleTreeItem *>(parent.internalPointer());
|
||||||
|
|
||||||
CParticleTreeItem *childItem = parentItem->child(row);
|
CParticleTreeItem *childItem = parentItem->child(row);
|
||||||
if (childItem)
|
if (childItem)
|
||||||
|
@ -287,7 +287,7 @@ QModelIndex CParticleTreeModel::parent(const QModelIndex &index) const
|
||||||
if (!index.isValid())
|
if (!index.isValid())
|
||||||
return QModelIndex();
|
return QModelIndex();
|
||||||
|
|
||||||
CParticleTreeItem *childItem = static_cast<CParticleTreeItem*>(index.internalPointer());
|
CParticleTreeItem *childItem = static_cast<CParticleTreeItem *>(index.internalPointer());
|
||||||
CParticleTreeItem *parentItem = childItem->parent();
|
CParticleTreeItem *parentItem = childItem->parent();
|
||||||
|
|
||||||
if (parentItem == _rootItem)
|
if (parentItem == _rootItem)
|
||||||
|
@ -305,7 +305,7 @@ int CParticleTreeModel::rowCount(const QModelIndex &parent) const
|
||||||
if (!parent.isValid())
|
if (!parent.isValid())
|
||||||
parentItem = _rootItem;
|
parentItem = _rootItem;
|
||||||
else
|
else
|
||||||
parentItem = static_cast<CParticleTreeItem*>(parent.internalPointer());
|
parentItem = static_cast<CParticleTreeItem *>(parent.internalPointer());
|
||||||
|
|
||||||
return parentItem->childCount();
|
return parentItem->childCount();
|
||||||
}
|
}
|
||||||
|
@ -314,7 +314,7 @@ bool CParticleTreeModel::setData(const QModelIndex &index, const QVariant &value
|
||||||
{
|
{
|
||||||
if (index.isValid() && role == Qt::EditRole)
|
if (index.isValid() && role == Qt::EditRole)
|
||||||
{
|
{
|
||||||
CParticleTreeItem *item = static_cast<CParticleTreeItem*>(index.internalPointer());
|
CParticleTreeItem *item = static_cast<CParticleTreeItem *>(index.internalPointer());
|
||||||
QList<QVariant> listData;
|
QList<QVariant> listData;
|
||||||
listData << value;
|
listData << value;
|
||||||
item->replace(listData);
|
item->replace(listData);
|
||||||
|
@ -331,7 +331,7 @@ bool CParticleTreeModel::setData(const QModelIndex &index, const QVariant &value
|
||||||
|
|
||||||
QIcon CParticleTreeModel::getIcon(const QModelIndex &index) const
|
QIcon CParticleTreeModel::getIcon(const QModelIndex &index) const
|
||||||
{
|
{
|
||||||
CParticleTreeItem *item = static_cast<CParticleTreeItem*>(index.internalPointer());
|
CParticleTreeItem *item = static_cast<CParticleTreeItem *>(index.internalPointer());
|
||||||
switch (item->itemType())
|
switch (item->itemType())
|
||||||
{
|
{
|
||||||
case ItemType::Root:
|
case ItemType::Root:
|
||||||
|
@ -364,7 +364,7 @@ QIcon CParticleTreeModel::getIcon(const QModelIndex &index) const
|
||||||
|
|
||||||
bool CParticleTreeModel::insertRows(CWorkspaceNode *node, int position, const QModelIndex &parent)
|
bool CParticleTreeModel::insertRows(CWorkspaceNode *node, int position, const QModelIndex &parent)
|
||||||
{
|
{
|
||||||
CParticleTreeItem *item = static_cast<CParticleTreeItem*>(parent.internalPointer());
|
CParticleTreeItem *item = static_cast<CParticleTreeItem *>(parent.internalPointer());
|
||||||
|
|
||||||
beginInsertRows(parent, position, position);
|
beginInsertRows(parent, position, position);
|
||||||
setupModelFromPS(node, item);
|
setupModelFromPS(node, item);
|
||||||
|
@ -373,7 +373,7 @@ bool CParticleTreeModel::insertRows(CWorkspaceNode *node, int position, const QM
|
||||||
if (node->isLoaded())
|
if (node->isLoaded())
|
||||||
{
|
{
|
||||||
QModelIndex indexPS = index(item->childCount() - 1, 0, parent);
|
QModelIndex indexPS = index(item->childCount() - 1, 0, parent);
|
||||||
for (uint k = 0; k < node->getPSPointer()->getNbProcess(); k++)
|
for (uint k = 0; k < node->getPSPointer()->getNbProcess(); ++k)
|
||||||
{
|
{
|
||||||
NL3D::CPSLocated *loc = dynamic_cast<NL3D::CPSLocated *>(node->getPSPointer()->getProcess(k));
|
NL3D::CPSLocated *loc = dynamic_cast<NL3D::CPSLocated *>(node->getPSPointer()->getProcess(k));
|
||||||
insertRows(loc, k, indexPS);
|
insertRows(loc, k, indexPS);
|
||||||
|
@ -384,7 +384,7 @@ bool CParticleTreeModel::insertRows(CWorkspaceNode *node, int position, const QM
|
||||||
|
|
||||||
bool CParticleTreeModel::insertRows(NL3D::CPSLocated *loc, int position, const QModelIndex &parent)
|
bool CParticleTreeModel::insertRows(NL3D::CPSLocated *loc, int position, const QModelIndex &parent)
|
||||||
{
|
{
|
||||||
CParticleTreeItem *item = static_cast<CParticleTreeItem*>(parent.internalPointer());
|
CParticleTreeItem *item = static_cast<CParticleTreeItem *>(parent.internalPointer());
|
||||||
|
|
||||||
beginInsertRows(parent, position, position);
|
beginInsertRows(parent, position, position);
|
||||||
createItemFromLocated(loc, item);
|
createItemFromLocated(loc, item);
|
||||||
|
@ -403,7 +403,7 @@ bool CParticleTreeModel::insertRows(NL3D::CPSLocated *loc, int position, const Q
|
||||||
bool CParticleTreeModel::insertRow(NL3D::CPSLocated *loc, uint32 index, int position, const QModelIndex &parent)
|
bool CParticleTreeModel::insertRow(NL3D::CPSLocated *loc, uint32 index, int position, const QModelIndex &parent)
|
||||||
{
|
{
|
||||||
beginInsertRows(parent, position, position);
|
beginInsertRows(parent, position, position);
|
||||||
createItemFromLocatedInstance(loc, index, static_cast<CParticleTreeItem*>(parent.internalPointer()));
|
createItemFromLocatedInstance(loc, index, static_cast<CParticleTreeItem *>(parent.internalPointer()));
|
||||||
endInsertRows();
|
endInsertRows();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -411,14 +411,14 @@ bool CParticleTreeModel::insertRow(NL3D::CPSLocated *loc, uint32 index, int posi
|
||||||
bool CParticleTreeModel::insertRow(NL3D::CPSLocatedBindable *lb, int position, const QModelIndex &parent)
|
bool CParticleTreeModel::insertRow(NL3D::CPSLocatedBindable *lb, int position, const QModelIndex &parent)
|
||||||
{
|
{
|
||||||
beginInsertRows(parent, position, position);
|
beginInsertRows(parent, position, position);
|
||||||
createItemFromLocatedBindable(lb, static_cast<CParticleTreeItem*>(parent.internalPointer()));
|
createItemFromLocatedBindable(lb, static_cast<CParticleTreeItem *>(parent.internalPointer()));
|
||||||
endInsertRows();
|
endInsertRows();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CParticleTreeModel::removeRows(int position, const QModelIndex &parent)
|
bool CParticleTreeModel::removeRows(int position, const QModelIndex &parent)
|
||||||
{
|
{
|
||||||
CParticleTreeItem *item = static_cast<CParticleTreeItem*>(parent.internalPointer())->child(position);
|
CParticleTreeItem *item = static_cast<CParticleTreeItem *>(parent.internalPointer())->child(position);
|
||||||
while (item->childCount() != 0)
|
while (item->childCount() != 0)
|
||||||
removeRows(0, parent.child(position, 0));
|
removeRows(0, parent.child(position, 0));
|
||||||
|
|
||||||
|
@ -454,14 +454,14 @@ CWorkspaceNode *CParticleTreeModel::getOwnerNode(CParticleTreeItem *item) const
|
||||||
|
|
||||||
void CParticleTreeModel::rebuildLocatedInstance(const QModelIndex &parent)
|
void CParticleTreeModel::rebuildLocatedInstance(const QModelIndex &parent)
|
||||||
{
|
{
|
||||||
CParticleTreeItem *item = static_cast<CParticleTreeItem*>(parent.internalPointer());
|
CParticleTreeItem *item = static_cast<CParticleTreeItem *>(parent.internalPointer());
|
||||||
int k = 0;
|
int k = 0;
|
||||||
for (int i = 0; i < item->childCount(); i++)
|
for (int i = 0; i < item->childCount(); ++i)
|
||||||
{
|
{
|
||||||
if (item->child(i)->itemType() == ItemType::LocatedInstance)
|
if (item->child(i)->itemType() == ItemType::LocatedInstance)
|
||||||
{
|
{
|
||||||
item->child(i)->setLocatedInstanceIndex(k);
|
item->child(i)->setLocatedInstanceIndex(k);
|
||||||
k++;
|
++k;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -491,7 +491,7 @@ void CParticleTreeModel::setupModelFromWorkSpace()
|
||||||
|
|
||||||
QModelIndex rootIndex = index(0, 0);
|
QModelIndex rootIndex = index(0, 0);
|
||||||
uint numNode = workspace->getNumNode();
|
uint numNode = workspace->getNumNode();
|
||||||
for (uint i = 0; i < numNode; i++)
|
for (uint i = 0; i < numNode; ++i)
|
||||||
insertRows(workspace->getNode(i), i, rootIndex);
|
insertRows(workspace->getNode(i), i, rootIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -99,16 +99,16 @@ public:
|
||||||
private:
|
private:
|
||||||
union
|
union
|
||||||
{
|
{
|
||||||
CParticleWorkspace *_WS;
|
CParticleWorkspace *_WS;
|
||||||
NL3D::CPSLocated *_Loc;
|
NL3D::CPSLocated *_Loc;
|
||||||
NL3D::CPSLocatedBindable *_Bind;
|
NL3D::CPSLocatedBindable *_Bind;
|
||||||
CWorkspaceNode *_PS;
|
CWorkspaceNode *_PS;
|
||||||
};
|
};
|
||||||
|
|
||||||
// for the located instance type, this is the index of the instance
|
// for the located instance type, this is the index of the instance
|
||||||
uint32 _LocatedInstanceIndex;
|
uint32 _LocatedInstanceIndex;
|
||||||
|
|
||||||
QList<CParticleTreeItem*> _childItems;
|
QList<CParticleTreeItem *> _childItems;
|
||||||
QList<QVariant> _itemData;
|
QList<QVariant> _itemData;
|
||||||
int _itemIconType;
|
int _itemIconType;
|
||||||
CParticleTreeItem *_parentItem;
|
CParticleTreeItem *_parentItem;
|
||||||
|
|
|
@ -123,7 +123,8 @@ struct Action
|
||||||
static std::map<std::string, uint> _PSElementIdentifiers;
|
static std::map<std::string, uint> _PSElementIdentifiers;
|
||||||
|
|
||||||
CParticleWorkspaceDialog::CParticleWorkspaceDialog(QWidget *parent)
|
CParticleWorkspaceDialog::CParticleWorkspaceDialog(QWidget *parent)
|
||||||
: QDockWidget(parent), _currentItem(NULL)
|
: QDockWidget(parent),
|
||||||
|
_currentItem(NULL)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
|
@ -218,7 +219,7 @@ void CParticleWorkspaceDialog::clickedItem(const QModelIndex & index)
|
||||||
if (_currentItem != NULL)
|
if (_currentItem != NULL)
|
||||||
_treeModel->getOwnerNode(_currentItem)->getPSPointer()->setCurrentEditedElement(NULL);
|
_treeModel->getOwnerNode(_currentItem)->getPSPointer()->setCurrentEditedElement(NULL);
|
||||||
|
|
||||||
_currentItem = static_cast<CParticleTreeItem*>(index.internalPointer());
|
_currentItem = static_cast<CParticleTreeItem *>(index.internalPointer());
|
||||||
|
|
||||||
if (index.flags() != Qt::NoItemFlags)
|
if (index.flags() != Qt::NoItemFlags)
|
||||||
_PropertyDialog->setCurrentEditedElement(_currentItem);
|
_PropertyDialog->setCurrentEditedElement(_currentItem);
|
||||||
|
@ -303,7 +304,7 @@ void CParticleWorkspaceDialog::customContextMenu()
|
||||||
void CParticleWorkspaceDialog::setActiveNode()
|
void CParticleWorkspaceDialog::setActiveNode()
|
||||||
{
|
{
|
||||||
QModelIndex index = _ui.treeView->currentIndex();
|
QModelIndex index = _ui.treeView->currentIndex();
|
||||||
CParticleTreeItem *item = static_cast<CParticleTreeItem*>(index.internalPointer());
|
CParticleTreeItem *item = static_cast<CParticleTreeItem *>(index.internalPointer());
|
||||||
nlassert(item->getNode());
|
nlassert(item->getNode());
|
||||||
Modules::psEdit().setActiveNode(item->getNode());
|
Modules::psEdit().setActiveNode(item->getNode());
|
||||||
Q_EMIT changeActiveNode();
|
Q_EMIT changeActiveNode();
|
||||||
|
@ -365,7 +366,7 @@ void CParticleWorkspaceDialog::removePS()
|
||||||
QModelIndex index = _ui.treeView->currentIndex();
|
QModelIndex index = _ui.treeView->currentIndex();
|
||||||
_ui.treeView->setCurrentIndex(index.parent());
|
_ui.treeView->setCurrentIndex(index.parent());
|
||||||
clickedItem(index.parent());
|
clickedItem(index.parent());
|
||||||
Modules::psEdit().getParticleWorkspace()->removeNode(static_cast<CParticleTreeItem*>(index.internalPointer())->getNode());
|
Modules::psEdit().getParticleWorkspace()->removeNode(static_cast<CParticleTreeItem *>(index.internalPointer())->getNode());
|
||||||
_treeModel->removeRows(index.row(), index.parent());
|
_treeModel->removeRows(index.row(), index.parent());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -605,7 +606,7 @@ void CParticleWorkspaceDialog::deleteItem()
|
||||||
{
|
{
|
||||||
_treeModel->getOwnerNode(_currentItem)->setModified(true);
|
_treeModel->getOwnerNode(_currentItem)->setModified(true);
|
||||||
QModelIndex index = _ui.treeView->currentIndex();
|
QModelIndex index = _ui.treeView->currentIndex();
|
||||||
CParticleTreeItem *item = static_cast<CParticleTreeItem*>(index.internalPointer());
|
CParticleTreeItem *item = static_cast<CParticleTreeItem *>(index.internalPointer());
|
||||||
CWorkspaceNode *ownerNode = _treeModel->getOwnerNode(item);
|
CWorkspaceNode *ownerNode = _treeModel->getOwnerNode(item);
|
||||||
nlassert(ownerNode);
|
nlassert(ownerNode);
|
||||||
_ui.treeView->setCurrentIndex(index.parent());
|
_ui.treeView->setCurrentIndex(index.parent());
|
||||||
|
|
|
@ -123,7 +123,7 @@ private:
|
||||||
QAction *_lod2Action;
|
QAction *_lod2Action;
|
||||||
QAction *_externIDAction;
|
QAction *_externIDAction;
|
||||||
|
|
||||||
std::auto_ptr<NL3D::CPSLocated> _LocatedCopy;
|
std::auto_ptr<NL3D::CPSLocated> _LocatedCopy;
|
||||||
std::auto_ptr<NL3D::CPSLocatedBindable> _LocatedBindableCopy;
|
std::auto_ptr<NL3D::CPSLocatedBindable> _LocatedBindableCopy;
|
||||||
|
|
||||||
CParticleTreeItem *_currentItem;
|
CParticleTreeItem *_currentItem;
|
||||||
|
|
|
@ -141,7 +141,7 @@ void CWorkspacePage::insertPS()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QModelIndex index = _treeModel->index(0, 0);
|
QModelIndex index = _treeModel->index(0, 0);
|
||||||
_treeModel->insertRows(node, static_cast<CParticleTreeItem*>(index.internalPointer())->childCount(), index);
|
_treeModel->insertRows(node, static_cast<CParticleTreeItem *>(index.internalPointer())->childCount(), index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -180,7 +180,7 @@ void CWorkspacePage::createPS()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QModelIndex index = _treeModel->index(0, 0);
|
QModelIndex index = _treeModel->index(0, 0);
|
||||||
_treeModel->insertRows(node, static_cast<CParticleTreeItem*>(index.internalPointer())->childCount(), index);
|
_treeModel->insertRows(node, static_cast<CParticleTreeItem *>(index.internalPointer())->childCount(), index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,8 @@ namespace NLQT
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@class CWorkspacePage
|
@class CWorkspacePage
|
||||||
@brief Page for QStackWidget, to particles workspace operation (new/load/save workspace, create/insert/remove all particles system to workspace)
|
@brief Page for QStackWidget, to particles workspace operation (new/load/save workspace,
|
||||||
|
create/insert/remove all particles system to workspace)
|
||||||
*/
|
*/
|
||||||
class CWorkspacePage: public QWidget
|
class CWorkspacePage: public QWidget
|
||||||
{
|
{
|
||||||
|
|
|
@ -130,7 +130,7 @@ void CZonePage::updateTargets()
|
||||||
};
|
};
|
||||||
|
|
||||||
// fill abox with the available targets
|
// fill abox with the available targets
|
||||||
NL3D::CParticleSystem *ps = _LBTarget->getOwner()->getOwner();
|
NL3D::CParticleSystem *ps = _LBTarget->getOwner()->getOwner();
|
||||||
|
|
||||||
uint nbLocated = ps->getNbProcess();
|
uint nbLocated = ps->getNbProcess();
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ private:
|
||||||
NL3D::CPSTargetLocatedBindable *_LBTarget;
|
NL3D::CPSTargetLocatedBindable *_LBTarget;
|
||||||
|
|
||||||
/// the collision zone being edited
|
/// the collision zone being edited
|
||||||
NL3D::CPSZone *_Zone ;
|
NL3D::CPSZone *_Zone ;
|
||||||
|
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ bool MyPlugin::initialize(NLQT::IPluginManager *pluginManager, QString *errorStr
|
||||||
_plugMan = pluginManager;
|
_plugMan = pluginManager;
|
||||||
QString str;
|
QString str;
|
||||||
|
|
||||||
QList<NLQT::IPluginSpec *> listPlug = pluginManager->plugins();
|
QList<NLQT::IPluginSpec *> listPlug = pluginManager->plugins();
|
||||||
|
|
||||||
Q_FOREACH (NLQT::IPluginSpec *plugSpec, listPlug)
|
Q_FOREACH (NLQT::IPluginSpec *plugSpec, listPlug)
|
||||||
str += plugSpec->name();
|
str += plugSpec->name();
|
||||||
|
@ -32,6 +32,8 @@ bool MyPlugin::initialize(NLQT::IPluginManager *pluginManager, QString *errorStr
|
||||||
void MyPlugin::extensionsInitialized()
|
void MyPlugin::extensionsInitialized()
|
||||||
{
|
{
|
||||||
QMenu *helpMenu = qobject_cast<QMenu *>(objectByName("ovqt.Menu.Help"));
|
QMenu *helpMenu = qobject_cast<QMenu *>(objectByName("ovqt.Menu.Help"));
|
||||||
|
nlassert(helpMenu);
|
||||||
|
|
||||||
helpMenu->addSeparator();
|
helpMenu->addSeparator();
|
||||||
QAction *newAction = helpMenu->addAction("MyPlugin");
|
QAction *newAction = helpMenu->addAction("MyPlugin");
|
||||||
|
|
||||||
|
@ -41,6 +43,8 @@ void MyPlugin::extensionsInitialized()
|
||||||
void MyPlugin::execMessageBox()
|
void MyPlugin::execMessageBox()
|
||||||
{
|
{
|
||||||
QMainWindow *wnd = qobject_cast<QMainWindow *>(objectByName("CMainWindow"));
|
QMainWindow *wnd = qobject_cast<QMainWindow *>(objectByName("CMainWindow"));
|
||||||
|
nlassert(wnd);
|
||||||
|
|
||||||
QMessageBox msgBox;
|
QMessageBox msgBox;
|
||||||
msgBox.setText(wnd->objectName() + QString(": width=%1,height=%2").arg(wnd->width()).arg(wnd->height()));
|
msgBox.setText(wnd->objectName() + QString(": width=%1,height=%2").arg(wnd->width()).arg(wnd->height()));
|
||||||
msgBox.exec();
|
msgBox.exec();
|
||||||
|
|
|
@ -57,7 +57,7 @@ CPSMoverPage::CPSMoverPage(QWidget *parent)
|
||||||
|
|
||||||
connect(_ui.directionWidget, SIGNAL(valueChanged(NLMISC::CVector)), this, SLOT(setDir(NLMISC::CVector)));
|
connect(_ui.directionWidget, SIGNAL(valueChanged(NLMISC::CVector)), this, SLOT(setDir(NLMISC::CVector)));
|
||||||
|
|
||||||
connect(_ui.listWidget, SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
|
connect(_ui.listWidget, SIGNAL(currentItemChanged(QListWidgetItem *,QListWidgetItem *)),
|
||||||
this, SLOT(changeSubComponent()));
|
this, SLOT(changeSubComponent()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,6 @@
|
||||||
#ifndef PS_MOVER_PAGE_H
|
#ifndef PS_MOVER_PAGE_H
|
||||||
#define PS_MOVER_PAGE_H
|
#define PS_MOVER_PAGE_H
|
||||||
|
|
||||||
|
|
||||||
#include <nel/misc/types_nl.h>
|
#include <nel/misc/types_nl.h>
|
||||||
#include "ui_ps_mover_form.h"
|
#include "ui_ps_mover_form.h"
|
||||||
|
|
||||||
|
@ -81,7 +80,7 @@ public:
|
||||||
void updatePosition(void) ;
|
void updatePosition(void) ;
|
||||||
|
|
||||||
/// get the current moving interface, or NULL, if the selected object has no IPSMover interface
|
/// get the current moving interface, or NULL, if the selected object has no IPSMover interface
|
||||||
NL3D::IPSMover *getMoverInterface(void) ;
|
NL3D::IPSMover *getMoverInterface(void);
|
||||||
|
|
||||||
/// get the located being edited
|
/// get the located being edited
|
||||||
NL3D::CPSLocated *getLocated(void)
|
NL3D::CPSLocated *getLocated(void)
|
||||||
|
@ -90,17 +89,17 @@ public:
|
||||||
}
|
}
|
||||||
const NL3D::CPSLocated *getLocated(void) const
|
const NL3D::CPSLocated *getLocated(void) const
|
||||||
{
|
{
|
||||||
return _EditedLocated ;
|
return _EditedLocated;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// get the index of the current edited item
|
/// get the index of the current edited item
|
||||||
uint32 getLocatedIndex(void) const
|
uint32 getLocatedIndex(void) const
|
||||||
{
|
{
|
||||||
return _EditedLocatedIndex ;
|
return _EditedLocatedIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// ghet the current located bindable being edited, or null
|
/// ghet the current located bindable being edited, or null
|
||||||
NL3D::CPSLocatedBindable *getLocatedBindable(void) ;
|
NL3D::CPSLocatedBindable *getLocatedBindable(void);
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void setXPosition(double value);
|
void setXPosition(double value);
|
||||||
|
@ -185,11 +184,11 @@ private:
|
||||||
/// update the mouse listener position when the user entered a value with the keyboard
|
/// update the mouse listener position when the user entered a value with the keyboard
|
||||||
void updateListener(void) ;
|
void updateListener(void) ;
|
||||||
|
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
|
||||||
NL3D::CPSLocated *_EditedLocated ;
|
NL3D::CPSLocated *_EditedLocated ;
|
||||||
|
|
||||||
uint32 _EditedLocatedIndex ;
|
uint32 _EditedLocatedIndex ;
|
||||||
|
|
||||||
Ui::CPSMoverPage _ui;
|
Ui::CPSMoverPage _ui;
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
// STL includes
|
// STL includes
|
||||||
|
|
||||||
// NeL includes
|
// NeL includes
|
||||||
#include <nel/misc/config_file.h>
|
|
||||||
#include <nel/misc/rgba.h>
|
#include <nel/misc/rgba.h>
|
||||||
|
|
||||||
// Project includes
|
// Project includes
|
||||||
|
@ -49,6 +48,7 @@ public:
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void apply();
|
void apply();
|
||||||
void setColor();
|
void setColor();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NLMISC::CRGBA colorFog;
|
NLMISC::CRGBA colorFog;
|
||||||
|
|
||||||
|
|
|
@ -128,9 +128,9 @@ void CSkeletonScaleDialog::setCurrentShape(const QString &name)
|
||||||
_BkupBones = _Bones;
|
_BkupBones = _Bones;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CSkeletonScaleDialog::setCurrentBone(const QModelIndex & index)
|
void CSkeletonScaleDialog::setCurrentBone(const QModelIndex &index)
|
||||||
{
|
{
|
||||||
CSkeletonTreeItem *currentItem = static_cast<CSkeletonTreeItem*>(index.internalPointer());
|
CSkeletonTreeItem *currentItem = static_cast<CSkeletonTreeItem *>(index.internalPointer());
|
||||||
|
|
||||||
// bkup for undo
|
// bkup for undo
|
||||||
static TBoneMirrorArray precState;
|
static TBoneMirrorArray precState;
|
||||||
|
@ -208,7 +208,7 @@ void CSkeletonScaleDialog::clickMirrorSelected()
|
||||||
|
|
||||||
// for each bone selected
|
// for each bone selected
|
||||||
bool change= false;
|
bool change= false;
|
||||||
for(uint i=0; i<_Bones.size(); i++)
|
for(uint i=0; i < _Bones.size(); ++i)
|
||||||
{
|
{
|
||||||
CBoneMirror &bone= _Bones[i];
|
CBoneMirror &bone= _Bones[i];
|
||||||
if(bone.Selected)
|
if(bone.Selected)
|
||||||
|
@ -468,7 +468,7 @@ void CSkeletonScaleDialog::applyMirrorToSkeleton()
|
||||||
if(!_Skeleton.empty())
|
if(!_Skeleton.empty())
|
||||||
{
|
{
|
||||||
nlassert(_Skeleton.getNumBones() == _Bones.size());
|
nlassert(_Skeleton.getNumBones() == _Bones.size());
|
||||||
for(uint i = 0; i < _Bones.size(); i++)
|
for(uint i = 0; i < _Bones.size(); ++i)
|
||||||
{
|
{
|
||||||
// unmul from precision
|
// unmul from precision
|
||||||
NLMISC::CVector boneScale = _Bones[i].BoneScale / ssd_scale_precision;
|
NLMISC::CVector boneScale = _Bones[i].BoneScale / ssd_scale_precision;
|
||||||
|
@ -484,7 +484,7 @@ void CSkeletonScaleDialog::applySkeletonToMirror()
|
||||||
if(!_Skeleton.empty())
|
if(!_Skeleton.empty())
|
||||||
{
|
{
|
||||||
nlassert(_Skeleton.getNumBones() == _Bones.size());
|
nlassert(_Skeleton.getNumBones() == _Bones.size());
|
||||||
for(uint i = 0; i < _Skeleton.getNumBones(); i++)
|
for(uint i = 0; i < _Skeleton.getNumBones(); ++i)
|
||||||
{
|
{
|
||||||
// mul by precision, and round
|
// mul by precision, and round
|
||||||
_Bones[i].SkinScale = _Skeleton.getBone(i).getSkinScale() * ssd_scale_precision;
|
_Bones[i].SkinScale = _Skeleton.getBone(i).getSkinScale() * ssd_scale_precision;
|
||||||
|
@ -517,7 +517,7 @@ void CSkeletonScaleDialog::applySelectionToView()
|
||||||
{
|
{
|
||||||
_ui.treeView->blockSignals(true);
|
_ui.treeView->blockSignals(true);
|
||||||
CSkeletonTreeModel *model = Modules::mainWin().getSkeletonModel();
|
CSkeletonTreeModel *model = Modules::mainWin().getSkeletonModel();
|
||||||
for(uint i = 0; i < _Bones.size(); i++)
|
for(uint i = 0; i < _Bones.size(); ++i)
|
||||||
{
|
{
|
||||||
if (_Bones[i].Selected)
|
if (_Bones[i].Selected)
|
||||||
_ui.treeView->setCurrentIndex(model->getIndexFromId(i, model->index(0, 0)));
|
_ui.treeView->setCurrentIndex(model->getIndexFromId(i, model->index(0, 0)));
|
||||||
|
@ -527,7 +527,7 @@ void CSkeletonScaleDialog::applySelectionToView()
|
||||||
|
|
||||||
sint CSkeletonScaleDialog::getBoneForMirror(uint boneId, std::string &mirrorName)
|
sint CSkeletonScaleDialog::getBoneForMirror(uint boneId, std::string &mirrorName)
|
||||||
{
|
{
|
||||||
sint side= 0;
|
sint side= 0;
|
||||||
std::string::size_type pos;
|
std::string::size_type pos;
|
||||||
nlassert(!_Skeleton.empty() && (boneId < _Skeleton.getNumBones()));
|
nlassert(!_Skeleton.empty() && (boneId < _Skeleton.getNumBones()));
|
||||||
mirrorName= _Skeleton.getBone(boneId).getObjectPtr()->getBoneName();
|
mirrorName= _Skeleton.getBone(boneId).getObjectPtr()->getBoneName();
|
||||||
|
@ -561,7 +561,7 @@ bool CSkeletonScaleDialog::saveCurrentInStream(NLMISC::IStream &f)
|
||||||
|
|
||||||
// Retrieve boneBase definition from the current skeleton
|
// Retrieve boneBase definition from the current skeleton
|
||||||
std::vector<NL3D::CBoneBase> boneBases;
|
std::vector<NL3D::CBoneBase> boneBases;
|
||||||
(NLMISC::safe_cast<NL3D::CSkeletonShape*>((NL3D::IShape*)_Skeleton.getObjectPtr()->Shape))->retrieve(boneBases);
|
(NLMISC::safe_cast<NL3D::CSkeletonShape *>((NL3D::IShape *)_Skeleton.getObjectPtr()->Shape))->retrieve(boneBases);
|
||||||
|
|
||||||
// Copies bone scales from the model
|
// Copies bone scales from the model
|
||||||
nlassert(boneBases.size() == _Skeleton.getNumBones());
|
nlassert(boneBases.size() == _Skeleton.getNumBones());
|
||||||
|
@ -615,7 +615,7 @@ bool CSkeletonScaleDialog::saveSkelScaleInStream(NLMISC::IStream &f)
|
||||||
// Copies bone scales from the model
|
// Copies bone scales from the model
|
||||||
std::vector<CBoneScaleInfo> boneScales;
|
std::vector<CBoneScaleInfo> boneScales;
|
||||||
boneScales.resize(_Skeleton.getNumBones());
|
boneScales.resize(_Skeleton.getNumBones());
|
||||||
for(uint i = 0; i < boneScales.size(); i++)
|
for(uint i = 0; i < boneScales.size(); ++i)
|
||||||
{
|
{
|
||||||
NL3D::CBone *bone= _Skeleton.getBone(i).getObjectPtr();
|
NL3D::CBone *bone= _Skeleton.getBone(i).getObjectPtr();
|
||||||
CBoneScaleInfo &boneScale= boneScales[i];
|
CBoneScaleInfo &boneScale= boneScales[i];
|
||||||
|
@ -651,7 +651,7 @@ bool CSkeletonScaleDialog::loadSkelScaleFromStream(NLMISC::IStream &f)
|
||||||
f.serialCont(boneScales);
|
f.serialCont(boneScales);
|
||||||
|
|
||||||
// apply to the current skeleton
|
// apply to the current skeleton
|
||||||
for(uint i = 0; i < boneScales.size(); i++)
|
for(uint i = 0; i < boneScales.size(); ++i)
|
||||||
{
|
{
|
||||||
sint32 boneId = _Skeleton.getBoneIdByName(boneScales[i].Name);
|
sint32 boneId = _Skeleton.getBoneIdByName(boneScales[i].Name);
|
||||||
if(boneId >= 0 && boneId < (sint32)_Skeleton.getNumBones())
|
if(boneId >= 0 && boneId < (sint32)_Skeleton.getNumBones())
|
||||||
|
@ -689,7 +689,7 @@ void CSkeletonScaleDialog::pushUndoState(const TBoneMirrorArray &precState, bool
|
||||||
// test if real change
|
// test if real change
|
||||||
nlassert(precState.size() == _Bones.size());
|
nlassert(precState.size() == _Bones.size());
|
||||||
bool change = false;
|
bool change = false;
|
||||||
for(uint i = 0; i < _Bones.size(); i++)
|
for(uint i = 0; i < _Bones.size(); ++i)
|
||||||
{
|
{
|
||||||
if( _Bones[i].BoneScale!=precState[i].BoneScale ||
|
if( _Bones[i].BoneScale!=precState[i].BoneScale ||
|
||||||
_Bones[i].SkinScale!=precState[i].SkinScale ||
|
_Bones[i].SkinScale!=precState[i].SkinScale ||
|
||||||
|
|
|
@ -76,7 +76,7 @@ public Q_SLOTS:
|
||||||
void setCurrentShape(const QString &name);
|
void setCurrentShape(const QString &name);
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void setCurrentBone(const QModelIndex & index);
|
void setCurrentBone(const QModelIndex &index);
|
||||||
void setBoneSliderX(int value);
|
void setBoneSliderX(int value);
|
||||||
void setBoneSliderY(int value);
|
void setBoneSliderY(int value);
|
||||||
void setBoneSliderZ(int value);
|
void setBoneSliderZ(int value);
|
||||||
|
|
|
@ -46,7 +46,7 @@ CSkeletonTreeModel::~CSkeletonTreeModel()
|
||||||
int CSkeletonTreeModel::columnCount(const QModelIndex &parent) const
|
int CSkeletonTreeModel::columnCount(const QModelIndex &parent) const
|
||||||
{
|
{
|
||||||
if (parent.isValid())
|
if (parent.isValid())
|
||||||
return static_cast<CSkeletonTreeItem*>(parent.internalPointer())->columnCount();
|
return static_cast<CSkeletonTreeItem *>(parent.internalPointer())->columnCount();
|
||||||
else
|
else
|
||||||
return _rootItem->columnCount();
|
return _rootItem->columnCount();
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ QVariant CSkeletonTreeModel::data(const QModelIndex &index, int role) const
|
||||||
if (role != Qt::DisplayRole)
|
if (role != Qt::DisplayRole)
|
||||||
return QVariant();
|
return QVariant();
|
||||||
|
|
||||||
CSkeletonTreeItem *item = static_cast<CSkeletonTreeItem*>(index.internalPointer());
|
CSkeletonTreeItem *item = static_cast<CSkeletonTreeItem *>(index.internalPointer());
|
||||||
|
|
||||||
return item->data(index.column());
|
return item->data(index.column());
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ const
|
||||||
if (!parent.isValid())
|
if (!parent.isValid())
|
||||||
parentItem = _rootItem;
|
parentItem = _rootItem;
|
||||||
else
|
else
|
||||||
parentItem = static_cast<CSkeletonTreeItem*>(parent.internalPointer());
|
parentItem = static_cast<CSkeletonTreeItem *>(parent.internalPointer());
|
||||||
|
|
||||||
CSkeletonTreeItem *childItem = parentItem->child(row);
|
CSkeletonTreeItem *childItem = parentItem->child(row);
|
||||||
if (childItem)
|
if (childItem)
|
||||||
|
@ -106,7 +106,7 @@ QModelIndex CSkeletonTreeModel::parent(const QModelIndex &index) const
|
||||||
if (!index.isValid())
|
if (!index.isValid())
|
||||||
return QModelIndex();
|
return QModelIndex();
|
||||||
|
|
||||||
CSkeletonTreeItem *childItem = static_cast<CSkeletonTreeItem*>(index.internalPointer());
|
CSkeletonTreeItem *childItem = static_cast<CSkeletonTreeItem *>(index.internalPointer());
|
||||||
CSkeletonTreeItem *parentItem = childItem->parent();
|
CSkeletonTreeItem *parentItem = childItem->parent();
|
||||||
|
|
||||||
if (parentItem == _rootItem)
|
if (parentItem == _rootItem)
|
||||||
|
@ -124,7 +124,7 @@ int CSkeletonTreeModel::rowCount(const QModelIndex &parent) const
|
||||||
if (!parent.isValid())
|
if (!parent.isValid())
|
||||||
parentItem = _rootItem;
|
parentItem = _rootItem;
|
||||||
else
|
else
|
||||||
parentItem = static_cast<CSkeletonTreeItem*>(parent.internalPointer());
|
parentItem = static_cast<CSkeletonTreeItem *>(parent.internalPointer());
|
||||||
|
|
||||||
return parentItem->childCount();
|
return parentItem->childCount();
|
||||||
}
|
}
|
||||||
|
@ -151,7 +151,7 @@ void CSkeletonTreeModel::rebuildModel()
|
||||||
|
|
||||||
CSkeletonTreeItem *parentItem = _rootItem;
|
CSkeletonTreeItem *parentItem = _rootItem;
|
||||||
|
|
||||||
for (uint i = 0; i < skel.getNumBones(); i++)
|
for (uint i = 0; i < skel.getNumBones(); ++i)
|
||||||
{
|
{
|
||||||
NL3D::UBone bone = skel.getBone(i);
|
NL3D::UBone bone = skel.getBone(i);
|
||||||
sint32 parentId = bone.getObjectPtr()->getFatherId();
|
sint32 parentId = bone.getObjectPtr()->getFatherId();
|
||||||
|
@ -182,12 +182,12 @@ void CSkeletonTreeModel::resetTreeModel()
|
||||||
QModelIndex CSkeletonTreeModel::getIndexFromId(sint id, const QModelIndex &parent)
|
QModelIndex CSkeletonTreeModel::getIndexFromId(sint id, const QModelIndex &parent)
|
||||||
{
|
{
|
||||||
QModelIndex currentIndex = parent;
|
QModelIndex currentIndex = parent;
|
||||||
CSkeletonTreeItem *item = static_cast<CSkeletonTreeItem*>(parent.internalPointer());
|
CSkeletonTreeItem *item = static_cast<CSkeletonTreeItem *>(parent.internalPointer());
|
||||||
if (item->getId() != id)
|
if (item->getId() != id)
|
||||||
for (int i = 0; i < item->childCount(); i++)
|
for (int i = 0; i < item->childCount(); ++i)
|
||||||
{
|
{
|
||||||
currentIndex = getIndexFromId(id, index(i, 0, parent));
|
currentIndex = getIndexFromId(id, index(i, 0, parent));
|
||||||
CSkeletonTreeItem *item = static_cast<CSkeletonTreeItem*>(currentIndex.internalPointer());
|
CSkeletonTreeItem *item = static_cast<CSkeletonTreeItem *>(currentIndex.internalPointer());
|
||||||
if (item->getId() == id)
|
if (item->getId() == id)
|
||||||
return currentIndex;
|
return currentIndex;
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,7 @@ public:
|
||||||
int row() const
|
int row() const
|
||||||
{
|
{
|
||||||
if (_parentItem)
|
if (_parentItem)
|
||||||
return _parentItem->_childItems.indexOf(const_cast<CSkeletonTreeItem*>(this));
|
return _parentItem->_childItems.indexOf(const_cast<CSkeletonTreeItem *>(this));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,7 +91,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
QList<CSkeletonTreeItem*> _childItems;
|
QList<CSkeletonTreeItem *> _childItems;
|
||||||
QList<QVariant> _itemData;
|
QList<QVariant> _itemData;
|
||||||
sint32 _id;
|
sint32 _id;
|
||||||
CSkeletonTreeItem *_parentItem;
|
CSkeletonTreeItem *_parentItem;
|
||||||
|
|
|
@ -33,7 +33,9 @@ namespace NLQT
|
||||||
|
|
||||||
CSlotGroupBox::CSlotGroupBox(QWidget *parent)
|
CSlotGroupBox::CSlotGroupBox(QWidget *parent)
|
||||||
: QGroupBox(parent),
|
: QGroupBox(parent),
|
||||||
_animName("empty"), _skelName("empty"), _numSlot(0)
|
_animName("empty"),
|
||||||
|
_skelName("empty"),
|
||||||
|
_numSlot(0)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
|
@ -239,7 +241,7 @@ CSlotManagerDialog::CSlotManagerDialog(QWidget *parent)
|
||||||
_tabWidget->setObjectName(QString::fromUtf8("_tabWidget"));
|
_tabWidget->setObjectName(QString::fromUtf8("_tabWidget"));
|
||||||
_tabWidget->setTabPosition(QTabWidget::East);
|
_tabWidget->setTabPosition(QTabWidget::East);
|
||||||
|
|
||||||
for (int i = 0; i < NL3D::CChannelMixer::NumAnimationSlot; i++)
|
for (int i = 0; i < NL3D::CChannelMixer::NumAnimationSlot; ++i)
|
||||||
{
|
{
|
||||||
_tabs[i] = new QWidget();
|
_tabs[i] = new QWidget();
|
||||||
_tabs[i]->setObjectName(QString::fromUtf8("_tab%1").arg(i));
|
_tabs[i]->setObjectName(QString::fromUtf8("_tab%1").arg(i));
|
||||||
|
@ -276,7 +278,7 @@ CSlotManagerDialog::~CSlotManagerDialog()
|
||||||
|
|
||||||
void CSlotManagerDialog::updateUiSlots()
|
void CSlotManagerDialog::updateUiSlots()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < NL3D::CChannelMixer::NumAnimationSlot; i++)
|
for (int i = 0; i < NL3D::CChannelMixer::NumAnimationSlot; ++i)
|
||||||
{
|
{
|
||||||
_slotGroupBoxs[i]->updateUi();
|
_slotGroupBoxs[i]->updateUi();
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,8 +34,8 @@ namespace NLQT
|
||||||
|
|
||||||
CSoundSystem::CSoundSystem()
|
CSoundSystem::CSoundSystem()
|
||||||
:_AudioMixer(NULL),
|
:_AudioMixer(NULL),
|
||||||
_AnimManager(NULL),
|
_AnimManager(NULL),
|
||||||
_Zero(NLMISC::CVector::Null)
|
_Zero(NLMISC::CVector::Null)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns a reference to the animation manager
|
/// Returns a reference to the animation manager
|
||||||
NLSOUND::CSoundAnimManager* getSoundAnimManager()
|
NLSOUND::CSoundAnimManager *getSoundAnimManager()
|
||||||
{
|
{
|
||||||
return _AnimManager;
|
return _AnimManager;
|
||||||
}
|
}
|
||||||
|
@ -121,13 +121,13 @@ public:
|
||||||
void update();
|
void update();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
NLSOUND::UAudioMixer *_AudioMixer;
|
NLSOUND::UAudioMixer *_AudioMixer;
|
||||||
std::set<std::string> _SampleBanksFileName;
|
std::set<std::string> _SampleBanksFileName;
|
||||||
NLSOUND::CSoundAnimManager *_AnimManager;
|
NLSOUND::CSoundAnimManager *_AnimManager;
|
||||||
NLMISC::CVector _Zero;
|
NLMISC::CVector _Zero;
|
||||||
std::string _SamplePath;
|
std::string _SamplePath;
|
||||||
std::string _PackedSheetPath;
|
std::string _PackedSheetPath;
|
||||||
NLMISC::CMatrix oldMatrix;
|
NLMISC::CMatrix oldMatrix;
|
||||||
}; /* class CSoundSystem */
|
}; /* class CSoundSystem */
|
||||||
|
|
||||||
} /* namespace NLQT */
|
} /* namespace NLQT */
|
||||||
|
|
|
@ -24,7 +24,9 @@ namespace NLQT
|
||||||
{
|
{
|
||||||
|
|
||||||
CSpinnerDialog::CSpinnerDialog(NL3D::CPSBasisSpinner *sf, CWorkspaceNode *ownerNode, QWidget *parent)
|
CSpinnerDialog::CSpinnerDialog(NL3D::CPSBasisSpinner *sf, CWorkspaceNode *ownerNode, QWidget *parent)
|
||||||
: QDialog(parent), _Node(ownerNode), _BasicSpinner(sf)
|
: QDialog(parent),
|
||||||
|
_Node(ownerNode),
|
||||||
|
_BasicSpinner(sf)
|
||||||
{
|
{
|
||||||
nlassert(_BasicSpinner);
|
nlassert(_BasicSpinner);
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ private Q_SLOTS:
|
||||||
private:
|
private:
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
|
||||||
NL3D::CPSTailParticle *_TailParticle;
|
NL3D::CPSTailParticle *_TailParticle;
|
||||||
|
|
||||||
Ui::CTailParticleWidget _ui;
|
Ui::CTailParticleWidget _ui;
|
||||||
}; /* class CTailParticleWidget */
|
}; /* class CTailParticleWidget */
|
||||||
|
|
|
@ -58,7 +58,7 @@ CGradientDialog::CGradientDialog(CWorkspaceNode *ownerNode,
|
||||||
sizePolicy.setHeightForWidth(_listWidget->sizePolicy().hasHeightForWidth());
|
sizePolicy.setHeightForWidth(_listWidget->sizePolicy().hasHeightForWidth());
|
||||||
_listWidget->setSizePolicy(sizePolicy);
|
_listWidget->setSizePolicy(sizePolicy);
|
||||||
//_listWidget->setIconSize(QSize(16, 16));
|
//_listWidget->setIconSize(QSize(16, 16));
|
||||||
_listWidget->setMaximumSize(QSize(175, 16777215));
|
_listWidget->setMaximumSize(QSize(185, 16777215));
|
||||||
_gridLayout->addWidget(_listWidget, 0, 0, 9, 1);
|
_gridLayout->addWidget(_listWidget, 0, 0, 9, 1);
|
||||||
|
|
||||||
_horizontalLayout = new QHBoxLayout();
|
_horizontalLayout = new QHBoxLayout();
|
||||||
|
|
|
@ -114,19 +114,19 @@ private Q_SLOTS:
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// the minimum number of element in the gradient
|
// the minimum number of element in the gradient
|
||||||
uint _MinSize;
|
uint _MinSize;
|
||||||
|
|
||||||
// false to disable the dialog that control the number of stages between each value
|
// false to disable the dialog that control the number of stages between each value
|
||||||
bool _CanTuneNbStages;
|
bool _CanTuneNbStages;
|
||||||
|
|
||||||
IValueGradientClient *_ClientInterface;
|
IValueGradientClient *_ClientInterface;
|
||||||
|
|
||||||
bool _DestroyClientInterface;
|
bool _DestroyClientInterface;
|
||||||
|
|
||||||
// the current size of the gradient
|
// the current size of the gradient
|
||||||
uint _Size;
|
uint _Size;
|
||||||
|
|
||||||
CWorkspaceNode *_Node;
|
CWorkspaceNode *_Node;
|
||||||
|
|
||||||
// a wrapper to tune the number of step
|
// a wrapper to tune the number of step
|
||||||
struct CNbStepWrapper :public IPSWrapperUInt
|
struct CNbStepWrapper :public IPSWrapperUInt
|
||||||
|
|
|
@ -114,7 +114,7 @@ void CVegetableApperancePage::setNoiseValueColor(const NLMISC::CNoiseValue &valu
|
||||||
Modules::veget().refreshVegetableDisplay();
|
Modules::veget().refreshVegetableDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CVegetableApperancePage::browseColor(QListWidgetItem * item)
|
void CVegetableApperancePage::browseColor(QListWidgetItem *item)
|
||||||
{
|
{
|
||||||
sint row = _ui.listWidget->currentRow();
|
sint row = _ui.listWidget->currentRow();
|
||||||
|
|
||||||
|
@ -208,7 +208,7 @@ void CVegetableApperancePage::getFromListColors()
|
||||||
{
|
{
|
||||||
int i = items.indexOf(item);
|
int i = items.indexOf(item);
|
||||||
|
|
||||||
NL3D::CVegetable *otherVegetable = Modules::veget().getVegetable(i)->Vegetable;
|
NL3D::CVegetable *otherVegetable = Modules::veget().getVegetable(i)->_vegetable;
|
||||||
|
|
||||||
_Vegetable->Color.Gradients = otherVegetable->Color.Gradients;
|
_Vegetable->Color.Gradients = otherVegetable->Color.Gradients;
|
||||||
|
|
||||||
|
|
|
@ -51,7 +51,7 @@ private Q_SLOTS:
|
||||||
void setNoiseValueBendPhase(const NLMISC::CNoiseValue &value);
|
void setNoiseValueBendPhase(const NLMISC::CNoiseValue &value);
|
||||||
void setNoiseValueBendFactor(const NLMISC::CNoiseValue &value);
|
void setNoiseValueBendFactor(const NLMISC::CNoiseValue &value);
|
||||||
void setNoiseValueColor(const NLMISC::CNoiseValue &value);
|
void setNoiseValueColor(const NLMISC::CNoiseValue &value);
|
||||||
void browseColor(QListWidgetItem * item);
|
void browseColor(QListWidgetItem *item);
|
||||||
void addNewColor();
|
void addNewColor();
|
||||||
void insNewColor();
|
void insNewColor();
|
||||||
void removeColor();
|
void removeColor();
|
||||||
|
@ -61,7 +61,7 @@ private:
|
||||||
void updateColorList();
|
void updateColorList();
|
||||||
|
|
||||||
// The vegetable to edit.
|
// The vegetable to edit.
|
||||||
NL3D::CVegetable *_Vegetable;
|
NL3D::CVegetable *_Vegetable;
|
||||||
|
|
||||||
Ui::CVegetableApperancePage _ui;
|
Ui::CVegetableApperancePage _ui;
|
||||||
|
|
||||||
|
|
|
@ -50,7 +50,6 @@ CVegetableDensityPage::CVegetableDensityPage(QWidget *parent)
|
||||||
_ui.maxDensityWidget->setRange(0, NL_VEGETABLE_EDIT_DEFAULT_MAX_DENSITY);
|
_ui.maxDensityWidget->setRange(0, NL_VEGETABLE_EDIT_DEFAULT_MAX_DENSITY);
|
||||||
_ui.maxDensityWidget->enableLowerBound(0, false);
|
_ui.maxDensityWidget->enableLowerBound(0, false);
|
||||||
|
|
||||||
|
|
||||||
connect(_ui.browseShapePushButton, SIGNAL(clicked()), this, SLOT(browseShapeVeget()));
|
connect(_ui.browseShapePushButton, SIGNAL(clicked()), this, SLOT(browseShapeVeget()));
|
||||||
connect(_ui.distanceSpinBox, SIGNAL(valueChanged(int)), this, SLOT(setDistanceOfCreat(int)));
|
connect(_ui.distanceSpinBox, SIGNAL(valueChanged(int)), this, SLOT(setDistanceOfCreat(int)));
|
||||||
connect(_ui.densityGroupBox, SIGNAL(noiseValueChanged(NLMISC::CNoiseValue)), this, SLOT(setDensity(NLMISC::CNoiseValue)));
|
connect(_ui.densityGroupBox, SIGNAL(noiseValueChanged(NLMISC::CNoiseValue)), this, SLOT(setDensity(NLMISC::CNoiseValue)));
|
||||||
|
|
|
@ -65,7 +65,7 @@ private:
|
||||||
void updateAngleMax();
|
void updateAngleMax();
|
||||||
|
|
||||||
// The vegetable to edit.
|
// The vegetable to edit.
|
||||||
NL3D::CVegetable *_Vegetable;
|
NL3D::CVegetable *_Vegetable;
|
||||||
|
|
||||||
float _PrecMaxDensityValue;
|
float _PrecMaxDensityValue;
|
||||||
|
|
||||||
|
|
|
@ -151,7 +151,7 @@ void CVegetableDialog::addVegetList()
|
||||||
|
|
||||||
// update view
|
// update view
|
||||||
QListWidgetItem *item = new QListWidgetItem(_ui.listWidget);
|
QListWidgetItem *item = new QListWidgetItem(_ui.listWidget);
|
||||||
item->setText(QString(Modules::veget().getVegetable(id)->VegetableName.c_str()));
|
item->setText(QString(Modules::veget().getVegetable(id)->_vegetableName.c_str()));
|
||||||
|
|
||||||
// update 3D view
|
// update 3D view
|
||||||
Modules::veget().refreshVegetableDisplay();
|
Modules::veget().refreshVegetableDisplay();
|
||||||
|
@ -167,7 +167,7 @@ void CVegetableDialog::removeVegetList()
|
||||||
QListWidgetItem *item = _ui.listWidget->takeItem(id);
|
QListWidgetItem *item = _ui.listWidget->takeItem(id);
|
||||||
delete item;
|
delete item;
|
||||||
|
|
||||||
id--;
|
--id;
|
||||||
|
|
||||||
_ui.listWidget->setCurrentRow(id);
|
_ui.listWidget->setCurrentRow(id);
|
||||||
|
|
||||||
|
@ -185,7 +185,7 @@ void CVegetableDialog::insVegetList()
|
||||||
|
|
||||||
// update view
|
// update view
|
||||||
QListWidgetItem *item = new QListWidgetItem();
|
QListWidgetItem *item = new QListWidgetItem();
|
||||||
item->setText(QString(Modules::veget().getVegetable(id)->VegetableName.c_str()));
|
item->setText(QString(Modules::veget().getVegetable(id)->_vegetableName.c_str()));
|
||||||
_ui.listWidget->insertItem(id, item);
|
_ui.listWidget->insertItem(id, item);
|
||||||
|
|
||||||
// update 3D view
|
// update 3D view
|
||||||
|
@ -239,7 +239,7 @@ void CVegetableDialog::loadVegetdesc()
|
||||||
|
|
||||||
// update view
|
// update view
|
||||||
QListWidgetItem *item = new QListWidgetItem(_ui.listWidget);
|
QListWidgetItem *item = new QListWidgetItem(_ui.listWidget);
|
||||||
item->setText(QString(Modules::veget().getVegetable(id)->VegetableName.c_str()));
|
item->setText(QString(Modules::veget().getVegetable(id)->_vegetableName.c_str()));
|
||||||
|
|
||||||
// update 3D view
|
// update 3D view
|
||||||
Modules::veget().refreshVegetableDisplay();
|
Modules::veget().refreshVegetableDisplay();
|
||||||
|
@ -261,7 +261,7 @@ void CVegetableDialog::saveVegetdesc()
|
||||||
|
|
||||||
CVegetableNode *vegetNode = Modules::veget().getVegetable(id);
|
CVegetableNode *vegetNode = Modules::veget().getVegetable(id);
|
||||||
|
|
||||||
QString oldFileName = QString(vegetNode->VegetableName.c_str()) + ".vegetdesc";
|
QString oldFileName = QString(vegetNode->_vegetableName.c_str()) + ".vegetdesc";
|
||||||
|
|
||||||
// Then try to save it.
|
// Then try to save it.
|
||||||
QString fileName = QFileDialog::getSaveFileName(this, tr("Save Vegetable Descriptor"),
|
QString fileName = QFileDialog::getSaveFileName(this, tr("Save Vegetable Descriptor"),
|
||||||
|
@ -277,7 +277,7 @@ void CVegetableDialog::saveVegetdesc()
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
// save the vegetable
|
// save the vegetable
|
||||||
f.serial(*vegetNode->Vegetable);
|
f.serial(*vegetNode->_vegetable);
|
||||||
}
|
}
|
||||||
catch(NLMISC::EStream &e)
|
catch(NLMISC::EStream &e)
|
||||||
{
|
{
|
||||||
|
@ -299,7 +299,7 @@ void CVegetableDialog::setCurrentItem(int row)
|
||||||
{
|
{
|
||||||
NL3D::CVegetable *veget = NULL;
|
NL3D::CVegetable *veget = NULL;
|
||||||
if (row != -1)
|
if (row != -1)
|
||||||
veget = Modules::veget().getVegetable(row)->Vegetable;
|
veget = Modules::veget().getVegetable(row)->_vegetable;
|
||||||
_ui.densityPage->setVegetableToEdit(veget);
|
_ui.densityPage->setVegetableToEdit(veget);
|
||||||
_ui.appearancePage->setVegetableToEdit(veget);
|
_ui.appearancePage->setVegetableToEdit(veget);
|
||||||
_ui.scalePage->setVegetableToEdit(veget);
|
_ui.scalePage->setVegetableToEdit(veget);
|
||||||
|
|
|
@ -60,10 +60,10 @@ void CVegetableEditor::init()
|
||||||
//H_AUTO2
|
//H_AUTO2
|
||||||
nldebug("CVegetableEditor::init");
|
nldebug("CVegetableEditor::init");
|
||||||
|
|
||||||
NL3D::CDriverUser *driver = dynamic_cast<NL3D::CDriverUser*>(Modules::objView().getDriver());
|
NL3D::CDriverUser *driver = dynamic_cast<NL3D::CDriverUser *>(Modules::objView().getDriver());
|
||||||
_Driver = driver->getDriver();
|
_Driver = driver->getDriver();
|
||||||
|
|
||||||
NL3D::CSceneUser *scene = dynamic_cast<NL3D::CSceneUser*>(Modules::objView().getScene());
|
NL3D::CSceneUser *scene = dynamic_cast<NL3D::CSceneUser *>(Modules::objView().getScene());
|
||||||
_Scene = &scene->getScene();
|
_Scene = &scene->getScene();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ bool CVegetableEditor::createVegetableLandscape()
|
||||||
loadLandscapeSetup();
|
loadLandscapeSetup();
|
||||||
|
|
||||||
// create the landscape.
|
// create the landscape.
|
||||||
_VegetableLandscape= static_cast<NL3D::CLandscapeModel*>(Modules::veget().getScene()->createModel(NL3D::LandscapeModelId));
|
_VegetableLandscape= static_cast<NL3D::CLandscapeModel *>(Modules::veget().getScene()->createModel(NL3D::LandscapeModelId));
|
||||||
|
|
||||||
// create progress dialog
|
// create progress dialog
|
||||||
QProgressDialog progress("Loading TileBanks....", "Cancel", 0, 100);
|
QProgressDialog progress("Loading TileBanks....", "Cancel", 0, 100);
|
||||||
|
@ -143,7 +143,7 @@ bool CVegetableEditor::createVegetableLandscape()
|
||||||
// count nbText to load.
|
// count nbText to load.
|
||||||
sint ts;
|
sint ts;
|
||||||
sint nbTextTotal = 0;
|
sint nbTextTotal = 0;
|
||||||
for (ts=0; ts < _VegetableLandscape->Landscape.TileBank.getTileSetCount (); ts++)
|
for (ts=0; ts < _VegetableLandscape->Landscape.TileBank.getTileSetCount (); ++ts)
|
||||||
{
|
{
|
||||||
NL3D::CTileSet *tileSet =_VegetableLandscape->Landscape.TileBank.getTileSet (ts);
|
NL3D::CTileSet *tileSet =_VegetableLandscape->Landscape.TileBank.getTileSet (ts);
|
||||||
nbTextTotal += tileSet->getNumTile128();
|
nbTextTotal += tileSet->getNumTile128();
|
||||||
|
@ -153,7 +153,7 @@ bool CVegetableEditor::createVegetableLandscape()
|
||||||
|
|
||||||
// load.
|
// load.
|
||||||
sint nbTextDone= 0;
|
sint nbTextDone= 0;
|
||||||
for (ts=0; ts < _VegetableLandscape->Landscape.TileBank.getTileSetCount (); ts++)
|
for (ts=0; ts < _VegetableLandscape->Landscape.TileBank.getTileSetCount (); ++ts)
|
||||||
{
|
{
|
||||||
NL3D::CTileSet *tileSet=_VegetableLandscape->Landscape.TileBank.getTileSet (ts);
|
NL3D::CTileSet *tileSet=_VegetableLandscape->Landscape.TileBank.getTileSet (ts);
|
||||||
sint tl;
|
sint tl;
|
||||||
|
@ -299,7 +299,7 @@ void CVegetableEditor::refreshVegetableLandscape(const NL3D::CTileVegetableDesc
|
||||||
_VegetableLandscape->Landscape.enableVegetable(false);
|
_VegetableLandscape->Landscape.enableVegetable(false);
|
||||||
|
|
||||||
// Then change all the tileSet of all the TileBanks.
|
// Then change all the tileSet of all the TileBanks.
|
||||||
for (sint ts=0; ts<_VegetableLandscape->Landscape.TileBank.getTileSetCount (); ts++)
|
for (sint ts=0; ts<_VegetableLandscape->Landscape.TileBank.getTileSetCount (); ++ts)
|
||||||
{
|
{
|
||||||
NL3D::CTileSet *tileSet=_VegetableLandscape->Landscape.TileBank.getTileSet (ts);
|
NL3D::CTileSet *tileSet=_VegetableLandscape->Landscape.TileBank.getTileSet (ts);
|
||||||
// change the vegetableTileDesc of this tileSet.
|
// change the vegetableTileDesc of this tileSet.
|
||||||
|
@ -315,21 +315,30 @@ void CVegetableEditor::setVegetableWindPower(float w)
|
||||||
{
|
{
|
||||||
_VegetableWindPower= w;
|
_VegetableWindPower= w;
|
||||||
if(_VegetableLandscape)
|
if(_VegetableLandscape)
|
||||||
_VegetableLandscape->Landscape.setVegetableWind(_VegetableWindDir, _VegetableWindFreq, _VegetableWindPower, _VegetableWindBendMin);
|
_VegetableLandscape->Landscape.setVegetableWind(_VegetableWindDir,
|
||||||
|
_VegetableWindFreq,
|
||||||
|
_VegetableWindPower,
|
||||||
|
_VegetableWindBendMin);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CVegetableEditor::setVegetableWindBendStart(float w)
|
void CVegetableEditor::setVegetableWindBendStart(float w)
|
||||||
{
|
{
|
||||||
_VegetableWindBendMin= w;
|
_VegetableWindBendMin= w;
|
||||||
if(_VegetableLandscape)
|
if(_VegetableLandscape)
|
||||||
_VegetableLandscape->Landscape.setVegetableWind(_VegetableWindDir, _VegetableWindFreq, _VegetableWindPower, _VegetableWindBendMin);
|
_VegetableLandscape->Landscape.setVegetableWind(_VegetableWindDir,
|
||||||
|
_VegetableWindFreq,
|
||||||
|
_VegetableWindPower,
|
||||||
|
_VegetableWindBendMin);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CVegetableEditor::setVegetableWindFrequency(float w)
|
void CVegetableEditor::setVegetableWindFrequency(float w)
|
||||||
{
|
{
|
||||||
_VegetableWindFreq= w;
|
_VegetableWindFreq= w;
|
||||||
if(_VegetableLandscape)
|
if(_VegetableLandscape)
|
||||||
_VegetableLandscape->Landscape.setVegetableWind(_VegetableWindDir, _VegetableWindFreq, _VegetableWindPower, _VegetableWindBendMin);
|
_VegetableLandscape->Landscape.setVegetableWind(_VegetableWindDir,
|
||||||
|
_VegetableWindFreq,
|
||||||
|
_VegetableWindPower,
|
||||||
|
_VegetableWindBendMin);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CVegetableEditor::snapToGroundVegetableLandscape(bool enable)
|
void CVegetableEditor::snapToGroundVegetableLandscape(bool enable)
|
||||||
|
@ -379,7 +388,7 @@ void CVegetableEditor::getListVegetables(std::vector<std::string> &listVeget)
|
||||||
{
|
{
|
||||||
listVeget.clear();
|
listVeget.clear();
|
||||||
for (size_t i = 0; i < _Vegetables.size(); i++)
|
for (size_t i = 0; i < _Vegetables.size(); i++)
|
||||||
listVeget.push_back(_Vegetables[i].VegetableName);
|
listVeget.push_back(_Vegetables[i]._vegetableName);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CVegetableEditor::loadVegetableSet(NL3D::CTileVegetableDesc &vegetSet, std::string fileName)
|
bool CVegetableEditor::loadVegetableSet(NL3D::CTileVegetableDesc &vegetSet, std::string fileName)
|
||||||
|
@ -416,16 +425,16 @@ void CVegetableEditor::buildVegetableSet(NL3D::CTileVegetableDesc &vegetSet, boo
|
||||||
|
|
||||||
// build the list.
|
// build the list.
|
||||||
std::vector<NL3D::CVegetable> vegetables;
|
std::vector<NL3D::CVegetable> vegetables;
|
||||||
for(uint i = 0; i < _Vegetables.size(); i++)
|
for(uint i = 0; i < _Vegetables.size(); ++i)
|
||||||
{
|
{
|
||||||
// if don't want to keep <default> ShapeNames, skip them.
|
// if don't want to keep <default> ShapeNames, skip them.
|
||||||
if(!keepDefaultShapeName && _Vegetables[i].Vegetable->ShapeName == "")
|
if(!keepDefaultShapeName && _Vegetables[i]._vegetable->ShapeName == "")
|
||||||
continue;
|
continue;
|
||||||
// if don't want to keep hiden vegetables, skip them.
|
// if don't want to keep hiden vegetables, skip them.
|
||||||
if(!keepHiden && !_Vegetables[i].Visible)
|
if(!keepHiden && !_Vegetables[i]._visible)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
vegetables.push_back(*_Vegetables[i].Vegetable);
|
vegetables.push_back(*_Vegetables[i]._vegetable);
|
||||||
// get dst index.
|
// get dst index.
|
||||||
uint dstId= (uint)vegetables.size()-1;
|
uint dstId= (uint)vegetables.size()-1;
|
||||||
// transform degrees in radians.
|
// transform degrees in radians.
|
||||||
|
@ -446,13 +455,13 @@ void CVegetableEditor::appendVegetableSet(NL3D::CTileVegetableDesc &vegetSet)
|
||||||
float radToDeg = (float)(180.f / NLMISC::Pi);
|
float radToDeg = (float)(180.f / NLMISC::Pi);
|
||||||
|
|
||||||
// for all distances Types.
|
// for all distances Types.
|
||||||
for(uint distType = 0; distType < NL3D_VEGETABLE_BLOCK_NUMDIST; distType++)
|
for(uint distType = 0; distType < NL3D_VEGETABLE_BLOCK_NUMDIST; ++distType)
|
||||||
{
|
{
|
||||||
// retrieve list of vegetable
|
// retrieve list of vegetable
|
||||||
const std::vector<NL3D::CVegetable> &vegetList = vegetSet.getVegetableList(distType);
|
const std::vector<NL3D::CVegetable> &vegetList = vegetSet.getVegetableList(distType);
|
||||||
|
|
||||||
// for all of them
|
// for all of them
|
||||||
for(uint i = 0; i < vegetList.size(); i++)
|
for(uint i = 0; i < vegetList.size(); ++i)
|
||||||
{
|
{
|
||||||
// append the vegetable to the list.
|
// append the vegetable to the list.
|
||||||
NL3D::CVegetable veget = vegetList[i];
|
NL3D::CVegetable veget = vegetList[i];
|
||||||
|
|
|
@ -113,7 +113,6 @@ public:
|
||||||
~CVegetableEditor(void);
|
~CVegetableEditor(void);
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
void release();
|
void release();
|
||||||
|
|
||||||
/// @name Landscape control
|
/// @name Landscape control
|
||||||
|
@ -228,47 +227,45 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void loadConfig();
|
void loadConfig();
|
||||||
|
|
||||||
void loadLandscapeSetup();
|
void loadLandscapeSetup();
|
||||||
|
|
||||||
void saveConfig();
|
void saveConfig();
|
||||||
|
|
||||||
NL3D::CLandscapeModel *_VegetableLandscape;
|
NL3D::CLandscapeModel *_VegetableLandscape;
|
||||||
|
|
||||||
// File info to build it
|
// File info to build it
|
||||||
std::string _VegetableLandscapeTileBank;
|
std::string _VegetableLandscapeTileBank;
|
||||||
std::string _VegetableLandscapeTileFarBank;
|
std::string _VegetableLandscapeTileFarBank;
|
||||||
std::vector<std::string> _VegetableLandscapeZoneNames;
|
std::vector<std::string> _VegetableLandscapeZoneNames;
|
||||||
|
|
||||||
// Misc.
|
// Misc.
|
||||||
float _VegetableLandscapeThreshold;
|
float _VegetableLandscapeThreshold;
|
||||||
float _VegetableLandscapeTileNear;
|
float _VegetableLandscapeTileNear;
|
||||||
float _VegetableLandscapeMultiply;
|
float _VegetableLandscapeMultiply;
|
||||||
NLMISC::CRGBA _VegetableLandscapeAmbient;
|
NLMISC::CRGBA _VegetableLandscapeAmbient;
|
||||||
NLMISC::CRGBA _VegetableLandscapeDiffuse;
|
NLMISC::CRGBA _VegetableLandscapeDiffuse;
|
||||||
std::string _VegetableTexture;
|
std::string _VegetableTexture;
|
||||||
NLMISC::CRGBA _VegetableAmbient;
|
NLMISC::CRGBA _VegetableAmbient;
|
||||||
NLMISC::CRGBA _VegetableDiffuse;
|
NLMISC::CRGBA _VegetableDiffuse;
|
||||||
NLMISC::CVector _VegetableLightDir;
|
NLMISC::CVector _VegetableLightDir;
|
||||||
// Vegetable wind.
|
// Vegetable wind.
|
||||||
NLMISC::CVector _VegetableWindDir;
|
NLMISC::CVector _VegetableWindDir;
|
||||||
float _VegetableWindFreq;
|
float _VegetableWindFreq;
|
||||||
float _VegetableWindPower;
|
float _VegetableWindPower;
|
||||||
float _VegetableWindBendMin;
|
float _VegetableWindBendMin;
|
||||||
|
|
||||||
bool _VegetableEnabled;
|
bool _VegetableEnabled;
|
||||||
|
|
||||||
// Collision
|
// Collision
|
||||||
bool _VegetableSnapToGround;
|
bool _VegetableSnapToGround;
|
||||||
float _VegetableSnapHeight;
|
float _VegetableSnapHeight;
|
||||||
NL3D::CVisualCollisionManager *_VegetableCollisionManager;
|
NL3D::CVisualCollisionManager *_VegetableCollisionManager;
|
||||||
NL3D::CVisualCollisionEntity *_VegetableCollisionEntity;
|
NL3D::CVisualCollisionEntity *_VegetableCollisionEntity;
|
||||||
|
|
||||||
// The vegetable List.
|
// The vegetable List.
|
||||||
std::vector<CVegetableNode> _Vegetables;
|
std::vector<CVegetableNode> _Vegetables;
|
||||||
|
|
||||||
NL3D::IDriver *_Driver;
|
NL3D::IDriver *_Driver;
|
||||||
NL3D::CScene *_Scene;
|
NL3D::CScene *_Scene;
|
||||||
|
|
||||||
}; /* class CVegetableEditor */
|
}; /* class CVegetableEditor */
|
||||||
|
|
||||||
|
|
|
@ -23,9 +23,9 @@
|
||||||
// Project includes
|
// Project includes
|
||||||
#include "modules.h"
|
#include "modules.h"
|
||||||
|
|
||||||
#define NL_VEGETABLE_EDIT_WIND_MAX_POWER 10.f
|
#define NL_VEGETABLE_EDIT_WIND_MAX_POWER 10.f
|
||||||
#define NL_VEGETABLE_EDIT_WIND_MAX_FREQUENCY 10.f
|
#define NL_VEGETABLE_EDIT_WIND_MAX_FREQUENCY 10.f
|
||||||
#define NL_VEGETABLE_EDIT_WIND_MAX_BENDSTART 1.f
|
#define NL_VEGETABLE_EDIT_WIND_MAX_BENDSTART 1.f
|
||||||
|
|
||||||
namespace NLQT
|
namespace NLQT
|
||||||
{
|
{
|
||||||
|
|
|
@ -54,7 +54,6 @@ private Q_SLOTS:
|
||||||
private:
|
private:
|
||||||
|
|
||||||
Ui::CVegetableLandscapePage _ui;
|
Ui::CVegetableLandscapePage _ui;
|
||||||
|
|
||||||
}; /* class CVegetableLandscapePage */
|
}; /* class CVegetableLandscapePage */
|
||||||
|
|
||||||
} /* namespace NLQT */
|
} /* namespace NLQT */
|
||||||
|
|
|
@ -29,14 +29,14 @@ static const char *NL_DefaultVegetName= "<default>";
|
||||||
|
|
||||||
CVegetableNode::CVegetableNode(void)
|
CVegetableNode::CVegetableNode(void)
|
||||||
{
|
{
|
||||||
Vegetable = NULL;
|
_vegetable = NULL;
|
||||||
VegetableName = NL_DefaultVegetName;
|
_vegetableName = NL_DefaultVegetName;
|
||||||
Visible = true;
|
_visible = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CVegetableNode::initDefaultVegetable()
|
void CVegetableNode::initDefaultVegetable()
|
||||||
{
|
{
|
||||||
Vegetable= new NL3D::CVegetable;
|
_vegetable = new NL3D::CVegetable;
|
||||||
// update vegetableName according to Vegetable
|
// update vegetableName according to Vegetable
|
||||||
updateVegetableName();
|
updateVegetableName();
|
||||||
|
|
||||||
|
@ -44,59 +44,59 @@ void CVegetableNode::initDefaultVegetable()
|
||||||
|
|
||||||
// General/Density.
|
// General/Density.
|
||||||
// Density.
|
// Density.
|
||||||
Vegetable->Density.Abs = NL_VEGETABLE_DENSITY_ABS_DEFAULT;
|
_vegetable->Density.Abs = NL_VEGETABLE_DENSITY_ABS_DEFAULT;
|
||||||
Vegetable->Density.Rand = NL_VEGETABLE_DENSITY_RAND_DEFAULT;
|
_vegetable->Density.Rand = NL_VEGETABLE_DENSITY_RAND_DEFAULT;
|
||||||
Vegetable->Density.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
_vegetable->Density.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
||||||
// disable MaxDensity
|
// disable MaxDensity
|
||||||
Vegetable->MaxDensity = -1;
|
_vegetable->MaxDensity = -1;
|
||||||
// Leave ShapeName to ""
|
// Leave ShapeName to ""
|
||||||
// Default DistType is always 0.
|
// Default DistType is always 0.
|
||||||
Vegetable->DistType = 0;
|
_vegetable->DistType = 0;
|
||||||
|
|
||||||
|
|
||||||
// Apperance
|
// Apperance
|
||||||
// BendPhase
|
// BendPhase
|
||||||
Vegetable->BendPhase.Abs = NL_VEGETABLE_BENDPHASE_ABS_DEFAULT;
|
_vegetable->BendPhase.Abs = NL_VEGETABLE_BENDPHASE_ABS_DEFAULT;
|
||||||
Vegetable->BendPhase.Rand = NL_VEGETABLE_BENDPHASE_RAND_DEFAULT;
|
_vegetable->BendPhase.Rand = NL_VEGETABLE_BENDPHASE_RAND_DEFAULT;
|
||||||
Vegetable->BendPhase.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
_vegetable->BendPhase.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
||||||
// BendFactor
|
// BendFactor
|
||||||
Vegetable->BendFactor.Abs = NL_VEGETABLE_BENDFACTOR_ABS_DEFAULT;
|
_vegetable->BendFactor.Abs = NL_VEGETABLE_BENDFACTOR_ABS_DEFAULT;
|
||||||
Vegetable->BendFactor.Rand = NL_VEGETABLE_BENDFACTOR_RAND_DEFAULT;
|
_vegetable->BendFactor.Rand = NL_VEGETABLE_BENDFACTOR_RAND_DEFAULT;
|
||||||
Vegetable->BendFactor.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
_vegetable->BendFactor.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
||||||
// Color
|
// Color
|
||||||
Vegetable->Color.NoiseValue.Abs = NL_VEGETABLE_COLOR_ABS_DEFAULT;
|
_vegetable->Color.NoiseValue.Abs = NL_VEGETABLE_COLOR_ABS_DEFAULT;
|
||||||
Vegetable->Color.NoiseValue.Rand = NL_VEGETABLE_COLOR_RAND_DEFAULT;
|
_vegetable->Color.NoiseValue.Rand = NL_VEGETABLE_COLOR_RAND_DEFAULT;
|
||||||
Vegetable->Color.NoiseValue.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
_vegetable->Color.NoiseValue.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
||||||
|
|
||||||
// Scale
|
// Scale
|
||||||
// ScaleXY
|
// ScaleXY
|
||||||
Vegetable->Sxy.Abs = NL_VEGETABLE_SCALE_ABS_DEFAULT;
|
_vegetable->Sxy.Abs = NL_VEGETABLE_SCALE_ABS_DEFAULT;
|
||||||
Vegetable->Sxy.Rand = NL_VEGETABLE_SCALE_RAND_DEFAULT;
|
_vegetable->Sxy.Rand = NL_VEGETABLE_SCALE_RAND_DEFAULT;
|
||||||
Vegetable->Sxy.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
_vegetable->Sxy.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
||||||
// ScaleZ.
|
// ScaleZ.
|
||||||
Vegetable->Sz.Abs = NL_VEGETABLE_SCALE_ABS_DEFAULT;
|
_vegetable->Sz.Abs = NL_VEGETABLE_SCALE_ABS_DEFAULT;
|
||||||
Vegetable->Sz.Rand = NL_VEGETABLE_SCALE_RAND_DEFAULT;
|
_vegetable->Sz.Rand = NL_VEGETABLE_SCALE_RAND_DEFAULT;
|
||||||
Vegetable->Sz.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
_vegetable->Sz.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
||||||
|
|
||||||
// Rotate
|
// Rotate
|
||||||
// RotateX
|
// RotateX
|
||||||
Vegetable->Rx.Abs = NL_VEGETABLE_ROTATEX_ABS_DEFAULT;
|
_vegetable->Rx.Abs = NL_VEGETABLE_ROTATEX_ABS_DEFAULT;
|
||||||
Vegetable->Rx.Rand = NL_VEGETABLE_ROTATEX_RAND_DEFAULT;
|
_vegetable->Rx.Rand = NL_VEGETABLE_ROTATEX_RAND_DEFAULT;
|
||||||
Vegetable->Rx.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
_vegetable->Rx.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
||||||
// RotateY
|
// RotateY
|
||||||
Vegetable->Ry.Abs = NL_VEGETABLE_ROTATEY_ABS_DEFAULT;
|
_vegetable->Ry.Abs = NL_VEGETABLE_ROTATEY_ABS_DEFAULT;
|
||||||
Vegetable->Ry.Rand = NL_VEGETABLE_ROTATEY_RAND_DEFAULT;
|
_vegetable->Ry.Rand = NL_VEGETABLE_ROTATEY_RAND_DEFAULT;
|
||||||
Vegetable->Ry.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
_vegetable->Ry.Frequency = NL_VEGETABLE_FREQ_DEFAULT;
|
||||||
// RotateZ
|
// RotateZ
|
||||||
Vegetable->Rz.Abs = NL_VEGETABLE_ROTATEZ_ABS_DEFAULT;
|
_vegetable->Rz.Abs = NL_VEGETABLE_ROTATEZ_ABS_DEFAULT;
|
||||||
Vegetable->Rz.Rand = NL_VEGETABLE_ROTATEZ_RAND_DEFAULT;
|
_vegetable->Rz.Rand = NL_VEGETABLE_ROTATEZ_RAND_DEFAULT;
|
||||||
Vegetable->Rz.Frequency = NL_VEGETABLE_ROTATEZ_FREQ_DEFAULT;
|
_vegetable->Rz.Frequency = NL_VEGETABLE_ROTATEZ_FREQ_DEFAULT;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void CVegetableNode::initVegetable(const NL3D::CVegetable &vegetable)
|
void CVegetableNode::initVegetable(const NL3D::CVegetable &vegetable)
|
||||||
{
|
{
|
||||||
Vegetable = new NL3D::CVegetable(vegetable);
|
_vegetable = new NL3D::CVegetable(vegetable);
|
||||||
// update vegetableName according to Vegetable
|
// update vegetableName according to Vegetable
|
||||||
updateVegetableName();
|
updateVegetableName();
|
||||||
}
|
}
|
||||||
|
@ -105,27 +105,27 @@ void CVegetableNode::initVegetable(const NL3D::CVegetable &vegetable)
|
||||||
void CVegetableNode::updateVegetableName()
|
void CVegetableNode::updateVegetableName()
|
||||||
{
|
{
|
||||||
// Build the vegetable Name according to the ShapeName
|
// Build the vegetable Name according to the ShapeName
|
||||||
if(Vegetable->ShapeName == "")
|
if(_vegetable->ShapeName == "")
|
||||||
{
|
{
|
||||||
VegetableName = NL_DefaultVegetName;
|
_vegetableName = NL_DefaultVegetName;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
std::string::size_type pos = Vegetable->ShapeName.find(".veget");
|
std::string::size_type pos = _vegetable->ShapeName.find(".veget");
|
||||||
VegetableName= Vegetable->ShapeName.substr(0, pos);
|
_vegetableName = _vegetable->ShapeName.substr(0, pos);
|
||||||
// And (to be clearer) append distance of creation.
|
// And (to be clearer) append distance of creation.
|
||||||
char str[256];
|
char str[256];
|
||||||
sprintf(str, " - %dm", (Vegetable->DistType + 1) * 10);
|
sprintf(str, " - %dm", (_vegetable->DistType + 1) * 10);
|
||||||
VegetableName += str;
|
_vegetableName += str;
|
||||||
// NB: if you add info with other parameters, you must use updateCurSelVegetableName() if they change
|
// NB: if you add info with other parameters, you must use updateCurSelVegetableName() if they change
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void CVegetableNode::deleteVegetable()
|
void CVegetableNode::deleteVegetable()
|
||||||
{
|
{
|
||||||
delete Vegetable;
|
delete _vegetable;
|
||||||
Vegetable = NULL;
|
_vegetable = NULL;
|
||||||
VegetableName = NL_DefaultVegetName;
|
_vegetableName = NL_DefaultVegetName;
|
||||||
}
|
}
|
||||||
|
|
||||||
} /* namespace NLQT */
|
} /* namespace NLQT */
|
|
@ -47,13 +47,13 @@ public:
|
||||||
void deleteVegetable();
|
void deleteVegetable();
|
||||||
|
|
||||||
// The vegetable
|
// The vegetable
|
||||||
NL3D::CVegetable *Vegetable;
|
NL3D::CVegetable *_vegetable;
|
||||||
|
|
||||||
// The name of this vegetable.
|
// The name of this vegetable.
|
||||||
std::string VegetableName;
|
std::string _vegetableName;
|
||||||
|
|
||||||
// Visibility. Editor feature only
|
// Visibility. Editor feature only
|
||||||
bool Visible;
|
bool _visible;
|
||||||
|
|
||||||
}; /* class CVegetableNode */
|
}; /* class CVegetableNode */
|
||||||
|
|
||||||
|
|
|
@ -23,13 +23,14 @@
|
||||||
// NeL includes
|
// NeL includes
|
||||||
|
|
||||||
#define NL_VEGETABLE_EDIT_SLIDER_NVS_SIZE_THRESHOLD 0.03f
|
#define NL_VEGETABLE_EDIT_SLIDER_NVS_SIZE_THRESHOLD 0.03f
|
||||||
#define NL_VEGETABLE_EDIT_SLIDER_NVS_SCALE 3.0f
|
#define NL_VEGETABLE_EDIT_SLIDER_NVS_SCALE 3.0f
|
||||||
|
|
||||||
namespace NLQT
|
namespace NLQT
|
||||||
{
|
{
|
||||||
|
|
||||||
CVegetNoiseValueWidget::CVegetNoiseValueWidget(QWidget *parent)
|
CVegetNoiseValueWidget::CVegetNoiseValueWidget(QWidget *parent)
|
||||||
: QGroupBox(parent), _emit(true)
|
: QGroupBox(parent),
|
||||||
|
_emit(true)
|
||||||
{
|
{
|
||||||
_ui.setupUi(this);
|
_ui.setupUi(this);
|
||||||
|
|
||||||
|
|
|
@ -40,8 +40,6 @@ public:
|
||||||
CVegetNoiseValueWidget(QWidget *parent = 0);
|
CVegetNoiseValueWidget(QWidget *parent = 0);
|
||||||
~CVegetNoiseValueWidget();
|
~CVegetNoiseValueWidget();
|
||||||
|
|
||||||
void setNoiseValue(const NLMISC::CNoiseValue &value, bool emit = true);
|
|
||||||
|
|
||||||
void setDefaultRangeAbs(float defRangeMin, float defRangeMax);
|
void setDefaultRangeAbs(float defRangeMin, float defRangeMax);
|
||||||
void setDefaultRangeRand(float defRangeMin, float defRangeMax);
|
void setDefaultRangeRand(float defRangeMin, float defRangeMax);
|
||||||
void setDefaultRangeFreq(float defRangeMin, float defRangeMax);
|
void setDefaultRangeFreq(float defRangeMin, float defRangeMax);
|
||||||
|
@ -49,6 +47,9 @@ public:
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void noiseValueChanged(const NLMISC::CNoiseValue &value);
|
void noiseValueChanged(const NLMISC::CNoiseValue &value);
|
||||||
|
|
||||||
|
public Q_SLOTS:
|
||||||
|
void setNoiseValue(const NLMISC::CNoiseValue &value, bool emit = true);
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void setSlider(int value);
|
void setSlider(int value);
|
||||||
void sliderReleased();
|
void sliderReleased();
|
||||||
|
|
|
@ -55,7 +55,7 @@ private Q_SLOTS:
|
||||||
private:
|
private:
|
||||||
|
|
||||||
// The vegetable to edit.
|
// The vegetable to edit.
|
||||||
NL3D::CVegetable *_Vegetable;
|
NL3D::CVegetable *_Vegetable;
|
||||||
|
|
||||||
Ui::CVegetableRotatePage _ui;
|
Ui::CVegetableRotatePage _ui;
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ private Q_SLOTS:
|
||||||
private:
|
private:
|
||||||
|
|
||||||
// The vegetable to edit.
|
// The vegetable to edit.
|
||||||
NL3D::CVegetable *_Vegetable;
|
NL3D::CVegetable *_Vegetable;
|
||||||
|
|
||||||
Ui::CVegetableScalePage _ui;
|
Ui::CVegetableScalePage _ui;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue