00001
00002
00003
00004
00005
00006 #ifndef RC_VOLUME_H
00007 #define RC_VOLUME_H
00008
00009 class AABox;
00010 class Sphere;
00011
00015 class Volume {
00016
00017 public:
00018
00019 virtual f32 volume() = 0;
00020
00021 virtual bool encloses(
00022 vec3f *point
00023 ) = 0;
00024
00025 virtual bool intersect(
00026 Ray *ray
00027 ) = 0;
00028
00029 virtual bool intersect(
00030 Ray *ray,
00031 f32 *dist
00032 ) = 0;
00033
00034 virtual bool intersect(
00035 AABox *aabox
00036 ) = 0;
00037
00038 virtual bool intersect(
00039 Sphere *sphere
00040 ) = 0;
00041
00042 virtual void calculateBounds(
00043 VertexArray *vertexArray,
00044 f32 overCompensate
00045 ) = 0;
00046
00047 };
00048
00049 #endif
00050