// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- int BoundaryPhaseWidget::gatherStatsData(VoxelDataContainer::Pointer m) { if (m_PhaseIndex < 1) { QMessageBox::critical(this, tr("StatsGenerator"), tr("The Phase Index is Less than 1. This is not allowed."), QMessageBox::Default); return -1; } int retErr = 0; float calcPhaseFraction = m_PhaseFraction / m_TotalPhaseFraction; typedef DataArray<unsigned int> XTalStructArrayType; typedef DataArray<unsigned int> PhaseTypeArrayType; typedef DataArray<unsigned int> ShapeTypeArrayType; size_t ensembles = m->getNumEnsembleTuples(); // Get pointers unsigned int* crystalStructures = m->getEnsembleDataSizeCheck<unsigned int, XTalStructArrayType, AbstractFilter>(DREAM3D::EnsembleData::CrystalStructures, ensembles, 1, NULL); unsigned int* phaseTypes = m->getEnsembleDataSizeCheck<unsigned int, PhaseTypeArrayType, AbstractFilter>(DREAM3D::EnsembleData::PhaseTypes, ensembles, 1, NULL); //unsigned int* shapeTypes = m->getEnsembleDataSizeCheck<unsigned int, ShapeTypeArrayType, AbstractFilter>(DREAM3D::EnsembleData::ShapeTypes, ensembles*1, NULL); crystalStructures[m_PhaseIndex] = m_CrystalStructure; phaseTypes[m_PhaseIndex] = m_PhaseType; StatsDataArray* statsDataArray = StatsDataArray::SafeObjectDownCast<IDataArray*, StatsDataArray*>(m->getEnsembleData(DREAM3D::EnsembleData::Statistics).get()); StatsData::Pointer statsData = statsDataArray->getStatsData(m_PhaseIndex); BoundaryStatsData* boundaryStatsData = BoundaryStatsData::SafePointerDownCast(statsData.get()); boundaryStatsData->setPhaseFraction(calcPhaseFraction); return retErr; }
// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- int BoundaryPhaseWidget::gatherStatsData(AttributeMatrix::Pointer attrMat) { if (m_PhaseIndex < 1) { QMessageBox::critical(this, tr("StatsGenerator"), tr("The Phase Index is Less than 1. This is not allowed."), QMessageBox::Default); return -1; } int retErr = 0; float calcPhaseFraction = m_PhaseFraction / m_TotalPhaseFraction; //size_t ensembles = attrMat->getNumTuples(); // Get pointers IDataArray::Pointer iDataArray = attrMat->getAttributeArray(DREAM3D::EnsembleData::CrystalStructures); unsigned int* crystalStructures = boost::dynamic_pointer_cast< UInt32ArrayType >(iDataArray)->getPointer(0); iDataArray = attrMat->getAttributeArray(DREAM3D::EnsembleData::PhaseTypes); unsigned int* phaseTypes = boost::dynamic_pointer_cast< UInt32ArrayType >(iDataArray)->getPointer(0); crystalStructures[m_PhaseIndex] = m_CrystalStructure; phaseTypes[m_PhaseIndex] = m_PhaseType; StatsDataArray* statsDataArray = StatsDataArray::SafeObjectDownCast<IDataArray*, StatsDataArray*>(attrMat->getAttributeArray(DREAM3D::EnsembleData::Statistics).get()); if (NULL != statsDataArray) { StatsData::Pointer statsData = statsDataArray->getStatsData(m_PhaseIndex); BoundaryStatsData* boundaryStatsData = BoundaryStatsData::SafePointerDownCast(statsData.get()); boundaryStatsData->setPhaseFraction(calcPhaseFraction); } return retErr; }