[vtkusers] vtkFollower as part of a vtkAssembly

franko franko at mixzon.com
Fri Jan 31 13:29:02 EST 2014


Hi all,
I have some text labels that use vtkVectorText and vtkFollower. When I add
the followers to a vtkAssembly, the vtkFollower functionality no longer
works (the label no longer turned to face the camera). There were some very
old vtk-users threads (without solutions) that I saw using Google, but
couldn't find them in vtk-users mailing list archive (were they too old?
2001). I've tried reordering some of the vtk function calls, but I haven't
been able to get the vtkFollower functionality to work.

Here's my code (C++ ActiViz.Net):

	// x-axis Title

	// Create a vector text
	vtkVectorText^ xVectorText = gcnew vtkVectorText();
	xVectorText->SetText(xAxisTitle);

	// Create a mapper
	vtkPolyDataMapperDerived^ xMapper = gcnew vtkPolyDataMapperDerived();
	xMapper->SetInputConnection(xVectorText->GetOutputPort());

	// Create a subclass of vtkActor: a vtkFollower that always faces the
camera
	vtkFollower^ xFollower = gcnew vtkFollower();
	xFollower->SetMapper(xMapper);
	xFollower->AddPosition(x1, y1, z1);
	xFollower->SetScale(textScale);
	xFollower->GetProperty()->SetColor(0, 0, 0);

	//this->corViz->renderer->AddActor(xFollower);
	//xFollower->SetCamera(this->corViz->renderer->GetActiveCamera());

	// y-axis Title

	// Create a vector text
	vtkVectorText^ yVectorText = gcnew vtkVectorText();
	yVectorText->SetText(yAxisTitle);

	// Create a mapper
	vtkPolyDataMapperDerived^ yMapper = gcnew vtkPolyDataMapperDerived();
	yMapper->SetInputConnection(yVectorText->GetOutputPort());

	// Create a subclass of vtkActor: a vtkFollower that always faces the
camera
	vtkFollower^ yFollower = gcnew vtkFollower();
	yFollower->SetMapper(yMapper);
	yFollower->AddPosition(x2, y2, z2);
	yFollower->SetScale(textScale);
	yFollower->GetProperty()->SetColor(0, 0, 0);
	yFollower->RotateZ(90.0);

	// Combine axis titles in a vtkAssembly
	vtkAssembly^ titleAssembly = gcnew vtkAssembly();
	titleAssembly->AddPart(xFollower);
	titleAssembly->AddPart(yFollower);

	xFollower->SetCamera(this->corViz->renderer->GetActiveCamera());
	yFollower->SetCamera(this->corViz->renderer->GetActiveCamera());

	this->corViz->renderer->AddViewProp(titleAssembly);

Thanks,
~Frank




--
View this message in context: http://vtk.1045678.n5.nabble.com/vtkFollower-as-part-of-a-vtkAssembly-tp5725733.html
Sent from the VTK - Users mailing list archive at Nabble.com.


More information about the vtkusers mailing list