public interface ISceneProbeEverything a viewport asks about the geometry in front of it.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
ISurfaceProbe plus the two questions a drag asks. A drop needs "what is under this ray" and nothing more, which is why the narrow interface exists and stays. A drag needs the same question with the thing being dragged taken out of the answer, and it needs "which vertex is nearest the pointer" — and both of those are useless without the exclusion, because the pointer is over the object being moved for the whole of every drag.
An interface rather than a type for the reason IScenePicker is one: the viewport asks and something else knows the scene, so a test can answer with three stubbed hits and no world.
Methods (3)
bool Raycast(Ray ray, IReadOnlyList<Entity> ignore, out SurfaceHit hit)Casts a ray, ignoring some entities.
bool TryNearestVertex(Vector2 pointer, EditorCamera camera, int width, int height, float radius, IReadOnlyList<Entity> ignore, out Vector3 position)The vertex nearest the pointer, within a radius measured on screen.
bool TrySnap(Ray ray, Vector2 pointer, EditorCamera camera, int width, int height, SnapContext snap, Vector3 origin, IReadOnlyList<Entity> ignore, out SnapHit hit)Where a snap lands, given everything a SnapContext says about it.
Used by (3)
- EditorApplicationVixen.Editor.App
- SceneProbeVixen.Editor.SceneView
- SceneViewportVixen.Editor.SceneView