<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Hi David,<br>
    <br>
    no, Update() does not change the result. I came across this issue
    because I found the vtkTDxInteractorStyleCamera to be utterly
    useless. The reason is that this snippet from
    vtkTDxInteractorStyleCamera does nothing:<br>
    <br>
    <span style=" color:#c0c0c0;"> </span><span style=" color:#008000;">//</span><span
      style=" color:#c0c0c0;"> </span><span style=" color:#008000;">Get</span><span
      style=" color:#c0c0c0;"> </span><span style=" color:#008000;">the</span><span
      style=" color:#c0c0c0;"> </span><span style=" color:#008000;">rotation</span><span
      style=" color:#c0c0c0;"> </span><span style=" color:#008000;">axis</span><span
      style=" color:#c0c0c0;"> </span><span style=" color:#008000;">in</span><span
      style=" color:#c0c0c0;"> </span><span style=" color:#008000;">world</span><span
      style=" color:#c0c0c0;"> </span><span style=" color:#008000;">coordinates.</span>
    <pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#c0c0c0;">  </span><span style=" color:#808000;">this</span><span style=" color:#000000;">-></span><span style=" color:#800000;">Transform</span><span style=" color:#000000;">-></span><span style=" color:#000000;">Identity</span><span style=" color:#000000;">();</span></pre>
    <pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#c0c0c0;">  </span><span style=" color:#808000;">this</span><span style=" color:#000000;">-></span><span style=" color:#800000;">Transform</span><span style=" color:#000000;">-></span><span style=" color:#000000;">Concatenate</span><span style=" color:#000000;">(</span><span style=" color:#000000;">eyeToWorld</span><span style=" color:#000000;">);</span></pre>
    <pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#c0c0c0;">  </span><span style=" color:#808000;">this</span><span style=" color:#000000;">-></span><span style=" color:#800000;">Transform</span><span style=" color:#000000;">-></span><span style=" font-style:italic; color:#000000;">Inverse</span><span style=" color:#000000;">();</span></pre>
    <pre style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" color:#c0c0c0;">  </span><span style=" color:#808000;">this</span><span style=" color:#000000;">-></span><span style=" color:#800000;">Transform</span><span style=" color:#000000;">-></span><span style=" color:#000000;">TransformVector</span><span style=" color:#000000;">(</span><span style=" color:#000000;">axisEye</span><span style=" color:#000000;">,</span><span style=" color:#000000;">axisWorld</span><span style=" color:#000000;">);</span></pre>
    <pre style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">
axisEye is identical to axisWorld. The vtkTDxInteractorStyleGeo has something similar.
There is either a bug in vtkTransform or in the InteractorStyles. I could make a bug report for either.

Cheers,
Torsten
</pre>
    <br>
    <div class="moz-cite-prefix">Am 21.01.2016 um 18:04 schrieb David
      Gobbi:<br>
    </div>
    <blockquote
