// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- void Threshold::dataCheck(bool preflight, size_t voxels, size_t fields, size_t ensembles) { setErrorCondition(0); std::stringstream ss; VoxelDataContainer* m = getVoxelDataContainer(); if(m_SelectedCellArrayName.empty() == true) { setErrorCondition(-11000); ss << "An array from the Voxel Data Container must be selected."; addErrorMessage(getHumanLabel(),ss.str(),getErrorCondition()); } else { m_RawImageDataArrayName=m_SelectedCellArrayName; GET_PREREQ_DATA(m, DREAM3D, CellData, RawImageData, ss, -300, ImageProcessing::DefaultPixelType, ImageProcessing::DefaultArrayType, voxels, 1) if(m_OverwriteArray) { } else { CREATE_NON_PREREQ_DATA(m, DREAM3D, CellData, ProcessedImageData, ss, ImageProcessing::DefaultPixelType, ImageProcessing::DefaultArrayType, 0, voxels, 1) m->renameCellData(m_ProcessedImageDataArrayName, m_NewCellArrayName); } } }
// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- void DxReader::dataCheck(bool preflight, size_t voxels, size_t fields, size_t ensembles) { setErrorCondition(0); std::stringstream ss; VoxelDataContainer* m = getVoxelDataContainer(); if (getInputFile().empty() == true) { ss << ClassName() << " needs the Input File Set and it was not."; setErrorCondition(-387); addErrorMessage(getHumanLabel(), ss.str(), getErrorCondition()); } else if (MXAFileInfo::exists(getInputFile()) == false) { ss << "The input file does not exist."; setErrorCondition(-388); addErrorMessage(getHumanLabel(), ss.str(), getErrorCondition()); } CREATE_NON_PREREQ_DATA(m, DREAM3D, CellData, GrainIds, ss, int32_t, Int32ArrayType, 0, voxels, 1) m->setResolution(m_Resolution.x, m_Resolution.y, m_Resolution.z); m->setOrigin(m_Origin.x, m_Origin.y, m_Origin.z); if (m_InStream.is_open() == true) { m_InStream.close(); } // We need to read the header of the input file to get the dimensions m_InStream.open(getInputFile().c_str(), std::ios_base::binary); if(!m_InStream) { ss.clear(); ss << " Runtime Error. The input file '" << getInputFile() << "' could not be" << " opened for reading. Do you have access to this file?"; setErrorCondition(-49800); addErrorMessage(getHumanLabel(), ss.str(), getErrorCondition()); return; } int error = readHeader(); m_InStream.close(); if (error < 0) { setErrorCondition(error); ss.clear(); ss << "Error occurred trying to parse the dimensions from the input file. Is the input file a Dx file?"; addErrorMessage(getHumanLabel(), ss.str(), -11000); } }
// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- void FindNeighbors::dataCheck(bool preflight, size_t voxels, size_t fields, size_t ensembles) { setErrorCondition(0); std::stringstream ss; VoxelDataContainer* m = getVoxelDataContainer(); // Cell Data GET_PREREQ_DATA( m, DREAM3D, CellData, GrainIds, ss, -300, int32_t, Int32ArrayType, voxels, 1) CREATE_NON_PREREQ_DATA(m, DREAM3D, CellData, SurfaceVoxels, ss, int8_t, Int8ArrayType, 0, voxels, 1) // Field Data // Do this whole block FIRST otherwise the side effect is that a call to m->getNumFieldTuples will = 0 // because we are just creating an empty NeighborList object. // Now we are going to get a "Pointer" to the NeighborList object out of the DataContainer m_NeighborList = NeighborList<int>::SafeObjectDownCast<IDataArray*, NeighborList<int>* > (m->getFieldData(m_NeighborListArrayName).get()); if(m_NeighborList == NULL) { NeighborList<int>::Pointer neighborlistPtr = NeighborList<int>::New(); neighborlistPtr->SetName(m_NeighborListArrayName); neighborlistPtr->Resize(fields); neighborlistPtr->setNumNeighborsArrayName(getNumNeighborsArrayName()); m->addFieldData(m_NeighborListArrayName, neighborlistPtr); if (neighborlistPtr.get() == NULL) { ss << "NeighborLists Array Not Initialized at Beginning of FindNeighbors Filter" << std::endl; setErrorCondition(-308); } m_NeighborList = NeighborList<int>::SafeObjectDownCast<IDataArray*, NeighborList<int>* > (m->getFieldData(m_NeighborListArrayName).get()); CreatedArrayHelpIndexEntry::Pointer e = CreatedArrayHelpIndexEntry::New(); e->setFilterName(this->getNameOfClass()); e->setFilterHumanLabel(this->getHumanLabel()); e->setFilterGroup(this->getGroupName()); e->setFilterSubGroup(this->getSubGroupName()); e->setArrayDefaultName(m_NeighborListArrayName); e->setArrayGroup("Field"); e->setArrayNumComponents(0); e->setArrayType("NeighborList"); addCreatedArrayHelpIndexEntry(e); } // And we do the same for the SharedSurfaceArea list m_SharedSurfaceAreaList = NeighborList<float>::SafeObjectDownCast<IDataArray*, NeighborList<float>*> (m->getFieldData(m_SharedSurfaceAreaListArrayName).get()); if(m_SharedSurfaceAreaList == NULL) { NeighborList<float>::Pointer sharedSurfaceAreaListPtr = NeighborList<float>::New(); sharedSurfaceAreaListPtr->SetName(m_SharedSurfaceAreaListArrayName); sharedSurfaceAreaListPtr->Resize(fields); sharedSurfaceAreaListPtr->setNumNeighborsArrayName(getNumNeighborsArrayName()); m->addFieldData(m_SharedSurfaceAreaListArrayName, sharedSurfaceAreaListPtr); if (sharedSurfaceAreaListPtr.get() == NULL) { ss.str(""); ss << "SurfaceAreaLists Array Not Initialized correctly at Beginning of FindNeighbors Filter" << std::endl; setErrorCondition(-308); addErrorMessage(getHumanLabel(), ss.str(), -308); } m_SharedSurfaceAreaList = NeighborList<float>::SafeObjectDownCast<IDataArray*, NeighborList<float>*> (m->getFieldData(m_SharedSurfaceAreaListArrayName).get()); CreatedArrayHelpIndexEntry::Pointer e = CreatedArrayHelpIndexEntry::New(); e->setFilterName(this->getNameOfClass()); e->setFilterHumanLabel(this->getHumanLabel()); e->setFilterGroup(this->getGroupName()); e->setFilterSubGroup(this->getSubGroupName()); e->setArrayDefaultName(m_SharedSurfaceAreaListArrayName); e->setArrayGroup("Field"); e->setArrayNumComponents(0); e->setArrayType("SurfaceAreaLists"); addCreatedArrayHelpIndexEntry(e); } CREATE_NON_PREREQ_DATA(m, DREAM3D, FieldData, SurfaceFields, ss, bool, BoolArrayType, false, fields, 1) CREATE_NON_PREREQ_DATA(m, DREAM3D, FieldData, NumNeighbors, ss, int32_t, Int32ArrayType, 0, fields, 1) }