• Nenhum resultado encontrado

Implementação em Java de Operadores para Manipulação de Estruturas de Dados Topológicas

N/A
N/A
Protected

Academic year: 2021

Share "Implementação em Java de Operadores para Manipulação de Estruturas de Dados Topológicas"

Copied!
6
0
0

Texto

(1)

Implementação em Java de Operadores para Manipulação de Estruturas de Dados

Topológicas

Raiza Barbosa Claudino da Silva, Helton Hideraldo Bíscaro, Fátima L. S. Nunes Laboratório de Aplicações de Informática em Saúde - LApIS

Escola de Artes Ciências e Humanidades - EACH-USP São Paulo, Brasil

raiza.silva@usp.br, heltonhb@usp.br, fatima.nunes@usp.br

Resumo—O uso de realidade virtual oferece diversas van-tagens para a área médica, a exemplo no uso de ambientes de realidade virtual para o treinamento de procedimentos cirúrgicos. Tais ambientes necessitam de respostas em tempo real às interações dos usuários. Para isso, utilizam estruturas de dados topológicas, que proporcionam melhor performance computacional para representar objetos tridimensionais. Como parte de um projeto maior, que tem por objetivo simular com o maior grau de realidade possível cirurgias virtuais, o presente trabalho tem como objetivos o estudo e a imple-mentação de operadores, para a manipulação de estruturas de dados topológicas, que deverão adicionar e remover simplexos permitindo assim a simulação de cortes e suturas em objetos que representam órgãos humanos proporcionando um maior realismo a um ambiente de treinamento. Como parte dos operadores de adição já estão implementados, também foram efetuados testes, aqui apresentados, para definir sua eficiência. Keywords-Treinamento médico; Malhas topológicas; Sutu-ras; Cortes;

I. INTRODUÇÃO

Aplicações de diversas áreas utilizam a Realidade Virtual com o intuito de reproduzir situações do mundo real. A viabilidade de reproduzir situações reais sem risco a paci-entes, a diminuição de custos devido à redução de uso de objetos físicos e a possibilidade de simular e visualizar ações impossíveis de serem percebidas no mundo real são alguns dos motivos que levam a medicina a se aproveitar destas aplicações em suas diferentes frentes de atuação, uma delas é o treinamento médico.

Aplicações dessa categoria visam a preparar estudantes, técnica e psicologicamente, para desenvolverem tarefas re-ais. O intuito é permitir a prática de técnicas em ambientes que imitam a realidade de um procedimento ou criam situações hipotéticas para explicar ou ensinar algum conceito [1].

Neste contexto, existem diversas ferramentas que tra-balham em prol do realismo, como o framework ViMeT (Virtual Medical Training), trabalho realizado anteriormente no contexto de treinamento médico, que utiliza técnicas de processamento de imagens e realidade virtual para construir aplicações para simulação de treinamento médico, especifi-camente exames de biópsia [2], o qual consiste na extração

de pequenas partes de tecidos do órgão em questão para auxiliar a elaboração do diagnóstico médico [3].

O ViMeT permite construir com facilidade um Ambiente Virtual dinâmico, com objetos virtuais que representam órgãos humanos e um instrumento médico, disponibilizando funcionalidades importantes para o treinamento virtual, como a detecção de colisão com precisão, a deformação de objetos flexíveis na região de contato com o objeto rígido, estereoscopia, além de interação com equipamentos convencionais (mouse, teclado) e não convencionais (luva de dados e dispositivo háptico)[3].

No ViMeT para a representação dos órgãos e instrumentos virtuais são utilizadas malhas geométricas. Existem atual-mente neste ambiente duas estruturas de dados topológicas, que visam a indexar os elementos da malha de forma a representar as relações de adjacência e incidência entre os elementos, a Mate Face (MF) [4] e a Compact Half-Edge (CHE) [5].

