# ------------------------------------------------------------------------ */
bbs files ...
+
creaMaracasVisu:SliderMinMax:Box03
ISEXEC:FALSE
-127.659482:43.170047:-900.000000
--96.099482:40.670047:-900.000000
+-94.339482:40.670047:-900.000000
PORT
InMax:"500"
PORT
creaMaracasVisu:SliderMinMax:Box04
ISEXEC:FALSE
-76.763039:37.919872:-900.000000
--45.203039:35.419872:-900.000000
+-43.443039:35.419872:-900.000000
PORT
InMax:"500"
PORT
creaMaracasVisu:SliderMinMax:Box05
ISEXEC:FALSE
-19.597915:37.011770:-900.000000
-11.962085:34.511770:-900.000000
+13.722085:34.511770:-900.000000
PORT
InMax:"500"
PORT
wx:LayoutLine:Box11
ISEXEC:FALSE
-231.732698:-39.698284:-900.000000
--198.412698:-42.198284:-900.000000
+-196.652698:-42.198284:-900.000000
FIN_BOX
BOX
vtk:ImageVtkProperties:Box30
wx:CheckBox:Box42
ISEXEC:FALSE
-281.027317:40.554596:-900.000000
--259.397317:38.054596:-900.000000
+-258.267317:38.054596:-900.000000
PORT
In:"true"
PORT
wx:LayoutTab:Box21
ISEXEC:FALSE
-237.668836:15.208511:-900.000000
--204.348836:12.708511:-900.000000
+-202.588836:12.708511:-900.000000
FIN_BOX
BOX
wx:LayoutLine:Box22
ISEXEC:FALSE
-236.532533:23.000297:-900.000000
--203.212533:20.500297:-900.000000
+-201.452533:20.500297:-900.000000
PORT
-WinTitle:"X"
+WinTitle:"Sagittal"
FIN_BOX
BOX
wx:LayoutTab:Box23
ISEXEC:FALSE
-189.579771:15.718843:-900.000000
--156.259771:13.218843:-900.000000
+-154.499771:13.218843:-900.000000
FIN_BOX
BOX
wx:LayoutLine:Box24
ISEXEC:FALSE
-188.443468:23.510629:-900.000000
--155.123468:21.010629:-900.000000
+-153.363468:21.010629:-900.000000
PORT
-WinTitle:"Y"
+WinTitle:"Coronal"
FIN_BOX
BOX
wx:LayoutTab:Box25
ISEXEC:FALSE
-147.275517:16.140633:-900.000000
--113.955517:13.640633:-900.000000
+-112.195517:13.640633:-900.000000
FIN_BOX
BOX
wx:LayoutLine:Box26
ISEXEC:FALSE
-146.139215:23.932419:-900.000000
--112.819215:21.432419:-900.000000
+-111.059215:21.432419:-900.000000
PORT
-WinTitle:"Z"
+WinTitle:"Axial"
FIN_BOX
BOX
std:MagicBox:Box28
-131.403195:-12.118069:-900.000000
-109.733195:-14.618069:-900.000000
PORT
-Title:"X"
+Title:"Sag."
FIN_BOX
BOX
wx:OutputText:Box46
-107.557741:-11.877406:-900.000000
-85.887741:-14.377406:-900.000000
PORT
-Title:"Y"
+Title:"Cor."
FIN_BOX
BOX
wx:LayoutLine:Box47
ISEXEC:FALSE
-140.961664:-31.753791:-900.000000
--107.641664:-34.253791:-900.000000
+-105.881664:-34.253791:-900.000000
PORT
Orientation:"H"
FIN_BOX
-83.573489:-11.867957:-900.000000
-61.903489:-14.367957:-900.000000
PORT
-Title:"Z"
+Title:"Axi."
FIN_BOX
BOX
std:ConcatStrings:Box49
new wx:LayoutTab Box21
new wx:LayoutLine Box22
- set Box22.WinTitle "X"
+ set Box22.WinTitle "Sagittal"
new wx:LayoutTab Box23
new wx:LayoutLine Box24
- set Box24.WinTitle "Y"
+ set Box24.WinTitle "Coronal"
new wx:LayoutTab Box25
new wx:LayoutLine Box26
- set Box26.WinTitle "Z"
+ set Box26.WinTitle "Axial"
new std:MagicBox Box28
set Box44.Type "0"
new wx:OutputText Box45
- set Box45.Title "X"
+ set Box45.Title "Sag."
new wx:OutputText Box46
- set Box46.Title "Y"
+ set Box46.Title "Cor."
new wx:LayoutLine Box47
set Box47.Orientation "H"
new wx:OutputText Box48
- set Box48.Title "Z"
+ set Box48.Title "Axi."
new std:ConcatStrings Box49
set Box49.In1 "["
// See example in:
// https://kitware.github.io/vtk-examples/site/Cxx/VisualizationAlgorithms/Cutter/
-
+
if ( (bbGetInputActive()==true) && (bbGetInputIn()!=NULL) )
{
vtkCutter *cutter;
// bbSetOutputOut( bbGetInputIn() );
// std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
- if ((bbGetInputInPolyData()!=NULL) && (bbGetInputInImage()!=NULL) )
- {
-printf("EED Warnning!! PolyDataToImageData::Process Clean this code .................;\n ");
- int ext[6];
- double spc[3];
- double org[3];
- bbGetInputInImage()->GetExtent( ext );
- bbGetInputInImage()->GetSpacing( spc );
- bbGetInputInImage()->GetOrigin( org );
+ if (bbGetInputTypeOutput()==0) // NULL
+ {
+ bbSetOutputOut( NULL);
+ } // if TypeOutput 1:NULL
-// vtkCleanPolyData *clean1 = vtkCleanPolyData::New();
- if (clean1!=NULL) clean1->Delete();
- clean1 = vtkCleanPolyData::New();
- clean1->SetInputData( bbGetInputInPolyData() );
- clean1->Update();
- vtkTriangleFilter *triangle1 = vtkTriangleFilter::New();
- triangle1->SetInputData( clean1->GetOutput() );
- triangle1->Update();
-// vtkPolyDataToImageStencil *dataToStencil = vtkPolyDataToImageStencil::New();
- if (dataToStencil!=NULL) dataToStencil->Delete();
- dataToStencil = vtkPolyDataToImageStencil::New();
- dataToStencil->SetInputData( triangle1->GetOutput() );
- dataToStencil->SetOutputOrigin( org );
- dataToStencil->SetOutputSpacing( spc );
- dataToStencil->SetOutputWholeExtent( ext );
- dataToStencil->Update();
-// vtkExtractVOI *extract = vtkExtractVOI::New();
- if (extract!=NULL) extract->Delete();
- extract = vtkExtractVOI::New();
- extract->SetVOI( ext );
- extract->SetSampleRate(1, 1, 1);
- extract->SetInputData( bbGetInputInImage() );
- extract->ReleaseDataFlagOff();
- extract->Update();
-// vtkImageStencil *stencil = vtkImageStencil::New();
- if (stencil!=NULL) stencil->Delete();
- stencil = vtkImageStencil::New();
- stencil->SetInputData( extract->GetOutput() );
- stencil->Update();
- stencil->SetStencilData( dataToStencil->GetOutput() );
- stencil->ReverseStencilOn();
- stencil->SetBackgroundValue( bbGetInputBackgroundValue() );
- stencil->Update();
- bbSetOutputOut( stencil->GetOutput() );
- } else {
- printf("EED Warnning! PolyDataToImageData::Process > Missing Image or PolyData inputs\n");
- bbSetOutputOut( NULL);
- }// if In NULL
+
+ if (bbGetInputTypeOutput()==1) // Normal
+ {
+ if ((bbGetInputInPolyData()!=NULL) && (bbGetInputInImage()!=NULL) )
+ {
+ printf("EED Warnning!! PolyDataToImageData::Process Clean this code .................;\n ");
+ int ext[6];
+ double spc[3];
+ double org[3];
+ bbGetInputInImage()->GetExtent( ext );
+ bbGetInputInImage()->GetSpacing( spc );
+ bbGetInputInImage()->GetOrigin( org );
+
+ // vtkCleanPolyData *clean1 = vtkCleanPolyData::New();
+ if (clean1!=NULL) clean1->Delete();
+ clean1 = vtkCleanPolyData::New();
+ clean1->SetInputData( bbGetInputInPolyData() );
+ clean1->Update();
+ vtkTriangleFilter *triangle1 = vtkTriangleFilter::New();
+ triangle1->SetInputData( clean1->GetOutput() );
+ triangle1->Update();
+ // vtkPolyDataToImageStencil *dataToStencil = vtkPolyDataToImageStencil::New();
+ if (dataToStencil!=NULL) dataToStencil->Delete();
+ dataToStencil = vtkPolyDataToImageStencil::New();
+ dataToStencil->SetInputData( triangle1->GetOutput() );
+ dataToStencil->SetOutputOrigin( org );
+ dataToStencil->SetOutputSpacing( spc );
+ dataToStencil->SetOutputWholeExtent( ext );
+ dataToStencil->Update();
+ // vtkExtractVOI *extract = vtkExtractVOI::New();
+ if (extract!=NULL) extract->Delete();
+ extract = vtkExtractVOI::New();
+ extract->SetVOI( ext );
+ extract->SetSampleRate(1, 1, 1);
+ extract->SetInputData( bbGetInputInImage() );
+ extract->ReleaseDataFlagOff();
+ extract->Update();
+ // vtkImageStencil *stencil = vtkImageStencil::New();
+ if (stencil!=NULL) stencil->Delete();
+ stencil = vtkImageStencil::New();
+ stencil->SetInputData( extract->GetOutput() );
+ stencil->Update();
+ stencil->SetStencilData( dataToStencil->GetOutput() );
+ stencil->ReverseStencilOn();
+ stencil->SetBackgroundValue( bbGetInputBackgroundValue() );
+ stencil->Update();
+ bbSetOutputOut( stencil->GetOutput() );
+ } else {
+ printf("EED Warnning! PolyDataToImageData::Process > Missing Image or PolyData inputs\n");
+ bbSetOutputOut( NULL);
+ }// if In NULL
+ } // if TypeOutput 0:Normal
+
+ if (bbGetInputTypeOutput()==2) // The original input image without filter
+ {
+ if (bbGetInputInImage()!=NULL)
+ {
+ bbSetOutputOut( bbGetInputInImage() );
+ } else {
+ bbSetOutputOut( NULL );
+ }
+ } // if TypeOutput 2: The original input image without filter
+
+
}
//=====
{
// SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX
// Here we initialize the input 'In' to 0
+ bbSetInputTypeOutput(1);
bbSetInputInPolyData(NULL);
bbSetInputInImage(NULL);
bbSetInputBackgroundValue(255);
BBTK_DECLARE_INPUT(InImage,vtkImageData*);
BBTK_DECLARE_INPUT(BackgroundValue,double);
BBTK_DECLARE_INPUT(InPolyData,vtkPolyData*);
+ BBTK_DECLARE_INPUT(TypeOutput,int);
BBTK_DECLARE_OUTPUT(Out,vtkImageData*);
BBTK_PROCESS(Process);
void Process();
BBTK_INPUT(PolyDataToImageData,InImage,"Image to put Result",vtkImageData*,"");
BBTK_INPUT(PolyDataToImageData,BackgroundValue,"(default 255) Background value",double,"");
BBTK_INPUT(PolyDataToImageData,InPolyData,"Input vtkPolyData",vtkPolyData*,"");
+ BBTK_INPUT(PolyDataToImageData,TypeOutput,"(default 1) 0:NULL 1:Normal filter 2:The original input image without the filter",int,"");
BBTK_OUTPUT(PolyDataToImageData,Out,"Output vtkImageData",vtkImageData*,"");
} // for k
bbSetOutputOut(newImage);
*/
- if ( (bbGetInputDir()>=-1) && (bbGetInputDir()<=5) )
+ if ( (bbGetInputDir()>=-1) && (bbGetInputDir()<=6) )
{
vtkImageReslice *reslice = vtkImageReslice::New();
vtkImageChangeInformation *mchange = vtkImageChangeInformation::New();
reslice->SetResliceAxesDirectionCosines(axes[0], axes[1], axes[2]);
}
} // dir -1
- if ( bbGetInputDir()==0 ) // nothing
+ if ( bbGetInputDir()==0 ) // XY nothing
{
static double axes[3][3] = { { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } };
reslice->SetResliceAxesDirectionCosines(axes[0], axes[1], axes[2]);
} // dir 0
- if ( bbGetInputDir()==1 )
+ if ( bbGetInputDir()==1 ) // YZ
{
static double axes[3][3] = { { 0, 1, 0 }, { 0, 0, -1 }, { 1, 0, 0 } };
reslice->SetResliceAxesDirectionCosines(axes[0], axes[1], axes[2]);
} // dir 1
- if ( bbGetInputDir()==2 )
+ if ( bbGetInputDir()==2 ) // XZ
{
static double axes[3][3] = { { 1, 0, 0 }, { 0, 0, -1 }, { 0, 1, 0 } };
reslice->SetResliceAxesDirectionCosines(axes[0], axes[1], axes[2]);