[vtkusers] Drawing cubes in vtk

frency v frencyvarghese at yahoo.com
Thu Aug 13 09:45:03 EDT 2009


Hello everyone,
I am also trying to draw not one cube but  more than 100 cubes.I was going through  questions on vtk user list on drawing cubes. I found one code to draw one cube.   I tried the example i found online but using tht i cud draw only one. Can someone pls help me in this? Also, can the dimensions of the cube be changed? If yes, how?
What defines the dimensions of the cube in this code i am sending along with this mail.
Regards
Frency
here is the code
int v1,v2, v3,  //* are the vertices of the n cubes i want to draw.
float x[8][3] = { {v1,v2,v3},  {v1+1,v2,v3}, {v1+1,v2+1,v3},  {v1,v2+1,v3},
{v1,v2,v3+1},  {v1+1,v2,v3+1},  {v1+1,v2+1,v3+1},  {v1,v2+1,v3+1} };

vtkIdType pts[6][4] = { {0,3,2,1},{2,3,7,6},{0,4,7,3},{1,2,6,5},{4,5,6,7},{0,1,5,4} };
  vtkPolyData * cube = vtkPolyData::New();

       int i ;
for(i = 0;i < 8 ;++i) points->InsertPoint(i,x[i]);
for(i = 0;i < 6 ;++i) polys->InsertNextCell(4,pts[i]);
for(i = 0;i < 8 ;++i) scalars->InsertTuple1(i,i);
   cube->SetPoints(points);
cube->SetPolys(polys);
cube->GetPointData()->SetScalars(scalars);
             vtkPolyDataMapper*  colorcubeMapper = vtkPolyDataMapper::New();
//colorcubeMapper->SetInputConnection(colorcube->GetOutputPort());
colorcubeMapper->SetInput(cube);
colorcubeMapper->ScalarVisibilityOn();
// colorcubeMapper->SetScalarModeToUsePointData();
//colorcubeMapper->SetLookupTable(lut);
       vtkActor*   colorcubeActor = vtkActor::New();
    colorcubeActor->SetMapper(colorcubeMapper);
       vtkCamera *camera = vtkCamera::New();
camera->SetPosition(1,1,1);
camera->SetFocalPoint(0,0,0);


vtkRenderer* ren1 = vtkRenderer::New();
vtkRenderWindow* renWin = vtkRenderWindow::New();
    renWin->AddRenderer(ren1);
vtkRenderWindowInteractor* iren = vtkRenderWindowInteractor::New();
    iren->SetRenderWindow(renWin);
       ren1->AddActor(colorcubeActor);
ren1->SetActiveCamera(camera);
ren1->ResetCamera();

ren1->SetBackground(1,1,1);patrikspring at yahoo.com.cn
renWin->SetSize(300,300);
renWin->Render();
       iren->Initialize();
iren->Start();
       points->Delete();
polys->Delete();
scalars->Delete();


return 0;


      



More information about the vtkusers mailing list