O framework ViMeT inclui métodos de colisão e defor-mação de objetos, porém, como explicado anteriormente, o procedimento de biópsia também efetua cortes na malha para a extração de tecido, funcionalidade que ainda não está presente no ambiente de treinamento gerado pelo ViMeT.

Este problema tem como solução o uso de operadores de manipulação de estruturas de dados topológicas, que serão implementados para as estruturas do ViMeT, permitindo que, após o carregamento da malha no ambiente virtual, haja a edição das características de vizinhança, permitindo assim a associação ou dissociação de uma célula com outra.

Tal procedimento permitirá a simulação de cortes e suturas no ambiente virtual proporcionando um maior realismo ao ambiente de treinamento.

O presente artigo está organizado na seguinte forma: na seção II é apresentado um breve histórico sobre estruturas de dados topológicas; na seção III são apresentados conceitos matemáticos fundamentais para a compreensão deste artigo; está descrito na seção IV o funcionamento das estruturas de dados topológicas aqui utilizadas; a seção V destina-se à explicação dos operadores de manipulação propostos neste trabalho; os resultados obtidos até o presente momento estão ilustrados na seção VI; e, finalmente, na seção VII são

(2)

apresentadas as conclusões e os trabalhos futuros. II. ESTRUTURAS DEDADOSTOPOLÓGICAS

As Estruturas de Dados Topológicas visam a indexar os elementos da malha de forma a representar suas relações de adjacência e incidência entre simplexos e também facilitar a recuperação de suas informações [4].

Em suma, algumas características desejáveis para uma estrutura de dados eficiente são tempo de execução oti-mizado, consumo de memória reduzido e facilidade de implementação.

A Winged-Edge [6], apresentada em 1975, foi uma das primeiras estruturas de dados topológicas a se propor a representar superfícies 3D e nela foram baseadas as outras estruturas de dados que se seguiram a partir de então.

A Winged-Edge utiliza o conceito de arestas para poder acessar os dados de uma malha, o mesmo conceito proposto posteriormente na estrutura Half-Edge [7], com a diferença de que cada aresta é dividida em duas half-edges (semi arestas) com orientações opostas.

Na estrutura Handle Edge [8], apresentada após a Half-Edge, os elementos que compõem as malhas são represen-tados explicitamente. Já a estrutura Compact-Half-Edge [5] tenta unir as boas qualidades das estruturas citadas acima.

A estrutura Corner-Table [9], que representa malhas tri-angulares utilizando o conceito de corners para constituir a associação entre um triângulo e seus vértices, descritos de forma implícita por meio de equações, teve seus conceitos utilizados na estrutura Opposite-Face [10], porém, esta nova estrutura passou a representar algumas características da malha explicitamente. A estrutura Mate-Face [4] foi baseada nas duas estruturas citadas anteriormente.

III. CONCEITOSFUNDAMENTAIS

A fim de fornecer noções básicas para a compreensão do trabalho aqui apresentado e de como é feita a representação das malhas, a seguir são apresentados conceitos básicos sobre a representação de malhas geométricas, obtidos de [5], [8] e [11].

A. Simplexos

Um simplexo σ de dimensão k, é o fecho convexo de k + 1 pontos {v0,...,vk}, contidos em Rmem posição geral, isto

é, os vetores v1− v0, v2− v0, ..., vk − v0 são linearmente

independentes.

Um simplexo de dimensão k pode também ser chamado de k-simplexo e, chamaremos um 0-simplexo de vértice, um 1-simplexo de aresta, um 2-simplexo de triângulo, um 3-simplexo de tetraedro, e assim por diante. Os pontos v0,...,vk

de um k-simplexo σ são chamados de vértices de σ. A face de um simplexo σ é o fecho convexo de um subconjunto de vértices de σ e, que por definição, também é um simplexo.

No presente trabalho o simplexo de dimensão 2 foi utilizado para a representação de células da malha.

Figura 1. Não Complexo Simplicial

B. Complexo Simplicial

