I'm looking for coding help I don't really need this to be explained I'm currently trying to draw a grid and a cube but I also need that cube to rotate issue is I've been given so much information at once and there are so many missing pieces mostly do to it not being explained or I've forgotten how to do it that I'm just at a lost Here's my current code Defines.h #pragma once #define Width 500 #define Height 500 #define NumPixels (Width * Height) unsigned colorArray[NumPixels]; void ColorBuffer(unsigned int color) { for (unsigned int i = 0; i < NumPixels; i++) { colorArray[i] = color; } } void drawPixel(unsigned int x, unsigned int y, unsigned int color) { unsigned int index = convertCoords(x, y); colorArray[index] = color; } struct Float4 { union { struct { float V[4]; }; struct { float x; float y; float z; float w; }; }; }; struct Matrix4x4 { union { struct { float V[16]; }; struct { float xx; float xy; float xz; float xw; float yx; float yy; float yz; float yw; float zx; float zy; float zz; float zw; float wx; float wy; float wz; float ww; }; struct { Float4 AxisX; Float4 AxisY; Float4 AxisZ; Float4 AxisW; }; }; }; struct Vertex { Float4 Position; unsigned int color; }; MyMath.h #pragma once #include "Defines.h" float DotProduct(Float4 v1, Float4 v2) { return (v1.x * v2.x) + (v1.y * v2.y) + (v1.z * v2.z) + (v1.w * v2.w); } Matrix4x4 MultiplyMatrixByMatrix(const matrix& m1, const matrix& m2) { Matrix4x4 mOut; mOut.xx = DotProduct(m1.Row0, m2.Column0); mOut.xy = DotProduct(m1.Row0, m2.Column1); mOut.xz = DotProduct(m1.Row0, m2.Column2); mOut.xw = DotProduct(m1.Row0, m2.Column3); mOut.yx = DotProduct(m1.Row1, m2.Column0); mOut.yy = DotProduct(m1.Row1, m2.Column1); mOut.yz = DotProduct(m1.Row1, m2.Column2); mOut.yw = DotProduct(m1.Row1, m2.Column3); mOut.zx = DotProduct(m1.Row2, m2.Column0); mOut.zy = DotProduct(m1.Row2, m2.Column1); mOut.zz = DotProduct(m1.Row2, m2.Column2); mOut.zw = DotProduct(m1.Row2, m2.Column3); mOut.wx = DotProduct(m1.Row3, m2.Column0); mOut.wy = DotProduct(m1.Row3, m2.Column1); mOut.wz = DotProduct(m1.Row3, m2.Column2); mOut.ww = DotProduct(m1.Row3, m2.Column3); return mOut; } unsigned int convertCoords(unsigned int x, unsigned int y) { return y * Width + x; } RasterFunc.h #pragma once #include "Shaders.h" // Draws a line using one of the line equations. void DrawLine(const Vertex& start, const Vertex& end) { // Copy input data and send through shaders Vertex copy_start = start; Vertex copy_end = end; // Use vertex shader to modify incoming copies only. if (VertexShader) { VertexShader(copy_start); VertexShader(copy_end); } // original plotting variables adapted to use new cartesian data SCREEN_XY screen_start = CartesianToScreen(copy_start); SCREEN_XY screen_end = CartesianToScreen(copy_end); // Standard line drawing code follows using integer coordinates... for (numPixels) { A_PIXEL copyColor = currColor; // Just like a Vertex, copy original. if (PixelShader) PixelShader(copyColor); // Modify copy. PlotPixel(currX, c.