X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=bbtk_creaVtk_PKG%2Fsrc%2FbbcreaVtkVoiMPR.cxx;h=2ecd5cabd007fd68b4c0265e51084cf2948ebd3a;hb=3e55f153f9c44545a846f43fdc0a75912a000d60;hp=3e89bb71ae17bd293d92222154ea803eb79a28a7;hpb=41daf9a2fe50ac564d81e47912feca820eef1b9f;p=creaVtk.git diff --git a/bbtk_creaVtk_PKG/src/bbcreaVtkVoiMPR.cxx b/bbtk_creaVtk_PKG/src/bbcreaVtkVoiMPR.cxx index 3e89bb7..2ecd5ca 100644 --- a/bbtk_creaVtk_PKG/src/bbcreaVtkVoiMPR.cxx +++ b/bbtk_creaVtk_PKG/src/bbcreaVtkVoiMPR.cxx @@ -37,24 +37,35 @@ void VoiMPR::Process() bool showActorYZ; bool showActorXZ; - std::vector vecP = bbGetInputIn(); + std::vector vecVOI = bbGetInputIn(); + std::vector spc = bbGetInputSpacing(); + vecVOI[0] = vecVOI[0]*spc[0]; + vecVOI[1] = vecVOI[1]*spc[0]; + vecVOI[2] = vecVOI[2]*spc[1]; + vecVOI[3] = vecVOI[3]*spc[1]; + vecVOI[4] = vecVOI[4]*spc[2]; + vecVOI[5] = vecVOI[5]*spc[2]; int dep; std::vector vecPoint = bbGetInputActualPoint(); + vecPoint[0] = vecPoint[0]*spc[0]; + vecPoint[1] = vecPoint[1]*spc[1]; + vecPoint[2] = vecPoint[2]*spc[2]; + if (vecPoint.size()==3) { - if ((vecPoint[0]>=vecP[0]) && (vecPoint[0]<=vecP[1]) ) + if ((vecPoint[0]>=vecVOI[0]) && (vecPoint[0]<=vecVOI[1]) ) { showActorYZ=bbGetInputActive() && true; } else { showActorYZ=bbGetInputActive() && false; } - if ((vecPoint[1]>=vecP[2]) && (vecPoint[1]<=vecP[3]) ) + if ((vecPoint[1]>=vecVOI[2]) && (vecPoint[1]<=vecVOI[3]) ) { showActorXZ=bbGetInputActive() && true; } else { showActorXZ=bbGetInputActive() && false; } - if ((vecPoint[2]>=vecP[4]) && (vecPoint[2]<=vecP[5]) ) + if ((vecPoint[2]>=vecVOI[4]) && (vecPoint[2]<=vecVOI[5]) ) { showActorXY=bbGetInputActive() && true; } else { @@ -70,10 +81,10 @@ void VoiMPR::Process() if (bbGetInputXYrender()!=NULL) { dep=-900; - pointsXY->SetPoint(0, vecP[0], vecP[2], dep); - pointsXY->SetPoint(1, vecP[0], vecP[3], dep); - pointsXY->SetPoint(2, vecP[1], vecP[3], dep); - pointsXY->SetPoint(3, vecP[1], vecP[2], dep); + pointsXY->SetPoint(0, vecVOI[0], vecVOI[2], dep); + pointsXY->SetPoint(1, vecVOI[0], vecVOI[3], dep); + pointsXY->SetPoint(2, vecVOI[1], vecVOI[3], dep); + pointsXY->SetPoint(3, vecVOI[1], vecVOI[2], dep); pointsXY-> Modified(); if ( showActorXY==true ) { @@ -93,10 +104,10 @@ void VoiMPR::Process() if (bbGetInputYZrender()!=NULL) { dep=900; - pointsYZ->SetPoint(0, dep,vecP[2], vecP[4] ); - pointsYZ->SetPoint(1, dep,vecP[2], vecP[5] ); - pointsYZ->SetPoint(2, dep,vecP[3], vecP[5] ); - pointsYZ->SetPoint(3, dep,vecP[3], vecP[4] ); + pointsYZ->SetPoint(0, dep,vecVOI[2], vecVOI[4] ); + pointsYZ->SetPoint(1, dep,vecVOI[2], vecVOI[5] ); + pointsYZ->SetPoint(2, dep,vecVOI[3], vecVOI[5] ); + pointsYZ->SetPoint(3, dep,vecVOI[3], vecVOI[4] ); pointsYZ-> Modified(); if ( showActorYZ==true ) { @@ -116,10 +127,10 @@ void VoiMPR::Process() if (bbGetInputXZrender()!=NULL) { dep=-900; - pointsXZ->SetPoint(0, vecP[0],dep, vecP[4] ); - pointsXZ->SetPoint(1, vecP[0],dep, vecP[5] ); - pointsXZ->SetPoint(2, vecP[1],dep, vecP[5] ); - pointsXZ->SetPoint(3, vecP[1],dep, vecP[4] ); + pointsXZ->SetPoint(0, vecVOI[0],dep, vecVOI[4] ); + pointsXZ->SetPoint(1, vecVOI[0],dep, vecVOI[5] ); + pointsXZ->SetPoint(2, vecVOI[1],dep, vecVOI[5] ); + pointsXZ->SetPoint(3, vecVOI[1],dep, vecVOI[4] ); pointsXZ-> Modified(); if ( showActorXZ==true ) { @@ -146,13 +157,19 @@ void VoiMPR::bbUserSetDefaultValues() // SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX // Here we initialize the input 'In' to 0 - actorAddedXY=false; - actorAddedXZ=false; - actorAddedYZ=false; + actorAddedXY = false; + actorAddedXZ = false; + actorAddedYZ = false; bbSetInputActive(true); bbSetInputXYrender(NULL); bbSetInputYZrender(NULL); bbSetInputXZrender(NULL); + + std::vector spc; + spc.push_back(1); + spc.push_back(1); + spc.push_back(1); + bbSetInputSpacing(spc); } //===== // 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) @@ -165,6 +182,7 @@ void VoiMPR::bbUserInitializeProcessing() // but this is where you should allocate the internal/output pointers // if any + pointsXY = vtkPoints ::New(); linesXY = vtkCellArray ::New(); polygonXY = vtkPolyData ::New();