Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp
Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp
Uma Arquitetura de Suporte a Interações 3D ... - DCA - Unicamp
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
5.2 Escopo 99<br />
arquitetura que se adapta facilmente a diferentes tipos <strong>de</strong> funções <strong>de</strong> <strong>de</strong>formação, primitivas<br />
e cálculos <strong>de</strong> atributos, permite sua rápida reutilização em novas aplicações e em sistemas <strong>de</strong><br />
interação já existentes.<br />
A reusabilida<strong>de</strong> também <strong>de</strong>ve ser ampliada pela tentativa <strong>de</strong> minimizar a <strong>de</strong>pendência da ar-<br />
quitetura <strong>de</strong> interação com relação ao sistema <strong>de</strong> janelas. Para realizar isso, o tratamento <strong>de</strong><br />
eventos <strong>de</strong> entrada disparados pelo sistema <strong>de</strong> janelas ou sistema gerenciador <strong>de</strong> interface grá-<br />
fica não é processado diretamente pela arquitetura proposta. Ao contrário, tais eventos são<br />
tratados pela própria aplicação que, por sua vez, po<strong>de</strong> utilizá-los para mudar as configurações<br />
da arquitetura <strong>de</strong> interação. Por exemplo, através do tratamento dos eventos <strong>de</strong> movimentação<br />
do cursor do dispositivo apontador, consi<strong>de</strong>ramos que seja possível <strong>de</strong>finir uma região <strong>de</strong> in-<br />
teresse (em coor<strong>de</strong>nadas da janela) sobre a qual se <strong>de</strong>seja que os atributos geométricos sejam<br />
calculados na GPU. Cabe à aplicação a tarefa <strong>de</strong> utilizar esses atributos para implementar a<br />
tarefa <strong>de</strong> interação. Dessa forma, a arquitetura <strong>de</strong>pen<strong>de</strong> apenas da arquitetura programável das<br />
GPUs e, portanto, das APIs utilizadas para comunicação com esse tipo <strong>de</strong> hardware gráfico.<br />
5.2 Escopo<br />
De acordo com a classificação <strong>de</strong> Myers [1995], são quatro as camadas principais <strong>de</strong> abstração<br />
sobre as componentes que formam uma interface gráfica: sistema <strong>de</strong> janelas, toolkits, ferramentas<br />
<strong>de</strong> alto nível e aplicação. A camada <strong>de</strong> toolkits é composta <strong>de</strong> sistemas que encapsulam widgets<br />
tais como menus, botões e barras <strong>de</strong> rolagem. Atualmente, é comum a existência <strong>de</strong> widgets es-<br />
pecíficos <strong>de</strong> área <strong>de</strong> <strong>de</strong>senho, utilizados pela aplicação para exibir or gráficos processados pela bi-<br />
blioteca GL. Por exemplo, o toolkit Xt/Motif fornece os widgets GLwDrawingArea (baseado no<br />
Xt) e GLwMDrawingArea (baseado no Motif) específicos para exibir gráficos ren<strong>de</strong>rizados com o<br />
OpenGL [Flanagan, 1994]. Do mesmo modo, o toolkit Qt fornece o widget QGLWidget [Dalheimer,<br />
2002], enquanto o GTK+ fornece os widgets GtkGLArea para a versão em C e GtkGLArea- para<br />
a versão em C++ do GTK [Logan, 2001]. Os gráficos são exibidos nesses widgets <strong>de</strong> acordo com as<br />
configurações da janela e matrizes <strong>de</strong> transformação geométrica especificadas no OpenGL.<br />
Ao contrário do que ocorre com widgets como botões, menus, barras <strong>de</strong> rolagem e caixas <strong>de</strong><br />
texto, o tratamento <strong>de</strong> eventos sobre o widget <strong>de</strong> área <strong>de</strong> <strong>de</strong>senho vinculada à API gráfica não possui<br />
necessariamente uma semântica pré-<strong>de</strong>finida pelo toolkit. Por exemplo, no widget correspon<strong>de</strong>nte à<br />
barra <strong>de</strong> rolagem, o toolkit po<strong>de</strong> estabelecer que o comportamento padrão <strong>de</strong> rolar uma barra hori-<br />
zontal é obtido através <strong>de</strong> uma seqüência <strong>de</strong> eventos produzidos a partir <strong>de</strong> ações <strong>de</strong> um mouse, tal<br />
como: (1) pressionar o botão esquerdo do mouse sobre a barra <strong>de</strong> rolagem; (2) <strong>de</strong>slocar o mouse à<br />
esquerda ou à direita; (3) liberar o botão pressionado. Semelhante comportamento pré-<strong>de</strong>terminado