StretchyTanks.StretchyConicTank.calcVolumeFactor C# (CSharp) Method

calcVolumeFactor() public method

public calcVolumeFactor ( ) : double
return double
        public override double calcVolumeFactor()
        {
            double volume = 0;
            var pp = new Vector2(radialFactor, 0);
            var slope = new BezierSlope(coneShape);

            for (int i = 1; i <= heightSegments; ++i)
            {
                float v = (float)i / heightSegments;

                Vector2 p;
                if (radialFactor <= topFactor)
                {
                    p = slope.interp(v);
                    p.x = Mathf.Lerp(radialFactor, topFactor, p.x);
                }
                else
                {
                    p = slope.interp(1 - v);
                    p.y = 1 - p.y;
                    p.x = Mathf.Lerp(topFactor, radialFactor, p.x);
                }

                double r = (p.x + pp.x) * 0.5;
                volume += r * r * (p.y - pp.y);

                pp = p;
            }

            return volume * stretchFactor * volMultiplier * utilization / 0.8692f;
        }