X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FTransformer.cxx;h=c901362cb8d3bdd50701014a36b314480b1a06aa;hb=1a574b510e27eb5b5f00bd37bf451cedd1b0a8d4;hp=e6e6c8b5ce8091c40d034173498d26ec8165a762;hpb=bb6bffc75df349b5f74f4197206718a87b42e4a7;p=creaRigidRegistration.git diff --git a/lib/Transformer.cxx b/lib/Transformer.cxx index e6e6c8b..c901362 100644 --- a/lib/Transformer.cxx +++ b/lib/Transformer.cxx @@ -92,12 +92,33 @@ vtkTransform *Transformer::GetResult() MAKES THE TRANSFORMATIONS */ void Transformer::Run() -{ +{ _transform->Identity(); - _transform->Translate(_centerPoint[0], _centerPoint[1], _centerPoint[2]); + _transform->PostMultiply(); + if(_centerPoint.size() < 3) + { + _transform->Translate(-_centerPoint[0], -_centerPoint[1], 0); + std::cout << "NTU Transformer2D Center Points: " << _centerPoint[0] << " " << _centerPoint[1] << std::endl; + } + else + { + _transform->Translate(-_centerPoint[0], -_centerPoint[1], -_centerPoint[2]); + std::cout << "NTU Transformer2D Center Points: " << _centerPoint[0] << " " << _centerPoint[1] << " " << _centerPoint[2] << std::endl; + } _transform->RotateWXYZ(_angle, 0, 0, 1); - _transform->Scale(_scaleX, _scaleY,_scaleZ); - + //std::cout << "NTU Transformer2D Angle: " << _angle << std::endl; + + if(_scaleX < 0 || _scaleY < 0 || _scaleZ < 0) + { + _transform->Scale(100, 100, 100); + //std::cout << "NTU Transformer2D Scale: " << _scaleX << " " << _scaleY << " " << _scaleZ << std::endl; + } + else + { + _transform->Scale(_scaleX, _scaleY,_scaleZ); + //std::cout << "NTU Transformer2D Scale: " << _scaleX << " " << _scaleY << " " << _scaleZ << std::endl; + } + _transform->Inverse(); _transform->Update(); }