SlideShare uma empresa Scribd logo
Geometria Computacional - Winged Edge
Michel Alves dos Santos ∗
Outubro de 2011
Resumo
O uso de estruturas de dados avançadas para
representação de objetos poligonais é impor-
tante em muitos casos, por exemplo: durante a
simplificação da malha poligonal de um modelo
tridimensional (figura 3). É necessário o conhe-
cimento das adjacências entre os componentes
da malha, como faces e vértices. Tais estruturas
são conhecidas como boundary representations
(“representações de bordas”) ou simplesmente
b-reps, que armazenam os dados de um objeto
poligonal (vértices, arestas e faces), além de in-
formações adicionais sobre adjacências (Glass-
ner, 1991). Neste pequeno artigo iremos falar
sobre a estrutura de dados Winged-Edge pro-
posta por (Baumgart, 1975) para representação
de modelos poligonais e exibir alguns trechos al-
gorítmicos relativos a consultas que podem ser
realizadas nessa estrutura com o intuito de des-
cobrir relações de adjacência e incidência envol-
vendo vértices, arestas e faces. As consultas se-
rão apresentadas em formato de pseudo-código.
1 Introdução
Uma das estruturas de dados baseada em
aresta é a Winged-Edge, introduzida por (Baum-
gart, 1975; Hanks, 2005). Esta estrutura associa
a cada aresta identificadores das arestas imedi-
atamente anterior e posterior. Para cada sen-
tido da aresta temos, portanto, uma aresta an-
terior e posterior, ou seja, anterior horária (pcw
ou egde-head-right), posterior horária (ncw ou
egde-tail-right), anterior anti-horária (pccw ou
egde-tail-left) e posterior anti-horária (nccw ou
egde-head-left). As relações de adjacência e in-
cidência podem ser observadas nas figuras 1, 2,
4, 5 e 6.
∗Bacharelando em Ciência da Computação, Univer-
sidade Federal do Estado de Alagoas (UFAL). E-mail:
michel.mas@gmail.com. Disciplina: Geometria Compu-
tacional. Docente Responsável: Thales Vieira.
Figura 1: Visualização da estrutura de dados
Winged-Egde. Observe que existe uma orien-
tação entre os vértices inicial e final da aresta
e que esta mesma ainda mantêm apontadores
para as arestas posteriores e anteriores, ocor-
rendo o mesmo com as faces adjacentes. A face
denotada pelo apontador face_right possui sen-
tido horário de navegação em relação a orienta-
ção v0v1 enquanto a face face_left possui sen-
tido anti-horário.
Figura 2: Visualização da estrutura de dados
Winged-Egde em relação a um polígono. Ob-
serve como a estrutura e sua semântica de ori-
entação facilitam a navegação em relação a dis-
posição de elementos: vértices, arestas e faces.
1
Explorando esta representação das arestas,
as faces incluem somente o identificador de
uma aresta arbitrária e sua orientação na face.
Partindo-se desta aresta, todas as demais ares-
tas da face podem ser acessadas utilizando os
identificadores de aresta anterior ou posterior.
Uma variação desta estrutura adiciona os iden-
tificadores das faces incidentes nos dois sentidos
(Farin et al., 2003).
A estrutura de dados Winged-Egde é um po-
deroso mecanismo para manipulação de mode-
los poligonais, onde a idéia básica é baseada em
uma aresta e seus polígonos adjacentes. O nome
dessa estrutura é proveniente do corpo de uma
borboleta, imaginando os dois polígonos como
suas asas e a aresta como o seu corpo, separando
suas asas.
2 Estrutura
Uma listagem em pseudo-código da estrutura
Winged-Edge pode ser visualizada logo abaixo.
Podemos observar que o receptáculo que repre-
senta uma aresta através da abordagem Winged-
Edge armazena oito apontadores: dois para os
vértices inicial e final (tail e head), dois para as
faces incidentes da esquerda e da direita (left e
right) e quatro para as arestas adjacentes.
/∗ Data s t r u c t u r e − Vertex ∗/
c l a s s WE_Vertex
{
WE_Edge ∗ incident_edge ;
WE_VertexDataObject data ;
}
/∗ Data s t r u c t u r e − Edge∗/
c l a s s WE_Edge
{
// V e r t i c e s
WE_Vertex ∗ v e r t e x _ t a i l ;
WE_Vertex ∗ vertex_head ;
// Faces
WE_Face ∗ f a c e _ l e f t , ∗ f a c e _ r i g h t ;
// Edges
WE_Edge ∗ egde_head_left ;
WE_Edge ∗ egde_head_right ;
WE_Edge ∗ e g d e _ t a i l _ l e f t ;
WE_Edge ∗ e g d e _ t a i l _ r i g h t ;
// A data
WE_EdgeDataObject data ;
}
/∗ Data s t r u c t u r e − Face ∗/
c l a s s WE_Face
{
WE_Edge ∗ incident_edge ;
WE_FaceDataObject data ;
}
O receptáculo que representa vértices arma-
zena apenas um apontador para a aresta no qual
o mesmo incide. O receptáculo que representa
uma face armazena, da mesma maneira, ape-
nas um apontador para uma aresta arbitrária
na qual a face incide.
3 Consultas Suportadas
A escolha de uma estrutura de dados é deter-
minada pelo conjunto de operações elementares
que são suportadas eficientemente. A estrutura
Winged-Edge possui um conjunto de operações
básicas decorrentes de sua prototipação e um
conjunto de operações extendidas de baixa com-
plexidade. Alguns exemplos de consulta podem
ser visualizados logo abaixo:
• (FV) Todos os vértices de uma face;
• (EV) Vértices de uma aresta (extremos);
• (VF) Todas as faces que compartilham um
vértice;
• (EF) Todas as faces que compartilham uma
aresta;
• (FE) Todas as arestas de uma face;
• (VE) Todas as arestas que compartilham
um vértice;
Para a estrutura Winged-Edge as operações EV
e EF são consideradas básicas ou trivias (Nepe-
rud et al., 2007).
3.1 Consultas Básicas
Como dito antes, a estrutura Winged-Edge
possui um conjunto de operações básicas decor-
rentes de sua prototipação. Algumas dessas ope-
rações são listadas logo abaixo:
• Dado um vértice, retornar a aresta imedi-
tamente incidente ao vértice;
• Dada uma aresta, retornar os vértices de
suas extremidades (EV);
• Dada uma aresta, retornar as faces que o
compartilham;
• Dada uma aresta, retornar as arestas adja-
centes;
• Dada uma face, retornar a aresta imediata-
mente incidente.
2
/∗ I n c i d e n t Edge∗/
WE_Edge E = v−>incident_edge ;
/∗ Extreme V e r t i c e s ∗/
WE_Vertex t a i l = e−>v e r t e x _ t a i l ;
WE_Vertex head = e−>vertex_head ;
/∗ A l l f a c e s s h a r i n g an edge ∗/
WE_Face l e f t = e−>f a c e _ l e f t ;
WE_Face r i g h t = e−>f a c e _ r i g h t ;
// Adjacent Edges
WE_Edge h l = e−>egde_head_left ;
WE_Edge hr = e−>egde_head_right ;
WE_Edge t l = e−>e g d e _ t a i l _ l e f t ;
WE_Edge t r = e−>e g d e _ t a i l _ r i g h t ;
// I n c i d e n t Edge
WE_Edge E = f −>incident_edge ;
3.2 Consultas Extendidas
Como dito antes, a estrutura Winged-Edge
possui um conjunto de operações extendidas de
baixa complexidade. Alguns exemplos são apre-
sentados a seguir:
• Dada uma face retornar todas as arestas;
/∗ A l l edges o f a f a c e ∗/
WE_Edge_List FE (WE_Face f )
{
WE_Edge_List l i s t ;
WE_Edge e0 = f −>incident_edge ;
WE_Edge e = e0 ;
do
{
l i s t . put ( e ) ;
i f ( e−>f a c e _ l e f t == f )
{
e = e−>egde_head_left ;
}
e l s e
{
e = e−>e g d e _ t a i l _ r i g h t ;
}
} w h i l e ( e != e0 ) ;
r e t u r n l i s t ;
}
As operações FV e VF são similares.
• Dado um vértice retornar todas as arestas
que o compartilham;
/∗ A l l edges s h a r i n g a v e r t e x ∗/
WE_Edge_List VE (WE_Vertex v )
{
WE_Edge_List l i s t ;
WE_Edge e0 = v−>incident_edge ;
WE_Edge e = e0 ;
do
{
l i s t . put ( e ) ;
i f ( e−>vertex_head == v )
{
e = e−>egde_head_right ;
}
e l s e
{
e = e−>e g d e _ t a i l _ l e f t ;
}
} w h i l e ( e != e0 ) ;
r e t u r n l i s t ;
}
• Dado um vértice retornar todas as faces in-
cidentes;
WE_Face_List VFL (WE_Vertex v )
{
WE_Face_List l i s t ;
WE_Edge e0 = v−>incident_edge ;
WE_Edge e = e0 ;
WE_Face f = e−>f a c e _ l e f t ;
do
{
l i s t . put ( f ) ;
i f ( e−>vertex_head == v )
{
e = e−>egde_head_right ;
f = e−>f a c e _ l e f t ;
}
e l s e
{
e = edge−>e g d e _ t a i l _ l e f t ;
f = e−>f a c e _ r i g h t ;
}
} w h i l e ( e != e0 ) ;
r e t u r n l i s t ;
}
• Dado um vértice retornar todos os demais
vértices vizinhos;
WE_Vertex_List VVL (WE_Vertex v )
{
WE_Vertex_List l i s t ;
WE_Edge e0 = v−>incident_edge ;
WE_Edge e = e0 ;
WE_Vertex v = e−>vertex_head ;
do
{
l i s t . put ( v ) ;
i f ( e−>vertex_head == v )
{
e = e−>egde_head_right ;
v = e−>vertex_head ;
}
e l s e
{
e = edge−>e g d e _ t a i l _ l e f t ;
v = e−>v e r t e x _ t a i l ;
}
} w h i l e ( e != e0 ) ;
r e t u r n l i s t ;
}
• Dado uma aresta retornar todos as demais
arestas vizinhas;
WE_Edge_List EEL (WE_Edge E)
{
WE_Edge_List l 1 = VEL(E−> v e r t e x _ t a i l ) ;
WE_Edge_List l 2 = VEL(E−>vertex_head ) ;
3
// Remove edge E from the l i s t s
l 1 . remove (E) ;
l 2 . remove (E) ;
// Combine l i s t s
r e t u r n l 1 + l 2 ;
}
• Dada uma face retornar as demais faces in-
cidentes;
WE_Face_List FFL (WE_Face F)
{
WE_Edge_List l 1 = FE(F) ;
WE_Face_List l i s t ;
WE_Edge e ;
f o r each ( e i n l 1 )
{
i f ( e−>f a c e _ l e f t == F)
{
l i s t . put ( e−>f a c e _ r i g h t ) ;
}
e l s e
{
l i s t . put ( e−>f a c e _ l e f t ) ;
}
}
r e t u r n l i s t ;
}
• Calcular a K-ésima vizinhança estrelada,
dado K e um vértice;
/∗ KStarryNeighborhood − Neighbourhood s t a r ∗/
//K − s i z e o f neighborhood
// v l − v e r t e x l i s t with one v e r t e x i n i t i a l l y
// b l − l i s t t h a t c h e c k s i f v e r t e x l a b e l e d
WE_Vertex_List KSN( I n t K,
WE_Vertex_List vl ,
B o o l L i s t& b l )
{
i f (K == 1 )
{
r e t u r n Neighbors ( vl , b l ) ;
}
e l s e
{
r e t u r n Neighbors (KSN(K−1 , vl , b l ) , b l ) ;
}
}
/∗ Returns l i s t o f a l l n e i g h b o r s ∗/
WE_Vertex_List Neighbors ( WE_Vertex_List vl ,
B o o l L i s t& b l )
{
WE_Vertex v ;
WE_Vertex_List l i s t
f o r each ( v i n v l )
{
l i s t = l i s t + VVL( v , b l ) ;
}
r e t u r n l i s t ;
}
/∗ Returns a l l marked n e i g h b o r s ∗/
WE_Vertex_List VVL( WE_Vertex v , B o o l L i s t& b l )
{
WE_Vertex_List l i s t ;
WE_Edge e0 = v−>i n c i d e n t _ e d g e ;
WE_Edge e = e0 ;
WE_Vertex v = e−>vertex_head ;
do
{
// c h e c k s i f t he v e r t e x i s marked
i f ( ! b l [ v−>i d ] )
{
l i s t . put ( v ) ;
b l [ v−>i d ] = t r u e ;
}
i f ( e−>vertex_head == v )
{
e = e−>egde_head_right ;
v = e−>vertex_head ;
}
e l s e
{
e = edge −> e g d e _ t a i l _ l e f t ;
v = e−> v e r t e x _ t a i l ;
}
} w h i l e ( e != e0 ) ;
r e t u r n l i s t ;
}
4 Conclusões
A estrutura de dados Winged-Edge foi intro-
duzida por (Baumgart, 1975) para simplificar
a manipulação de modelos poligonais pois man-
têm tanto informação geométrica quanto topoló-
gica (figura 6), o que facilita ainda mais o trata-
mento de alguns modelos. Além disso Winged-
Edge possui um conjunto de operações triviais
que facilitam a execução de consultas de adja-
cência e incidência sem proporcionar demasiada
sobrecarga.
A estrutura de dados Winged-Edge permite
a passagem rápida entre faces, arestas e vér-
tices, devido à sua estrutura explicitamente li-
gada em rede (figura 4). Esta forma de especifi-
car uma grade desestruturada está em contraste
com especificações mais simples de malhas de
polígonos, tais como nó e lista de elementos, ou
a conectividade implícita de uma grade regular
(de Berg et al., 2008).
Figura 3: A estrutura Winged-Egde é uma re-
presentação de dados utilizada para descrever
modelos poligonais em computação gráfica. Ex-
plicitamente descreve a geometria e a topologia
de faces, arestas e vértices quando três ou mais
superfícies se reúnem e se encontram em uma
aresta comum.
O principal incômodo da estrutura Winged-
Egde é sua grande demanda de armazenamento
o que ocasiona maior complexidade devido à
manutenção dos vários índices pertencentes as
listas de vértices, arestas e faces. Um exemplo
dessa demanda pode ser observado através da
figura 5.
4
Figura 4: A estrutura Winged-Egde permite a pas-
sagem rápida entre faces, arestas e vértices, devido
à estrutura explicitamente ligada em rede. Esta re-
presentação é amplamente utilizada em programas
de modelagem para fornecer maior flexibilidade na
alteração dinâmica da geometria da malha, com isso
operações de divisão e mesclagem podem ser execu-
tadas rapidamente (Foley, 1996).
Referências
Baumgart, B. G. (1975), ‘Winged-edge polyhe-
dron representation for computer vision’, Na-
tional Computer Conference.
Beall, M. W. & Shephard, M. S. (1997), ‘A ge-
neral topology-based mesh data structures’,
International Journal for Numerical Methods
in Engineering 40(9), 1573–1596.
Braid, I., Hillyard, R. & Stroud, I. (1980),
‘Stepwise construction of polyhedra in geo-
metric modelling’, Mathematical Methods in
Computer Graphics and Design pp. 123–141.
de Berg, M., Cheong, O. & van Kreveld, M.
(2008), Computational geometry: algorithms
and applications, 3 ed., Springer.
Farin, G., Hamann, B. & Hagen, H. (2003), Hie-
rarchical and geometrical methods in scientific
visualization, Mathematics and visualization,
Springer.
Fischer, R. (1991), Genesys - um sistema hí-
brido de modelagem de sólidos, Master’s the-
sis, Departamento de Informática - Pontifícia
Universidade Católica - PUC-Rio - Rio de Ja-
neiro.
Foley, J. D. (1996), Computer graphics: princi-
ples and practice, 2 ed., Addison-Wesley Pro-
fessional.
Glassner, A. S. (1991), ‘Maintaining winged-
edge models’, Graphics Gems II - Academic
Press 2, 191–201.
Gois, J. & Piteri, M. (2002), ‘Geração automá-
tica de malhas de elementos finitos e a estru-
tura de dados winged-edge modificada’, Ten-
dências em Matemática Aplicada e Computa-
cional 3(1), 121–130.
Hanks, B. W. (2005), Proceedings of the 14th
International Meshing Roundtable, Springer.
Leondes, C. T. (2002), Database and data com-
munication network systems: techniques and
applications, Vol. 2, Elsevier Science - Acade-
mic Press.
Neperud, B., Lowther, J. & Shene, C.-K. (2007),
‘Visualizing and animating the winged-edge
data structure’, Elsevier.
O’Rourke, J. (1998), Computational geometry in
C, 2 ed., Cambridge University Press.
Piteri, M. (1999), Geração Automática de Ma-
lhas Hierárquico-Adaptativas em Domínios
Bidimensionais e Tridimensionais, PhD the-
sis, Universidade Técnica de Lisboa.
Piteri, M. & Almeida, J. (1995), ‘Hierarchical 2d
mesh generation using topological data struc-
tures’, Education, Practice and Promotion of
Computational Methods in Engineering Using
Small Computers 2, 981–986.
Vince, J. A. (2000), Essential computer anima-
tion fast: how to understand the techniques
and potential of computer animation, Sprin-
ger.
Conteúdo
1 Introdução 1
2 Estrutura 2
3 Consultas Suportadas 2
3.1 Consultas Básicas . . . . . . . . . . . 2
3.2 Consultas Extendidas . . . . . . . . 3
4 Conclusões 4
Referências 5
5
Figura 5: A principal desvantagem da estrutura Winged-Egde é a sua grande demanda de armazenamento
o que acarreta maior complexidade devido à manutenção de muitos índices. Uma boa discussão das
questões de implementação da estrutura Winged-Egde para malhas pode ser encontrada no livro Graphics
Gems II.
Figura 6: Uma estrutura de dados topológica representa a completa topologia de um objeto em estudo
(Gois & Piteri, 2002; Beall & Shephard, 1997; Piteri & Almeida, 1995; Piteri, 1999). Uma característica
fundamental associada a essas estruturas é que qualquer informação relativa à topologia pode ser obtida
em tempo constante ou proporcional ao número de entidades envolvidas, independentemente da dimensão
do problema, quer a malha possua 1 milhão de elementos triangulares ou 100 mil elementos, já que estas
informações são de natureza local. A estrutura de dados topológica Winged-Egde concentra a maior parte
de suas informações na entidade aresta (O’Rourke, 1998). Isto acontece em função do fato de que em
qualquer modelo poliedral manifold, uma aresta pertence a exatamente duas faces, ou seja, este número
é invariante (Baumgart, 1975). Da forma como foi concebida originariamente, esta estrutura não permite
representar diretamente uma face com mais de uma componente conexa, ou seja, buracos em seu interior
(Vince, 2000). Com a introdução da entidade ciclo (Braid et al., 1980), pode-se representar faces com mais
de uma componente conexa, e assim, a estrutura passa a ser referenciada como winged-edged modificada
(Fischer, 1991; Leondes, 2002).
6

