示例#1
0
 private void ProximoQuadroChave()
 {
     novoEstado       = EstadoRastreamento.EmExecucao;
     ContadorQuadros  = 0;
     QuadroChaveAtual = QuadroChaveAtual.Next;
     contadorEtapas++;
 }
示例#2
0
 private void ReiniciarRastreamento()
 {
     ContadorQuadros  = 0;
     QuadroChaveAtual = QuadrosChave.First;
     contadorEtapas   = 0;
     novoEstado       = EstadoRastreamento.NaoIdentificado;
 }
示例#3
0
 private void ReiniciarRastreamento()
 {
     ContadorQuadros = 0;
     QuadroChaveAtual = QuadrosChave.First;
     contadorEtapas = 0;
     novoEstado = EstadoRastreamento.NaoIdentificado;
 }
 private void ProximoQuadroChave()
 {
     novoEstado = EstadoRastreamento.EmExecucao;
     ContadorQuadros = 0;
     QuadroChaveAtual = QuadroChaveAtual.Next;
     contadorEtapas++;
 }
        public override EstadoRastreamento Rastrear(Skeleton esqueletoUsuario)
        {
            if (esqueletoUsuario != null)
            {
                if (PosicaoValida(esqueletoUsuario))
                {
                    novoEstado = EstadoRastreamento.EmExecucao;
                    if (QuadroChaveAtual.Value == QuadrosChave.Last.Value)
                        novoEstado = EstadoRastreamento.Identificado;
                    else
                    {
                        if (ContadorQuadros >= QuadroChaveAtual.Value.QuadroLimiteInferior &&
                           ContadorQuadros <= QuadroChaveAtual.Value.QuadroLimiteSuperior)
                            ProximoQuadroChave();
                        else
                            if (ContadorQuadros < QuadroChaveAtual.Value.QuadroLimiteInferior)
                                PermanecerRastreando();
                            else if (ContadorQuadros > QuadroChaveAtual.Value.QuadroLimiteSuperior)
                                ReiniciarRastreamento();
                    }
                }
                else
                    if (QuadroChaveAtual.Value.QuadroLimiteSuperior < ContadorQuadros)
                        ReiniciarRastreamento();
                    else
                        PermanecerRastreando();
            }
            else
                ReiniciarRastreamento();

            return novoEstado;
        }
        public void Rastrear(Skeleton esqueletoUsuario)
        {
            EstadoRastreamento novoEstado = movimento.Rastrear(esqueletoUsuario);

            if (novoEstado == EstadoRastreamento.Identificado &&
                EstadoAtual != EstadoRastreamento.Identificado)
            {
                ChamarEvento(MovimentoIdentificado);
            }

            EstadoAtual = novoEstado;
        }
示例#7
0
        public override EstadoRastreamento Rastrear(Skeleton esqueletoUsuario)
        {
            if (esqueletoUsuario != null)
            {
                if (PosicaoValida(esqueletoUsuario))
                {
                    novoEstado = EstadoRastreamento.EmExecucao;
                    if (QuadroChaveAtual.Value == QuadrosChave.Last.Value)
                    {
                        novoEstado = EstadoRastreamento.Identificado;
                    }
                    else
                    {
                        if (ContadorQuadros >= QuadroChaveAtual.Value.QuadroLimiteInferior &&
                            ContadorQuadros <= QuadroChaveAtual.Value.QuadroLimiteSuperior)
                        {
                            ProximoQuadroChave();
                        }
                        else
                        if (ContadorQuadros < QuadroChaveAtual.Value.QuadroLimiteInferior)
                        {
                            PermanecerRastreando();
                        }
                        else if (ContadorQuadros > QuadroChaveAtual.Value.QuadroLimiteSuperior)
                        {
                            ReiniciarRastreamento();
                        }
                    }
                }
                else
                if (QuadroChaveAtual.Value.QuadroLimiteSuperior < ContadorQuadros)
                {
                    ReiniciarRastreamento();
                }
                else
                {
                    PermanecerRastreando();
                }
            }
            else
            {
                ReiniciarRastreamento();
            }

            return(novoEstado);
        }
示例#8
0
        public void Rastrear(Skeleton esqueletoUsuario)
        {
            EstadoRastreamento novoEstado = movimento.Rastrear(esqueletoUsuario);

            if (novoEstado == EstadoRastreamento.Identificado &&
                EstadoAtual != EstadoRastreamento.Identificado)
            {
                ChamarEvento(MovimentoIdentificado);
            }

            if (novoEstado == EstadoRastreamento.EmExecucao &&
                (EstadoAtual == EstadoRastreamento.EmExecucao ||
                 EstadoAtual == EstadoRastreamento.NaoIdentificado))
            {
                ChamarEvento(MovimentoEmProgresso);
            }

            EstadoAtual = novoEstado;
        }
 public Rastreador()
 {
     EstadoAtual = EstadoRastreamento.NaoIdentificado;
     movimento   = Activator.CreateInstance <T>();
 }
示例#10
0
 private void PermanecerRastreando()
 {
     ContadorQuadros++;
     novoEstado = EstadoRastreamento.EmExecucao;
 }
示例#11
0
 private void PermanecerRastreando()
 {
     ContadorQuadros++;
     novoEstado = EstadoRastreamento.EmExecucao;
 }
示例#12
0
        protected override bool PosicaoValida(Skeleton esqueletoUsuario)
        {
            EstadoRastreamento estado = QuadroChaveAtual.Value.PoseChave.Rastrear(esqueletoUsuario);

            return(estado == EstadoRastreamento.Identificado);
        }