void Recenter(out Vector3 center)
{
//When first constructed, a wrapped shape may not actually be centered on its local origin.
//It is helpful to many systems if this is addressed.
center = ComputeCenter();
for (int i = 0; i < shapes.Count; i++)
{
shapes.WrappedList.Elements[i].Transform.Position -= center;
}
}