X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2Fmoof%2Fshape.hh;fp=src%2FMoof%2FShape.hh;h=7f975032fb6b103dd9d044d3e122696ca2a09eed;hp=d21e84d464d8f3c4cca0788d76e2c167b8a11ced;hb=831f04d4bc19a390415ac0bbac4331c7a65509bc;hpb=299af4f2047e767e5d79501c26444473bda64c64 diff --git a/src/Moof/Shape.hh b/src/moof/shape.hh similarity index 50% rename from src/Moof/Shape.hh rename to src/moof/shape.hh index d21e84d..7f97503 100644 --- a/src/Moof/Shape.hh +++ b/src/moof/shape.hh @@ -12,39 +12,44 @@ #ifndef _MOOF_SHAPE_HH_ #define _MOOF_SHAPE_HH_ -#include -#include -#include -#include - - -// Frustum -// Plane (can construct from Triangle3) -// Ray -// Shape<> -// +- Line<> -// - Line2 Line<2> -// - Line3 Line<3> -// +- Sphere<> -// | Sphere2, Circle Sphere<2> -// | Sphere3 Sphere<3> -// +- Aabb<> -// | Aabb2, Rectangle Aabb<2> -// | Aabb3 Aabb<3> -// +- Polygon<> -// | Triangle2 Polygon<2,3> -// | Triangle3 Polygon<3,3> - - -namespace Mf { +/** + * \file shape.hh + * Declares an interface for shapes. + */ + +#include +#include +#include +#include + + +// frustum +// plane (can construct from triangle2) +// ray +// shape<> +// +- line<> +// - line2 line<2> +// - line3 line<3> +// +- sphere<> +// | sphere2, circle sphere<2> +// | sphere3 sphere<3> +// +- aabb<> +// | aabb2, rectangle aabb<2> +// | aabb3 aabb<3> +// +- polygon<> +// | triangle2 polygon<2,3> +// | triangle3 polygon<3,3> + + +namespace moof { template -class Shape +class shape { public: - virtual ~Shape() {} + virtual ~shape() {} /** * Checks if this shape is intersected by a given ray. If so, returns @@ -52,19 +57,19 @@ public: * about the contact via the 2nd parameter. A negative value is * returned if there is no contact. */ - virtual bool intersectRay(const Ray& ray, - typename Ray::Contact& hit) const + virtual bool intersect_ray(const ray& ray, + typename ray::contact& hit) const { return false; } }; -typedef Shape<2> Shape2; -typedef Shape<3> Shape3; +typedef shape<2> shape2; +typedef shape<3> shape3; -} // namespace Mf +} // namespace moof #endif // _MOOF_SHAPE_HH_