curso basar e clicks

56
Clicks Curso basAR Christopher Shneider Cerqueira – [email protected] Claudio Kirner – [email protected] https://sites.google.com/site/christophercerqueira/projetos/ear/basar http://www.ckirner.com/basar 1

Upload: christopher-cerqueira

Post on 12-Apr-2017

10 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Curso basAR e Clicks

Clicks Curso basAR

Christopher Shneider Cerqueira – [email protected]

Claudio Kirner – [email protected]

https://sites.google.com/site/christophercerqueira/projetos/ear/basar http://www.ckirner.com/basar

1

Page 2: Curso basAR e Clicks

Requisitos

• Windows

• basAR – Download:

• https://sites.google.com/site/christophercerqueira/projetos/ear/basar

• http://www.ckirner.com/basar

• Alguns modelos 3D em VRML

• Editor de texto simples, como o Bloco de Notas.

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

2

Page 3: Curso basAR e Clicks

Roteiro

• Introdução: Metas

• basAR

• Criando infraestrutura, estrutura e conteúdo

• Criando comportamento de click. – Conceitos:

• Mudança de estado

• Mudança de atributos

– Comandos

– Alterando comandos

– Atividade

3

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 4: Curso basAR e Clicks

Introdução

• Criar um cenário de Realidade Aumentada. – Dois pontos de seleção e um ponto de exibição

• Utilizar o software basAR.

• Entender a construção do cenário.

• Entender os conceitos de mudança de estado e mudança de atributos

4

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 5: Curso basAR e Clicks

basAR

5

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 6: Curso basAR e Clicks

basAR: Behavioral Authoring System for Augmented Reality

• Meta-ferramenta de autoria de ambientes inteligentes de realidade aumentada .

– Estrutura de comportamento baseada em pontos de ação

– Cross-Reality

• COMPORTAMENTO DINÂMICO entre PONTOS DE AÇÃO

Comportamento

Pontos de ação

Hardware Externo

basAR

6

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 7: Curso basAR e Clicks

• Infraestrutura: especificar a área de trabalho (workspace) da aplicação

• Estrutura: os posicionamentos dos pontos de ação sobre a infraestrutura.

• Contexto: modelos, sons e outros objetos definidos na estrutura.

• Atuação: método de interação com a estrutura.

• Comportamento: regras de interação entre os atuadores e a estrutura.

Aplicação em camadas

7

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 8: Curso basAR e Clicks

Hierarquia de objetos

basAR

Behavior

Base

Actuator

point1 ... pointK

app_pointM1

m1.dat

m1.wrl

...

...

...

Feedback

Feedback

Feedback

Click1.mp3

Error.mp3

Turn real motor ON

...

app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

8

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 9: Curso basAR e Clicks

Hierarquia de arquivos config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

9

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 10: Curso basAR e Clicks

INFRAESTRUTURA, ESTRUTURA, CONTEÚDO E ATUAÇÃO

Criando

10

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 11: Curso basAR e Clicks

Sistema config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

11

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 12: Curso basAR e Clicks

• Configura:

– a primeira interligação dos objetos;

– modo de exibição da janela;

– objetos padrões.

• Arquivo:

{basAR}/Data/config_basAR

Sistema

12

#config_basAR basAR

WINDOWED VRML wrl/action/ballBlue.dat VRML Wrl/Action/ballGreen.dat VRML Wrl/Action/ballRED.dat VRML Wrl/action/tampa.dat Audio/explosion.wav 0.5 Audio/backTrack.mp3 LOOP 0.3 Audio/bell.wav ONCE 0.5 Data/config_behavior # Rule Machine # Bases 1 Data/config_base1 # Actuators 1 ARTKSM Data/config_transport

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 13: Curso basAR e Clicks

Infraestrutura config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

13

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 14: Curso basAR e Clicks

• correlação entre o mundo real e o mundo virtual

• Definição de base

• Arquivo:

{basAR}/Data/config_base

Infraestrutura

#config_base1 # This file contains the setup for a workspace BASE1 # Single ARToolKit Marker configuration ARTKSM Data/Markers/base.patt 53.0 0.0 0.0 USE_DEFAULT # Workspace Sounds Audio/bell.wav ONCE 0.5 # Visible Sound Audio/explosion.wav 0.5 # Error sound wrl/action/status.dat

14

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 15: Curso basAR e Clicks

Estrutura config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

15

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 16: Curso basAR e Clicks

• Pontos do espaço virtual com esferas de ação, modelos associados e comportamento.

• Localização, orientação e escala dos objetos virtuais.

• Arquivo:

{basAR}/Data/config_base

… Pen # Point Name DEFAULT_IPOINT # Action Model File Data/app_pen # OBJECT Model File 20.0 20.0 0.0 # Translation 0.0 0.0 0.0 # Rotation 1.0 1.0 1.0 # Scale 900.0 # Action radius

Estrutura

16

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 17: Curso basAR e Clicks

Exemplo com 3 pontos

3

Ponto1

DEFAULT_IPOINT

NO_OBJECT

100.0 100.0 25.0

0.0 0.0 0.0

1.0 1.0 1.0

300.0

Ponto2

DEFAULT_IPOINT

NO_OBJECT

100.0 -100.0 25.0

0.0 0.0 0.0

1.0 1.0 1.0

300.0

pontoVisual

DEFAULT_IPOINT

Data/App/app_obj

100.0 0.0 25.0

0.0 0.0 0.0

1.0 1.0 1.0

0

{basAR}/Data/config_base 17

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 18: Curso basAR e Clicks

Arquivo config_base completo _p1

BASE1 ARTKSM Data/Markers/base.patt 53.0 0.0 0.0 USE_DEFAULT Audio/bell.wav ONCE 0.5 Audio/explosion.wav 0.5 wrl/action/status.dat

3 Ponto1 DEFAULT_IPOINT NO_OBJECT 100.0 100.0 25.0 0.0 0.0 0.0 1.0 1.0 1.0 300.0

18

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 19: Curso basAR e Clicks

Arquivo config_base completo _p2

Ponto2

DEFAULT_IPOINT

NO_OBJECT

100.0 -100.0 25.0

0.0 0.0 0.0

1.0 1.0 1.0

300.0

pontoVisual

DEFAULT_IPOINT

Data/App/app_obj

100.0 0.0 25.0

0.0 0.0 0.0

1.0 1.0 1.0

0

19

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 20: Curso basAR e Clicks

Conteúdo config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

20

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 21: Curso basAR e Clicks

• objetos 3D e áudios que são utilizados.

• Arquivos:

{basAR}/Data/App/app_obj

{basAR}/Wrl/quad.dat

{basAR}/Wrl/triang.dat

{basAR}/Wrl/quad.wrl

{basAR}/Wrl/triang.wrl

#app_obj 2 # Number of objects MODEL3D VRML Wrl/quad.dat MODEL3D VRML Wrl/triang.dat

Conteúdo

#quad.dat quad.wrl 0 0 0 0 90 0 0 0 0

21

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

# triang.dat triang.wrl 0 0 0 0 90 0 0 0 0

Page 22: Curso basAR e Clicks

Atuação config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

22

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 23: Curso basAR e Clicks

• Interação do usuário com o sistema

#config_tranport ARTKSM1 # Single ARToolKit Marker configuration Data/Markers/shovell.patt # Marker 37.0 # Width(mm) 0.0 0.0 # Central USE_DEFAULT # Marker cover VRML wrl/Action/ssd.dat # Symbolic

model # Collision point DEFAULT_IPOINT # Point model 20.0 0.0 0.0 # Translation (x,y,z) (mm) 400.0 # Action radius of the point

Atuação

23

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 24: Curso basAR e Clicks

COMPORTAMENTO DE CLICKS Criando

24

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 25: Curso basAR e Clicks

Comportamento?

• Controle do feedback do sistema ao receber estimulo do usuário.

• Baseado em máquina de estados (grafo de cena).

• Ações Comandos

• Estados Blocos de comandos

25

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 26: Curso basAR e Clicks

Exemplo de estado

• Inicia estado

• Ponto 1 estático, exibe tudo

• Ponto 1 estático, exibe tudo

• Ponto 1 estático, exibe tudo

• Finaliza estado

• Outros comandos vide manual do basAR!

BEGIN_STATE 1

1 STAT BOTH

2 STAT BOTH

3 STAT BOTH

END_STATE

26

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 27: Curso basAR e Clicks

O que é click?

• Seleção Ação Liberação

• Selecionar um ponto onde a ação é alterar o fluxo de execução para outro estado, onde as ações e atributos dos pontos podem ser alterados.

27

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 28: Curso basAR e Clicks

Mapa de atitudes:

• Clicando um ponto

– Configuração do sistema • Modelos do ponto

• Posicionamento do ponto

– Animações simuladas

• Matrizes de posicionamento

28

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/ Collision between actuator

and action point

Move action

point

System

ControlledUser controlled

Release point

Test relseaseAttract point

Repels point

Reactive zone: collision of the moving point with others

action points

Se

lec

tio

nM

an

ipu

lati

on

Re

lea

se

Point selected

If selectable

Configure

System

Release point

Page 29: Curso basAR e Clicks

Mudança de estado

• A mudança de estado pode ser realizada pelo sucesso dos comandos de movimentação (Vide tutorial sobre movimentação) ou utilizando um ponto com uma ação de mudança de estado.

• Com o click do atuador no ponto de mudança de estado é possível mudar os atributos e reconfigurar a atitude e exibição do ambiente.

29

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 30: Curso basAR e Clicks

Tipos de estados

Estado de trabalho

• Este tipo de estado espera uma ação ser completada para que ocorra mudança de estado

BEGIN_STATE 4

1 ...

2 ...

END_STATE

Estado de configuração

• Este tipo de estado, após aplicar as alterações de comportamento, altera automaticamente o estado.

BEGIN_STATE 4

1 ...

2 ...

END_STATE GO_TO 5

30

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 31: Curso basAR e Clicks

Comando que habilita mudança de estado

• Mudar estado (Change State)

– CHGST

• 1 CHGST ONLY_OBJECT 4

31

Point ID CHGST Audio OverplayNextStateShowMode

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 32: Curso basAR e Clicks

Mudanças de modelos

• Podem ser alterados os modelos na lista de objetos.

• Escolhas possíveis:

– Escolha de modelo específico

– Próximo modelo da lista (lista circular)

32

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 33: Curso basAR e Clicks

Comando que muda modelo

• Mudar modelo (Change active object)

– CHGM

• 1 CHGM 4

33

Point ID CHGM ModelToChange

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 34: Curso basAR e Clicks

Comando que muda para o próximo modelo

• Mudar para o próximo modelo (Change to next model)

– CHGNM

• 3 CHGNM

34

Point ID CHGNM

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 35: Curso basAR e Clicks

Posicionamento do ponto

• O posicionamento do ponto pode ser mudado no decorrer da aplicação.

• É possível mudar a:

– Translação

– Rotação

– Escala

35

+z

+y

+x

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 36: Curso basAR e Clicks

Comando de mudança de translação

• Transladar (Translate). Incrementa a posição atual em milimetros.

– TRA

• 2 TRA 100 0 0

• 2 TRA 0 50 100 10 100

36

Point ID TRA X Y Z Time Step

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 37: Curso basAR e Clicks

Comando de mudança de rotação

• Rotacionar (Rotate). Incrementa a rotação atual em graus.

– ROT

• 2 ROT 90.0 0.0 0.0

• 2 ROT 0.0 0.0 360.0 60 1000

37

Point ID ROT X Y Z Time Step

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 38: Curso basAR e Clicks

Comando de mudança de escala

• Alterar Escala (Scale). Incrementa a escala do valor atual multiplicando pelo valor inserido.

– SCL

• 1 SCL 0.5 0.5 0.5

• 1 SCL 2.0 2.0 2.0 1 50

38

Point ID SCL X Y Z Time Step

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 39: Curso basAR e Clicks

Matrizes de posicionamento

• Para auxiliar o controle dos pontos, cada ponto possui 3 matrizes de posicionamento em referencia ao marcadore de base (infraestrutura)

– Matriz inicial. (Start)

– Matril última. (Last)

– Matriz atual. (Actual)

39

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 40: Curso basAR e Clicks

Matrizes de posicionamento

• Matriz inicial (Start) é a matriz que é carregada no início do programa, no arquivo de configuração da base (config_base)

• Matriz última (Last) é a matriz que localiza o início de um movimento.

• Matriz atual (Actual) é a matriz atual do movimento e a final após a liberação do ponto.

40

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 41: Curso basAR e Clicks

Comandos sobre as matrizes

• É possível copiar uma matriz para a outra, de forma a alterar o comportamento. Especialmente usado para alterar o comportamento padrão das ações de atração, repulsão e depósito.

• Os comandos copiam:

– Actual Start e Actual Last

– Start Actual e Last Actual

41

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 42: Curso basAR e Clicks

Comandos sobre as matrizes

• Salva actual em start (Set Start) – SETS

• Salva actual em last (Set Last) – SETL

• Salva start em actual (Get Start) – GETS

• Salva last em actual (Get Last) – GETL

42

Point ID SETS

Point ID SETL

Point ID GETS

Point ID GETL

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 43: Curso basAR e Clicks

