- conv->Update();
-
- // How to unreference the old output (is in an any...) ?
- //if (bbGetOutputOut()) bbGetOutputOut()->Unreference();
+ }
+ else
+ {
+ bbtkDebugMessage("process",5," ["<<bbGetFullName()<<"] : Converter ok "<<std::endl);
+ // Input vtkImage type changed ?
+ // Have to change the converter and set its input
+ conv = dynamic_cast<VtkToItkConnection*>
+ ((itk::ProcessObject*)mConverter);
+ if (!conv)
+ {
+ bbtkDebugMessage("process",5," ["<<bbGetFullName()<<"] : Converter of wrong input type : reacreating it "<<std::endl);
+ mConverter->UnRegister();
+ conv = VtkToItkConnection::New();
+ mConverter = conv;
+ conv->SetInput( this->bbGetInputIn() );
+ }
+ // Input image type did not change but input image pointer did:
+ // set new input
+ else if ( this->bbGetInputIn() != conv->GetExporter()->GetInput())
+ {
+ bbtkDebugMessage("process",5," ["<<bbGetFullName()<<"] : Converter input changed : resetting it"<<std::endl);
+ conv->SetInput( this->bbGetInputIn() );
+ }
+ else
+ {
+ bbtkDebugMessage("process",5," ["<<bbGetFullName()<<"] : Nothing changed"<<std::endl);
+ }
+ }
+ try
+ {