Mais conteúdo relacionado

Mais procurados

Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasEstrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasLeinylson Fontinele
 
Projeto de Interiores Comerciais
Projeto de Interiores Comerciais   Projeto de Interiores Comerciais
Projeto de Interiores Comerciais danilosaccomori
 
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)Leinylson Fontinele
 
Arquitetura Protomoderna
Arquitetura ProtomodernaArquitetura Protomoderna
Arquitetura ProtomodernaBruna Batista
 
Sistemas construtivos _ pavimentos permeáveis
Sistemas construtivos _ pavimentos permeáveisSistemas construtivos _ pavimentos permeáveis
Sistemas construtivos _ pavimentos permeáveisleonardoenginer
 
Marcela, Rafael e Thais - Concreto Armado
Marcela, Rafael e Thais - Concreto ArmadoMarcela, Rafael e Thais - Concreto Armado
Marcela, Rafael e Thais - Concreto Armadodiogenesfm
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoValquíria Duarte D'Amato
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosAricelio Souza
 
Java Básico :: Classe Vector
Java Básico :: Classe VectorJava Básico :: Classe Vector
Java Básico :: Classe VectorWesley R. Bezerra
 
Árvore B estruturas de dados e técnicas de programação
Árvore B estruturas de dados e técnicas de programaçãoÁrvore B estruturas de dados e técnicas de programação
Árvore B estruturas de dados e técnicas de programaçãoEverson Wolf
 
