[vtkusers] vtkGlyph - how to apply color
Barbara Okupna
barbaraokupna at yahoo.com
Tue Nov 14 20:25:53 EST 2006
Thanks Roger,
It helped a lot.
Roger Blum wrote:
>
> Hello Barbara,
>
> I had the same problem a couple of months ago. I can explain my solution
> with Tcl which should be easy to translate to C++
>
> With vtkGlyph3D you can have different glyphs and different colors,
> orientations and scales for each glyph. This is how it works for me:
>
> # Create points and polydata
> vtkPoints P
> vtkPolyData PolyD
> PolyD SetPoints P
> # Get point data from poly data object
> set PD [PolyD GetPointData]
>
> # For every transformation you need the corresponding data in a data
> array.
> # Scalar data for glyph types
> vtkIntArray IA1
> IA1 SetName "types"
> # Scalar data for colors
> vtkIntArray IA2
> IA2 SetName "colors"
> # Vector data for directions
> vtkFloatArray FA1
> FA1 SetName "directions"
> FA1 SetNumberOfComponents 3
>
> # Add the data arrays to the point data
> PD SetScalars IA1
> PD AddArray IA2
> PD SetVectors FA1
> PD CopyAllOn
>
> # For every glyph (point of your data) add the corresponding data
> P InsertNextPoint $x $y $z
> IA1 InsertNextValue $type
> IA2 InsertNextValue $color
> FA1 InsertNextTupel3 $dx $dy $dz
>
> # Create and configure the glyph filter
> vtkGlyph3D G3D
> G3D SetInput PolyD
> # different glyph types
> G3D SetSource $i $glyph_i; # For all glyph types (i = 0..n)
> G3D SetIndexModeToScalar
> G3D SetRange 0 n
> G3D SetInputArrayToProcess 0 0 0 0 "types"
> # Different colors
> G3D SetColorModeToColorByScalar
> G3D SetInputArrayToProcess 3 0 0 0 "colors"
> # Different directions
> G3D OrientOn
> G3D SetInputArrayToProcess 1 0 0 0 "directions"
>
> # To color the glyphs we need a lookup table
> vtkLookupTable LUT
> ...
>
> # Create and configure the mapper
> vtkPolyDataMapper PDM
> PDM SetInput [G3D GetOutput]
> PDM SetLookupTable LUT
> PDM SetColorModeToMapScalars
> PDM ScalarVisibilityOn
> PDM SelectColorArray "colors"
> PDM SetScalarRange 0 $maxColor
> PDM SetScalarModeToUsePointData
>
> # Create the actor
> vtkActor A
> A SetMapper PDM
>
> HTH,
> Roger
>
> "Barbara Okupna" <barbaraokupna at yahoo.com> schrieb im Newsbeitrag
> news:20061105015037.784.qmail at web54702.mail.yahoo.com...
> I create a sphere, and then pass the sphere to the glyph object as a
> source,
> the Input of the Glyph is array of x,y, z coordinates for the sphere.
>
> How would I apply color to the sphere.
> Sphere at each location (x,y,z) has different color.
>
> points = vtkPoints::New();
> for(int i=0;i<1097;i++)
> {
> double x1 = map[i].x;
> double y1 = map[i].y;
> points->InsertPoint(i,x1,y1,0);
>
> double color = map[i].col; - How would I specify the color of sphere
> at
> x,y,z point
>
> }
> data = vtkPolyData::New();
> data->SetPoints(points);
>
> sphere = vtkSphereSource::New();
>
> sphereGlyph = vtkGlyph3D::New();
> sphereGlyph->SetInput(data);
> sphereGlyph->SetSource(sphere->GetOutput());
>
> Thank you,
>
>
> Check out the New Yahoo! Mail - Fire up a more powerful email and get
> things
> done faster.
>
>
>
> _______________________________________________
> 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
>
>
>
> _______________________________________________
> 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
>
>
--
View this message in context: http://www.nabble.com/vtkGlyph---how-to-apply-color-tf2575969.html#a7350385
Sent from the VTK - Users mailing list archive at Nabble.com.
More information about the vtkusers
mailing list