eqemu

view src/bvol.h @ 12:2656099aff12

added copyright notices and license
author John Tsiombikas <nuclear@member.fsf.org>
date Fri, 18 Jul 2014 07:04:21 +0300
parents 3d3656360a82
children
line source
1 /*
2 eqemu - electronic queue system emulator
3 Copyright (C) 2014 John Tsiombikas <nuclear@member.fsf.org>,
4 Eleni-Maria Stea <eleni@mutantstargoat.com>
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19 #ifndef BVOL_H_
20 #define BVOL_H_
22 #include "vmath.h"
24 struct HitPoint {
25 float t;
26 Vector3 pos;
27 };
29 class BVolume {
30 public:
31 virtual ~BVolume() {}
33 virtual bool intersect(const Ray &ray, HitPoint *hit) const = 0;
34 };
36 class BSphere : public BVolume {
37 private:
38 Vector3 center;
39 float radius;
41 public:
42 BSphere();
43 explicit BSphere(const Vector3 &c, float rad = 1.0);
45 void set_center(const Vector3 &center);
46 const Vector3 &get_center() const;
48 void set_radius(float rad);
49 float get_radius() const;
51 bool intersect(const Ray &ray, HitPoint *hit) const;
52 };
54 #endif // BVOL_H_