[vtkusers] Getting Data (ID, Position, Normals) from a Volume.
Timo Frenzel
rohlof at gmx.de
Thu Oct 7 12:53:51 EDT 2004
Hi,
i'm trying to handle some pointdata of an image-based volume (like medical
in the vtk-examples) after picking it.
To get the data i created a callback function like pointpicker:
static vtkActor *m_coneActor1;
class vtkMyCallback : public vtkCommand
{
public:
vtkMyCallback::vtkMyCallback() { };
static vtkMyCallback *New() { return new vtkMyCallback; }
public:
virtual void Execute(vtkObject *caller, unsigned long, void*)
{
vtkRenderWindowInteractor *m_iren =
reinterpret_cast<vtkRenderWindowInteractor*>(caller);
vtkPointPicker *m_ppicker = (vtkPointPicker *)m_iren->GetPicker();
if (m_ppicker->GetPointId() != -1)
{
int m_pointID = m_ppicker -> GetPointId();
float m_pointValue[3];
m_ppicker -> GetPickPosition(m_pointValue);
m_coneActor1 ->
SetPosition(m_ppicker->GetPickPosition());
otherclassfunction -> Pick3DPointID(&m_pointID);
otherclassfunction -> Pick3DPointValue(&m_pointValue[0],
&m_pointValue[1], &m_pointValue[2]);
}
}
};
With this code, i get a pointID (pointpicker) and the position. After i left
the callback function the association of the pointID with the coordinates
seems not to be the same.
Cause if i try to re-get the coordinates with this code...
vtkPoints *m_points;
m_points = vtkPoints::New();
m_points -> GetPoint(pointID, p0); //pointID from callback function
....i get a access violation. (debugging shows that the ID is not
allocated.)
is it, cause there are no points defined? are cells defined and how can i
access the pointID and the coordinates like pointpicker do?
thx for help. timo frenzel.
--
+++ GMX DSL Premiumtarife 3 Monate gratis* + WLAN-Router 0,- EUR* +++
Clevere DSL-Nutzer wechseln jetzt zu GMX: http://www.gmx.net/de/go/dsl
More information about the vtkusers
mailing list