School of Computing, Science & Engineering Assessment Briefing to Students Learning Outcomes of this Assessment A2 - show awareness of a variety of graphics toolkits and select an appropriate one for a given task A3 - discuss the capabilities of various input and output devices and their relationship to graphics programming A4 - use appropriate mathematics to perform standard graphical transformations A5 - application of graphics programming skills in a real-world application Key Skills to be Assessed C/C++ programming Use of OpenGL API Application of low level graphics principles & data management techniques for developing interactive graphics application Critical Evaluation of tools used The Assessment Task Your task is to demonstrate your newly acquired skills in C and OpenGL programming. This will be achieved by producing a demonstration application that will offer a simple visualisation comprising a collection of discrete objects located in a navigable space. Fundamental to the successful completion of this assignment is careful consideration of the management of scene data, using resizable dynamic memory structures, and the application of appropriate mathematical models for simulation, navigation and interaction. The form of this assignment will be a basic solar system simulation in which a dynamic collection of planetary bodies will be simulated. These bodies will be represented by simple graphical forms and have the ability to show a historical trail of their movement. The bodies motion should be defined by a simple gravitational system simulation which calculates forces based on the masses of the bodies and uses this to derive discrete step changes to acceleration and velocity.Inital starting conditions for the planetary bodies should be random (mass, position, starting velocity and material (colour)). Advanced solutions should consider the actions taking place when collisions between bodies occur. In these cases the collision should be detected. The mass and velocities of the bodies should be combined (thereby removing one of the bodies from the data structure) with the major body taking priority. Ideally the size of the resultant body should be changed to reflect the enhanced mass. You should also provide mechanisms to add bodies during the runtime of the simulation (based on random data) both at user request and to maintain a set number of bodies in the system. Assessment Title : Computer Graphics Assignment 1: OpenGL Programming - Solar System Module Title : Computer Graphics You are provided with an example solution to evaluate and a template project, including a maths library, camera model and basic utilities as a starting point. The implementation of the assignment problem will be assessed in the following areas 1. Design and implementation of a suitable dynamic data structure that will maintain an ordered list of the render-able objects with facilities to add and remove entit.