aboutsummaryrefslogtreecommitdiff
path: root/tools/ArtistTools/source/BlastPlugin/Window/FractureSliceSettingsPanel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/ArtistTools/source/BlastPlugin/Window/FractureSliceSettingsPanel.cpp')
-rw-r--r--tools/ArtistTools/source/BlastPlugin/Window/FractureSliceSettingsPanel.cpp198
1 files changed, 0 insertions, 198 deletions
diff --git a/tools/ArtistTools/source/BlastPlugin/Window/FractureSliceSettingsPanel.cpp b/tools/ArtistTools/source/BlastPlugin/Window/FractureSliceSettingsPanel.cpp
deleted file mode 100644
index 103c01c..0000000
--- a/tools/ArtistTools/source/BlastPlugin/Window/FractureSliceSettingsPanel.cpp
+++ /dev/null
@@ -1,198 +0,0 @@
-#include "FractureSliceSettingsPanel.h"
-#include "ui_FractureSliceSettingsPanel.h"
-#include "SimpleScene.h"
-#include "SampleManager.h"
-#include <QtWidgets/QMessageBox>
-#include "FractureGeneralPanel.h"
-#include "BlastFamily.h"
-
-FractureSliceSettingsPanel::FractureSliceSettingsPanel(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::FractureSliceSettingsPanel),
- _updateData(true),
- _generalPanel(nullptr)
-{
- ui->setupUi(this);
-}
-
-FractureSliceSettingsPanel::~FractureSliceSettingsPanel()
-{
- delete ui;
-}
-
-void FractureSliceSettingsPanel::updateValues()
-{
- _updateData = false;
- BPPSlice* slice = _getBPPSlice();
-
- ui->spinBoxNumSlicesX->setValue(slice->numSlicesX);
- ui->spinBoxNumSlicesY->setValue(slice->numSlicesY);
- ui->spinBoxNumSlicesZ->setValue(slice->numSlicesZ);
- ui->spinBoxOffsetVariation->setValue(slice->offsetVariation);
- ui->spinBoxRotationVariation->setValue(slice->rotationVariation);
- ui->spinBoxNoiseAmplitude->setValue(slice->noiseAmplitude);
- ui->spinBoxNoiseFrequency->setValue(slice->noiseFrequency);
- ui->spinBoxNoiseOctaveNumber->setValue(slice->noiseOctaveNumber);
- ui->spinBoxNoiseSeed->setValue(slice->noiseSeed);
- ui->spinBoxSurfaceResolution->setValue(slice->surfaceResolution);
- _updateData = true;
-}
-
-void FractureSliceSettingsPanel::on_spinBoxNumSlicesX_valueChanged(int arg1)
-{
- if (!_updateData)
- return;
-
- BPPSlice* slice = _getBPPSlice();
- slice->numSlicesX = arg1;
-}
-
-void FractureSliceSettingsPanel::on_spinBoxNumSlicesY_valueChanged(int arg1)
-{
- if (!_updateData)
- return;
-
- BPPSlice* slice = _getBPPSlice();
- slice->numSlicesY = arg1;
-}
-
-void FractureSliceSettingsPanel::on_spinBoxNumSlicesZ_valueChanged(int arg1)
-{
- if (!_updateData)
- return;
-
- BPPSlice* slice = _getBPPSlice();
- slice->numSlicesZ = arg1;
-}
-
-void FractureSliceSettingsPanel::on_spinBoxOffsetVariation_valueChanged(double arg1)
-{
- if (!_updateData)
- return;
-
- BPPSlice* slice = _getBPPSlice();
- slice->offsetVariation = arg1;
-}
-
-void FractureSliceSettingsPanel::on_spinBoxRotationVariation_valueChanged(double arg1)
-{
- if (!_updateData)
- return;
-
- BPPSlice* slice = _getBPPSlice();
- slice->rotationVariation = arg1;
-}
-
-void FractureSliceSettingsPanel::on_spinBoxNoiseAmplitude_valueChanged(double arg1)
-{
- if (!_updateData)
- return;
-
- BPPSlice* slice = _getBPPSlice();
- slice->noiseAmplitude = arg1;
-}
-
-void FractureSliceSettingsPanel::on_spinBoxNoiseFrequency_valueChanged(double arg1)
-{
- if (!_updateData)
- return;
-
- BPPSlice* slice = _getBPPSlice();
- slice->noiseFrequency = arg1;
-}
-
-void FractureSliceSettingsPanel::on_spinBoxNoiseOctaveNumber_valueChanged(int arg1)
-{
- if (!_updateData)
- return;
-
- BPPSlice* slice = _getBPPSlice();
- slice->noiseOctaveNumber = arg1;
-}
-
-void FractureSliceSettingsPanel::on_spinBoxNoiseSeed_valueChanged(int arg1)
-{
- if (!_updateData)
- return;
-
- BPPSlice* slice = _getBPPSlice();
- slice->noiseSeed = arg1;
-}
-
-void FractureSliceSettingsPanel::on_spinBoxSurfaceResolution_valueChanged(int arg1)
-{
- if (!_updateData)
- return;
-
- BPPSlice* slice = _getBPPSlice();
- slice->surfaceResolution = arg1;
-}
-
-void FractureSliceSettingsPanel::on_btnApplyFracture_clicked()
-{
- BPPSlice* slice = _getBPPSlice();
- SliceFractureExecutor executor;
- executor.setBPPSlice(slice);
-
- SampleManager* pSampleManager = SampleManager::ins();
- std::map<BlastAsset*, std::vector<BlastFamily*>>& AssetFamiliesMap = pSampleManager->getAssetFamiliesMap();
- std::map<BlastAsset*, AssetList::ModelAsset>& AssetDescMap = pSampleManager->getAssetDescMap();
- BPParams& projectParams = BlastProject::ins().getParams();
- BPPGraphicsMaterialArray& theArray = projectParams.graphicsMaterials;
- BPPFractureGeneral& fractureGeneral = projectParams.fracture.general;
- int32_t nMaterialIndex = fractureGeneral.applyMaterial;
- std::string materialName = "";
- RenderMaterial* pRenderMaterial = nullptr;
- if (nMaterialIndex > 0)
- {
- BPPGraphicsMaterial& item = theArray.buf[nMaterialIndex - 1];
- materialName = item.name.buf;
- pRenderMaterial = pSampleManager->getRenderMaterial(materialName);
- }
-
- std::map<BlastAsset*, std::vector<uint32_t>> selectedChunks = SampleManager::ins()->getSelectedChunks();
- std::map<BlastAsset*, std::vector<uint32_t>>::iterator itrAssetSelectedChunks = selectedChunks.begin();
- for (; itrAssetSelectedChunks != selectedChunks.end(); itrAssetSelectedChunks++)
- {
- if (itrAssetSelectedChunks->second.size() == 0)
- {
- continue;
- }
-
- if (pRenderMaterial != nullptr)
- {
- BlastAsset* pBlastAsset = itrAssetSelectedChunks->first;
- std::vector<BlastFamily*> families = AssetFamiliesMap[pBlastAsset];
- int familySize = families.size();
- for (int fs = 0; fs < familySize; fs++)
- {
- BlastFamily* pBlastFamily = families[fs];
- pBlastFamily->setMaterial(pRenderMaterial, false);
-
- AssetList::ModelAsset modelAsset = AssetDescMap[pBlastAsset];
- int assetID = BlastProject::ins().getAssetIDByName(modelAsset.name.c_str());
- BPPAssetInstance* instance = BlastProject::ins().getAssetInstance(assetID, fs);
- copy(instance->inMaterial, materialName.c_str());
- }
- }
-
- executor.setSourceAsset(itrAssetSelectedChunks->first);
- executor.setTargetChunks(itrAssetSelectedChunks->second);
- executor.execute();
- }
-}
-
-BPPSlice* FractureSliceSettingsPanel::_getBPPSlice()
-{
- BPPSlice* slice = nullptr;
- FracturePreset* preset = _generalPanel->getCurrentFracturePreset();
- if (nullptr != preset)
- {
- slice = &(preset->fracture.slice);
- }
- else
- {
- slice = &(BlastProject::ins().getParams().fracture.slice);
- }
- return slice;
-}