Skip to content

mehr-licht/A3S1LAIG

Repository files navigation

LAIG

project developed in the Laboratory of Graphical Applications and Interfaces course unit

Project Infos

  • Date: 3rd Year - 1st Semester - 2018/2019 (Jan 2019)
  • Topic: Project
  • Course: Laboratory of Graphical Applications and Interfaces
  • Course Link: link
  • Project done with: Ricardo Silva

Disclaimer

This repository, and every other course unit repos on GitHub correspond to school projects from the respective course. The code on this repo is intended for educational purposes. I do not take any responsibility, liability or whateverity over any code faults, inconsistency or anything else. If you intend on copying most or parts of the code for your school projects, keep in mind that this repo is public, and that your professor might search the web for similar project solutions or whatnot and choose to fail you for copying.

Template adapted from zettca

video patch is spaceEgg patch is boat and vehicle is spaceEgg

LogBook 3 Entrega

Instructions

Dois terminais na mesma pasta, ao mesmo tempo

Run Prolog on Port 8081:

$ rlwap sicstus ?- reconsult(server). ?- server.

Run server on Port 8080:

python -m SimpleHTTPServer 8080\

For testing purposes only:

![http://localhost:8080/Sicstus-WebCGF/][http://localhost:8080/Sicstus-WebCGF/]

More:
python version: python -V\

Folders

Game Onde decorre as interligacoes entre o js e prolog

prolog Onde esta o jogo e o server

cfgonjreader Exemplo do prof para objectos (blender)

Sicstus_WebCGF Exemplo do prof para interligacao com a linguagem prolog

Demo

demo em modo CGRA

Personal webpage

Caso a àrea do estudante seja posta online
» http://paginas.fe.up.pt/~eiXXXX/mytest
Usar a área web de estudante da FEUP:​ colocar o projeto uma pasta dentro da pasta public_html da conta do estudante, e acedendo à mesma através do endereço público http://paginas.fe.up.pt/~eiXXXX/mytest . Neste caso, ficará por omissão acessível a todos (o que pode ser contornado, p.ex. com um ficheiro de controlo de acesso .htaccess). Tem também a desvantagem de implicar a edição/atualização dos ficheiros no servidor da FEUP, e obrigar a uma ligação à rede da FEUP para poder editar/carregar a aplicação

Shortcuts

Google Chrome - Dev tools Ctrl-Shift-I
Botao direito - deslocar lateralmente a camera
Botao esquerdo - roda a cena ou CTRL +
Botao central - aproximar e afastar

Estrutura biblioteca ‘WebCGF’

A biblioteca WebCGF​ (Web Computer Graphics @ FEUP) - tem como classes principais as seguintes:
● CGFapplication ​(+) ​- Gere as questões genéricas de inicialização da aplicação e bibliotecas de apoio, e interliga os outros componentes
● CGFscene ​() ​- É responsável pela inicialização, gestão e desenho da cena
● CGFinterface ​(
) ​- É usada para construir e gerir a interface com o utilizador; pode aceder ao estado interno da cena para, por exemplo, ativar ou desativar funcionalidades (p.ex. luzes, animações)
A biblioteca contempla também as seguintes classes que representam entidades que podem integrar uma cena (lista não exaustiva):
● CGFobject ​(*) ​- Representa um objeto genérico, que deve implementar o método display()​; os objetos a serem criados devem ser sub-classes de CGFObject
● CGFlight ​(+) ​- Armazena alguma informação associada a uma fonte de luz (poderá ser estendida por sub-classes para implementar características adicionais)
● CGFcamera ​(+) ​- Armazena a informação associada a uma câmara

Remember functions\

init()
» É aqui que tipicamente se inicializam variáveis, criam objetos ou são feitos cálculos intensivos cujos resultados podem ser armazenados para posterior consulta

display()
» Contém o código que efetivamente desenha a cena repetidamente. Este método será o foco deste primeiro trabalho.
dividido em três secções:
%Inicialização do fundo, câmara e eixos
% Transformações geométricas
% Desenho de primitivas\ ​

Remember Criar OBJECTO 3D \

Dessa forma, para criar um determinado objeto 3D, podemos simplesmente:
» criar uma sub-classe da CGFobject​, p.ex. MyObject
» implementar o método initBuffers​, onde
» declaramos os arrays acima referidos,
» invocamos a função initGLBuffers ​para a informação ser passada para o WebGL
» Na nossa cena:
» Criar e inicializar uma instância do novo objeto no método init() da cena
» Invocar o método display()​ dessa instância do objeto no método display() da cena\

Final Data\

turma1
grupo5

up201607946 Luis Oliveira
up201607780 Ricardo Silva

Graphical Interface Applications Laboratory - MIEIC FEUP

Projects done in colaboration with TejInaco

Other notations

Sending Data

var myObj = {name: "John", age: 31, city: "New York"}; var myJSON = JSON.stringify(myObj); window.location = "demo_json.php?x=" + myJSON;

var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { var myObj = JSON.parse(this.responseText); document.getElementById("demo").innerHTML = myObj.name; } }; xmlhttp.open("GET", "json_demo.txt", true); xmlhttp.send();

Receiving Data

var myJSON = '{"name":"John", "age":31, "city":"New York"}';

var myObj = JSON.parse(myJSON);

document.getElementById("demo").innerHTML = myObj.name;

Storing Data

When storing data, the data has to be a certain format, and regardless of where you choose to store it

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published