private void setMidPlane()
        {
            List <Point3d> facePts = new List <Point3d>();

            //plane normals follow caveface
            foreach (Point3d p in caveFace.Vertices)
            {
                facePts.Add(p);
            }
            foreach (Vector3d mf in caveFace.FaceNormals)
            {
                toOutside += mf;
            }

            Point3d planeOrigin = MeshTools.averagePoint(facePts);

            toOutside.Unitize();
            Plane.FitPlaneToPoints(facePts, out midPlane);
            midPlane.Origin = planeOrigin;
            if (Vector3d.VectorAngle(midPlane.Normal, toOutside) > Math.PI / 2)
            {
                midPlane.Flip();
            }
        }