--- /dev/null
+
+/*] Copyright (c) 2009-2010, Charles McGarvey [**************************
+**] All rights reserved.
+*
+* vi:ts=4 sw=4 tw=75
+*
+* Distributable under the terms and conditions of the 2-clause BSD license;
+* see the file COPYING for a complete text of the license.
+*
+**************************************************************************/
+
+#ifndef _MOOF_CONTACT_HH_
+#define _MOOF_CONTACT_HH_
+
+/**
+ * \file contact.hh
+ * Represents a collision between entities.
+ */
+
+#include <moof/math.hh>
+
+
+namespace moof {
+
+
+template <int D = 3>
+struct contact
+{
+ typedef moof::vector< scalar, fixed<D> > vector;
+
+ vector point; // point of contact
+ scalar distance; // distance of penetration
+ vector normal; // normal of surface at point of contact
+
+ bool operator < (const contact& rhs)
+ {
+ return distance < rhs.distance;
+ }
+};
+
+
+} // namespace moof
+
+#endif // _MOOF_CONTACT_HH_
+