ccVolumeCalcTool::ccVolumeCalcTool(ccGenericPointCloud* cloud1, ccGenericPointCloud* cloud2, QWidget* parent/*=0*/) : QDialog(parent, Qt::WindowMaximizeButtonHint | Qt::WindowCloseButtonHint) , cc2Point5DimEditor() , Ui::VolumeCalcDialog() , m_cloud1(cloud1) , m_cloud2(cloud2) { setupUi(this); connect(buttonBox, SIGNAL(accepted()), this, SLOT(saveSettingsAndAccept())); connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject())); connect(gridStepDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateGridInfo())); connect(gridStepDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(gridOptionChanged())); connect(groundEmptyValueDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(gridOptionChanged())); connect(ceilEmptyValueDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(gridOptionChanged())); connect(projDimComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(projectionDirChanged(int))); connect(updatePushButton, SIGNAL(clicked()), this, SLOT(updateGridAndDisplay())); connect(heightProjectionComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(gridOptionChanged())); connect(fillGroundEmptyCellsComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(groundFillEmptyCellStrategyChanged(int))); connect(fillCeilEmptyCellsComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(ceilFillEmptyCellStrategyChanged(int))); connect(swapToolButton, SIGNAL(clicked()), this, SLOT(swapRoles())); connect(groundComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(groundSourceChanged(int))); connect(ceilComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(ceilSourceChanged(int))); connect(clipboardPushButton, SIGNAL(clicked()), this, SLOT(exportToClipboard())); connect(exportGridPushButton, SIGNAL(clicked()), this, SLOT(exportGridAsCloud())); connect(precisionSpinBox, SIGNAL(valueChanged(int)), this, SLOT(setDisplayedNumberPrecision(int))); if (m_cloud1 && !m_cloud2) { //the existing cloud is always the second by default std::swap(m_cloud1, m_cloud2); } assert(m_cloud2); //custom bbox editor ccBBox gridBBox = m_cloud1 ? m_cloud1->getOwnBB() : ccBBox(); if (m_cloud2) { gridBBox += m_cloud2->getOwnBB(); } if (gridBBox.isValid()) { createBoundingBoxEditor(gridBBox, this); connect(editGridToolButton, SIGNAL(clicked()), this, SLOT(showGridBoxEditor())); } else { editGridToolButton->setEnabled(false); } groundComboBox->addItem("Constant"); ceilComboBox->addItem("Constant"); if (m_cloud1) { groundComboBox->addItem(m_cloud1->getName()); ceilComboBox->addItem(m_cloud1->getName()); } if (m_cloud2) { groundComboBox->addItem(m_cloud2->getName()); ceilComboBox->addItem(m_cloud2->getName()); } assert(groundComboBox->count() >= 2); groundComboBox->setCurrentIndex(groundComboBox->count()-2); ceilComboBox->setCurrentIndex(ceilComboBox->count()-1); //add window create2DView(mapFrame); if (m_glWindow) { ccGui::ParamStruct params = m_glWindow->getDisplayParameters(); params.colorScaleShowHistogram = false; params.displayedNumPrecision = precisionSpinBox->value(); m_glWindow->setDisplayParameters(params, true); } loadSettings(); updateGridInfo(); gridIsUpToDate(false); }
ccRasterizeTool::ccRasterizeTool(ccGenericPointCloud* cloud, QWidget* parent/*=0*/) : QDialog(parent, Qt::WindowMaximizeButtonHint) , cc2Point5DimEditor() , Ui::RasterizeToolDialog() , m_cloud(cloud) { setupUi(this); #ifndef CC_GDAL_SUPPORT generateRasterPushButton->setDisabled(true); generateRasterPushButton->setChecked(false); #endif connect(buttonBox, SIGNAL(accepted()), this, SLOT(testAndAccept())); connect(buttonBox, SIGNAL(rejected()), this, SLOT(testAndReject())); connect(gridStepDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateGridInfo())); connect(gridStepDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(gridOptionChanged())); connect(emptyValueDoubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(gridOptionChanged())); connect(resampleCloudCheckBox, SIGNAL(toggled(bool)), this, SLOT(gridOptionChanged())); connect(dimensionComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(projectionDirChanged(int))); connect(heightProjectionComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(projectionTypeChanged(int))); connect(scalarFieldProjection, SIGNAL(currentIndexChanged(int)), this, SLOT(sfProjectionTypeChanged(int))); connect(fillEmptyCellsComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(fillEmptyCellStrategyChanged(int))); connect(updateGridPushButton, SIGNAL(clicked()), this, SLOT(updateGridAndDisplay())); connect(generateCloudPushButton, SIGNAL(clicked()), this, SLOT(generateCloud())); connect(generateImagePushButton, SIGNAL(clicked()), this, SLOT(generateImage())); connect(generateRasterPushButton, SIGNAL(clicked()), this, SLOT(generateRaster())); connect(generateASCIIPushButton, SIGNAL(clicked()), this, SLOT(generateASCIIMatrix())); connect(generateMeshPushButton, SIGNAL(clicked()), this, SLOT(generateMesh())); connect(generateContoursPushButton, SIGNAL(clicked()), this, SLOT(generateContours())); connect(exportContoursPushButton, SIGNAL(clicked()), this, SLOT(exportContourLines())); connect(clearContoursPushButton, SIGNAL(clicked()), this, SLOT(removeContourLines())); connect(activeLayerComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(activeLayerChanged(int))); //custom bbox editor ccBBox gridBBox = m_cloud ? m_cloud->getOwnBB() : ccBBox(); if (gridBBox.isValid()) { createBoundingBoxEditor(gridBBox, this); connect(editGridToolButton, SIGNAL(clicked()), this, SLOT(showGridBoxEditor())); } else { editGridToolButton->setEnabled(false); } if (m_cloud) { cloudNameLabel->setText(m_cloud->getName()); pointCountLabel->setText(QString::number(m_cloud->size())); interpolateSFFrame->setEnabled(cloud->hasScalarFields()); //populate layer box activeLayerComboBox->addItem(GetDefaultFieldName(PER_CELL_HEIGHT)); if (cloud->isA(CC_TYPES::POINT_CLOUD) && cloud->hasScalarFields()) { ccPointCloud* pc = static_cast<ccPointCloud*>(cloud); for (unsigned i=0; i<pc->getNumberOfScalarFields(); ++i) activeLayerComboBox->addItem(pc->getScalarField(i)->getName()); } else { activeLayerComboBox->setEnabled(false); } //add window create2DView(mapFrame); } loadSettings(); updateGridInfo(); gridIsUpToDate(false); }