<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;">Dear All,<br><br>Is it possible to set both a varying radius *and* independently varying color (scalar, RGB triples...) when using vtkTubeFilter? (i.e. with two sets of scalar arrays)<br><br>I have a running code using SetVaryRadiusToVaryRadiusByScalar (with scalar values added to the input vtkPolyData with "...-&gt;GetPointData()-&gt;SetScalars(...)").<br><br>The coloring of the resulting tube is also then based on these same scalars...<br>I would have liked to set the RGB values for each segment of the tube using another vtkUnsignedCharArray of RGB triples, as I do for surfaces.<br><br>An excerpt of the (fairly unoriginal) code is as follows:<br><br>//------------------<br>...<br><br>// v: Pointer to array of tube path coordinates<br>// nV: Length of v<br><br>// Tube path points<br>vtkSmartPointer&lt;vtkPoints&gt; tpoints =
 vtkSmartPointer&lt;vtkPoints&gt;::New();<br>for(i=0; i&lt;nV; i++) tpoints-&gt;InsertPoint(i,v[i],v[nV+i],v[2*nV+i]);<br><br>// and (somewhat trivial) lines<br>vtkSmartPointer&lt;vtkCellArray&gt; tlines = vtkSmartPointer&lt;vtkCellArray&gt;::New();<br>tlines-&gt;InsertNextCell(nV);<br>for (i=0; i &lt; nV; i++) tlines-&gt;InsertCellPoint(i);<br><br>// Scalars for tube radius (from array 'trad')<br>vtkSmartPointer&lt;vtkDoubleArray&gt; tscalars = vtkSmartPointer&lt;vtkDoubleArray&gt;::New();<br>tscalars-&gt;SetNumberOfTuples(nV);<br>for (i=0 ;i&lt;nV ; i++) tscalars-&gt;SetTuple1(i,trad[i]);<br>tscalars-&gt;GetRange(tscalar_range);<br><br>vtkSmartPointer&lt;vtkPolyData&gt; tprofile = vtkSmartPointer&lt;vtkPolyData&gt;::New();<br>tprofile-&gt;SetPoints((vtkPoints *)(tpoints));<br>tprofile-&gt;SetLines(tlines);<br>tprofile-&gt;GetPointData()-&gt;SetScalars(tscalars);<br>tprofile-&gt;BuildLinks();<br><br>vtkSmartPointer&lt;vtkTubeFilter&gt; tube =
 vtkSmartPointer&lt;vtkTubeFilter&gt;::New();<br>tube-&gt;SetInput(tprofile);<br>tube-&gt;SetVaryRadiusToVaryRadiusByScalar();<br>tube-&gt;SetRadius(tscalar_range[0]);<br>tube-&gt;SetRadiusFactor(tscalar_range[1]/tscalar_range[0]);<br><br>vtkSmartPointer&lt;vtkPolyDataMapper&gt; tubeMapper = vtkSmartPointer&lt;vtkPolyDataMapper&gt;::New();<br>tubeMapper-&gt;SetInput(tube-&gt;GetOutput());<br>surfActor-&gt;SetMapper(tubeMapper);<br>...<br>//------------------<br><br>Many thanks, MT<br><br><br><br></td></tr></table><br>__________________________________________________<br>Do You Yahoo!?<br>Sie sind Spam leid? Yahoo! Mail verfügt über einen herausragenden Schutz gegen Massenmails. <br>http://mail.yahoo.com