15
19
* along with this program. If not, see <http://www.gnu.org/licenses/>.
18
#ifndef __PEEKABOT_RENDERER_FRUSTUM_HH
19
#define __PEEKABOT_RENDERER_FRUSTUM_HH
22
#ifndef PEEKABOT_RENDERER_FRUSTUM_HH_INCLUDED
23
#define PEEKABOT_RENDERER_FRUSTUM_HH_INCLUDED
22
26
#include "../Types.hh"
52
Frustum(const primitives::Camera &cam, float w_slack = 0, float h_slack = 0);
53
Frustum(const Camera &cam, float w_slack = 0, float h_slack = 0);
54
55
inline const Plane &operator[](size_t i) const
64
65
IntersectionTestResult is_in_frustum(
65
const BoundingSphere& bsphere, int &plane_mask) throw();
66
const BoundingSphere& bsphere, int &plane_mask) const throw();
67
68
IntersectionTestResult is_in_frustum(
68
const BoundingSphere& bsphere) throw();
70
IntersectionTestResult is_in_uncapped_frustum(
71
const BoundingSphere& bsphere) throw();
73
IntersectionTestResult is_in_uncapped_frustum(
74
const BoundingSphere& bsphere, int &plane_mask) throw();
69
const BoundingSphere& bsphere) const throw();
71
IntersectionTestResult is_in_uncapped_frustum(
72
const BoundingSphere& bsphere) const throw();
74
IntersectionTestResult is_in_uncapped_frustum(
75
const BoundingSphere& bsphere, int &plane_mask) const throw();
77
78
void calculate_frustum_bsphere(
78
const primitives::Camera &cam, float w_slack, float h_slack) throw();
79
const Camera &cam, float w_slack, float h_slack) throw();
80
81
void calculate_frustum_planes(
81
const primitives::Camera &cam, float w_slack, float h_slack) throw();
82
const Camera &cam, float w_slack, float h_slack) throw();