Übung 10 - Eine Skulptur verändern

! Hilfe !
- Man-Pages für die Header-Files
- "Open Inventor Nodes Quick Reference" für die Nodes
- Mitstudenten fragen.
- Jeweils Mittwoch ab 12:00 im E29, Fragestunde mit Kuk Hwan und/oder Maia.
- email an Kuk Hwan Mieusset oder Maia Engeli.

Offizieller Abgabetermin für die Übung ist der 16. Januar. Die Übung wiederholt genau den Inhalt der Lektion 10 und dieses Wissen ist Voraussetzung für die nächste Lektion.
Auch eine halbe Stunde genügt schon um etwas zu lernen.



Die Skulptur

by Max Bill





0 - Vorbereitung

Die 3 Dateien aus /homes1/prog/ausgabe/exercise10 in Dein exercise10 Directory kopieren.

1 - Das C++ - File ändern

Versuche kleine Änderungen vorzunehmen, "baby steps", so dass die Effekte nachvollziehbar sind.

2 - Kompilieren

Wenn es nicht geht, immer zuerst die oberste Fehlermeldung anschauen, die restlichen sind oft Folgefehler.

3 - Programm laufen lassen

Mit dem Befehl exercise10 und schauen ob Erwartung und Effekt übereinstimmen. Dann wieder zu Punkt 1 - Das C++ - File ändern.




Mögliche Fehlermeldungen und deren Ursachen:

"exercise10.c++", line 46: error(3385): no instance of overloaded
function "SoMFColor::setValue" matches the argument list
     material->diffuseColor.setValue(.3, .3); // set color grey

Die Funktion material->diffuseColor.setValue() wurde mit nur 2 anstatt 3 Argumenten aufgerufen.



"exercise10.c++", line 130: error(3114): identifier
"SoXtExaminerViewer" is undefined
     SoXtExaminerViewer *myViewer = new SoXtExaminerViewer(myWindow);

Das .h-File für den ExaminerViewer wurde nicht included.



"exercise10.c++", line 132: error(3114): identifier "MAX" is undefined
     myViewer->setTitle(MAX BILL an der Bahnhofstrasse); 
                        ^
Die Gänsefüsschen (") um den String herum wurden vergessen, richtig: myViewer->setTitle("MAX BILL an der Bahnhofstrasse");


"exercise10.c++", line 39: error(3114): identifier "SoRotate" is undefined
     SoRotate *rot = new SoRotate;  
Den Node SoRotate gibt es nicht in Inventor.


"exercise10.c++", line 108: error(3158): expected a ";"
     root->ref();        
     ^
Ein ; wurde vergessen nach dem Statement vor: root->ref();


"exercise10.c++", line 130: error(3112): expected a ")"
     SoXtWalkViewer *myViewer = new SoXtWalkViewer(myWindow;     
                                                           ^
Das ist klar.


Diese Sammlung können wir per email noch erweitern.