Exemple #1
0
        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;
        }
Exemple #2
0
        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));
        }