terça-feira, 30 de novembro de 2010

Triangulações

Com o .h com o algoritmo do BPA fornecido pela biblioteca vcglib, já analisei os parâmetros e dá para mexer em todos os parâmetros, desde tamanho máximo/minimo da 
aresta (aqui o mínimo é expresso em percentagem do raio que agrega pontos que estejam  abaixo dessa distancia). O angulo máximo formado por 2 fazes, que por 
defeito é cos(PI/2) = 0.0. Pelo que percebi terá a ver 
para evitar que a "esfera" volte para trás, ou seja, caso 
não encontre um ponto ao rodar sobre o "edge", irá voltar para trás e limitar o ângulo irá eliminar esse problema.

Já entendi como é feito o auto-guess do raio...é uma abordagem simples e funciona bastante bem: 
sqrt((diagonal(boundbox)2)/n_vertices). Pelo que se entende é que faz uma média da distância entre cada vértice.
Já estou a fazer o documento com testes e resultados mas ainda está em versão beta...

Já estive a ver melhor a estrutura do MESH que eles usam mas analisar o código deles nem sempre é uma coisa fácil de mastigar mas já encontrei uns exemplos que ainda estou a analisar.

terça-feira, 23 de novembro de 2010

Ponto de Situação da semana

Nesta última semana encontrei disponível o algoritmo do Ball Pivoting disponível e opensource. É o algoritmo usado pelo Meshlab e vem integrado na biblioteca vcglib e é um BPA ligeiramente modificado mas o princípio base está lá e estive a tentar integrar o algoritmo com o meu trabalho. O problema é que o código é escrito usando estruturas definidas pelo próprio Meshlab e obriga à conversão das estruturas para uma estrutura do vtk.
Tentei fazer alguns exemplos (se bem que não haja quase nada...) e um deles ainda não consegui por a funcionar e o outro consegui. O segundo exemplo tem como input um ficheiro .ply com a nuvem de pontos e devolve um ficheiro .ply com a malhagem. Este executável funciona mas o ideal é converter sem a necessidade de exportar/importar ficheiros pelo meio. Um outro problema que surgiu pelo meio foi mais uma vez a questão da makefile...existe o "qmake" que gera a makefile para compilar a vcglib e a makefile não sai perfeita e é preciso fazer umas afinações em questões de inclusão de ficheiros .cpp "escondidos" nas pastas do vcglib. Consegui criar uma makefile que não necessita do "qmake" e assim permite integrar numa makefile ja existente.
Vou ter que investigar um pouco sobre esta vcglib...

terça-feira, 16 de novembro de 2010

Ponto de Situação da semana

Nesta semana consegui finalmente resolver um problema que surgiu no uso do VTK na interacção com o IPC e o player dos logs. O player bloqueava assim que o módulo vtk era inicializado mas a definição de um timer resolveu o problema, permitindo avançar nesta parte do trabalho.
Agora é possível:
-Visualizar os pontos dos diferentes lasers por cores.
-Navegar no modelo (zoom, rodar,etc)
-Inserir / remover um laser do modelo
-Exportar para um ficheiro .obj o modelo visualizado
-Activar / desactivar a acumulação de pontos de mensagens recebidas (ainda com um pequeno bug)