// Compiled by ClojureScript 1.9.473 {} goog.provide('quil.middleware'); goog.require('cljs.core'); goog.require('quil.middlewares.fun_mode'); goog.require('quil.middlewares.navigation_3d'); goog.require('quil.middlewares.navigation_2d'); /** * Introduces function mode. Adds 'update' function which takes current * state and returns new state. Makes all other functions (setup, draw, * mouse-click, etc) state-aware. See wiki for more details. */ quil.middleware.fun_mode = (function quil$middleware$fun_mode(options){ return quil.middlewares.fun_mode.fun_mode.call(null,options); }); /** * Enables navigation in 3D space. Similar to how it is done in * shooters: WASD navigation, space is go up, drag mouse to look around. * This middleware requires fun-mode. * * * Navigation * * * Drag mouse to look around. You can change settings to bind * mouse-moved instead of mouse-dragged to look around. See * customization info below. * * * Keyboard: * * w - go forward * * s - go backward * * a - strafe left * * d - strafe right * * space - go up * * z - go down, can't bind to ctrl, limitation of Processing * * * Customization * * You can customize this middleware by providing map as * :navigation-3d option in defsketch/sketch. Map can have following * optional keys: * * :position - vector of 3 numbers, initial camera position. Default * is the same as in 'camera' function. * * :straight - vector of 3 numbers, direction you'll be looking at. * Default is [0 0 -1] (looking down). * * :up - vector of 3 numbers, 'up' direction. Default is [0 1 0]. * * :pixels-in-360 - number, mouse sensitivity. Defines how many pixels * you need to move/drag you mouse to rotate 360 degrees. * The less the number the more sensitive is mouse. * Default is 1000. * * :step-size - number, number of pixels you move on each key event (wasd). * Default is 20. * * :rotate-on - keyword, either :mouse-dragged or :mouse-moved. Specifies * on which mouse event camera should rotate. Default is * :mouse-dragged. * * * Accessing position information from sketch * * navigation-3d uses fun-mode under the hood so all position-related * information is stored in the state map. It means that you can access in * draw/update/any handler and modify it if you need to. Position * information is a map which is stored under :navigation-3d key in the * state map. Position consists of 3 values: :position, :straight and :up. * See "Customization" section above for more details. * * Usage example: * * (q/defsketch my-sketch * ... * :middleware [m/fun-mode m/navigation-3d]) * * See wiki article for more(?) details: * https://github.com/quil/quil/wiki/Navigation-3D */ quil.middleware.navigation_3d = (function quil$middleware$navigation_3d(options){ return quil.middlewares.navigation_3d.navigation_3d.call(null,options); }); /** * Enables navigation over 2D sketch. Drag mouse to change the center of the * sketch and mouse wheel controls zoom. This middleware requires fun-mode. * * Customization * * You can customize this middleware by providing map as * :navigation-2d option in defsketch/sketch. Map can have following * optional keys: * * :position - vector of 2 numbers, x and y - center of the screen. * Default is width/2, height/2. * * :zoom - number indicating current zoom level. Default is 1. * * Accessing position information from sketch * * navigation-2d uses fun-mode under the hood so all position-related * information is stored in the state map. It means that you can access in * draw/update/any handler and modify it if you need to. Position * information is a map which is stored under :navigation-2d key in the * state map. Position consists of 2 values: :position and :zoom. * See "Customization" section above for more details. * * Usage example: * * (q/defsketch my-sketch * ... * :middleware [m/fun-mode m/navigation-2d]) */ quil.middleware.navigation_2d = (function quil$middleware$navigation_2d(options){ return quil.middlewares.navigation_2d.navigation_2d.call(null,options); }); //# sourceMappingURL=middleware.js.map