Hello,<br><br>I'm trying to write a image filter, but I got this error:<br><br>ERROR: In \vwdev\PC\Libraries\vtk44\src\Common\vtkDataSet.cxx, line 376<br>vtkImageData (02476728): Point array color array with 3 components, only has 0<br>&nbsp;tuples but there are 4 points<br><br>do you have any idea?<br><br>Below are my code:<br><br>//------------main.cpp-------------------<br> #include "vtkRenderer.h"<br> #include "vtkRenderWindow.h"<br> #include "vtkRenderWindowInteractor.h"<br> #include "vtkInteractorStyleTrackballCamera.h"<br> #include "vtkPoints.h"<br> #include "vtkDataSetMapper.h"<br> #include "vtkImageData.h"<br> #include "vtkPointData.h"<br> #include "CImageMerger.h"<br> <br> int main( int argc, char *argv[] )<br> {<br> &nbsp;&nbsp;&nbsp; CImageMerger *reader = CImageMerger::New();<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; reader-&gt;Update();<br> &nbsp;&nbsp;&nbsp; cout &lt;&lt;"main: # of tuples in color array: " &lt;&lt;
 reader-&gt;GetOutput()-&gt;GetPointData()-&gt;GetArray(0)-&gt;GetNumberOfTuples() &lt;&lt;endl;<br> &nbsp;&nbsp;&nbsp; <br> &nbsp;&nbsp;&nbsp; vtkDataSetMapper *mapper = vtkDataSetMapper::New();<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mapper-&gt;SetInput(reader-&gt;GetOutput());<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br> &nbsp;&nbsp;&nbsp; vtkActor *actor = vtkActor::New();<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; actor-&gt;SetMapper(mapper);<br> <br> &nbsp;&nbsp;&nbsp; vtkRenderer* ren = vtkRenderer::New();<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ren-&gt;AddActor(actor);<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ren-&gt;SetBackground(1, 1, 1);<br> <br> &nbsp;&nbsp;&nbsp; vtkRenderWindow* renWin = vtkRenderWindow::New();<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; renWin-&gt;AddRenderer(ren);<br> <br> &nbsp;&nbsp;&nbsp; vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; iren-&gt;SetRenderWindow(renWin);<br>
 &nbsp;&nbsp;&nbsp; vtkInteractorStyleTrackballCamera *style = vtkInteractorStyleTrackballCamera::New();<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; iren-&gt;SetInteractorStyle(style);<br> &nbsp;&nbsp;&nbsp; renWin-&gt;SetSize(600,600);<br> &nbsp;&nbsp;&nbsp; renWin-&gt;Render();<br> &nbsp;&nbsp;&nbsp; iren-&gt;Start();<br> <br> &nbsp;&nbsp;&nbsp; style-&gt;Delete();<br> &nbsp;&nbsp;&nbsp; iren-&gt;Delete();<br> &nbsp;&nbsp;&nbsp; ren-&gt;Delete();<br> &nbsp;&nbsp;&nbsp; renWin-&gt;Delete();<br> &nbsp;&nbsp;&nbsp; actor-&gt;Delete();<br> &nbsp;&nbsp;&nbsp; mapper-&gt;Delete();<br> &nbsp;&nbsp;&nbsp; reader-&gt;Delete();<br> &nbsp;&nbsp;&nbsp; return 0;<br> <br> }<br> <br><br>//-------------CImageMerger.cpp--------------<br>#include "vtkFloatArray.h"<br>#include "vtkPointData.h"<br>#include "vtkObjectFactory.h"<br>#include &lt;vector&gt;<br>#include "vtkUnsignedCharArray.h"<br>#include "vtkImageData.h"<br>#include "CImageMerger.h"<br><br>vtkCxxRevisionMacro(CImageMerger,
 "$Revision: 1.30 $");<br>vtkStandardNewMacro(CImageMerger);<br><br>CImageMerger::CImageMerger():vtkImageSource()<br>{}<br>CImageMerger::~CImageMerger()<br>{}<br><br>void CImageMerger::ExecuteData(vtkDataObject*)<br>{<br>&nbsp;&nbsp;&nbsp; this-&gt;GetOutput()-&gt;SetDimensions(2, 2, 1);<br>&nbsp;&nbsp;&nbsp; this-&gt;GetOutput()-&gt;SetSpacing(1.0,1.0,1.0);<br>&nbsp;&nbsp;&nbsp; this-&gt;GetOutput()-&gt;SetOrigin(0.0,0.0,0.0);<br>&nbsp;&nbsp;&nbsp; this-&gt;GetOutput()-&gt;SetScalarType(VTK_UNSIGNED_CHAR);<br>&nbsp;&nbsp;&nbsp; vtkUnsignedCharArray *colorArray = vtkUnsignedCharArray::New();<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; colorArray-&gt;SetNumberOfComponents(3);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; colorArray-&gt;SetNumberOfTuples(4);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; colorArray-&gt;InsertNextTuple3(0,0,0);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; colorArray-&gt;InsertNextTuple3(0,0,0);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
 colorArray-&gt;InsertNextTuple3(0,0,0);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; colorArray-&gt;InsertNextTuple3(0,0,0);<br>&nbsp;&nbsp;&nbsp; colorArray-&gt;SetName("color array");<br>&nbsp;&nbsp;&nbsp; this-&gt;GetOutput()-&gt;GetPointData()-&gt;SetScalars(colorArray);<br>}<br><br>void CImageMerger::ExecuteInformation()<br>{<br>}<br><br>void CImageMerger::PrintSelf(ostream&amp; os, vtkIndent indent) <br>{<br>}<br><br>//--------CImageMerger.h-------------------<br>#include "vtkImageSource.h"<br><br>class CImageMerger : public vtkImageSource<br>{<br>public:<br>&nbsp;&nbsp;&nbsp; vtkTypeRevisionMacro(CImageMerger, vtkImageSource);<br>&nbsp;&nbsp;&nbsp; void PrintSelf(ostream&amp; os, vtkIndent indent);<br>&nbsp;&nbsp;&nbsp; static CImageMerger *New();<br><br>&nbsp;&nbsp;&nbsp; CImageMerger();<br>&nbsp;&nbsp;&nbsp; ~CImageMerger();<br>&nbsp;&nbsp;&nbsp; <br>protected:<br>&nbsp;&nbsp;&nbsp; void ExecuteInformation();<br>&nbsp;&nbsp;&nbsp; void
 ExecuteData(vtkDataObject*);<br>&nbsp;&nbsp;&nbsp; <br>private:<br>&nbsp;&nbsp;&nbsp; CImageMerger(const CImageMerger&amp;);&nbsp; // Not implemented.<br>&nbsp;&nbsp;&nbsp; void operator=(const CImageMerger&amp;);&nbsp; // Not implemented.<br>&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; <br>};<br><br><br>thanks<br> <br> tracy<br> <br><br><br><p>&#32;

      <hr size=1>Never miss a thing.  <a href="http://us.rd.yahoo.com/evt=51438/*http://www.yahoo.com/r/hs"> Make Yahoo your homepage.</a>