<br><font size=2 face="sans-serif">Dear VTK Users,</font>
<br>
<br><font size=2 face="sans-serif">I am learning VTK by example. I am however not at all experienced in Tcl or Python. There are not a great many C++ examples in VTK/Examples.</font>
<br>
<br><font size=2 face="sans-serif">My assumption therefore was that I could read the Tcl code and convert it directly to C++. I have for example done that for the Tcl example mentioned on pp391 of the VTK book:</font>
<br>
<br><font size=2 face="sans-serif">Examples/VisualizationAlgorithms/Tcl/imageWarp.tcl</font>
<br>
<br><font size=2 face="sans-serif">I converted this line for line into what I thought was equivalent C++ code (see below), however the objects don't seem to be compatible as C++. The compiler errors describing mismatched prototypes is also pasted in below.</font>
<br>
<br><font size=2 face="sans-serif">What is the difference if any between VTK code written in Tcl (or python) and pure C++? (Or what have I done bad?)</font>
<br>
<br><font size=2 face="sans-serif">Why are there so few C++ examples in VTK/Examples?</font>
<br>
<br><font size=2 face="sans-serif">Is there any interest in more C++ examples?</font>
<br>
<br>
<br><font size=2 face="sans-serif">Best regards and thanks,</font>
<br>
<br><font size=2 face="sans-serif">Nick</font>
<br>
<br>
<br><font size=2 face="sans-serif"><begin Tcl></font>
<br>
<br><font size=2 face="sans-serif">vtkBMPReader reader</font>
<br><font size=2 face="sans-serif"> reader SetFileName $VTK_DATA_ROOT/Data/masonry.bmp</font>
<br>
<br><font size=2 face="sans-serif">vtkImageLuminance luminance</font>
<br><font size=2 face="sans-serif"> luminance SetInput [reader GetOutput]</font>
<br>
<br><font size=2 face="sans-serif">vtkImageDataGeometryFilter geometry</font>
<br><font size=2 face="sans-serif"> geometry SetInput [luminance GetOutput]</font>
<br>
<br><font size=2 face="sans-serif">vtkWarpScalar warp</font>
<br><font size=2 face="sans-serif"> warp SetInput [geometry GetOutput]</font>
<br><font size=2 face="sans-serif"> warp SetScaleFactor -0.1</font>
<br>
<br><font size=2 face="sans-serif">vtkMergeFilter merge</font>
<br><font size=2 face="sans-serif"> merge SetGeometry [warp GetOutput]</font>
<br><font size=2 face="sans-serif"> merge SetScalars [reader GetOutput]</font>
<br>
<br><font size=2 face="sans-serif">vtkDataSetMapper mapper</font>
<br><font size=2 face="sans-serif"> mapper SetInput [merge GetOutput]</font>
<br><font size=2 face="sans-serif"> mapper SetScalarRange 0 255</font>
<br><font size=2 face="sans-serif"> mapper ImmediateModeRenderingOff</font>
<br>
<br><font size=2 face="sans-serif"><end Tcl></font>
<br>
<br>
<br><font size=2 face="sans-serif"><begin C++></font>
<br>
<br><font size=2 face="sans-serif">#include <vtkTIFFReader.h></font>
<br><font size=2 face="sans-serif">#include <vtkImageLuminance.h></font>
<br><font size=2 face="sans-serif">#include <vtkImageDataGeometryFilter.h></font>
<br><font size=2 face="sans-serif">#include <vtkWarpScalar.h></font>
<br><font size=2 face="sans-serif">#include <vtkMergeFilter.h></font>
<br><font size=2 face="sans-serif">#include <vtkDataSetMapper.h></font>
<br>
<br><font size=2 face="sans-serif">int main( int argc, char * argv[] )</font>
<br><font size=2 face="sans-serif">{</font>
<br>
<br><font size=2 face="sans-serif"> vtkTIFFReader *reader = vtkTIFFReader::New();</font>
<br><font size=2 face="sans-serif"> reader->SetFilePrefix("test.tif");</font>
<br><font size=2 face="sans-serif"> reader->SetFilePattern("%s");</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> vtkImageLuminance *luminance = vtkImageLuminance::New();</font>
<br><font size=2 face="sans-serif"> luminance->SetInput( reader->GetOutput() );</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif"> vtkImageDataGeometryFilter *geometry = vtkImageDataGeometryFilter::New();</font>
<br><font size=2 face="sans-serif"> geometry->SetInput( luminance->GetOutput() );</font>
<br>
<br><font size=2 face="sans-serif"> vtkWarpScalar *warp = vtkWarpScalar::New();</font>
<br><font size=2 face="sans-serif"> warp->SetInput( geometry->GetOutput() );</font>
<br><font size=2 face="sans-serif"> warp->SetScaleFactor( -0.1 );</font>
<br>
<br><font size=2 face="sans-serif"> vtkMergeFilter *merge = vtkMergeFilter::New();</font>
<br><font size=2 face="sans-serif"> merge->SetGeometry( warp->GetOutput() );</font>
<br><font size=2 face="sans-serif"> merge->SetScalars( reader->GetOutput() );</font>
<br>
<br><font size=2 face="sans-serif"> vtkDataSetMapper *mapper = vtkDataSetMapper::New();</font>
<br><font size=2 face="sans-serif"> mapper->SetInput( merge->GetOutput() );</font>
<br><font size=2 face="sans-serif"> mapper->SetScalarRange( 0, 255 );</font>
<br><font size=2 face="sans-serif"> mapper->ImmediateModeRenderingOff();</font>
<br>
<br><font size=2 face="sans-serif"> return 0;</font>
<br><font size=2 face="sans-serif">}</font>
<br>
<br><font size=2 face="sans-serif"><end C++></font>
<br>
<br>
<br><font size=2 face="sans-serif"><begin compiler></font>
<br>
<br><font size=2 face="sans-serif">[nicha@localhost Linux_x86]$ make</font>
<br><font size=2 face="sans-serif">Building dependencies cmake.check_depends...</font>
<br><font size=2 face="sans-serif">-- Loading VTK CMake commands</font>
<br><font size=2 face="sans-serif">-- Loading VTK CMake commands - done</font>
<br><font size=2 face="sans-serif">Building object file vtkimage.o...</font>
<br><font size=2 face="sans-serif">/home/nicha/vtkimage/vtkimage.cpp: In function `int main(int, char**)':</font>
<br><font size=2 face="sans-serif">/home/nicha/vtkimage/vtkimage.cpp:38: error: no matching function for call to `</font>
<br><font size=2 face="sans-serif"> vtkWarpScalar::SetInput(vtkPolyData*)'</font>
<br><font size=2 face="sans-serif">/usr/local/include/vtk/vtkPointSetToPointSetFilter.h:57: error: candidates are:</font>
<br><font size=2 face="sans-serif"> void vtkPointSetToPointSetFilter::SetInput(vtkPointSet*)</font>
<br><font size=2 face="sans-serif">/home/nicha/vtkimage/vtkimage.cpp:42: error: no matching function for call to `</font>
<br><font size=2 face="sans-serif"> vtkMergeFilter::SetGeometry(vtkPointSet*)'</font>
<br><font size=2 face="sans-serif">/usr/local/include/vtk/vtkMergeFilter.h:41: error: candidates are: void</font>
<br><font size=2 face="sans-serif"> vtkMergeFilter::SetGeometry(vtkDataSet*)</font>
<br><font size=2 face="sans-serif">/home/nicha/vtkimage/vtkimage.cpp:43: error: no matching function for call to `</font>
<br><font size=2 face="sans-serif"> vtkMergeFilter::SetScalars(vtkImageData*)'</font>
<br><font size=2 face="sans-serif">/usr/local/include/vtk/vtkMergeFilter.h:46: error: candidates are: void</font>
<br><font size=2 face="sans-serif"> vtkMergeFilter::SetScalars(vtkDataSet*)</font>
<br><font size=2 face="sans-serif">make[1]: *** [vtkimage.o] Error 1</font>
<br><font size=2 face="sans-serif">make: *** [default_target] Error 2</font>
<br>
<br><font size=2 face="sans-serif"><end compiler></font>