From 4e899636e022dd2bcd9f678f3ebfb66c12218903 Mon Sep 17 00:00:00 2001 From: workinghard Date: Thu, 23 Apr 2015 20:49:56 -0700 Subject: [PATCH] aa --- Cube4Fun/Pics/Arrows.png | Bin 0 -> 24656 bytes Cube4Fun/Pics/Gradient.png | Bin 0 -> 124970 bytes Cube4Fun/Pics/Gradient2.png | Bin 0 -> 116641 bytes Cube4Fun/Pics/list-add-2.png | Bin 0 -> 2446 bytes Cube4Fun/Pics/list-remove-2.png | Bin 0 -> 1232 bytes Cube4Fun/Pics/media-playback-pause-5.png | Bin 0 -> 5040 bytes Cube4Fun/Pics/media-playback-start-5.png | Bin 0 -> 7415 bytes Cube4Fun/Pics/media-seek-backward-5.png | Bin 0 -> 8713 bytes Cube4Fun/Pics/media-seek-forward-5.png | Bin 0 -> 8534 bytes Cube4Fun/Pics/media-skip-backward-5.png | Bin 0 -> 9733 bytes Cube4Fun/Pics/media-skip-forward-5.png | Bin 0 -> 9980 bytes Cube4Fun/Pics/view-sidetree.png | Bin 0 -> 6095 bytes Cube4Fun/src/Animations.swift | 325 ++++++++++++ Cube4Fun/src/AnimationsController.swift | 241 +++++++++ Cube4Fun/src/AppDelegate.swift | 178 +++++++ Cube4Fun/src/Cube4Fun-Bridging-Header.h | 5 + Cube4Fun/src/CubeNetwork.cpp | 368 ++++++++++++++ Cube4Fun/src/CubeNetwork.h | 46 ++ Cube4Fun/src/GameView.swift | 621 +++++++++++++++++++++++ Cube4Fun/src/GameViewController.swift | 230 +++++++++ Cube4Fun/src/ObjCtoCPlusPlus.h | 29 ++ Cube4Fun/src/ObjCtoCPlusPlus.mm | 53 ++ Cube4Fun/src/Preferences.swift | 77 +++ Cube4Fun/src/PrimitivesScene.swift | 283 +++++++++++ 24 files changed, 2456 insertions(+) create mode 100644 Cube4Fun/Pics/Arrows.png create mode 100644 Cube4Fun/Pics/Gradient.png create mode 100644 Cube4Fun/Pics/Gradient2.png create mode 100644 Cube4Fun/Pics/list-add-2.png create mode 100644 Cube4Fun/Pics/list-remove-2.png create mode 100644 Cube4Fun/Pics/media-playback-pause-5.png create mode 100644 Cube4Fun/Pics/media-playback-start-5.png create mode 100644 Cube4Fun/Pics/media-seek-backward-5.png create mode 100644 Cube4Fun/Pics/media-seek-forward-5.png create mode 100644 Cube4Fun/Pics/media-skip-backward-5.png create mode 100644 Cube4Fun/Pics/media-skip-forward-5.png create mode 100644 Cube4Fun/Pics/view-sidetree.png create mode 100644 Cube4Fun/src/Animations.swift create mode 100644 Cube4Fun/src/AnimationsController.swift create mode 100644 Cube4Fun/src/AppDelegate.swift create mode 100644 Cube4Fun/src/Cube4Fun-Bridging-Header.h create mode 100644 Cube4Fun/src/CubeNetwork.cpp create mode 100644 Cube4Fun/src/CubeNetwork.h create mode 100644 Cube4Fun/src/GameView.swift create mode 100644 Cube4Fun/src/GameViewController.swift create mode 100755 Cube4Fun/src/ObjCtoCPlusPlus.h create mode 100755 Cube4Fun/src/ObjCtoCPlusPlus.mm create mode 100644 Cube4Fun/src/Preferences.swift create mode 100644 Cube4Fun/src/PrimitivesScene.swift diff --git a/Cube4Fun/Pics/Arrows.png b/Cube4Fun/Pics/Arrows.png new file mode 100644 index 0000000000000000000000000000000000000000..7241dcaf45cab75d17f645a077f2343eaacdec74 GIT binary patch literal 24656 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 L{an^LB{Ts5&9Xq$ literal 0 HcmV?d00001 diff --git a/Cube4Fun/Pics/Gradient.png b/Cube4Fun/Pics/Gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..d43e8ede6a743aa60a4701ae826529e353df67f1 GIT binary patch literal 124970 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 literal 0 HcmV?d00001 diff --git a/Cube4Fun/Pics/Gradient2.png b/Cube4Fun/Pics/Gradient2.png new file mode 100644 index 0000000000000000000000000000000000000000..230a951d71a695892498a5c3e0c90b0bfbd74af9 GIT binary patch literal 116641 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 Q-}vsR-#4_c&;IiN09!vOcK`qY literal 0 HcmV?d00001 diff --git a/Cube4Fun/Pics/list-add-2.png b/Cube4Fun/Pics/list-add-2.png new file mode 100644 index 0000000000000000000000000000000000000000..69adf2450890747fd8956125d76ffa91ab5824a6 GIT binary patch literal 2446 zcmai#dpMK*AII;_Xr{?Rq?NUju-S%kTA56!bYPA(r;6@B01m{C@ZK{e0ioeP8d_{r=q7echk?{L#Z!aF`kl z006j+HQ7$0+?9gLNcNV!o^2A5@j7TlmZ;>Iv#5`gh%D3Eg#`dMZ&nIaY{?U^TnuNL zpOh%~XW@qlR{>znbsMrdh21-S?O-a>Nx3y{%+bkV(~cB4^gLGs>Fv>uw%d*H>Y$}V zUsPg5=3;QE7@vI?sJG+(#PidgK2AR zE_qCs9#8-eLkpgJ;Q3#_R?kc!S_w`SZqkM2z-)~|A)r0s^Q2N9JreSfy>a<*ZkcH5 zrlbJ{qXsz-mFN8d>HK;i4_;Bl*`iG17Xx5T2na&C-Iu2TDJUgLY}(w$W1!OK3$W|3 z0>tc>7#5rHYdN-z;{e>{If2!Z*3gY8XN2RP~=1foI=o<&&;yvHD%N8M-PxUdZX)O#vC(o zZBQf7RQa~cQxu>ki#Q||3*#id%Wfz`?KW{vRbZrjdq*C|`Xm#`J3{T3Zyp2ox4#8F3K7WkRJd2T;IbDCBh>SEg`7M=BC{98 zgeROID&8)RHzUUOQc6T1@|o>6*6H2?D78~;y9sGup@1>rbeEaRCMmSqQihzA0uRN%zQax2%OHT^oT#xJWAZ08~Ee5$~Lme=5JklLn_rlwK!lb zOgZwEuR-94^?_O25y{z|y8^KP`lEQVaOT*4XC}_Wz_sU3n|7`tr-f#g?q*f9C;I1FE7OLw~SE%Mt^jPnxgPH z|44>e?Q7*LdSBwCIjxa}UCC|}3ZV;A9Fb6+zd^X}fc;%cgBe39sY;-sQ$BC2zRukr z*-PtFfLatvssLQ=og|y+A^lqQLSv9?QtQVWX=sV*gSt;{sj*MY3|;hj zQMNAAr$#Lbz)1peJO8qt83966F~@^EY0ga z_T6pDHZduN(FA+r=6jB`jU#8imUj*9kj(3~L?$oyG_XVg$2v8KEa}fvXl4&g$qPoSrTo7w9ij{3~!Z z>;F7bzEX681lYI|XwUEoi|`Dk0}&Asx_-d{ESe{izLJwOLsXNPR8~!=LTPls>hKX; zOOy?b5saev(u3$tb36Pb7Sw+%?hbZ`e)aAd8m4Q?-sPv?&WJlOd1!9jy!r6n-QRZ-SqFw-w%mfG)!+jQ&xzdX1|&;4u1rd8XD{{7@u*!8f^ZnmME`AqjF z;W^JFXHHgX+O%ec(l#UiXZj7wWpUa@%T@9jRc839`=|xq+O{;4PmWQiVeju{vx+QI z%x0(UcpE)!D}&J8%MM<}L0;1Pg)LTJK75VErAsfoJLbtbk8hd^V#Se$5&_p2_r_Yi z4NQ0(`+cEbzV8(0vRn(9KlA<-rz^itR=CTmt0ZyN^y{m+x!&cII)0z2*`e|8 zV|7DBjhIr$qJ;O}XL}DvJ=&oAe_wR|rJxISkCyWu6k0jkdgl4`C-X#$MI63o$T(g$ z*;DzuZP&WUx1PUVADU%Wuc9csW!9Ems<}7H?>AmM8WS54H`mO>KRayg&HRPA(X-~; zfA{a++s|&vmEiXM*QAdXXWIGS8_PWUzwv$Q1^$Fv<$q*Y4Orutw>M_H2FjRp$fh<} zd(D}1`uN?lJ5L$*G3dYe=_>H#x8n(h9egn-=4?2eXPx=`a^GEs`zJm$3lNvaR6K*i z_A~svdZ*(1PY*|6x>qf6jVMVjN=+^YE1)F?CJ+rA>c^vj8caY=^2tn2%_~l2$S5f(u+rBD+m%_Cnw+1To1a&#mtT~w zp94`+tnVJ+qi>{Vpr4b)2DcDm7XdHL7pZOrS||y!FgQQ0q&%@Gm7%=6TrV>(yEr+q zAQfcK>~}U&KtPgg&ebxsLQ0EJrVT>t<8 literal 0 HcmV?d00001 diff --git a/Cube4Fun/Pics/media-playback-pause-5.png b/Cube4Fun/Pics/media-playback-pause-5.png new file mode 100644 index 0000000000000000000000000000000000000000..39cce3690e1af289a576c4bd9563fcd1c7ebf241 GIT binary patch literal 5040 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 K!IbGbMg12b&hq;J literal 0 HcmV?d00001 diff --git a/Cube4Fun/Pics/media-playback-start-5.png b/Cube4Fun/Pics/media-playback-start-5.png new file mode 100644 index 0000000000000000000000000000000000000000..b58577c40f4ed357c09cc44c80cc0c708586836a GIT binary patch literal 7415 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 literal 0 HcmV?d00001 diff --git a/Cube4Fun/Pics/media-seek-backward-5.png b/Cube4Fun/Pics/media-seek-backward-5.png new file mode 100644 index 0000000000000000000000000000000000000000..cc4e6328b82ce873548e740f222261374875de94 GIT binary patch literal 8713 zcmb_?XH-+cx9@?_l#WP82~rF#RH=$UK!~77r~#xVbm>i6r~*n+niN40l-_%<(wp=S zBE2{1ilrzmV>gMGXSXk`q%KX6~oW|{pjW(XMv-b|7wCuLP-F? zhOYvX)AX3$@tJXF9ZOu>o2hdft4aG-htmIKx0L*cG#(Gcn%o@CU<;}QQ5`sKlwqda@R%TvR@^PFt3P%5x|5D7K=|HBt=@~1~?#;I&qHWt9! z#_m3DEY^~O4X+)KGN~;f2S9T1CE!!L3x^j><6GRgm4~kDgj0ZUV%o>Z{P=N6`0P{u0 z7e7WIHXY$B$%u_nUX7lL4VQ};n{Q^=ox`kNGk_iVxt4tVWfdFY1VA_eDv@V+qk_&K z5=|J0v?=u4;gC|IQk*aM;i$lDgr z9e^xN!Ox!(@ARb%BlVFsU%E33R(Rv>Uu1nMf18jR@3nnF@Afp#HsUJnuDIVCu%jfnw<=I0|VQm4ZD7p4P@ zuzP+#TLM$@vZ4jazQOT!2~0~E7JD0tkU|r#CP`fJMb$sP6&CKIvOW~-!yARM{rdY` zMp%&>w|)Cm5GfvnGc%TCw58G_mDG2K80KD(qO$1wqwI0&*t zjc4cNv@A#Y5ldIf1_zVU<7cOW<>8;d-vSeSuF-hCMzG<+qyd+Rywl}VN?SOMWTqFe zokuC=uZ7h+oQz!+=@i>%f=0*3iJYJS$90Ri;lxtqbbyY6AipmPx$d2Dd z@Qnj;HD{$Od##p6I*MZRZW=1;nnGqVvIqTrLIq+$RF*b28>$>JQ09=?9s}^{%f0q^ zetoJaZkaYUk-8OD2Mi%89nd&yQy_xp2jRs1H=Q_;`T7x=ncG!XP>w2zr1Xt@1*p8L zD&Y^!QzSgm9KBIn_{P@OGC!w#TR8Th_1I~Hu~3(<*^#w9<6z4P4JPDO5W4kyh7})) zMDnaW>FKjgC(0>KIjxh>np0Z@QY)``TRRAm@n1<^>Mo_4RekR&BJ#?M}x} z8a<-Gh-*b;2fMbR&kkL$un{Lav`$>jcKdLpw2UvI((FOnV7eteTkw+BL=0PSP`V7^ zXHC<7ruTIG@}f+^b~E@-HQk%&RWNpK*XpG3Cc6g-X&5{DbTY9O3l%W@ z$|A6C0B<~B59D#;8I&jzViNnOu>>;07yUvU*o%;!qBhopCQsOiD^B;8YX2RZf+m`DJv}oGB*fk3d_rQFoI%A6r@)&Uhjh z24I3%4I?8$-6mfjNS(zhj4h!rKTbnihI+=7;ZTg72i0k4$b7IZ>SRCDk(@**PofPM zqVCTnoSmA|`{Y&N8jvWW0Y}&r@b{Mg+89Nnav2W>S7d6^B-i8fK6|=i-rajk0(4dG zgi^7$^$mahb~i#%Do)rJ25U4Bjz4#*K^;9%=J=j)ne0!6A0qlRV^$>@vRk+Jq*>o9 zlmsjcqdjRO;YNf}^a}fN1bwE)dV?t&Rc>II=!{I`vR5UZj+p*r@xVlI(8KP>^={eP zJ(i-eCHf?9{S)o^PTi=_;Wa;0Y``K6&%q5G#ielK@&fC(CxB5x*8h+%uqWcr@! zm=Me@Kt`eW^>H?fr@Mh{#g&le)_w60ai&4hB{}G za3qO|bwPz_=H0N*$-&WHp>M?fQse!iL9-{fi(R+0fv>o7bkJLyz0hDvc0HouUs_c?@16{ z*C$u+J7iMy4vI7}*2<1HT74;!&5^9qUtn32=v@JRN+xkGZ4mg$1UHem#w=q>;x29TR6=wT>6)^!!g8P4bgv8IpARL*Z@V&u4kBf~TfeSnb#Px~W z)o$EnzJzkswRnCr0vWm;_xD5G>8^hGM+XE`$xQiMgwJdO(E5G(eRVwL^Qi_l_Ak9^ zqIbj3=a5@Pv0j~y>gA*k6$@nPMcIxZv#>+6+~Q2}Bc2F^@Ala6ZGSvU76}ZlV)GQZ zHXG4=6qxQ%>g3-=uNJNDNj;={KQw(pQ$5p?_I(Z7y?>`8xzo-OlVId4$@Z{({NSlT znDUIH*&IPOEx6bd}QiiYvRo&?l%*0-?lHtjocfW-9 zQ=wlFO*K%-N1-~CxVTE|3@3c37qx-xyu6NYQ8(PSGnK6U{rzlBjK8ZXZ0mGimmhQ_ zHKbLiQ|B!`=lA-VccGR$P)kUid0eHzNCStABlR1pU7w`ckhR{$Ji@5!>j!q;^CEls zL~oT6Em251BM{#jm#r$1t=fOtI`K;2aWC25m3aiEz|Ni-`ZN0cny1R2F$AwoeVabg zc@L1i-gp^!Z4rP_047Ho_`g}qJ@R%wVFU^yCTqJ&3*PVOCnNVqX z{HM{yPPE(2U#RAITJ!v)MYHucotpkk77P#hIx{t!opi@~JIw9H z&{WU2+}b+(l!vijrEU?G$P|u6Jzo%lgAC{AJF=EYQ;U3GC@AaI;)6*t+82yvgZj}| z_5*mnH%Dp2VkIiD#GdV&p0Qq=!}D2Qup8WZ3TSQF?-!dUooOGpvXwWt@52#UgS{>8`OYbuaDE=&*z+AXuvUG*ocJ6{8iC)x;zI&Uz-cG@$ zO0;KtFq{XW`9uqnA~WV3bI*A{S9ZqRN-T~rJbDj65duRFcE_8D!mS&sr_9vq$vGW3 zkg`9wr+oyaJ?x5%!a)HZqEg{Uh_Q(+;$-;JEd<9q&DuA67BCflhK%299p;1xrQ%9q z_e(tXkIMUC6)+5DqeEs?zpq=Odj?Iac~268QY?1ck+NN=1m$TL6i!ZQw4b$C>x>ZR zOo`s=HCN0|HHcZe(G;q%Z7&s3+q`ulqO6?gl=2&EY%EEg`2B86ZN*lx-3&!OvL-j& z&yD@Pw{PonjWC|+GMBmLghuV)^2HKBE7MKu_!b+Npb&w`XYY3=L|U<*UjK#4+!Y~H zwh|QVq%cn63RM;?g9HuHhYS=svRpRZ88(#*x(HF)o~^r*O)@tR28 z{v!DqF{uFOK+x7%0`Y~?m13e>hX=LR{*T)??J=5)9_0B>cR}b?Nmq>VBY+LUNeWi> zIHCDG1%2Lrtl~AcsKX2uM6%_?iR5ikX&Pto5NGdxCT%J}4nPAKMOEY#Ap{;hT%5|G z88F5x(qE5$2QMJI(jA7kvr*!povsErI3?YyZ z^DL6(=Z46Sk17_p>;-{2_(lRyO2Ai5o;b8daEs-qz|inCF!*XuvEvAzgCrn`JE~<* z4q#{Cc=h%rg!~~2AE3A|`2q3cg*;pm93%k_>iXj(>3O_Po$|z)X+xE%Ld+eCeejHO zc{B$Rt%2t6eJf(BSSC-R4^NEI_&xGcw&9v$f9c)*-(lRT7%KVa5Pn3WrqP50P0)3u zSrlfdr*9*jl-^;zOYTENM0!a&^??Vz23%LW{YbMQFJ3;6b4;9TU8;kGOvzWt;L+=I zSGf$)I}LIVEe181vc6P2i@K*|zXwrXLP1_$Suhn1K^**h zr;YVyWAV=KHKYw^kR?Cedu=0oXzfcE1rq;|5GC9?rA@s!U)hS(jm-|hBpm%~i%ids z<(054%Hx*r4_jls+*5zE&dA@IxUpH8$ApbytzQ?fE6hM{m~9G_Ln|{3%P%fuZZs~g z#^&0v>m}dTcaCV;Xu=v9Ba}LM?k;|ddXmIU?18;LEwLE9hco#^X?_Y-E0~=#E7rB* zL;>gKW%-gJa)$@EteIF@<2vi2mS$_5m46_*%&pNIsIFnALYF zZLQTFUK>G9`WEmum+r6$2%@J8fiA9>Jm^A~Wf$2$mAUthsx?{b7Y0paQ>dH|>$XJn zv#Ea4re=sFAZSVW6`n>YcM*06VA*>T(s=Vk8B%tjdldnb5h8l38^1C>K7K;A|8ZIB z0c`a4YTwX4Rph0Sa~FWViDFNr>M(Aaa(bPKWb+y>jSYlOj^ zGPn?zxK)#!u1%TU%;x>|w(b~iwsx7LyB&YP zX_~O0ZxsX2A%^T4AtqfR7eCW=MgKacN6WS>DzRJlpgaGB-I-%xk%`je33icM?i43P zeFoBVJD5agzK4H9Fb+R2DZnAt z)|(;h!|R=jb(8&MX@1(N>xo7;+;3}#{ifY9mfH~?G9T~CPr`FjVrljoFL%Em?Aa_)%qXzU47i4eHNM>kvKvRrC9bj75Wer^{uh+UWsmg zxugOdlq6Q(B;q8s94E5ZJ*b18kfZ$hJ`Wfg8Hw;8xsDF$`)L*?j_5vSxK)}Jdk0sn zAOgC@Ul)t2lBsz!m^YcdfcZU%za%YrbOIEV-*CoORsHa917hG%))W87%TpbxX5B3O z?YX+s0jZ~$h3j2+kIS8^5}OGD@~?~1fo$w?Dia?jCd7ST@zFkUH=Lk_6)4VBzDSc~ zH801Zq9c^pG<|$L&@TjA`*IJymqr;xHZ^z0JeGJY2tZJes9(ONc>0=V zY<89m+#YLEQ2G4^hkbl^t#v-$r+bmc_!L)yLZ!Q!*8bcgOSy-Mb>gFY-^6(8^!XF$ zpKFhn0lazNOFQp9uZ2L39&koIRqNf>n6aNfzo+ZU95@Q3ZJ}4W*sYnEnPYyuI9Y5R zBIJls$<)};80RH#)8|NBvZmL$(JArx!>Aq0y4Ytmh)0978e|X;z@_43nFZx*?*qjT zk&#m0tyZ&Q1pv;h=!%My*Se&+tQp@+Y_(H28=S9Rev#7qegFN>1y!z3TByZ6KkOxA z)L6>SZQqTo1OUJuLa`Z!6a8?=(f*r1v_;*ce{lBy`$baPVe!|>`$5UbYY_U)5&UP_ zq=P;Ey=uQZ);3$Xje<~^u|#hD%VH<_bA7@9ayDANjI(#V0qBzK^;a*a)mwVhWzKEq zD1G-qKy#7bwGDq(pHyTFcLoQwX^y6p5dv|#JG6fe(kXoHJMQ@9zV&M5@?59m?yTgj z*B+6K!@}&r=>`6LAzR!2A!WgwUPZv#l|l1q6V?Z4*0*n1X|Bt%S|s^cIiA(_p02Wf ze#XxUJ2|EBCqDbl+v{H(e*WGqA6jq1ppzN< z0AR_Y9e2r>E_YJwl;xu7Zqn(wGJsoAQc^C@$uk^R*s98*i9uKs2LsQ zE5`kq+BdDY4%Nujye?m!`Z^x`9&)ZU!$v30ynS0MB;i4^HD35^BIHsXfglBQuxk@U z9=lQ373xb}E%lqqe*A5`@&(Le>d=k38z>t?9ych9l>rv3nyw2f?WApz(5ay`WRX8c z66Fo;uItu_2E9F3HnS{PI}gs&nim&6^9}3n88Sc0;Bwx&>RuS;;L!$wPHLwj(vO^^ z&bqnN2!MJVyr-Zx#AR)co_=rqyvXdYUw<#UW9BZObt)N+OwYv+uEk*gCJYYC4niu$eY!gbU}UeBC@C;D zeJm34nJCAZ{npivCMJowIzLYxYyQ= z0OT%6pc=gAy(V4E_r78rH@T>2tD#Jy>8Bcb&<#>tecP=BN zH63Z4khBWcOHT9~=`k-F`VgYwnz!WR{ULse6l~-hb1Sy-w*~hos1|1yZXN-PIB-aw z8?2#Q{ljNv|5GKZ$URM>7CXJ(WmC8n91Lx`a!-*I!FWx$o17oU6|0i=s0(JoN_1iK zvTCZ?g>6d%W4LtWp&aKUwZ6oX1)h_8N$g2P>yI}j_$UA6xN5Lk@*_Op$>nw# zjURis&G^A|QmwpMTYwMfhZm(my=I{s{td5AzLG`fH1pvp%jEK&SO8g{F#hZp9CB(4 zAqOyl#FSEfGMiO#cakb9oH{m_P`$h7Y0n~AFV?3k@`|h`=3evBej=v4CSM!)(vc*# zHQZRv`rRt-k-aA4P@0?^H#zX#nqcnsJ@0)vpxGZp%mRGtOCgRPovw%%u)1%pH~aVP zV9xUWh=_>BRcm+sbaiD`sbifKX+Js}=?Rl5(W^iX!AZI|JcMh>H2B|JYhAaZl{u<) z`RIbEbb_fSK2N<0Y5g8S$%<^M+)C&+zgUAOrl~-7@^p$82mNjs?(brC$S6|lc6Uv( z_@<>93636xU~-1W#s~ph1|`=Dv!r_8ou3MMI)%7=P2~#?{+Oq;zc%;;SDczsWy21; zxgb+#wW0xU2zPdN08DD?JvG>JpTTX?h!eG7#s2rFuBR;04mYh+Yuly=|1!WC4I~H{ zwLjkBEw)~<&iu5oMaB^8|Fx)5WwfB#9iK(YMOivhb(m7O(L*uHWR-l@KGtL514oK=pNR$WG5Y%Ydn8zYe>@zJ zY!g+JgS}!8zw=Qe1F2{%{x42N}OS$_!v+{ z%B@DX+v;Jf=)J|&#YJPS%AML54bPVL>@`Te}FcIRqQlB&f% zt(7-D*8P24%_r=}5bi_?U|?X#&UF*rvQ+Rv_?jGLG;qJTCo3o_dX}=|VbZ_67Ytx| zpSKzR+@{^ODF9+{)1;!H$VYeY#}v&P@RrK=#}k3XQqPnMcO4BZn42L0TSm)x$MaNV zgLS{>Or^80Q}@Zq$x$n|FHz(Pf0Qh>UdYmc?AvYQwThCDj|;cn1fJ@2coSNBT6@&Ul(VBr%$TGj=YzDWj$|E2n;oa(cY0K$x`*nShHMS;Z4xypvf7*MO7+c zbDxYntOj>lnS7CApARDFT5)P|B`USPsM4{RaP4+AG+lK>-vc!dTON-;*?(kaZcfmr zDj%w$yH63$V>eS-yu&W!tZnmH31)ymI3xD35$-^9U0Re8*DVjfcN6%=f@SDceCico zy~YxMjsmxKo~$H?pu%LS4LfD4Bh*5z98Na11Vs!cI14I85I;1itUnb z2M6FHSo0yR`a{~)WaR&cbMv6j`d5B}zl-v6M@Cn1uLW?rDC)YHIiXBkQ2ge&3m_~g zD9JA*%r7XRDI_8#Bqk*$#xE!?B`C;H$lvfk4F7sc{f7(3ASB2yD9kS`s3|NWCHzQA zNc=wxA2Zdm{|^Q`dvhza=YKN@@e2uQ3Q9e8WcXxLIt2Z{zW+o1(e~OZKWtjeVCs!vk6rgGH#=@RW#mxQ< zo2r$mlZlh3=HN~Mu9MV%B>n4Tq@|(yKVx_K*IxkbghH94oNZj}9scV9{!5C{KPg84 VEv3GzU>qj}P*HpVE0i}5_+MJiRCE9U literal 0 HcmV?d00001 diff --git a/Cube4Fun/Pics/media-seek-forward-5.png b/Cube4Fun/Pics/media-seek-forward-5.png new file mode 100644 index 0000000000000000000000000000000000000000..ef9644825e04db653151de8652ab883eb3172388 GIT binary patch literal 8534 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 literal 0 HcmV?d00001 diff --git a/Cube4Fun/Pics/view-sidetree.png b/Cube4Fun/Pics/view-sidetree.png new file mode 100644 index 0000000000000000000000000000000000000000..ef6524fddae878a78f42219d8b6f1777d508a381 GIT binary patch literal 6095 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 BOJM*2 literal 0 HcmV?d00001 diff --git a/Cube4Fun/src/Animations.swift b/Cube4Fun/src/Animations.swift new file mode 100644 index 0000000..4451152 --- /dev/null +++ b/Cube4Fun/src/Animations.swift @@ -0,0 +1,325 @@ +// +// Animations.swift +// Cube4Fun +// +// Created by Nikolai Rinas on 07.04.15. +// Copyright (c) 2015 Nikolai Rinas. All rights reserved. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see + + +// Constants +let AnimName = "AnimName" +let AnimKey = "AnimKey" +let AnimDuration = "AnimDur" +let AnimSpeed = "AnimSpeed" +let AnimFrames = "AnimData" + +class Animations: NSObject { + + let _emptyFrame: [UInt8] = [ + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255] + + var _displayedFrame: Int = 1; +// var _frameCount: UInt32 = 1; +// var _oneFrame: NSMutableData = NSMutableData() // == byte[] array +// var _emptyAnimation: NSMutableDictionary = NSMutableDictionary() + var _animationArray: [NSMutableDictionary] = [NSMutableDictionary]() + var _animationSelected: Int = 0 + let _minSendDelay: NSTimeInterval = 0.200 // fastes speed 200 milliseconds + let maxFrameSpeed = 3000 // the lowest possible speed allowed + let minFrameSpeed = 100 // the fastest possible speed allowed + let frameSpeedStep = 100 // how fast increase or decrease speed +// var _playSendDelay: NSTimeInterval = 0.5 // 500 milliseconds as default + var _copyFrameBuffer: [UInt8] = [UInt8]() + + + override init() { + super.init() + // Show the first frame + _displayedFrame = 1 + // Append empty animation + self.addAnimation() + // Set visible animation + _animationSelected = 0 + // Init Buffer + for ( var i = 0; i < 64 ; ++i ) { + _copyFrameBuffer.append(255) + } + } + + // How much animations do we have + func count() -> (Int) { + return _animationArray.count + } + + func sendFrame() { + let time = NSDate.timeIntervalSinceReferenceDate() + + if (_previousUpdateTime == 0.0) { + _previousUpdateTime = time; + } + // need to do this because of rounding issues + let deltaTime: Int = Int( round( (time - _previousUpdateTime) * 10 ) * 100); + + //var ms = Int((time % 1) * 1000) + if ( _playAllFrames ) { + //println("Delta: \(deltaTime) Speed: \(__animations.animationSpeedInt())") + if ( deltaTime >= __animations.animationSpeedInt() ){ + _previousUpdateTime = time; + if (self.getAnimationFrameID() >= self.getAnimationFrameCount()) { + _gameView.firstButtonPressed() + }else{ + _gameView.nextButtonPressed() + } + CubeNetworkObj.updateFrame(self.getAnimDataSelected(), count: UInt32(self.getAnimationFrameID())) + + } + }else{ + CubeNetworkObj.updateFrame(self.getAnimDataSelected(), count: UInt32(self.getAnimationFrameID())) + } + } + + func loadAnimations(animArray: NSArray) { + // clear the array first + _animationArray.removeAll(keepCapacity: true) + for ( var i=0; i (NSDictionary) { + //println(_animationArray.count) + let myAnimation = _animationArray[id] as NSDictionary + return myAnimation + } + func getAnimations() -> ([NSDictionary]) { + return _animationArray as [NSDictionary]; + } + + func getAnimationName(id: Int) -> (String) { + let value = (self.getAnimation(id)).objectForKey(AnimName) as! String + return value + } + func setAnimationName(id: Int, value: String) { + (self.getAnimation(id)).setValue(value, forKey: AnimName) + } + + func getAnimationKey(id: Int) -> (String) { + let value = (self.getAnimation(id)).objectForKey(AnimKey) as! String + return value + } + func setAnimationKey(id: Int, value: String) { + (self.getAnimation(id)).setValue(value, forKey: AnimKey) + } + + func getAnimationDuration(id: Int) -> (Int) { + let value = (self.getAnimation(id)).objectForKey(AnimDuration) as! Int + return value + } + func setAnimationDuration(id: Int, value: Int) { + (self.getAnimation(id)).setValue(value, forKey: AnimDuration) + } + + func getAnimationSpeed(id: Int) -> (Int) { + let value = (self.getAnimation(id)).objectForKey(AnimSpeed) as! Int + return value + } + func setAnimationSpeed(id: Int, value: Int) { + (self.getAnimation(id)).setValue(value, forKey: AnimSpeed) + } + + func getAnimationFrameCount() -> (Int) { + return self.getAnimationFrameCount(_animationSelected) + } + func getAnimationFrameCount(id: Int) -> (Int) { + let myFrames: NSMutableData = (self.getAnimation(id)).objectForKey(AnimFrames) as! NSMutableData + return (myFrames.length / 64) + //let value = (self.getAnimation(id)).objectForKey("AnimFrames") as Int + //return value + } + func getAnimationFrameID() -> Int { + return _displayedFrame + } + func setAnimationFrameID(id: Int) { + _displayedFrame = id + } + + func setSelectedAnimationID(id: Int) { + if id >= 0 { + _animationSelected = id + _displayedFrame = 1 + } + } + func getSelectedAnimationID() -> (Int) { + return _animationSelected + } + func deleteSelected() { + _animationArray.removeAtIndex(_animationSelected) + if ( _animationSelected == 0 && _animationArray.count == 0 ) { // last Frame + self.addAnimation() + } + } + func moveUpSelected() { + if ( _animationSelected > 0 ) { + _animationArray.insert(_animationArray[_animationSelected], atIndex: _animationSelected-1) + _animationArray.removeAtIndex(_animationSelected+1) + } + } + func moveDownSelected() { + if (_animationSelected < _animationArray.count - 1) { + _animationArray.insert(_animationArray[_animationSelected+1], atIndex: _animationSelected) + _animationArray.removeAtIndex(_animationSelected+2) + } + } + + func addAnimation() { + _animationArray.append(self.newAnimation()) + println("append Animation count: \(_animationArray.count)") + } + func newAnimation() -> (NSMutableDictionary) { + println("create new animation") + return [AnimName: "Animation1", AnimKey: "1=anim1", AnimDuration: 10, AnimSpeed: 500, AnimFrames: self.newFrame()] + } + func newFrame() -> (NSMutableData) { + println("create new frame") + return NSMutableData(bytes: _emptyFrame, length: 64) + } + func addFrame() { + let myData: NSMutableData = (self.getAnimation(_animationSelected)).objectForKey(AnimFrames) as! NSMutableData + myData.appendBytes(_emptyFrame, length: 64) + } + func removeFrame() { + if self.getAnimationFrameCount() > 1 { + let myData: NSMutableData = (self.getAnimation(_animationSelected)).objectForKey(AnimFrames) as! NSMutableData + let myLength = myData.length + myData.length = myLength - 64 // remove one frame + } + } + + func animationSpeedInt() -> Int { + let frameSpeed: Int = (self.getAnimation(_animationSelected)).objectForKey(AnimSpeed) as! Int + return frameSpeed + } + func animationSpeedFloat() -> NSTimeInterval { + let frameSpeed: Int = (self.getAnimation(_animationSelected)).objectForKey(AnimSpeed) as! Int + let mySpeed: NSTimeInterval = NSTimeInterval(Float(frameSpeed)/1000) + return mySpeed + } + func increaseSpeed() { + let frameSpeed: Int = (self.getAnimation(_animationSelected)).objectForKey(AnimSpeed) as! Int + if frameSpeed < maxFrameSpeed { + (self.getAnimation(_animationSelected)).setValue(frameSpeed+frameSpeedStep, forKey: AnimSpeed) + } + } + func decreaseSpeed() { + let frameSpeed: Int = (self.getAnimation(_animationSelected)).objectForKey(AnimSpeed) as! Int + if frameSpeed > minFrameSpeed { + (self.getAnimation(_animationSelected)).setValue(frameSpeed-frameSpeedStep, forKey: AnimSpeed) + } + } + + func gotoLastFrame() { + self.setAnimationFrameID(self.getAnimationFrameCount()) + } + func gotoFirstFrame() { + self.setAnimationFrameID(1) + } + func gotoNextFrame() { + if self.getAnimationFrameID() < self.getAnimationFrameCount() { + self.setAnimationFrameID(self.getAnimationFrameID()+1) + } + } + func gotoPrevFrame() { + if self.getAnimationFrameID() > 1 { + self.setAnimationFrameID(self.getAnimationFrameID()-1) + } + } + + + func getMinSendDelay() -> (NSTimeInterval) { + return _minSendDelay + } + + func getAnimDataSelected() -> (UnsafePointer) { + let myData: NSMutableData = (self.getAnimation(_animationSelected)).objectForKey(AnimFrames) as! NSMutableData + let byteArray = UnsafePointer(myData.bytes) + return byteArray + } + + func getAnimData(id: Int) -> (UnsafePointer) { + let myData: NSMutableData = (self.getAnimation(id)).objectForKey(AnimFrames) as! NSMutableData + let byteArray = UnsafePointer(myData.bytes) + return byteArray + } + + func getAnimDataLength(id: Int) -> Int { + let myFrames: NSMutableData = (self.getAnimation(id)).objectForKey(AnimFrames) as! NSMutableData + return myFrames.length + } + + func setLEDColor(color: UInt8, led: Int) { + //println("Led pressed: \(led)") + var myByte: [UInt8] = [color] + let myData: NSMutableData = (self.getAnimation(_animationSelected)).objectForKey(AnimFrames) as! NSMutableData + let bytePosition = NSMakeRange(((self.getAnimationFrameID()-1)*64)+led, 1) + myData.replaceBytesInRange(bytePosition, withBytes: myByte) + + // Send updated frame + self.sendFrame() + } + + func getLEDColor(pos: Int) -> (UInt8) { + let myData = self.getAnimDataSelected() + return myData[pos] + } + + func clearLEDColor() { + //var myByte: [UInt8] = [255] + let myData: NSMutableData = (self.getAnimation(_animationSelected)).objectForKey(AnimFrames) as! NSMutableData + myData.replaceBytesInRange(NSMakeRange((self.getAnimationFrameID()-1)*64, 64), withBytes: _emptyFrame) + } + + func copyDisplayedFrame() { + let myData = self.getAnimDataSelected() + var animFrameCount = (self.getAnimationFrameID()-1)*64 + for ( var i = 0 ; i < 64 ; ++i ) { + _copyFrameBuffer[i] = myData[animFrameCount] + ++animFrameCount + } + } + func pasteDisplayedFrame() { + let myData: NSMutableData = (self.getAnimation(_animationSelected)).objectForKey(AnimFrames) as! NSMutableData + myData.replaceBytesInRange(NSMakeRange((self.getAnimationFrameID()-1)*64, 64), withBytes: _copyFrameBuffer) + } +} diff --git a/Cube4Fun/src/AnimationsController.swift b/Cube4Fun/src/AnimationsController.swift new file mode 100644 index 0000000..02b8c4f --- /dev/null +++ b/Cube4Fun/src/AnimationsController.swift @@ -0,0 +1,241 @@ +// +// ProjectController.swift +// Cube4Fun +// +// Created by Nikolai Rinas on 02.04.15. +// Copyright (c) 2015 Nikolai Rinas. All rights reserved. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see + +import Cocoa +import Foundation + +//let _emptyAnimation: NSMutableDictionary = ["AnimName": "Animation1", "AnimKey": "1=anim1", "AnimDur": 1, "AnimSpeed": 500, "AnimFrames": 1] + +/* +var dataArray: [NSMutableDictionary] = [["AnimName": "Animation1", "AnimKey": "1=anim1", "AnimDur": 3, "AnimSpeed": 700, "AnimFrames": 12], + ["AnimName": "Animation2", "AnimKey": "1=anim2", "AnimDur": 7, "AnimSpeed": 1700, "AnimFrames": 17], + ["AnimName": "Animation3", "AnimKey": "1=anim3", "AnimDur": 1, "AnimSpeed": 500, "AnimFrames": 22], + ["AnimName": "Animation4", "AnimKey": "1=anim4", "AnimDur": 10, "AnimSpeed": 500, "AnimFrames": 32], + ["AnimName": "Animation5", "AnimKey": "1=anim5", "AnimDur": 23, "AnimSpeed": 500, "AnimFrames": 18], + ["AnimName": "Animation6", "AnimKey": "1=anim6", "AnimDur": 2, "AnimSpeed": 1000, "AnimFrames": 52]]; +*/ + +//var _animationArray: [NSMutableDictionary] = [NSMutableDictionary](); +//var _selectedAnimation: Int = 0; + +var __tableView: NSTableView = NSTableView() + +class AnimationsController: NSObject, NSTableViewDataSource, NSTableViewDelegate { + + @IBOutlet weak var myTableView: NSTableView! + + override func awakeFromNib() { + super.awakeFromNib() + __tableView = myTableView + } + + func numberOfRowsInTableView(tableView: NSTableView) -> Int { + let numberOfRows:Int = __animations.count() // _animationArray.count + return numberOfRows + } + + func tableView(tableView: NSTableView, objectValueForTableColumn tableColumn: NSTableColumn?, row: Int) -> AnyObject? { + //let object: NSDictionary = __animations.getAnimation(row) //_animationArray[row] as NSDictionary + //println(object) + let column: String = tableColumn?.identifier as String! + if column == "AnimName" { + return __animations.getAnimationName(row) + //let value = object.objectForKey(column) as String + //return value + } + if column == "AnimKey" { + return __animations.getAnimationKey(row) + //let value = object.objectForKey(column) as String + //return value + } + if column == "AnimDur" { + return __animations.getAnimationDuration(row) + //let value = object.objectForKey(column) as Int + //return value + } + if column == "AnimSpeed" { + return __animations.getAnimationSpeed(row) + //let value = object.objectForKey(column) as Int + //return value + } + if column == "AnimFrames" { + return __animations.getAnimationFrameCount(row) + //let value = object.objectForKey(column) as Int + //return value + } + + return column + } + + + func tableViewSelectionDidChange(notification: NSNotification) { + let view: NSTableView = notification.object as! NSTableView + __animations.setSelectedAnimationID(view.selectedRow) + + _gameView.resetView() + //let myCubeController: GameViewController = _animationsWindow.contentViewController as! GameViewController + //let myCubeView: GameView = myCubeController.view as! GameView + //myCubeView.resetView() + + //_selectedAnimation = view.selectedRow + + //println("klicked \(view.selectedRow)") + } + + func tableView(tableView: NSTableView, setObjectValue object: AnyObject?, forTableColumn tableColumn: NSTableColumn?, row: Int) { + let column: String = tableColumn?.identifier as String! + //println("Object: \(object) Key: \((tableColumn?.identifier)!)" ) + + let value = object! as! NSString + if column == "AnimName" { + __animations.setAnimationName(row, value: value as String) + //_animationArray[row].setObject(value, forKey: (tableColumn?.identifier)!) + } + if column == "AnimKey" { + __animations.setAnimationKey(row, value: value as String) + //_animationArray[row].setObject(value, forKey: (tableColumn?.identifier)!) + } + if column == "AnimDur" { + __animations.setAnimationDuration(row, value: value.integerValue) + //_animationArray[row].setObject(value.integerValue, forKey: (tableColumn?.identifier)!) + } + if column == "AnimSpeed" { + __animations.setAnimationSpeed(row, value: value.integerValue) + //_animationArray[row].setObject(value.integerValue, forKey: (tableColumn?.identifier)!) + } + + _gameView.resetView() + + //if column == "AnimFrames" { + // _animationArray[row].setObject(value.integerValue, forKey: (tableColumn?.identifier)!) + //} + } + + @IBAction func addNewAnimation(sender: AnyObject) { + __animations.addAnimation() + myTableView.reloadData() + } + + @IBAction func delNewAnimation(sender: AnyObject) { + __animations.deleteSelected() + myTableView.reloadData() + } + + @IBAction func moveUpItem(send: AnyObject) { + if ( __animations.getSelectedAnimationID() > 0 ) { + __animations.moveUpSelected() + myTableView.reloadData() + myTableView.selectRowIndexes(NSIndexSet(index: __animations.getSelectedAnimationID()-1), byExtendingSelection: false) + } + } + + @IBAction func moveDownItem(send: AnyObject) { + if (__animations.getSelectedAnimationID() < __animations.count() - 1) { + __animations.moveDownSelected() + myTableView.reloadData() + myTableView.selectRowIndexes(NSIndexSet(index: __animations.getSelectedAnimationID()+1), byExtendingSelection: false) + } + } + + func convertInt16(value: UInt16) -> ([UInt8]) { + var array: [UInt8] = [0,0] + array[0] = UInt8(value & 0x000000ff); + array[1] = UInt8((value & 0x0000ff00) >> 8); + return array; + } + + func convertInt32(value: UInt32) -> ([UInt8]) { + var array: [UInt8] = [0,0,0,0] + array[0] = UInt8(value & 0x000000ff); + array[1] = UInt8((value & 0x0000ff00) >> 8); + array[2] = UInt8((value & 0x00ff0000) >> 16); + array[3] = UInt8((value & 0xff000000) >> 24); + return array; + } + + @IBAction func exportAnimations(send: AnyObject) { + var sendData: [UInt8] = [UInt8]() + println("Import button pressed") + + // for each animation + for ( var i = 0; i < __animations.count(); ++i ) { + // Create header line per animation + // Syntax: ,F,\n + + // Key + sendData.append(UInt8(ascii: ",")) + sendData.append(UInt8(ascii: "F")) + let key = __animations.getAnimationKey(i) + let keyArray: NSData = key.dataUsingEncoding(NSASCIIStringEncoding, allowLossyConversion: true)! + let keyBytes: UnsafePointer = UnsafePointer(keyArray.bytes) + for (var j = 0; j < keyArray.length; ++j) { + + if keyBytes[j] != UInt8(ascii: "\n") && keyBytes[j] != UInt8(ascii: "\r" ) { // ignore line breaks in the key + sendData.append(UInt8(keyBytes[j])) + } + } + sendData.append(UInt8(ascii: ",")) + + // Playtime + let playTime: [UInt8] = convertInt16(UInt16(__animations.getAnimationDuration(i))) + sendData.append(playTime[0]) + sendData.append(playTime[1]) + + // Speed + let playSpeed: [UInt8] = convertInt16(UInt16(__animations.getAnimationSpeed(i))) + sendData.append(playSpeed[0]) + sendData.append(playSpeed[1]) + + // Frames + let playFrames: [UInt8] = convertInt16(UInt16(__animations.getAnimationFrameCount(i))) + sendData.append(playFrames[0]) + sendData.append(playFrames[1]) + + // End line + sendData.append(UInt8(ascii: "\n")) + + // Append frame, separated by new-Line + let animData = __animations.getAnimData(i) + for ( var count = 1; count <= __animations.getAnimDataLength(i); ++count) { + sendData.append(animData[count-1]) + // End line for each frame + if ( (count % 64) == 0 ) { + sendData.append(UInt8(ascii: "\n")) + } + } + + + } + + + // Calculate overall data to send + + + // Send data + CubeNetworkObj.sendBytes(sendData , count: UInt32(sendData.count)) + + } + + /* + @IBAction func closeButtonClicked(sender: AnyObject ) { + animationsWindow.close() + } +*/ +} diff --git a/Cube4Fun/src/AppDelegate.swift b/Cube4Fun/src/AppDelegate.swift new file mode 100644 index 0000000..a09c1c1 --- /dev/null +++ b/Cube4Fun/src/AppDelegate.swift @@ -0,0 +1,178 @@ +// +// AppDelegate.swift +// Cube4Fun +// +// Created by Nikolai Rinas on 27.03.15. +// Copyright (c) 2015 Nikolai Rinas. All rights reserved. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see + +import Cocoa + +var _animationsWindow: NSWindow = NSWindow() +var _cubeWindow: NSWindow = NSWindow() +var _prefWindow: NSWindow = NSWindow() +var __animations: Animations = Animations() +var __prefData: Preferences = Preferences() + +@NSApplicationMain +class AppDelegate: NSObject, NSApplicationDelegate, NSTextFieldDelegate { + + @IBOutlet weak var window: NSWindow! + @IBOutlet weak var animationsWindow: NSWindow! + @IBOutlet weak var preferencesWindow: NSWindow! + @IBOutlet weak var myMenu: NSMenu! + + @IBOutlet weak var levelInd: NSProgressIndicator! + @IBOutlet weak var ipAddr: NSTextField! + @IBOutlet weak var port: NSTextField! + @IBOutlet weak var waitAnim: NSProgressIndicator! + + func applicationDidFinishLaunching(aNotification: NSNotification) { + // Insert code here to initialize your application + _animationsWindow = animationsWindow + _cubeWindow = window + _prefWindow = preferencesWindow + //__animations.initialize() + + port.stringValue = String(__prefData.portNR()) + ipAddr.stringValue = __prefData.ipAddr() + if CubeNetworkObj.connected() { + showConnActive(true) + }else{ + showConnActive(false) + } + } + + func applicationShouldTerminate(sender: NSApplication) -> NSApplicationTerminateReply { + CubeNetworkObj.closeConnection() + return NSApplicationTerminateReply.TerminateNow + } + + @IBAction func saveDocument(sender: AnyObject) { + let mySavePanel: NSSavePanel = NSSavePanel() + mySavePanel.allowedFileTypes = ["plist"] + mySavePanel.beginWithCompletionHandler { (result: Int) -> Void in + if result == NSFileHandlingPanelOKButton { + let exportedFileURL = mySavePanel.URL + // Save the data. What you do depends on your app. + let myAnimArray: NSMutableArray = NSMutableArray() + myAnimArray.addObjectsFromArray(__animations.getAnimations()) + myAnimArray.writeToURL(exportedFileURL!, atomically: true) + //let myAnimation: NSDictionary = NSDictionary(dictionary: __animations.getAnimations()) + + + // Don't just paste this code in your app as your app + // probably doesn't have a createPDF() method. self.createPDF(exportedFileURL) + } + } // End block + println("save pressed") + } + + @IBAction func openDocument(sender: AnyObject) { + let myOpenPanel: NSOpenPanel = NSOpenPanel() + myOpenPanel.allowedFileTypes = ["plist"] + myOpenPanel.beginWithCompletionHandler { (result: Int) -> Void in + if result == NSFileHandlingPanelOKButton { + let importedFileURL = myOpenPanel.URL + //let myAnimationsDict: NSMutableDictionary = NSMutableDictionary(contentsOfURL: importedFileURL!)! + let myAnimArray: NSMutableArray = NSMutableArray(contentsOfURL: importedFileURL!)! + __animations.loadAnimations(myAnimArray) + } + } // End block + } + + @IBAction func openPreferences(send: AnyObject) { + preferencesWindow.setIsVisible(true) + } + + @IBAction func testIPConnection(send: AnyObject) { + //println("TestIP Button clicked") + + if CubeNetworkObj.connected() { + CubeNetworkObj.closeConnection() + } + if CubeNetworkObj.openConnection(__prefData.ipAddr(), port: UInt32(__prefData.portNR())) { + showConnActive(true) + }else{ + showConnActive(false) + } + + } + + func showConnActive(active: Bool) { + if active { + levelInd.doubleValue = 100.0 + }else{ + levelInd.doubleValue = 0.0 + } + } + + func validIPAddress(ipaddr: String) -> Bool { + var valid: Bool = false + let validIpAddressRegex = "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" + if ipaddr != "" { + if (ipaddr.rangeOfString(validIpAddressRegex, options: .RegularExpressionSearch) != nil) { + valid = true; + } + } + return valid + } + + func validPortNr(portNr: Int) -> Bool { + var valid: Bool = false + if portNr < 65536 && portNr > 0 { + valid = true + } + return valid + //^(6553[0-5]|655[0-2]\d|65[0-4]\d\d|6[0-4]\d{3}|[1-5]\d{4}|[1-9]\d{0,3}|0)$ + } + + override func controlTextDidChange(obj: NSNotification) { + let myField: NSTextField = obj.object as! NSTextField + if myField.identifier == "IPADDR_FIELD" { + if validIPAddress(myField.stringValue) { + __prefData.setIPAddr(myField.stringValue) + println("Changing ip address field") + } + } + if myField.identifier == "PORTNR_FIELD" { + if validPortNr(myField.integerValue) { + __prefData.setPortNr(myField.integerValue) + println("Changing port number") + } + } + } + + @IBAction func cmdCopyPressed(send: AnyObject) { + __animations.copyDisplayedFrame() + } + + @IBAction func cmdPastePressed(send: AnyObject) { + __animations.pasteDisplayedFrame() + _gameView.updateLEDFrame() + // Send updated frame + __animations.sendFrame() + } + + @IBAction func clearLEDs(send: AnyObject) { + // Remove from Memory + __animations.clearLEDColor() + // Update visual + _gameView.updateLEDFrame() + // Update on a hardware + __animations.sendFrame() + } + +} diff --git a/Cube4Fun/src/Cube4Fun-Bridging-Header.h b/Cube4Fun/src/Cube4Fun-Bridging-Header.h new file mode 100644 index 0000000..1659414 --- /dev/null +++ b/Cube4Fun/src/Cube4Fun-Bridging-Header.h @@ -0,0 +1,5 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// + +#import "ObjCtoCPlusPlus.h" \ No newline at end of file diff --git a/Cube4Fun/src/CubeNetwork.cpp b/Cube4Fun/src/CubeNetwork.cpp new file mode 100644 index 0000000..219a2ff --- /dev/null +++ b/Cube4Fun/src/CubeNetwork.cpp @@ -0,0 +1,368 @@ +// +// CubeNetwork.cpp +// Cube4Fun +// +// Created by Nikolai Rinas on 28.03.15. +// Copyright (c) 2015 Nikolai Rinas. All rights reserved. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see + +#include "CubeNetwork.h" + + +#ifdef WIN32 +#include +#else +#include +#endif // win32 + +using Poco::Net::DialogSocket; +using Poco::Net::SocketAddress; +using Poco::Exception; + +unsigned char buffer3D[64]; +unsigned char receiveBuffer[32]; +int bytesReceived; +int i,x; +unsigned char color; +DialogSocket ds; +int frameChange = 0; +int streamMode = 0; // 0 = off, 1 = frameStream, 2 = writeStream + +void sleepcp(int milliseconds) // cross-platform sleep function +{ +#ifdef WIN32 + Sleep(milliseconds); +#else + usleep(milliseconds * 1000); +#endif // win32 +} + +bool frame1[3][64] = { {1,0,0,1, + 0,0,0,0, + 0,0,0,0, + 1,0,0,1, + 0,0,0,0, + 0,0,0,0, //0,1,1,0, + 0,0,0,0, //0,1,1,0, + 0,0,0,0, + 0,0,0,0, + 0,0,0,0, //0,1,1,0, + 0,0,0,0, //0,1,1,0, + 0,0,0,0, + 1,0,0,1, + 0,0,0,0, + 0,0,0,0, + 1,0,0,1}, + {0,0,0,0, + 0,0,0,0, + 1,0,0,1, + 0,0,0,0, + 1,0,0,1, + 0,0,0,0, //0,1,1,0, + 0,0,0,0, //0,1,1,0, + 0,0,0,0, + 0,0,0,0, + 0,0,0,0, //0,1,1,0, + 0,0,0,0, //0,1,1,0, + 1,0,0,1, + 0,0,0,0, + 1,0,0,1, + 0,0,0,0, + 0,0,0,0}, + {0,0,0,0, + 1,0,0,1, + 0,0,0,0, + 0,0,0,0, + 0,0,0,0, + 0,0,0,0, //0,1,1,0, + 0,0,0,0, //0,1,1,0, + 1,0,0,1, + 1,0,0,1, + 0,0,0,0, //0,1,1,0, + 0,0,0,0, //0,1,1,0, + 0,0,0,0, + 0,0,0,0, + 0,0,0,0, + 1,0,0,1, + 0,0,0,0}}; + +bool connectionEstablished = false; + +void byte2uint32(unsigned char* bytes, u_int32_t msgLength) { + unsigned char *vp = (unsigned char *)&msgLength; + bytes[0] = vp[0]; // int32 to byte array conversion + bytes[1] = vp[1]; + bytes[2] = vp[2]; + bytes[3] = vp[3]; +} + +void msgCloseFrameStream() { + try { + buffer3D[0] = 's'; + buffer3D[1] = 'S'; + ds.sendBytes(buffer3D, 2); // End the stream mode + }catch (const Poco::Net::NetException & e){ + std::cerr << e.displayText() << std::endl; + } +} + +void msgOpenFrameStream() { + try { + buffer3D[0] = 'G'; + buffer3D[1] = 'E'; + buffer3D[2] = 'T'; + buffer3D[3] = ' '; + buffer3D[4] = '/'; + buffer3D[5] = '?'; + buffer3D[6] = 'S'; + buffer3D[7] = 's'; + buffer3D[8] = ' '; + ds.sendBytes(buffer3D, 9); + }catch (const Poco::Net::NetException & e){ + std::cerr << e.displayText() << std::endl; + } +} + +void msgStartWrite(u_int32_t msgLength) { + unsigned char myBuffer[4]; + byte2uint32(myBuffer, msgLength); + try{ + buffer3D[0] = 'G'; + buffer3D[1] = 'E'; + buffer3D[2] = 'T'; + buffer3D[3] = ' '; + buffer3D[4] = '/'; + buffer3D[5] = '?'; + buffer3D[6] = 'W'; + buffer3D[7] = 'w'; + buffer3D[8] = myBuffer[0]; // int32 to byte array conversion + buffer3D[9] = myBuffer[1]; + buffer3D[10] = myBuffer[2]; + buffer3D[11] = myBuffer[3]; + buffer3D[12] = ' '; + + printf("sending Length:\n"); + printf("0: %u\n", myBuffer[0]); + printf("1: %u\n", myBuffer[1]); + printf("2: %u\n", myBuffer[2]); + printf("3: %u\n", myBuffer[3]); + + ds.sendBytes(buffer3D, 13); + }catch (const Poco::Net::NetException & e){ + std::cerr << e.displayText() << std::endl; + } +} + + + + +void testFrame() { +// for (color=128;color<130;color++) { + // Create testframe + for (x=0;x<64;x++) { + buffer3D[x] = color; // Red frame + } + if ( color > 128 ) { + buffer3D[0]=255; + buffer3D[3]=255; + buffer3D[12]=255; + buffer3D[15]=255; + + buffer3D[48]=255; + buffer3D[51]=255; + buffer3D[60]=255; + buffer3D[63]=255; + }else{ + buffer3D[0]=254; + buffer3D[3]=254; + buffer3D[12]=254; + buffer3D[15]=254; + + buffer3D[48]=254; + buffer3D[51]=254; + buffer3D[60]=254; + buffer3D[63]=254; + } + ds.sendBytes(buffer3D, 64); + // sleepcp(50); // 20 FPS + // } + +} + + +void testStream2() { + int frameChange = 0; + while (true) { + unsigned char color = rand() % 254; + for (i=0;i<64;i++) { + if ( frame1[frameChange][i] == 1 ) { + buffer3D[i] = color; // Rot + }else{ + buffer3D[i] = 255; // Aus + } + } + ds.sendBytes(buffer3D, 64); + sleepcp(1000); // 20 FPS + if ( frameChange < 2 ) { + frameChange++; + }else{ + frameChange=0; + } + } +} + +/* +void CubeNetwork::updateFrame() { + unsigned char color = rand() % 254; + for (i=0;i<64;i++) { + if ( frame1[frameChange][i] == 1 ) { + buffer3D[i] = color; // Rot + }else{ + buffer3D[i] = 255; // Aus + } + } + ds.sendBytes(buffer3D, 64); + if ( frameChange < 2 ) { + frameChange++; + }else{ + frameChange=0; + } +} +*/ + +void CubeNetwork::sendBytes(const unsigned char* byteBuffer, unsigned int byteLength) { + printf("sendBytes called\n"); + if ( connectionEstablished) { + if ( streamMode == 1 ) { + // End the frameStreammode first + msgCloseFrameStream(); + streamMode = 2; + } + if ( byteBuffer != NULL ) { + try { + printf("Open connection for writing\n"); + //ds.connect(SocketAddress("192.168.1.79", 8081)); + // let arduino knows what to expect + msgStartWrite(byteLength); + unsigned char myBuffer[4]; + int ret = ds.receiveRawBytes(myBuffer, 4); + printf("received Length:\n"); + printf("0: %u\n", myBuffer[0]); + printf("1: %u\n", myBuffer[1]); + printf("2: %u\n", myBuffer[2]); + printf("3: %u\n", myBuffer[3]); + printf("ret: %u\n", ret); + + // send bytes to write + ds.sendBytes(byteBuffer, byteLength); + //ds.close(); + // Reset to the frameStream mode + if ( streamMode == 2 ) { + msgOpenFrameStream(); + streamMode = 1; + } + }catch (const Poco::Net::NetException & e){ + std::cerr << e.displayText() << std::endl; + } + } + } + +} + + +void CubeNetwork::updateFrame(const unsigned char * frameSequence, unsigned int frameCount) { + if (connectionEstablished) { + // check for empty pointer + if ( frameSequence != NULL ) { + //for (startFrame = 0; startFrame(ipAddr)); + Poco::UInt16 portNr = port; + try { + ds.connect(SocketAddress(ipAddr_str, portNr), Poco::Timespan(10, 0)); + + msgOpenFrameStream(); + streamMode = 1; + connectionEstablished = true; + }catch (Poco::Net::NetException & e){ + std::cerr << e.displayText() << std::endl; + ds.close(); + }catch (Poco::TimeoutException & e) { + std::cerr << e.displayText() << std::endl; + ds.close(); + }catch (Exception e){ + std::cerr << e.displayText() << std::endl; + ds.close(); + } + return connectionEstablished; +} + +void CubeNetwork::closeConnection() { + try { + connectionEstablished = false; + msgCloseFrameStream(); + ds.close(); + }catch (const Poco::Net::NetException & e){ + std::cerr << e.displayText() << std::endl; + } + streamMode = 0; +} + +bool CubeNetwork::connected() { + return connectionEstablished; +} + +/* + +void CubeNetwork::initObjects() { + srand((unsigned int)time(NULL)); + + try { + ds.connect(SocketAddress("192.168.1.79", 8081)); + + fillBufferWithMsgStartStream(); + ds.sendBytes(buffer3D, 9); + + + //testStream2(); + testFrame(); + + msgCloseFrameStream(); + + }catch (const Poco::Net::NetException & e){ + std::cerr << e.displayText() << std::endl; + } + + + //std::cout << "It works" << std::endl; + +} + +*/ +//void Performance_CPlusPlus::sortArray(unsigned int num_elements) diff --git a/Cube4Fun/src/CubeNetwork.h b/Cube4Fun/src/CubeNetwork.h new file mode 100644 index 0000000..1f78a06 --- /dev/null +++ b/Cube4Fun/src/CubeNetwork.h @@ -0,0 +1,46 @@ +// +// CubeNetwork.h +// Cube4Fun +// +// Created by Nikolai Rinas on 28.03.15. +// Copyright (c) 2015 Nikolai Rinas. All rights reserved. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see + +#ifndef __Cube4Fun__CubeNetwork__ +#define __Cube4Fun__CubeNetwork__ + +#include +#include "Poco/Foundation.h" +#include "Poco/Net/SocketAddress.h" +#include "Poco/Net/DialogSocket.h" +#include "Poco/Net/NetException.h" +#include "Poco/Exception.h" +#include /* srand, rand */ +#include /* time */ +#include + +class CubeNetwork +{ +public: + static bool connected(); + //static void initObjects(); + static void updateFrame(const unsigned char * frameSequence = NULL, unsigned int frameCount = 0); + static void sendBytes(const unsigned char* byteBuffer = NULL, u_int32_t byteLength=0); + static bool openConnection(const char* ipAddr, unsigned int port); + //static void openConnection(); + static void closeConnection(); +}; + +#endif /* defined(__Cube4Fun__CubeNetwork__) */ diff --git a/Cube4Fun/src/GameView.swift b/Cube4Fun/src/GameView.swift new file mode 100644 index 0000000..a448128 --- /dev/null +++ b/Cube4Fun/src/GameView.swift @@ -0,0 +1,621 @@ +// +// GameView.swift +// Cube4Fun +// +// Created by Nikolai Rinas on 27.03.15. +// Copyright (c) 2015 Nikolai Rinas. All rights reserved. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see + +import SceneKit + +var lastMousePos: NSPoint = NSPoint() +var startAngle: CGFloat = CGFloat() +var klickedColor: UInt8 = UInt8(1) +let relativeBarPosition: CGFloat = 500.0 + + +class GameView: SCNView { + + var playTimer: NSTimer = NSTimer() + + func scheduleTimer() { + playTimer = NSTimer.scheduledTimerWithTimeInterval(__animations.animationSpeedFloat(), target: __animations, selector: Selector("sendFrame"), userInfo: nil, repeats: true) + } + func resetTimer() { + playTimer.invalidate() + } + func rescheduleTimer() { + resetTimer(); + scheduleTimer(); + } + + func resetView() { + println("Reset view") + // goto first frame + self.firstButtonPressed() + + // Update speed + self.updateSpeedText() + + // Send updated frame + __animations.sendFrame() + } + + func updateButtonVisibility() { + // init + var nextFrame = false; + var lastFrame = false; + var prevFrame = false; + var firstFrame = false; + var delFrame = false; + + // first Frame, only one Frame + // -> no button visible + if __animations.getAnimationFrameID() == 1 && __animations.getAnimationFrameCount() == 1 { + nextFrame = false; + lastFrame = false; + prevFrame = false; + firstFrame = false; + delFrame = false; + } + + // first Frame, second exists. + if __animations.getAnimationFrameID() == 1 && __animations.getAnimationFrameCount() > 1 { + // Visible: + nextFrame = true; + lastFrame = true; + delFrame = true; + // Invisible: + prevFrame = false; + firstFrame = false; + } + + // previous Frame exists, no more Frames + if __animations.getAnimationFrameID() > 1 && __animations.getAnimationFrameID() == __animations.getAnimationFrameCount() { + // Visible: + prevFrame = true; + firstFrame = true; + delFrame = true; + // Invisible + nextFrame = false; + lastFrame = false; + } + + // previous Frame exists and next Frame exists { + if __animations.getAnimationFrameID() > 1 && __animations.getAnimationFrameID() < __animations.getAnimationFrameCount() { + // Visible: + prevFrame = true; + firstFrame = true; + delFrame = true; + nextFrame = true; + lastFrame = true; + } + + if let rootNode = self.scene?.rootNode { + for childNode in rootNode.childNodes { + let buttonNode: SCNNode = childNode as! SCNNode + if buttonNode.name == "myNextFrameButton" { + buttonNode.hidden = !nextFrame; + } + if buttonNode.name == "myPrevFrameButton" { + buttonNode.hidden = !prevFrame + } + if buttonNode.name == "myStartFrameButton" { + buttonNode.hidden = !firstFrame + } + if buttonNode.name == "myLastFrameButton" { + buttonNode.hidden = !lastFrame + } + if buttonNode.name == "myDelFrameButton" { + buttonNode.hidden = !delFrame + } + if buttonNode.name == "myFrameText" { + let geometry:SCNText = buttonNode.geometry as! SCNText + geometry.string = "Frame: \(__animations.getAnimationFrameID())/\(__animations.getAnimationFrameCount())" + } + + } + } + + // Send updated frame + __animations.sendFrame() + + } + + func updateLEDFrame() { + // get actuall frame data + +// let data : UnsafePointer = UnsafePointer(myFrames.mutableBytes) + //let data = __animations.getAnimDataSelected() + //NSMutableData + if let rootNode = self.scene?.rootNode { + if let cubeNode = rootNode.childNodeWithName("cubeNode", recursively: true) { + for myLED in cubeNode.childNodes { + if let name:NSString = myLED.name { + if name != "myBox" { // LED lamps + if let geometry: SCNGeometry = myLED.geometry { + let ledID: Int = Int(name.integerValue) + if let material: SCNMaterial = geometry.firstMaterial { + var color: NSColor = NSColor() + let colorPosition: Int = ((__animations.getAnimationFrameID()-1)*64) + ledID + let savedColor: UInt8 = __animations.getLEDColor(colorPosition) //data[colorPosition] + if savedColor == 255 { + color = NSColor.grayColor() + }else{ + let hueColor = CGFloat(savedColor) / 255.0 + color = NSColor(calibratedHue: hueColor, saturation: 1.0, brightness: 1.0, alpha: 1.0) + } + material.diffuse.contents = color + //println(name) + } + } + + } + } + } + } + } + //__animations.sendFrame() + } + + func plusButtonPressed() { + // Extend the data array with one frame + //myFrames.appendBytes(emptyFrame, length: 64) + __animations.addFrame() + + // Add frame + //myMaxFrameCount++; + + // Goto new frame + //myFrameCount = __animations.getAnimationFrameCount(); + __animations.gotoLastFrame() + + // Update LEDs + updateLEDFrame() + + // Update control button visibility + updateButtonVisibility() + } + + func minusButtonPressed() { + // remove one frame from the data array + // TODO! + + // Remove frame + __animations.removeFrame() +// if __animations.getAnimationFrameCount() > 1 { +// myMaxFrameCount--; +// } +// if myFrameCount > 1 { +// myFrameCount--; +// } + + // Update control button visibility + updateButtonVisibility() + } + + func prevButtonPressed() { +// if myFrameCount > 1 { +// myFrameCount-- +// } + __animations.gotoPrevFrame() + + // Update LEDs + updateLEDFrame() + + // Update control button visibility + updateButtonVisibility() + } + + func nextButtonPressed() { +// if myFrameCount < myMaxFrameCount { +// myFrameCount++ +// } + __animations.gotoNextFrame() + + // Update LEDs + updateLEDFrame() + + // Update control button visibility + updateButtonVisibility() + } + + func firstButtonPressed() { + //myFrameCount = 1; + __animations.gotoFirstFrame() + + // Update LEDs + updateLEDFrame() + + // Update control button visibility + updateButtonVisibility() + } + + func lastButtonPressed() { + __animations.gotoLastFrame() + + // Update LEDs + updateLEDFrame() + + // Update control button visibility + updateButtonVisibility() + } + + func plusSpeedButtonPressed() { + __animations.increaseSpeed() +// if ( _playSendDelay <= 3 ) { // 3 seconds slowest fps +// _playSendDelay = _playSendDelay + 0.1 + updateSpeedText() +// } + rescheduleTimer() + } + + func minusSpeedButtonPressed() { + //println(_playSendDelay) + __animations.decreaseSpeed() +// if ( _playSendDelay > 0.2 ) { // 100ms fastest fps +// _playSendDelay = _playSendDelay - 0.1 + updateSpeedText() +// } + rescheduleTimer() + } + + func updateSpeedText() { + if let rootNode = self.scene?.rootNode { + for childNode in rootNode.childNodes { + let buttonNode: SCNNode = childNode as! SCNNode + if buttonNode.name == "mySpeedText" { + let geometry:SCNText = buttonNode.geometry as! SCNText + geometry.string = "Speed: \(__animations.animationSpeedInt()) ms" + } + + } + } + + } + + + func playButtonPressed() { + // Change the button from Play to Pause + let myPauseButtonNode: SCNNode = self.scene!.rootNode.childNodeWithName("myPauseButton", recursively: true)! + let myPlayButtonNode: SCNNode = self.scene!.rootNode.childNodeWithName("myPlayButton", recursively: true)! + myPlayButtonNode.hidden = true + myPauseButtonNode.hidden = false + + // Start the animation + _playAllFrames = true + scheduleTimer(); + } + + func pauseButtonPressed() { + // Change the button from Pause to Play + let myPauseButtonNode: SCNNode = self.scene!.rootNode.childNodeWithName("myPauseButton", recursively: true)! + let myPlayButtonNode: SCNNode = self.scene!.rootNode.childNodeWithName("myPlayButton", recursively: true)! + myPauseButtonNode.hidden = true + myPlayButtonNode.hidden = false + + // Stop the animation + _playAllFrames = false + resetTimer() + } + + func openAnimationWindow() { + _animationsWindow.setIsVisible(true) + + } + + override func rightMouseDown(theEvent: NSEvent) { + let p = self.convertPoint(theEvent.locationInWindow, fromView: nil) + if let hitResults = self.hitTest(p, options: nil) { + // check that we clicked on at least one object + if hitResults.count > 0 { + // retrieved the first clicked object + let result: AnyObject = hitResults[0] + if let node = result.node { + if let geom = node.geometry { + if let name:NSString = geom.name { + if name.integerValue >= 0 && name.integerValue < 64 { // LED lamps + let color: NSColor = geom.firstMaterial?.diffuse.contents as! NSColor + if color != NSColor.grayColor() { + // Make sure we are in range of 0...255 + let ledColor = (color.hueComponent * 255) % 255 + if ( ledColor >= 0 && ledColor < 255 ) { + klickedColor = UInt8(ledColor) + } + klickedColor = UInt8 (color.hueComponent * 255) + moveArrows(Int(klickedColor)) + //println(klickedColor) + } + } + } + } + } + } + } + } + + override func mouseDown(theEvent: NSEvent) { + lastMousePos = theEvent.locationInWindow + /* Called when a mouse click occurs */ + + var ledPressed: Int = 0; + var ledColorOn = false; + + // check what nodes are clicked + let p = self.convertPoint(theEvent.locationInWindow, fromView: nil) + if let hitResults = self.hitTest(p, options: nil) { + // check that we clicked on at least one object + if hitResults.count > 0 { + // retrieved the first clicked object + let result: AnyObject = hitResults[0] + var anim = true + + // get its material + let material = result.node!.geometry!.firstMaterial! + + if let clickedNode = result.node { + if clickedNode.name == "myBox" { + anim = false + } + if clickedNode.name == "myPlayButton" && __animations.getAnimationFrameCount() > 1 { + playButtonPressed() + anim = false + } + if clickedNode.name == "myPauseButton" { + pauseButtonPressed() + anim = false + } + if clickedNode.name == "myAddFrameButton" { + plusButtonPressed() + } + if clickedNode.name == "myDelFrameButton" { + minusButtonPressed() + } + if clickedNode.name == "myPrevFrameButton" { + prevButtonPressed() + } + if clickedNode.name == "myNextFrameButton" { + nextButtonPressed() + } + if clickedNode.name == "myStartFrameButton" { + firstButtonPressed() + } + if clickedNode.name == "myLastFrameButton" { + lastButtonPressed() + } + if clickedNode.name == "myPlusSpeedButton" { + plusSpeedButtonPressed() + } + if clickedNode.name == "myMinusSpeedButton" { + minusSpeedButtonPressed() + } + if clickedNode.name == "myMngAnimationsButton" { + openAnimationWindow() + } + if clickedNode.name == "myColorBar" || clickedNode.name == "myArrows" { + let colorInt = Int(round(relativeBarPosition - theEvent.locationInWindow.y)) + if colorInt < 0 { + klickedColor = 0 // Minimum value + }else{ + if colorInt > 253 { + klickedColor = 253 // Maximum value + }else{ + klickedColor = UInt8(colorInt) + println(klickedColor) + } + } + // Move arrows to the clicked position + moveArrows(colorInt) + + //println("BarX: \(barRootPositionX) ClickedX: \(theEvent.locationInWindow.x) ") + //println("BarY: \(barRootPositionY) ClickedY: \(theEvent.locationInWindow.y) ") + + + anim = false + } + } + + // get its name + if let node = result.node { + if let geom = node.geometry { + if let name:NSString = geom.name { + let myGeometry:SCNText = self.scene!.rootNode.childNodeWithName("myDescr", recursively: true)?.geometry as! SCNText + // Show touched led + myGeometry.string = name + // Check for previously color + let prevColor = geom.firstMaterial?.diffuse.contents as! NSColor + if prevColor != NSColor.grayColor() { + geom.firstMaterial?.diffuse.contents = NSColor.grayColor() + ledColorOn = false + }else{ + let hueColor = CGFloat(klickedColor) / 255.0 + geom.firstMaterial?.diffuse.contents = NSColor(calibratedHue: hueColor, saturation: 1.0, brightness: 1.0, alpha: 1.0) + ledColorOn = true + } + ledPressed = Int(name.intValue) + + // Update the LED frame + var myByte: UInt8 + if ledColorOn { + myByte = klickedColor + }else{ + myByte = 255 // Off + } + __animations.setLEDColor(myByte, led: ledPressed) + + } + } + } + + /* + if let rootNode = self.scene?.rootNode { + if let cubeNode = rootNode.childNodeWithName("cubeNode", recursively: true) { + if let boxNode = cubeNode.childNodeWithName("myBox", recursively: true ) { + //anim = false + } + } + } */ + + + //let name:NSString = result.node!.geometry!.name! +/* + let myScene:SCNScene = self.scene! + let myRootNode:SCNNode = myScene.rootNode + let myTextNode:SCNNode = myRootNode.childNodeWithName("myDescr", recursively: false)! + let myGeometry:SCNText = myTextNode.geometry as SCNText +*/ + + + + //let nextNode = self.scene + //let text = self.scene?.rootNode.childNodeWithName("myDescr", recursively: true) + + + //println(name); + + + if anim { + + // highlight it + SCNTransaction.begin() + SCNTransaction.setAnimationDuration(0.2) + + // on completion - unhighlight + SCNTransaction.setCompletionBlock() { + SCNTransaction.begin() + SCNTransaction.setAnimationDuration(0.2) + + material.emission.contents = NSColor.blackColor() + + SCNTransaction.commit() + } + + material.emission.contents = NSColor.grayColor() + + SCNTransaction.commit() + + //myFrames.replaceBytesInRange(NSMakeRange(((myFrameCount-1)*64)+ledPressed, 1), withBytes: myByte) + + } + + } + } + + super.mouseDown(theEvent) + } + + func moveArrows(colorY: Int) { + // Range is from y=+15 ... -1 + let myArrowsNode = self.scene!.rootNode.childNodeWithName("myArrows", recursively: true) + let myRelativePos = 16.0 * CGFloat(colorY) / 255.0 + SCNTransaction.begin() + SCNTransaction.setAnimationDuration(0.5) + myArrowsNode?.position = SCNVector3(x:17, y: (16 - myRelativePos)-1, z:0.1) + SCNTransaction.commit() + } + + func rotateCamera(var x: CGFloat, var y: CGFloat) { + // Save the angle for reset + startAngle = startAngle + y + + // rotate + if let node = self.scene!.rootNode.childNodeWithName("cubeNode", recursively: true) { + node.runAction(SCNAction.rotateByX(0, y: y, z: 0, duration: 0.5)) + } + //println(startAngle) + } + + override func mouseUp(theEvent: NSEvent) { + // Reset the last location + lastMousePos.x = 0.0 + lastMousePos.y = 0.0 + + super.mouseUp(theEvent) + } + + override func mouseDragged(theEvent: NSEvent) { + let mousePos = theEvent.locationInWindow + if lastMousePos.x > 0.0 { + let drag = ( (lastMousePos.x - mousePos.x ) / 50 ) * -1 + rotateCamera(0.0, y: drag) + lastMousePos = mousePos + //println(drag) + } + + super.mouseDragged(theEvent) + } + + override func flagsChanged(theEvent: NSEvent) { +// println(theEvent.keyCode) + } + + override func keyDown(theEvent: NSEvent) { + + /* + if theEvent.modifierFlags & .CommandKeyMask != nil { + println("cmd pressed") + } +*/ + + + switch (theEvent.keyCode) { + case 123: + self.rotateCamera(0.0, y: -0.1) + // Left + break; + case 124: + self.rotateCamera(0.0, y: 0.1) + //self.rotateByAngle(-1.0); + //right + break; + case 15: // r - Key + // Reset the cube position + self.rotateCamera(0.0, y: -startAngle) + break; + case 17: // t - Key + // Reset the frame color on the Cube + //myFrames.replaceBytesInRange(NSMakeRange(myFrameCount-1, 64), withBytes: emptyFrame) + __animations.clearLEDColor() + + // Reset the frame color in 3D + if let rootNode = self.scene?.rootNode { + if let cubeNode = rootNode.childNodeWithName("cubeNode", recursively: true) { + for myLED in cubeNode.childNodes { + if let name:NSString = myLED.name { + if name != "myBox" { // LED lamps + if let geometry: SCNGeometry = myLED.geometry { + if let material: SCNMaterial = geometry.firstMaterial { + material.diffuse.contents = NSColor.grayColor() + //println(name) + } + } + + } + } + } + } + } + break; + default: + super.keyDown(theEvent) + } + + println(theEvent.keyCode); + + + //super.keyDown(theEvent) + } + +} diff --git a/Cube4Fun/src/GameViewController.swift b/Cube4Fun/src/GameViewController.swift new file mode 100644 index 0000000..574203a --- /dev/null +++ b/Cube4Fun/src/GameViewController.swift @@ -0,0 +1,230 @@ +// +// GameViewController.swift +// Cube4Fun +// +// Created by Nikolai Rinas on 27.03.15. +// Copyright (c) 2015 Nikolai Rinas. All rights reserved. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see + +import SceneKit +import QuartzCore + +/* +var myFrameCount: UInt32 = 1; +var myMaxFrameCount: UInt32 = 1; +var myFrames: NSMutableData = NSMutableData() // == byte[] array +var _emptyAnimation: NSMutableDictionary = ["AnimName": "Animation1", "AnimKey": "1=anim1", "AnimDur": 1, "AnimSpeed": 500, "AnimFrames": 1, "AnimData": myFrames] + +let emptyFrame: [Byte] = [ + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255, + 255,255,255,255] + +let _minSendDelay: NSTimeInterval = 0.200 // 200 milliseconds +let _frameSendDelay: NSTimeInterval = 0.2 // one second +var _playSendDelay: NSTimeInterval = 0.5 // 500 milliseconds as default +*/ + +var _previousUpdateTime: NSTimeInterval = NSTimeInterval() +var _deltaTime: NSTimeInterval = NSTimeInterval() +var _playAllFrames = false +var _gameView: GameView = GameView(); + +class GameViewController: NSViewController { // SCNSceneRendererDelegate + + @IBOutlet weak var gameView: GameView! + + + /* + func renderer(aRenderer: SCNSceneRenderer, updateAtTime time: NSTimeInterval) { + //sendFrame(time) + sendFrame(NSDate.timeIntervalSinceReferenceDate()) + //println("This will be called before each frame draw") + } + + override func viewDidLoad() { + self.gameView!.delegate = self + + super.viewDidLoad() + } + */ + + + //func sendFrame() { + // sendFrame(NSDate.timeIntervalSinceReferenceDate()) + //} + + /* + func sendFrame(time: NSTimeInterval) { + //println(time) + + if (_previousUpdateTime == 0.0) { + _previousUpdateTime = time; + } + _deltaTime = time - _previousUpdateTime; + + //var ms = Int((time % 1) * 1000) + if ( _playAllFrames ) { + if ( _deltaTime >= __animations.animationSpeedFloat() ){ + if (__animations.getAnimationFrameID() >= __animations.getAnimationFrameCount()) { + self.gameView!.firstButtonPressed() + }else{ + self.gameView!.nextButtonPressed() + } + CubeNetworkObj.updateFrame(__animations.getAnimDataSelected(), count: UInt32(__animations.getAnimationFrameID())) + _previousUpdateTime = time; + } + }else{ + if ( _deltaTime >= __animations.getMinSendDelay() ) { + CubeNetworkObj.updateFrame(__animations.getAnimDataSelected(), count: UInt32(__animations.getAnimationFrameID())) + //println("SendFrame: \(_deltaTime)") + _previousUpdateTime = time; + } + } + //CubeNetworkObj.updateFrame(UnsafePointer(myFrames.bytes), count: myFrameCount) + } + +*/ + + override func awakeFromNib(){ + + _gameView = gameView; + //NSTimer.scheduledTimerWithTimeInterval(_frameSendDelay, invocation: CubeNetworkObj.initObjects(), repeats: true) +// CubeNetworkObj.initObjects(); + + // Init first frame + +// myFrames = NSMutableData(bytes: emptyFrame, length: 64) +// myFrameCount = 1 + // Open connection to the LED cube + let established = CubeNetworkObj.openConnection(__prefData.ipAddr(), port: UInt32(__prefData.portNR())) + if established { + println("connection established") + }else{ + println("connection failed") + } + __animations.sendFrame() + + // Fallback timer if nothing render at the moment + // NSTimer.scheduledTimerWithTimeInterval(__animations.getMinSendDelay(), target: self, selector: Selector("sendFrame"), userInfo: nil, repeats: true) + + + + + // create a new scene + //let scene = SCNScene(named: "art.scnassets/ship.dae")! + let scene = PrimitivesScene(); + + + // create and add a camera to the scene + let camera = SCNCamera() + camera.usesOrthographicProjection = true + camera.orthographicScale = 15 + camera.zNear = 0 + camera.zFar = 100 + let cameraNode = SCNNode() + cameraNode.camera = camera + cameraNode.name = "myCamera" + scene.rootNode.addChildNode(cameraNode) + + // place the camera + var newAngle = (CGFloat)(20.0)*(CGFloat)(M_PI)/180.0 + //newAngle += currentAngle + +// cameraNode.transform = SCNMatrix4MakeRotation(-0.5, 0, 0, 1) + + cameraNode.transform = SCNMatrix4MakeRotation(newAngle, 0, 1, 0) + cameraNode.transform = SCNMatrix4MakeRotation(-0.4, 1, 0, 0) + cameraNode.position = SCNVector3(x: 0, y: 13, z: 30) + //cameraNode.eulerAngles = SCNVector3(x: 1.0, y: 0.0, z: 0.0) + + + /* + let camera = SCNCamera() + camera.usesOrthographicProjection = true + camera.orthographicScale = 9 + camera.zNear = 0 + camera.zFar = 100 + let cameraNode = SCNNode() + cameraNode.position = SCNVector3(x: 0, y: 0, z: 20) + cameraNode.camera = camera + let cameraOrbit = SCNNode() + cameraOrbit.name = "myCamera" + cameraOrbit.addChildNode(cameraNode) + scene.rootNode.addChildNode(cameraOrbit) +*/ + + // create and add a light to the scene + let lightNode = SCNNode() + lightNode.light = SCNLight() + lightNode.light!.type = SCNLightTypeDirectional + lightNode.light!.color = NSColor.grayColor() + lightNode.position = SCNVector3(x: 20, y: 40, z: 20) + scene.rootNode.addChildNode(lightNode) + + // create and add an ambient light to the scene + let ambientLightNode = SCNNode() + ambientLightNode.light = SCNLight() + ambientLightNode.light!.type = SCNLightTypeAmbient + ambientLightNode.light!.color = NSColor.darkGrayColor() + scene.rootNode.addChildNode(ambientLightNode) + + + // Background image + scene.background.contents = NSImage(named: "Background.jpg") + + + /* + // retrieve the ship node + let ship = scene.rootNode.childNodeWithName("ship", recursively: true)! + + // animate the 3d object + let animation = CABasicAnimation(keyPath: "rotation") + animation.toValue = NSValue(SCNVector4: SCNVector4(x: CGFloat(0), y: CGFloat(1), z: CGFloat(0), w: CGFloat(M_PI)*2)) + animation.duration = 3 + animation.repeatCount = MAXFLOAT //repeat forever + ship.addAnimation(animation, forKey: nil) + */ + + scene.paused = false + + // set the scene to the view + self.gameView!.scene = scene + + + // allows the user to manipulate the camera + //self.gameView!.allowsCameraControl = true + + // show statistics such as fps and timing information + //self.gameView!.showsStatistics = true + + // configure the view + self.gameView!.backgroundColor = NSColor.blackColor() + } + +} diff --git a/Cube4Fun/src/ObjCtoCPlusPlus.h b/Cube4Fun/src/ObjCtoCPlusPlus.h new file mode 100755 index 0000000..59517f0 --- /dev/null +++ b/Cube4Fun/src/ObjCtoCPlusPlus.h @@ -0,0 +1,29 @@ +// +// ObjCtoCPlusPlus.h +// +// Created by Nikolai Rinas on 02/02/2015. +// Copyright (c) 2015 Nikolai Rinas. All rights reserved. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see + +#import + +@interface CubeNetworkObj : NSObject ++ (void) updateFrame: (const unsigned char *) frameSequence count: (UInt32) frameCount; ++ (void) sendBytes: (const unsigned char *) byteBuffer count: (u_int32_t) byteLength; +//+ (void) initObjects; ++ (bool) openConnection: (const char *) ipAddress port: (UInt32) port; ++ (void) closeConnection; ++ (bool) connected; +@end \ No newline at end of file diff --git a/Cube4Fun/src/ObjCtoCPlusPlus.mm b/Cube4Fun/src/ObjCtoCPlusPlus.mm new file mode 100755 index 0000000..cfdd196 --- /dev/null +++ b/Cube4Fun/src/ObjCtoCPlusPlus.mm @@ -0,0 +1,53 @@ + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see + +#import "ObjCtoCPlusPlus.h" + +#import "CubeNetwork.h" + + +@implementation CubeNetworkObj + +/* ++ (void) initObjects +{ + CubeNetwork::initObjects(); +} + */ ++ (void) updateFrame: (const unsigned char *) frameSequence count: (UInt32) frameCount +{ + CubeNetwork::updateFrame(frameSequence, frameCount); +} ++ (void) sendBytes: (const unsigned char *) byteBuffer count: (u_int32_t) byteLength +{ + CubeNetwork::sendBytes(byteBuffer, byteLength); +} +//+ (void) openConnection ++ (bool) openConnection: (const char *) ipAddress port: (UInt32) port +{ + bool success = false; + success = CubeNetwork::openConnection(ipAddress, port); + return success; +} ++ (void) closeConnection +{ + CubeNetwork::closeConnection(); +} + ++ (bool) connected +{ + return CubeNetwork::connected(); +} + +@end \ No newline at end of file diff --git a/Cube4Fun/src/Preferences.swift b/Cube4Fun/src/Preferences.swift new file mode 100644 index 0000000..164ce65 --- /dev/null +++ b/Cube4Fun/src/Preferences.swift @@ -0,0 +1,77 @@ +// +// Preferences.swift +// Cube4Fun +// +// Created by Nikolai Rinas on 18.04.15. +// Copyright (c) 2015 Nikolai Rinas. All rights reserved. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see + +import Foundation + +class Preferences: NSObject { + + let _myPrefs: NSUserDefaults = NSUserDefaults() + var _myIPAddr: String = String() + var _myPortNr: Int = Int() + + let ipaddr_txt: String = "IPADDR" + let portnr_txt: String = "PORTNR" + // ipAddr + + + override init() { + super.init() + + // Load defaults + self.loadFile() + } + + func loadFile() { + // Load ip address + if let myIPAddr: String = _myPrefs.stringForKey(ipaddr_txt) { + _myIPAddr = myIPAddr + } + // Load custom port + let myPort: Int = _myPrefs.integerForKey(portnr_txt) + if myPort > 0 { + _myPortNr = myPort + } + } + + func saveFile() { + // Save ip address + _myPrefs.setObject(_myIPAddr, forKey: ipaddr_txt) + // Save port number + _myPrefs.setInteger(_myPortNr, forKey: portnr_txt) + } + + func ipAddr() -> (String) { + return _myIPAddr + } + + func setIPAddr(ipAddr: String) { + _myIPAddr = ipAddr + self.saveFile() + } + + func portNR() -> (Int) { + return _myPortNr + } + + func setPortNr(portNr: Int) { + _myPortNr = portNr + self.saveFile() + } +} \ No newline at end of file diff --git a/Cube4Fun/src/PrimitivesScene.swift b/Cube4Fun/src/PrimitivesScene.swift new file mode 100644 index 0000000..2c50b21 --- /dev/null +++ b/Cube4Fun/src/PrimitivesScene.swift @@ -0,0 +1,283 @@ +// +// PrimitivesScene.swift +// Cube4Fun +// +// Created by Nikolai Rinas on 27.03.15. +// Copyright (c) 2015 Nikolai Rinas. All rights reserved. +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see + +import Cocoa +import SceneKit +import QuartzCore + +let debugOn = false +let animRun = false + +class PrimitivesScene: SCNScene { + + func createPlayback() { + // Play - Button + let playImage = SCNPlane(width: 2.2, height: 2.2) + playImage.firstMaterial?.diffuse.contents = NSImage(named: "media-playback-start-5.png") + let playImageNode = SCNNode(geometry: playImage) + playImageNode.name = "myPlayButton" + playImageNode.position = SCNVector3(x:0, y:14, z:0) + self.rootNode.addChildNode(playImageNode) + + // Pause - Button + let pauseImage = SCNPlane(width: 2.5, height: 2.5) + pauseImage.firstMaterial?.diffuse.contents = NSImage(named: "media-playback-pause-5.png") + let pauseImageNode = SCNNode(geometry: pauseImage) + pauseImageNode.name = "myPauseButton" + pauseImageNode.position = SCNVector3(x:0, y:14, z:0) + pauseImageNode.hidden = true + if __animations.getAnimationFrameID() == 1 && __animations.getAnimationFrameCount() == 1 { + pauseImageNode.hidden = true + } + self.rootNode.addChildNode(pauseImageNode) + + // NextFrame - Button + let nextFrameImage = SCNPlane(width: 2.0, height: 2.0) + nextFrameImage.firstMaterial?.diffuse.contents = NSImage(named: "media-seek-forward-5.png") + let nextFrameImageNode = SCNNode(geometry: nextFrameImage) + nextFrameImageNode.name = "myNextFrameButton" + nextFrameImageNode.position = SCNVector3(x:2, y:14, z:0) + if __animations.getAnimationFrameID() == 1 && __animations.getAnimationFrameCount() == 1 { + nextFrameImageNode.hidden = true + } + self.rootNode.addChildNode(nextFrameImageNode) + + // PrevFrame - Button + let prevFrameImage = SCNPlane(width: 2.0, height: 2.0) + prevFrameImage.firstMaterial?.diffuse.contents = NSImage(named: "media-seek-backward-5.png") + let prevFrameImageNode = SCNNode(geometry: prevFrameImage) + prevFrameImageNode.name = "myPrevFrameButton" + prevFrameImageNode.position = SCNVector3(x:-2, y:14, z:0) + if __animations.getAnimationFrameID() == 1 { + prevFrameImageNode.hidden = true + } + self.rootNode.addChildNode(prevFrameImageNode) + + // StartFrame - Button + let startFrameImage = SCNPlane(width: 2.0, height: 2.0) + startFrameImage.firstMaterial?.diffuse.contents = NSImage(named: "media-skip-backward-5.png") + let startFrameImageNode = SCNNode(geometry: startFrameImage) + startFrameImageNode.name = "myStartFrameButton" + startFrameImageNode.position = SCNVector3(x:-5, y:14, z:0) + if __animations.getAnimationFrameID() == 1 { + startFrameImageNode.hidden = true + } + self.rootNode.addChildNode(startFrameImageNode) + + // LastFrame - Button + let lastFrameImage = SCNPlane(width: 2.0, height: 2.0) + lastFrameImage.firstMaterial?.diffuse.contents = NSImage(named: "media-skip-forward-5.png") + let lastFrameImageNode = SCNNode(geometry: lastFrameImage) + lastFrameImageNode.name = "myLastFrameButton" + lastFrameImageNode.position = SCNVector3(x:5, y:14, z:0) + if __animations.getAnimationFrameID() == __animations.getAnimationFrameCount() { + lastFrameImageNode.hidden = true + } + self.rootNode.addChildNode(lastFrameImageNode) + + } + + func createSpeedButtons() { + // Frame + let textSpeed = SCNText(string: "Speed: \(__animations.animationSpeedInt()) ms", extrusionDepth: 0) + textSpeed.font = NSFont(name: "Arial", size: 1.2) + let textSpeedNode = SCNNode(geometry: textSpeed) + textSpeedNode.name = "mySpeedText" + textSpeedNode.position = SCNVector3(x:-20.0 , y: 9.7, z: 0.0) + self.rootNode.addChildNode(textSpeedNode) + + // SpeedUp - Button + let plusSpeedImage = SCNPlane(width: 1.7, height: 1.7) + plusSpeedImage.firstMaterial?.diffuse.contents = NSImage(named: "list-add-2.png") + let plusSpeedImageNode = SCNNode(geometry: plusSpeedImage) + plusSpeedImageNode.name = "myPlusSpeedButton" + plusSpeedImageNode.position = SCNVector3(x:-16.5, y:8, z:0) + self.rootNode.addChildNode(plusSpeedImageNode) + + // SpeedDown - Button + let minusSpeedImage = SCNPlane(width: 1.7, height: 1.7) + minusSpeedImage.firstMaterial?.diffuse.contents = NSImage(named: "list-remove-2.png") + let minusSpeedImageNode = SCNNode(geometry: minusSpeedImage) + minusSpeedImageNode.name = "myMinusSpeedButton" + minusSpeedImageNode.position = SCNVector3(x:-18.7, y:8, z:0) + self.rootNode.addChildNode(minusSpeedImageNode) + } + + func createFrameButtons() { + let textFrame = SCNText(string: "Frame: \(__animations.getAnimationFrameID())/\(__animations.getAnimationFrameCount())", extrusionDepth: 0) + textFrame.font = NSFont(name: "Arial", size: 1.2) + let textFrameNode = SCNNode(geometry: textFrame) + textFrameNode.name = "myFrameText" + textFrameNode.position = SCNVector3(x:-20.0 , y: 13.7, z: 0.0) + self.rootNode.addChildNode(textFrameNode) + + // AddFrame - Button + let addFrameImage = SCNPlane(width: 1.7, height: 1.7) + addFrameImage.firstMaterial?.diffuse.contents = NSImage(named: "list-add-2.png") + let addFrameImageNode = SCNNode(geometry: addFrameImage) + addFrameImageNode.name = "myAddFrameButton" + addFrameImageNode.position = SCNVector3(x:-16.5, y:12, z:0) + self.rootNode.addChildNode(addFrameImageNode) + + // DeleteFrame - Button + let delFrameImage = SCNPlane(width: 1.7, height: 1.7) + delFrameImage.firstMaterial?.diffuse.contents = NSImage(named: "list-remove-2.png") + let delFrameImageNode = SCNNode(geometry: delFrameImage) + delFrameImageNode.name = "myDelFrameButton" + delFrameImageNode.position = SCNVector3(x:-18.7, y:12, z:0) + // for first frame, there is nothing to delete + if ( __animations.getAnimationFrameID() == 1 ) { + delFrameImageNode.hidden = true + } + self.rootNode.addChildNode(delFrameImageNode) + } + + func createOpenAnimations() { + let textAnimations = SCNText(string: "List Animations", extrusionDepth: 0) + textAnimations.font = NSFont(name: "Arial", size: 1.2) + let textAnimationsNode = SCNNode(geometry: textAnimations) + textAnimationsNode.name = "myAnimationsText" + textAnimationsNode.position = SCNVector3(x:-20.0 , y: 5.7, z: 0.0) + self.rootNode.addChildNode(textAnimationsNode) + + // Manage Animations - Button + let mngAnimationsImage = SCNPlane(width: 1.7, height: 1.7) + mngAnimationsImage.firstMaterial?.diffuse.contents = NSImage(named: "view-sidetree.png") + let mngAnimationsImageNode = SCNNode(geometry: mngAnimationsImage) + mngAnimationsImageNode.name = "myMngAnimationsButton" + mngAnimationsImageNode.position = SCNVector3(x:-16.5, y:4, z:0) + self.rootNode.addChildNode(mngAnimationsImageNode) + } + + override init() { + super.init() + + var radius:CGFloat = 1.0 + + let yCount = 4 + let zCount = 4 + let xCount = 4 + var myIndex = 0 + + let spaceBetweenLEDs:CGFloat = 4.0 + let edgePosX:CGFloat = CGFloat(xCount-1) * spaceBetweenLEDs * -1 / 2 + let edgePosY:CGFloat = CGFloat(yCount-1) * spaceBetweenLEDs * -1 / 2 + let edgePosZ:CGFloat = CGFloat(zCount-1) * spaceBetweenLEDs * -1 / 2 + let boxSizeX:CGFloat = CGFloat(xCount-1) * spaceBetweenLEDs + 2 * radius + let boxSizeZ:CGFloat = CGFloat(zCount-1) * spaceBetweenLEDs + 2 * radius + let boxPosY:CGFloat = (CGFloat(yCount-1) * spaceBetweenLEDs / 2) + radius + 0.5 + + + // ID for the LED + let text = SCNText(string: "Klick", extrusionDepth: 0) + text.font = NSFont(name: "Arial", size: 1.5) + let textNode = SCNNode(geometry: text) + textNode.name = "myDescr" + if ( debugOn ) { + textNode.position = SCNVector3(x:-20.0 , y: -14.0, z: 0.0) + }else{ + textNode.position = SCNVector3(x:-20.0 , y: -24.0, z: 0.0) + } + self.rootNode.addChildNode(textNode) + + // Frame + createFrameButtons() + + // Action Buttons + createPlayback() + + // Speed Buttons + createSpeedButtons() + + // Open Animation Button + createOpenAnimations() + + // color picker + let colorBar = SCNPlane(width: 3, height: 16) + colorBar.firstMaterial?.diffuse.contents = NSImage(named: "Gradient2.png") + let colorBarNode = SCNNode(geometry: colorBar) + colorBarNode.name = "myColorBar" + colorBarNode.position = SCNVector3(x: 17, y: 7, z:0.0) + self.rootNode.addChildNode(colorBarNode) + + // Arrows + let arrowImage = SCNPlane(width: 3, height: 2.0) + arrowImage.firstMaterial?.diffuse.contents = NSImage(named: "Arrows.png") + let arrowImageNode = SCNNode(geometry: arrowImage) + arrowImageNode.name = "myArrows" + arrowImageNode.position = SCNVector3(x:17, y:15, z:0.1) + self.rootNode.addChildNode(arrowImageNode) + + + // All movable objects + let cubeNode = SCNNode() + cubeNode.name = "cubeNode" + + let box = SCNBox(width: boxSizeX, height: 1.0, length: boxSizeZ, chamferRadius: 0.1) + box.firstMaterial?.diffuse.contents = NSColor.whiteColor() + let boxNode = SCNNode(geometry: box) + boxNode.name = "myBox" + boxNode.position = SCNVector3(x:0.0 , y: -boxPosY, z: 0.0) + cubeNode.addChildNode(boxNode) + + + var y:CGFloat = edgePosY + for row in 0..