void ccVolumeCalcTool::updateGridAndDisplay() { bool success = updateGrid(); if (success && m_glWindow) { //convert grid to point cloud if (m_rasterCloud) { m_glWindow->removeFromOwnDB(m_rasterCloud); delete m_rasterCloud; m_rasterCloud = 0; } m_rasterCloud = convertGridToCloud(false); if (m_rasterCloud) { m_glWindow->addToOwnDB(m_rasterCloud); ccBBox box = m_rasterCloud->getDisplayBB_recursive(false, m_glWindow); update2DDisplayZoom(box); } else { ccLog::Error("Not enough memory!"); m_glWindow->redraw(); } } gridIsUpToDate(success); }
void ccVolumeCalcTool::updateGridAndDisplay() { bool success = updateGrid(); if (success && m_window) { //convert grid to point cloud if (m_rasterCloud) { m_window->removeFromOwnDB(m_rasterCloud); delete m_rasterCloud; m_rasterCloud = 0; } std::vector<ExportableFields> exportedFields; try { //we only compute the default 'height' layer exportedFields.push_back(PER_CELL_HEIGHT); m_rasterCloud = cc2Point5DimEditor::convertGridToCloud( exportedFields, false, false, false, 0, false, std::numeric_limits<double>::quiet_NaN()); if (m_rasterCloud && m_rasterCloud->hasScalarFields()) { m_rasterCloud->showSF(true); m_rasterCloud->setCurrentDisplayedScalarField(0); m_rasterCloud->getScalarField(0)->setName("Height above ground"); m_rasterCloud->showSFColorsScale(true); } } catch (const std::bad_alloc&) { //see below } if (m_rasterCloud) { m_window->addToOwnDB(m_rasterCloud); ccBBox box = m_rasterCloud->getDisplayBB_recursive(false,m_window); update2DDisplayZoom(box); } else { ccLog::Error("Not enough memory!"); m_window->redraw(); } } gridIsUpToDate(success); }
void ccRasterizeTool::updateGridAndDisplay() { bool activeLayerIsSF = activeLayerComboBox->currentIndex() != 0; bool interpolateSF = activeLayerIsSF || (getTypeOfSFInterpolation() != INVALID_PROJECTION_TYPE); bool success = updateGrid(interpolateSF); if (success && m_window) { //convert grid to point cloud if (m_rasterCloud) { m_window->removeFromOwnDB(m_rasterCloud); delete m_rasterCloud; m_rasterCloud = 0; } std::vector<ExportableFields> exportedFields; try { //we always compute the default 'height' layer exportedFields.push_back(PER_CELL_HEIGHT); //but we may also have to compute the 'original SF(s)' layer(s) QString activeLayerName = activeLayerComboBox->currentText(); m_rasterCloud = convertGridToCloud(exportedFields,activeLayerIsSF,activeLayerName); } catch (const std::bad_alloc&) { //see below } if (m_rasterCloud) { m_window->addToOwnDB(m_rasterCloud); ccBBox box = m_rasterCloud->getDisplayBB_recursive(false,m_window); update2DDisplayZoom(box); //update activeLayerChanged(activeLayerComboBox->currentIndex(),false); } else { ccLog::Error("Not enough memory!"); m_window->redraw(); } } gridIsUpToDate(success); }