X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=packages%2Fvtk%2Fsrc%2FbbvtkTransform.cxx;h=db2618fffbae14ee08e1b51fe4d2dc0297d37b07;hb=d54571378c577b97b27aa532faf30070e979dc02;hp=7c375f055010e94ca03176efcdc511ad223dc31c;hpb=22eae0242d8e2c1eb8a25a735289f609b17e103f;p=bbtk.git diff --git a/packages/vtk/src/bbvtkTransform.cxx b/packages/vtk/src/bbvtkTransform.cxx index 7c375f0..db2618f 100644 --- a/packages/vtk/src/bbvtkTransform.cxx +++ b/packages/vtk/src/bbvtkTransform.cxx @@ -1,89 +1,93 @@ #include "bbvtkTransform.h" #include "bbvtkPackage.h" - - namespace bbvtk { + BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,Transform); + BBTK_BLACK_BOX_IMPLEMENTATION(Transform,bbtk::AtomicBlackBox); -BBTK_ADD_BLACK_BOX_TO_PACKAGE(vtk,Transform) -BBTK_BLACK_BOX_IMPLEMENTATION(Transform,bbtk::AtomicBlackBox); -void Transform::Process() -{ - if (result!=NULL) - { - result->Delete(); - } - result = vtkTransform::New(); - - - if (bbGetInputIn()!=NULL) - { - result->Concatenate( bbGetInputIn()->GetMatrix() ); - } + // -------------------------------------------------------------- - - if (bbGetInputScale().size()>=3) + void Transform::bbUserSetDefaultValues() { - result->Scale(bbGetInputScale()[0], bbGetInputScale()[1], bbGetInputScale()[2]); + 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 + bbSetInputSpacing(vecSpacing); + + result = NULL; } - if ((bbGetInputTranslate().size()>=3) && (bbGetInputSpacing().size()>=3)) + // -------------------------------------------------------------- + void Transform::bbUserInitializeProcessing() { - double tx = bbGetInputTranslate()[0] * bbGetInputSpacing()[0]; - double ty = bbGetInputTranslate()[1] * bbGetInputSpacing()[1]; - double tz = bbGetInputTranslate()[2] * bbGetInputSpacing()[2]; - result->Translate(tx,ty,tz); + bbUserFinalizeProcessing(); + result = vtkTransform::New(); } - if (bbGetInputRotateWXYZ().size()>=4) + // -------------------------------------------------------------- + void Transform::bbUserFinalizeProcessing() { - result->RotateWXYZ(bbGetInputRotateWXYZ()[0],bbGetInputRotateWXYZ()[1], bbGetInputRotateWXYZ()[2], bbGetInputRotateWXYZ()[3]); + if (result!=NULL) + { + result->Delete(); + result=NULL; + } } - result->Update(); - - 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::Process() + { + printf("EED %p Transform::Process() 1\n", this); + bbUserInitializeProcessing(); + if (bbGetInputIn()!=NULL) + { + result->Concatenate( bbGetInputIn()->GetMatrix() ); + printf("EED %p Transform::Process() 2\n", this); + } + + if (bbGetInputScale().size()>=3) + { + result->Scale(bbGetInputScale()[0], bbGetInputScale()[1], bbGetInputScale()[2]); + printf("EED %p Transform::Process() 3\n", this); + } - -} -void Transform::bbUserDestructor() -{ + 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); + printf("EED %p Transform::Process() 4\n", this); + } + + if (bbGetInputRotateWXYZ().size()>=4) + { + result->RotateWXYZ(bbGetInputRotateWXYZ()[0],bbGetInputRotateWXYZ()[1], bbGetInputRotateWXYZ()[2], bbGetInputRotateWXYZ()[3]); + printf("EED %p Transform::Process() 5\n", this); + } + + result->Update(); + printf("EED %p Transform::Process() 6\n", this); - -} + bbSetOutputOut(result); + } } // EO namespace bbvtk - -