Roberto Burle Marx - Paisagista
Roberto Burle Marx - Paisagista Roberto Burle Marx - Paisagista
Roberto Burle Marx - Paisagista kellynevess
 
Arq portuguesa manuelino_barroco (1)
Arq portuguesa manuelino_barroco (1)Arq portuguesa manuelino_barroco (1)
Arq portuguesa manuelino_barroco (1)Januário Esteves
 
apostila_ECA_pilares.pdf
apostila_ECA_pilares.pdfapostila_ECA_pilares.pdf
apostila_ECA_pilares.pdfRachelSam9
 
Relatório Desenho Técnico
Relatório Desenho TécnicoRelatório Desenho Técnico
Relatório Desenho TécnicoCássio Campos
 

Mais procurados (20)

Concreto protendido
Concreto protendidoConcreto protendido
Concreto protendido
 
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente EncadeadasEstrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
Estrutura de Dados - Aula 09 - Listas Simplesmente Encadeadas
 
Planejamento e gerenciamento de obras
Planejamento e gerenciamento de obrasPlanejamento e gerenciamento de obras
Planejamento e gerenciamento de obras
 
Projeto de Interiores Comerciais
Projeto de Interiores Comerciais   Projeto de Interiores Comerciais
Projeto de Interiores Comerciais
 
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
Banco de Dados II Aula 10 - Linguagem de Consulta SQL (SQL Avançada)
 