Um complexo simplicial Σ é um conjunto finito de simplexos em que, se σ ∈ Σ, então todas as suas faces pertencem a Σ; se os simplexos σ, γ ∈ Σ, então σ ∩ γ é uma face de σ e γ, ou é vazia.

Esta última condição impede que existam intersecções indevidas entre simplexos de um complexo simplicial, Fig. 1.

Por exemplo, 3-simplexos podem ter intersecção com outros simplexos apenas em vértices, arestas ou triângulos comuns, 2-simplexos apenas em arestas e vértices comuns, e assim por diante.

C. Bordo

Um (k -1)-simplexo de uma k-variedade incidente a apenas um k-simplexo é chamado de simplexo de bordo.

O bordo de um p-simplexo σ é denotado por δσ. Os simplexos de dimensão menor que n-1 contidos em um simplexo de bordo são também chamados de simplexos de bordo.

D. Estrela

A estrela de um simplexo σ ∈ Σ, denotada por star(σ; Σ), é a união de todos os simplexos γ ∈ Σ que são incidentes a σ.

E. Variedade

Dizemos que um d-complexo simplicial Σ é uma varie-dade linear por partes quando a estrela de todo o vértice é homeomorfa a uma esfera ou semi-esfera no caso de vértices de bordo.

Neste projeto são utilizadas variedades de dimensão 2, também chamadas de superfícies.

O conceito de estrela do vértice, Fig. 2, é utilizado para percorrer todas as células incidentes a um dado vértice. Essa operação é de extrema importância quando se trata de simulação de deformação, visto que é necessário saber quais vértices deverão ser deslocadas para simular uma deformação quando um determinado vértice é tocado por um instrumento médico virtual, por exemplo [12]. A operação é realizada a partir de uma célula inicial que contenha o vértice dado e, a partir de suas relações de vizinhança, é possível chegar às outras células incidentes a este vértice.

(3)

Figura 2. Exemplo de estrela de um dado vértice (em vermelho).

IV. ESTRUTURAS DEDADOSUTILIZADAS

No presente trabalho foram utilizadas, para implementa-ção dos operadores, duas estruturas de dados implementadas em linguagem Java e destinadas a representar apenas malhas bidimensionais triangulares, para adequação ao ambiente de treinamento médico, ViMeT, que serão explicadas a seguir. A. Compact Half-Edge

A estrutura de dados CHE, retirada de [5], possui as vantagens de ser uma estrutura escalonável que pode ba-lancear desempenho e memória, possibilitando, caso haja disponibilidade, o uso de memória adicional para melhorar o seu desempenho.

Por ser uma estrutura escalonável ela é construída em 4 níveis, porém a estrutura implementada neste projeto possui somente os níveis 0, 1 e parcialmente o nível 2, tendo as informações que seriam armazenadas nos demais níveis recuperadas implicitamente.

No nível 0, também chamado de sopa de triângulos, são armazenadas apenas as informações necessárias para a visualização da malha, como os vértices presentes na malha, suas respectivas coordenadas e as células que os contêm.

As coordenadas dos vértices são armazenadas no vetor G[] e cada célula é representada implicitamente por 3 half-edges(semi-arestas).

Uma half-edge é uma aresta que possui orientação defi-nida a partir de seus triângulos adjacentes. Cada triângulo é representado por 3 half-edges consecutivas, sendo seu índice i, representado pela seguinte equação.

i = k + 3 ∗ t (1)

Sendo t o índice da célula e k o indice da half-edge na célula. Em outras palavras, o índice da half-edge é 3 vezes o índice da célula mais o índice local da half-edge na célula.

Assim, as half-edges 0, 1 e 2 pertencem ao triângulo 0, as half-edges 3, 4 e 5 são as half-edges do triângulo 1, e assim sucessivamente.

As half-edges são armazenadas por um vetor V[] de inteiros no qual na posição da half-edge há o índice do seu vértice de origem, denominado de seu “pé ”. Para obter a half-edge anterior e a próxima half-edge dentro de uma célula, utilizam-se as equações a seguir.

