Hi everyone!
I´d like to get the normal vector of a model surface at a marked point with a fiducial.
Is there any example in the script repository for this task?
Thanks on advance…
Hi everyone!
I´d like to get the normal vector of a model surface at a marked point with a fiducial.
Is there any example in the script repository for this task?
Thanks on advance…
Here is the code:
fiducial = getNode('F')
model = getNode('Model')
point = [0,0,0]
fiducial.GetNthFiducialPosition(0,point)
normalsOfModel = slicer.util.arrayFromModelPointData(model, 'Normals')
modelMesh = model.GetMesh()
pointID = modelMesh.FindPoint(point)
normalAtPointID = normalsOfModel[pointID]
It gives the normal of the nearest-model-point to the fiducial-point
It gives me some kind of problem @mau_igna_06 :
AppData\Local\NA-MIC\Slicer 4.13.0-2021-02-16\bin\Python\slicer\util.py", line 1505, in _vtkArrayFromModelData
location, arrayName, “', '”.join(availableArrayNames)))
ValueError: Input modelNode does not contain point data array ‘Normals’. Available array names: ‘RegionId’
It look like modelNode hasn´t normals info…
You can compute normals using Surface Toolbox module.