<div>Hi, Every one,</div>
<div> I have read a data set with Plot3D format. But after I change the value of the dataset, I cannot update the 3D modle in the render windows. How can I update the model in the render window? Please help me!</div>
<div> </div>
<div> </div>
<div> </div>
<div>Best regards,</div>
<div>Edward Li</div>
<div> </div>
<div> My code is as shown as below:</div>
<div> </div>
<div>
<p>#include "vtkRenderer.h"<br>#include "vtkRenderWindow.h"<br>#include "vtkRenderWindowInteractor.h"<br>#include "vtkFloatArray.h"<br>#include "vtkRectilinearGrid.h"<br>
#include "vtkRectilinearGridGeometryFilter.h"<br>#include "vtkPolyDataMapper.h"<br>#include "vtkActor.h"<br>#include "vtkProperty.h"<br>#include "vtkCamera.h"<br>#include "vtkPlot3DReader.h" <br>
#include "vtkStructuredGrid.h"<br>#include "vtkContourFilter.h"<br>#include "vtkPolyDataNormals.h"<br>#include "vtkPolyDataMapper.h"<br>#include "vtkLODActor.h"<br>#include "vtkDataArray.h"<br>
#include "vtkPointData.h"</p>
<p>#include "vtkStructuredGridOutlineFilter.h"<br>#include "vtkActor.h"<br>#include "vtkRenderer.h"<br>#include "vtkRenderWindow.h"<br>#include "vtkRenderWindowInteractor.h"<br>
#include "vtkScalarBarActor.h"<br>int main()<br>{<br> vtkPLOT3DReader *pl3d = vtkPLOT3DReader::New();<br> pl3d->BinaryFileOn();</p>
<p> pl3d->SetXYZFileName("combxyz.bin");<br> pl3d->SetQFileName("combq.bin");<br> pl3d->SetScalarFunctionNumber(100);<br> pl3d->SetVectorFunctionNumber(202);<br> pl3d->AddFunction(153); <br>
pl3d->Update();<br> pl3d->DebugOn();</p>
<p> vtkStructuredGrid* output=pl3d->GetOutput();<br> <br> vtkContourFilter* iso=vtkContourFilter::New();<br> iso->SetInput(output);<br> iso->SetValue(1,0.24);</p>
<p><br> vtkPolyDataNormals* normals=vtkPolyDataNormals::New();<br> normals->SetInput(iso->GetOutput());<br> normals->SetFeatureAngle( 45);</p>
<p> vtkPolyDataMapper* isoMapper=vtkPolyDataMapper::New();<br> isoMapper->SetInput(normals->GetOutput());<br> isoMapper->ScalarVisibilityOn();<br> isoMapper->SetScalarRange(0, 1500);<br> isoMapper->SetScalarModeToUsePointFieldData();<br>
isoMapper->ColorByArrayComponent(2, 0);</p>
<p> vtkLODActor* isoActor=vtkLODActor::New();<br> isoActor->SetMapper(isoMapper);<br> isoActor->SetNumberOfCloudPoints(1000);<br> isoActor->GetProperty()->SetRepresentation(1);</p>
<p> vtkStructuredGridOutlineFilter* outline=vtkStructuredGridOutlineFilter::New();<br> outline->SetInput(pl3d->GetOutput());<br> <br> vtkPolyDataMapper* outlineMapper=vtkPolyDataMapper::New();;<br> outlineMapper->SetInput(outline->GetOutput());<br>
<br> vtkActor* outlineActor=vtkActor::New();<br> outlineActor->SetMapper(outlineMapper);<br> </p>
<p> vtkRenderer* ren1=vtkRenderer::New();<br> <br> vtkRenderWindow* renWin=vtkRenderWindow::New();<br> renWin->AddRenderer(ren1);</p>
<p> vtkRenderWindowInteractor* iren=vtkRenderWindowInteractor::New();<br> iren->SetRenderWindow(renWin);</p>
<p> ren1->AddActor(outlineActor);<br> ren1->AddActor(isoActor);<br> ren1->SetBackground(1, 1, 1);<br> renWin->SetSize(500, 500);<br> ren1->SetBackground(0.1, 0.2, 0.4);<br> <br> ren1->GetActiveCamera()->SetClippingRange(3.95297,50);<br>
ren1->GetActiveCamera()->SetFocalPoint(9.71821, 0.458166, 29.3999);<br> ren1->GetActiveCamera()->SetPosition(2.7439, -37.3196, 38.7167);<br> ren1->GetActiveCamera()->SetViewUp(-0.16123, 0.264271, 0.950876); </p>
<p> int tupleMin,tupleMax,compMin,compmax;<br> vtkPoints *pd=output->GetPoints();<br> </p>
<p> renWin->Render();<br> double temp;<br> int tumpleNum=pd->GetNumberOfPoints();</p>
<p> double x[3];<br> for(int j=0;j<100;j++)<br> {<br> for(int i=0;i<tumpleNum/5;i++)<br> {<br> pd->GetPoint(i,x);<br> x[0]=x[0]+10;<br> pd->SetPoint(i,x);<br> <br> }<br> <br> int debug=1;<br> output->Update();<br>
output->UpdateData();<br> renWin->Render();<br> <br> }</p>
<p> iren->Start();<br> <br> <br> ren1->Delete();<br> renWin->Delete();<br> outlineActor->Delete();<br> outlineMapper->Delete();<br> outline->Delete();<br> isoActor->Delete();<br>
isoMapper->Delete();<br> normals->Delete();<br> iso->Delete();<br> pl3d->Delete();<br>}</p></div>
<div> </div>
<div> </div>