Computer Science 102 Short Program 6 Due 5 April 11:59PM 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 implement the finite rectangular plane C++ raytracer. Use the following class definition. class fplane_t: public plane_t { public: fplane_t(); fplane_t(FILE *, model_t *, int); virtual double hits(vec_t *base, vec_t *dir); virtual void dumper(FILE *); protected: vec_t newloc; /* last rotated hit point */ double dims[2]; private: mat_t rot; /* rotation matrix */ vec_t xdir; vec_t projxdir; /* xdir projected onto the plane */ }; In addition to the xdir vector and dims value the dumper should print the projected xdir and the rot matrix