Skip to content

Instantly share code, notes, and snippets.

@elmaedesistemas
Created March 16, 2019 20:58
Show Gist options
  • Save elmaedesistemas/13039f02ed38945997bae8e1df63d3fb to your computer and use it in GitHub Desktop.
Save elmaedesistemas/13039f02ed38945997bae8e1df63d3fb to your computer and use it in GitHub Desktop.
Droppy woppy input
<div class="form">
<h3>Delivery address:</h3>
<p>(just start typing, this isn't a real input 🙂)</p>
<div class="fake-input"></div>
</div>
// cleaner code in
//
// https://codepen.io/ste-vg/pen/pNqdRq
console.clear();
var Stage = /** @class */ (function () {
function Stage(scale, font) {
this.width = 0;
this.scale = 1;
this.wrappingImages = [
'https://assets.ste.vg/codepen/cardboard1.jpg',
'https://assets.ste.vg/codepen/cardboard2.jpg',
'https://assets.ste.vg/codepen/cardboard3.jpg',
// 'data:image/png;base64,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',
// 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAgAElEQVR4Xu1d6XMcx3V/szeAxX0RBw+REkFSByWSlqjDtmTZsZOKczguV1wV+0s+5EM+5L9Ipcq07DiVShyX46qkXLYTR3EUx5HsyFIikaYsEjQlUgRJ8AZxkAB2F9jFYs9JvT5mume6Z2bBBbA45guL2Jme6fd+737dbeS+9nXTNADABOUVMuhPJhiAtzkv07QfTEeboP8Th9UD4fN8AHzGMIA/O3nmCnRn5uXnDFC80QR8dK6tCwY/tp/cT4a0BuZDmDA+W4Kfji1pvqWx/vxcaRqeKM/DXEc3DB6j8/Kam0Byct9SJg/5c5cgWSm6JqamD7vNNMHInXjF5qBpEkZbH6DiuPAKkfllIwSJZ5+EcFPM/RFOBpH30KuSL0H+V+cgalY9nxPfVTl2GJrbm8AwQmrkmib86HwWprKVxuK05msSZhn+pHgNItUq5A6MQNdwp4MHDkYI9OM3VvJFmDlzFbqLiwo6MjK5BAUcAAhKLgZBzkRkfunREejob1eOQHSHJf2oTWzMTY6OQ3dqVnqOah150uQZEyAbjkH3i0eohKgAYJowna3CD8+7CRF0eutxH2qBw+V5WApFofXZwxBuirI5MhXsFEYFCPCByfevQPeCQ5syJUkVrzyQrAECzBwlEcfgaqgm5iMQBf0VVPrxZRwy830DMPD4bqYiBWDxbzdNeP3KEozdLwWYTePc0m4W4cuFa2Se6ZZ22HH8oPRxSlWuAUFqIgXV8Rtqk8B4x4FgZE+8QlwAz4szTWA83o82v+djB5Vqn48nIw7tvq3qVbZfJf0iACLPHSHvU0s/wHS2suGkn9Pqs6UJeKiCmsuATE8P9B3e5w8C1Kca/21q9Bq0pecgojSv1CwY2a993eQS7dIyTMCcL0Cpzw4OQP+BnZ64kVErf2hmOgOJi5fc9orqdvvvAsoziVboe/5RtfSz+37y0RLcSm0s6eeTRS3wxeINiFYrhAbp4WHoHxn2BQHzqSXtKvoG9y7dgZZMCuLVspveCAA/BcB/R/tb3tHrz3iCKO6i49My81H1p9+7AMlKwfFqIVJgv3Dbj/+tHhqBpgHqILlVogHTi+UNK/2cEEdL9+Dp6hxUwYAQmLCwZw/07N3hCwKiBoTISsXTmbE7YM4uQGsxZ2kF4863/sE0KmXoKOelZ0pGCJYicSgmmsBINkHnUA/xvINcXpKPz0+fvgSduYw8KR6KaqQ/G2+G7heeUDIf516umPDdMwuwXA6M5yBTWZd7vlwYh3YTtZgBJcOA3NBgIE1ARI34aHaIrZtAeiYD+ZkUGKXRk3WjmKW47YDfZZ9mLk9Ax8SEv+ond9iaQyv9DPmvX85tOMdPx5xdlRz8Tuk20XKcOU5zQHwrScsKozmiNC8U1wUA6JDx6MB6mcJD1TKfqgz5O4XnU4JXrHL+xmeLGybpE1SlvFiahAMVqiU5eWZb7QQYH0cKsR2De/kG1vMPogEoM9Crl502lS2aungbuqYnA0k+BbCtmOzEjxXD0HFME3JFgH8+tzlUv0gcTA79YfGmZQoM4rIDpDDyOnbIyhMQgFhevCaeY/RUqfqaNQBhOgkrFDE4m4Ez1r9/ftxl821kuyUfh+aRx1xnDwweediijR1WmlAqA7x6YeNk/IJKP7+PRwUxFDLGPeR1ORyB/EN7oGtXjzQkTdZTZ1B5EZVAb+FgMMqjp2hmR1cM4Nww2FOKwXWqhuaoxxTevi6Hz7KE7OvkrJ+oZeh9GznkCwqG/ZU0fKo0RZNvWB1B08jYtdTTC237d7m1AdOOWiBYggpglM+degAnkHohosTziaHKb52ZVub4LbXlpIJg9zHXYBx9nOX8BdXPHJ+3r+fhN5POMDIoWTfWfaRYVEnZcspUPpKiGglDqq2bhOY8fWybBWZKdRoBuVczACzdIad1OUnnJ1Jgjt9US70q1FOYDfyTlPLlXhBj/sV7RfjFlY1R6asH1J5/eg8cunkBwrfvSCAQfaXlUASWMTk3MuT2szgAuKoW7jDKGAZqbQZCBFU/uiDe8SUyvnTjNnQU5XyC/S60UGr75NQgktfPfQ3G/M3o8XuBBJm/d083uSXx9v+6QMCdYW6pMX+z0NkDHXsHtHkbakzRhzMfLA+AGb1716cgdn9OKfH4GsztV013ho9P2pv5vIxFv/dXt/Pw3u2tofaRPk8f2QkjD/dJ+OAgYCy0HD4iH47Qez7RAqGeLujZ1SeZB3HAmqOA1MQ85O+nIZxd9JB29l2WudB7paIDgk5fxzOP0WIPNWQ8wwlbyebj1B/Z2wPHj9Gqp/NK/PxNCE9PWX8WM68qIOCN2XAcCu3t0NTbAW3drXa5+dZ3/4nwwIhGIdbRYg1auJ+2X5BbgpBZ9WQ4v5lKvN7LtwZ1oFXFfPR7MdQ7eXt5yzh8fszn9BM1gVMb4P+Ze04ECfnhvIjPEInSaqASZjX8UYoiPTxOMqQiQ5iKt0Lv0Uckycf75pcq8Iur+Q3T2VMDybS3ekm+86Ho2BjEfn3GFlSdk60p5xPgrBgA1IegsalvQwH9RmczCf7tfrIThp8ZcakzdPb+Zzy/KYo7QYGxe2cnfOLZvUFvh9EP7sLixWvwmfKEFW7bSUE/s2tACJ1A0hRK2i+9FQH9lWb/AvLb1vaU/a5cU3poiMSvYi2hVAF4c3zzFHaCcrOnKwmf/uQjEI1iet3/un5rHk6+d4PciBnDl4uT0GcKERjRBv7CWXNLmP+n2XfoHBLsJIqP7CE9hARMqKJCITg7sQzvTxS2lNTj9JH5n//cExCLRaBQKECl4m7cEOkuMl/8O/YSPFlNSck3P42wKgCgKWex9ZN+Jmb3Fnr6YOCJPVTqq1VSyMBGjjeu5CC1/MDuSC34bIh7OfPjcdoEilelUiFAENvn+G865vPfsYj06eIkDJs5aX5ChV6qFRATENiIe5HMpwaNyZ3ew/sg0pxgFUSA26kSnJ0sbdgWrgdFUFtrAv7o80dAZL44JgKhXC4TQKD/dOduCt4+eS3Qa7Gn4Fj5vmwW2JOi0273BLKkn3J0jMdZosH5u9eiEtI72NYJrY8MQ0tHM/EDCmUTrsyWYHRieUtKPKcfMh3VPmqAINfcfBZee/0DKBRq63f0AgK+d+VRgMdXi72DqOoLpQpMLpbhZqoCl+8Xt5yNd5JqrZgvvhcdxafKs7DbzEGT0BxaFwAUQhFYamoBsyMJrTt6INnRBIv5CtzNVuHGfIlI/PZFKbAezHfSvr+Sh4PVFAGD8Z1v/cRsr5ZguLoIXdUiYPNBq1GSUCIOQKQ7FIZSSxIgEobmvg6otibhft6ETL4MkwtVuJ+rbHkp1wH+i79/NLDaX8wuw49fG61Z7dcibMaJv/mZ1vUebrc9U9WgE5ltya6F2C+9MAIjj8gt3rrnC8Uy/Od/n4fZ+Wwtr6j5Xk8A1Dza9gNaCjQi84kT6KUBtvlZHwo0KvO3AVAf/nqOUgvzcaAf/8fZVVf74gdva4BVBMGBR3bAiy/YhS6/V7397mUYuzrtd1tdf98GQF3JaQ+2EZi/bQK2OPO3AbAKANgoks+nvm0C6ggCVWXPa/jL4zPw1jtjdfyC2ocy/uqbr9GeQDChihsTCNdKi7OuhhFc5EHWEdIrZNUmDQiFgjVA1D61tX1iozC/WsVlfZSzVWwF+stXXl0pn+tKYQ4aIxQBAgkDu1kQOLX2H9X1swIN1mjMR0HG8jEylvQUmFW61lJByoYBgJbSbC0JAQYBQ2NpjfVkPmGyWSWSbDE6EGTtmxofAIoJ0T74EITRrBihdTMja13ZQ4ZT6UaJrvp0cQZDwoYEgHNqCIhQKExMBv67FtdaMR9tdhWZjYyvC8tl6mwKAIhTssEQXjXNsNrMJ6q9WoFKtbwKLN/kAJDAgGYihECon1ZYTeYTaa+WicSv1bXpNICKcKgVwuFYXTRCLcWdoDV9atvLUHGE4WsBgi0BAEJIExuYIhAKR1ZM19VgPjp1lUpp1VW9btJbBwCMAiEjBJGIe0dzP1SsBvNxAQja+fW8thwAkNjhUATCNWiC1WA+2vtyuVj7Ors6o2VLAgD1bSyGC1T8r9Uq7pRLRaiSLfbW99qaAACAWNQfAKvFfGR5sbi87tJP8mmNUgtYaznwA8BqMh/nWioVViWxUysdtyQAMCyMemiA1WY+MqlcKZPQb72vLQcA3NQiHNHnBNayuNMIWmBLAaCRmE9SE6ZJIoHVyPEH1SxbBgBYKIqEo9r+grWUfCdz1tMcbHoA4OY3GPN71QPWk/kcDJgXqFRQG6zttWkBQPP/0UCFoOef2QePH5LP5tGxYaXr9IOylRSE0EFcoxzBpgIAYXooUnOTyOCOTvi936bH0Xhdq8188d28+YP0AqxidXDDAwBtez06g/y0wFoy3wlCqxOoyjqB6tgmuaEAgF482aaO9QfWs86PRH/p4wdg5OF+lxJYT+arNBLp7DWrUOENn36qy+P3hgUA7/sjbV6E62vTDOrUBFjT/7fXzsLC4vIDkHl1HxWbQwG1BATvF1w3AFht4NgEHiIsZiHa2jDaiyXoExx9chf0dCfXZJOG1YIHBwaGFggJae0HPQWA7g9Ab3QEIA9qZxTxzGZZBLJaDFuPcbeXhq0H1RvonVoAdCQMaE+EyYqSnpYwxCOYUjEgUq1AeGkRUnkTZnO0mDERCrbXXQPNe/tTGAUIAB7qjMCu9hh0NRvQkjAgXinDwmQaqrksGNklsmNYS9n/pA48riRlxCEHYZgNNcGE0QIz4WDHzW5zZH0oYJTPniTWP4NnyU7MQDSb0x7/gp/ITyzln0s3e6bhGTf75DhJ9h8ExYyRgJuhVhgPt8GysfKmzPUh0eZ7a2fCgP29cRhsC4Nx/e+/Z7bmFrT7AlpMJ0ymRxMGvexTrfhJBmgumuFKuAOuhNuDDrN9Xx0okIgYcHggDvt7I9DdFCWh4r17qOEVJ4bwY19qZbjnd1onhVAwLBkRGA13w4VIVx2mtz2EjgIDyTAcHYrBvh48h8kkB3jdml6E0PU70L+8IAPAku5VXpLNz7PBj87BNhBWA767O6Pw3K4E9LXgMnvK2XuzS1C6eBW6y/bBEnS3cHK4RG3qvS4fLWwxnzZicCqyA26H7YOr6vKOLTYI2vfPjSShL4nJNSpq5XwJbl64BcMLsy5qGNkTrxAArOdF/UV6pMxYqB1OR/u2ncUaGYI2/tP7EkzV8wOATLh7fQ5abt1Q+3iYCcydeMW/B8GRJSQpRHbSi+d3CvfR3L4P1Njp1mgW3ogMb4eQAUFwoDcKL+9rgkgYtXiIOHh43TpzDXZk7rulnvvkqPV1AKDHzGKKOOBXBLiNn19DbtWYHPI69tKT0X74MLztJOpIK0s9O6/RAMjnSpA5+xF0llTH+MpH+MoA4OfLB5Fuchol3TpedXUoX+6+U68ZKPg+iHTDqYh8fGoArG36W9C7/92DLdAcY1KPpWEDIDOdAfPSVZfK1x0eRQCgOv7dScFMtAkqySQk+rog3prQHkwsPlfJF2FhLgfL8xkwFnLQVMpDQtELrzt4kn/XjVAS3ojt3PRMDTpBUeXz87hJMm86A+GPLkunhlmWl+VxnO8wcie+ruU/HvQU7uuC3r1ykwTZ8o1oC5RStV2nf6U7PIkvSM9kYOn2DCSzCxB3gMECguAr8MMmrxvbIECKPjkYh08+xJa1sQ20vJhPAKDxvwhtnYkgPP4l190DfY8M0qNcLd3BU74riBks00L3BOQ9bqmJFBQmpqEzl5GASV8pHHrInt/qIHhmZwKO74pTWj0A8+0MrXBoFDI+P9BPTvLkFxXEFTDcV5fRkI/7l0uZPCxcuukCgoTeLQ6CZ3bF4fhOt+RX8iXInj7vMq1KqcdsrJ2Vp754+sQ3TH6YI9UU9pHtvnx80BsIU1Er0IYUFRAkbcBAcD7UCaeiwY5eedBPbITnRbVvhd9MLufePucq3umYTwp2zr6f5ZNvmajqqbSt4GDgelDIcegkmobw1WuSj2BNioHg3cjWCBHR2//CYy0kxuemnDNxcnQculOK7J6Yb/E40BN9PKN87hSJAhpiS1ZeVmYfPfn+FehemLdNkkgBA+DVyJ5NnSxyMp/W4qkIz0+koOXyZZf4SdJvFeDk2/BAz6U9u4lzb5RHT9bn6FjLotfBZyD+AZ3ozK15SF4bhwhbHCFqgqIRgu/H9m3atPFXjiShq4nlWYS9flV23xlBiQk1kf2Yu2l66iAJ41HoiQYIrsUtEXWFd84xLI3CIwBNHKp9twACzCek37sAyUqRmSqaSUTNdS/UBK/G9gSfwga58+N7EnBkiHr8xC/DtQBMtTtVvyt8ZjR32ntkfsczj9Hojpl7fwBQKPkyPChd7bAygKYQ7BeC4P7Zq9BZWJRAgN92JtwD70d6g35Cw9+Hqv9Lh4U+S1J8oXKKjnL4zHm36ud2X6P20d7vOH6QmXpbnWgBQGsBdA276sovLEN+MQ/L6SxUS+6dLpp7O6CptQma2rz24hFifU+2oLTTAsf06UtWuMjNAX7iv0d3bxp/QFT9NHNv82DmnfPQURTq+c5QXQEAlPzuF4+wnI4c2bsBoPEa0e7cuz4FkM5AayHvSjfq+Ic9gdnmVjA626BnVx+Em+TTSIM3odiFKREEREWiU2TE4UfxvQ0v3X4fKKv+EJCVPoxImOpNXLwkDSE6fSph5Wo/0hy3ejfFARwAYL06gtSjt1lUZOu4HmaaSZ4XaxBVlYxRFbU/PAxNPa2OiQQJQdUgoLkNA94Pd8HZ6MYtHGF170+PtdohH5F921SqgG+V2BV2H7194+jjzOHjouJgFXECFVKPtiZzYRy6lnPWE9gryF0C39o+e8r2RuUU1HyiBdofe9hVVPLvG7BBMPf2KHEMuRO0DAb8IP7who0KnI4f8kXMloq235mlVUl/emiIZHbpcT1qU07CQOdPk+euQ/f8PRsqhHdB7bVeyRH94kBqqr0Ldhzbbz0ULBNJQeCKDgwDroWS8PNosM0e/NTxWv7ukn4kVsgupE2euQLdGZoTCRLypeKtsOOFR33zO1YiiHuY+XNjVmrRVZSpF0U45FheIxuOQ+TAXmjfYbeK+9YhmHRgdTF68TLLE1B1+YP4XsgYte8HXK/prWQcSfqZthYlM/PWGSnfLyXuFI5f5dhhqvotxCi+Ch39EiaCWGYpduWq4NzJnSMrmZTfM2IvIDqLuaFB6B+xpTcoCGbG7kDH3bvMKhkwHmqFX0SH/F7fUL//+fE2y/bTpLyt/hfvzkNs7IpS+mlZXs7xWyGfV2qfhXkEAE7v0t8OC7TThIlBfQQcidf8caj08HBwELBiEoaI0+9eJDkCaq0M+EFs42gBqdjD0r2iWZbUv0OiVbY/8twRiDQnyCYSSj4IGsOY/dnPTLmLJICt9ygwcGiI/X+BAEXqEbSvzQkCIhG6vBHLGKI/sPyr30AUGyJNgAvhDngnOtBQUq77mC882gw7O3h4jHOVezGlip+jl5KywoZLIOlnQkewlDrxDTPKkizEy/dJ2YrSGpS63GnxXXsgIFMEAc0e6lsTuBRMfXgLuu5NES2wYETh+/GHg37iut2HffxfPdrG1Dv31u3EF+ZfyqfOSk6y/LEyWBYf2gO9+wZYx5ZbakSNgWM7OoK8JM3dTFAr1XS9f9I4AghwMj177bq/V8WST2zm/85DJ658MQHeiA3B9RAlbqNeYqMHD9dEJs1en4bWGzcpQJzqn9pPa2rY1NP20jG948fsviUwJz8UAEDyMBo9q8kvr5SovtEFMwcFCEGIJTIoATySRcwUYC9BMyuT3jSS8Hq8sZtJnWlf6tDZTJULP7KAatW/Mz1s6w8rpc7LyZYG0NppDfMRbQtdvZDc0QEd/Xb4hrZ4fioFpbkMtC+mrTKuDixaqWbe7WIoDt0vPiVMwStjSFUn1wIFCMM/xu0cw0oBu1rPYez/Z8/I6t/JVJwLb7F38cjBm/m+ARh4fLc69ndIP68p0LWBWsRQB0N09DG9KLaQ+REHQ7SmqRlXBzB/zjtOpaHQXGcPDB6h9tyzcYVNcv7OPNMCBvw0uhMmGnS9IbZ3f3Z/s8P+qx1AJY8cAMiNjED3Tt1CGntcsaJoLQ5VudnOpgKxmcCP8c7fp0avQVfKvUxJZdtUPgFPbNDf/KOCBZY4+SDcCScbtH/wM/ub4VCv6P3zJZKCXX/zNJ+y20Q7ABB/+bg+7Svcy51lQkneFq6ULOEhVPktx58gzQQrvdA+Y7KJd/eI42i1EDMFqWgT9H/8cGAtMD12BzrvTsBdowVei+1a6Sev6nOy/be3XxHLv4VaAeDhJ3HfgudMBADoJEpQGyMj0DncqSSIu9hghzHOBzB1W7l0zerucf6uAiL/cFRxXdY3eGuBcr4A5VOjxK39u8TBVWXkSgf/i+ep7yTTT6ZdUACgaW751NNa7Sg6lpJfQTWAgpgO6cfwQpZYVt3T5Q3Y87S4I5eb0AaZZz90aQLVyiD+TpSKtKgFKOXUtGfvRqR3FRbhX2N7YTbEFlSslFt1fk7s+nGFd4xe85NpaLk0FsgEENp8AjWkWjBEHoh1BWYC3A+J3uhcexcMChU7X7stEktI14p/los4MnW9tMDyowetopGfAzl9eYKYgbeig2TfgUa6cAePPzjEHECH2ubMmr+bhpYxPQCkJXc1AMDSKtwHUBFSBAAPLzgBA6V2XdR2LzXnRRyXGdBINxZI5pppb5t9iz5HXF4qEjNwNtIN7zfYCmO59m+JFJmXBQBBA6h8JJFHuXAcul58yiqIqcDOx0UHma/L1EYBYgQgAyBArUAram4QiA6JBTBNWIoTwKph07NPkdYyPyDi/Tj+bDkEb0YHG0kBgDICYF8oSrYkrU6TV0MU4OkD0FS7Kg9IGcbjcL+kDc3X6ySSzk7lD6i6XKmEy2NxUGZ3DkP3flo29gIBvgsjj4Urt+En8cZqHf/jw63Qn6SLZWW7rXECtXO1hYqGgf7ZXDG76JMJpIMvhyLQTnLMQhaOVo1YLdp28qzCDV++qpE7Kd0pdLuItyt9ATAhJZgB75wADagunbkBPy801k4jWgAI6yGQFsVfnpYScW6hsFfZeieCaN0A6eFKBGltu9BsQKpMeweszYHUHWY2+zwreI60pK7XXRed4IqgJAl5gtUHyhUT/vb0QkOZABEAkhZzAMAzFUxVqlUM5hVUbc1EGJv3GEjVQGUYJhRmKo+O0Ly/IrTTUVdfY7CXf+Gz4kS1gLSKXybwaCBIhRDH++uT8h4E640GKQkkqG1nLUBaB6HyjQQA2Is/9E2gKDLiGgvj1re/Z4oLMJV2lb2kbBqQ7uqGajgK0UQM2ruTrvZuFWGVIHAWJy5PQMfEhPS4LjuI5sOz8GE5U0REyP8aDQA8CeSit0MDuFYAKzbXojuAAnGQUTP61UtE7U1awtBRKl6/bVWdJDvM/pMLRaC4ezckb96gXTcESSbkjQgUhgagf8S7B09dzLC1gNYMaCYsh4Nqx4dL01IR4DvvN5YGEAHgNHWif6RaBexmsO0I8h4KzwKfIHxWUyjyGZmwODUL1aUihLNZqMZiYMZi0NLfBe3DXcTeTI5NQNfdCdv7FnL1PccOuVb+WOqc94iJXqqzmvXLX2vqBM5owIR0hGe+9H4AB8BMtgo/PE/XFDbKFRQA+L1yKGjpDHsqoh8QozUT3+X+PFOrWhfgJJLo0JWWCrB86hzgftMcuRyx2N4t1u6V5sAZ2glp4imWunVpIFdoQzUPRib00qU/qQlodAC4nTY5FJx85yJ0F20AKxN3wp47hQMj0DbU6ZkUImRD/45uEKFfCKry5iffuUBy7DQKpNLJ7ZBYuw8CANEpmTg7Dr1px44Xqk4lhl6Me4MAYPRuAd652Vinfn31qSR0NtO1/14qHX+fcflH3qn7tKgFOHM1qk9eG8jUOT1Oih8rJT+JaJESCXQGVoJHzNQFAoDg9KwUAHpnkWqARgSAnAdwgMBhGnnHs1RGV/hGJCBkHl4QJ5mwrqYNItiHqfrUxNSxu61bVuqyRrcdGCUAVBLi0AC6uJf7AKfvLMN7t/2PvFlL/8AJAC9HEL/LtTBUERKKISQKYuXQCCmceWVLawMAaw+TGgqYBhDNAI9H1QR1qq+VAyDywjEIxyMezaJ07J98tAS3UqW15K/vu8RiECWhHLs7U+ZYPW26oF8abr1Q0B6YwU0eP8zqJupeyhoBQHP52V/+WtofgNswjkBvZ9ABgBWYAP4e7gPou4lomNmIAJB2/PTQciKSnM6g6IOJABCXiiEv6LYw6uJZcAAwRon9ZC4HTECf7aA5haEOAGC2zs8JpLeZ8O33FmC57Je89hXaut7QGy7DFwZKkNgt7nfopI3YHKbeHkaXZBNnK4HAEY4HBgBKvmozYjmPbX9wcADYz6jCQHWIR1W7PwBMmG7AHABH0pfKN2Hg2UMAMdoY6tf2rfUFVFVYhyMprsAWC3ZGeZTtEqZMptFYH5mv3pJUbc/5CpUgUYCuTs2f1RGF73vjHQaa0IgOIJ/bJ4uT0NcetVreg4BAGRFo2uWddQV0DJf37LJWW5Ft4vjycK82LMwQivsG2Ix1rFRhqtnuT5Mh4GoedaBUzHj5AUB8hy7rheD6l/NZmMpW6qq+6zXY/koanivdg/aXP2YNqQK8s/iGeyd2jNPl4lo64Q8syeY0fnNtXdD/2EPUL+AAUE0KVX7+5qRyE2eVaubSrEsGue2VHQEE2vmSfKTcpEKkRtUEYQLkimbD1QBEOifMMnx5eRzyO4fkJfF0UvatjgIR/iAuGZeAoKSF7Evg/RghLA8O0HUBmDmqJO1Nm8LZRUiUS8rDHXSIE1V5/rGD0nIx6xln7CpogED73goAsGrfmg4Y/J7x+TL81yV7j6N6SW49x/mt0gQMVPPQ8Sm769pLG/N3O7fHWQkICM5UB0f6TUYuCjYAAACJSURBVFCtpqjG8bT/IrId6l+567UHYKwtUHQbIJkmvH5lCcbuN1b876QtmoGXipOQ2bnTe2MMR/kcx9GBwGuRjdMc1AQAfd++rcp1WUC3+rcLHqr97whWnKqQqX/RAfQqe37z3bQflhvi968UrgKmgVqfpUkby6y58vjuplqtU+iinWBRhALc/wO12IHU2e1g2wAAAABJRU5ErkJggg==',
// 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAALh0lEQVR4Xu2da0xcxxWAD699AGsWzGNxgw3YGDv2JigOBcuWoM4PbNWFuorkEEu1asUJVGoj0yatU7UOP1yrbWSaqhJ24jShUsCWkBBuKuLKscGqVRyXaCMDwbiQpanMAgZvYHksD7s611nMY5e9d+/cuXO5MxJCsDNzz5zzzTnzurNhHYXPPQRK6WL5EIzYZik9jY3HFFcnQoIrig1h/EgRRhOAznwPfLpvjFllkBYs1h0Bz1clk66WaH1UARixzcDF8ntEG8ByZZscZtjdYGVZRKAKAGqi/tggeKxzTCuFlHB76uJhfZeJVHWK1EMdgJv7RqEjf1yRxrBWaempFDBOhbMm1iJ5qAOglzCQ4IqE4uokpo2PwlEHQC9hYFtrDOQ2reEA+NOAHsKAFuK/ah7AY52F+mNDzPcOOQJqIf6rBgA+eDUvCmkl/qsKwGpeFNJK/FcVgGnTA6g9PiDHyzJbdleDFbIcZmblWyiYKrMAnwAzLxfB9S3t4Bz7tyaUJUZIc6QFDpxOAMPwtJjsqudRFQBzXh4k//pX4Bxrg5b+c5oGAQ2fl/wC5EaXwNCho6obVqwAqgKAQj7xl3chIjlFkLd1oBauuc7B5Ky2Noy2xBdC8frfAELgvdUOruNviNW/6vlUByCu9AWwHnpxXhGuiW74650yTUCABkfDIwC+5P6wFr6uO6+6YcUKoDoAkSnJ8K33zi2SVwsQoPF/mHUGbNGbF8l+r+qPMP7JFbH6Vz2f6gAkHH0JLCXFyxTRdb8ZLvS+prqCAgnwytYPlxkf80739oLrl2/Aw4kJZmVXfRYQmZwE5vw8iPt+yXz896etmu5yJgeGe9MqIC+5NKCBH46Pg+fyJzB2+TLMfOlkGgQqHiAqIx0MmZlgfsoOJvv2FY2+UFs4O6jpLmNKgejysfeLTQjDRGsreHt6YLr3S/C2d4gtSiUfMQDQyOExMWDIzIDwmFgwbsyEiORkwfBy0tvtJeD23pVTBdGyBze+BVusBbLqxDAxNzgI3p5eeDDuEcDAv2cH6e+P+AXAZ8yFrTTZ7fN/onHRyJiM9u2ylBGs8KX/VQnTQxYSDvxef1r5AR5OJTEhHAiJL03durVIDSSgCfN4xqmdCg7FiI7hv0Oj881QihIvk5O4H0o2nCBer5oVMg+Ac7QNau6wMQ4INvhT05ChPpt5ADD+4ziAhXQ46wykr9nBgijEZGAeAGxpZVsusQbLqejV7Y1gNa6TUwVzZTkAEkxyYsdNCbm1kZUDIMFOHAAJyiKZlZUQwAEgaVUJdXEAJChLYlYeAiQojHsACcoildU1cQfOfvH4vACpekOphwMQitZklmFpIeiVrbVgi86S2SK2ijMfAlgCgC8EqQAvB0BZpXMPIEG/3ANIUBaprNwDkNKk/3q4B5CgX+4BJCiLVNbmu+9CS/87pKqTVU9B6stQuE47L32IaSzzHoClI2F4Iuin2xrBFGkRo1tN5GEagMa+SnDc+4gpReKhUAwFqwUCJgHA1b/GvjcBXxBhMeGZgKInKmQfDmWhbUwBgIa/MVTLXK8PZKh0y7Pw9Nr9kLP2uyzYMiQZVAcAjd7lbobPRz5i6vi3FG3i2CDbWgDZcYWQHvuMpsIDVQDc3n7ByE7PZ9Dn+QwGJm9r4iVQKTBgXhwnCD/mzZBi2sz0OULiAODCDaaBqW6YnPUIv6dmPUy+4iXVsHLyo5dIMWcLYBjDY4WzhdYoG5gi16i6wRTWfvfaiu8F+Ay5sPFfz9wFt9c1/6/VdMOHHCPLLStAYXh86NQHy8J68X+m8Ecv5ZBIYa+1PMn0iyEkGsnrCKwBDoDO6eAAcAB4CNAzA9wD6Nn6eFs4HwTqmwAOgL7tzz2Azu3PAeAA8IUgXTPAxwC6Nj+fBejc/BwADgBfB9A3A3wMoG/782mgzu3PAeAA8HUAXTPAxwC6Nj+fBurc/BwADgBfB9A3A3wMoG/782mgzu3PAeAA8HUAXTPAxwC6Nj+fBurc/CsAkOCKhARXFMS6IyBqMgwSXIZ5ZeFnxqlw8JoewIhtdpESBzK84LHOgSd+Du6nzIDXxF89ZJmy+RBg6zNAWqdRMHSq87Gx5Qrvsc6CK30aXBnTwm+Egyd2NBDWVLbrYYrTIPRoGgmB6Nw5Af/dMsVhoKHwFZ6xyWEGYt8cGkpbRmwz0LlzHP6TMxlKcV4mBA1gSM+5GgtpXSah06sKgE9+n1fozB+X1CRTxKP7+qbmxiSV02PmVKcRtv4rGtZ3mRY1nwkAFoJw/cAo9Kd7l9kIjb3B8oxwNVt2XAGYI9csyjM5OyrcO4QXTt12X+NQfKMd7PG7GqwBx3VMAeCzaEe+B27ue9yr8avaC1JfWmb0QD0ZYbgxdB5uDJzXLQjGqTB46mosbGtd+ToZJgFAw+IgsfNIEhzc+IeQv6wRQbjQ8zr0eR5dXKWXhG5+V0OcqIE9swBE78yHuJ/9BAwm+ffyNjorwTHM1pWzSsCIvR7d/dI4v9KzmATAaLeD7dRJojpa7RDg4tyeuniIdUdK0htzABgyMyDltychPJbcVWg+jZztPASuSTbvH5ZktSWZcT6/u8EaUhXMAZBy6iSY7PaQGhOsEEvfRB5MVrGf5zZZgg70NBMClHD9Sxv/8Ven4cZgnVj9Mp1vd0McbHJEy5KRGQ/giZuF1D//CRLiN8lqULDCODP4/efPBcvG9Oc42Ct6f62wWSc3MQFAZ74HnHstUP5so9z2iCr/we0yzU4NSRoflaUqANPGB3D1Rbew8oeLPXvTKkQZUG4mDAEYCrSYiqsTifR8X9tVA2A4ZQb+cWR4/rxASfoJyFm7n4pNnGNtUNNdRuVZJB9CIuYvlUcVAJYaH4U6vPkMpFt2kNRXwLrwq2jOfnGIyrNIPUQJ46sSAvwZnzYA+LzKtlxStlG8Hjnz/GDCUfUAGPM/PjK87BgZbQBw+/h3jj3BdMPE57iNW/R+gmKyUAXgnwfcAQ9/0AwBWhkD4Fbu96oTRW3qhEoINQDQ9f/tx/cCyknzWzm73C1woefnoeqMWjmc65M8n+lPcGoAXPrRiN+DHj6h8KDHwY1vUVGuFlYD8dhWTrP8ndBgCqUCAK7y1VcMBZMFfpFzBXzHvIJmlpHh7VvF4J7ul1GDskVxZ6+4OknZh3xTOxUAbu4bhQ4R5/1orAWwHv9xpQ/jvtRt3VBpoQJA/bFBUUfAsfe/am9U1AuwviVMy/X7gFEcALHu3yeQkoNB1peAabp+agDgRs+nCw54inFVOBjEQSHJhAdBam6XMX1IlMaof6lOFfcAjsIxcHzHI8mWGAoOZ58RvnqVRMIBH7p+lt8fUHK1byUdKg5AsOlfIOEQgqK0CtkbRFro+bQHfgt1rjgAYgeAgUDAbeLCdUclDwyxt7cOnIeW/ndIOBFF66A98KMKwAeV8ufb6A0QhJzE/WA1pK5oDHT3ONW79NVppl2+rxHY+39Qlazocq+qIYAEAAsbgOOCDZYdgkewGlOF37i9i+m2u1lzp37xHH+Ww6yoh1lVAKimKQUejL2/9JRNgZrFV6n4GIC0BxDfNPZzqhn7qa0DcAD8g6h27OcAqOwgWOj9qAIeAlQAgZXeTwWAi+VDfo+AqaB3Zh6p1qqfPwUo7gFCXQlkxloKCPJ8VRK17d5g4isOgNizAMEEXS2fK33IU6qeFAcglM0gqY3QUn61F36W6kpxAPCqlyul97VkI8VkZWHhhzoAeAVc/bHg5wEV0zpDFW9rjYHcpsW3m6ktnuIeABtYd9zF7wwGANIvdpKAhwoAfCYAoMZxLzGAUAGAzwQAvt1kgSeD3NknxmCk81AB4E7OJFw/4CYtu6bqY2nuv1BxVADQ+0CQVfdPZSnYR5vco2Ga6u5LhGXV/VMFQM/jAFbdP1UA9LogxLL7pwoAfr9Q3fEBLXvykGRn2f1jg/4PMsAZ3SnBi5YAAAAASUVORK5CYII=',
// 'data:image/png;base64,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',
// 'data:image/png;base64,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',
// 'data:image/png;base64,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',
// 'data:image/png;base64,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',
// 'data:image/png;base64,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'
];
this.letterTextures = [];
this.presentTextures = [];
this.scale = scale;
this.font = font;
for (var i in this.wrappingImages) {
var letterTexture = new THREE.TextureLoader().load(this.wrappingImages[i]);
letterTexture.wrapS = THREE.RepeatWrapping;
letterTexture.wrapT = THREE.RepeatWrapping;
letterTexture.repeat.set(0.1, 0.1);
this.letterTextures.push(letterTexture);
var presentTexture = new THREE.TextureLoader().load(this.wrappingImages[i]);
presentTexture.wrapS = THREE.RepeatWrapping;
presentTexture.wrapT = THREE.RepeatWrapping;
presentTexture.repeat.set(1, 1);
this.presentTextures.push(presentTexture);
}
THREE.Cache.enabled = true;
this.container = document.createElement('div');
document.body.appendChild(this.container);
this.camera = new THREE.PerspectiveCamera(30, window.innerWidth / window.innerHeight, 1, 1500);
this.camera.position.set(0, 0, 0);
this.cameraTarget = new THREE.Vector3(0, 10, 0);
// SCENE
this.scene = new THREE.Scene();
// this.scene.fog = new THREE.Fog(0x000033, 80 * this.scale, 150 * this.scale);
// LIGHTS
this.dirLight = new THREE.DirectionalLight(0xffffff, 0.7);
this.dirLight.position.set(10 * this.scale, 20 * this.scale, 1 * this.scale); //.normalize();
this.dirLight.target.position.set(0, 0, 0);
this.dirLight.castShadow = true;
this.dirLight.shadow.camera.near = 10 * this.scale;
this.dirLight.shadow.camera.far = 100 * this.scale;
this.dirLight.shadow.camera.left = -20 * this.scale;
this.dirLight.shadow.camera.right = 20 * this.scale;
this.dirLight.shadow.camera.top = 55 * this.scale;
this.dirLight.shadow.camera.bottom = -10 * this.scale;
this.scene.add(this.dirLight);
this.scene.add(this.dirLight.target);
//this.scene.add(new THREE.CameraHelper( this.dirLight.shadow.camera ))
this.pointLight = new THREE.PointLight(0xffffff, 0.7);
// this.pointLight.position.set( 0, 20 * this.scale, 5 * this.scale );
// this.pointLight.castShadow = true;
//this.scene.add( this.pointLight );
this.scene.add(new THREE.AmbientLight(0xffffff, 0.3));
this.group = new THREE.Group();
this.group.position.y = 100;
this.scene.add(this.group);
this.plane = new THREE.Mesh(new THREE.PlaneBufferGeometry(1000 * this.scale, 1000 * this.scale), new THREE.MeshLambertMaterial({ color: 0xffffff, opacity: 1, transparent: false }));
this.plane.receiveShadow = true;
//plane.position.y = 100;
//this.plane.rotation.x = - Math.PI / 2;
this.scene.add(this.plane);
var dir = new THREE.Vector3(1, 0, 0);
//normalize the direction vector (convert to vector of length 1)
dir.normalize();
var axisHelper = new THREE.AxisHelper(5);
//this.scene.add( axisHelper );
// RENDERER
this.renderer = new THREE.WebGLRenderer({ antialias: true });
//this.renderer.setClearColor( this.scene.fog.color );
this.renderer.setPixelRatio(window.devicePixelRatio);
this.renderer.setSize(window.innerWidth, window.innerHeight);
this.renderer.shadowMap.enabled = true;
this.renderer.shadowMapSoft = false;
//this.renderer.shadowMap.type = THREE.PCFSoftShadowMap;
//this.renderer.physicallyBasedShading = true;
this.container.appendChild(this.renderer.domElement);
// this.renderer.shadowCameraNear = 0;
// this.renderer.shadowCameraFar = this.camera.far;
// this.renderer.shadowCameraFov = 50;
// this.renderer.shadowMapBias = 0.0039;
// this.renderer.shadowMapDarkness = 0.5;
// this.renderer.shadowMapWidth = 1024;
// this.renderer.shadowMapHeight = 1024;
this.onResize();
this.moveCamera(0);
}
Stage.prototype.setPlane = function (physicsPlane) {
this.plane.position.copy(physicsPlane.position);
this.plane.quaternion.copy(physicsPlane.quaternion);
};
Stage.prototype.moveCamera = function (x) {
var newYZ = 60 + (x / 2);
if (newYZ > 60)
newYZ = 60;
TweenMax.to(this.camera.position, 0.4, { x: (-10 + x) * this.scale, z: newYZ * this.scale, y: newYZ * this.scale });
TweenMax.to(this.cameraTarget, 0.4, { x: x * this.scale });
TweenMax.to(this.pointLight.position, 0.4, { x: x * this.scale });
TweenMax.to(this.dirLight.position, 0.4, { x: (10 + x) * this.scale });
TweenMax.to(this.dirLight.target.position, 0.4, { x: x * this.scale });
TweenMax.to(this.plane.position, 0.4, { x: x * this.scale });
//this.camera.position.set( -20 + x, 20, 20 );
//this.cameraTarget = new THREE.Vector3( x, 0, 0 );
};
Stage.prototype.render = function () {
this.camera.lookAt(this.cameraTarget);
this.renderer.clear();
this.renderer.render(this.scene, this.camera);
};
Stage.prototype.onResize = function () {
this.camera.aspect = window.innerWidth / window.innerHeight;
this.camera.updateProjectionMatrix();
this.renderer.setSize(window.innerWidth, window.innerHeight);
var vFOV = this.camera.fov * Math.PI / 180; // convert vertical fov to radians
var height = 2 * Math.tan(vFOV / 2) * this.camera.position.z; // visible height
var aspect = window.innerWidth / window.innerHeight;
this.width = height * aspect;
//console.log(vFOV, height, aspect, this.width)
};
Stage.prototype.createPresent = function (sizeX, sizeY, sizeZ) {
var geometry = new THREE.BoxGeometry(sizeX * this.scale, sizeY * this.scale, sizeZ * this.scale);
var texture = this.presentTextures[Math.floor(Math.random() * this.presentTextures.length)];
var material = new THREE.MeshPhongMaterial({ color: 0xffffff, wireframe: false, map: texture, shininess: 0 });
var mesh = new THREE.Mesh(geometry, material);
mesh.castShadow = true;
this.scene.add(mesh);
return mesh;
};
Stage.prototype.createLetter = function (letter) {
//console.log(letter)
// return mesh;
var texture = this.letterTextures[Math.floor(Math.random() * this.letterTextures.length)];
var material = new THREE.MeshPhongMaterial({ color: 0xffffff, wireframe: false, map: texture, shininess: 0 });
var textGeo = new THREE.TextGeometry(letter, {
font: this.font,
size: 6 * this.scale,
height: 1.5 * this.scale,
curveSegments: 2,
bevelThickness: 0,
bevelSize: 0.1,
bevelEnabled: true,
material: 0,
extrudeMaterial: 1
});
textGeo.computeBoundingBox();
textGeo.computeVertexNormals();
var centerOffsetX = -0.5 * (textGeo.boundingBox.max.x - textGeo.boundingBox.min.x);
var centerOffsetZ = 0.5 * (textGeo.boundingBox.max.y - textGeo.boundingBox.min.y);
var textMesh = new THREE.Mesh(textGeo, material);
textMesh.position.x = centerOffsetX;
textMesh.position.y = -1 * this.scale;
textMesh.position.z = centerOffsetZ;
textMesh.rotation.x = -Math.PI / 2;
//textMesh.rotation.y =
textMesh.castShadow = true;
var letterContainer = new THREE.Group();
letterContainer.add(textMesh);
//letterContainer.add( mesh );
this.scene.add(letterContainer);
return letterContainer;
};
return Stage;
}());
var Physics = /** @class */ (function () {
function Physics(scale) {
if (scale === void 0) { scale = 1; }
this.scale = 1;
this.scale = scale;
this.world = new CANNON.World();
this.world.gravity.set(0, -40 * this.scale, 0);
this.world.broadphase = new CANNON.NaiveBroadphase();
this.world.solver.iterations = 10;
this.groundBody = new CANNON.Body({
mass: 0 // mass == 0 makes the body static
});
var groundShape = new CANNON.Plane();
this.groundBody.addShape(groundShape);
var rot = new CANNON.Vec3(1, 0, 0);
this.groundBody.quaternion.setFromAxisAngle(rot, -(Math.PI / 2));
this.world.addBody(this.groundBody);
var groundMaterial = new CANNON.Material("groundMaterial");
var ground_ground_cm = new CANNON.ContactMaterial(groundMaterial, groundMaterial, {
friction: 1,
restitution: 0.3,
contactEquationStiffness: 1e8,
contactEquationRelaxation: 3,
frictionEquationStiffness: 1e8,
frictionEquationRegularizationTime: 3
});
// Add contact material to the world
this.world.addContactMaterial(ground_ground_cm);
this.world.defaultContactMaterial.contactEquationStiffness = 1e8;
this.world.defaultContactMaterial.contactEquationRelaxation = 10;
}
Physics.prototype.createPhysics = function (xPos, yPos, zPos, x, y, z, angularRandomness) {
if (x === void 0) { x = 2; }
if (y === void 0) { y = 2; }
if (z === void 0) { z = 2; }
if (angularRandomness === void 0) { angularRandomness = 1; }
var shape = new CANNON.Box(new CANNON.Vec3(x * this.scale, y * this.scale, z * this.scale));
var body = new CANNON.Body({
mass: 1 * this.scale,
position: new CANNON.Vec3(xPos * this.scale, yPos * this.scale, zPos * this.scale)
});
body.addShape(shape);
body.velocity.set(0, -80 * this.scale, 0);
body.angularVelocity.set(((Math.random() * angularRandomness) - (angularRandomness / 2)) * this.scale, ((Math.random() * angularRandomness) - (angularRandomness / 2)) * this.scale, ((Math.random() * angularRandomness) - (angularRandomness / 2))) * this.scale;
body.angularDamping = 0.8;
this.world.addBody(body);
return body;
};
Physics.prototype.jump = function (body, amount) {
body.angularVelocity.set(((Math.random() * 3) - 1.5) * this.scale, ((Math.random() * 3) - 1.5) * this.scale, ((Math.random() * 3) - 1.5) * this.scale);
body.velocity.set(0, amount * this.scale, 0);
};
Physics.prototype.remove = function (body) {
this.world.remove(body);
};
Physics.prototype.tick = function () {
this.world.step(1 / 60);
};
return Physics;
}());
function init(font) {
console.log('init()');
var worldScale = 2;
var stage = new Stage(worldScale, font);
var physics = new Physics(worldScale);
stage.setPlane(physics.groundBody);
window.addEventListener('resize', function () { stage.onResize(); }, false);
document.addEventListener('keypress', onDocumentKeyPress, false);
var letters = [];
var count = 0;
var presents = [];
var font = font;
var jumpDelay = null;
var pauseTimer = null;
var doPhysics = false;
function onInput(newLetter) {
count++;
var x = count * 4;
stage.moveCamera(x);
if (newLetter == ' ')
return;
doPhysics = true;
var letter = {
letter: stage.createLetter(newLetter),
physics: physics.createPhysics(x, 50, 0, 2, 1, 2, 1)
};
for (var i = 0; i < Math.ceil(Math.random() * 3); i++) {
var sizeX = 1 + Math.ceil(Math.random() * 3);
var sizeY = 1 + Math.ceil(Math.random() * 3);
var sizeZ = 1 + Math.ceil(Math.random() * 3);
var present = {
present: stage.createPresent(sizeX, sizeY, sizeZ),
physics: physics.createPhysics(x, 30 + (i * 5), (Math.random() * 20) - 10, sizeX / 2, sizeY / 2, sizeZ / 2, 6)
};
presents.push(present);
}
letters.push(letter);
var lettersToTrack = 15;
//console.log(letters.length)
while (letters.length > lettersToTrack) {
var l = letters.shift();
physics.remove(l.physics);
}
while (presents.length > (lettersToTrack * 3)) {
var p = presents.shift();
physics.remove(p.physics);
}
// if(jumpDelay) clearTimeout(jumpDelay);
// jumpDelay = setTimeout(()=>{
// if(letters.length - 2 >= 0) physics.jump(letters[letters.length - 2].physics, 10);
// if(letters.length - 3 >= 0) physics.jump(letters[letters.length - 3].physics, 5);
// }, 520)
if (pauseTimer)
clearTimeout(pauseTimer);
pauseTimer = setTimeout(function () {
doPhysics = false;
}, 5000);
}
function onDocumentKeyPress(event) {
event.preventDefault();
if (stage) {
//console.log(event.which)
onInput(String.fromCharCode(event.which));
}
}
animate();
function animate() {
requestAnimationFrame(animate);
if (doPhysics)
physics.tick();
for (var i in letters) {
letters[i].letter.position.copy(letters[i].physics.position);
letters[i].letter.quaternion.copy(letters[i].physics.quaternion);
//letters[i].letter.rotation.x -= Math.PI/2
}
for (var i in presents) {
presents[i].present.position.copy(presents[i].physics.position);
presents[i].present.quaternion.copy(presents[i].physics.quaternion);
//letters[i].letter.rotation.x -= Math.PI/2
}
stage.render();
}
var welcomeMessage = location.pathname.match(/fullcpgrid/i) ? 'hello' : '';
var autoTypeSpeed = 200;
setTimeout(addWelcomeLetter, autoTypeSpeed);
function addWelcomeLetter() {
if (welcomeMessage.length > 0) {
onInput(welcomeMessage.substring(0, 1));
welcomeMessage = welcomeMessage.substring(1);
setTimeout(addWelcomeLetter, autoTypeSpeed);
}
else {
window.focus();
}
}
}
function loadFont() {
var loader = new THREE.FontLoader();
loader.load('https://threejs.org/examples/fonts/helvetiker_bold.typeface.json', function (response) {
//font = response;
init(response);
});
}
loadFont();
<script src="//codepen.io/steveg3003/pen/zBVakw"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/cannon.js/0.6.2/cannon.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r83/three.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.0/TweenMax.min.js"></script>
@import "https://fonts.googleapis.com/css?family=Catamaran";
html, body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
font-family: 'Catamaran', sans-serif;
}
body {
background: #eee;
background: linear-gradient(to left, #ddd, #eee);
overflow: hidden;
}
.form
{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
margin: 0;
padding: 0;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
h3, p
{
width: 50%;
text-align: left;
margin: 0;
padding: 0;
}
.fake-input
{
width: 50%;
height: 30vh;
border-bottom: 2px solid #333;
}
}
body:focus
{
.fake-input
{
&:before
{
content: '';
height: 80%;
width: 1px;
border-right: 1px solid #333;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment