Open Inventor Open Inventor e un object oriented 3D toolkit cioè una libreria di oggetti e metodi per la creazione di applicazioni grafiche interattive.

Slides:



Advertisements
Presentazioni simili
Programmazione ad oggetti
Advertisements

Introduzione al linguaggio C++
INFORMATICA Altre Istruzioni di I/O
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009
Esercitazioni If nidificati
Code::Blocks Ambiente di sviluppo.
Iterazione A. Ferrari.
Recupero debito quarto anno Primo incontro
3TC – 5/11/2010 Cicli while e do.. While Contatori e Totalizzatori.
Analizzatori Lessicali con JLex
Differenze nei vari linguaggi di Elisa Trifirò e Barbara Tacchino
MultiSet, Liste Ordinate
Connessione con MySQL.
1 Metodologie di Programmazione. 2 Contenuto generale §tecniche per la programmazione orientata ad oggetti (in piccolo) §esemplificate utilizzando il.
GLUT & OpenGL Ing. Tommaso Coviello Politecnico di Bari
Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A CDL in Ingegneria Elettronica - A.A Strutture dati dinamiche.
Esercizi su alberi binari
Esercizi su alberi binari di ricerca
Interrogazioni su un albero binario di ricerca Search(S,k) – dato un insieme S ed un valore chiave k restituisce un puntatore x ad un elemento in S tale.
Introduzione alla Object Oriented Programming, OOP E.Mumolo. DEEI
E.Mumolo. DEEI Introduzione alla programmazione ad oggetti in C++ Object Oriented Programming, OOP E.Mumolo. DEEI
Laboratorio di Linguaggi note sull'uso dell' IDE DevC++ Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
1 Costruzione di Interfacce Primi passi in OpenGL
Introduzione al linguaggio C++ 5 lezioni
1 Corso di Informatica (Programmazione) Lezione 6 (31 ottobre 2008) Introduzione a Java: primo programma, installazione dellambiente di sviluppo, compilazione.
INTRODUZIONE ALLA PROGRAMMAZIONE STRUTTURATA
Algoritmi e Strutture Dati
Corso di Laurea in Comunicazione Digitale Corso di Realtà Virtuali - a.a. 2009/10 Prof. Paolo Pasteris Tutor: Stefano Baldan 2D IN PROCESSING 1-2 Processing.
Gestione dei Progetti Software 2 (a.a. 2004/05) - Lezione 3 1 JAVA e Internet: il World Wide Web Internet: milioni di computer collegati fra di loro attraverso.
I Thread.
Interazione utente-programma
Open Inventor In questa lezione impareremo a:
Corso di Laurea in INGEGNERIA MECCANICA
Open Inventor (parte progetto) 1)Aggiungere alla classe base (delfino.h, Ufo.h, Veicolo.h, …) le inclusioni di open inventor: #include N.B.: Se si utilizzano.
Strutture di controllo nel C
Lezione IX Laboratorio di Programmazione. Le Classi Una classe C++ è definita come segue: class Nomeclasse { private: // metodi e attrib. visibili solo.
OGGETTI COMPOSTI Una classe può contenere riferimenti a altre classi (o anche a se stessa): public class Orologio { Counter ore, minuti; } Loggetto Orologio.
Il compilatore Dev-C++
Esempi di analisi dati con ROOT
void binario(int n); …………………
RB-insert(T, z) // z.left = z.right = T.nil Insert(T, z) z.color = RED // z è rosso. Lunica violazione // possibile delle proprietà degli alberi // rosso-neri.
Creazione progetto in C++/DEV
Massimiliano Piscozzi – Sistemi multimediali.
Open Inventor Open Inventor è un object oriented 3D toolkit, cioè una libreria di oggetti e metodi per la creazione di applicazioni grafiche interattive.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Display list e scene graph Daniele Marini Dipartimento di Informatica e Comunicazione.
Corso di Programmazione Grafica e Laboratorio Daniele Marini
1 novembre I nomi in Java F. Bombi 1 novembre 2002.
Interfacce grafiche Capitolo 27 marzo 2004 Interfacce grafiche.
Arduino: introduzione alla programmazione
Alberi Alberi radicati : alberi liberi in cui un vertice è stato scelto come radice. Alberi liberi : grafi non orientati connessi e senza cicli. Alberi.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Laboratorio di Servizi Web - XML - Ardissono 1 Rappresentazione ad oggetti di documenti XML Parser fanno analisi sintattica di documento XML ma, a meno.
Cartelle e file Risorse del computer Esplora Organizzazione gerarchica e strutturata delle informazioni- struttura ad albero rappresentazione grafica di.
1 Eccezioni in Java. 2 Ricordiamo che 4 una procedura può terminare –normalmente, ritornando un risultato –in modo eccezionale ci possono essere diverse.
1 SC che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma “La Sapienza”
Esercitazione  obiettivo: scrivere una applicazione per il gioco “Centra Bersaglio”  metodo individuazione e definizione delle classi necessarie.
Corso di Laboratorio primo modulo Introduzione all'uso di un sistema operativo. Introduzione all'uso della shell (bash). Java – –Introduzione – –Tipi di.
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
LIP: 4 Maggio 2007 Interfacce. Cos’e’ una Interfaccia una interfaccia e’ un particolare tipo di classe contiene solo la specifica non ha implementazione.
1 Java secondo contatto Nel tunnel una luce…. 2 Esercizio - Contatore Definire la classe Contatore con le seguenti caratteristiche:  Il metodo getValore.
Corso di Algoritmi e Strutture Dati con Laboratorio Richiami di Java – parte II.
UNIMORE University of Modena and Reggio Emilia Scratch Simone Calderara
Albero genealogico. Si abbia un albero genealogico come nella figura sotto. Si supponga che i nomi propri delle persone siano tutti diversi, e quindi.
Introduzione alle Classi e agli Oggetti in Java 1.
13. Strutture dati dinamiche Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Transcript della presentazione:

Open Inventor Open Inventor e un object oriented 3D toolkit cioè una libreria di oggetti e metodi per la creazione di applicazioni grafiche interattive tridimensionali. Il toolkit mette a disposizione oggetti che possono essere composti modificati ed estesi per creare delle scene grafiche interattive.

Da dove si scarica? Open Source: TGS (Open Inventor 3.1.1) versione demo per 15 giorni: ftp://ftp.tgs.com/OpenInventor/Windows/Inv311/

Dove si studia? Libro ufficiale: The Inventor Mentor – Ed.: Addison-Wesley Manuale di Riferimento nella cartella: C:\TGS\OIV3.1.1\doc\ReferenceManual Esempi nella cartella: C:\TGS\OIV3.1.1\src\Inventor\examples\Mentor\Cxx Dispense e lucidi sul sito

Il grafo della Scena (Scene Graph) Uno scene graph è costituito da uno o più nodi, ognuno dei quali rappresenta un oggetto primitivo una proprietà o un gruppo di nodi. La gerarchia della scena è creata addizionando ai nodi gruppo degli altri nodi.

#include … int main(int, char **argv) { Widget myWindow = SoXt::init(argv[0]); if (myWindow == NULL) return 1; SoSeparator *root = new SoSeparator; SoPerspectiveCamera *myCamera = new SoPerspectiveCamera; SoMaterial *myMaterial = new SoMaterial; root->ref(); root->addChild(myCamera); root->addChild(new SoDirectionalLight); myMaterial->diffuseColor.setValue(1.0, 0.0, 0.0); // Red root->addChild(myMaterial); root->addChild(new SoCone); SoXtRenderArea *myRenderArea = new SoXtRenderArea(myWindow); myCamera->viewAll(root, myRenderArea->getViewportRegion()); myRenderArea->setSceneGraph(root); myRenderArea->setTitle("Hello Cone"); myRenderArea->show(); SoXt::show(myWindow); SoXt::mainLoop(); return 0; } I nodi di Open Inventor vengono creati con listruzione new ma non si possono distruggere con la corrispondente istruzione delete è lo stesso Open Inventor che amministra la cancellazione dei nodi. root->ref(); incrementa il contatore associato al nodo root. Ogni nodo ha associato un contatore che segnala ad Open Inventor quanti sono gli oggetti che lo utilizzano (padri). Quando il contatore diventa nullo Open Inventor cancella loggetto presumendo che non sia più in uso. La futura radice della scena non è figlia di nessun altro nodo e dunque ha il contatore posto a zero. Noi lo incrementiamo artificialmente per preservarlo dalle cancellazioni di Open Inventor. Primo Esempio Widget myWindow = SoXt::init(argv[0]); Inizializzazione di Open Inventor SoPerspectiveCamera Viene creata la camera SoMaterial *myMaterial = new SoMaterial; Viene creato il materiale SoSeparator *root = new SoSeparator; La radice della gerarchia di oggetti è sempre di tipo SoSeparator SoXt::mainLoop(); Pone il sistema in un loop infinito in cui vengono gestiti gli eventi via via provocati dallutente tipo selezioni o movimenti del mouse root->addChild(myCamera); I vari nodi vengono appesi alla radice secondo un preciso ordine. E necessario porre la SoPerspectiveCamera per prima altrimenti gli oggetti definiti in seguito non vengono colti dalla camera. Analogamente la luce deve precedere gli oggetti che illumina, il materiale deve precedere la definizione della forma SoCone etc.. root viene promosso come radice dello Scene Graph. La SoXtRenderArea è larea su cui vengono disegnate le forme, il costruttore riceve come parametro myWindow Il metodo viewAll di SoPerspectiveCamera permette alla camera di inquadrare tutta la scena definita nel SoSeparator che viene passato come parametro alla funzione

I nodi SHAPE Le più usate: SoCone SoCube SoSphere SoLineSet SoTriangleStripSet