--- /dev/null
+# ----------------------------------
+# - BBTKGEditor v 1.6 BBG BlackBox Diagram file
+# - /Users/davila/Creatis/C24/creatools_source/creaVtk/bbtk_creaVtk_PKG/bbs/exampleGetPropertiesBySlice.bbg
+# ----------------------------------
+
+APP_START
+CATEGORY:<VOID>
+DESCRIPTION:Description ??
+AUTHOR:Author ??
+EXPORTFORMAT:0
+COMPLEXBOX:FALSE
+COMPLEXINPUTS:0
+BOXES:23
+BOX
+vtk:LoadHola:Box00
+ISEXEC:FALSE
+6.652119:93.160220:-900.000000
+28.202119:90.660220:-900.000000
+FIN_BOX
+BOX
+creaMaracasVisu:ViewerNV:Box01
+ISEXEC:FALSE
+-28.546753:12.988187:-900.000000
+15.333247:10.488187:-900.000000
+PORT
+nTypeView:"6 1 2 0"
+FIN_BOX
+BOX
+creaVtk:GetPropertiesBySlice:Box02
+ISEXEC:FALSE
+24.693444:-60.290749:-900.000000
+47.333444:-62.790749:-900.000000
+PORT
+Type:"1"
+FIN_BOX
+BOX
+creaMaracasVisu:wxVtkBaseView_Info:Box03
+ISEXEC:FALSE
+24.390846:-43.377455:-900.000000
+55.190846:-45.877455:-900.000000
+PORT
+InteractionType:"6"
+PORT
+WithEventPropagation:"true"
+FIN_BOX
+BOX
+vtk:vtkImageDataPointerRelay:Box04
+ISEXEC:FALSE
+52.384212:13.404796:-900.000000
+75.594212:10.904796:-900.000000
+FIN_BOX
+BOX
+creaVtk:ImageThreshold:Box09
+ISEXEC:FALSE
+53.073656:31.995238:-900.000000
+75.253656:29.495238:-900.000000
+PORT
+InValue:"255"
+PORT
+Lower:"1200"
+PORT
+OutValue:"0"
+PORT
+Upper:"5000"
+FIN_BOX
+BOX
+creaVtk:ImageContinuousErode3D:Box10
+ISEXEC:FALSE
+52.668350:24.105883:-900.000000
+75.833350:21.605883:-900.000000
+PORT
+Repetitions:"3"
+PORT
+X:"3"
+PORT
+Y:"3"
+PORT
+Z:"3"
+FIN_BOX
+BOX
+creaMaracasVisu:SetPosition:Box23
+ISEXEC:FALSE
+26.851866:-72.553623:-900.000000
+48.511866:-75.053623:-900.000000
+FIN_BOX
+BOX
+wx:LayoutLine:Box24
+ISEXEC:FALSE
+-80.551274:-80.391480:-900.000000
+-45.471274:-82.891480:-900.000000
+FIN_BOX
+BOX
+std:MagicBox:Box28
+ISEXEC:FALSE
+26.082985:-30.950316:-900.000000
+47.682985:-33.450316:-900.000000
+FIN_BOX
+BOX
+creaVtk:GetPropertiesBySlice:Box30
+ISEXEC:FALSE
+84.973904:-58.862414:-900.000000
+107.613904:-61.362414:-900.000000
+PORT
+Type:"1"
+FIN_BOX
+BOX
+creaMaracasVisu:wxVtkBaseView_Info:Box31
+ISEXEC:FALSE
+84.671306:-41.949121:-900.000000
+115.471306:-44.449121:-900.000000
+PORT
+InteractionType:"6"
+PORT
+WithEventPropagation:"true"
+FIN_BOX
+BOX
+creaMaracasVisu:SetPosition:Box32
+ISEXEC:FALSE
+88.587146:-70.986849:-900.000000
+110.247146:-73.486849:-900.000000
+FIN_BOX
+BOX
+creaVtk:GetPropertiesBySlice:Box35
+ISEXEC:FALSE
+138.411698:-59.185774:-900.000000
+161.051698:-61.685774:-900.000000
+PORT
+Type:"1"
+FIN_BOX
+BOX
+creaMaracasVisu:wxVtkBaseView_Info:Box36
+ISEXEC:FALSE
+138.109101:-42.272480:-900.000000
+168.909101:-44.772480:-900.000000
+PORT
+InteractionType:"6"
+PORT
+WithEventPropagation:"true"
+FIN_BOX
+BOX
+creaMaracasVisu:SetPosition:Box37
+ISEXEC:FALSE
+140.917521:-70.645756:-900.000000
+162.577521:-73.145756:-900.000000
+FIN_BOX
+BOX
+std:MagicBox:Box38
+ISEXEC:FALSE
+138.844785:-30.957716:-900.000000
+160.444785:-33.457716:-900.000000
+FIN_BOX
+BOX
+std:MagicBox:Box22
+ISEXEC:FALSE
+83.479028:-30.961889:-900.000000
+105.079028:-33.461889:-900.000000
+FIN_BOX
+BOX
+creaMaracasVisu:ColorLayerImageView:Box25
+ISEXEC:FALSE
+-85.816416:-17.545474:-900.000000
+-43.696416:-20.045474:-900.000000
+PORT
+ColorBarPosition:"-1000 -1000"
+PORT
+Opacity:"25"
+PORT
+TypeControlsInterface:"2"
+PORT
+lstTransparenceBoundaries:"0"
+FIN_BOX
+BOX
+wx:LayoutSplit:Box26
+ISEXEC:TRUE
+-43.007006:-96.452274:-900.000000
+-18.487006:-98.952274:-900.000000
+PORT
+Orientation:"H"
+PORT
+Proportion:"15"
+FIN_BOX
+BOX
+std:MultipleInputs:Box27
+ISEXEC:TRUE
+74.448938:-96.991851:-900.000000
+96.418938:-99.491851:-900.000000
+FIN_BOX
+BOX
+creaMaracasVisu:ImageChangeInformation:Box29
+ISEXEC:FALSE
+4.870756:68.969380:-900.000000
+28.020756:66.469380:-900.000000
+FIN_BOX
+BOX
+creaMaracasVisu:ViewerNV:Box33
+ISEXEC:FALSE
+-65.821471:-65.678798:-900.000000
+-21.941471:-68.178798:-900.000000
+FIN_BOX
+CONNECTIONS:40
+CONNECTION
+Box03:Direction:Box02:Orientation
+NumberOfControlPoints:0
+CONNECTION
+Box04:Out:Box02:Image
+NumberOfControlPoints:0
+CONNECTION
+Box09:Out:Box10:Image
+NumberOfControlPoints:0
+CONNECTION
+Box10:Out:Box04:In
+NumberOfControlPoints:0
+CONNECTION
+Box03:Point:Box02:InPoint_pixel
+NumberOfControlPoints:0
+CONNECTION
+Box02:OutPoint_pixel:Box23:Point
+NumberOfControlPoints:0
+CONNECTION
+Box28:Out:Box23:wxVtkBaseView
+NumberOfControlPoints:0
+CONNECTION
+Box01:wxVtkBaseView4:Box28:In
+NumberOfControlPoints:0
+CONNECTION
+Box28:Out:Box03:wxVtkBaseView3
+NumberOfControlPoints:0
+CONNECTION
+Box03:BoxChange:Box23:BoxExecute
+NumberOfControlPoints:0
+CONNECTION
+Box31:Direction:Box30:Orientation
+NumberOfControlPoints:0
+CONNECTION
+Box31:Point:Box30:InPoint_pixel
+NumberOfControlPoints:0
+CONNECTION
+Box30:OutPoint_pixel:Box32:Point
+NumberOfControlPoints:0
+CONNECTION
+Box31:BoxChange:Box32:BoxExecute
+NumberOfControlPoints:0
+CONNECTION
+Box04:Out:Box30:Image
+NumberOfControlPoints:0
+CONNECTION
+Box36:Direction:Box35:Orientation
+NumberOfControlPoints:0
+CONNECTION
+Box36:Point:Box35:InPoint_pixel
+NumberOfControlPoints:0
+CONNECTION
+Box35:OutPoint_pixel:Box37:Point
+NumberOfControlPoints:0
+CONNECTION
+Box38:Out:Box37:wxVtkBaseView
+NumberOfControlPoints:0
+CONNECTION
+Box36:BoxChange:Box37:BoxExecute
+NumberOfControlPoints:0
+CONNECTION
+Box01:wxVtkBaseView3:Box38:In
+NumberOfControlPoints:0
+CONNECTION
+Box04:Out:Box35:Image
+NumberOfControlPoints:0
+CONNECTION
+Box01:wxVtkBaseView2:Box22:In
+NumberOfControlPoints:0
+CONNECTION
+Box22:Out:Box32:wxVtkBaseView
+NumberOfControlPoints:0
+CONNECTION
+Box22:Out:Box31:wxVtkBaseView3
+NumberOfControlPoints:0
+CONNECTION
+Box38:Out:Box36:wxVtkBaseView3
+NumberOfControlPoints:0
+CONNECTION
+Box04:Out:Box25:In
+NumberOfControlPoints:0
+CONNECTION
+Box01:wxVtkBaseView2:Box25:WxVtkBaseView
+NumberOfControlPoints:0
+CONNECTION
+Box01:wxVtkBaseView3:Box25:WxVtkBaseView1
+NumberOfControlPoints:0
+CONNECTION
+Box01:wxVtkBaseView4:Box25:WxVtkBaseView2
+NumberOfControlPoints:0
+CONNECTION
+Box25:Widget:Box24:Widget3
+NumberOfControlPoints:0
+CONNECTION
+Box24:Widget:Box26:Widget1
+NumberOfControlPoints:0
+CONNECTION
+Box01:Widget:Box26:Widget2
+NumberOfControlPoints:0
+CONNECTION
+Box03:BoxChange:Box27:In2
+NumberOfControlPoints:0
+CONNECTION
+Box31:BoxChange:Box27:In4
+NumberOfControlPoints:0
+CONNECTION
+Box36:BoxChange:Box27:In6
+NumberOfControlPoints:0
+CONNECTION
+Box00:Out:Box29:In
+NumberOfControlPoints:0
+CONNECTION
+Box29:Out:Box09:In
+NumberOfControlPoints:0
+CONNECTION
+Box29:Out:Box01:In
+NumberOfControlPoints:0
+CONNECTION
+Box33:Widget:Box24:Widget5
+NumberOfControlPoints:0
+APP_END
--- /dev/null
+# ----------------------------------
+# - BBTKGEditor v 1.6 BBS BlackBox Script
+# - /Users/davila/Creatis/C24/creatools_source/creaVtk/bbtk_creaVtk_PKG/bbs/exampleGetPropertiesBySlice.bbs
+# ----------------------------------
+
+# BBTK GEditor Script
+# ----------------------
+
+include std
+include itkvtk
+include vtk
+include creaMaracasVisu
+include creaVtk
+include wx
+include std
+
+author "Author ??"
+description "Description ??"
+category "<VOID>"
+
+new vtk:LoadHola Box00
+
+new creaMaracasVisu:ViewerNV Box01
+ set Box01.nTypeView "6 1 2 0"
+
+new creaVtk:GetPropertiesBySlice Box02
+ set Box02.Type "1"
+
+new creaMaracasVisu:wxVtkBaseView_Info Box03
+ set Box03.InteractionType "6"
+ set Box03.WithEventPropagation "true"
+
+new vtk:vtkImageDataPointerRelay Box04
+
+new creaVtk:ImageThreshold Box09
+ set Box09.InValue "255"
+ set Box09.Lower "1200"
+ set Box09.OutValue "0"
+ set Box09.Upper "5000"
+
+new creaVtk:ImageContinuousErode3D Box10
+ set Box10.Repetitions "3"
+ set Box10.X "3"
+ set Box10.Y "3"
+ set Box10.Z "3"
+
+new creaMaracasVisu:SetPosition Box23
+
+new wx:LayoutLine Box24
+
+new std:MagicBox Box28
+
+new creaVtk:GetPropertiesBySlice Box30
+ set Box30.Type "1"
+
+new creaMaracasVisu:wxVtkBaseView_Info Box31
+ set Box31.InteractionType "6"
+ set Box31.WithEventPropagation "true"
+
+new creaMaracasVisu:SetPosition Box32
+
+new creaVtk:GetPropertiesBySlice Box35
+ set Box35.Type "1"
+
+new creaMaracasVisu:wxVtkBaseView_Info Box36
+ set Box36.InteractionType "6"
+ set Box36.WithEventPropagation "true"
+
+new creaMaracasVisu:SetPosition Box37
+
+new std:MagicBox Box38
+
+new std:MagicBox Box22
+
+new creaMaracasVisu:ColorLayerImageView Box25
+ set Box25.ColorBarPosition "-1000 -1000"
+ set Box25.Opacity "25"
+ set Box25.TypeControlsInterface "2"
+ set Box25.lstTransparenceBoundaries "0"
+
+new wx:LayoutSplit Box26
+ set Box26.Orientation "H"
+ set Box26.Proportion "15"
+
+new std:MultipleInputs Box27
+
+new creaMaracasVisu:ImageChangeInformation Box29
+
+new creaMaracasVisu:ViewerNV Box33
+
+
+connect Box03.Direction Box02.Orientation
+
+connect Box04.Out Box02.Image
+
+connect Box09.Out Box10.Image
+
+connect Box10.Out Box04.In
+
+connect Box03.Point Box02.InPoint_pixel
+
+connect Box02.OutPoint_pixel Box23.Point
+
+connect Box28.Out Box23.wxVtkBaseView
+
+connect Box01.wxVtkBaseView4 Box28.In
+
+connect Box28.Out Box03.wxVtkBaseView3
+
+connect Box03.BoxChange Box23.BoxExecute
+
+connect Box31.Direction Box30.Orientation
+
+connect Box31.Point Box30.InPoint_pixel
+
+connect Box30.OutPoint_pixel Box32.Point
+
+connect Box31.BoxChange Box32.BoxExecute
+
+connect Box04.Out Box30.Image
+
+connect Box36.Direction Box35.Orientation
+
+connect Box36.Point Box35.InPoint_pixel
+
+connect Box35.OutPoint_pixel Box37.Point
+
+connect Box38.Out Box37.wxVtkBaseView
+
+connect Box36.BoxChange Box37.BoxExecute
+
+connect Box01.wxVtkBaseView3 Box38.In
+
+connect Box04.Out Box35.Image
+
+connect Box01.wxVtkBaseView2 Box22.In
+
+connect Box22.Out Box32.wxVtkBaseView
+
+connect Box22.Out Box31.wxVtkBaseView3
+
+connect Box38.Out Box36.wxVtkBaseView3
+
+connect Box04.Out Box25.In
+
+connect Box01.wxVtkBaseView2 Box25.WxVtkBaseView
+
+connect Box01.wxVtkBaseView3 Box25.WxVtkBaseView1
+
+connect Box01.wxVtkBaseView4 Box25.WxVtkBaseView2
+
+connect Box25.Widget Box24.Widget3
+
+connect Box24.Widget Box26.Widget1
+
+connect Box01.Widget Box26.Widget2
+
+connect Box03.BoxChange Box27.In2
+
+connect Box31.BoxChange Box27.In4
+
+connect Box36.BoxChange Box27.In6
+
+connect Box00.Out Box29.In
+
+connect Box29.Out Box09.In
+
+connect Box29.Out Box01.In
+
+connect Box33.Widget Box24.Widget5
+
+
+
+# Complex input ports
+exec Box26
+exec Box27
--- /dev/null
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+#include "bbcreaVtkGetPropertiesBySlice.h"
+#include "bbcreaVtkPackage.h"
+
+#include <vtkExtractVOI.h>
+#include <vtkImageThreshold.h>
+#include <vtkImageSeedConnectivity.h>
+#include <vtkDiscreteFlyingEdges2D.h>
+#include <vtkCenterOfMass.h>
+
+namespace bbcreaVtk
+{
+
+BBTK_ADD_BLACK_BOX_TO_PACKAGE(creaVtk,GetPropertiesBySlice)
+BBTK_BLACK_BOX_IMPLEMENTATION(GetPropertiesBySlice,bbtk::AtomicBlackBox);
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+void GetPropertiesBySlice::Process()
+{
+
+// THE MAIN PROCESSING METHOD BODY
+// Here we simply set the input 'In' value to the output 'Out'
+// And print out the output value
+// INPUT/OUTPUT ACCESSORS ARE OF THE FORM :
+// void bbSet{Input|Output}NAME(const TYPE&)
+// const TYPE& bbGet{Input|Output}NAME() const
+// Where :
+// * NAME is the name of the input/output
+// (the one provided in the attribute 'name' of the tag 'input')
+// * TYPE is the C++ type of the input/output
+// (the one provided in the attribute 'type' of the tag 'input')
+
+ if (bbGetInputImage()!=NULL)
+ {
+ if (bbGetInputInPoint_pixel().size()==3)
+ {
+ double spc[3];
+ int dim[3];
+ int ext[6];
+ int voi[6];
+ double range[2];
+ double outPointDouble[3];
+ bbGetInputImage()->GetSpacing(spc);
+ bbGetInputImage()->GetExtent(ext);
+ dim[0] = ext[1]-ext[0]+1;
+ dim[1] = ext[3]-ext[2]+1;
+ dim[2] = ext[5]-ext[4]+1;
+ if (bbGetInputType()==1) // geometric center
+ {
+ std::vector<int> outPointInt;
+
+ //Crop
+ vtkExtractVOI *crop = vtkExtractVOI::New();
+ crop->SetInputData( bbGetInputImage() );
+ crop->UpdateWholeExtent();
+// crop->Modified();
+// crop->Update();
+// vtkImageData *image2D = crop->GetOutput();
+// image2D->SetExtent( 0 , dim[0]-1 , 0 , dim[1]-1 , 0 , 0 );
+ crop->GetOutput()->GetScalarRange( range );
+
+ // Threshold
+ vtkImageThreshold *thresh = vtkImageThreshold::New();
+ thresh->SetInValue(255);
+ thresh->SetOutValue(0);
+ thresh->SetOutputScalarTypeToUnsignedChar();
+
+ thresh->ThresholdBetween( range[1]/2, range[1] );
+ thresh->SetInputData( crop->GetOutput() );
+// thresh->Update();
+
+ // Connectivity
+ vtkImageSeedConnectivity *connect = vtkImageSeedConnectivity::New();
+ connect->SetInputData( thresh->GetOutput() );
+ connect->SetInputConnectValue(255);
+ connect->SetOutputConnectedValue( 255 );
+ connect->SetOutputUnconnectedValue(0);
+ connect->RemoveAllSeeds();
+ connect->SetOutputConnectedValue( 255 );
+// connect->Update();
+
+ //Geometric center
+
+ //vtkPolyData perimeter
+
+ vtkDiscreteFlyingEdges2D *discreteflyingedges2d = vtkDiscreteFlyingEdges2D::New();
+ discreteflyingedges2d->SetInputData( connect->GetOutput() );
+// discreteflyingedges2d->Update();
+
+ //vtkCenterOfMass
+ vtkCenterOfMass *centerofmass = vtkCenterOfMass::New();
+ centerofmass->SetUseScalarsAsWeights(false);
+
+ centerofmass->SetInputData( discreteflyingedges2d->GetOutput() );
+// centerofmass->Update();
+
+ connect->AddSeed( bbGetInputInPoint_pixel()[0] , bbGetInputInPoint_pixel()[1] , bbGetInputInPoint_pixel()[2] );
+
+ if (bbGetInputOrientation()==2) // xy
+ {
+ voi[0] = 0;
+ voi[1] = dim[0]-1;
+ voi[2] = 0;
+ voi[3] = dim[1]-1;
+ voi[4] = bbGetInputInPoint_pixel()[2];
+ voi[5] = bbGetInputInPoint_pixel()[2];
+ crop->SetVOI(voi);
+ crop -> Update();
+ thresh -> Update();
+ connect -> Update();
+ discreteflyingedges2d -> Update();
+ centerofmass -> Update();
+ centerofmass->GetCenter( outPointDouble );
+ outPointInt.push_back( (int) round(outPointDouble[0]/spc[0]) );
+ outPointInt.push_back( (int) round(outPointDouble[1]/spc[1]) );
+ outPointInt.push_back( (int) round(outPointDouble[2]/spc[2]) );
+ } // if Orientation ==0 xy
+
+ if (bbGetInputOrientation()==1) // xz
+ {
+ voi[0] = 0;
+ voi[1] = dim[0]-1;;
+ voi[2] = bbGetInputInPoint_pixel()[1];
+ voi[3] = bbGetInputInPoint_pixel()[1];
+ voi[4] = 0;
+ voi[5] = dim[2]-1;
+ crop->SetVOI(voi);
+ crop -> Update();
+ thresh -> Update();
+ connect -> Update();
+ discreteflyingedges2d -> Update();
+ centerofmass -> Update();
+ centerofmass->GetCenter( outPointDouble );
+ outPointInt.push_back( (int) round(outPointDouble[0]/spc[0]) );
+ outPointInt.push_back( (int) round(outPointDouble[2]/spc[2]) );
+ outPointInt.push_back( (int) round(outPointDouble[1]/spc[1]) );
+ } // if Orientation ==0 xy
+
+ if (bbGetInputOrientation()==0) // yz
+ {
+ voi[0] = bbGetInputInPoint_pixel()[0];
+ voi[1] = bbGetInputInPoint_pixel()[0];
+ voi[2] = 0;
+ voi[3] = dim[1]-1;;
+ voi[4] = 0;
+ voi[5] = dim[2]-1;
+ crop->SetVOI(voi);
+ crop -> Update();
+ thresh -> Update();
+ connect -> Update();
+ discreteflyingedges2d -> Update();
+ centerofmass -> Update();
+ centerofmass->GetCenter( outPointDouble );
+ outPointInt.push_back( (int) round(outPointDouble[2]/spc[2]) );
+ outPointInt.push_back( (int) round(outPointDouble[0]/spc[0]) );
+ outPointInt.push_back( (int) round(outPointDouble[1]/spc[1]) );
+ } // if Orientation ==0 yz
+
+ //Clean Memory
+/*
+ crop -> Delete();
+ thresh -> Delete();
+ connect -> Delete();
+ discreteflyingedges2d -> Delete();
+ centerofmass -> Delete();
+*/
+ bbSetOutputImageConnected2D( connect->GetOutput() );
+ bbSetOutputPolyDataDiscreteflyingedges2D( discreteflyingedges2d->GetOutput() );
+ bbSetOutputValue( bbGetInputImage()->GetScalarComponentAsDouble( outPointInt[0],outPointInt[1],outPointInt[2], 0) );
+ bbSetOutputOutPoint_pixel( outPointInt );
+ } // if type == 1 geometric center
+ } else {
+ printf("Warnning! BBTK - GetPropertiesBySlice box. InPointPx size is not 3 \n");
+ } // if InPointPx size =3
+ } else {
+ printf("Warnning! BBTK - GetPropertiesBySlice box. Image in put is not set.\n");
+ } // if Image!=NULL
+}
+
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+void GetPropertiesBySlice::bbUserSetDefaultValues()
+{
+// SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX
+// Here we initialize the input 'In' to 0
+ bbSetInputImage(NULL);
+ bbSetInputType(0);
+ bbSetInputOrientation(0);
+}
+
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+void GetPropertiesBySlice::bbUserInitializeProcessing()
+{
+// THE INITIALIZATION METHOD BODY :
+// Here does nothing
+// but this is where you should allocate the internal/output pointers
+// if any
+
+
+
+
+}
+
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+void GetPropertiesBySlice::bbUserFinalizeProcessing()
+{
+// THE FINALIZATION METHOD BODY :
+// Here does nothing
+// but this is where you should desallocate the internal/output pointers
+// if any
+}
+
+}// EO namespace bbcreaVtk
+
+
--- /dev/null
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+#ifndef __bbcreaVtkGetPropertiesBySlice_h_INCLUDED__
+#define __bbcreaVtkGetPropertiesBySlice_h_INCLUDED__
+
+#include "bbcreaVtk_EXPORT.h"
+#include "bbtkAtomicBlackBox.h"
+#include "iostream"
+
+#include <vtkImageData.h>
+#include <vtkPolyData.h>
+
+namespace bbcreaVtk
+{
+
+class bbcreaVtk_EXPORT GetPropertiesBySlice
+ :
+ public bbtk::AtomicBlackBox
+{
+ BBTK_BLACK_BOX_INTERFACE(GetPropertiesBySlice,bbtk::AtomicBlackBox);
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+ BBTK_DECLARE_INPUT(Image,vtkImageData*);
+ BBTK_DECLARE_INPUT(Orientation, int);
+ BBTK_DECLARE_INPUT(Type, int);
+ BBTK_DECLARE_INPUT(InPoint_pixel, std::vector<int>);
+ BBTK_DECLARE_OUTPUT(OutPoint_pixel,std::vector<int>);
+ BBTK_DECLARE_OUTPUT(Value,double);
+ BBTK_DECLARE_OUTPUT(ImageConnected2D,vtkImageData*);
+ BBTK_DECLARE_OUTPUT(PolyDataDiscreteflyingedges2D,vtkPolyData*);
+
+ BBTK_PROCESS(Process);
+ void Process();
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+};
+
+BBTK_BEGIN_DESCRIBE_BLACK_BOX(GetPropertiesBySlice,bbtk::AtomicBlackBox);
+ BBTK_NAME("GetPropertiesBySlice");
+ BBTK_AUTHOR("Info-Dev");
+ BBTK_DESCRIPTION("No Description.");
+ BBTK_CATEGORY("empty");
+ BBTK_INPUT(GetPropertiesBySlice,Image,"Input image",vtkImageData*,"");
+ BBTK_INPUT(GetPropertiesBySlice,Orientation,"(default 0) Orientation 0=xy 1=yz 2=xz",int,"");
+ BBTK_INPUT(GetPropertiesBySlice,Type,"(default 0) 0=nothing 1=Geometric center",int,"");
+ BBTK_INPUT(GetPropertiesBySlice,InPoint_pixel,"In point in pixel units",std::vector<int>,"");
+ BBTK_OUTPUT(GetPropertiesBySlice,OutPoint_pixel,"Out point in pixel units",std::vector<int>,"");
+ BBTK_OUTPUT(GetPropertiesBySlice,Value,"Value",double,"");
+ BBTK_OUTPUT(GetPropertiesBySlice,ImageConnected2D,"Image Connected 2D",vtkImageData*,"");
+ BBTK_OUTPUT(GetPropertiesBySlice,PolyDataDiscreteflyingedges2D,"PolyData Discrete Flying Edges 2D",vtkPolyData*,"");
+BBTK_END_DESCRIBE_BLACK_BOX(GetPropertiesBySlice);
+//=====
+// Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
+//=====
+}
+// EO namespace bbcreaVtk
+
+#endif // __bbcreaVtkGetPropertiesBySlice_h_INCLUDED__
+