X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkTransform.cxx;fp=packages%2Fvtk%2Fsrc%2FbbvtkTransform.cxx;h=be42242d05e6207074a1e626dc608120db55fd95;hb=17ac9460f5ea5600d1065fbe3ee4ad826d7bb4fc;hp=0d53007254586192b8226b1043b27caaab6194d6;hpb=64953af6e7389a36c4fb533b58bf720ba1342cd7;p=bbtk.git diff --git a/packages/vtk/src/bbvtkTransform.cxx b/packages/vtk/src/bbvtkTransform.cxx index 0d53007..be42242 100644 --- a/packages/vtk/src/bbvtkTransform.cxx +++ b/packages/vtk/src/bbvtkTransform.cxx @@ -7,84 +7,90 @@ namespace bbvtk BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,Transform); BBTK_BLACK_BOX_IMPLEMENTATION(Transform,bbtk::AtomicBlackBox); + + + // -------------------------------------------------------------- + + void Transform::bbUserSetDefaultValues() + { + bbSetInputIn(NULL); + + vecScale.push_back(1); // scale x + vecScale.push_back(1); // scale y + vecScale.push_back(1); // scale z + bbSetInputScale(vecScale); + + vecRotateWXYZ.push_back(0); //angle + vecRotateWXYZ.push_back(1); //vx + vecRotateWXYZ.push_back(0); //vy + vecRotateWXYZ.push_back(0); //vz + bbSetInputRotateWXYZ(vecRotateWXYZ); + + vecTranslate.push_back(0); //tx + vecTranslate.push_back(0); //ty + vecTranslate.push_back(0); //tz + bbSetInputTranslate(vecTranslate); + + vecSpacing.push_back(1); //spacing x + vecSpacing.push_back(1); //spacing y + vecSpacing.push_back(1); //spacing z + bbSetInputTranslate(vecSpacing); + + result = NULL; + } + + // -------------------------------------------------------------- + void Transform::bbUserInitializeProcessing() + { + bbUserFinalizeProcessing(); + result = vtkTransform::New(); + } + + + // -------------------------------------------------------------- + void Transform::bbUserFinalizeProcessing() + { + if (result!=NULL) + { + result->Delete(); + result=NULL; + } + + } + + + // -------------------------------------------------------------- void Transform::Process() { - if (result!=NULL) - { - result->Delete(); - } - result = vtkTransform::New(); - - - if (bbGetInputIn()!=NULL) + bbUserInitializeProcessing(); + if (bbGetInputIn()!=NULL) { - result->Concatenate( bbGetInputIn()->GetMatrix() ); + result->Concatenate( bbGetInputIn()->GetMatrix() ); } - - - if (bbGetInputScale().size()>=3) + + if (bbGetInputScale().size()>=3) { - result->Scale(bbGetInputScale()[0], bbGetInputScale()[1], bbGetInputScale()[2]); + result->Scale(bbGetInputScale()[0], bbGetInputScale()[1], bbGetInputScale()[2]); } - if ((bbGetInputTranslate().size()>=3) && (bbGetInputSpacing().size()>=3)) + if ((bbGetInputTranslate().size()>=3) && (bbGetInputSpacing().size()>=3)) { - double tx = bbGetInputTranslate()[0] * bbGetInputSpacing()[0]; - double ty = bbGetInputTranslate()[1] * bbGetInputSpacing()[1]; - double tz = bbGetInputTranslate()[2] * bbGetInputSpacing()[2]; - result->Translate(tx,ty,tz); + double tx = bbGetInputTranslate()[0] * bbGetInputSpacing()[0]; + double ty = bbGetInputTranslate()[1] * bbGetInputSpacing()[1]; + double tz = bbGetInputTranslate()[2] * bbGetInputSpacing()[2]; + result->Translate(tx,ty,tz); } - if (bbGetInputRotateWXYZ().size()>=4) + if (bbGetInputRotateWXYZ().size()>=4) { - result->RotateWXYZ(bbGetInputRotateWXYZ()[0],bbGetInputRotateWXYZ()[1], bbGetInputRotateWXYZ()[2], bbGetInputRotateWXYZ()[3]); + result->RotateWXYZ(bbGetInputRotateWXYZ()[0],bbGetInputRotateWXYZ()[1], bbGetInputRotateWXYZ()[2], bbGetInputRotateWXYZ()[3]); } - result->Update(); + result->Update(); - bbSetOutputOut(result); + bbSetOutputOut(result); } - - void Transform::bbUserConstructor() - { - bbSetInputIn(NULL); - - vecScale.push_back(1); // scale x - vecScale.push_back(1); // scale y - vecScale.push_back(1); // scale z - bbSetInputScale(vecScale); - - vecRotateWXYZ.push_back(0); //angle - vecRotateWXYZ.push_back(1); //vx - vecRotateWXYZ.push_back(0); //vy - vecRotateWXYZ.push_back(0); //vz - bbSetInputRotateWXYZ(vecRotateWXYZ); - - vecTranslate.push_back(0); //tx - vecTranslate.push_back(0); //ty - vecTranslate.push_back(0); //tz - bbSetInputTranslate(vecTranslate); - - vecSpacing.push_back(1); //spacing x - vecSpacing.push_back(1); //spacing y - vecSpacing.push_back(1); //spacing z - bbSetInputTranslate(vecSpacing); - - result = NULL; - } - /* - void Transform::bbUserCopyConstructor() - { - - - } - */ - void Transform::bbUserDestructor() - { - - - } } // EO namespace bbvtk