Arquitetura Protomoderna
Arquitetura ProtomodernaArquitetura Protomoderna
Arquitetura Protomoderna
 
Sistemas construtivos _ pavimentos permeáveis
Sistemas construtivos _ pavimentos permeáveisSistemas construtivos _ pavimentos permeáveis
Sistemas construtivos _ pavimentos permeáveis
 
Marcela, Rafael e Thais - Concreto Armado
Marcela, Rafael e Thais - Concreto ArmadoMarcela, Rafael e Thais - Concreto Armado
Marcela, Rafael e Thais - Concreto Armado
 
Qualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projetoQualidade de software e sua influência no sucesso do projeto
Qualidade de software e sua influência no sucesso do projeto
 
Sistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplosSistemas NoSQL, surgimento, características e exemplos
Sistemas NoSQL, surgimento, características e exemplos
 
Alvenaria
AlvenariaAlvenaria
Alvenaria
 
Java Básico :: Classe Vector
Java Básico :: Classe VectorJava Básico :: Classe Vector
Java Básico :: Classe Vector
 
Árvore B estruturas de dados e técnicas de programação
Árvore B estruturas de dados e técnicas de programaçãoÁrvore B estruturas de dados e técnicas de programação
Árvore B estruturas de dados e técnicas de programação
 
Interiores 1
Interiores 1 Interiores 1
Interiores 1
 
Aula 04 Planejamento e Controle de Obras
Aula 04 Planejamento e Controle de ObrasAula 04 Planejamento e Controle de Obras
Aula 04 Planejamento e Controle de Obras
 
Roberto Burle Marx - Paisagista
Roberto Burle Marx - Paisagista Roberto Burle Marx - Paisagista
Roberto Burle Marx - Paisagista
 
Arq portuguesa manuelino_barroco (1)
Arq portuguesa manuelino_barroco (1)Arq portuguesa manuelino_barroco (1)
Arq portuguesa manuelino_barroco (1)
 
apostila_ECA_pilares.pdf
apostila_ECA_pilares.pdfapostila_ECA_pilares.pdf
apostila_ECA_pilares.pdf
 
Relatório Desenho Técnico
Relatório Desenho TécnicoRelatório Desenho Técnico
Relatório Desenho Técnico
 
Aulas de concreto armado
Aulas de concreto armadoAulas de concreto armado
Aulas de concreto armado
 

Semelhante a Winged-Edge Report

Alg2_02.Grafos_ED na programacao geral.pdf
Alg2_02.Grafos_ED na programacao geral.pdfAlg2_02.Grafos_ED na programacao geral.pdf
Alg2_02.Grafos_ED na programacao geral.pdfHurgelNeto
 
Análise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de GrafosAnálise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de GrafosDelacyr Ferreira
 
Introducao a fisica - aula sobre vectores
Introducao a fisica - aula sobre vectoresIntroducao a fisica - aula sobre vectores
Introducao a fisica - aula sobre vectoresRodriguesAntonioNabo
 
Introdução aos grafos: Principais conceitos
Introdução aos grafos: Principais conceitosIntrodução aos grafos: Principais conceitos
Introdução aos grafos: Principais conceitosssusera0fc94
 

Semelhante a Winged-Edge Report (8)

Grafos.ppt
Grafos.pptGrafos.ppt
Grafos.ppt
 
Alg2_02.Grafos_ED na programacao geral.pdf
Alg2_02.Grafos_ED na programacao geral.pdfAlg2_02.Grafos_ED na programacao geral.pdf
Alg2_02.Grafos_ED na programacao geral.pdf
 
Análise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de GrafosAnálise de Algoritmos - Conceitos de Grafos
Análise de Algoritmos - Conceitos de Grafos
 
Introducao a fisica - aula sobre vectores
Introducao a fisica - aula sobre vectoresIntroducao a fisica - aula sobre vectores
Introducao a fisica - aula sobre vectores
 
Aula Grafos
Aula GrafosAula Grafos
Aula Grafos
 
Introdução aos grafos: Principais conceitos
Introdução aos grafos: Principais conceitosIntrodução aos grafos: Principais conceitos
Introdução aos grafos: Principais conceitos
 
Grafos_1.pptx
Grafos_1.pptxGrafos_1.pptx
Grafos_1.pptx
 
