<div dir="ltr">Hi Cory, <br><br>Thanks for the tip. I have been trying to implement that for a while and still hasn't worked for some reason.. This is the code I have: <div><br></div><div><div>//set dimensions of cube</div><div>    cubeSource->SetCenter(center[0], center[1], center[2]);</div><div>    cubeSource->SetXLength(_widthOfBottomFace);</div><div>    cubeSource->SetYLength(_widthOfSideFace);</div><div>    cubeSource->SetZLength(_widthInZDirection);</div><div>    cubeSource->Update();</div><div><br></div><div>    //create a transformation object</div><div>    vtkSmartPointer<vtkTransform> transformation =</div><div>      vtkSmartPointer<vtkTransform>::New();</div><div>    //use this transformation object in a transformFilter</div><div>    vtkSmartPointer<vtkTransformPolyDataFilter> transformFilter =</div><div>      vtkSmartPointer<vtkTransformPolyDataFilter>::New();</div><div>    transformFilter->SetInputConnection(cubeSource->GetOutputPort());</div><div>    transformFilter->SetTransform(transformation);</div><div>    //first take the cube back to the origin for rotation</div><div>    transformation->Translate(-center[0],</div><div>                              -center[1], </div><div>                              -center[2]);</div><div>    //now rotate it with the given angle (in degrees)</div><div>    transformation->RotateZ(45.);</div><div>    //translate it back </div><div>    transformation->Translate(center[0],</div><div>                              center[1],</div><div>                              center[2]);</div><div>    transformFilter->Update();</div></div><div><br></div><div>I have attached the output that I get for various cases. The big box in the center is just for reference. I am generating the small one by this code. </div><div><br></div><div>1) The black box corresponds to if I <b>do nothing. </b>So if I commented out the transformation, then I would get the black box. </div><div>2) The pink box corresponds to <b>just negative translation.</b> So just the first translate line of the code is executed and the rotation and positive translation is not. </div><div>3) The small grey box is <b>negative translation and rotation</b>. So, the positive translation is not executed.</div><div>4) The blue box is <b>negative translate, rotate and positive translate. </b>This is when all of the above code is executed. </div><div><br></div><div>Observations: </div><div><br></div><div>1) and 2) look correct.</div><div>3) I would have expected the outcome to be located at the same point as the pink box but rotated around the origin (which is shown as the red,green and yellow cross)</div><div>4) This is where I wanted the outcome to be the black box but rotated. </div><div><br></div><div>Remarks: I think that the transform is somehow applying the transformation to both the cube AND the axes. So in case 4, when I do negative translate, the axis goes down as well. Then when I rotate, the axis rotates as well and finally when I do positively translate, instead of going straight up, the box goes along the "up" of the rotated axis and you see the blue box where it is. </div><div><br></div><div>Can you help me here? Is there some way I can stop the axis from doing the same things that my cube is doing? I apologize for the long email</div><div><br></div><div>Thanks again! </div><div><br></div><div>-Ishan</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 22, 2015 at 11:18 AM, Cory Quammen <span dir="ltr"><<a href="mailto:cory.quammen@kitware.com" target="_blank">cory.quammen@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span class="">You'll need to translate your cube by the negated center of the cube, then rotate. You can do this all in the same vtkTransform object.<div><br></div></span><span class="HOEnZb"><font color="#888888"><div>- Cory</div></font></span></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Wed, Jul 22, 2015 at 1:58 PM, ishantembhekar <span dir="ltr"><<a href="mailto:ishan.tembhekar@caltech.edu" target="_blank">ishan.tembhekar@caltech.edu</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><<a href="http://vtk.1045678.n5.nabble.com/file/n5733047/Screen_Shot_2015-07-22_at_10.png" rel="noreferrer" target="_blank">http://vtk.1045678.n5.nabble.com/file/n5733047/Screen_Shot_2015-07-22_at_10.png</a>><br>
<br>
Hi Cory,<br>
<br>
Thank you so much for your immediate response! The<br>
vtkTransformPolyDataFilter worked and it now gives me a rotated cube. I<br>
replaced the mapper and the actor with the following lines:<br>
<br>
//create a rotation object<br>
    vtkSmartPointer<vtkTransform> rotation =<br>
      vtkSmartPointer<vtkTransform>::New();<br>
    //the angle is measured in degrees for some reason<br>
    rotation->RotateZ(45.);<br>
 //use this rotation object in a transformFilter<br>
    vtkSmartPointer<vtkTransformPolyDataFilter> transformFilter =<br>
      vtkSmartPointer<vtkTransformPolyDataFilter>::New();<br>
    transformFilter->SetInputConnection(cubeSource->GetOutputPort());<br>
    transformFilter->SetTransform(rotation);<br>
    transformFilter->Update();<br>
<br>
However, it is rotating about the z-axis and the origin (as shown in the<br>
image I attached). What can I do for it to rotate about the center of the<br>
cube? I tried using SetCenter for both the vtkTransform and the<br>
PolyDataFilter but they do not have that method. Any ideas?<br>
<br>
Thanks once again!<br>
<br>
-Ishan<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://vtk.1045678.n5.nabble.com/Writing-a-rotated-vtkcubesource-in-a-vtp-file-tp5733044p5733047.html" rel="noreferrer" target="_blank">http://vtk.1045678.n5.nabble.com/Writing-a-rotated-vtkcubesource-in-a-vtp-file-tp5733044p5733047.html</a><br>
Sent from the VTK - Users mailing list archive at Nabble.com.<br></div></div><span class="">
_______________________________________________<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<span><br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
</span><span>Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
<br>
</span><span>Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" rel="noreferrer" target="_blank">http://markmail.org/search/?q=vtkusers</a><br>
<br>
</span><div><div>Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" target="_blank">http://public.kitware.com/mailman/listinfo/vtkusers</a><br>
</div></div></span></blockquote></div><span class=""><br><br clear="all"><div><br></div>-- <br><div>Cory Quammen<br>R&D Engineer<br>Kitware, Inc.</div>
</span></div>
</blockquote></div><br></div>