IVtkTools_ShapePicker::pick always return 0

Hi everyone!

I'm using opencascade to load a step file, then display it with VTK, and now I need to be able to select part on the step file but it doesn't work the way I'd like to...
I don't know what am I doing wrong, so I need your help :)

I use OpenCascade 7.7.0 and VTK 9.2.6

So, first I load the step file:

	 STEPCAFControl_Reader cafReader;
	 cafReader.SetColorMode(true);
	 IFSelect_ReturnStatus error = cafReader.ReadFile("myFile.step");

	 STEPControl_Reader stepReader = cafReader.Reader();

	 if (error != IFSelect_RetDone)
		  return -1;

	 stepReader.TransferRoots();

	 TopoDS_Shape oShape = stepReader.OneShape();

	 if (oShape.IsNull())
		  return -1;

	 vtkNew<IVtkTools_ShapeDataSource> occSource;
	 occSource->SetShape(new IVtkOCC_Shape(oShape));

Then I create a mapper and an actor:

	 vtkNew<vtkPolyDataMapper> mapper;
	 mapper->SetInputConnection(occSource->GetOutputPort());
	 mapper->ScalarVisibilityOff();

	 vtkNew<vtkActor> actor;
	 actor->GetProperty()->SetPointSize(5);
	 actor->GetProperty()->SetDiffuseColor(colors->GetColor3d("SeaGreen").GetData());
	 actor->GetProperty()->EdgeVisibilityOn();
	 actor->SetMapper(mapper);

Then I had my actor to my render view.
Here everything seems to be ok: I have my step file displayed on my view.

I've tried to add my picker:

	 // vtkRenderWindow* renderWindow = get my render window
	 vtkNew<StepElementPicker> picker;
	 picker->Init(renderWindow->GetRenderers()->GetFirstRenderer(), occSource);
	 vtkRenderWindowInteractor* renderWindowInteractor = renderWindow->GetInteractor();
	 renderWindowInteractor->SetInteractorStyle(picker);

In my class StepElementPicker inherit from vtkInteractorStyleTrackballCamera I have my init function :

	void Init(vtkRenderer* renderer, IVtkTools_ShapeDataSource* sDS)
	{
		vtkInteractorStyleTrackballCamera::SetDefaultRenderer(renderer);
		m_DS = sDS;
	}

I overload the void vtkInteractorStyleTrackballCamera::OnLeftButtonDown() :

	void OnLeftButtonDown() override
	{
		// Get the location of the click (in window coordinates)
		int* pos = this->GetInteractor()->GetEventPosition();

		std::cout << "Pick position : " << pos[0] << "; " << pos[1] << std::endl;

		vtkNew<IVtkTools_ShapePicker> picker;
		picker->SetRenderer(this->GetDefaultRenderer());
		picker->SetTolerance(0.0005);
		picker->SetSelectionMode(SM_Edge);

		// Pick from this location.
		int nb = picker->Pick(pos[0], pos[1], 0);

		IVtk_ShapeIdList ids = picker->GetPickedShapesIds(true);
		std::cout << "ids.Size: " << ids.Size() << std::endl;
	}

In this function my picker (picker->Pick(pos[0], pos[1], 0)) always return 0 and the ids.Size() always return 0 so I cannot get anything from my picker.

Thank you all for any replies and suggestions!

Best regards.