// ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- void TestSyntheticBuilder() { MXADir::mkdir(m_OutputDirectory, true); Observer* observer = new Observer; int err = 0; // Create our Pipeline object FilterPipeline::Pointer pipeline = FilterPipeline::New(); VoxelDataContainer::Pointer m = VoxelDataContainer::New(); pipeline->setVoxelDataContainer(m); ShapeTypeArrayType::Pointer m_ShapeTypes = ShapeTypeArrayType::CreateArray(4, DREAM3D::EnsembleData::ShapeTypes); m_ShapeTypes->SetValue(0, DREAM3D::ShapeType::UnknownShapeType); m_ShapeTypes->SetValue(1, DREAM3D::ShapeType::EllipsoidShape); m_ShapeTypes->SetValue(2, DREAM3D::ShapeType::EllipsoidShape); m_ShapeTypes->SetValue(3, DREAM3D::ShapeType::EllipsoidShape); InitializeSyntheticVolume::Pointer init_volume = InitializeSyntheticVolume::New(); init_volume->setShapeTypes(m_ShapeTypes); init_volume->setInputFile(getH5StatsFile()); init_volume->setXVoxels(m_XPoints); init_volume->setYVoxels(m_YPoints); init_volume->setZVoxels(m_ZPoints); init_volume->setXRes(m_XResolution); init_volume->setYRes(m_YResolution); init_volume->setZRes(m_ZResolution); pipeline->pushBack(init_volume); PackPrimaryPhases::Pointer pack_grains = PackPrimaryPhases::New(); pack_grains->setPeriodicBoundaries(m_PeriodicBoundary); pack_grains->setNeighborhoodErrorWeight(m_NeighborhoodErrorWeight); #if PACK_GRAINS_ERROR_TXT_OUT MAKE_OUTPUT_FILE_PATH( errorFile, DREAM3D::SyntheticBuilder::ErrorFile) pack_grains->setErrorOutputFile(errorFile); #endif #if PACK_GRAINS_VTK_FILE_OUT MAKE_OUTPUT_FILE_PATH( vtkFile, DREAM3D::SyntheticBuilder::VtkFile) pack_grains->setVtkOutputFile(vtkFile); #endif pipeline->pushBack(pack_grains); AdjustVolume::Pointer adjust_grains = AdjustVolume::New(); pipeline->pushBack(adjust_grains); InsertPrecipitatePhases::Pointer place_precipitates = InsertPrecipitatePhases::New(); place_precipitates->setPeriodicBoundaries(m_PeriodicBoundary); pipeline->pushBack(place_precipitates); MatchCrystallography::Pointer match_crystallography = MatchCrystallography::New(); // pipeline->pushBack(match_crystallography); FieldDataCSVWriter::Pointer write_fielddata = FieldDataCSVWriter::New(); write_fielddata->setFieldDataFile(UnitTest::SyntheticBuilderTest::CsvFile); pipeline->pushBack(write_fielddata); DataContainerWriter::Pointer writer = DataContainerWriter::New(); writer->setOutputFile(UnitTest::SyntheticBuilderTest::OutputFile); pipeline->pushBack(writer); bool m_WriteVtkFile(true); bool m_WriteBinaryVTKFiles(true); bool m_WritePhaseId(true); bool m_WriteIPFColor(false); if(m_WriteVtkFile) { VtkRectilinearGridWriter::Pointer vtkWriter = VtkRectilinearGridWriter::New(); vtkWriter->setOutputFile(UnitTest::SyntheticBuilderTest::VtkOutputFile); vtkWriter->setWriteGrainIds(true); vtkWriter->setWritePhaseIds(m_WritePhaseId); // vtkWriter->setWriteGoodVoxels(m_WriteGoodVoxels); vtkWriter->setWriteIPFColors(m_WriteIPFColor); vtkWriter->setWriteBinaryFile(m_WriteBinaryVTKFiles); pipeline->pushBack(vtkWriter); } std::cout << "********* RUNNING PIPELINE **********************" << std::endl; m = VoxelDataContainer::New(); pipeline->setVoxelDataContainer(m); pipeline->run(); err = pipeline->getErrorCondition(); DREAM3D_REQUIRE_EQUAL(err, 0); DREAM3D_REQUIRE_EQUAL(false, pipeline->empty()); pipeline->clear(); DREAM3D_REQUIRE_EQUAL(0, pipeline->size()); DREAM3D_REQUIRE_EQUAL(true, pipeline->empty()); delete observer; }