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
- Python 2.6.2
- Python Imaging Library PIL 1.1.6
- Numeric Python NumPy 1.2.1
- wxPython 2.8.9.1 Unicode
- Visualization Toolkit VTK 5.4
- Grassroots DICOM GDCM 2.0.14
- Insight Toolkit ITK 3.0.10
- PyCairo 1.8.4
- System Information Gatherer And Reporter SIGAR
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:
- joselito@… : deve ser o seu usuário na Comunidade InVesalius
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:
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
