Informações para desenvolvedores do InVesalius 3

Esta página visa atender desenvolvedores que querem contribuir com o InVesalius.

Espera-se que os colaboradores sigam o Guia de Estilo.

1. Pré-requisitos

1.1. Passo a passo para Windows

Siga todos os passos a seguir para executar o InVesalius 3 a partir do código fonte.

1.1.1 Instalação automática

Estes links remetem aos instaladores automáticos (com interface gráfica), de instalação direta:

1.1.2 Instalação manual

Parte das demais dependências do InVesalius são bibliotecas em C++. Para acessá-las a partir de Python, é necessário criar um "binding" ou "wrapper", que são dependentes da plataforma onde foram gerados.

Os seguintes wrappers ou bindings das bibliotecas foram gerados para Python 2.6 em Windows 32bits:

Para descomprimi-los, use a ferramenta 7Zip. Ela pode ser baixada a partir do seguinte link:

Sugere-se que as pastas sejam descompactadas onde o Python estiver instalado (o padrão é "C:")

C:/Python26/Lib/site-packages

Então, será nacessário inserir estas pastas nos caminhos do sistema, seguindo os passos:

Iniciar >> Painel de Controle >> Sistema >> Avançado >> Variáveis de ambiente

Crie uma nova variável do sistema, de nome "PYTHONPATH". Seu valor deve ser algo como:

C:\Python26;C:\Python26\lib;C:\Python26\Lib\site-packages;C:\Python26\Lib\site-packages\vtk;C:\Python26\Lib\site-packages\gdcm;C:\Python26\Lib\site-packages\itk;

No variável "PATH", já existente, adicione (ao fim de seu valor):

;%PYTHONPATH%;

Salve as mudanças. Se estiver funcionando, não deverão ocorrer erros ao executar a partir do interpretador Python:

$ python
>>> import vtk
>>> import vtkgdcm
>>> import gdcm
>>> import itk
>>> import sigar

1.1.3 Instalação semi-manual

O PyCairo depende das seguintes bibliotecas:

A seguir estão os arquivos comprimidos contendo estas bibliotecas:

Descompacte-os. Selecione os arquivos de extensão dll, e coloque-os em "C:\WINDOWS\system32".

Então, instale o PyCairo, através do instalador gráfico:

Para verificar se está funcionando, utilize:

$ python
>>> import wx.lib.wxcairo
>>> import cairo

1.2. GNU Linux

Fedora

TODO

Ubuntu

WX  http://wiki.wxpython.org/InstallingOnUbuntuOrDebian

1.3. MacOS X

Leopard

TODO

2. Código fonte

2.1. Repositório SVN

O repositório deve ser acessado utilizando a ferramenta de controle de versões Subversion (SVN).

Sugerimos que baixe o cliente de SVN a partir de:

Caso você prefira ferramentas gráficas, a seguinte ferramenta pode ser útil:

2.2. Para Baixar o Código do Repositório SVN

No caso da utilização do SVN, sem interface gráfica, o endereço para a obtenção dos códigos são:

$ svn co --username joselito@gmail.com http://svn.softwarepublico.gov.br/svn/invesalius/invesalius3/trunk invesalius3

Onde:

3. Diretivas gerais

Antes de começar a modificar o código, sugerimos que você leia o Guia de Estilo de Código. Esperamos que todos sigam ele.

4. Conhecimentos úteis

Para o desenvolvimento do InVesalius 3 utilizamos alguns conceitos que podem parecer confusos para quem os desconhece:

  • Pubsub
  • Singleton
  • Closure

Sugerimos que você leia estas descrições, caso desconheça estes modelos ou queira conhecê-los em Python.

5. Diagrama do programa

Ainda estamos elaborando diagramas que ilustram o funcionamento das classes do InVesalius. Alguns deles podem ser vistos a seguir:

  • Áreas de Aplicação do InVesalius
  • Visão Geral dos Módulos
  • Visão Geral das Interface Gráfica
  • Pipeline da Superfície
  • Pipeline do Slice

7. Projetos em andamento

Há alguns projetos de desenvolvimento que serão inseridos no InVesalius:

  • Implementação de comunicação via PACS
  • Desenvolvimento de Neuro-Navegador

Caso você queira iniciar um novo projeto, avise o grupo de desenvolvedores, através do fórum invesalius-dev.

8. Como enviar sua contribuição

Após ter implementado uma nova funcionalidade ou corrigido algum bug do InVesalius, siga os seguintes passos:

  • Crie um patch
  • Insira seu patch no file-storage
  • Envie uma mensagem para o fórum invesalius-dev comunicando seu patch

Caso ele siga os padrões do programa, ele será inserido no código oficial e você será reconhecido como contribuidor do projeto.

Aqueles que se destacarem em qualidade e quantidade de contribuições terão permissão, no futuro, para realizar "commits".

8.1. Criando um patch

Para criar um patch utiliza-se o comando 'diff', que serve para calcular a diferença entre dois arquivos.

Se você utilizar Windows, é necessário ter a ferramenta DiffUtils instalada:

diff -crB trunk branches/usp-navegador > joao-01.patch

Onde trunk é o código mais recente do repositório e branches/usp-navegador é a pasta onde você realizou mudanças.

Preferimos receber vários patches pequenos do que um patch grande.

8.2. Disponibilizando seu patch em local público

Insira seu patch na pasta de contribuições, do file-storage:

 Pasta de contribuições

8.3. Notificando a comunidade

Utilize o fórum:

 Fórum de discussões de desenvolvedores

Para enviar a mensagem notificando seu patch.

Exemplo de mensagem:

Título: [PATCH] Interface gráfica de navegação

Pessoal,

Por favor, apliquem o patch disponível em:
http://www.softwarepublico.gov.br/dotlrn/clubs/invesalius/file-storage/index?folder_id=14212609

Na pasta:
gui/

Ele contém a aba de interface gráfica e os ícones para acionar recursos do navegador.

Obrigado!

Nome