QModelIndex VtkVisPipeline::addPipelineItem( vtkAlgorithm* source, QModelIndex parent /* = QModelindex() */) { TreeItem* parentItem = getItem(parent); QList<QVariant> itemData; QString itemName; if (!parent.isValid()) // if source object { vtkGenericDataObjectReader* reader = dynamic_cast<vtkGenericDataObjectReader*>(source); vtkImageReader2* imageReader = dynamic_cast<vtkImageReader2*>(source); VtkAlgorithmProperties* props = dynamic_cast<VtkAlgorithmProperties*>(source); if (reader) { QFileInfo fi(QString(reader->GetFileName())); itemName = fi.fileName(); } else if (imageReader) { QFileInfo fi(QString(imageReader->GetFileName())); itemName = fi.fileName(); } else if (props) { QFileInfo fi(props->GetName()); itemName = fi.fileName(); } else itemName = QString(source->GetClassName()); } else itemName = QString(source->GetClassName()); itemData << itemName << true; VtkVisPipelineItem* item(NULL); vtkImageAlgorithm* alg = dynamic_cast<vtkImageAlgorithm*>(source); if (alg) item = new VtkVisImageItem(source, parentItem, itemData); else item = new VtkVisPointSetItem(source, parentItem, itemData); return this->addPipelineItem(item, parent); }
QModelIndex VtkVisPipeline::addPipelineItem( vtkAlgorithm* source, QModelIndex parent /* = QModelindex() */) { std::string itemName; if (!parent.isValid()) // if source object { vtkGenericDataObjectReader* old_reader = dynamic_cast<vtkGenericDataObjectReader*>(source); vtkXMLReader* new_reader = dynamic_cast<vtkXMLReader*>(source); vtkImageReader2* image_reader = dynamic_cast<vtkImageReader2*>(source); VtkAlgorithmProperties* props = dynamic_cast<VtkAlgorithmProperties*>(source); InSituLib::VtkMappedMeshSource* meshSource = dynamic_cast<InSituLib::VtkMappedMeshSource*>(source); if (old_reader) itemName = old_reader->GetFileName(); else if (new_reader) itemName = new_reader->GetFileName(); else if (image_reader) itemName = image_reader->GetFileName(); else if (props) itemName = props->GetName().toStdString(); else if (meshSource) itemName = meshSource->GetMesh()->getName(); } if (itemName.length() == 0) itemName = source->GetClassName(); QList<QVariant> itemData; itemData << QString::fromStdString(itemName) << true; VtkVisPipelineItem* item(NULL); if (dynamic_cast<vtkImageAlgorithm*>(source)) item = new VtkVisImageItem(source, getItem(parent), itemData); else item = new VtkVisPointSetItem(source, getItem(parent), itemData); return this->addPipelineItem(item, parent); }