You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
1.5 KiB
104 lines
1.5 KiB
16 years ago
|
#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
|