transformacao1.ppt
transformacao1.ppttransformacao1.ppt
transformacao1.ppt
 

Mais de Michel Alves

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseMichel Alves
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesMichel Alves
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresMichel Alves
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesMichel Alves
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel FunctionsMichel Alves
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceMichel Alves
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - ResultsMichel Alves
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseMichel Alves
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexMichel Alves
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationMichel Alves
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsMichel Alves
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMichel Alves
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in RMichel Alves
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel PrototypeMichel Alves
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh PlotMichel Alves
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesMichel Alves
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogMichel Alves
 

Mais de Michel Alves (20)

Texture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU UseTexture Synthesis: An Approach Based on GPU Use
Texture Synthesis: An Approach Based on GPU Use
 
Intelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color PalettesIntelligent Transfer of Thematic Harmonic Color Palettes
Intelligent Transfer of Thematic Harmonic Color Palettes
 
A Framework for Harmonic Color Measures
A Framework for Harmonic Color MeasuresA Framework for Harmonic Color Measures
A Framework for Harmonic Color Measures
 
Effectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment IndexesEffectiveness of Image Quality Assessment Indexes
Effectiveness of Image Quality Assessment Indexes
 
Introduction to Kernel Functions
Introduction to Kernel FunctionsIntroduction to Kernel Functions
Introduction to Kernel Functions
 
About Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV SpaceAbout Perception and Hue Histograms in HSV Space
About Perception and Hue Histograms in HSV Space
 
Color Harmonization - Results
Color Harmonization - ResultsColor Harmonization - Results
Color Harmonization - Results
 
Wave Simulation Using Perlin Noise
Wave Simulation Using Perlin NoiseWave Simulation Using Perlin Noise
Wave Simulation Using Perlin Noise
 
Similarity Maps Using SSIM Index
Similarity Maps Using SSIM IndexSimilarity Maps Using SSIM Index
Similarity Maps Using SSIM Index
 
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color HarmonizationQualifying Exam - Image-Based Reconstruction With Color Harmonization
Qualifying Exam - Image-Based Reconstruction With Color Harmonization
 
TMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and ReportsTMS - Schedule of Presentations and Reports
TMS - Schedule of Presentations and Reports
 
Month Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJMonth Presentations Schedule - March/2015 - LCG/UFRJ
Month Presentations Schedule - March/2015 - LCG/UFRJ
 
Color Palettes in R
Color Palettes in RColor Palettes in R
Color Palettes in R
 
Sigmoid Curve Erf
Sigmoid Curve ErfSigmoid Curve Erf
Sigmoid Curve Erf
 
Hue Wheel Prototype
Hue Wheel PrototypeHue Wheel Prototype
Hue Wheel Prototype
 
Cosine Curve
Cosine CurveCosine Curve
Cosine Curve
 
Triangle Mesh Plot
Triangle Mesh PlotTriangle Mesh Plot
Triangle Mesh Plot
 
Triangle Plot
Triangle PlotTriangle Plot
Triangle Plot
 
Capacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video SlidesCapacity-Constrained Point Distributions :: Video Slides
Capacity-Constrained Point Distributions :: Video Slides
 
Capacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function CatalogCapacity-Constrained Point Distributions :: Density Function Catalog
Capacity-Constrained Point Distributions :: Density Function Catalog
 

Último

Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessRodrigoGonzlez461291
 
DESAFIO FILOSÓFICO - 1ª SÉRIE - SESI 2020.pptx
DESAFIO FILOSÓFICO - 1ª SÉRIE - SESI 2020.pptxDESAFIO FILOSÓFICO - 1ª SÉRIE - SESI 2020.pptx
DESAFIO FILOSÓFICO - 1ª SÉRIE - SESI 2020.pptxProfessor Liniker Santana
 
Apresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoApresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoPedroFerreira53928
 
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...cristianofiori1
 
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdfTesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdfEditora
 
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptxCIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptxMariaSantos298247
 
Atividade com a música Xote da Alegria - Falamansa
Atividade com a música Xote  da  Alegria    -   FalamansaAtividade com a música Xote  da  Alegria    -   Falamansa
Atividade com a música Xote da Alegria - FalamansaMary Alvarenga
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfLetícia Butterfield
 
Memórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
Memórias_póstumas_de_Brás_Cubas_ Machado_de_AssisMemórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
Memórias_póstumas_de_Brás_Cubas_ Machado_de_Assisbrunocali007
 
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfmanual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfrarakey779
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfrarakey779
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosbiancaborges0906
 
Os Padres de Assaré - CE. Prof. Francisco Leite
Os Padres de Assaré - CE. Prof. Francisco LeiteOs Padres de Assaré - CE. Prof. Francisco Leite
Os Padres de Assaré - CE. Prof. Francisco Leiteprofesfrancleite
 
Recurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorRecurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorCasa Ciências
 
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdfedjailmax
 
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxPERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxtchingando6
 
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdfCurso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdfLeandroTelesRocha2
 
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptxDIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptxcleanelima11
 
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdfmanual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdfLeandroTelesRocha2
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfRILTONNOGUEIRADOSSAN
 

Último (20)

Desastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadessDesastres ambientais e vulnerabilidadess
Desastres ambientais e vulnerabilidadess
 
DESAFIO FILOSÓFICO - 1ª SÉRIE - SESI 2020.pptx
DESAFIO FILOSÓFICO - 1ª SÉRIE - SESI 2020.pptxDESAFIO FILOSÓFICO - 1ª SÉRIE - SESI 2020.pptx
DESAFIO FILOSÓFICO - 1ª SÉRIE - SESI 2020.pptx
 
Apresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimentoApresentação de vocabulário fundamental em contexto de atendimento
Apresentação de vocabulário fundamental em contexto de atendimento
 
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
Atividade-9-8o-ano-HIS-Os-caminhos-ate-a-independencia-do-Brasil-Brasil-Colon...
 
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdfTesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
Tesis de Maestría de Pedro Sousa de Andrade (Resumen).pdf
 
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptxCIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
 
Atividade com a música Xote da Alegria - Falamansa
Atividade com a música Xote  da  Alegria    -   FalamansaAtividade com a música Xote  da  Alegria    -   Falamansa
Atividade com a música Xote da Alegria - Falamansa
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
 
Memórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
Memórias_póstumas_de_Brás_Cubas_ Machado_de_AssisMemórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
Memórias_póstumas_de_Brás_Cubas_ Machado_de_Assis
 
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdfmanual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
manual-de-introduc3a7c3a3o-ao-direito-25-10-2011.pdf
 
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdfHans Kelsen - Teoria Pura do Direito - Obra completa.pdf
Hans Kelsen - Teoria Pura do Direito - Obra completa.pdf
 
Fotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anosFotossíntese para o Ensino médio primeiros anos
Fotossíntese para o Ensino médio primeiros anos
 
Os Padres de Assaré - CE. Prof. Francisco Leite
Os Padres de Assaré - CE. Prof. Francisco LeiteOs Padres de Assaré - CE. Prof. Francisco Leite
Os Padres de Assaré - CE. Prof. Francisco Leite
 
Recurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/AcumuladorRecurso da Casa das Ciências: Bateria/Acumulador
Recurso da Casa das Ciências: Bateria/Acumulador
 
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
5ca0e9_ea0307e5baa1478490e87a15cb4ee530.pdf
 
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptxPERFIL M DO LUBANGO e da Administraçao_041137.pptx
PERFIL M DO LUBANGO e da Administraçao_041137.pptx
 
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdfCurso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
Curso de Direito do Trabalho - Maurício Godinho Delgado - 2019.pdf
 
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptxDIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
DIFERENÇA DO INGLES BRITANICO E AMERICANO.pptx
 
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdfmanual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
manual-de-direito-civil-flacc81vio-tartuce-2015-11.pdf
 
Exercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdfExercícios de Clima no brasil e no mundo.pdf
Exercícios de Clima no brasil e no mundo.pdf
 

Winged-Edge Report

  • 1. Geometria Computacional - Winged Edge Michel Alves dos Santos ∗ Outubro de 2011 Resumo O uso de estruturas de dados avançadas para representação de objetos poligonais é impor- tante em muitos casos, por exemplo: durante a simplificação da malha poligonal de um modelo tridimensional (figura 3). É necessário o conhe- cimento das adjacências entre os componentes da malha, como faces e vértices. Tais estruturas são conhecidas como boundary representations (“representações de bordas”) ou simplesmente b-reps, que armazenam os dados de um objeto poligonal (vértices, arestas e faces), além de in- formações adicionais sobre adjacências (Glass- ner, 1991). Neste pequeno artigo iremos falar sobre a estrutura de dados Winged-Edge pro- posta por (Baumgart, 1975) para representação de modelos poligonais e exibir alguns trechos al- gorítmicos relativos a consultas que podem ser realizadas nessa estrutura com o intuito de des- cobrir relações de adjacência e incidência envol- vendo vértices, arestas e faces. As consultas se- rão apresentadas em formato de pseudo-código. 1 Introdução Uma das estruturas de dados baseada em aresta é a Winged-Edge, introduzida por (Baum- gart, 1975; Hanks, 2005). Esta estrutura associa a cada aresta identificadores das arestas imedi- atamente anterior e posterior. Para cada sen- tido da aresta temos, portanto, uma aresta an- terior e posterior, ou seja, anterior horária (pcw ou egde-head-right), posterior horária (ncw ou egde-tail-right), anterior anti-horária (pccw ou egde-tail-left) e posterior anti-horária (nccw ou egde-head-left). As relações de adjacência e in- cidência podem ser observadas nas figuras 1, 2, 4, 5 e 6. ∗Bacharelando em Ciência da Computação, Univer- sidade Federal do Estado de Alagoas (UFAL). E-mail: michel.mas@gmail.com. Disciplina: Geometria Compu- tacional. Docente Responsável: Thales Vieira. Figura 1: Visualização da estrutura de dados Winged-Egde. Observe que existe uma orien- tação entre os vértices inicial e final da aresta e que esta mesma ainda mantêm apontadores para as arestas posteriores e anteriores, ocor- rendo o mesmo com as faces adjacentes. A face denotada pelo apontador face_right possui sen- tido horário de navegação em relação a orienta- ção v0v1 enquanto a face face_left possui sen- tido anti-horário. Figura 2: Visualização da estrutura de dados Winged-Egde em relação a um polígono. Ob- serve como a estrutura e sua semântica de ori- entação facilitam a navegação em relação a dis- posição de elementos: vértices, arestas e faces. 1
  • 2. Explorando esta representação das arestas, as faces incluem somente o identificador de uma aresta arbitrária e sua orientação na face. Partindo-se desta aresta, todas as demais ares- tas da face podem ser acessadas utilizando os identificadores de aresta anterior ou posterior. Uma variação desta estrutura adiciona os iden- tificadores das faces incidentes nos dois sentidos (Farin et al., 2003). A estrutura de dados Winged-Egde é um po- deroso mecanismo para manipulação de mode- los poligonais, onde a idéia básica é baseada em uma aresta e seus polígonos adjacentes. O nome dessa estrutura é proveniente do corpo de uma borboleta, imaginando os dois polígonos como suas asas e a aresta como o seu corpo, separando suas asas. 2 Estrutura Uma listagem em pseudo-código da estrutura Winged-Edge pode ser visualizada logo abaixo. Podemos observar que o receptáculo que repre- senta uma aresta através da abordagem Winged- Edge armazena oito apontadores: dois para os vértices inicial e final (tail e head), dois para as faces incidentes da esquerda e da direita (left e right) e quatro para as arestas adjacentes. /∗ Data s t r u c t u r e − Vertex ∗/ c l a s s WE_Vertex { WE_Edge ∗ incident_edge ; WE_VertexDataObject data ; } /∗ Data s t r u c t u r e − Edge∗/ c l a s s WE_Edge { // V e r t i c e s WE_Vertex ∗ v e r t e x _ t a i l ; WE_Vertex ∗ vertex_head ; // Faces WE_Face ∗ f a c e _ l e f t , ∗ f a c e _ r i g h t ; // Edges WE_Edge ∗ egde_head_left ; WE_Edge ∗ egde_head_right ; WE_Edge ∗ e g d e _ t a i l _ l e f t ; WE_Edge ∗ e g d e _ t a i l _ r i g h t ; // A data WE_EdgeDataObject data ; } /∗ Data s t r u c t u r e − Face ∗/ c l a s s WE_Face { WE_Edge ∗ incident_edge ; WE_FaceDataObject data ; } O receptáculo que representa vértices arma- zena apenas um apontador para a aresta no qual o mesmo incide. O receptáculo que representa uma face armazena, da mesma maneira, ape- nas um apontador para uma aresta arbitrária na qual a face incide. 3 Consultas Suportadas A escolha de uma estrutura de dados é deter- minada pelo conjunto de operações elementares que são suportadas eficientemente. A estrutura Winged-Edge possui um conjunto de operações básicas decorrentes de sua prototipação e um conjunto de operações extendidas de baixa com- plexidade. Alguns exemplos de consulta podem ser visualizados logo abaixo: • (FV) Todos os vértices de uma face; • (EV) Vértices de uma aresta (extremos); • (VF) Todas as faces que compartilham um vértice; • (EF) Todas as faces que compartilham uma aresta; • (FE) Todas as arestas de uma face; • (VE) Todas as arestas que compartilham um vértice; Para a estrutura Winged-Edge as operações EV e EF são consideradas básicas ou trivias (Nepe- rud et al., 2007). 3.1 Consultas Básicas Como dito antes, a estrutura Winged-Edge possui um conjunto de operações básicas decor- rentes de sua prototipação. Algumas dessas ope- rações são listadas logo abaixo: • Dado um vértice, retornar a aresta imedi- tamente incidente ao vértice; • Dada uma aresta, retornar os vértices de suas extremidades (EV); • Dada uma aresta, retornar as faces que o compartilham; • Dada uma aresta, retornar as arestas adja- centes; • Dada uma face, retornar a aresta imediata- mente incidente. 2
  • 3. /∗ I n c i d e n t Edge∗/ WE_Edge E = v−>incident_edge ; /∗ Extreme V e r t i c e s ∗/ WE_Vertex t a i l = e−>v e r t e x _ t a i l ; WE_Vertex head = e−>vertex_head ; /∗ A l l f a c e s s h a r i n g an edge ∗/ WE_Face l e f t = e−>f a c e _ l e f t ; WE_Face r i g h t = e−>f a c e _ r i g h t ; // Adjacent Edges WE_Edge h l = e−>egde_head_left ; WE_Edge hr = e−>egde_head_right ; WE_Edge t l = e−>e g d e _ t a i l _ l e f t ; WE_Edge t r = e−>e g d e _ t a i l _ r i g h t ; // I n c i d e n t Edge WE_Edge E = f −>incident_edge ; 3.2 Consultas Extendidas Como dito antes, a estrutura Winged-Edge possui um conjunto de operações extendidas de baixa complexidade. Alguns exemplos são apre- sentados a seguir: • Dada uma face retornar todas as arestas; /∗ A l l edges o f a f a c e ∗/ WE_Edge_List FE (WE_Face f ) { WE_Edge_List l i s t ; WE_Edge e0 = f −>incident_edge ; WE_Edge e = e0 ; do { l i s t . put ( e ) ; i f ( e−>f a c e _ l e f t == f ) { e = e−>egde_head_left ; } e l s e { e = e−>e g d e _ t a i l _ r i g h t ; } } w h i l e ( e != e0 ) ; r e t u r n l i s t ; } As operações FV e VF são similares. • Dado um vértice retornar todas as arestas que o compartilham; /∗ A l l edges s h a r i n g a v e r t e x ∗/ WE_Edge_List VE (WE_Vertex v ) { WE_Edge_List l i s t ; WE_Edge e0 = v−>incident_edge ; WE_Edge e = e0 ; do { l i s t . put ( e ) ; i f ( e−>vertex_head == v ) { e = e−>egde_head_right ; } e l s e { e = e−>e g d e _ t a i l _ l e f t ; } } w h i l e ( e != e0 ) ; r e t u r n l i s t ; } • Dado um vértice retornar todas as faces in- cidentes; WE_Face_List VFL (WE_Vertex v ) { WE_Face_List l i s t ; WE_Edge e0 = v−>incident_edge ; WE_Edge e = e0 ; WE_Face f = e−>f a c e _ l e f t ; do { l i s t . put ( f ) ; i f ( e−>vertex_head == v ) { e = e−>egde_head_right ; f = e−>f a c e _ l e f t ; } e l s e { e = edge−>e g d e _ t a i l _ l e f t ; f = e−>f a c e _ r i g h t ; } } w h i l e ( e != e0 ) ; r e t u r n l i s t ; } • Dado um vértice retornar todos os demais vértices vizinhos; WE_Vertex_List VVL (WE_Vertex v ) { WE_Vertex_List l i s t ; WE_Edge e0 = v−>incident_edge ; WE_Edge e = e0 ; WE_Vertex v = e−>vertex_head ; do { l i s t . put ( v ) ; i f ( e−>vertex_head == v ) { e = e−>egde_head_right ; v = e−>vertex_head ; } e l s e { e = edge−>e g d e _ t a i l _ l e f t ; v = e−>v e r t e x _ t a i l ; } } w h i l e ( e != e0 ) ; r e t u r n l i s t ; } • Dado uma aresta retornar todos as demais arestas vizinhas; WE_Edge_List EEL (WE_Edge E) { WE_Edge_List l 1 = VEL(E−> v e r t e x _ t a i l ) ; WE_Edge_List l 2 = VEL(E−>vertex_head ) ; 3
  • 4. // Remove edge E from the l i s t s l 1 . remove (E) ; l 2 . remove (E) ; // Combine l i s t s r e t u r n l 1 + l 2 ; } • Dada uma face retornar as demais faces in- cidentes; WE_Face_List FFL (WE_Face F) { WE_Edge_List l 1 = FE(F) ; WE_Face_List l i s t ; WE_Edge e ; f o r each ( e i n l 1 ) { i f ( e−>f a c e _ l e f t == F) { l i s t . put ( e−>f a c e _ r i g h t ) ; } e l s e { l i s t . put ( e−>f a c e _ l e f t ) ; } } r e t u r n l i s t ; } • Calcular a K-ésima vizinhança estrelada, dado K e um vértice; /∗ KStarryNeighborhood − Neighbourhood s t a r ∗/ //K − s i z e o f neighborhood // v l − v e r t e x l i s t with one v e r t e x i n i t i a l l y // b l − l i s t t h a t c h e c k s i f v e r t e x l a b e l e d WE_Vertex_List KSN( I n t K, WE_Vertex_List vl , B o o l L i s t& b l ) { i f (K == 1 ) { r e t u r n Neighbors ( vl , b l ) ; } e l s e { r e t u r n Neighbors (KSN(K−1 , vl , b l ) , b l ) ; } } /∗ Returns l i s t o f a l l n e i g h b o r s ∗/ WE_Vertex_List Neighbors ( WE_Vertex_List vl , B o o l L i s t& b l ) { WE_Vertex v ; WE_Vertex_List l i s t f o r each ( v i n v l ) { l i s t = l i s t + VVL( v , b l ) ; } r e t u r n l i s t ; } /∗ Returns a l l marked n e i g h b o r s ∗/ WE_Vertex_List VVL( WE_Vertex v , B o o l L i s t& b l ) { WE_Vertex_List l i s t ; WE_Edge e0 = v−>i n c i d e n t _ e d g e ; WE_Edge e = e0 ; WE_Vertex v = e−>vertex_head ; do { // c h e c k s i f t he v e r t e x i s marked i f ( ! b l [ v−>i d ] ) { l i s t . put ( v ) ; b l [ v−>i d ] = t r u e ; } i f ( e−>vertex_head == v ) { e = e−>egde_head_right ; v = e−>vertex_head ; } e l s e { e = edge −> e g d e _ t a i l _ l e f t ; v = e−> v e r t e x _ t a i l ; } } w h i l e ( e != e0 ) ; r e t u r n l i s t ; } 4 Conclusões A estrutura de dados Winged-Edge foi intro- duzida por (Baumgart, 1975) para simplificar a manipulação de modelos poligonais pois man- têm tanto informação geométrica quanto topoló- gica (figura 6), o que facilita ainda mais o trata- mento de alguns modelos. Além disso Winged- Edge possui um conjunto de operações triviais que facilitam a execução de consultas de adja- cência e incidência sem proporcionar demasiada sobrecarga. A estrutura de dados Winged-Edge permite a passagem rápida entre faces, arestas e vér- tices, devido à sua estrutura explicitamente li- gada em rede (figura 4). Esta forma de especifi- car uma grade desestruturada está em contraste com especificações mais simples de malhas de polígonos, tais como nó e lista de elementos, ou a conectividade implícita de uma grade regular (de Berg et al., 2008). Figura 3: A estrutura Winged-Egde é uma re- presentação de dados utilizada para descrever modelos poligonais em computação gráfica. Ex- plicitamente descreve a geometria e a topologia de faces, arestas e vértices quando três ou mais superfícies se reúnem e se encontram em uma aresta comum. O principal incômodo da estrutura Winged- Egde é sua grande demanda de armazenamento o que ocasiona maior complexidade devido à manutenção dos vários índices pertencentes as listas de vértices, arestas e faces. Um exemplo dessa demanda pode ser observado através da figura 5. 4
  • 5. Figura 4: A estrutura Winged-Egde permite a pas- sagem rápida entre faces, arestas e vértices, devido à estrutura explicitamente ligada em rede. Esta re- presentação é amplamente utilizada em programas de modelagem para fornecer maior flexibilidade na alteração dinâmica da geometria da malha, com isso operações de divisão e mesclagem podem ser execu- tadas rapidamente (Foley, 1996). Referências Baumgart, B. G. (1975), ‘Winged-edge polyhe- dron representation for computer vision’, Na- tional Computer Conference. Beall, M. W. & Shephard, M. S. (1997), ‘A ge- neral topology-based mesh data structures’, International Journal for Numerical Methods in Engineering 40(9), 1573–1596. Braid, I., Hillyard, R. & Stroud, I. (1980), ‘Stepwise construction of polyhedra in geo- metric modelling’, Mathematical Methods in Computer Graphics and Design pp. 123–141. de Berg, M., Cheong, O. & van Kreveld, M. (2008), Computational geometry: algorithms and applications, 3 ed., Springer. Farin, G., Hamann, B. & Hagen, H. (2003), Hie- rarchical and geometrical methods in scientific visualization, Mathematics and visualization, Springer. Fischer, R. (1991), Genesys - um sistema hí- brido de modelagem de sólidos, Master’s the- sis, Departamento de Informática - Pontifícia Universidade Católica - PUC-Rio - Rio de Ja- neiro. Foley, J. D. (1996), Computer graphics: princi- ples and practice, 2 ed., Addison-Wesley Pro- fessional. Glassner, A. S. (1991), ‘Maintaining winged- edge models’, Graphics Gems II - Academic Press 2, 191–201. Gois, J. & Piteri, M. (2002), ‘Geração automá- tica de malhas de elementos finitos e a estru- tura de dados winged-edge modificada’, Ten- dências em Matemática Aplicada e Computa- cional 3(1), 121–130. Hanks, B. W. (2005), Proceedings of the 14th International Meshing Roundtable, Springer. Leondes, C. T. (2002), Database and data com- munication network systems: techniques and applications, Vol. 2, Elsevier Science - Acade- mic Press. Neperud, B., Lowther, J. & Shene, C.-K. (2007), ‘Visualizing and animating the winged-edge data structure’, Elsevier. O’Rourke, J. (1998), Computational geometry in C, 2 ed., Cambridge University Press. Piteri, M. (1999), Geração Automática de Ma- lhas Hierárquico-Adaptativas em Domínios Bidimensionais e Tridimensionais, PhD the- sis, Universidade Técnica de Lisboa. Piteri, M. & Almeida, J. (1995), ‘Hierarchical 2d mesh generation using topological data struc- tures’, Education, Practice and Promotion of Computational Methods in Engineering Using Small Computers 2, 981–986. Vince, J. A. (2000), Essential computer anima- tion fast: how to understand the techniques and potential of computer animation, Sprin- ger. Conteúdo 1 Introdução 1 2 Estrutura 2 3 Consultas Suportadas 2 3.1 Consultas Básicas . . . . . . . . . . . 2 3.2 Consultas Extendidas . . . . . . . . 3 4 Conclusões 4 Referências 5 5
  • 6. Figura 5: A principal desvantagem da estrutura Winged-Egde é a sua grande demanda de armazenamento o que acarreta maior complexidade devido à manutenção de muitos índices. Uma boa discussão das questões de implementação da estrutura Winged-Egde para malhas pode ser encontrada no livro Graphics Gems II. Figura 6: Uma estrutura de dados topológica representa a completa topologia de um objeto em estudo (Gois & Piteri, 2002; Beall & Shephard, 1997; Piteri & Almeida, 1995; Piteri, 1999). Uma característica fundamental associada a essas estruturas é que qualquer informação relativa à topologia pode ser obtida em tempo constante ou proporcional ao número de entidades envolvidas, independentemente da dimensão do problema, quer a malha possua 1 milhão de elementos triangulares ou 100 mil elementos, já que estas informações são de natureza local. A estrutura de dados topológica Winged-Egde concentra a maior parte de suas informações na entidade aresta (O’Rourke, 1998). Isto acontece em função do fato de que em qualquer modelo poliedral manifold, uma aresta pertence a exatamente duas faces, ou seja, este número é invariante (Baumgart, 1975). Da forma como foi concebida originariamente, esta estrutura não permite representar diretamente uma face com mais de uma componente conexa, ou seja, buracos em seu interior (Vince, 2000). Com a introdução da entidade ciclo (Braid et al., 1980), pode-se representar faces com mais de uma componente conexa, e assim, a estrutura passa a ser referenciada como winged-edged modificada (Fischer, 1991; Leondes, 2002). 6