[vtkusers] vtkTransform problem

Michele Conconi michele.conconi at unibo.it
Sat Feb 6 20:52:03 EST 2010


David Gobbi ha scritto:
> Hi Michele,
>
> Inverting a matrix is not a lossless operation.  There is roundoff
> error in virtually all floating point computations.
>
> To avoid roundoff error, you should get a copy of the inverted
> transform instead of inverting the transform in-place.
>
> vtkTransform *invertedTransform = transform->GetInverse();
>
> That way, you still have the original transform instead of an
> "inverted and re-inverted" transform.
>
>    David
>
>
> On Sat, Feb 6, 2010 at 9:36 AM, Michele Conconi
> <michele.conconi at unibo.it> wrote:
>   
>> Hi everybody.
>> I'm using vtkTransform and its method Inverse() very extensivly in my
>> program. After a big number of calls of this method anyway I cannot control
>> anymore nor the matrix of vtkTransform neither the position of the
>> associated polydata.
>> The following code gives an example of my problem.
>>
>> I read a simple .stl file, bring the associated polydata into a control
>> configuration by means of my vtkTransform and here I look at the
>> transformation and at the center of the box containing the polydata.
>> Then I move the polydata into a different configuration, I invert the
>> transformation 10 000 000 times and bring the polydata back into the control
>> configuration. After 214 cicle of this loop, the center of my polydata is no
>> longer equal to that of the control configuration, and neither it is the
>> transformation.
>>
>> Any clue? I'm getting mad about it!
>> Thanks in advance
>>
>> Michele
>>     
> .
>
>   
Sorry, I replied only to David. I recover now.

Hi David, thanks for the prompt reply.
I thought the same at teh beginning, and therefore a tried to insert an 
EPSYLON in the check, something like

EPSYLON=0.0001
if(abs(c[0]-center[0])< EPSYLON && abs(c[1]-center[1])< EPSYLON && 
abs(c[2]-center[2])< EPSYLON)

and nothing change. Then, if you run the program with any stl file, you 
may see that the difference bethween the wrong configuration and the 
control one is not small at all, nor for the position center or for the 
matrix into the transformation. Also, each time I modify my 
vtkTransform, as a first step a set the transformation to the identity. 
This should set the error to zero.

Thanks again

Michele



-- 
* Eng. Michele Conconi*
Ph.D. student
DIEM - Dept. of Mechanical Engineering
Alma Mater Studiorum - University of Bologna
Viale Risorgimento 2, 40136, Bologna, Italy
Email: michele.conconi at unibo.it
Website: http://www.diem.ing.unibo.it/grab
Office: (+39) 051 20 93451
Mobile: (+39) 329 0287996



* INFORMAZIONE RISERVATA E CONFIDENZIALE *
Questo messaggio contiene informazioni riservate e confidenziali.
Se il lettore non fosse il destinatario del messaggio, inoltrato e 
ricevuto per errore,
il testo dovrà essere immediatamente cancellato dal computer del ricevente.
E' assolutamente proibita qualunque circolazione, disseminazione o
copia del messaggio spedito e/o ricevuto per errore.

* CONFIDENTIALITY and WARNING NOTICE *
This message may contain legally privileged or confidential information.
If the reader is not the intended recipient, you received this message 
in error
and it should therefore be deleted from your computer at once.
Any dissemination, distribution and copying of a message
mistakenly sent or received is strictly forbidden.



More information about the vtkusers mailing list