[vtkusers] Help with drawing lines
Michael Jackson
mike.jackson at bluequartz.net
Tue Jan 20 10:52:16 EST 2009
You probably want to create a vtkPolyData set that contains just
lines. You should be able to do this quite easily by creating the
vtkPolyData object then inserting a new cell of type VTK_POLY_LINE and
2 points. When you are complete with that then use 1 actor to
visualize the ployData. I can possibly dig up some code if needed.
_________________________________________________________
Mike Jackson mike.jackson at bluequartz.net
BlueQuartz Software www.bluequartz.net
Principal Software Engineer Dayton, Ohio
On Jan 20, 2009, at 10:44 AM, Konstantinos Kelg wrote:
> Actually, the lines I have to draw are too many (more than 100.000).
> So I don't think drawing each line with a different actor would be a
> good idea. Isn't there any way to define all the lines in a single
> object and then render them with one actor ?
>
> I thought that "vtkCellArray" would do the job, but I guess I was
> wrong. Perhaps I'm missing sth...
>
>
> --- Στις Δευτ., 19/01/09, ο/η Andre Gouws
> <andre at ynic.york.ac.uk> έγραψε:
> Από: Andre Gouws <andre at ynic.york.ac.uk>
> Θέμα: Re: [vtkusers] vtkAVIWriter problem.
> Προς: kkelgeor at yahoo.gr
> Κοιν.: vtkusers at vtk.org
> Ημερομηνία: Δευτέρα, 19 Ιανουάριος 2009,
> 9:44
>
> I usually
> just use vtkLineSource (has SetPoint1 and SetPoint2 calls once you
> have calculated the positions) .. example from the vtk source
> (Python sorry)
>
> rake = vtk.vtkLineSource()
> rake.SetPoint1(15, -5, 32)
> rake.SetPoint2(15, 5, 32)
> rake.SetResolution(21)
>
> ..... addmapper ...
>
> ..... addactor ... etc.
>
>
> > This is the private VTK discussion list.
> > Please keep messages on-topic. Check the FAQ at:
> http://www.vtk.org/Wiki/VTK_FAQ
> > Follow this link to subscribe/unsubscribe:
> > http://www.vtk.org/mailman/listinfo/vtkusers
> >
> i think vtkLineRepresentation (or vtkLinewidget) is a better way to
> draw lines in a scene…you must set the properties of the line the
> way you like, add it to the renderer and simply set the
> coordinates(in world coordinates) of two end points of the line …
>
> ====================================================
>
> Hi. I need to render some vectors in 3D space and I've decided to
> draw them as lines. However my code doesn't seem to work (I see
> nothing). Does anyone know why ?
>
>
> vtkCellArray *cellArrayNorm = vtkCellArray::New();
> vtkPoints *points2 = vtkPoints::New();
> points2->Allocate(2*m_NumOfVertices*3*sizeof(float));
>
>
> for(int k=0; k<m_NumOfVertices; k++)
> {
> float* fp = VerticesP[k].coords; // Get vertex coords.
>
> float* fpN = NormP[k].coords; // Get vertex normal.
> points2->SetPoint(k, fp); // Set 1st point
> points2->SetPoint(m_NumOfVertices + k, // Set 2nd point.
>
> fp[0]+fpN[0], // x+dx
> fp[1]+fpN[1], // y+dy
> fp[2]+fpN[2]);// z+dz
> // Set up new (line) cell and insert.
> int pts[2] = {k, m_NumOfVertices+k};
> cellArrayNorm->InsertNextCell(2, pts);
> }
>
>
>
> vtkPolyData *polyDataNorm = vtkPolyData::New();
> polyDataNorm->SetPoints(points2);
> polyDataNorm->SetPolys(cellArrayNorm);
>
> vtkPolyDataMapper *polyDataMapperNorm = vtkPolyDataMapper::New();
> polyDataMapperNorm->SetInput(polyDataNorm);
>
> ActorNorm->SetMapper(polyDataMapperNorm);
> ren1->AddActor(ActorNorm);
>
> vtkProperty *prop = vtkProperty::New();
> prop->SetColor(1.0, 0.0, 0.0);
> ActorNorm->SetProperty(prop);
>
> points2->Delete();
> cellArrayNorm->Delete();
> polyDataNorm->Delete();
> polyDataMapperNorm->Delete();
> prop->Delete();
>
> Thanks.
>
>
> Χρησιμοποιείτε Yahoo!
> Βαρεθήκατε τα ενοχλητικά μηνύ ματα
> (spam); Το Yahoo! Mail διαθέτει την καλύτερη
> δυνατή προστασία κατά των
> ενοχλητικών μηνυμάτων
> http://login.yahoo.com/config/mail?.intl=gr
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the 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