<P>
Hi everyone,<BR>
I have attached a code that Iam working on to produce contours.<BR>
Somehow Iam not able to get any contours.<BR>
Please help me.<BR>
Thank you,<BR>
david michell<BR>
<BR>
<BR>
#define VTK_USE_ANSI_STDLIB <BR>
<BR>
#include "vtk/vtkPolyDataMapper.h"<BR>
<BR>
#include "vtk/vtkActor.h"<BR>
<BR>
#include "vtk/vtkRenderer.h"<BR>
<BR>
#include "vtk/vtkRenderWindow.h"<BR>
<BR>
#include "vtk/vtkRenderWindowInteractor.h"<BR>
<BR>
#include "vtk/vtkPoints.h"<BR>
<BR>
#include "vtk/vtkFloatArray.h"<BR>
<BR>
#include "vtk/vtkPointData.h"<BR>
<BR>
#include "vtk/vtkDelaunay2D.h"<BR>
<BR>
#include "vtk/vtkPolyData.h"<BR>
<BR>
#include "vtk/vtkButterflySubdivisionFilter.h"<BR>
<BR>
#include "vtk/vtkMarchingContourFilter.h"<BR>
<BR>
#include "stdio.h"<BR>
<BR>
int main(int argc,char* argv[])<BR>
<BR>
{<BR>
<BR>
vtkRenderer *ren=vtkRenderer::New();<BR>
<BR>
vtkRenderWindow *win=vtkRenderWindow::New();<BR>
<BR>
win->AddRenderer(ren);<BR>
<BR>
vtkRenderWindowInteractor *iren=vtkRenderWindowInteractor::New();<BR>
<BR>
win->SetInteractor(iren);<BR>
<BR>
iren->Initialize();<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
vtkPoints *points=vtkPoints::New();<BR>
<BR>
<BR>
<BR>
vtkFloatArray *scalar=vtkFloatArray::New();<BR>
<BR>
<BR>
int i,counter;<BR>
<BR>
float temp;<BR>
<BR>
double *data;<BR>
<BR>
<BR>
int npts=100;<BR>
<BR>
<BR>
points->SetNumberOfPoints(npts);<BR>
<BR>
scalar->SetNumberOfTuples(npts);<BR>
<BR>
data=new double[npts*3];<BR>
<BR>
double y=0.01;<BR>
<BR>
for (i=0;i<npts;i++)<BR>
<BR>
{<BR>
<BR>
data[i*3]=rand()*i;<BR>
<BR>
data[i*3+1]=rand()*i;<BR>
<BR>
data[i*3+2]=0.0;//z=0 because 2D<BR>
<BR>
points->InsertPoint(i,data[i*3],data[i*3+1],data[i*3+2]);<BR>
<BR>
float temp=1.0;<BR>
<BR>
scalar->InsertValue(i,temp);<BR>
<BR>
}<BR>
<BR>
vtkPolyData *m_spData=vtkPolyData::New();<BR>
<BR>
m_spData->Allocate(npts*3);<BR>
<BR>
m_spData->SetPoints(points);<BR>
<BR>
m_spData->GetPointData()->SetScalars(scalar);<BR>
<BR>
m_spData->Modified();<BR>
<BR>
m_spData->Update();<BR>
<BR>
<BR>
<BR>
vtkDelaunay2D *del=vtkDelaunay2D::New();<BR>
<BR>
del->SetInput(m_spData);<BR>
<BR>
del->SetTolerance(0.00001f);<BR>
<BR>
del->Update();<BR>
<BR>
//to get smooth curved contours<BR>
<BR>
vtkButterflySubdivisionFilter *butr=vtkButterflySubdivisionFilter::New();<BR>
<BR>
butr->SetInput(del->GetOutput());<BR>
<BR>
butr->SetNumberOfSubdivisions(2);<BR>
<BR>
butr->Update();<BR>
<BR>
<BR>
vtkMarchingContourFilter *contour2D=vtkMarchingContourFilter::New();<BR>
<BR>
contour2D->SetInput(butr->GetOutput()); <BR>
<BR>
contour2D->SetValue(0,1.0);<BR>
<BR>
contour2D->Update();<BR>
<BR>
<BR>
vtkPolyDataMapper *mapper=vtkPolyDataMapper::New();<BR>
<BR>
mapper->SetInput(contour2D->GetOutput());<BR>
<BR>
<BR>
vtkActor *surface=vtkActor::New();<BR>
<BR>
surface->SetMapper(mapper); <BR>
<BR>
ren->AddActor(surface);<BR>
<BR>
<BR>
<BR>
iren->Start();<BR>
<BR>
<BR>
<BR>
points->Delete();<BR>
<BR>
scalar->Delete();<BR>
<BR>
m_spData->Delete();<BR>
<BR>
del->Delete();<BR>
<BR>
butr->Delete();<BR>
<BR>
contour2D->Delete();<BR>
<BR>
mapper->Delete();<BR>
<BR>
surface->Delete();<BR>
<BR>
delete[] data;<BR>
<BR>
ren->Delete();<BR>
<BR>
win->Delete();<BR>
<BR>
iren->Delete();<BR>
<BR>
return 1;<BR>
<BR>
}<BR>
<BR>
</P>
<br><br>
<A target="_blank" HREF="http://clients.rediff.com/signature/track_sig.asp"><IMG SRC="http://ads.rediff.com/RealMedia/ads/adstream_nx.cgi/www.rediffmail.com/inbox.htm@Bottom" BORDER=0 VSPACE=0 HSPACE=0></a>