Beispiel #1
0
    private bool doAddNewZCurtainSectionAt(PTwo xzco, Range1D continuityRangeAtZPlusOrMinusOne, Range1D airRange)
    {
        if (!thereIsAdjacencyOnOneSideOrTheOther(xzco))
        {
            return(false);
        }

        Range1D x_domain = bounds.sRange();

        if (x_domain.contains(xzco.s))
        {
            PTwo     relCo = bounds.origin - xzco;
            ZCurtain zcur  = z_curtains[relCo.s];

            zcur.addNewCurtainUnitWithZNegStartAt(xzco.t);
            zcur.setDiscontinuityStartWithSurfaceRange(continuityRangeAtZPlusOrMinusOne, airRange);
            z_curtains[relCo.s] = zcur;

            return(true);
        }

        if (x_domain.start - 1 == xzco.s)
        {
            ZCurtain zc = new ZCurtain(xzco.t);
            zc.setDiscontinuityStartWithSurfaceRange(continuityRangeAtZPlusOrMinusOne, airRange);
            z_curtains.Insert(0, zc);
            return(true);
        }
        else if (x_domain.extent() == xzco.s)
        {
            ZCurtain zc = new ZCurtain(xzco.t);
            zc.setDiscontinuityStartWithSurfaceRange(continuityRangeAtZPlusOrMinusOne, airRange);
            z_curtains.Add(zc);
            return(true);
        }

        return(false);
    }