Rev | Line | |
---|
[896] | 1 | #pragma once
|
---|
| 2 |
|
---|
| 3 | #include "Vector.hpp"
|
---|
| 4 | #include "Intersectable.hpp"
|
---|
| 5 |
|
---|
| 6 | class Occluder : public Intersectable
|
---|
| 7 | {
|
---|
| 8 | public:
|
---|
| 9 | Vector centre;
|
---|
| 10 | float solidRadius;
|
---|
| 11 | Intersectable* owner;
|
---|
| 12 | Occluder(){}
|
---|
| 13 | Occluder(const Vector& centre, const float hardRadius);
|
---|
| 14 | ~Occluder(void);
|
---|
| 15 |
|
---|
| 16 | float cosAngle;
|
---|
| 17 | Vector dirToCentre;
|
---|
| 18 | float distance;
|
---|
| 19 | bool intersect(const Ray& ray, float& depth, float rayMin, float rayMax) |
---|
| 20 | { |
---|
| 21 | lastTestedRayId = ray.id; |
---|
| 22 | register bool boo = (distance < rayMax) && (ray.dir * dirToCentre < cosAngle); |
---|
| 23 | lastTestedRayResult.isIntersect = boo; |
---|
| 24 | lastTestedRayResult.depth = distance; |
---|
| 25 | return boo; |
---|
| 26 | } |
---|
| 27 | bool intersectBackSide(const Ray& ray, float& depth, float rayMin, float rayMax) {return false;}
|
---|
| 28 | void setupBBox();
|
---|
| 29 | };
|
---|
Note: See
TracBrowser
for help on using the repository browser.