Computer Science 102 Short Program 4 Due 12 March 11:59PM For this program the ONLY authorized source of assistance is Dr. Westall or the TA's. ANY OTHER DISCUSSION of the program no matter how "high level" or "peripheral" (e.g. Have you started/finished it yet?) is STRICTLY FORBIDDEN. Any student who observes improper behavior is encouraged to report it to Dr. Westall. Reports that can be verified will be rewarded with a 20 point bonus on the assignment for the student doing the reporting and an F for the course for the student being reported!! Adhere to the following programming standards. Violations will lead to deductions. (1) no function should be longer than 30 lines code + whitespace. (2) the maximum nesting level in any function is ONE (3) code lines should not extend beyond column 72 (4) no more that one statement may be written on a single line (5) use reasonably descriptive names for variables and functions (6) package all functions into a single source code module named camera.c (7) your program should compile without any warnings with gcc -Wall (8) indenting should be consistent with logical nesting (9) diagnostic / debug prints should be disabled/deleted in your submission. In this assignment you will convert mp1 to a hybrid C/C++ program. The class definitions that you MUST use are in ray.h in the sp4 subdirectory. If you are loafing along in the course I strongly encourage you to CONVERT YOUR OWN EXISTING CODE. But if you are struggling along, you might find this assignment to be as "catabolic food" is to a dieter because the sp4 directory also contains a fully functional C++ raytracer that will do planes but not spheres. Only the module sphere.cpp is missing. So if you want to make a fresh start with some reasonably robust code feel free to do that too. ALL the remaining projects will build upon the C++ foundation. In that case ALL that you need to do is: (1) add your vector.h to the collection (2) following plane.cpp create sphere.cpp We will discuss the new object structure in class tomorrow.