<div dir="ltr">Hi Eric,<div><br></div><div>The typical solution is to save the transform.  Make it into a member of your class.  It's convenient to have the transform filter as a member, too.</div><div><br></div><div>def __init__(self):</div><div>        self.MeshTransform = vtk.vtkTransform()<br></div><div>        self.MeshTransformFilter = vtk.vtkTransformPolyDataFilter()</div><div>        self.MeshTransformFilter.SetInput( < insert original, untransformed data here> )</div><div>        self.MeshTransformFilter.SetTransform(self.MeshTransform)</div><div><br></div><div><div>def Rotate(self, alpha, beta, gamma):</div><div>        self.MeshTransform.RotateX(alpha)</div><div>        self.MeshTransform.RotateY(beta)</div><div>        self.MeshTransform.RotateZ(gamma)</div><div>        self.MeshTransformFilter.Update();</div><div>        tf.SetInputData(self.MeshData)</div><div>        self.MeshData.ShallowCopy(self.MeshTransformFilter.GetOutput())</div></div><div><br></div><div>The idea here is to keep a copy of your original, unmodified data to use as input to vtkTransformPolyData, though depending on what other kinds of editing you are doing, this might be tricky.</div><div><br></div><div> - David</div><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 18, 2017 at 2:50 PM, Eric Petersen <span dir="ltr"><<a href="mailto:peer9802@gmail.com" target="_blank">peer9802@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Thanks David,<div><br></div><div>I've got a class setup for reading/writing STL files along with basic manipulation.  My rotation code is below and called successive times.  I guess the question is does VTK "remember" past transformations on a vtkPolyData object()?  If so, what's the best way of accessing them?<br><div><br></div><div><div>def Rotate(self, alpha, beta, gamma):</div><div>        t = vtk.vtkTransform()</div><div>        t.RotateX(alpha)</div><div>        t.RotateY(beta)</div><div>        t.RotateZ(gamma)</div><div>        tf = vtk.<wbr>vtkTransformPolyDataFilter()</div><div>        tf.SetInputData(self.MeshData)</div><div>        tf.SetTransform(t)</div><div>        tf.Update()</div><div>        self.MeshData.ShallowCopy(tf.<wbr>GetOutput())</div></div></div></div><div class="gmail-HOEnZb"><div class="gmail-h5"><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 18, 2017 at 8:33 AM, David E DeMarle <span dir="ltr"><<a href="mailto:dave.demarle@kitware.com" target="_blank">dave.demarle@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Howdy Eric,</div><div><br></div><div>How are you doing the transform?<br></div>* vtkTransformFIlter?<br></div>* vtkActor::Transform?<br></div>* manually changing the points in the vtkPolyData object?<br><br></div>For either of the first two you can get the current matrix (and its inverse) from the transform object.<br><br></div>hope that helps<br><div><br></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail-m_5596518085786338169m_-3879586620590395064gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>David E DeMarle<br>Kitware, Inc.<br>Principal Engineer<br>21 Corporate Drive<br>Clifton Park, NY 12065-8662<br>Phone: <a href="tel:(518)%20881-4909" value="+15188814909" target="_blank">518-881-4909</a></div></div></div></div></div></div>
<br><div class="gmail_quote"><span>On Fri, Aug 18, 2017 at 8:11 AM, Eric Petersen <span dir="ltr"><<a href="mailto:peer9802@gmail.com" target="_blank">peer9802@gmail.com</a>></span> wrote:<br></span><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span><div dir="ltr">Hello,<div><br></div><div>I currently have a Python script where I am successively translating, and rotating, a vtkPolyData object.  The script currently does not track individual transforms but I would like to know the current 4x4 transform matrix.  Is there any way to directly obtain this information from the vtkPolyData object or am I stuck rewriting the script to track individual transformations?</div></div>
</span></blockquote></div></div></blockquote></div></div></div></div><br></blockquote></div><br></div></div></div>