public static EfetivnaSirinaTPresekaV2 CreateEfetivnaSirinaTPreseka(
            double b_full,
            PolozajTpreseka polozaj,
            double l_1,
            double l_2 = 0,
            double b_0 = 0)
        {
            switch (polozaj)
            {
            case PolozajTpreseka.Oslonac_1:
                return(new EfetivnaSirinaTPresekaOslonac1(b_full, polozaj, l_1, b_0));

            case PolozajTpreseka.Polje_1:
                return(new EfetivnaSirinaTPresekaPolje1(b_full, polozaj, l_1, b_0));

            case PolozajTpreseka.Oslonac_2:
                return(new EfetivnaSirinaTPresekaOslonac2(b_full, polozaj, l_1, l_2, b_0));

            case PolozajTpreseka.Polje_3:
                return(new EfetivnaSirinaTPresekaPolje3(b_full, polozaj, l_1, b_0));

            case PolozajTpreseka.Oslonac_i_Polje_4:
                return(new EfetivnaSirinaTPresekaOslonacIPolje4(b_full, polozaj, l_1, b_0));

            default:
                throw new ArgumentException("Tip preseka nije definisan");
            }
        }
        public EfetivnaSirinaTPresekaOslonacIPolje4(double b_left, double b_right, PolozajTpreseka polozaj, double l_1, double b_0 = 0)
        {
            B_Left  = b_left;
            B_Right = b_right;
            Polozaj = polozaj;
            L_1     = l_1;
            B_0     = b_0;

            Start();
        }
        public EfetivnaSirinaTPresekaPolje3(double b_full, PolozajTpreseka polozaj, double l_1, double b_0 = 0)
        {
            B_Left  = (b_full - b_0) / 2;
            B_Right = (b_full - b_0) / 2;
            Polozaj = polozaj;
            L_1     = l_1;
            B_0     = b_0;

            Start();
        }