[vtkusers] Problem with vtkPolyLine width greater than 20

Stefan Köhnen stefan.khnen at googlemail.com
Mon Apr 30 08:02:05 EDT 2012


Okay, good to know.
I will use vtkTubeFilter.


Thanks,

Stefan

2012/4/28 Goodwin Lawlor <goodwin.lawlor.lists at gmail.com>:
> Hi Stefan,
>
> VTK clamps linewidth to values 0 -> VTK_LARGE_FLOAT (ie 1 x 10^38) ...
> that's not your limitation.
>
> OpenGL clamps linewidth to value 1 -> implementation max, ie, depends on
> your video card and driver.
>
> cf:  http://www.opengl.org/sdk/docs/man/xhtml/glLineWidth.xml
>
> So, I guess 20 is your implementation max.
>
> If you want to keep a 2d element, try using a vtkPolygon. Otherwise go with
> vtkTubeFilter as Jothy suggested.
>
> hth
>
> Goodwin
>
>
> 2012/4/26 Stefan Köhnen <stefan.khnen at googlemail.com>
>>
>> Thanks, that is exactly what we need. Especially this part "This is
>> helpful because when you zoom the camera, the thickness of a line
>> remains constant, while the thickness of a tube varies."
>>
>> I will look into it. Thanks for your reply Jothy.
>>
>> But just to clarify, there is a limit for the width of a vtkPolyLine?
>>
>> Greetings,
>>
>> Stefan
>>
>>
>> 2012/4/26 Jothybasu Selvaraj <jothybasu at gmail.com>:
>> > If you want such a thick line, why don't you use vtkTubeFilter?
>> >
>> > Jothy
>> >
>> > On Thu, Apr 26, 2012 at 1:11 PM, Stefan Köhnen
>> > <stefan.khnen at googlemail.com>
>> > wrote:
>> >>
>> >> Hello,
>> >>
>> >> I have a problem while trying to increase the width of a vtkPolyLine.
>> >> No matter what I try, the width never seems to become bigger for
>> >> values above 20.
>> >>
>> >> For values below 20, the method SetLineWidth works as expected.
>> >>
>> >> My question is if there is a limitation that prevents me to increase
>> >> the width further or is there an error in my implementation.
>> >>
>> >> To explain my problem better I modified the PolyLine-Example.
>> >> I added SetLineWidth for the vtkProperty of the vtkActor.
>> >>
>> >>
>> >> Greetings,
>> >>
>> >> Stefan Köhnen
>> >>
>> >> Here is the code:
>> >>
>> >> #include <vtkVersion.h>
>> >> #include <vtkSmartPointer.h>
>> >> #include <vtkCellArray.h>
>> >> #include <vtkCellData.h>
>> >> #include <vtkDoubleArray.h>
>> >> #include <vtkPoints.h>
>> >> #include <vtkPolyLine.h>
>> >> #include <vtkPolyData.h>
>> >> #include <vtkPolyDataMapper.h>
>> >> #include <vtkActor.h>
>> >> #include <vtkRenderWindow.h>
>> >> #include <vtkRenderer.h>
>> >> #include <vtkRenderWindowInteractor.h>
>> >> #include <vtkProperty.h>
>> >>
>> >> int main(int, char *[])
>> >> {
>> >>  // Create five points.
>> >>  double origin[3] = {0.0, 0.0, 0.0};
>> >>  double p0[3] = {1.0, 0.0, 0.0};
>> >>  double p1[3] = {0.0, 1.0, 0.0};
>> >>  double p2[3] = {0.0, 1.0, 2.0};
>> >>  double p3[3] = {1.0, 2.0, 3.0};
>> >>
>> >>  // Create a vtkPoints object and store the points in it
>> >>  vtkSmartPointer<vtkPoints> points =
>> >>    vtkSmartPointer<vtkPoints>::New();
>> >>  points->InsertNextPoint(origin);
>> >>  points->InsertNextPoint(p0);
>> >>  points->InsertNextPoint(p1);
>> >>  points->InsertNextPoint(p2);
>> >>  points->InsertNextPoint(p3);
>> >>
>> >>  vtkSmartPointer<vtkPolyLine> polyLine =
>> >>    vtkSmartPointer<vtkPolyLine>::New();
>> >>  polyLine->GetPointIds()->SetNumberOfIds(5);
>> >>  for(unsigned int i = 0; i < 5; i++)
>> >>    {
>> >>    polyLine->GetPointIds()->SetId(i,i);
>> >>    }
>> >>
>> >>  // Create a cell array to store the lines in and add the lines to it
>> >>  vtkSmartPointer<vtkCellArray> cells =
>> >>    vtkSmartPointer<vtkCellArray>::New();
>> >>  cells->InsertNextCell(polyLine);
>> >>
>> >>  // Create a polydata to store everything in
>> >>  vtkSmartPointer<vtkPolyData> polyData =
>> >>    vtkSmartPointer<vtkPolyData>::New();
>> >>
>> >>  // Add the points to the dataset
>> >>  polyData->SetPoints(points);
>> >>
>> >>  // Add the lines to the dataset
>> >>  polyData->SetLines(cells);
>> >>
>> >>  // Setup actor and mapper
>> >>  vtkSmartPointer<vtkPolyDataMapper> mapper =
>> >>    vtkSmartPointer<vtkPolyDataMapper>::New();
>> >> #if VTK_MAJOR_VERSION <= 5
>> >>  mapper->SetInput(polyData);
>> >> #else
>> >>  mapper->SetInputData(polyData);
>> >> #endif
>> >>
>> >>  vtkSmartPointer<vtkActor> actor =
>> >>    vtkSmartPointer<vtkActor>::New();
>> >>  actor->SetMapper(mapper);
>> >>
>> >>
>> >>
>> >>  ////////////////////////////////////////////////////////////////////////////
>> >>  // Here is the explained change - Set width of line
>> >>  actor->GetProperty()->SetLineWidth(30.0f);
>> >>
>> >>
>> >>  ////////////////////////////////////////////////////////////////////////////
>> >>
>> >>
>> >>  // Setup render window, renderer, and interactor
>> >>  vtkSmartPointer<vtkRenderer> renderer =
>> >>    vtkSmartPointer<vtkRenderer>::New();
>> >>  vtkSmartPointer<vtkRenderWindow> renderWindow =
>> >>    vtkSmartPointer<vtkRenderWindow>::New();
>> >>  renderWindow->AddRenderer(renderer);
>> >>  vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor =
>> >>    vtkSmartPointer<vtkRenderWindowInteractor>::New();
>> >>  renderWindowInteractor->SetRenderWindow(renderWindow);
>> >>  renderer->AddActor(actor);
>> >>
>> >>  renderWindow->Render();
>> >>  renderWindowInteractor->Start();
>> >>
>> >>  return EXIT_SUCCESS;
>> >> }
>> >> _______________________________________________
>> >> 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
>> >
>> >
>> >
>> >
>> > --
>> > Jothy
>> >
>> _______________________________________________
>> 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
>
>
>
>
> _______________________________________________
> 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
>



More information about the vtkusers mailing list