- {
- if(catchAll)
- {
- output->ShallowCopy(tryOnCell);
- tryOnCell->Delete();//
- return 1;
- }
- else
- {
- if(catchSmth)
- {
- vtkDataSet *tryOnNode(FilterFamilies<PointExtractor>(thres2,input,idsToKeep,this->InsideOut,
- MEDFileFieldRepresentationLeavesArrays::FAMILY_ID_NODE_NAME,"vtkDataObject::FIELD_ASSOCIATION_POINTS",catchAll,catchSmth));
- if(tryOnNode && catchSmth)
- {
- vtkSmartPointer<vtkMultiBlockDataGroupFilter> mb(vtkSmartPointer<vtkMultiBlockDataGroupFilter>::New());
- vtkSmartPointer<vtkCompositeDataToUnstructuredGridFilter> cd(vtkSmartPointer<vtkCompositeDataToUnstructuredGridFilter>::New());
- mb->AddInputConnection(thres1->GetOutputPort());
- mb->AddInputConnection(thres2->GetOutputPort());
- cd->SetInputConnection(mb->GetOutputPort());
- cd->SetMergePoints(0);
- cd->Update();
- output->ShallowCopy(cd->GetOutput());
- tryOnCell->Delete();
- tryOnNode->Delete();
- return 1;
- }
- else
- {
- if(tryOnNode)
- tryOnNode->Delete();
- output->ShallowCopy(tryOnCell);
- tryOnCell->Delete();
- return 1;
- }
- }
- else
- {
- vtkDataSet *tryOnNode(FilterFamilies<PointExtractor>(thres1,input,idsToKeep,this->InsideOut,
- MEDFileFieldRepresentationLeavesArrays::FAMILY_ID_NODE_NAME,"vtkDataObject::FIELD_ASSOCIATION_POINTS",catchAll,catchSmth));
- if(tryOnNode)
- {
- tryOnCell->Delete();
- output->ShallowCopy(tryOnNode);
- tryOnNode->Delete();
- return 1;
- }
- else
- {
- output->ShallowCopy(tryOnCell);
- tryOnCell->Delete();
- return 0;
- }
- }
- }
- }
+ {
+ if(catchAll)
+ {
+ output->SetBlock(0,tryOnCell);
+ tryOnCell->Delete();//
+ return 1;
+ }
+ else
+ {
+ if(catchSmth)
+ {
+ vtkDataSet *tryOnNode(FilterFamilies<PointExtractor>(thres2,input,idsToKeep,this->InsideOut,
+ MEDFileFieldRepresentationLeavesArrays::FAMILY_ID_NODE_NAME,"vtkDataObject::FIELD_ASSOCIATION_POINTS",catchAll,catchSmth));
+ if(tryOnNode && catchSmth)
+ {
+ output->SetBlock(0,tryOnCell);
+ output->SetBlock(1,tryOnNode);
+ tryOnCell->Delete();
+ tryOnNode->Delete();
+ return 1;
+ }
+ else
+ {
+ if(tryOnNode)
+ tryOnNode->Delete();
+ output->SetBlock(0,tryOnCell);
+ tryOnCell->Delete();
+ return 1;
+ }
+ }
+ else
+ {
+ vtkDataSet *tryOnNode(FilterFamilies<PointExtractor>(thres1,input,idsToKeep,this->InsideOut,
+ MEDFileFieldRepresentationLeavesArrays::FAMILY_ID_NODE_NAME,"vtkDataObject::FIELD_ASSOCIATION_POINTS",catchAll,catchSmth));
+ if(tryOnNode)
+ {
+ tryOnCell->Delete();
+ output->SetBlock(0,tryOnNode);
+ tryOnNode->Delete();
+ return 1;
+ }
+ else
+ {
+ output->SetBlock(0,tryOnNode);
+ tryOnCell->Delete();
+ return 0;
+ }
+ }
+ }
+ }