X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FvvImage.cxx;h=797fa3e9dd35458d383850e6c388fcde946b9654;hb=44afe6c93f185da1ac0debc227105bf56404482e;hp=a394c7608456b9d0de2f06f88ceeb3a7bfbd993c;hpb=a97c480d25285a6d143bd035d6b5fa0804a7d068;p=clitk.git diff --git a/common/vvImage.cxx b/common/vvImage.cxx index a394c76..797fa3e 100644 --- a/common/vvImage.cxx +++ b/common/vvImage.cxx @@ -138,7 +138,7 @@ void vvImage::GetScalarRange(double* range) } //-------------------------------------------------------------------- -std::string vvImage::GetScalarTypeAsString() +std::string vvImage::GetScalarTypeAsITKString() { // WARNING VTK pixel type different from ITK Pixel type std::string vtktype = mVtkImages[0]->GetScalarTypeAsString(); @@ -176,8 +176,6 @@ std::vector vvImage::GetSpacing() } return spacing; } -//-------------------------------------------------------------------- - //-------------------------------------------------------------------- std::vector vvImage::GetOrigin() const { @@ -274,78 +272,41 @@ bool vvImage::IsScalarTypeInteger(int t) //-------------------------------------------------------------------- //-------------------------------------------------------------------- -vtkTransform * vvImage::GetTransform() +vtkSmartPointer vvImage::GetTransform() { return mTransform; } //-------------------------------------------------------------------- -//------------------------------------------------------------------- -void vvImage::SetRotateX(int xvalue) -{ - mTransform->PostMultiply(); - mTransform->Translate(-origin[0],-origin[1],-origin[2]); - mTransform->RotateX(xvalue); - mTransform->Translate(origin[0],origin[1],origin[2]); -} - //-------------------------------------------------------------------- - -//------------------------------------------------------------------- -void vvImage::SetRotateY(int yvalue) +void vvImage::SetTransform(vtkSmartPointer transform) { - mTransform->PostMultiply(); - mTransform->Translate(-origin[0],-origin[1],-origin[2]); - mTransform->RotateY(yvalue); - mTransform->Translate(origin[0],origin[1],origin[2]); + mTransform = transform; + this->UpdateReslice(); } //-------------------------------------------------------------------- -//------------------------------------------------------------------- -void vvImage::SetRotateZ(int zvalue) -{ - mTransform->PostMultiply(); - mTransform->Translate(-origin[0],-origin[1],-origin[2]); - mTransform->RotateZ(zvalue); - mTransform->Translate(origin[0],origin[1],origin[2]); -} //-------------------------------------------------------------------- - -//------------------------------------------------------------------- -void vvImage::SetTranslationX(int xvalue) +void vvImage::UpdateReslice() { - mTransform->Translate(xvalue,0,0); -} -//-------------------------------------------------------------------- - -//------------------------------------------------------------------- - -void vvImage::SetTranslationY(int yvalue) -{ - mTransform->Translate(0,yvalue,0); + for (unsigned int i=0; iUpdate(); + } } //-------------------------------------------------------------------- -//------------------------------------------------------------------- -void vvImage::SetTranslationZ(int zvalue) -{ - mTransform->Translate(0,0,zvalue); -} -//------------------------------------------------------------------- - -//------------------------------------------------------------------- -void vvImage::SetOrigin(double value[3]) -{ - origin[0]=value[0]; - origin[1]=value[1]; - origin[2]=value[2]; -} //-------------------------------------------------------------------- -void vvImage::SetTransform(vtkTransform *transform) +vtkImageData * CopyAndCastToFloatFrom(vtkImageData * input) { - mTransform = transform; + vtkImageData * p = vtkImageData::New(); + p->SetExtent(input->GetExtent ()); // Only first ! could not be 4D + p->SetScalarTypeToFloat(); + p->AllocateScalars(); + p->CopyAndCastFrom(input, input->GetExtent()); + return p; } //-------------------------------------------------------------------- + #endif // VVIMAGE_CXX