prox(he) = 3 × (he ÷ 3) + (he + 1)%3 (2) ante(he) = 3 × (he ÷ 3) + (he + 2)%3 (3)

A partir do nível 1 as relações entre os triângulos da malha são levadas em consideração. Neste nível a malha deixa de ser encarada apenas como uma sopa de triângulos e passa-mos a vê-la como um conjunto de triângulos conectados.

Na CHE para caracterizar uma relação de vizinhança é utilizado o conceito de semi-aresta oposta. Como é uma variedade de dimensão 2, cada aresta é incidente a no máximo dois triângulos; assim, cada aresta da malha terá duas half-edges incidentes quando for de interior e uma quando for de bordo.

Quando encontramos duas half-edges que possuem os mesmos vértices, porém apresentam direções opostas, temos uma relação de adjacência. Estas relações são representadas nesta estrutura por um vetor O[], no qual o índice deste vetor equivalente à half-edge é colocada sua half-edge oposta. Caso a half-edge seja de bordo, o que significa que não possui oposta, é armazenado o valor -1.

Na estrutura utilizada neste trabalho também foi utilizada uma tabela hash como ferramenta auxiliar para otimizar o carregamento das relações de vizinhança.

No nível 2 são criados novos vetores para a representação explícita de cada célula da malha.

São dois novos vetores: Edge Map - EH[] e Vertex Half-Edge- VH[], no vetor EH[] são armazenadas as arestas da malha, que são representadas por uma de suas half-edges, dado que a outra pode ser recuperada usando-se o vetor O[]. No vetor EH[] também são armazenados os vértices que compõem a aresta, recuperados a partir das half-edges que a compõem.

O vetor VH[] armazena para cada vértice uma half-edge incidente. Esse vetor é importante para operações de estrela do vértice, na qual é preciso percorrer todas as células incidentes de um determinado vértice.

Como na estrutura CHE a forma de percorrer as células é a partir das células opostas, é necessário conhecer uma das semi arestas que seja incidente àquele vértice.

Para o total funcionamento das operações de estrela do vértice, esta estrutura foi modificada para armazenar mais de uma half-edge incidente no vetor VH[], pois durante o carregamento a estrela deste vértice pode não estar completa e apresentar mais de um componente de células incidentes. No nível 3, atualmente não representado na CHE utili-zada, é criado um vetor para representar explicitamente as curvas de bordo presentes na malha, armazenados no vetor CH[].

Na Fig. 3, que representa um tetraedro planificado sem uma de suas faces, são exemplificados todos os vetores de armazenamento desta estrutura separados por níveis. B. Mate Face

A estrutura de dados MF, retirada de [4], contém um interface simples e eficiente. Consiste em uma estrutura flexível criada com o intuito de representar malhas bidimen-sionais e tridimenbidimen-sionais, além de poder representar malhas

(4)

Figura 3. Esquematização dos níveis da estrutura CHE.

com outros tipos de polígonos, como malhas compostas de quadriláteros.

A MF é composta por um vetor de vértices que os armazena a partir de suas respectivas coordenadas, além de uma referência à última célula incidente ao vértice. Para o presente trabalho esta parte da estrutura também foi modificada para que se aceite a inserção de mais de uma célula incidente, pois assim como na CHE, a estrela deste vértice pode não estar completa e apresentar mais de um "bloco"de células incidentes.

Para esta estrutura também é utilizado um vetor de células que armazena todos os vértices que a compõem e suas características de vizinhança.

Como citado anteriormente, essa estrutura pode conter um vetor de arestas. Entretanto, na estrutura utilizada para este trabalho, essa possibilidade não foi implementada, sendo as arestas representadas implicitamente.

