Monday, June 06, 2005

VTK: Cone and Cylinder

/*another modified simple program. new learned functions are the SetPosition (x,y,z), rendering 2 objects in a window, and usage of keyboards (#include "vtkInteractorStyleTrackballCamera.h")
w-wireframe; s-surface; e-exit; r-reset; p-picks the actor under the mouse pointer
*/

#include "vtkConeSource.h"
#include "vtkCylinderSource.h"
#include "vtkPolyDataMapper.h"
#include "vtkRenderWindow.h"
#include "vtkCamera.h"
#include "vtkActor.h"
#include "vtkRenderer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkProperty.h"
#include "vtkInteractorStyleTrackballCamera.h"

int main( int argc, char *argv[] )
{
vtkConeSource *cone = vtkConeSource::New();
cone->SetHeight( 3.0 );
cone->SetRadius( 1.0 );
cone->SetResolution( 10 );

vtkCylinderSource *cylinder = vtkCylinderSource::New();
cylinder->SetResolution( 20 );

vtkPolyDataMapper *coneMapper = vtkPolyDataMapper::New();
coneMapper->SetInput( cone->GetOutput() );

vtkPolyDataMapper *cylinderMapper = vtkPolyDataMapper::New();
cylinderMapper->SetInput( cylinder->GetOutput() );

vtkActor *coneActor = vtkActor::New();
coneActor->SetMapper( coneMapper );
coneActor->GetProperty()->SetColor(0.2, 0.63, 0.79);
coneActor->GetProperty()->SetDiffuse(0.7);
coneActor->GetProperty()->SetSpecular(0.4);
coneActor->GetProperty()->SetSpecularPower(20);

vtkProperty *property = vtkProperty::New();
property->SetColor(1.0, 0.3822, 0.2784);
property->SetDiffuse(0.7);
property->SetSpecular(0.4);

vtkActor *cylinderActor = vtkActor::New();
cylinderActor->SetMapper( cylinderMapper );
cylinderActor->GetProperty()->SetColor(0.1, 0.1, 0.5);
cylinderActor->SetProperty(property);
cylinderActor->SetPosition(1,1,0);

vtkRenderer *ren1= vtkRenderer::New();
ren1->AddActor( coneActor );
ren1->AddActor( cylinderActor);
ren1->SetBackground( 0.1, 0.2, 0.4 );

vtkRenderWindow *renWin = vtkRenderWindow::New();
renWin->AddRenderer( ren1 );
renWin->SetSize( 600, 300 );

vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
iren->SetRenderWindow(renWin);

vtkInteractorStyleTrackballCamera *style = vtkInteractorStyleTrackballCamera::New();
iren->SetInteractorStyle(style);
ren1->GetActiveCamera()->Zoom(1.5);
renWin->Render();
iren->Initialize();
iren->Start();

cone->Delete();
coneMapper->Delete();
coneActor->Delete();
cylinderActor->Delete();
ren1->Delete();
renWin->Delete();

return 0;
}

Comments:
//this is to remove illumination
//*******************************
vtkActor *coneActor = vtkActor::New();
coneActor->SetMapper( coneMapper );
coneActor->GetProperty()->SetColor(0.2, 0.63, 0.79);
coneActor->GetProperty()->SetDiffuse(0.0);
coneActor->GetProperty()->SetSpecular(0.0);
coneActor->GetProperty()->SetAmbient(1.0);
 
Post a Comment



<< Home

This page is powered by Blogger. Isn't yours?