diff --git a/OysterPhysics3D/Collision/ICollideable.h b/OysterPhysics3D/Collision/ICollideable.h index 1aa1a195..08b69596 100644 --- a/OysterPhysics3D/Collision/ICollideable.h +++ b/OysterPhysics3D/Collision/ICollideable.h @@ -4,46 +4,36 @@ ///////////////////////////////////////////////////////////////////// #pragma once -#ifndef OYSTER_COLLISION_ICOLLIDEABLE_H -#define OYSTER_COLLISION_ICOLLIDEABLE_H +#ifndef OYSTER_COLLISION_3D_ICOLLIDEABLE_H +#define OYSTER_COLLISION_3D_ICOLLIDEABLE_H -namespace Oyster { namespace Collision +namespace Oyster { namespace Collision3D /// Contains a collection of 3D shapes and intercollission algorithms. { class ICollideable { public: - enum CollisionType + enum Type { - Point, - Ray, - Sphere, - Plane, - Triangle, - BoxAxisAligned, - Box, - Frustrum, - Line + Type_undefined, + Type_universe, + Type_point, + Type_ray, + Type_sphere, + Type_plane, + Type_triangle, + Type_box_axis_aligned, + Type_box, + Type_frustrum, + Type_line }; - enum State - { - Missed = 0, - Contained, - Intersected - }; + const Type type; - ICollideable( CollisionType _type ) : type(_type) {}; - - const CollisionType type; - - virtual ICollideable* clone( ) const = 0; + ICollideable( Type type = Type_undefined ); + virtual ICollideable* clone( ) const = 0; // TODO: use smart unique pointer here virtual bool Intersects( const ICollideable *target ) const = 0; - virtual bool Contains( const ICollideable *target ) const = 0; - - //Not supported returns 0; - virtual State Advanced( const ICollideable *target ) const = 0; }; } } #endif \ No newline at end of file diff --git a/OysterPhysics3D/OysterPhysics3D.vcxproj.filters b/OysterPhysics3D/OysterPhysics3D.vcxproj.filters index b3a3e91d..d9cf01aa 100644 --- a/OysterPhysics3D/OysterPhysics3D.vcxproj.filters +++ b/OysterPhysics3D/OysterPhysics3D.vcxproj.filters @@ -13,69 +13,81 @@ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + {810a1ae3-6c3b-430a-8ebb-4fc4a4478717} + + + {512d69ae-c260-4a23-b1ee-cbfbd19620a6} + + + {67d78b73-6ad3-439e-bfba-817f0268b958} + + + {86be9383-5659-4e32-bf71-ec25a5f1c5ac} + - Source Files + Source Files\Collision - Source Files + Source Files\Collision - Source Files + Source Files\Collision - Source Files + Source Files\Collision - Source Files + Source Files\Collision - Source Files + Source Files\Collision - Source Files + Source Files\Collision - Source Files + Source Files\Collision - Source Files + Source Files\Collision - Header Files + Header Files\Collision - Header Files + Header Files\Collision - Header Files + Header Files\Collision - Header Files + Header Files\Collision - Header Files + Header Files\Collision - Header Files + Header Files\Collision - Header Files + Header Files\Collision - Header Files + Header Files\Collision - Header Files + Header Files\Collision - Header Files + Header Files\Collision - Header Files + Header Files\Collision \ No newline at end of file