@tt_su discussed these methods a bit back in this topic.
From what he wrote I think @eneroth’s interpretation of InputPoint#display? is correct: the display? method is true if the IP’s pick utilized some inference information so it has a tooltip and/or marker it could draw on the view. The return will be false if the IP hasn’t yet done a pick, has been cleared, or the pick didn’t find any inferences.
Per Thomas’s discussion, you need to call the InputPoint#pick method within your Tool’s onMouseMove method and then invalidate the view if you want markers and tooltips drawn dynamically by your Tool when the user moves the cursor.
InputPoint#valid? is true if InputPoint#pick has been called and found some geometry in the model. Like InputPoint#display? it is false if the IP has not yet done a pick or has been cleared. But it pertains to the picked geometry, whereas display? pertains to inference data; they are not equivalent.
I think InputPoint#pick always makes an IP valid. If there is no geometry at the pick location in the view, only the position attribute will be non-nil, and it will be a point on the preferred base plane of the current view (default xy, but can be other if you have orbited?)
The Ruby API documentation has been gradually improving, but still has a ways to go! It used to be packed full of this sort of lazy nonsense, causing extension developers to waste a lot of time experimenting to find out what methods really do.
There are github repositories where one is supposed to be able to submit API and documentation issues, but the one explicitly labelled that way seems to have been abandoned/frozen about 18 months ago and I don’t understand how to submit issues on the other ones. Perhaps @tt_su or @DanRathbun can clarify which to use and the process to submit requests for changes?