RecastNavigationDelphi
Porto de reformulação de navegação em Delphi
Localização do código -fonte: https://github.com/memonanen/recastnavigation
Versão do código -fonte: por volta de 01 de novembro de 2014
Diretrizes de portas:
- A RecastNavigationDelphi é um clone reto de recuperação com o mínimo de mudanças possível, para permitir manter os projetos sincronizados no futuro.
- Quaisquer alterações/melhorias na funcionalidade LIB devem ser incluídas primeiro no mestre C ++ para evitar a separação.
- O RND segue a estrutura do RN de perto, exceto o material da GUI, que é VCL para simplificar, em vez de a solução de imgui rn.
- Todos os nomes de arquivos são os mesmos, mas com um prefixo "rn_".
- Algumas unidades foram divididas para evitar dependências circulares, elas são chamadas RN_UnitNameHelper.
Dicas sobre o código:
- Loops e loops e loops de várias condições, onde o iterador é alterado dentro do loop, foram convertidos em loops de enquanto/repetição. O código do loop precisa ser repetido antes de qualquer "continuar".
- Mover o método dos dois primeiros argumentos (SRC, DST) precisam ser trocados em Delphi.
- Delphi precisa envolver manipulações transbordantes com uma diretiva {$ o} para suprimir erros.
- A Delphi precisa de descarte manual de objetos criados dentro do registro, pois eles não têm suporte de destruidor interno neles.
- Para simplificar o truque do ponteiro, {$ pointermath em} teve que ser ativado quase em todas as unidades.
- A configuração do operador digitada @ é uma ótima ajuda, mas, infelizmente, às vezes não funciona.
Armadilhas comuns durante a porta:
- Passando o argumento @womepointer em vez de algum ponteiro . Digitado @ ajuda a pegá -los, mas nem sempre.
- Chamando métodos de movimentação/preenchimento sem trocar os argumentos de lugares.
- Escrevendo para .. para .. Faça loop em vez de para .. Downo .. Faça em casos raros.
Todos:
- Corrija a infinidade de vazamentos de memória em torno do código.
- Demonstração de Tempobstacles.
- Algumas peças são comentadas, esperando para serem portadas.
- Sincronizar com o estado atual do código -fonte.