AIF – Uma estrutura de dados B-rep para modelos poligonais Frutuoso G. M. Silva Abel J. P. Gomes IT – Grupo de Redes e Multimedia Dep. Informática, Univ. da Beira Interior Rua Marquês d’Ávila e Bolama, 6201-001 Covilhã {fsilva,agomes}@di.ubi.pt Resumo Este artigo introduz uma nova estrutura de dados b-rep (boundary representation) designada de AIF (Adjacency and Incidence Framework). A estrutura de dados AIF é concisa e permite o acesso rápido à sua informação topológica. A sua concisão resulta do facto de ser uma estrutura de dados orientável mas não orientada, isto é, a orientação é induzida topologicamente como é necessário em várias aplicações. É uma estrutura de dados óptima na classe 9 4 C , o que significa que um número mínimo de acessos é necessário para aceder a toda a informação sobre adjacências e incidências. A estrutura de dados AIF suporta a representação de modelos poligonais, não necessariamente triangulares, mesmo em condições de “non-manifold”. Palavras chave Estruturas de dados, modelos poligonais, representação de sólidos. 1. INTRODUÇÃO Na computação gráfica, a complexidade dos modelos tridimensionais tem aumentado notoriamente devido em parte às tecnologias de aquisição de dados tridimensionais como os scanners 3D. Este tipo de tecnologias produzem modelos poligonais, normalmente designados por malhas poligonais usadas nas mais variadas aplicações como, por exemplo, multi-resolução, ambientes virtuais ou ainda, visualização de sólidos e superfícies. De facto, muitos trabalhos de investigação tem sido feitos nos últimos anos no âmbito de malhas poligonais, particularmente na análise multi-resolução [Heckbert97, Garland99], morfização de malhas [Lee99], edição interactiva de malhas [Zorin97], e na compressão geométrica e transmissão pela Internet [Taubin98]. Aplicações diferentes têm necessidades diferentes. Algumas necessitam mais de memória, outras necessitam mais de acesso rápido à informação sobre adjacências e incidências. Infelizmente, estas operações de acesso nem sempre são rápidas e eficientes como é necessário nalgumas aplicações e estruturas de dados, em particular em malhas com grande número de células (vértices, arestas e faces). Isto deve-se sobretudo ao design das estruturas de dados. Por exemplo, encontrar uma célula na estrutura de dados CTR (Cell-Tuple Representation)[Brisson93] requer processar todos os tuplos, o que é obviamente pouco prático e lento em malhas de grandes dimensões. Algumas estruturas de dados representam uma malha triangular através dum conjunto de faces, sendo cada face composta pelos vértices [Hoppe98]. Este é também o caso do formato VRML (Virtual Reality Modeling Language) [Carey97]. Contudo, esta estratégia torna difícil a implementação de algoritmos rápidos de acesso à informação topológica. Por exemplo, determinar as faces incidentes num vértice é uma operação lenta porque é necessário percorrer todas as faces da estrutura de dados. Uma forma de acelerar os algoritmos de procura é a utilização de estruturas de dados orientadas (Winged-Edge [Baumgart72], Half-edge [Mantyla88], ou Radial Edge [Weiler88]). No entanto, estas estruturas de dados necessitam de mais memória para armazenar as células orientadas. Por exemplo, na estrutura de dados Radial Edge, cada face tem associados dois conjuntos de arestas (loops), um para cada lado da face; além disso, se houver três faces incidentes numa aresta, são necessárias seis arestas orientadas. Lee e Lee [Lee01] propuseram uma nova estrutura de dados orientada, designada por partial entity structure, para modelos não manifold, que não é mais que uma optimização da estrutura Radial Edge que necessita de menos memória. Esta estrutura contem para além das entidades vértice, aresta, face, loop e shell outro tipo de entidades, designadas de partial entity, para representar os casos não manifold. Assim contém as entidades partial vertex, partial edge e partial face para 12º Encontro Português de Computação Gráfica 8 - 10 Outubro 2003 1