This example creates a polygonal model of a cone, and then renders it to the screen. It will rotate the cone 360 degrees and then exit. The basic setup of source -> mapper -> actor -> renderer -> renderwindow is typical of most VTK programs.

The code was taken from VTK tutorial step 1. I've deleted the comments so you can better compare the code.

 

 

 

C++ code:

 

Tcl code:

#include "vtkConeSource.h"

#include "vtkPolyDataMapper.h"

#include "vtkRenderWindow.h"

#include "vtkCamera.h"

#include "vtkActor.h"

#include "vtkRenderer.h"

 

int main( int argc, char *argv[] )

{

 

vtkConeSource *cone = vtkConeSource::New();

cone->SetHeight( 3.0 );

cone->SetRadius( 1.0 );

cone->SetResolution( 10 );

 

vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();

coneMapper->SetInput( cone->GetOutput() );

 

vtkActor *coneActor = vtkActor::New();

coneActor->SetMapper( coneMapper );

 

vtkRenderer *ren1= vtkRenderer::New();

ren1->AddActor( coneActor );

ren1->SetBackground( 0.1, 0.2, 0.4 );

 

vtkRenderWindow *renWin = vtkRenderWindow::New();

renWin->AddRenderer( ren1 );

renWin->SetSize( 300, 300 );

 

int i;

for (i = 0; i < 360; ++i)

{

renWin->Render();

ren1->GetActiveCamera()->Azimuth( 1 );

}

 

cone->Delete();

coneMapper->Delete();

coneActor->Delete();

ren1->Delete();

renWin->Delete();

 

return 0;

}

package require vtk

 

vtkConeSource cone

cone SetHeight 3.0

cone SetRadius 1.0

cone SetResolution 10

 

vtkPolyDataMapper coneMapper

coneMapper SetInput [cone GetOutput]

 

vtkActor coneActor

coneActor SetMapper coneMapper

 

vtkRenderer ren1

ren1 AddActor coneActor

ren1 SetBackground 0.1 0.2 0.4

 

vtkRenderWindow renWin

renWin AddRenderer ren1

renWin SetSize 300 300

 

for {set i 0} {$i < 360} {incr i} {

after 10

renWin Render

[ren1 GetActiveCamera] Azimuth 1

}

 

vtkCommand DeleteAllObjects

 

exit