Depois de estudar o codigo do LDView, encontrei alguns entraves no seu uso, desde logo não existia uma separação lógica entre a peça (directoria PARTS) e a as sub-parts (/P).
Como este sistema se baseia apenas na visualização de ficheiros LDraw, este não possui qualquer tipo de biblioteca aonde estejam guardadas as peças, indo directamente à directoria LDraw.
Assim precisarei de implementar uma biblioteca a usar no nosso sistema.
Ao observar o sistema LeoCad, descobri que este possui um mecanismo de conversão entre as peças (pasta Ldraw) e um sistema interno ao LeoCad. Esta biblioteca interna possui a informação que necessitarei para a pesquisa de peças via caligráfica:
- tamanho da peça - representada pela bounding box
- numero de pinos - representada pelas conexões
Assim decidi usar o sistema LeoCad como base para o nosso sistema.
As partes a aproveitar serão as seguintes:
- biblioteca de peças
- parte da visualização (camera)
- gestor de estado (projecto com uma lista de peças presentes na cena)
- parte dos modulos de edição, pois serão alterados para suportarem uma interface caligráfica
A fazer:
- A interface do sistema terá que ser totalmente modificada para suportar uma interface caligráfica
- Um mecanismo de procura eficiente (recebe tamanho da peça e numero de pinos)
Arquitectura do sistema