void FillResult1(ref Vector3 p1, ref Vector3 p2, ref Vector3 p3, ref BuoyancyResult result) { Vector3 center = (1f / 3f) * (p1 + p2 + p3); Vector3 normal = Vector3.Cross(p2 - p1, p3 - p1); float area = normal.magnitude / 2f; normal.Normalize(); result.origin1 = center; result.force1 = -rho * gravity * -GetHeight(center) * area * normal; }
void FillResult0(ref Vector3 p1, ref Vector3 p2, ref Vector3 p3, ref BuoyancyResult result) { Vector3 center = (1f / 3f) * (p1 + p2 + p3); Vector3 normal = Vector3.Cross(p2 - p1, p3 - p1); float area = normal.magnitude / 2f; normal.Normalize(); result.origin0 = center; result.force0 = -rho * gravity * -GetHeight(center) * area * normal; // Debug.Log(string.Format("area={0}", area)); }