<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'>
<font class="Apple-style-span" face="Tahoma" size="2">Hello VTK community,</font><div style="font-family: Tahoma; font-size: 10pt; "><br></div><div style="font-family: Tahoma; font-size: 10pt; ">I am having some problems with orienting and positioning a volumes in VTK. I am cutting a DICOM volume with a plane which has its own orientation and position and I want to visualize the cutted volume with VTK. However, sofar I am doing everything right for the visualization part but the visualized volume is not orientated with the plane and it's not passing through the plane's origin. Here is the simplified code: </div><div style="font-family: Tahoma; font-size: 10pt; "><br></div><div style="font-family: Tahoma; font-size: 10pt; "><br></div><div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space: pre; ">        </span>vtkSmartPointer<vtkStructuredPoints> med_volume = vtkSmartPointer<vtkStructuredPoints>::New();</font></div><div><span class="Apple-style-span" style="font-family: Tahoma; font-size: 10pt; "><span class="Apple-tab-span" style="white-space:pre"><br></span></span></div><div><span class="Apple-style-span" style="font-family: Tahoma; font-size: 10pt; "><span class="Apple-tab-span" style="white-space:pre"><span class="Apple-tab-span" style="white-space:pre">        </span>/</span>/ properites + data of the cutted volume</span></div><div><span class="Apple-style-span" style="font-family: Tahoma; font-size: 10pt; "> // volume to be visualized</span></div><div><span class="Apple-style-span" style="font-family: Tahoma; font-size: 10pt; "><span class="Apple-tab-span" style="white-space:pre">        </span></span><span class="Apple-style-span" style="font-family: Tahoma; font-size: 10pt; ">std::shared_ptr<Image3DUShort> image3D(dynamic_pointer_cast<Image3DUShort>(imagePtr) );</span></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>int size[3]; //volume size</font></div><div><span class="Apple-style-span" style="font-family: Tahoma; font-size: 10pt; "><span class="Apple-tab-span" style="white-space:pre">        </span></span><span class="Apple-style-span" style="font-family: Tahoma; font-size: 10pt; ">double resolution[3]; //volume resolution</span></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>double origin[3]; //plane origin</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"> double orient[9]; // orientation of the plane X-axis, Y-axis and Z-Axis</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>image3D->getParams().getDim(size);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>image3D->getParams().getRes(resolution);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>image3D->getParams().getOrigin(origin);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="text-indent: 0px !important; white-space: pre; ">        </span>image3D->getParams().getOrient(orient);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>vtkSmartPointer<vtkUnsignedShortArray> array(vtkSmartPointer<vtkUnsignedShortArray>::New());</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>array->SetNumberOfComponents(1);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"> </font></div><div><font class="Apple-style-span" face="Tahoma" size="2"> //copy data of the cutted volume</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>array->SetArray(image3D->getRawData(), image3D->getParams().getDataSize(), 1);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>array->SetName("CuttedVolume");</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"> //prepare vktStructuredPoints</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>med_volume->SetDimensions(size);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>med_volume->SetOrigin(origin);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>med_volume->SetSpacing(resolution);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>med_volume->GetPointData()->SetScalars(array);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><span class="Apple-style-span" style="font-family: Tahoma; font-size: 10pt; "><span class="Apple-tab-span" style="white-space:pre">        </span></span><span class="Apple-style-span" style="font-family: Tahoma; font-size: 10pt; ">OpacityTransferFunction = vtkSmartPointer<vtkPiecewiseFunction>::New();</span></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>ColorTransferFunction = vtkSmartPointer<vtkColorTransferFunction>::New();</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>VolumeProperty = vtkSmartPointer<vtkVolumeProperty>::New();</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>VolumeProperty->SetColor(ColorTransferFunction);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>VolumeProperty->SetScalarOpacity(OpacityTransferFunction);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>VolumeProperty->SetInterpolationTypeToLinear();</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>VolumeMapper = vtkSmartPointer<vtkVolumeTextureMapper3D>::New();</font></div><div><span class="Apple-style-span" style="font-family: Tahoma; font-size: 10pt; "><span class="Apple-tab-span" style="white-space:pre">        </span></span><span class="Apple-style-span" style="font-family: Tahoma; font-size: 10pt; ">VolumeMapper->SetInput(<span class="Apple-style-span" style="font-size: small; ">med_volume</span>);</span></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>Volume = vtkSmartPointer<vtkVolume>::New();</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>Volume->SetMapper(VolumeMapper);</font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><span class="Apple-tab-span" style="white-space:pre">        </span>Volume->SetProperty(VolumeProperty);</font></div><div><br></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2">With this simplified code I can visualize the cutted volume. Can you please give me some code how to properly orient and position the "med_volume" with the given information from plane:</font></div></div><div><font class="Apple-style-span" face="Tahoma" size="2"><br></font></div><div><font class="Apple-style-span" face="Tahoma" size="2"><div style="text-indent: 0px !important; font-family: 'Times New Roman'; font-size: 12pt; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; "><span class="Apple-tab-span" style="text-indent: 0px !important; white-space: pre; ">        </span>image3D->getParams().getOrigin(origin); // planes origin</font></div><div style="text-indent: 0px !important; font-family: 'Times New Roman'; font-size: 12pt; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; "><span class="Apple-tab-span" style="text-indent: 0px !important; white-space: pre; ">        </span>image3D->getParams().getOrient(orient); // planes orientation</font></div><div style="text-indent: 0px !important; font-family: 'Times New Roman'; font-size: 12pt; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; "><br></font></div><div style="text-indent: 0px !important; font-family: 'Times New Roman'; font-size: 12pt; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; "><br></font></div><div style="text-indent: 0px !important; font-family: 'Times New Roman'; font-size: 12pt; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; ">Thank you very much,</font></div><div style="text-indent: 0px !important; font-family: 'Times New Roman'; font-size: 12pt; "><font class="Apple-style-span" face="Tahoma" size="2" style="text-indent: 0px !important; ">padre</font></div></font></div>                                            </body>
</html>