internal void Trace( Ray WorldRay, ShapeHitCollection ShapeHits, SimpleGeometryHitCollection GeometryHits, List<ObjectHit> ObjectHits ) { Debug.Assert( ShapeHits != null ); Debug.Assert( GeometryHits != null ); Debug.Assert( ObjectHits != null ); ObjectHits.Clear(); GeometryHits.Clear(); ShapeHits.Clear(); SceneTracer Tracer = new SceneTracer( ShapeHits, GeometryHits, ObjectHits ); Trace( WorldRay, Tracer ); }
protected abstract void Trace( Ray WorldRay, SceneTracer Tracer );
protected override void Trace( Ray WorldRay, SceneTracer Tracer ) { Tracer.Trace( Objects, WorldRay ); }