Exemple #1
0
        /// <summary>
        /// 生成穹窿模型侧面
        /// </summary>
        /// <param name="fornix"></param>
        /// <param name="preFornix"></param>
        private static void createSide(Fornix fornix, Fornix preFornix, double FornixDip)
        {
            VertexCollection vcDown = new VertexCollection();//底面顶点集合
            Vertex           vertexUp, vertexDown;
            double           dip = FornixDip;

            //根据产状生成底面顶点
            for (int i = 1; i < fornix.outSide.countUpVers() - 1; ++i)
            {
                vertexUp = fornix.outSide.getUpver(i);
                vertexUp.calOccuurence(fornix.outSide.getUpver(i - 1), fornix.outSide.getUpver(i + 1), dip);
                vertexDown = new Vertex();
                vertexDown.createDownVer(vertexUp);
                vertexDown.ID = _verNum++;
                vcDown.addVer(vertexDown);
            }

            vertexUp = fornix.outSide.getUpver(fornix.outSide.countUpVers() - 1);
            vertexUp.calOccuurence(fornix.outSide.getUpver(fornix.outSide.countUpVers() - 2), fornix.outSide.getUpver(0), dip);
            vertexDown = new Vertex();
            vertexDown.createDownVer(vertexUp);
            vertexDown.ID = _verNum++;
            vcDown.addVer(vertexDown);

            vertexUp = fornix.outSide.getUpver(0);
            vertexUp.calOccuurence(fornix.outSide.getUpver(fornix.outSide.countUpVers() - 1), fornix.outSide.getUpver(1), dip);
            vertexDown = new Vertex();
            vertexDown.createDownVer(vertexUp);
            vertexDown.ID = _verNum++;
            vcDown.addVer(vertexDown);

            //生成地层外侧面
            fornix.createOutSideLowvers(vcDown);
            _verNum -= fornix.createOutSide();

            //生成前一地层的内侧面
            if (preFornix != null)
            {
                preFornix.createInSide(fornix);
            }
        }