Determinada após o carregamento das informações dos vértices e das células, a relação de vizinhança é obtida por meio de vértices opostos, em que o vetor de células é percorrido, procurando-se células que contenham dois vértices adjacentes em comum, ou seja, que contenham uma aresta em comum. Desse modo, caracteriza-se a relação de vizinhança.

Para isso, é necessário acessar os vértices de uma célula a partir de outro vértice incidente utilizando as equações ?? e ??, que retornarão o índice local do vértice procurado na célula e o símbolo % trata-se do resto da divisão. Os índices das células vizinhas são adicionados em relação ao índice do vértice oposto.

prox(i) = (i + 1)%3 (4)

ant(i) = (i + 2)%3 (5)

Armazenar esses índices pode ser uma tarefa muito de-morada, pois sua complexidade é quadrática em relação ao número de faces.

A fim de minimizar o tempo de processamento, foi utilizado um segundo método para adicionar vizinhanças, que utiliza uma tabela hash como estrutura auxiliar para otimizar o processo.

Na Fig. 4, são exemplificados todos os vetores de arma-zenamento de vértices e de células desta estrutura.

Figura 4. Representação da malha e dos vetores de vértices e células pela estrutura MF.

V. OPERADORES DEMANIPULAÇÃO

Os operadores de manipulação das estruturas de dados que deverão adicionar e remover triângulos dos objetos mo-delados sem alterar a coerência das relações de vizinhança, o que é imprescindível para um bom desempenho de todo o sistema.

Dado que este projeto fará parte de um framework já existente para simulações de cirurgias virtuais, a implemen-tação esta sendo feita em linguagem Java respeitando os paradigmas de orientação a objetos inerente a tal linguagem. Dois tipos de operadores serão implementados no presente projeto: operadores de adição de simplexos, que contribuirão para a simulação de suturas em procedimentos médicos virtuais e operadores de remoção de simplexos para a simulação de cortes em cirurgias virtuais.

A. Operadores de Adição

Os operadores de adição de células, destinados à si-mulação de suturas em órgãos virtuais, adicionam novas características de vizinhança ou células antes não existentes, que devem ser adicionadas sem alterar a coerência das relações de vizinhança.

Dado que para cada uma das estruturas de dados as relações de adjacência entre os triângulos são armazenadas de formas distintas, a implementação dos operadores é diferente para cada estrutura.

Para a implementação dos operadores foram observadas as possibilidades e os feitos de se inserir uma nova célula a uma malha já existente e, a partir disso, oito casos diferentes foram definidos.

1) Caso0v0a: ao adicionar uma nova célula não são consolidadas relações com vértices e arestas já existentes na malha.

2) Caso1v0a: a nova célula se relaciona com a malha já existente apenas por um vértice.

3) Caso2v0a: a nova célula se relaciona a malha por dois vértices, porém sem relações de arestas.

4) Caso3v0a: a nova célula é adicionada a partir de três vértices já existentes na malha, também sem nenhuma relação de arestas.

5) Caso2v1a: além da relação com dois vértices é esta-belecida uma relação com uma aresta.

6) Caso3v1a: todos os vértices da nova célula são relaci-onados a malha porem com apenas uma relação de arestas.

(5)

Figura 5. Exemplo de inserção de uma nova célula (em vermelho).

7) Caso3v2a: a célula inserida se relaciona com todos os vértices e apresenta duas relações de arestas.

8) Caso3v3a: a nova célula relaciona todos os seus vértices e suas arestas da malha previamente existente.

A Fig. 5 ilustra a ocorrência dos casos anteriormente citados.

B. Operadores de Remoção

Os operadores de Remoção de células são destinados à simulação de cortes em órgãos virtuais, removendo as características de vizinhança ou células existentes na malha, o que deve ser feito sem alterar a coerência das relações de vizinhança.

VI. RESULTADOS

Para cada um dos oito casos verificados foi implementado um operador para adição de um novo triângulo. Porém, como se trata de um projeto que ainda esta em fase de imple-mentação, os operadores atualmente funcionam a partir de uma leitura das características dos vértices e da vizinhança da malha, e são adicionados sequencialmente, seguindo a

