(ray Ray)
| 35 | } |
| 36 | |
| 37 | func (f *Function) Intersect(ray Ray) Hit { |
| 38 | step := 1.0 / 64 |
| 39 | sign := f.Contains(ray.Position(step), 0) |
| 40 | for t := step; t < 10; t += step { |
| 41 | v := ray.Position(t) |
| 42 | if f.Contains(v, 0) != sign && f.Box.Contains(v) { |
| 43 | return Hit{f, t} |
| 44 | } |
| 45 | } |
| 46 | return NoHit |
| 47 | } |
| 48 | |
| 49 | func (f *Function) Paths3() Paths { |
| 50 | var path Path |