[vtkusers] vtkContourWidget
    Karthik Krishnan 
    karthik.krishnan at kitware.com
       
    Wed May 12 12:43:43 EDT 2010
    
    
  
Yes Nicolas:
The contour widget uses two sets of classes, which (are generally
independent of each other).
A subclass of vtkPointPlacer dictates the constraints imposed on the nodes.
A subclass of vtkContourLIneInterpolator dictates the constraints imposed on
the path in between the nodes.
In your case, you might want to look at the following combination :
  vtkPolygonalSurfacePointPlacer ->
vtkPolygonalSurfaceContourLineInterpolator
The interpolator internally traces the shortest path between the two nodes
along vertices of the mesh, so its not as good as a projection that cuts
through the cells, but if your mesh is dense enough the traced path might be
good enough.
Something like :
   vtkContourWidget *contourWidget = vtkContourWidget::New();
  contourWidget->SetInteractor(iren);
  vtkOrientedGlyphContourRepresentation *rep =
      vtkOrientedGlyphContourRepresentation::SafeDownCast(
                        contourWidget->GetRepresentation());
  vtkPolygonalSurfacePointPlacer * pointPlacer
        = vtkPolygonalSurfacePointPlacer::New();
  pointPlacer->AddProp( sphereActor );
  rep->SetPointPlacer(pointPlacer);
  vtkPolygonalSurfaceContourLineInterpolator * lineInterpolator
        = vtkPolygonalSurfaceContourLineInterpolator::New();
  rep->SetLineInterpolator(lineInterpolator);
  iren->Initialize();
  contourWidget->EnabledOn();
Hope this helps.. Here is a minimal example..
--
karthik
On Wed, May 12, 2010 at 7:21 PM, Nicolas Sarrasin <
nsarrasin at phenix-systems.com> wrote:
>  Hi all,
>
> I'm quite new in developping with vtk and I have some questions concerning
> vtkContourWidget.
>
> I built a quick project which uses vtkContourWidget and
> vtkPolyDataPointPlacer to display a contour on a sphere.
>
> When I click on this sphere, there's no problem : the points of the contour
> are well positionned on the sphere. But it's not the case for the spans
> which are outside or inside the sphere (but not on).
>
> Is there a way to force the borders of the contour to follow the surface ?
>
> A solution would be to project the contour on the sphere but I can find any
> documentation about that.
>
> For more clarity, I post a sample of my code.
>
> Thanks by advance.
>
> Nicolas
>
> code:
>
>     //sphere definition
>
>      vtkSphereSource* theSphere = vtkSphereSource::New();
>
>      vtkPolyDataMapper * sphereMapper = vtkPolyDataMapper::New();
>      sphereMapper->SetInput(theSphere->GetOutput());
>
>      vtkLODActor* sphereActor = vtkLODActor::New();
>      sphereActor->SetMapper( sphereMapper);
>
>      vtkRenderer *renderer1 = vtkRenderer::New();
>      renderer1->AddActor(sphereActor);
>
>      vtkRenderWindow *renWin = vtkRenderWindow::New();
>      renWin->AddRenderer(renderer1);
>
>      vtkRenderWindowInteractor *rendIter = vtkRenderWindowInteractor::New();
>      rendIter->SetRenderWindow(renWin);
>
>      // Here comes the image actor constrained handle widget stuff.....
>      vtkContourWidget *widget = vtkContourWidget::New();
>      widget->SetInteractor(rendIter);
>
>      vtkSmartPointer<vtkLinearContourLineInterpolator> contourStyle =
> vtkSmartPointer<vtkLinearContourLineInterpolator>::New();
>
>      vtkOrientedGlyphContourRepresentation *rep
> =vtkOrientedGlyphContourRepresentation::SafeDownCast(
> widget->GetRepresentation() );
>      rep->SetLineInterpolator(contourStyle);
>
>     // we define a Placer to force the contour to be on the sphere
>      vtkPolyDataPointPlacer * spherePlacer = vtkPolyDataPointPlacer::New();
>      spherePlacer->AddProp(sphereActor);
>      rep->SetPointPlacer(spherePlacer);
>
>      renWin->Render();
>      rendIter->Initialize();
>      widget->EnabledOn();
>      rendIter->Start();/
>
>
> --
>
>
> _______________________________________________
> 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/20100512/449a6f99/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: SurfaceConstrainedContourWidget2.cxx
Type: text/x-c++src
Size: 3131 bytes
Desc: not available
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20100512/449a6f99/attachment.cxx>
    
    
More information about the vtkusers
mailing list