Tabela I

INCIDÊNCIA DO USO DOS OPERADORES DE ADIÇÃO.

Caso0v0a 3 25 118 360 Caso1v0a 4 52 274 376 Caso2v0a 0 29 74 274 Caso2v1a 327 228 1561 669 Caso3v0a 0 10 0 125 Caso3v1a 23 93 539 969 Caso3v2a 305 312 2007 1656 Caso3v3a 22 119 497 1129 Total de Células 684 868 5070 5558 Tabela II

INCIDÊNCIA DO USO DOS OPERADORES DE ADIÇÃO.

Caso0v0a 59 1056 543 1071 2089 Caso1v0a 318 1684 1559 2344 7461 Caso2v0a 449 1367 396 1529 17383 Caso2v1a 1642 10818 4920 8065 14482 Caso3v0a 11 51 46 295 2366 Caso3v1a 376 4400 2106 4381 10044 Caso3v2a 2159 12872 8336 11870 21964 Caso3v3a 790 4798 2042 5431 30071 Total de Células 5804 37046 19948 34986 105860

ordem em qual eles se encontram no arquivo, até completar o objeto modelado em questão.

Posteriormente os operadores serão modificados para ope-rar somente nas áreas que entope-rarem em contato com o instrumento médico simulado no exame.

Os testes aqui citados foram conduzidos em nove malhas, bidimensionais, triangulares, de variedade 2 e com diferentes quantidades de simplexos cada.

A. Testes de geometria

Após a implementação dos operadores de adição foram efetuados uma série de testes em cada uma das estruturas de dados para verificar se os operadores não comprometiam a geometria das malhas.

Para estes testes foi considerada a impressão da estrela de todos os vértices geradas a partir das relações de vizi-nhança que foram consolidadas com o uso dos operadores e posteriormente comparadas com a mesma impressão gerada pelas estruturas de dados já existentes no ViMeT.

A partir destes testes verificou-se que os operadores de adição estão funcionando corretamente e então gerou-se uma estatística de uso dos operadores de inserção de células, Tabelas I e II, que apresentam os oito casos de inserção e as malhas que foram utilizadas para os testes assim como seu respetivo numero de células.

(6)

Figura 6. Comparação de tempo de carregamento da estrutura MF e seus operadores de adição.

Figura 7. Comparação de tempo de carregamento da estrutura CHE e seus operadores de adição.

B. Testes de performance

Dado que os operadores de adição de células atualmente funcionam inserindo todas as células presentes na malha se-quencialmente até o final da mesma, o tempo deste processo, que se assemelha com um carregamento, foi comparado com o tempo que cada uma das estruturas aqui citadas leva pra carregar as malhas testadas, não apresentando muita diferença neste quesito, como mostrado nas Figs. 6 e 7.

Para este teste o procedimento de carregamento das malhas foi executado 30 vezes por malha usando-se as estruturas aqui apresentadas e seus respectivos operadores, com o tempo decorrido de cada uma das 30 execuções foi feita uma média do tempo gasto no carregamento para cada malha como podemos ver nas Figs. 6 e 7.

Todos os carregamentos foram executados no mesmo computador, com processador Intel Core i5 241 @2,3GHz, 4GB de RAM e sistema operacional Windows 7 (64bits), e para conferir o tempo de execução foi utilizado o método currentTimeMillis() da classe System da linguagem Java.

VII. CONCLUSÕES ETRABALHOSFUTUROS

Vale a pena mencionar que este artigo representa resul-tados parciais de um trabalho ainda em andamento. Foram propostos oito operadores para a manipulação (adição e re-moção) de triângulo, tanto na estrutura CHE quanto na MF; foram implementados por enquanto apenas os operadores de

