<!DOCTYPE html>
<html>
    <head>
        <title>Boids</title>
        <meta charset="utf-8">

        <style>
            body, html
            {
                width: 100%;
                height: 100%;
                margin: 0;
                padding: 0;
            }

            #boids-canvas
            {
                position: absolute;
                top: 0;
                left: 0;
            }
        </style>
    </head>
    <body>
        <canvas id="boids-canvas"></canvas>
        <script type="module">
            import Boids from './boids.mjs';
            import {Circle, Rectangle, Vector} from './geometry.mjs';

            const canvas = document.querySelector('#boids-canvas');
            const boids = new Boids(canvas, [
                new Rectangle(-400, -200, 200, 150),
                new Circle(200, 200, 100),
                new Circle(300, 200, 100),
            ], {debug: true});

            canvas.onclick = ev =>
            {
                const pos = new Vector(ev.offsetX, ev.offsetY);
                pos.sub(boids.center);

                for (let i = 0; i < 500; ++i)
                {
                    boids.add(pos);
                }
            };

            window.onresize = () =>
            {
                boids.resize(window.innerWidth, window.innerHeight);
            };

            document.onvisibilitychange = () =>
            {
                if (document.visibilityState === 'visible')
                {
                    boids.start();
                }
                else
                {
                    boids.pause();
                }
            };

            boids.resize(window.innerWidth, window.innerHeight);
            boids.start();
        </script>
    </body>
</html>