How to get the position and angle of the crosshair?

How to get the position and angle of the crosshair?

I try to crosshair = slicer.util.getNode('Crosshair')
and print(crosshair),get those :

vtkMRMLCrosshairNode (0x7fea623dbca0)
  ID: vtkMRMLCrosshairNodedefault
  ClassName: vtkMRMLCrosshairNode
  Name: Crosshair
  Debug: false
  MTime: 17590155
  Description: (none)
  SingletonTag: default
  HideFromEditors: true
  Selectable: true
  Selected: false
  UndoEnabled: false
  CrosshairMode: NoCrosshair
  CrosshairBehavior: CenteredJumpSlice
  CrosshairThickness: Thick
  CrosshairRAS: [-3.89054, -24.6428, 202.575]
  FastPick3D: false

There is no information about angle…

@lassoan@Juicy@jamesobutler @jcfr @pieper

这个似乎不是crosshair的问题…应该是返回"the orthogonal nodes around the common intersection point"的位置和角度问题…
我用 sliceToRAS = slicer.mrmlScene.GetNodeByID(sliceNodeId).GetSliceToRAS()得到了4x4martix, 怎么能够利用该变量, Set the slice to ras呢?

This does not seem to be a crosshair problem… It should be a problem of the position and angle of returning “the orthogonal nodes around the common intersection point”… I used sliceToRAS = slicer.mrmlScene.GetNodeByID(sliceNodeId).GetSliceToRAS() to get 4x4martix, how can I use this Variables, howto Set the slice to ras?

The crosshair only stores position and the current core node ID. If you current view is a slice node then you can get the orientation of that slice from the SliceToRAS matrix.

What are you trying to achieve?

I tried to get the slicenormal form def getPlaneIntersectionPoint, and then Set slice position and orientation from a normal vector and position.
but I haven’t got the slicenormal yet…do you help me?

Slice normal is the third column of the SliceToRAS matrix.

yes, I’ve got sliceposition and slicenormal from the def getPlaneIntersectionPoint through return x,n1,n2,n3, and then Set slice position and orientation from a normal vector and position.

谢谢老师