adição. O testes realizados indicam que a performance do carregamento das malhas nas estruturas foi similar a versão que não utiliza operadores. Além disso os mesmos também revelaram que a coerência topológica da malha foi mantida. Os próximos passos serão a implementação dos operado-res de remoção, que devem realizar a operação inversa dos oito operadores descritos neste texto e a sua avaliação num aplicativo de refinamento de malhas; Também está previsto, a inclusão dos operadores dentro do ambiente de treinamento médico virtual citado previamente.

REFERÊNCIAS

[1] F. L. S. Nunes, R. M. E. M. Costa, L. S. Machado, R. M. Moraes. Realidade Virtual para saúde no Brasil: conceitos, desafios e oportunidades. Revista Brasileira de Engenharia Biomédica 27(4): 243-258, 2011.

[2] A. C. M. T. G. de Oliveira and F. de Lourdes dos Santos Nunes. Building a open source framework for virtual medical training. J. Digital Imaging, 23(6):706-720, 2010.

[3] M. Kera, H. Pedrini, and F. Nunes. Ambiente virtual interativo com colisão e deformação de objetos para treinamento médico. Revista de Informática Técnica e Aplicada, 18(2): 205-233, 2011.

[4] I. L. L. Cunha. Estrutura de dados mate face e aplicações em geração e movimentos de malhas. ICMCUSP, São Paulo (SP), 2009.

[5] M. Lages, T. Lewiner, H. Lopes, and L. Velho. Che: A scalable topological data structure for triangular meshes. PUC-Rio, Rio de Janeiro, 2005.

[6] B. G. Baumgart, A polyhedron representation for computer vision, in: Proceedings of the May 19-22, 1975, national computer conference and exposition, ACM, New York, NY, USA, pp. 589-596, 1975.

[7] M. Mantyla, An Introduction to Solid Modeling, Monography - Computer Science Press, Computer Science Press, 1988. [8] H. Lopes, M. Ferreira Estruturas de Dados Topológicas

Esca-lonáveis para Variedades de dimensão 2 e 3. PUCRio, Rio de Janeiro, 2006.

[9] J. Rossignac, A. Safonova, A. Szymczak, 3d compression made simple: Edgebreaker on a corner-table, in: Shape Modeling International Conference, pp. 278-283, 2001.

[10] M. Lizier, Geração de malhas a partir de imagens com textura, Qualificação de doutorado, Universidade de São Paulo, São Paulo, 2006.

[11] T. Lewiner, H. Lopes, E. Medeiros, G. Tavares and L. Velho. Topological mesh operators, in: Computer Aided Geometric Design, 27(1): 1-22, 2010.

[12] G. R. Pereira, J. Santos, H. H. Bíscaro, and F. L. Nunes. Implementação e comparação de estruturas de dados eficientes para treinamento médico baseado em realidade virtual. Unpu-blished.

Referências

Documentos relacionados

[r]

As sementes tem dormência imposta pelo tegumento e para a superação é necessário submetê-las à embebição em água (24 a 48 horas), escarificação mecânica ou

Promovido pelo Sindifisco Nacio- nal em parceria com o Mosap (Mo- vimento Nacional de Aposentados e Pensionistas), o Encontro ocorreu no dia 20 de março, data em que também

A assistência da equipe de enfermagem para a pessoa portadora de Diabetes Mellitus deve ser desenvolvida para um processo de educação em saúde que contribua para que a

A Figura 17 apresenta os resultados obtidos por meio da análise de DSC para a amostra inicial da blenda PBAT/PHBH-0 e para as amostras PBAT/PHBH-4, PBAT/PHBH-8 e

• Árvores são ideais para armazenar hierarquias, além de serem mais rápidas e eficientes do que as estruturas de dados lineares... • É formada por um “conjunto de

– Os elementos devem estar ordenados – Realizar a busca pelo meio do vetor.

• Estas árvore podem assumir diferentes formas quando criadas ou modificadas. – A ordem de inserção ou remoção influem no formato