<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1476" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY style="COLOR: #000000; FONT-FAMILY: Arial" bgColor=#ffffff>
<DIV>Hi, everyone,</DIV>
<DIV>&nbsp;</DIV>
<DIV>I try to use colour mapping on the isosuface which is generated by 
vtkMarchingCubes.</DIV>
<DIV>The scalar range is between 0 and 53. but I only can get one colour. </DIV>
<DIV>&nbsp;</DIV>
<DIV>The following is my code structure. Please help me to find where I am 
wrong.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Thanks in advance!</DIV>
<DIV>&nbsp;</DIV>
<DIV>Tracy</DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT 
size=2>*************************************************************************************************************************************************</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>int main(int argc, char **argv)<BR>{<BR>&nbsp;float 
range[2];</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>// Read dataset and extract a portion of an input structured 
points dataset<BR>vtkStructuredPointsReader *reader = 
vtkStructuredPointsReader::New();&nbsp; 
<BR>&nbsp;reader-&gt;SetFileName(".//Data//MH_Zoning2.vtk");</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>vtkExtractVOI *extract = 
vtkExtractVOI::New();<BR>&nbsp;extract-&gt;SetInput(reader-&gt;GetOutput());<BR>&nbsp;extract-&gt;SetVOI(0, 
49, 0, 24, 0, 79);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // whole dimention 
50*50*80&nbsp;<BR>&nbsp;extract-&gt;SetSampleRate(1, 2, 
3);<BR>&nbsp;extract-&gt;Update();<BR>&nbsp;extract-&gt;GetOutput()-&gt;GetScalarRange(range);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>// define lookuptable<BR>vtkLookupTable *lut = 
vtkLookupTable::New();<BR>&nbsp;&nbsp;&nbsp; lut-&gt;SetHueRange 
(0.0,0.667);<BR>&nbsp;lut-&gt;SetNumberOfColors 
(256);<BR>&nbsp;lut-&gt;Build();<BR>&nbsp;for (int i=0; i&lt;53; 
i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lut-&gt;SetTableValue(i, 
(i+1)/255.0,(i+2)/255.0,(i+3)/255.0, 1.0);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>// data rendering<BR>vtkMarchingCubes *plane = 
vtkMarchingCubes::New();<BR>&nbsp;&nbsp; 
plane-&gt;SetInput(extract-&gt;GetOutput());<BR>&nbsp;&nbsp; 
plane-&gt;GenerateValues(54, 0,53);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>vtkCleanPolyData *cleaner = 
vtkCleanPolyData::New();<BR>&nbsp;&nbsp; 
cleaner-&gt;SetInput(plane-&gt;GetOutput());<BR>&nbsp;&nbsp; 
<BR>&nbsp;//vtkDecimatePro *deci = 
vtkDecimatePro::New();<BR>&nbsp;//&nbsp;&nbsp; 
deci-&gt;SetInput(contours-&gt;GetOutput());<BR>&nbsp;//&nbsp;&nbsp; 
deci-&gt;SetTargetReduction(0.9);<BR>&nbsp;//&nbsp;&nbsp; 
deci-&gt;PreserveTopologyOn();</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>vtkSmoothPolyDataFilter *smoother = 
vtkSmoothPolyDataFilter::New();<BR>&nbsp;&nbsp;&nbsp; smoother-&gt;SetInput 
(cleaner-&gt;GetOutput());<BR>&nbsp;smoother-&gt;SetNumberOfIterations(150);<BR>&nbsp;&nbsp;&nbsp; 
<BR>vtkPolyDataNormals *normals = 
vtkPolyDataNormals::New();<BR>&nbsp;&nbsp;&nbsp; normals-&gt;SetInput 
(smoother-&gt;GetOutput());<BR>&nbsp;&nbsp;&nbsp; 
normals-&gt;FlipNormalsOff();</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>vtkPolyDataMapper *contMapper = 
vtkPolyDataMapper::New();<BR>&nbsp;&nbsp; 
contMapper-&gt;SetInput(normals-&gt;GetOutput());<BR>&nbsp;&nbsp; 
contMapper-&gt;ScalarVisibilityOn();<BR>&nbsp;&nbsp; 
contMapper-&gt;SetScalarRange(range);<BR>&nbsp;&nbsp; 
contMapper-&gt;SetLookupTable(lut);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>vtkActor *contActor = vtkActor::New();<BR>&nbsp;&nbsp; 
contActor-&gt;SetMapper(contMapper);<BR>&nbsp;&nbsp; 
contActor-&gt;GetProperty()-&gt;SetOpacity (1);</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>// window stuff<BR>vtkRenderer *ren1 = 
vtkRenderer::New();<BR>vtkRenderWindow *renWin = 
vtkRenderWindow::New();<BR>&nbsp;&nbsp;&nbsp; renWin-&gt;AddRenderer( 
ren1);<BR>vtkRenderWindowInteractor *iren = 
vtkRenderWindowInteractor::New();<BR>&nbsp;&nbsp;&nbsp; 
iren-&gt;SetRenderWindow( renWin);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>ren1-&gt;SetBackground( 0.5, 0, 0.5);<BR>ren1-&gt;AddActor( 
contActor);</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>iren-&gt;Initialize();<BR>iren-&gt;Start();</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT 
size=2>reader-&gt;Delete();<BR>extract-&gt;Delete();<BR>lut-&gt;Delete();</FONT></DIV>
<DIV><FONT size=2>......</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT size=2>}</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<P></P></BODY></HTML>