(v Vector, f float64)
| 43 | } |
| 44 | |
| 45 | func (s *BooleanShape) Contains(v Vector, f float64) bool { |
| 46 | f = 1e-3 |
| 47 | switch s.Op { |
| 48 | case Intersection: |
| 49 | return s.A.Contains(v, f) && s.B.Contains(v, f) |
| 50 | case Difference: |
| 51 | return s.A.Contains(v, f) && !s.B.Contains(v, -f) |
| 52 | } |
| 53 | return false |
| 54 | } |
| 55 | |
| 56 | func (s *BooleanShape) Intersect(r Ray) Hit { |
| 57 | h1 := s.A.Intersect(r) |