Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D – Event Utilities e Scripting Alberto B. Raposo

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais Aula II
Advertisements

MODELO OSI Prof. Baroni Cel.:
Entrada e Saída Introdução.
Técnicas para operações E/S
Meu primeiro programa em ARDUINO
Processos e Threads Processos.
Roteamento IP.
Processos no Unix e Linux
Algoritmos e Programação Linguagens de Programação Teoria Aula (09/06)
Incluindo Applets em uma página HTML
Captura de Texto em um Quadro Branco
INF 1366 – Computação Gráfica Interativa
Alberto B. Raposo INF 1366 – Computação Gráfica Interativa Raytracing (resumo) POVRAY – Persistence of Vision Raytracer Alberto.
INF 1366 – Computação Gráfica Interativa X3D
INF 1366 – Computação Gráfica Interativa Modelagem Geométrica
Linguagem técnica de programação I Java – REVISÃO
COMPUTAÇÃO Vírus Digital Definição Conseqüências Como minimizar riscos.
Desenvolvimento de Projetos e Aplicações Web
Tópicos avançados em internet B Carlos Oberdan Rolim Ciência da Computação.
Diagramas de Estados(*)
Modelo de referência OSI
Introdução ao roteamento e encaminhamento de pacotes
Amirton Chagas
Programação para estrutura Cliente-Servidor
Laboratório de Programação I Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Rodrigo Cristiano Silva
O Modelo OSI Guilherme Guimarães.
Conceitos de J2EE para a WEB
DESENVOLVIMENTO WEB II PHP Entrada e saída básica de dados (2ª parte)
Professor: Márcio Amador
PrograMação para internet
Capítulo 5 Structures. A - Sequence E - Formula Node B - Case F - Variável Global C - For Loop G - Variável Local D - While Loop ABCD FG E.
Estruturas de Dados Aula 2: Estruturas Estáticas 07/04/2014.
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Concorrência e thread Petrônio Júnior(pglj) Márcio Neves(mmn2)
Protocolos de Janela Deslizante
Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/04/2014.
Implementação MVC Pedro Antonino.
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
PHP e Formulários Web.
Curso OTN - Simulação.
Escolha da Placa. Porta Serial / COM Port Partes do Código.
OMNeT++.
Entrada e Saída (E/S).
Diagrama de Componentes
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
Introdução ao ASP.Net 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Java Básico Instrutor: Davi Pires
Linguagens de Programação II
Sistemas de Rastreamento de Baixo Custo para Desktops Tecgraf (Grupo de Tecnologia em Computação Gráfica) Depto. de Informática, PUC-Rio Alberto Raposo,
Professor Esp. Diego André Sant’Ana Disciplina: Sistemas Operacionais II Sistemas de Arquivos- Tipo de arquivos – Cap
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Trabalho Computacional PD1
Fundamentos de linguagens de programação
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 Introdução ao Roteamento e ao Encaminhamento de Pacotes Protocolos.
Fundamentos de Programação
Serviços de rede e internet Jackson Eduardo da Silva.
Trechos de código que permitem reutilização de uma mesma tarefa. Qualquer código PHP pode estar contido no interior de uma função. Não se pode definir.
Arquitetura de computadores
Sistemas Operacionais IV – Gerenciamento de E/S
Introdução JavaScript
Universidade Federal de Sergipe Departamento de Sistemas de Informação Bruno Cruz Jessica Rodrigo Aragão – ASP.NET MVC 3.
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução ao Projeto.
Programação PHP Gustavo Eduardo Terra.
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
JavaScript Introdução ao JavaScript 1. Objetivos Introdução Sintaxe Básica Arquivo (script) externo Script no HEAD da página Script no BODY da página.
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Programação Gráfica em Java Applet Aula Na aula passada vimos: Swing: Por quê Swing Estratégia MVC (model-view-controller) Componentes AWT - semelhantes.
Transcrição da apresentação:

Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa X3D – Event Utilities e Scripting Alberto B. Raposo

Alberto Raposo – PUC-Rio Event Utilities Há muitos tipos de nós que podem gerar muitos tipos de eventos ROUTE pode ser usado para conectar diretamente 2 eventos do mesmo tipo –Ex. não se pode conectar um SFFloat de um nó a um inteiro de outro nó; timestamp não pode se conectar direto com booleano, etc. Event utility nodes facilitam a conversão

Alberto Raposo – PUC-Rio Event Utility Nodes BooleanFilter BooleanToggle BooleanSequencer IntegerSequencer BooleanTrigger IntegerTrigger TimeTrigger Script

Alberto Raposo – PUC-Rio Sequencer Nodes