Comandos sobre as matrizes

43

Start Last Actual

SETS

SETL

GETS

GETL

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 44: Curso basAR e Clicks

Comportamento config_basAR

config_behavior

config_base

config_actuator

app_pointM1

m1.dat

m1.wrl

app_arduino app_pointK

m1.dat

m1.wrl

m2.dat

M2.wrl

44

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 45: Curso basAR e Clicks

Comportamento de atração

• Exemplo 1. Criar 2 pontos de ação, e 1 ponto estático para receber as alterações de atributos.

• Arquivo de comportamento:

{basAR}/Data/config_behavior

• Ponto 1 move ponto 3 para esquerda, Ponto 2 move o ponto 3 para a direita.

45

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 46: Curso basAR e Clicks

Arquivo de Comportamento

BEGIN_STATE 1

1 CHGST ONLY_BALL 2

2 CHGST ONLY_BALL 3

3 STAT ONLY_OBJECT

END_STATE

BEGIN_STATE 2

1 STAT ONLY_BALL

3 TRA 0 -5 0

END_STATE GO_TO 1

BEGIN_STATE 3

2 STAT ONLY_BALL

3 TRA 0 5 0

END_STATE GO_TO 1

46

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 47: Curso basAR e Clicks

ALTERAR COMPORTAMENTO Atividade:

47

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 48: Curso basAR e Clicks

Translação

• Mudar para movimento vertical.

• Mudar no estado 2 o comando para ir para cima: – 3 TRA -5 0 0

• Mudar no estado 3 o comando para ir para baixo – 3 TRA 5 0 0

48

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 49: Curso basAR e Clicks

Rotação

• Rotacionar o ponto em dois eixos

• Mudar no estado 2 o comando para rotacionar no eixo X: – 3 ROT 5 0 0

• Mudar no estado 3 o comando para rotacionar no eixo Y – 3 ROT 0 5 0

49

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 50: Curso basAR e Clicks

Escala

• Variar a escala do objeto do ponto

• Mudar no estado 2 o comando para aumentar o tamanho do modelo. – 3 SCL 1.25 1.25 1.25

• Mudar no estado 3 o comando para diminuir o tamanho do modelo. – 3 SCL 0.75 0.75 0.75

50

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 51: Curso basAR e Clicks

Mudar modelo

• Alterar o modelo.

• Mudar no estado 2 o comando para chamar o modelo 2 da lista. – 3 CHGM 2

• Mudar no estado 3 o comando para chamar o próximo modelo da lista. – 3 CHGNM

– END_STATE GO_TO 1 AFTER 1 51

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 52: Curso basAR e Clicks

Animação Simulada

• Com um botao o modelo move e com o outro faz o modelo rotacionar.

• Mudar no estado 2 o comando para acionar o movimento: – 3 TRA 1 1 0 0 2 20

– END_STATE GO_TO 1 AFTER 2

• Mudar no estado 3 o comando para acionar a rotação: – 3 ROT 360 0 0 2 20

– END_STATE GO_TO 1 AFTER 2 52

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 53: Curso basAR e Clicks

RESUMO

53

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 54: Curso basAR e Clicks

Resumo comandos utilizados

–STAT: [PointID] STAT [ShowMode] <AUDIO> <OVER?>

–CHGST: [PointID] CHGST [ShowMode] [NextState] <AUDIO> <OVER?>

–TRA: [PointID] TRA [X] [Y] [Z] <Time> <Step>

–ROT: [PointID] ROT [X] [Y] [Z] <Time> <Step>

–SCL: [PointID] SCL [X] [Y] [Z] <Time> <Step>

–CHGM: [PointID] CHGM [ModelToChange]

–CHGNM: [PointID] CHGNM

–SETS: [PointID] SETS

–SETL: [PointID] SETL

–GETS: [PointID] GETS

–GETL: [PointID] GETL 54

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 55: Curso basAR e Clicks

Ajuda online

• Videos exemplificando cada comportamento disponível e os arquivos utilizados neste tutorial estão disponíveis em:

https://sites.google.com/site/christophercerqueira/projetos/ear/basar/cursos

55

basAR: Clicks sites.google.com/site/christophercerqueira/projetos/ear/basar ou www.ckirner.com/basar/

Page 56: Curso basAR e Clicks

Clicks Curso basAR

Christopher Shneider Cerqueira – [email protected]

Claudio Kirner – [email protected]

https://sites.google.com/site/christophercerqueira/projetos/ear/basar http://www.ckirner.com/basar

56