[vtkusers] how can I scale a vtkActor2D?
Liang Ma
leo at esit.com
Wed Nov 26 10:01:11 EST 2008
Sorry, the code is not clear, resend them.
// remove old actors
this->pvtkRenderer->RemoveActor(this->pvtkActor);
this->pvtkRenderer->RemoveActor(this->pvtkActor2D);
// read new data of 3D model from a STL file
if (!this->pvtkSTLReader)
this->pvtkSTLReader = vtkSTLReader::New();
this->pvtkSTLReader->SetFileName(cFileDialog.GetPathName());
//Cut the 3D model
m_VTKPD_data = pvtkSTLReader->GetOutput();
m_VTKPD_data->Update();
m_dOrigin1 = m_VTKPD_data->GetCenter();
this->cplane->SetOrigin(m_dOrigin1[0], m_dOrigin1[1], m_dOrigin1[2]);
float normal_x = 0;
float normal_y = 0;
float normal_z = 1;
cplane->SetNormal(normal_x, normal_y, normal_z);
planeCut->SetInput(m_VTKPD_data);
planeCut->SetCutFunction(cplane);
// Setmapper
this->pvtkDataSetMapper->SetInput(planeCut->GetOutput());
this->pvtkActor->SetMapper(this->pvtkDataSetMapper);
// Try to scale the 2D actor
this->pvtkActor->GetPositionCoordinate()->SetCoordinateSystemToNormalizedViewport(); this->pvtkActor->GetPositionCoordinate()->SetValue(0.3, 0.5); this->pvtkActor->GetPosition2Coordinate()->SetValue(0.9, 0.9); this->pvtkActor->GetProperty()->SetColor(1, 0, 0);// Add the txt of thefile name this->pvtkTextMapper->SetInput(pvtkSTLReader->GetFileName()); this->pvtkTextMapper->GetTextProperty()->SetFontSize(12); this->pvtkActor2D->SetMapper(this->pvtkTextMapper);// Set background and add actors to render this->pvtkRenderer->SetBackground(0.4,0.4,0.4); this->pvtkRenderer->AddActor(this->pvtkActor); this->pvtkRenderer->AddActor(this->pvtkActor2D);// try to zoom, then render this->pvtkRenderer->GetActiveCamera()->Zoom(5); this->pvtkRenderer->GetRenderWindow()->Render();
More information about the vtkusers
mailing list