From 51fec61c347938afdacfafdaed88ae8098dba656 Mon Sep 17 00:00:00 2001 From: "eduardo.davila@creatis.insa-lyon.fr" Date: Fri, 24 Jul 2026 14:22:48 +0200 Subject: [PATCH] #3540 GetPropertiesBySlice box --- .../bbs/exampleGetPropertiesBySlice.bbg | 321 ++++++++++++++++++ .../bbs/exampleGetPropertiesBySlice.bbs | 176 ++++++++++ .../src/bbcreaVtkGetPropertiesBySlice.cxx | 223 ++++++++++++ .../src/bbcreaVtkGetPropertiesBySlice.h | 62 ++++ 4 files changed, 782 insertions(+) create mode 100644 bbtk_creaVtk_PKG/bbs/exampleGetPropertiesBySlice.bbg create mode 100644 bbtk_creaVtk_PKG/bbs/exampleGetPropertiesBySlice.bbs create mode 100644 bbtk_creaVtk_PKG/src/bbcreaVtkGetPropertiesBySlice.cxx create mode 100644 bbtk_creaVtk_PKG/src/bbcreaVtkGetPropertiesBySlice.h diff --git a/bbtk_creaVtk_PKG/bbs/exampleGetPropertiesBySlice.bbg b/bbtk_creaVtk_PKG/bbs/exampleGetPropertiesBySlice.bbg new file mode 100644 index 0000000..141c46b --- /dev/null +++ b/bbtk_creaVtk_PKG/bbs/exampleGetPropertiesBySlice.bbg @@ -0,0 +1,321 @@ +# ---------------------------------- +# - BBTKGEditor v 1.6 BBG BlackBox Diagram file +# - /Users/davila/Creatis/C24/creatools_source/creaVtk/bbtk_creaVtk_PKG/bbs/exampleGetPropertiesBySlice.bbg +# ---------------------------------- + +APP_START +CATEGORY: +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 diff --git a/bbtk_creaVtk_PKG/bbs/exampleGetPropertiesBySlice.bbs b/bbtk_creaVtk_PKG/bbs/exampleGetPropertiesBySlice.bbs new file mode 100644 index 0000000..f8a48dd --- /dev/null +++ b/bbtk_creaVtk_PKG/bbs/exampleGetPropertiesBySlice.bbs @@ -0,0 +1,176 @@ +# ---------------------------------- +# - 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 "" + +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 diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkGetPropertiesBySlice.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkGetPropertiesBySlice.cxx new file mode 100644 index 0000000..0859085 --- /dev/null +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkGetPropertiesBySlice.cxx @@ -0,0 +1,223 @@ +//===== +// 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 +#include +#include +#include +#include + +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 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 + + diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkGetPropertiesBySlice.h b/bbtk_creaVtk_PKG/src/bbcreaVtkGetPropertiesBySlice.h new file mode 100644 index 0000000..0c564b2 --- /dev/null +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkGetPropertiesBySlice.h @@ -0,0 +1,62 @@ +//===== +// 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 +#include + +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); + BBTK_DECLARE_OUTPUT(OutPoint_pixel,std::vector); + 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,""); + BBTK_OUTPUT(GetPropertiesBySlice,OutPoint_pixel,"Out point in pixel units",std::vector,""); + 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__ + -- 2.55.0