[vtkusers] Question about contour widget
Karthik Krishnan
karthik.krishnan at kitware.com
Wed Oct 13 03:44:22 EDT 2010
You need to add the bounding planes to confine it to a single plane.
Something like :
placer.RemoveAllBoundingPlanes();
placer.SetProjectionNormalToZAxis();
imageActor.GetBounds(bounds);
plane = new vtkPLane()
plane->SetOrigin( bounds[0], bounds[2], bounds[4] );
plane->SetNormal( 0.0, 0.0, 1.0 );
this->Placer->AddBoundingPlane( plane );
plane2 = vtkPlane::New();
plane2->SetOrigin( bounds[1], bounds[3], bounds[5] );
plane2->SetNormal( 0.0, 0.0, -1.0 );
placer.AddBoundingPlane( plane2 );
On Tue, Oct 12, 2010 at 9:04 PM, Jonathan Morra <jonmorra at gmail.com> wrote:
> Thanks for your help, I replaced the placer as you suggested, and now my
> code looks like the following
>
> vtkBoundedPlanePointPlacer placer = new vtkBoundedPlanePointPlacer();
> placer.SetProjectionNormalToZAxis();
>
> placer.SetProjectionPosition(panel.getImageViewer().GetImageActor().GetCenter()[2]);
> rep.SetPointPlacer(placer);
>
> This is almost right. The contour now appears on the plane that I drew it
> on and the plane above it and that is it. I just want the contour on the
> plane I drew it on. I tried playing around with placer.SetPixelTolerance()
> but that didn't make a difference.
>
> On Tue, Oct 12, 2010 at 2:33 AM, Karthik Krishnan <
> karthik.krishnan at kitware.com> wrote:
>
>> On Tue, Oct 12, 2010 at 10:33 AM, Jonathan Morra <jonmorra at gmail.com>wrote:
>>
>>> I have a vtkImageViewer2 and wish to use vtkContourWidget to draw a
>>> contour on the image. The data I'm loading is a 3D DICOM CT volume. I have
>>> found the following question
>>> http://vtk.1045678.n5.nabble.com/vtkContourWidget-with-vtkImageViewer2-td1236295.html and
>>> created the following code as a result (in Java)
>>>
>>> vtkContourWidget contourWidget = new vtkContourWidget();
>>> contourWidget.SetInteractor(panel.getRenWin().getIren());
>>> contourWidget.FollowCursorOn();
>>>
>>> vtkOrientedGlyphContourRepresentation rep = new
>>> vtkOrientedGlyphContourRepresentation();
>>> contourWidget.SetRepresentation(rep);
>>>
>>> vtkImageActorPointPlacer placer = new vtkImageActorPointPlacer();
>>> placer.SetImageActor(panel.getImageViewer().GetImageActor());
>>> rep.SetPointPlacer(placer);
>>>
>>
>> What this point placer does is to constrain the contour to the plane
>> defined by the ImageActor. However, given that the same image actor is used
>> for multiple slices, when you change the slice, the position of the image
>> actor effectively changes and the contour updates itself to lie on the new
>> plane.
>>
>> What you need is to use a vtkBoundedPlanePointPlacer with the bounding
>> planes de-lienating the bounds of the image actor when the contour is
>> defined. That way it won't change when you change the slice.
>>
>> Also to manage visibility of the contour (the contour will be visible for
>> all slices in front of the defined slice), you could subclass the contour
>> representation, insert a clipper that clips the polydata based on the
>> bounding planes, that way, visibility is implicitly managed by the
>> representation.
>>
>> --
>> karthik
>>
>> contourWidget.EnabledOn();
>>> contourWidget.ProcessEventsOn();
>>>
>>> When I do this and draw a contour and then scroll through the image
>>> planes the same contour appears on every plane. Ideally I'd like a
>>> different contour on every plane. If I don't use the
>>> vtkImageActorPointPlacer then the contour only appears on one plane but it's
>>> the same plane regardless of which plane is being viewed, which is also
>>> wrong.
>>>
>>> Any suggestions about how to do this correctly would be greatly
>>> appreciated.
>>>
>>> Thanks
>>>
>>> _______________________________________________
>>> Powered by www.kitware.com
>>>
>>> Visit other Kitware open-source projects at
>>> http://www.kitware.com/opensource/opensource.html
>>>
>>> Please keep messages on-topic and check the VTK FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>>
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20101013/db1bcbf0/attachment.htm>
More information about the vtkusers
mailing list