projects
/
laserbrain_demo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
missing include
[laserbrain_demo]
/
src
/
geom.h
diff --git
a/src/geom.h
b/src/geom.h
index
f28f878
..
5db1996
100644
(file)
--- a/
src/geom.h
+++ b/
src/geom.h
@@
-12,7
+12,8
@@
enum GeomObjectType {
GOBJ_SPHERE,
GOBJ_AABOX,
GOBJ_BOX,
GOBJ_SPHERE,
GOBJ_AABOX,
GOBJ_BOX,
- GOBJ_PLANE
+ GOBJ_PLANE,
+ GOBJ_DISC
};
class GeomObject;
};
class GeomObject;
@@
-33,6
+34,9
@@
public:
GeomObject();
virtual ~GeomObject();
GeomObject();
virtual ~GeomObject();
+ virtual bool valid() const;
+ virtual void invalidate();
+
virtual bool intersect(const Ray &ray, HitPoint *hit = 0) const = 0;
virtual bool contains(const Vec3 &pt) const = 0;
virtual bool intersect(const Ray &ray, HitPoint *hit = 0) const = 0;
virtual bool contains(const Vec3 &pt) const = 0;
@@
-48,6
+52,9
@@
public:
Sphere();
Sphere(const Vec3 ¢er, float radius);
Sphere();
Sphere(const Vec3 ¢er, float radius);
+ virtual bool valid() const;
+ virtual void invalidate();
+
virtual bool intersect(const Ray &ray, HitPoint *hit = 0) const;
virtual bool contains(const Vec3 &pt) const;
virtual bool intersect(const Ray &ray, HitPoint *hit = 0) const;
virtual bool contains(const Vec3 &pt) const;
@@
-62,6
+69,9
@@
public:
AABox();
AABox(const Vec3 &min, const Vec3 &max);
AABox();
AABox(const Vec3 &min, const Vec3 &max);
+ virtual bool valid() const;
+ virtual void invalidate();
+
virtual Vec3 get_corner(int idx) const;
virtual bool intersect(const Ray &ray, HitPoint *hit = 0) const;
virtual Vec3 get_corner(int idx) const;
virtual bool intersect(const Ray &ray, HitPoint *hit = 0) const;
@@
-82,6
+92,8
@@
public:
Box(const Vec3 &pos, const Vec3 &vi, const Vec3 &vj, const Vec3 &vk);
Box(const Vec3 *varr, int vcount);
Box(const Vec3 &pos, const Vec3 &vi, const Vec3 &vj, const Vec3 &vk);
Box(const Vec3 *varr, int vcount);
+ virtual void invalidate();
+
virtual Vec3 get_corner(int idx) const;
virtual bool intersect(const Ray &ray, HitPoint *hit = 0) const;
virtual Vec3 get_corner(int idx) const;
virtual bool intersect(const Ray &ray, HitPoint *hit = 0) const;
@@
-116,6
+128,9
@@
public:
Disc(const Vec3 &pt, const Vec3 &normal, float rad);
Disc(const Vec3 &normal, float dist, float rad);
Disc(const Vec3 &pt, const Vec3 &normal, float rad);
Disc(const Vec3 &normal, float dist, float rad);
+ virtual bool valid() const;
+ virtual void invalidate();
+
virtual bool intersect(const Ray &ray, HitPoint *hit = 0) const;
//! true if the projection of pt to the plane is contained within the disc radius
virtual bool contains(const Vec3 &pt) const;
virtual bool intersect(const Ray &ray, HitPoint *hit = 0) const;
//! true if the projection of pt to the plane is contained within the disc radius
virtual bool contains(const Vec3 &pt) const;