/* nEngine Emmanuel Julien 2000-2010 All Rights Reserved http://www.gamestart3d.com Please refer to the included license.txt for license informations. */ #ifndef __NSHAPECONVEX__ #define __NSHAPECONVEX__ #include "shape/shape.h" #include "container/narray.h" /*! @short Convex shape class. @author Emmanuel Julien (ejulien@gsworks.fr) */ struct nConvexShape : public nShape { Vector4 center; nArray vtx; virtual Vector4 &GetCenter() const { return center; } virtual float GetSupportDistance(const Vector4 &d) const { if (!vtx.GetCount()) return 0; float d = vtx[0].Dot(d); for (uint n = 1; n < vtx.GetCount(); ++n) { float _d = vtx[n].Dot(d); if (_d > d) d = _d; } return d; } nConvexShape(const Vector4 &c, const nArray &v) { center = c; vtx.Clone(v); } nConvexShape() { center.Set(0, 0, 0); } }; #endif // __NSHAPECONVEX__