----------------------------------------------------------------------------
| 71 | |
| 72 | //---------------------------------------------------------------------------- |
| 73 | vtkImageReader2* vtkImageReader2Factory::CreateImageReader2(const char* path) |
| 74 | { |
| 75 | vtkImageReader2Factory::InitializeReaders(); |
| 76 | vtkImageReader2* ret; |
| 77 | vtkNew<vtkCollection> collection; |
| 78 | vtkObjectFactory::CreateAllInstance("vtkImageReaderObject", collection); |
| 79 | // first try the current registered object factories to see |
| 80 | // if one of them can |
| 81 | for (collection->InitTraversal(); vtkObject* object = collection->GetNextItemAsObject();) |
| 82 | { |
| 83 | ret = vtkImageReader2::SafeDownCast(object); |
| 84 | if (ret && ret->CanReadFile(path)) |
| 85 | { |
| 86 | return ret; |
| 87 | } |
| 88 | } |
| 89 | |
| 90 | // Then try all available readers |
| 91 | vtkCollectionSimpleIterator sit; |
| 92 | for (vtkImageReader2Factory::AvailableReaders->InitTraversal(sit); |
| 93 | (ret = vtkImageReader2Factory::AvailableReaders->GetNextImageReader2(sit));) |
| 94 | { |
| 95 | if (ret->CanReadFile(path)) |
| 96 | { |
| 97 | // like a new call |
| 98 | return ret->NewInstance(); |
| 99 | } |
| 100 | } |
| 101 | return nullptr; |
| 102 | } |
| 103 | |
| 104 | //---------------------------------------------------------------------------- |
| 105 | vtkImageReader2* vtkImageReader2Factory::CreateImageReader2FromExtension(const char* extension) |
no test coverage detected