예제 #1
0
        private PosicaoCollection ExtrairPosicoes3D(Decimal[] ordinates, int inicio, int fim)
        {
            PosicaoCollection posicaoCollection = new PosicaoCollection();
            int index = inicio;

            while (index < fim)
            {
                posicaoCollection.Adicionar(new Posicao(ordinates[index], ordinates[index + 1], ordinates[index + 2], false));
                index += 3;
            }
            return(posicaoCollection);
        }
예제 #2
0
        private PosicaoCollection ExtrairPosicoesLRS3D(Decimal[] ordinates, int inicio, int fim, int eixoLrs)
        {
            PosicaoCollection posicaoCollection = new PosicaoCollection();
            int num1  = eixoLrs - 1;
            int num2  = 5 - num1;
            int index = inicio;

            while (index < fim)
            {
                posicaoCollection.Adicionar(new Posicao(ordinates[index], ordinates[index + 1], ordinates[index + num2], true)
                {
                    M = ordinates[index + num1]
                });
                index += 4;
            }
            return(posicaoCollection);
        }
예제 #3
0
        private SegmentoLinha GerarSegmento(Decimal[] ordinates, int inicio, int fim, int tipo, int dimensoes, int eixoLrs)
        {
            try
            {
                SegmentoLinha segmentoLinha;
                switch (tipo)
                {
                case 1:
                    segmentoLinha = (SegmentoLinha) new SegmentoLinhaReto();
                    break;

                case 2:
                    segmentoLinha = (SegmentoLinha) new SegmentoLinhaArco();
                    break;

                case 3:
                    segmentoLinha = (SegmentoLinha) new SegmentoLinhaReto();
                    break;

                case 4:
                    segmentoLinha = (SegmentoLinha) new SegmentoLinhaCirculo();
                    break;

                default:
                    return((SegmentoLinha)null);
                }
                PosicaoCollection posicoes = this.ExtrairPosicoes(ordinates, inicio, fim, dimensoes, eixoLrs);
                if (posicoes == null || posicoes.Count <= 1 || tipo == 2 && posicoes.Count % 2 == 0 || (tipo == 3 && posicoes.Count != 2 || tipo == 4 && posicoes.Count != 3))
                {
                    return((SegmentoLinha)null);
                }
                segmentoLinha.Posicoes.Adicionar(posicoes);
                return(segmentoLinha);
            }
            catch
            {
                return((SegmentoLinha)null);
            }
        }