3D Axis

M.Schrijver at el.utwente.nl M.Schrijver at el.utwente.nl
Thu Jul 1 07:39:32 EDT 1999


Did you already have a look at the vtkCubeAxisActor2D? It seems to me it
does exactly what you want..... You can try the
contrib/examplesTcl/cubeAxis.tcl demo

Good luck, Marc

ir. Marc Schrijver
Faculty of Electrical Engineering (S&S NT)
University of Twente
The Netherlands

> ----------
> From: 	Steve Boyd[SMTP:boyd at champagne.kin.ucalgary.ca]
> Sent: 	Wednesday, June 30, 1999 10:33 PM
> To: 	VTK
> Subject: 	3D Axis
> 
> 
> Hello,
> 
> I believe a similar question was asked recently, but I don't have the
> response and I'm not sure it would have applied to my question anyway.
> 
> I have an isosurface rendered, and I'd like to put a 'reference' 3D
> axis
> in the corner of the rendering window.  I'd like the axis to be
> labelled
> with simple text X,Y,Z, and not have any units.  When I change the
> camera view of the isosurface by interacting with the mouse, I'd like
> the 3D axis to change accordingly, but remain in the bottom corner of
> the window.  I've been 'playing' with vtkAxis and vtkFollower (to keep
> the XYZ labels oriented properly), but my ad hoc solution seems to be
> getting very complicated for a task that I'd imagine is quite routine
> for many people.  Also, the axis doesn't stay in the corner of the
> window as I'd like it to.  I've included some parts of my code below
> which seems way too long for what it needs to do...
> 
> Can anybody give me a hand or some suggestions?
> 
> Sincerely,
> 
> Steve
> 
> 
> Snippet:
> 
>   // create an axis, and label it.
>     axisScale = 1;
>     axisTScale[0] = axisTScale[1] = axisTScale[2] = axisScale*0.1;
>   vtkAxes *axisObj = vtkAxes::New();
>     axisObj->SetOrigin(0,0,0);
>     axisObj->SetScaleFactor(axisScale);
>   vtkPolyDataMapper *axisMapper = vtkPolyDataMapper::New();
>     axisMapper->SetInput(axisObj->GetOutput());
>   vtkActor *axis = vtkActor::New();
>     axis->SetMapper(axisMapper);
>     axis->PickableOff();
>     axis->SetPosition(lims[0],lims[1],lims[2]);
>     axis->GetProperty()->SetColor(1,1,1);
>     
>   vtkVectorText *textXObj = vtkVectorText::New();
>     textXObj->SetText("X");
>   vtkPolyDataMapper *textXMap = vtkPolyDataMapper::New();
>     textXMap->SetInput(textXObj->GetOutput());
>   vtkFollower *textX = vtkFollower::New();
>     textX->SetMapper(textXMap);
>     textX->SetScale(axisTScale);
>     textX->AddPosition(lims[0]+axisScale,lims[1],lims[2]);
>  
>   vtkVectorText *textYObj = vtkVectorText::New();
>     textYObj->SetText("Y");
>   vtkPolyDataMapper *textYMap = vtkPolyDataMapper::New();
>     textYMap->SetInput(textYObj->GetOutput());
>   vtkFollower *textY = vtkFollower::New();
>     textY->SetMapper(textYMap);
>     textY->SetScale(axisTScale);
>     textY->AddPosition(lims[0],lims[1]+axisScale,lims[2]);
> 
>   vtkVectorText *textZObj = vtkVectorText::New();
>     textZObj->SetText("Z");
>   vtkPolyDataMapper *textZMap = vtkPolyDataMapper::New();
>     textZMap->SetInput(textZObj->GetOutput());
>   vtkFollower *textZ = vtkFollower::New();
>     textZ->SetMapper(textZMap);
>     textZ->SetScale(axisTScale);
>     textZ->AddPosition(lims[0],lims[1],lims[2]+axisScale);
> 
> 
> ----------------------------------------------------------------------
> -------
> This is the private VTK discussion list.  Please keep messages
> on-topic.
> Check the FAQ at: <http://www.automatrix.com/cgi-bin/vtkfaq>
> To UNSUBSCRIBE, send message body containing "unsubscribe vtkusers" to
> <majordomo at gsao.med.ge.com>.  For help, send message body containing
> "info vtkusers" to the same address.     Live long and prosper.
> ----------------------------------------------------------------------
> -------
> 


-----------------------------------------------------------------------------
This is the private VTK discussion list.  Please keep messages on-topic.
Check the FAQ at: <http://www.automatrix.com/cgi-bin/vtkfaq>
To UNSUBSCRIBE, send message body containing "unsubscribe vtkusers" to
<majordomo at gsao.med.ge.com>.  For help, send message body containing
"info vtkusers" to the same address.     Live long and prosper.
-----------------------------------------------------------------------------





More information about the vtkusers mailing list