[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