104 lines
1.5 KiB
C++
104 lines
1.5 KiB
C++
#include "geotypes.h"
|
|
|
|
namespace segl {
|
|
|
|
Sphere::Sphere(Punkt3D _pos, float _radius) {
|
|
pos = _pos;
|
|
radius = _radius;
|
|
}
|
|
|
|
Sphere::Sphere() {
|
|
radius = 1.0f;
|
|
}
|
|
|
|
bool Sphere::collision(const Sphere &s) {
|
|
|
|
}
|
|
|
|
bool Sphere::collision(const Ray &r) {
|
|
|
|
}
|
|
|
|
bool Sphere::collision(const Box & b) {
|
|
|
|
}
|
|
|
|
bool Sphere::collision(const Plane &p) {
|
|
|
|
}
|
|
|
|
Ray::Ray() {
|
|
dir.set(0.0f, 1.0f, 0.0f);
|
|
}
|
|
|
|
Ray::Ray(Punkt3D _pos, Punkt3D _dir) {
|
|
pos = _pos;
|
|
dir = _dir;
|
|
}
|
|
|
|
bool Ray::collision(const Sphere &s) {
|
|
return s.collision(*this);
|
|
}
|
|
|
|
bool Ray::collision(const Ray &r);
|
|
bool Ray::collision(const Box & b);
|
|
bool Ray::collision(const Plane &p);
|
|
|
|
Box::Box() {
|
|
max.set(1.0f, 1.0f, 1.0f);
|
|
}
|
|
|
|
Box::Box(Punkt3D _min, Punkt3D _max) {
|
|
min = _min;
|
|
max = _max;
|
|
}
|
|
|
|
bool Box::collision(const Sphere &s) {
|
|
return s.collision(*this);
|
|
}
|
|
|
|
bool Box::collision(const Ray &r) {
|
|
return r.collision(*this);
|
|
}
|
|
|
|
bool Box::collision(const Box & b) {
|
|
|
|
}
|
|
|
|
bool Box::collision(const Plane &p) {
|
|
|
|
}
|
|
|
|
Plane::Plane() {
|
|
norm.set(0.0f, 1.0f, 0.0f);
|
|
}
|
|
|
|
Plane::Plane(Punkt3D _pos, Punkt3D _norm) {
|
|
pos = _pos;
|
|
norm = _norm;
|
|
}
|
|
|
|
Plane::Plane(float x, float y, float z, float a) {
|
|
// TODO: Implementation (if not too lazy)
|
|
norm.set(x, y, z);
|
|
norm.normalize();
|
|
}
|
|
|
|
bool Plane::collision(const Sphere &s) {
|
|
return s.collision(*this);
|
|
}
|
|
|
|
bool Plane::collision(const Ray &r) {
|
|
return r.collision(*this);
|
|
}
|
|
|
|
bool Plane::collision(const Box & b) {
|
|
return b.collision(*this);
|
|
}
|
|
|
|
bool Plane::collision(const Plane &p) {
|
|
|
|
}
|
|
|
|
} // namespace segl
|