Is it possible to control the crosshair to only be visible in certain views?

The extension is configured to enable tracking of data at various points in time.
I want to use crosshair according to each point of view. Is there a way to create a crosshair instance as below? If you do this, they all have the same address value.

crosshairNode = slicer.util.getNode("Crosshair")
    crosshairNode.SetCrosshairColor(1.0,0.0,0.0)
    crosshairNode.SetCrosshairMode(slicer.vtkMRMLCrosshairNode.ShowSmallIntersection)
    crosshairNode.SetCrosshairToThick()

    crosshairNode2 = slicer.mrmlScene.AddNewNodeByClass('vtkMRMLCrosshairNode')
    crosshairNode2.SetCrosshairColor(0.0,1.0,0.0)
    crosshairNode2.SetCrosshairMode(slicer.vtkMRMLCrosshairNode.ShowSmallIntersection)
    crosshairNode2.SetCrosshairToThick()

    crosshairNode3 = slicer.mrmlScene.AddNewNodeByClass('vtkMRMLCrosshairNode')
    crosshairNode3.SetCrosshairColor(0.0,0.0,1.0)
    crosshairNode3.SetCrosshairMode(slicer.vtkMRMLCrosshairNode.ShowSmallIntersection)
    crosshairNode3.SetCrosshairToThick()

And I want to make them visible only to certain views.
As shown in the picture below, when there are 9 views, I would like to display only 1 row each. What should I do?

Also, when you hover the mouse over a specific view (Axial View at the top left in the picture above), is there a way to get the name and RAS coordinates of that view?

1 Like

to answer the RAS part of your second question:

you can get the RAS coordinates like so:

crosshairNode=slicer.util.getNode("Crosshair")
ras=[0,0,0]
crosshairNode.GetCursorPositionRAS(ras)

take a look at the script repository, I got this code from here

(but I don’t know how to get the name of the view)