]> Creatis software - bbtk.git/blobdiff - doc/bouml/bbtkk/142466.bodies
.
[bbtk.git] / doc / bouml / bbtkk / 142466.bodies
diff --git a/doc/bouml/bbtkk/142466.bodies b/doc/bouml/bbtkk/142466.bodies
new file mode 100644 (file)
index 0000000..1dfcf56
--- /dev/null
@@ -0,0 +1,39 @@
+class ExtractImageFilterGeneric
+!!!185858.cpp!!!       Process() : void
+    bbtkDebugMessageInc("Core",9,
+                       "bbitk::ExtractImageFilterGeneric::Process<"
+                       <<bbtk::TypeName<T>()<<">()"<<std::endl);
+    // T is the type of input image
+    typedef T ImageType;
+    // We define the type of the filter to use which is template 
+    // on the image type
+    typedef ExtractImageFilter<ImageType> FilterType;
+    // Allocate the filter
+    typename FilterType::Pointer f = FilterType::New("Temp");
+
+    // Set the input In of the filter
+    // Here we :
+    // 1) Get **OUR** input 'In' by bbGetInputIn()
+    //    It is a anyImagePointer
+    // 2) We **KNOW** that the actual type stored by the anyImagePointer
+    //    is ImageType* hence we get the value stored using the 
+    //    unsafe_get method (which is a template method on the return type)
+    f->bbSetInputIn( this->bbGetInputIn().unsafe_get<ImageType*>() );
+    
+    // The same for the ImageRegion except that we use 'get' and not 
+    // 'unsafe get' because the region dimension passed by the user may not be 
+    // compatible with the image dimension.
+    // If get fails it throws an exception which must be caught outside 
+    f->bbSetInputExtractionRegion ( this->bbGetInputRegion().get<typename T::RegionType>() );
+
+    // Execute the filter
+    f->bbExecute();
+    // Register its output or it will be deleted we delete the filter
+    f->bbGetOutputOut()->Register();
+    // Set OUR output
+    this->bbSetOutputOut( f->bbGetOutputOut() );
+    // Delete the temporary filter
+    f->bbDelete();
+
+    bbtkDebugDecTab("Core",9);
+