Alberto Raposo – PUC-Rio Exemplo

Alberto Raposo – PUC-Rio Exemplo

Alberto Raposo – PUC-Rio BooleanFilter, Toggle e Trigger BooleanFilter –Normalmente usado para negar um valor booleano recebido (sem alternar) BooleanToggle –Ao receber o set_boolean, alterna entre True e False BooleanTrigger –Conecta eventos de tempo a booleanos (gera um “true” sempre que receber um evento de tempo Exemplos: 11_IntegerSequencer, 11_BooleanFilter, 11_BooleanToggle e 11_BooleanTrigger

Alberto Raposo – PUC-Rio Outros Triggers IntegerTrigger –Converte eventos booleanos de entrada em um valor inteiro Ver 11_IntegerTrigger TimeTrigger –Convert eventos booleanos de entrada em em eventos SFTime (timestamp)

Alberto Raposo – PUC-Rio ScriptNode Permite embutir programas em X3D –ECMAScript (JavaScript) –Java Define conjunto de campos que serão usados para enviar e receber eventos Quando recebe um evento, chama um método correspondente a esse evento no programa para tratar o evento e, possivelmente, gerar um evento de saída.

Alberto Raposo – PUC-Rio ScriptNode

Alberto Raposo – PUC-Rio URL vs CDATA url –Indica arquivo externo onde está o script (.js ou.class ou.jar) No caso de script embutido no xml (.x3d), é melhor usar o bloco CDATA do XML, que não fica sujeito às interpretações do XML (por exemplo, “ ” ).

Alberto Raposo – PUC-Rio ScriptNode com CDATA

Alberto Raposo – PUC-Rio Outros campos do Script directOutput –Indica se Script pode acessar e alterar outros nós da cena sem usar o ROUTE Serve de “alerta” para o browser no que diz respeito à renderização mustEvaluate –Se falso, indica ao browser que ele pode esperar para mandar eventos para o Script até que outputs sejam necessários.

Alberto Raposo – PUC-Rio Métodos do Script initialize( ) –Chamado automaticamente quando o Script é carregado –Usado para “setup” do código e de conexões remotas, inicialização de variáveis, etc shutdown( ) –Chamado automaticamente quando a cena é fechada ou quando o nó Script é retirado da cena (ou substituído por um outro)

Alberto Raposo – PUC-Rio Métodos do Script prepareEvents( ) –Opcional –Chamado uma vez antes de executar qualquer ROUTE na cena –Usos: ler buffers da rede, checar listeners externos, etc eventsProcessed( ) –Opcional –Chamado depois que o nó Script recebe todos os eventos de input –Pode representar ganho de eficiência, se um output precisa ser calculado a partir de vários inputs (ao invés de chamar uma funcao específica para cada input event recebido).

Alberto Raposo – PUC-Rio Modelo de execução A cada quadro gerado (i.e., pixels desenhados), o browser pára para a passagem de eventos e atualizações de estado.

Alberto Raposo – PUC-Rio Ciclo de eventos 1.Atualizar posição de câmera 2.Avaliar input dos sensores e de outros geradores de eventos, colocando esses eventos pilha para envio 3.Rotear eventos para seus destinos, atualizando os campos do nós 4.Se novos eventos forem gerados e roteados nos passos 2 e 3, voltar ao passo 2, até que não haja mais eventos pendentes

Alberto Raposo – PUC-Rio Ciclo de renderização do quadro 5.O próximo quadro é gerado (desenhado, pixel a pixel) e buferizado até que esteja completo 6.Sistemas com double buffer fazem o swap do buffer recém criado com o anterior 7.Atualiza clock do browser 8.Retorna ao ciclo de eventos (passo 1)

Alberto Raposo – PUC-Rio Para evitar loops infinitos no ciclo de eventos Só permite uma passagem por um ROUTE a cada quadro –Evita ciclos no roteamento de eventos

Alberto Raposo – PUC-Rio Ciclo do Script Node

Alberto Raposo – PUC-Rio Classe Browser Disponível em Java e ECMAScript Provê uma série de funções úteis

Alberto Raposo – PUC-Rio Classe Browser Exemplos de Script

Alberto Raposo – PUC-Rio Event Passing, directOutpu e SAI

Alberto Raposo – PUC-Rio Mais exemplos s/Basic/

Alberto Raposo – PUC-Rio SAI – Scene Access Interface Interface de programação usada para fazer comunicação entre X3D e Java

Alberto Raposo – PUC-Rio SAI – exemplos e tutoriais d.htm html ISO-IEC X3DAbstractSpecification/