cite="mid:CANwS1=ELM_sYzeS6petAdgWvt0ofqo2viF=FKw-esGjjWHSxmg@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi Torsten,
        <div><br>
        </div>
        <div>I suspect that it will work if you do this:</div>
        <div><br>
        </div>
        <div>
          <div>  this->Transform->Identity();</div>
          <div> 
            this->Transform->Concatenate(eyeToWorld->GetMatrix());</div>
          <div>  this->Transform->Inverse();</div>
          <div><br>
          </div>
          <div>The "Concatenate" method has two signatures with
            different behavior:</div>
          <div>  Concatenate(vtkMatrix4x4 *)</div>
          <div>  Concatenate(vtkTransform *)</div>
          <div><br>
          </div>
          <div>The second one establishes a connection between the two
            transforms,</div>
          <div>so if you do
            "this->Transform->Concatenate(eyeToWorld)" then any</div>
          <div>future changes to "eyeToWorld" will also cause
            "this->Transform" to</div>
          <div>change.</div>
          <div><br>
          </div>
          <div>If you call "this->Transform->Update()" before
            PrintSelf, is the correct</div>
          <div>matrix printed?  The TransformVector() method implicitly
            calls Update().</div>
          <div><br>
          </div>
          <div> - David </div>
          <div><br>
          </div>
          <div class="gmail_extra"><br>
            <div class="gmail_quote">On Thu, Jan 21, 2016 at 9:28 AM,
              Torsten Sadowski <span dir="ltr"><<a
                  moz-do-not-send="true"
                  href="mailto:torsten.sadowski@windnovation.com"
                  target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:torsten.sadowski@windnovation.com">torsten.sadowski@windnovation.com</a></a>></span>
              wrote:<br>
              <blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
                <div bgcolor="#FFFFFF" text="#000000"> Hello,<br>
                  <br>
                  I am trying to design my own vtkTDxInteractorStyle.
                  When I looked into vtkTDxInteractorStyleCamera as an
                  example I found something puzzling which might be a
                  bug in either vtkTransform or
                  vtkTDxInteractorStyleCamera.<br>
                  <br>
                  This snippet from <span style="color:rgb(128,128,0)">void</span><span
                    style="color:rgb(192,192,192)"> </span><span
                    style="color:rgb(128,0,128)">vtkTDxInteractorStyleCamera</span><span
                    style="color:rgb(0,0,0)">::</span><span
                    style="font-style:italic;color:rgb(0,0,0)">OnMotionEvent<br>
                    <br>
                  </span><span style="color:rgb(192,192,192)"> </span><span
                    style="color:rgb(0,128,0)">//</span><span
                    style="color:rgb(192,192,192)"> </span><span
                    style="color:rgb(0,128,0)">Get</span><span
                    style="color:rgb(192,192,192)"> </span><span
                    style="color:rgb(0,128,0)">the</span><span
                    style="color:rgb(192,192,192)"> </span><span
                    style="color:rgb(0,128,0)">rotation</span><span
                    style="color:rgb(192,192,192)"> </span><span
                    style="color:rgb(0,128,0)">axis</span><span
                    style="color:rgb(192,192,192)"> </span><span
                    style="color:rgb(0,128,0)">in</span><span
                    style="color:rgb(192,192,192)"> </span><span
                    style="color:rgb(0,128,0)">world</span><span
                    style="color:rgb(192,192,192)"> </span><span
                    style="color:rgb(0,128,0)">coordinates.</span>
                  <pre style="margin:0px;text-indent:0px"><span style="color:rgb(192,192,192)">  </span><span style="color:rgb(128,128,0)">this</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(128,0,0)">Transform</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">Identity</span><span style="color:rgb(0,0,0)">();</span></pre>
                  <pre style="margin:0px;text-indent:0px"><span style="color:rgb(192,192,192)">  </span><span style="color:rgb(128,128,0)">this</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(128,0,0)">Transform</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">Concatenate</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">eyeToWorld</span><span style="color:rgb(0,0,0)">);</span></pre>
                  <pre style="margin:0px;text-indent:0px"><span style="color:rgb(192,192,192)">  </span><span style="color:rgb(128,128,0)">this</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(128,0,0)">Transform</span><span style="color:rgb(0,0,0)">-></span><span style="font-style:italic;color:rgb(0,0,0)">Inverse</span><span style="color:rgb(0,0,0)">();</span></pre>
                  <pre style="margin:0px;text-indent:0px"><span style="color:rgb(192,192,192)">  </span><span style="color:rgb(128,128,0)">this</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(128,0,0)">Transform</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">TransformVector</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">axisEye</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">axisWorld</span><span style="color:rgb(0,0,0)">);</span></pre>
                  <pre style="margin:0px;text-indent:0px">does nothing useful because the Transform returns the identity after Inverse (checked with PrintSelf). 
This on the other hand works:

<span style="color:rgb(192,192,192)">  </span><span style="color:rgb(0,128,0)">//</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">Get</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">the</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">rotation</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">axis</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">in</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">world</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">coordinates.</span>
<span style="color:rgb(192,192,192)">  </span><span style="color:rgb(128,128,0)">this</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(128,0,0)">Transform</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">SetMatrix</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">eyeToWorld</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">GetMatrix</span><span style="color:rgb(0,0,0)">());</span>
<span style="color:rgb(192,192,192)">  </span><span style="color:rgb(128,128,0)">this</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(128,0,0)">Transform</span><span style="color:rgb(0,0,0)">-></span><span style="font-style:italic;color:rgb(0,0,0)">Inverse</span><span style="color:rgb(0,0,0)">();</span>
<span style="color:rgb(192,192,192)">  </span><span style="color:rgb(128,128,0)">this</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(128,0,0)">Transform</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">TransformVector</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">axisEye</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">axisWorld</span><span style="color:rgb(0,0,0)">);</span>

I'm baffled.

Best Regards,
Torsten Sadowski
</pre>
                  <br>
                  <div>-- <br>
                    <img alt=""
                      src="cid:part2.05050104.02020401@windnovation.com"
                      height="64" width="186"><br>
                    <small><br>
                    </small>
                    <div>Dr.-Ing. Torsten Sadowski<br>
                      Turbine Design/System Integration<br>
                      <br>
                      <small> WINDnovation Engineering Solutions GmbH<br>
                        Stralauer Platz 33-34<br>
                        10243 Berlin<br>
                        Germany<br>
                        Phone: <a moz-do-not-send="true"
                          href="tel:%2B49%2030%20547195%2034"
                          value="+493054719534" target="_blank">+49 30
                          547195 34</a><br>
                        Fax:   <a moz-do-not-send="true"
                          href="tel:%2B49%2030%20547195%2039"
                          value="+493054719539" target="_blank">+49 30
                          547195 39</a><br>
                        Managing directors: <br>
                        Dr.-Ing. Roland Stoer, Dipl.-Ing. Albrecht
                        Kantelberg<br>
                        Registered at Amtsgericht Charlottenburg, HRB
                        110081 B<br>
                        <small><br>
                        </small> <a moz-do-not-send="true"
                          href="http://www.windnovation.com"
                          target="_blank">www.windnovation.com</a><br>
                        <small><br>
                        </small> Certified according to ISO 9001:2008</small></div>
                  </div>
                </div>
              </blockquote>
            </div>
            <br>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </body>
</html>