Os recursos do ambiente virtual estão disponíveis para os usuários através do CIERV (descrito na Seção 4.4.2), que se conecta diretamente ao RM. Essa aplicação cliente faz uso
de uma interface gráfica tridimensional (GUI) (Figura 6.8, diagrama de classes no Anexo C) para a realização de todo o processo de geração e apresentação do mundo virtual.
O modelo de CVE utilizado neste estudo de caso é Desktop Virtual Reality19, e o gerenciamento dos elementos gráficos do ambiente virtual é feito através do motor gráfico CRAbGE (Maia, 2003). O CRAbGE é um motor gráfico aberto, portável e extensível, voltado para aplicações de realidade virtual e particularmente para jogos. Também visando ser portável, o CIERV foi implementado com a linguagem C++ utilizando a biblioteca gráfica wxWidgets (wxWidgets, 2005) para construção de sua interface gráfica. A comunicação do CIERV com os WebServices GPS e FM é feita através do pacote gSOAP (gSOAP, 2005). Esse pacote foi desenvolvido para permitir que aplicações clientes que utilizem a linguagem C/C++ se comuniquem via SOAP (Box et al., 2000) com Web
Services. Já a comunicação do CIERV com o RM é feita através de um cliente do
protocolo PASSÁRGADa 2.0 que utiliza a biblioteca ENet. Por último, a leitura e a escrita dos arquivos XML (descritores de mundos virtuais e objetos) são realizadas pela biblioteca TinyXML (TinyXML, 2005).
A seguir serão apresentados os cenários mais relevantes da implementação do CIERV para o estudo de caso proposto. Esses cenários estão relacionados com os apresentados na Seção 4.5.1 Cenários de Utilização.
Figura 6.8. Tela do Cliente de Interação e Edição em RV (CIERV).
Cenário 1: Conectando ao GPS
Dos seis usuários deste estudo de caso apenas cinco irão entrar no ambiente virtual da cozinha: Lia, João, Pedro, Carlos e Lúcia. Marcos, o administrador do sistema, não participará da interação. Para ter acesso ao ambiente, todos esses cinco usuários deverão acessar antes o GPS para se autenticarem (Figura 6.9).
Figura 6.9. Tela de autenticação do CIERV com o GPS.
Cenário 2: Conectando a um Mundo Virtual
Após ser autenticado pelo GPS, cada um dos usuários recebe uma lista personalizada de mundos virtuais que estão disponíveis para ele. Por exemplo, Lia e João possuem listas de mundos virtuais diferentes, veja Figura 6.10. Entre esses mundos virtuais está o ambiente da cozinha utilizada neste estudo de caso.
Figura 6.10. À esquerda, tela com a lista de mundos do usuário Lia, e a direita, tela com a lista de mundos do usuário João.
Cenário 3: Inserindo Tarefas
Lia, a editora do ambiente, tem a responsabilidade de analisar o ambiente virtual e definir as tarefas que serão necessárias para atingir o objetivo, que é construção da cozinha seguindo as especificações descritas no curso de Boas Práticas. Além de definir as tarefas, ela também é responsável por definir as dependências temporais dessas tarefas. Os tipos de dependências utilizadas neste estudo de caso foram quatro: ‘antes de’, ‘depois de’, ‘durante’ e ‘ao mesmo tempo’. Os tipos ‘antes de’ ou ‘depois de’ são restrições que definem que uma tarefa só pode começar, ou antes, ou depois de outra tarefa, respectivamente. O tipo de dependência ‘durante’ define que uma tarefa deve começar depois de outra tarefa começar e antes desta terminar. O tipo ‘ao mesmo tempo’ define que duas tarefas devem começar e terminar no mesmo instante. As tarefas estão disponíveis no CIERV em uma árvore, que define tarefas e subtarefas. A partir dessa árvore, o usuário poderá modificar as informações de uma tarefa, como nome, responsável, dependências e estado (veja Figura 6.11). As tarefas deste estudo de caso e suas dependências estão definidas na Tabela 21.
Tabela 21. Lista de tarefas e suas dependências
Tarefas Tarefas dependentes Tipo de
dependência Tarefa 1. Dispor móveis Distribuir eletrodomésticos
Distribuir eletroportáteis
antes de antes de Tarefa 2. Distribuir eletrodomésticos Dispor móveis
Distribuir eletroportáteis ao mesmo tempo depois de Tarefa 3. Distribuir eletroportáteis Dispor móveis
Distribuir eletrodomésticos ao mesmo tempo depois de Tarefa 4. Colocar utensílios domésticos Distribuir eletrodomésticos
Distribuir eletroportáteis
depois de durante Subtarefa 4.1. Colocar prataria e
panelas
Colocar material de limpeza
depois de Subtarefa 4.2. Colocar material de
limpeza
Colocar prataria e panelas antes de
Figura 6.11. À esquerda, tela de criação de tarefas, à direita, tela de inserção de dependências.
Cenário 4: Montando a Hierarquia de Grupos
Todos os usuários que entram pela primeira vez em um ambiente virtual em edição têm o papel no trabalho colaborativo de espectador, com exceção do editor desse ambiente que tem o papel de coordenador geral. Assim, neste estudo de caso, à medida que os usuários
vão entrando no ambiente como espectadores, a coordenadora geral Lia vai atribuindo papéis a cada um deles. Inicialmente, Lia atribuiu o papel de colaborador a Pedro e a Carlos e o papel de coordenador a João, tendo como seus subordinados Pedro e Carlos. Lúcia, que entrou por último, ficou como espectadora. A hierarquia de grupo é disponibilizada no CIERV através de uma árvore, a partir da qual, os coordenadores poderão atribuir tarefas a usuários, e criar ou mudar a formação de grupos (veja Figura 6.12).
Figura 6.12. À esquerda, a tela com informações sobre o usuário Lia, coordenador geral. À direita, a tela com informações sobre subcoordenador João.
Cenário 5: Inserindo e Manipulando Objetos
Para que os usuários consigam atingir o objetivo de montar o ambiente virtual da cozinha, eles precisam inserir e manipular objetos nesse ambiente. Para isso, o CIERV disponibiliza uma biblioteca de objetos e um conjunto de ferramentas para manipular esses objetos (Figura 6.13).
Com a biblioteca e as ferramentas, os usuários presentes no ambiente poderão realizar as tarefas de sua responsabilidade. Por exemplo, João é responsável pela tarefa de distribuir eletrodomésticos. Assim, com os modelos de eletrodomésticos presentes na biblioteca e as ferramentas de manipulação, ele poderá concluir essa tarefa. Entretanto, ele
geladeira ao lado de um fogão, por exemplo). Ao concluir a tarefa, João deverá atualizar o estado da tarefa para “concluída” (Figura 6.11).
No final, quando todas as tarefas estiverem concluídas, Lia irá avaliar o trabalho realizado por seus companheiros, analisando e mostrando os erros cometidos por cada um deles. Em uma outra abordagem, ela avisa que o usuário cometeu erros, e dá uma chance para que ele os corrija, não prejudicando, assim, os outros usuários, já que as tarefas são dependentes.
Figura 6.13. Biblioteca de objetos para o estudo de caso.