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