BBTK_TEMPLATE_VTK_IMAGE_DATA_SWITCH(bbGetInputIn(),Convert)
}
-
template<class T, unsigned int D>
void vtkImageData2itkImage::Convert()
{
- bbtkDebugMessage("process",5,"==> ["<<bbGetFullName()<<"] : Convert<"
- <<bbtk::TypeName<T>()<<","<<D
- <<">()"<<std::endl);
-
-
+ bbtkDebugMessage("process",5,"==> ["<<bbGetFullName()<<"] : Convert<" <<bbtk::TypeName<T>()<<","<<D <<">()"<<std::endl);
typedef itk::Image<T,D> itkImageType;
typedef itk::VTKImageToImageFilter< itkImageType > VtkToItkConnection;
typename VtkToItkConnection::Pointer conv;
// No converter yet : create it and set its input
- if (!mConverter)
- {
- bbtkDebugMessage("process",5," ["<<bbGetFullName()<<"] : No converter yet : creating it"<<std::endl);
- conv = VtkToItkConnection::New();
- mConverter = conv;
- conv->SetInput( this->bbGetInputIn() );
- }
- 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
+
+ //EED 2025 ups
+ mConverter=NULL;
+
+ if (!mConverter)
+ {
+ bbtkDebugMessage("process",5," ["<<bbGetFullName()<<"] : No converter yet : creating it"<<std::endl);
+ conv = VtkToItkConnection::New();
+ mConverter = conv;
+ conv->SetInput( this->bbGetInputIn() );
+ } 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
- {
+ } else{
bbtkDebugMessage("process",5," ["<<bbGetFullName()<<"] : Nothing changed"<<std::endl);
- }
- }
+ }
+
+ }
+
try
- {
-
- bbtkDebugMessage("process",5," ["<<bbGetFullName()<<"] : Trying update"<<std::endl);
-
- conv->Update();
-
- itkImageType* out = const_cast<itkImageType*>(conv->GetOutput());
- bbSetOutputOut(out);
- }
- catch( itk::ExceptionObject & e)
- {
- bbtkError("vtkImageData2itkImage<"
- <<bbtk::TypeName<T>()<<","<<D
- <<">::Convert() : "<<e);
- }
- bbtkDebugMessage("process",5,"<== ["<<bbGetFullName()<<"] : Convert<"
- <<bbtk::TypeName<T>()<<","<<D
- <<">() *DONE*"<<std::endl);
+ {
+ bbtkDebugMessage("process",5," ["<<bbGetFullName()<<"] : Trying update"<<std::endl);
+ conv->Update();
+ itkImageType* out = const_cast<itkImageType*>(conv->GetOutput());
+ bbSetOutputOut(out);
+ } catch( itk::ExceptionObject & e) {
+ bbtkError("vtkImageData2itkImage<" <<bbtk::TypeName<T>()<<","<<D <<">::Convert() : "<<e);
+ }
+ bbtkDebugMessage("process",5,"<== ["<<bbGetFullName()<<"] : Convert<" <<bbtk::TypeName<T>()<<","<<D <<">() *DONE*"<<std::endl);
}
-
void vtkImageData2itkImage::bbUserSetDefaultValues()
{
// bbSetOutputOut(NULL);
- mConverter = 0;
+ mConverter = NULL;
}
void vtkImageData2itkImage::bbUserInitializeProcessing()
{
}
-
-}
-// eo namespace bbtk
+}// eo namespace bbtk
#endif
// _USE_VTK_
BBTK_AUTHOR("laurent.guigues@creatis.insa-lyon.fr");
BBTK_DESCRIPTION("Converts a vtkImageData* to a generic itkImage pointer");
BBTK_DEFAULT_ADAPTOR();
- BBTK_INPUT(vtkImageData2itkImage,In,
- "Input vtkImageData",vtkImageData*,"");
- BBTK_OUTPUT(vtkImageData2itkImage,Out,
- "Output itkImage",
- bbitk::anyImagePointer,"");
+ BBTK_INPUT(vtkImageData2itkImage,In,"Input vtkImageData",vtkImageData*,"");
+ BBTK_OUTPUT(vtkImageData2itkImage,Out,"Output itkImage",bbitk::anyImagePointer,"");
BBTK_END_DESCRIBE_BLACK_BOX(vtkImageData2itkImage);
//=================================================================
BBTK_CATEGORY("empty");
BBTK_INPUT(MathOperation,In1,"First input",double,"");
BBTK_INPUT(MathOperation,In2,"Second input",double,"");
- BBTK_INPUT(MathOperation,Type,"Type (defalult 0): 0 adition (default), 1 sustraction In1-In2, 2 multiplication In1*In2, 3 divisiuon In1/In2, 4 sqrt In1, 5 log In1, 6 exp In1, 7 incremental int [In1..In2], 8 random int [In1..In2], 9 sin In1-rad, 10 cos In1-rad, 11 tan In1-rad, 12 asin In 1, 13 acos In1, 14 atan In1, 15 atan2 In1 In2 , 16 min, 17 max, 18 abs In1, 19 module In1%In2 , 20 lessThan In1<In2, 21 greaterThan In1>In2, 22 round In1, 23 rint In1, 24 floor In1, 25 ceil In1, 26 trunc In1, 30 equal In1=In2",int,"");
+ BBTK_INPUT(MathOperation,Type,"Type (defalult 0): 0 adition (default), 1 sustraction In1-In2, 2 multiplication In1*In2, 3 division In1/In2, 4 sqrt In1, 5 log In1, 6 exp In1, 7 incremental int [In1..In2], 8 random int [In1..In2], 9 sin In1-rad, 10 cos In1-rad, 11 tan In1-rad, 12 asin In 1, 13 acos In1, 14 atan In1, 15 atan2 In1 In2 , 16 min, 17 max, 18 abs In1, 19 module In1%In2 , 20 lessThan In1<In2, 21 greaterThan In1>In2, 22 round In1, 23 rint In1, 24 floor In1, 25 ceil In1, 26 trunc In1, 30 equal In1=In2",int,"");
BBTK_OUTPUT(MathOperation,Out,"Output",double,"");
BBTK_END_DESCRIBE_BLACK_BOX(MathOperation);