using System.Collections.Generic;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Jitter.LinearMath;
using Jitter.Collision;
using Jitter.Collision.Shapes;

namespace KinPortal {
	public enum ShapeType {BOX, SPHERE, TRIANGULATE}

	public static class ShapeFactory {
		public static Shape CreateShape(Model mdl, ShapeType type) {
			Geometry geo = new Geometry(mdl);

			if(type == ShapeType.BOX) {
				BoundingBox box = geo.Box;
				JVector vsize = Geometry.GetJitterVector(box.Max - box.Min);
				return new BoxShape(vsize);
			}

			if(type == ShapeType.SPHERE) {
				return new SphereShape(geo.Sphere.Radius);
			}

			if(type == ShapeType.TRIANGULATE) {
				return new TriangleMeshShape(new Octree(geo.JVertices, geo.JTriangles));
			}

			return null;
		}
	}
}
