a3-animate-160050060_160050019

a3-model-160050060_160050019 created by GitHub Classroom

160050019 - Aman Jain 160050060 - Shubham Anand

Key Controls----

Escape - For closing the window

To select the root of the models for moving them about their centroid ----

F3 - Humanoid
F4 - Dog
F0 - Box

For selecting the joint as the current node---

--------HUMANOID----------

H = torso2  
F7 = neck 
Y = shoulderr
U = shoulderl
T = elbowr
I = elbowl
R = handr
O = handl
B = hipr
N = hipl
V = kneer
M = kneel
C = footr
COMMA = footl

----------DOG--------------

LEFT_BRACKET = dogneck; 
RIGHT_BRACKET = dogtail; 
J = dogarm1; 
K = dogarm2; 
L = dogarm3; 
SEMICOLON = dogarm4; 
APOSTROPHE = dogtail;     

---------BOX---------------

0 = box (basically lowerbox(root)); 
1 = openbox();
2 = closebox();

For rotating the selected joint as the current node---

LEFT = decrease angle of rotation along y-axis by 5 degrees 
RIGHT = increase angle of rotation along y-axis by 5 degrees 
UP = decrease angle of rotation along x-axis by 5 degrees 
DOWN = increase angle of rotation along x-axis by 5 degrees 
PAGE_UP = decrease angle of rotation along z-axis by 5 degrees 
PAGE_DOWN = increase angle of rotation along z-axis by 5 degrees 

For toggling between opening and closing umbrella ---- 5 - toggle

For Perspective vision-------

P = toggle between enabling & disabling perspective;   

For rotating the world------- (kept granularity of rotation = 5 degrees for easablity)

A  = y axis rotates by -5.0 degrees
D  = y axis rotates by +5.0 degrees
W  = x axis rotates by -5.0 degrees
S  = x axis rotates by +5.0 degrees        
Q  = z axis rotates by -5.0 degrees
E  = z axis rotates by +5.0 degrees   

----------CAMERA CONTROLS-----------

LEFT SHIFT = Zoom Out
RIGHT SHIFT = Zoom In
KEYPAD 1 = Move Camera along positive X axis
KEYPAD 3 = Move Camera along negative X axis
KEYPAD 4 = Move Camera along positive Y axis
KEYPAD 6 = Move Camera along negative Y axis
KEYPAD 7 = Move Camera along positive Z axis
KEYPAD 9 = Move Camera along negative Z axis

Note : Camera Motion controls are on keypad numbers (Not the number buttons placed below function buttons)

We have done following tasks :

Created Room and added table, door, window, lamp, a light
Added extra furnitures - wardrobe, photoframe, stool, chair
Placed the music box on table and other furnitures appropriately 
Textured all the furnitures
Added Controls to move Camera
The lookat vector is set at the box at the table in the center so that all the view in the room can be seen via translation of camera.

We have done lighting also but we have not added the switch yet.

We have partially completed the function to output keyframes, interpolate between two frames and make multiple frames out of it, apply the frames.
We have also done saving the current frame to jpg file via saveFrame().

But since one of the piece was missing due to which we did not give this funtionality and hence commented it out.

References :

http://www.opengl-tutorial.org/beginners-tutorials/tutorial-5-a-textured-cube/
https://learnopengl.com/Lighting/Basic-Lighting
https://goo.gl/yXg2Yy
http://www.lighthouse3d.com/tutorials/glut-tutorial/keyboard-example-moving-around-the-world/