[vtkusers] (no subject)
dean.inglis at camris.ca
dean.inglis at camris.ca
Tue Dec 9 20:03:21 EST 2003
Hi Thomas,
try code below...no need to add a callback to the mouse, add
it to the widget.
Dean
// Callback for the cursoring interaction
class vtkSliceCallback : public vtkCommand
{
public:
static vtkSliceCallback *New()
{ return new vtkSliceCallback; }
virtual void Execute(vtkObject *caller, unsigned long, void* )
{
vtkImagePlaneWidget *self = reinterpret_cast<vtkImagePlaneWidget*>(caller);
self->GetWindowLevel(wl);
if ( self->GetCursorData(xyzv) )
{
sprintf(buff,"( %3d, %3d, %3d ) = %d",
static_cast<int>(xyzv[0]),
static_cast<int>(xyzv[1]),
static_cast<int>(xyzv[2]),
static_cast<int>(xyzv[3]));
}
else
{
sprintf(buff,"%s","Cross hairs off");
}
Status->Panels->Items[0]->Text = buff;
sprintf(buff,"W/L = %.1f, %.1f",wl[0],wl[1]);
Status->Panels->Items[1]->Text = buff;
Status->Update();
}
vtkSliceCallback():Status(0){};
TStatusBar *Status; // a Borland VCL component
private:
float xyzv[4];
float wl[2];
char buff[256];
};
<in initialization>
m_planeWidgetX = vtkImagePlaneWidget::New();
//
// do some initializing of the widget ...
//
vtkSliceCallback* m_slicecb = vtkSliceCallback::New();
m_slicecb->Status = StatusBar;
m_planeWidgetX->AddObserver(vtkCommand::InteractionEvent,m_slicecb);
m_slicecb->Delete();
<snip>
More information about the vtkusers
mailing list