<br><font size=2 face="Courier New">&gt;&gt;Have you looked at:<br>
&gt;&gt;<br>
&gt;&gt;/Graphics/Testing/Tcl/progGlyphs.tcl<br>
&gt;&gt;/Graphics/Testing/Tcl/progGlyphsBySource.tcl</font>
<br>
<br><font size=2 face="sans-serif">Sorry no, I missed those. </font>
<br>
<br><font size=2 face="sans-serif">I have now taken a look at these examples and tried to implement </font><font size=2 face="Courier New">progGlyphs.tcl</font><font size=2 face="sans-serif"> as C++. I have evidently lost something in the translation however as my output is not the same as the test. The test puts nicely scaled and coloured glyphs at each vertex in the mesh of the plane. My output however just has a single large blue sphere. My CalcGlyph function is being called the right number of times but it does not seem to be having any effect. Can anyone see what I have done wrong?</font>
<br>
<br><font size=2 face="sans-serif">Many thanks,</font>
<br>
<br><font size=2 face="sans-serif">Nick</font>
<br>
<br><font size=2 face="sans-serif">&lt;begin code&gt;</font>
<br>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &quot;vtkActor.h&quot;</font>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &quot;vtkPolyData.h&quot;</font>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &quot;vtkPolyDataMapper.h&quot;</font>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &quot;vtkRenderWindow.h&quot;</font>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &quot;vtkRenderWindowInteractor.h&quot;</font>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &quot;vtkRenderer.h&quot;</font>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &quot;vtkProperty.h&quot;</font>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &quot;vtkPlaneSource.h&quot;</font>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &lt;vtkProgrammableGlyphFilter.h&gt;</font>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &lt;vtkElevationFilter.h&gt;</font>
<br><font size=2 color=blue face="Courier New">#include</font><font size=2 face="Courier New"> &lt;vtkSuperquadricSource.h&gt;</font>
<br>
<br><font size=2 color=blue face="Courier New">static</font><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> res;</font>
<br><font size=2 color=blue face="Courier New">static</font><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> count =0;</font>
<br>
<br><font size=2 color=blue face="Courier New">void</font><font size=2 face="Courier New"> CalcGlyph(</font><font size=2 color=blue face="Courier New">void</font><font size=2 face="Courier New"> *arg)</font>
<br><font size=2 face="Courier New">{</font>
<br><font size=2 face="Courier New">&nbsp; std::cout &lt;&lt; &quot;Calculating glyph: &quot; &lt;&lt; count &lt;&lt; std::endl;</font>
<br>
<br><font size=2 face="Courier New">&nbsp; vtkProgrammableGlyphFilter *glyph = (vtkProgrammableGlyphFilter*)arg;</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> ptId = glyph-&gt;GetPointId();</font>
<br><font size=2 face="Courier New">&nbsp; vtkPointData *pd = glyph-&gt;GetPointData();</font>
<br><font size=2 face="Courier New">&nbsp; </font>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=blue face="Courier New">float</font><font size=2 face="Courier New"> x,y,z;</font>
<br><font size=2 face="Courier New">&nbsp; glyph-&gt;GetPoint( x, y, z );</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=blue face="Courier New">double</font><font size=2 face="Courier New"> length = ( glyph-&gt;GetInput() )-&gt;GetLength();</font>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=blue face="Courier New">double</font><font size=2 face="Courier New"> scale = ( length / (2*res) );</font>
<br>
<br><font size=2 face="Courier New">&nbsp; vtkSuperquadricSource *squad = (vtkSuperquadricSource*) glyph-&gt;GetSource();</font>
<br>
<br><font size=2 face="Courier New">&nbsp; squad-&gt;SetScale( scale, scale, scale );</font>
<br><font size=2 face="Courier New">&nbsp; squad-&gt;SetCenter( x, y, z );</font>
<br><font size=2 face="Courier New">&nbsp; squad-&gt;SetPhiRoundness( (fabs(x)*5) );</font>
<br><font size=2 face="Courier New">&nbsp; squad-&gt;SetThetaRoundness( fabs(y)*5 );</font>
<br>
<br><font size=2 face="Courier New">&nbsp; count++;</font>
<br><font size=2 face="Courier New">}</font>
<br>
<br>
<br>
<br><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> main( </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New"> argc, </font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New"> *argv[] )</font>
<br><font size=2 face="Courier New">{</font>
<br>
<br><font size=2 face="Courier New">&nbsp; res = 6;</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </font>
<br><font size=2 face="Courier New">&nbsp; vtkPlaneSource *plane = vtkPlaneSource::New();</font>
<br><font size=2 face="Courier New">&nbsp; plane-&gt;SetResolution( res, res );</font>
<br>
<br>
<br><font size=2 face="Courier New">&nbsp; vtkElevationFilter *colors = vtkElevationFilter::New();</font>
<br><font size=2 face="Courier New">&nbsp; colors-&gt;SetInput( plane-&gt;GetOutput() );</font>
<br><font size=2 face="Courier New">&nbsp; colors-&gt;SetLowPoint( -0.25, -0.25, -0.25 );</font>
<br><font size=2 face="Courier New">&nbsp; colors-&gt;SetHighPoint( 0.25, 0.25, 0.25 );</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </font>
<br><font size=2 face="Courier New">&nbsp; vtkPolyDataMapper* planeMapper = vtkPolyDataMapper::New();</font>
<br><font size=2 face="Courier New">&nbsp; planeMapper-&gt;SetInput( colors-&gt;GetPolyDataOutput() );</font>
<br>
<br>
<br><font size=2 face="Courier New">&nbsp; vtkActor *planeActor = vtkActor::New();</font>
<br><font size=2 face="Courier New">&nbsp; planeActor-&gt;SetMapper( planeMapper );</font>
<br><font size=2 face="Courier New">&nbsp; ( planeActor-&gt;GetProperty() )-&gt;SetRepresentationToWireframe();</font>
<br><font size=2 face="Courier New">&nbsp; </font>
<br>
<br><font size=2 face="Courier New">&nbsp; vtkSuperquadricSource *squad = vtkSuperquadricSource::New();</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </font>
<br><font size=2 face="Courier New">&nbsp; vtkProgrammableGlyphFilter *glyph = vtkProgrammableGlyphFilter::New();</font>
<br><font size=2 face="Courier New">&nbsp; glyph-&gt;SetInput( colors-&gt;GetOutput() );</font>
<br><font size=2 face="Courier New">&nbsp; glyph-&gt;SetSource( squad-&gt;GetOutput() );</font>
<br><font size=2 face="Courier New">&nbsp; glyph-&gt;SetGlyphMethod( CalcGlyph, glyph );</font>
<br>
<br>
<br><font size=2 face="Courier New">&nbsp; vtkPolyDataMapper *glyphMapper = vtkPolyDataMapper::New();</font>
<br><font size=2 face="Courier New">&nbsp; glyphMapper-&gt;SetInput( glyph-&gt;GetOutput() );</font>
<br>
<br>
<br><font size=2 face="Courier New">&nbsp; vtkActor *glyphActor = vtkActor::New();</font>
<br><font size=2 face="Courier New">&nbsp; glyphActor-&gt;SetMapper( glyphMapper );</font>
<br>
<br>
<br><font size=2 face="Courier New">&nbsp; vtkRenderer *ren = vtkRenderer::New();</font>
<br><font size=2 face="Courier New">&nbsp; ren-&gt;AddActor( planeActor );</font>
<br><font size=2 face="Courier New">&nbsp; ren-&gt;AddActor( glyphActor );</font>
<br><font size=2 face="Courier New">&nbsp; ren-&gt;SetBackground(1, 1, 1);</font>
<br>
<br>
<br><font size=2 face="Courier New">&nbsp; vtkRenderWindow *renWin = vtkRenderWindow::New();</font>
<br><font size=2 face="Courier New">&nbsp; renWin-&gt;AddRenderer(ren);</font>
<br><font size=2 face="Courier New">&nbsp; renWin-&gt;SetSize(450,450);</font>
<br>
<br>
<br><font size=2 face="Courier New">&nbsp; vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();</font>
<br><font size=2 face="Courier New">&nbsp; iren-&gt;SetRenderWindow(renWin);</font>
<br><font size=2 face="Courier New">&nbsp; iren-&gt;Initialize();</font>
<br><font size=2 face="Courier New">&nbsp; iren-&gt;Start();</font>
<br>
<br>
<br><font size=2 face="Courier New">&nbsp; plane-&gt;Delete();</font>
<br><font size=2 face="Courier New">&nbsp; colors-&gt;Delete();</font>
<br><font size=2 face="Courier New">&nbsp; planeMapper-&gt;Delete();</font>
<br><font size=2 face="Courier New">&nbsp; planeActor-&gt;Delete();</font>
<br><font size=2 face="Courier New">&nbsp; squad-&gt;Delete();</font>
<br><font size=2 face="Courier New">&nbsp; glyph-&gt;Delete();</font>
<br><font size=2 face="Courier New">&nbsp; glyphMapper-&gt;Delete();</font>
<br><font size=2 face="Courier New">&nbsp; glyphActor-&gt;Delete();</font>
<br><font size=2 face="Courier New">&nbsp; ren-&gt;Delete();</font>
<br><font size=2 face="Courier New">&nbsp; renWin-&gt;Delete();</font>
<br><font size=2 face="Courier New">&nbsp; iren-&gt;Delete();</font>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=blue face="Courier New">return</font><font size=2 face="Courier New"> 0;</font>
<br><font size=2 face="Courier New">}</font>
<br>
<br><font size=2 face="Courier New">&lt;end code&gt;</font>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td>
<td><font size=1 face="sans-serif"><b>&quot;Goodwin Lawlor&quot; &lt;goodwin.lawlor@ucd.ie&gt;</b></font>
<br><font size=1 face="sans-serif">Sent by: vtkusers-bounces@vtk.org</font>
<p><font size=1 face="sans-serif">17/06/2004 22:06</font>
<br>
<td><font size=1 face="Arial">&nbsp; &nbsp; &nbsp; &nbsp; </font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; To: &nbsp; &nbsp; &nbsp; &nbsp;vtkusers@public.kitware.com</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; cc: &nbsp; &nbsp; &nbsp; &nbsp;</font>
<br><font size=1 face="sans-serif">&nbsp; &nbsp; &nbsp; &nbsp; Subject: &nbsp; &nbsp; &nbsp; &nbsp;[vtkusers] Re: Example of the use of vtkProgrammableGlyphFilter</font></table>
<br>
<br>
<br><font size=2 face="Courier New">Have you looked at:<br>
<br>
/Graphics/Testing/Tcl/progGlyphs.tcl<br>
/Graphics/Testing/Tcl/progGlyphsBySource.tcl<br>
<br>
&quot;Nick Arini&quot; &lt;nick.arini@amersham.com&gt; wrote in message<br>
news:OFF501534D.8712673B-ON80256EB6.0049A380@se.apbiotech.com...<br>
<br>
Dear VTK users,<br>
<br>
does anyone have an example of the use of vtkProgrammableGlyphFilter?<br>
<br>
I have unstructured data of the form:<br>
<br>
x-coord, y-coord, z-coord, attribute1, attribute2,...<br>
<br>
I want to place a glyph (for example a sphere) at the point in 3D space<br>
defined by the coordinates and dictate the size and colour of the sphere<br>
with the attribute data. I could not find any example of the use of this<br>
class in /Examples, the docs or in the mailing list archive.<br>
<br>
Many thanks,<br>
<br>
Nick<br>
<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
This is the private VTK discussion list.<br>
Please keep messages on-topic. Check the FAQ at:<br>
&lt;http://public.kitware.com/cgi-bin/vtkfaq&gt;<br>
Follow this link to subscribe/unsubscribe:<br>
http://www.vtk.org/mailman/listinfo/vtkusers<br>
<br>
<br>
<br>
_______________________________________________<br>
This is the private VTK discussion list. <br>
Please keep messages on-topic. Check the FAQ at: &lt;http://public.kitware.com/cgi-bin/vtkfaq&gt;<br>
Follow this link to subscribe/unsubscribe:<br>
http://www.vtk.org/mailman/listinfo/vtkusers<br>
</font>
<br>
<br>