<div dir="ltr">Hi Lonni,<div><br></div><div>Every mapper has a method called SetClippingPlanes() that you can use to clip the data.  This will clip the data on the GPU while the data is being rendered.</div><div><br></div><div> - David</div><div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 25, 2016 at 6:43 AM, Lonni Besançon <span dir="ltr"><<a href="mailto:lonni.besancon@gmail.com" target="_blank">lonni.besancon@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
I set up all the code to make a cutting plane move the way I want it and I<br>
can actually get in an other image the actual slice that I'm looking at.<br>
However, what I'm trying to achieve now is different. Say my slice is in the<br>
middle of my volume I would to see half of that volume on my screen. I<br>
actually managed to do it a while ago with the simple BUNNY example and<br>
vtkPolyData but it does not work at all with my volume.<br>
<br>
Here is my code (skippin irrelevant parts to simplify reading):<br>
<br>
/        Renderer = vtkRenderer::New();<br>
        Renderer->SetBackground(.3, .6, .3);<br>
        RenderWindow->AddRenderer(Renderer.Get());<br>
<br>
        reader = vtkSmartPointer<vtkDataSetReader>::New();<br>
        reader->SetFileName(filename.c_str());<br>
        reader->Update();<br>
        imageData = vtkSmartPointer<vtkImageData>::New();<br>
        imageData->ShallowCopy(reader->GetOutput());<br>
        vtkSmartPointer<vtkOpenGLGPUVolumeRayCastMapper> volumeMapper =<br>
vtkOpenGLGPUVolumeRayCastMapper::New();<br>
        volumeMapper->SetInputData(imageData);<br>
<br>
        vtkSmartPointer<vtkVolume> volume =<br>
vtkSmartPointer<vtkVolume>::New();<br>
        volume->SetMapper(volumeMapper);<br>
        volume->SetProperty(volumeProperty);<br>
        mainActor = volume ; //mainActor is a Prop3D<br>
        Renderer->AddViewProp(mainActor);<br>
        Renderer->ResetCamera();<br>
<br>
 ....<br>
<br>
        plane = vtkSmartPointer<vtkPlane>::New();<br>
        plane->SetTransform(vtkTransform::New());<br>
        plane->SetNormal(0,0,1);<br>
        plane->SetOrigin(0,0,20);<br>
<br>
        clipper = vtkSmartPointer<vtkClipDataSet>::New();<br>
        clipper->SetInputConnection(reader->GetOutputPort());<br>
        clipper->SetClipFunction(plane);<br>
        clipper->InsideOutOn();<br>
<br>
        mapperSliceData = vtkSmartPointer<vtkPolyDataMapper>::New();<br>
        mapperSliceData->SetInputConnection(clipper->GetOutputPort());<br>
<br>
        slicedActor = vtkSmartPointer<vtkActor>::New();<br>
        slicedActor->SetMapper(mapperSliceData);<br>
<br>
<br>
        Renderer->AddActor(slicedActor);<br>
        ctxView->Render();<br>
/<br>
<br>
Not only this piece of code does show me what I'd like to see, but above all<br>
it is extremely slow.<br>
Would you mind taking a look at the code and help me solve this problem?<br>
<br>
Thanks in advance<br><br>
</blockquote></div><br></div></div></div>