コード例 #1
0
        private double[] PosicaoDaPalmaPrimeiroFrame(Mao mao)
        {
            if (mao == null)
                return PosicaoOrigem();

            return mao.PosicaoDaPalma;
        }
コード例 #2
0
        private double[] DistanciaDaMaoEmRelacaoAoPrimeiroFrame(Mao mao, double[] posicaoDaPalmaDaMaoNoPrimeiroFrame)
        {
            if (mao == null)
                return PosicaoOrigem();

            return mao.PosicaoDaPalma.Subtrair(posicaoDaPalmaDaMaoNoPrimeiroFrame).Normalizado();
        }
コード例 #3
0
ファイル: FrameExtensions.cs プロジェクト: ejulio/signa
 private static double[] MontarArrayEsperadoParaAMao(Mao mao)
 {
     var direcaoDosDedos = mao.Dedos.Select(d => d.Direcao.Normalizado()).ToArray().Concatenar();
     return mao.VetorNormalDaPalma.Normalizado()
         .Concat(mao.Direcao.Normalizado())
         .Concat(AngulosProjetados(mao))
         .Concat(direcaoDosDedos)
         .ToArray();
 }
コード例 #4
0
ファイル: MaoTeste.cs プロジェクト: ejulio/signa
        public void criando_uma_mao_com_valores_null()
        {
            var mao = new Mao
            {
                Dedos = null,
                Direcao = null,
                VetorNormalDaPalma = null
            };

            DeveTerOsValoresPadroes(mao);
        }
コード例 #5
0
ファイル: MaoTeste.cs プロジェクト: ejulio/signa
 private void DeveTerOsValoresPadroes(Mao mao)
 {
     mao.Direcao.Should().NotBeNull();
     mao.Direcao.Should().HaveCount(3);
     mao.VetorNormalDaPalma.Should().NotBeNull();
     mao.VetorNormalDaPalma.Should().HaveCount(3);
     mao.Dedos.Should().NotBeNull();
     mao.Dedos.Should().HaveCount(5);
     foreach (var dedo in mao.Dedos)
     {
         dedo.Should().NotBeNull();
     }
 }
コード例 #6
0
ファイル: FrameExtensions.cs プロジェクト: ejulio/signa
        private static IEnumerable<double> AngulosProjetados(Mao mao)
        {
            var angulos = new double[mao.Dedos.Length - 1];

            for (int i = 0; i < angulos.Length; i++)
            {
                angulos[i] = mao.Dedos[i].PosicaoDaPonta
                    .ProjetadoNoPlano(mao.VetorNormalDaPalma)
                    .AnguloAte(mao.Dedos[i + 1].PosicaoDaPonta.ProjetadoNoPlano(mao.VetorNormalDaPalma));

            }

            return angulos.Normalizado();
        }
コード例 #7
0
ファイル: FrameExtensions.cs プロジェクト: ejulio/signa
        private static double[] AngulosEntreDedosEPalmaDaMao(Mao mao)
        {
            double[] angulos = new double[mao.Dedos.Length];

            for (int i = 0; i < angulos.Length; i++)
            {
                var posicaoDaPontaDoDedo = mao.Dedos[i].PosicaoDaPonta;
                var posicaoDaPalma = mao.PosicaoDaPalma;

                angulos[i] = posicaoDaPontaDoDedo.AnguloAte(posicaoDaPalma);
            }

            return angulos;
        }
コード例 #8
0
ファイル: FrameExtensions.cs プロジェクト: ejulio/signa
        private static double[] AngulosEntreDedos(Mao mao)
        {
            double[] angulos = new double[mao.Dedos.Length - 1];

            for (int i = 0; i < angulos.Length; i++)
            {
                var posicaoDaPontaDoDedo1 = mao.Dedos[i].PosicaoDaPonta;
                var posicaoDaPontaDoDedo2 = mao.Dedos[i + 1].PosicaoDaPonta;

                angulos[i] = posicaoDaPontaDoDedo1.AnguloAte(posicaoDaPontaDoDedo2);
            }

            return angulos;
        }
コード例 #9
0
ファイル: Frame.cs プロジェクト: ejulio/signa
 public Frame()
 {
     MaoEsquerda = new Mao();
     MaoDireita = new Mao();
 }
コード例 #10
0
ファイル: MaoTeste.cs プロジェクト: ejulio/signa
        public void criando_uma_mao()
        {
            var mao = new Mao();

            DeveTerOsValoresPadroes(mao);
        }
コード例 #11
0
ファイル: FrameBuilder.cs プロジェクト: ejulio/signa
 public FrameBuilder ParaOIndice(int indice)
 {
     maoDireita = new MaoBuilder().ParaOIndice(indice).Construir();
     maoEsquerda = new MaoBuilder().ParaOIndice(indice).Construir();
     return this;
 }
コード例 #12
0
ファイル: FrameBuilder.cs プロジェクト: ejulio/signa
 public FrameBuilder ComMaosEsquerdaEDireitaPadroes()
 {
     maoDireita = new MaoBuilder().Construir();
     maoEsquerda = new MaoBuilder().Construir();
     return this;
 }
コード例 #13
0
ファイル: FrameBuilder.cs プロジェクト: ejulio/signa
 public FrameBuilder ComMaoDireita(Mao rightMao)
 {
     this.maoDireita = rightMao;
     return this;
 }
コード例 #14
0
ファイル: FrameBuilder.cs プロジェクト: ejulio/signa
 public FrameBuilder ComMaoEsquerda(Mao leftMao)
 {
     this.maoEsquerda = leftMao;
     return this;
 }