From 18d3d784a77b90b56cd534dee48cb3ec02b70557 Mon Sep 17 00:00:00 2001 From: Tyler McGurrin Date: Thu, 21 Nov 2024 21:37:51 -0500 Subject: [PATCH] ITSA CUBE MATE! --- build/main | Bin 17952 -> 18976 bytes src/main.c | 96 ++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 80 insertions(+), 16 deletions(-) diff --git a/build/main b/build/main index 026cf01b2b98032cec80d06e2be8231f42512ee2..66f0288b91371da4fbba5bf0feb076ae04923070 100755 GIT binary patch literal 18976 zcmeHPeQ;Y0mp>!rJ3}njgY?hMNE-VDX0?X2n&4y?*9k(K$_&P<6z&bG0O1v@ zMKSWl;u28+?2w$H_Zk9PBb~BMmrljoA<1tZ6|%?+4O+0|9+D)#T7roJ@SV;K&z5Vf+e=r$HB>jHjZ|!LJhr)?)Z)7kTPIR<4MB}k=N1!_z zHgs7vz0rCͧ_*^mealHsk9SSY?r5{;3;foNb)b1D{;cvE~Zxj7s%Sjn`8qT!5s z%dWsceX6G?oES8eu}D%?(H;+lGn~=FmdKq`l+?8cBC)o3d;nl`Jc+LKpwtykB*VK` z_UuHtDJDnL8*PY&1Br%sG@bw}I9coP8C;p zuA&2v8A$$N=E0v`<_?*&X1cVCKgBt~^X8mLq?l%!hZOhp{SRUKwTpuar>Y{D+HB(c zz?67><8{TWPRje#`o;WNbzSkWSGr}^A;#nD4W8zDxn3JkylmpRE>fK|@w1gJiBl%N z!o;68@${X_B(G7T?~NLgB%CH*Eftb4HSxTJlVYBUH_y{<6K`I}mYI0I^guPD#>Dd) zLi}nIuP$|n7G4uyBpD;~nfO^Iev^sEfzG6DCcY%Y3bDh)yG(qaiRW{N)B`479de?@ zZWCWF86z7q@w6^-y3cErC^nT$=4Czt`3U4AkdMIsIs)fh3%>B}d*A6B(N9zh;ro;E zq%D2Yx9>&gFfa zz3{o+r@iER?R;_$D$rF0&h+UX*TTjrf9l`Ry1#~6q*iwN_N{xC9yIud&m@a|BkS%3 zpRRZu)I<|`=3m>~~9zW+Q)2pE;yQPq>YJCjqowMK|mE|BOPW(qYJ$lWeE^28xzqbFo1QFD#8=C=IciBpwgYZcK^+MBMjT6)$58Nx-4N(*!=l z)PnQ4=`ev06nKunFBFg+eM5m4NpnnrmkB(pz^ep)sK7}AV+y=M;Lj8|MPRQ2KPQk< z;4}f6>8LyJ61YWy2?94N@cvP;fxgdQ;85*v8g1L}TWd&f4N2dA-(o{&&DQgMuW2gOz>U>6}4@G#sa{sq}#TBc4M%dB~sRgNmjr+ftR5y(d% zAAx)X@)5{K;144L8eL)`Z5#;4TH4$l;lZTDU!U`%mS5eO#MAPp8zdoy=*js}eAa6h z*st}WKsVv2wIP;^TDs5M&SJi;#Z@`7UJ9xpdlr%dZ`uq|=Kb>pxAW z8zK2wuXg8Vq3tf!E|^v5992C1_W$JBbox?A(O4)SFE2*14xc`>OTP_@lG5gqdDpv& zb~%T{`l@R$U%7Y@Soz+-t&kD)>n0*Ll$73UYbY+TwV?$=PyK!b`WvR{n=|?`@IQtA z=4txQjQ%OPGJT?6hMKQ1zt44n!gQ}ksmc(7-|M3L97?SJ&G~ek@VI&@ir?XKtCybm z-KWz^j~^*y`myRCerl0vo|5Kww}?`1VnV&gW!$~uK2iDe{UpCj#qSI`>8Cy<=6$Ne z-0yLz6+)Q_ZXZ7($niieP4Nqr#7^aiU*IHG%?sSFN_o5u>GD+^ z9$jeCxcD9%%Zo@)=VCTbo3pSVHa16Lf`sPW14Emw&`m-s__{>;66i`CdL)(w}N`-&ds%FAe`zh({ z^u4m5)2c4YP-SaSwEwMEwGFB|qIXG4no8`4w5k@OZ}N_(Y-b3{>35%spcasg4(n-%tNlXB8l z=_Tb80G3P?z75iTOsgvYHE9EKU^~^6Dj)9kzI71-qHsuNcz;B$0c zC9YJ!>*!h~mMeg&uNEE!oT4a*PAoW6j+T(*6EsL|>;QFQgIF+o9FY1@FBU8`$~znl zV!;(gd7GnAEV$YzZxXZIsBGRNs}I z5HF9me!jirnxbpD- zLv%f2dIk7mUMgFefm&c`s%7TIP|(W-MXFV)ytrWL{4%Y)&^zxg+4?M1qf)X;h~hGB zNy+RY`@#zr5?P8htVE3jGnA`BEX68aT1R~^GP<{ZK6Soq`WRbh8>1}G&=}^@`K`0L zB?`f8v(l`XgZe34nb1^dTI+0b5%fG)$8xw9Qq#2Gl@yb}A)+^@QCMil(B)Iw)sQxA zq0Qx>iC2@EkGOWq^kOl?#z)Uyrs*?p&~@j#x^tiI*sGUg&eKM9+Yw#ct`}dY+iq~a zdy=X0{GtOS;PUiv3=Pg}>aj|!=KJ$!jvlrP8+q47r znYQaS+af3I^Tl3oV4FRcSt7VVDU|&3ubf;p2k=|H1 z)OZD@X17jybAko_( z8=yW-+vC7H6dDtOT>@rZ@b8W!dm`az2p*Yj4XNbx9Tsx0g0b17r7ai@^bhn1Z0hKB z%Z$d>km{yE85TCe8~W<$ z6FrG=n8u179U;J+iOzn9_$ZytAR8|)HAGov{~P;VfPy9}g!OuDvE(Z=*S&0i4GL;r zWJ=2GbMTwNm*VR7pjVn@vh65kt7iuW=7#;K#XbQ0GTJTTMgfVw+LQ+H$yU!^$(IQ0 zia_i4B7CgrF%adV1Xn|bh8NLh^oMxsV(?vqf5cX;}}WDfw~^{te=7F2VOh z?D5Yz>^}ovCguyiw&FN^A?-_qbtR`0BwKt!YFxbU_EOkUa!TGPoAZhsyxcEm!=;(J z?q;7=u&4M~k2~$t%hsP8a`4-7@N|Dl=auz5xkK8Q2^-r6AiEo~d?H?;XTHaBl+>hO1LsBdfXW7@K=EXI`U z4~GKD0Mu&dTI)ud(;_i{YA{SIgLOfWQ}guAYhK=MMqA9}g5mdv2IKy|KnzQlti!rS zn%7X;1Q+@04!KON*u#d~6}fOtTc|P{|E#<1GM;t9kE)ZX8(R_mO*b}Tk78zpqC)%B zc0Xe~BgMklrDv>b{xEhqs@NDytl!@~IH*jxu4yan)V@K>YWH95j-;B*7X{fiR%YEi zDX%QhLE4Cj4T!=sxTilE=!Q%t4B5veES}-SfbhiP$*`w4mhucFu+}A#drVY!DuTVu zk&vP`)VD5A26}}w?+Xm}2~TKG3{4m^nJ_dvvE4Efk4*!9=n~;*fE-k5Aes~&c|bha zPl>WT@Sa3mo`IflpT8#&=nwn*Lhxl|c=!W}L;xKn4=$tPKz}5NR^zA(nMXEYREC2j zJi&NBt?cM*xI5Jgzd)=PR~rgOVm)y#2fDix;hl`Iw>!*bM30L^Mm|B4p- zQJ|QzKR>r*Ij#)3ee3wYqx|cY9X|(U$%U(oq&PS)c; z2Bq2Gt^8Qh^@=(1WedyiTKxI?h~*)Ez^p1^Kd$qK7Jt63V_D3GN?QB>l=A2J3%4>< zvQ9x39Dl|~P@o~Qf1TUVuxvA6CbzbK0vfabklQe2Nl(_y$=d$wP~!22{0@*EKiB8~ zhhep6%<`A;ahd%2x&M93skW)}#XwV-{ojLv&K)&vWbSMD|C{jtF`@IH68rIS`~(~g zk^Omp_;@v03$e@)nVkJu{uUauKmTqpq5L1ucp3%vV`+o4*`Kd(M{5jw?k88nei;mB z;<*0@y@uwX^0(Ssk3aoi25MiK8_vktpXPUSB3nu<=PG}Loyy--6w3ddHx@@)VKFO zAHV10{d(T~-yS={j~(Qr?ri2{Y71(Nd27d3f7`m zxe(=k%WXlAgkk3R1Qal8@W~28;UDS{-PWer?YN-@A!1tFUAkTxVRG> zlAHeloRW+G3x=y*{5e&=s?wb*eVr)8WH*#zAC=wwXByHVL9Ud`+hI)h^L=nu4)b@Q z41J1BP4)*m`};ard*`-zZ!*4bErbF&@U$rxE|_Yd*zAEv%$;z-oF@y6GZ8*8=O0$2 z5`hJAr4D`OKOFmpi7}BqsAK&F3EU)sH9<&mL64%;K3A)`Dtg2*eQSGy_u_^=6VPx> zi-W$5S;m!&%(oYyS#U{lOF*9}(?6SDvAfopL3DZyo z4q2Y(c35V0!GJXbg0f}G;hHcVcW`*vxpeC|t}4Cc6(3_Cw)yOyuc?8NL$x74W06C0 zHLufqx@J;G{*z7< ze9P|0Ol2}QB40<^W=GR0G>z_>ZNkiFSP=8wzMD>;p~6hPhZ04cRwJg3h>vvmRTZ8z z;JLf$8rA)Xihtd}FY4}JQQ^G?{073QKN3kH8Qlf_d7c=cczQbye#VRUCiNRs&)`g0 zY6nWVmu8HP9C$1BOH_ZN8vcgUN5cx-1TvgMLuwaU@le>sS;lVJ3-3hszpq60pI2t5 zCX4=LgBfe;uvdEIp`LhGc(eDhcwZ8IhxF=T#Lw`hVh!Cp89Td~PIn-iL;f)G%OBu; zkr(_Uo&G-Zmyo}WoH6*Sw;1o;q}OE{y^&7OF*xll-WEdt5Sc?+j%S4WOw&Myndp^B*&10#+Ni3s0Hthd%Bt&b1VqS?p zf@EGzj4RcM3xatkF>czZYVtpkStU8qm1Keq(|V z_@XAdG54V3WdsCCDnLcPgz}JvC=yLhdJ{sgj470INwpp~j0!bAt`Oodsv`uyDqkD4Gh2}o&B2q(V`5fykx*l+ zvXO4`u|Pf|wi>z0R+7IlAIFqc7hY4eoO}c~V+stccki}1`O2&uo9J2Uaq?`l!-Z9} zg4t|!HWACywu({0j3ulDlVtk%!o1O(jrkm{S@STCUy>iqp+rIVfNEqTuzo|NI)_;V zWA>t*%fhFX-^pB=2%vOK7AKT;`jZ8veTU4S2*~m^l*_J7T$=z#MQ-leHrCqRzq>Qe z>bpC;`+K8Zi6rc(D1;X(iud$&boVB`{at;D_O5uVmu^6K^X^2lEfMc*Wi7q!_4uvt zPg2a|iLTb}y^kiIj3Z<`11M$hx;EC(+p?E^p(W8pG27;28WMdyoh@J5(%l+|%*sM2 ztz1^vpRDhVwi$v##oG=LuFq^Et_TiUzH6Z?!*)B38Ju|9ip-F zClSdO?CgF#xrOajvbLNjE9P8WfeOx$aN~ivN)NqA{sR7f;v^TgU!y{ESiIgVGz!12 z(iVV^V9w;-T}Klu2DN7eGvMAa43Hvr!MkB5updb(;U5HGf1*`o9d% z!`VoMtqzzCVt+U29XhEYQJQdwwxml&Dv$(Myn2WkCQ#BgWM#z5w{VAlW diff --git a/src/main.c b/src/main.c index b5dc21e..df78ee4 100644 --- a/src/main.c +++ b/src/main.c @@ -13,23 +13,85 @@ #define true 1; #define false 0; -void ColourInit() { - glClearColor(0,0,0,1); - glColor3f(0,1,0); +GLfloat RT = 0; + +void Spin() { + RT = RT + 0.005; + if(RT > 360) RT = 0; + glutPostRedisplay(); } -void Draw() -{ - glClear(GL_COLOR_BUFFER_BIT); +void Init() { //this function sets the colours + glClearColor(0,0,0,1); + glColor3f(0,1,0); + glEnable(GL_DEPTH_TEST); +} - glBegin(GL_LINE_LOOP); //use GL_POLYGON for solid object, GL_LINE_LOOP for wireframe and GL_POINTS for points - glVertex2f(-0.5,0.5); - glVertex2f(0.5,0.5); - glVertex2f(0.5,-0.5); - glVertex2f(-0.5,-0.5); +void Face(GLfloat A[],GLfloat B[],GLfloat C[],GLfloat D[]) { + glBegin(GL_POLYGON); //use GL_POLYGON for solid object, GL_LINE_LOOP for wireframe and GL_POINTS for points + glVertex3fv(A); + glVertex3fv(B); + glVertex3fv(C); + glVertex3fv(D); glEnd(); + } - glFlush(); +void Cube( GLfloat V0[], + GLfloat V1[], + GLfloat V2[], + GLfloat V3[], + GLfloat V4[], + GLfloat V5[], + GLfloat V6[], + GLfloat V7[] + ) +{ //Void Cube begins + glColor3f(1,0,0); //set colour to red + Face(V0,V1,V2,V3); + + glColor3f(0,0,1); //set colour to Blue + Face(V0,V3,V7,V4); + + glColor3f(0,1,0); //set colour to green + Face(V4,V5,V6,V7); + + glColor3f(1,0,1); //set colour to purple + Face(V1,V2,V6,V5); + + glColor3f(1,1,0); //set colour to yellow + Face(V0,V1,V5,V4); + + glColor3f(0,1,1); //set colour to teal + Face(V3,V2,V6,V7); +} + + + +void Draw() { + GLfloat Vertices[8][3] = { + {-0.5,0.5,0.5}, + {0.5,0.5,0.5}, + {0.5,-0.5,0.5}, + {-0.5,-0.5,0.5} + , + {-0.5,0.5,-0.5}, + {0.5,0.5,-0.5}, + {0.5,-0.5,-0.5}, + {-0.5,-0.5,-0.5}, + }; + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + Cube( Vertices[0], + Vertices[1], + Vertices[2], + Vertices[3], + Vertices[4], + Vertices[5], + Vertices[6], + Vertices[7] + ); + + glRotatef(RT,1,1,0); + glutSwapBuffers(); } int main(int argC, char *argV[]) @@ -37,11 +99,13 @@ int main(int argC, char *argV[]) glutInit(&argC,argV); //glutInitWindowPosition(0,0); //Readd this later (TM) - glutInitWindowSize(800,600); - glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); - glutCreateWindow("OpenGL Test"); - ColourInit(); + glutInitWindowSize(512,512); //window size + glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); //display mode + glutCreateWindow("OpenGL Test"); //make window + Init(); + glutDisplayFunc(Draw); + glutIdleFunc(Spin); //calls spin when idle glutMainLoop(); return true; }