given a line being drawn:
+shift
: angle lock (to the line that the drawn line is snapped to)+shift+mod
: length snap (to nearest power of 2)+shift+mod+alt
: length snap + angle snap
let decompress = require('lz-string').decompressFromBase64 | |
const linesArrayAttr = ['type', 'id', 'x1', 'y1', 'x2', 'y2', 'extended', 'flipped', 'leftLine', 'rightLine'] | |
function validateJson ({version, startPosition, lines}) { | |
if (!(version === '6.2' || version === '6.1')) { | |
throw new Error(`This track does not have a valid version: ${version}`) | |
} | |
if (!( | |
startPosition instanceof Object && |
import track from 'lr/track' | |
import ui from 'lr/ui' | |
import tools from 'lr/tools' | |
import React from 'react' | |
module.info = { | |
name: 'Fill Tool', | |
version: '0.1.0', | |
author: 'David Lu' | |
} |
#![feature(conservative_impl_trait)] | |
// without impl trait or box | |
use std::iter::{ FlatMap, Map, Enumerate, Iterator }; | |
use std::str::Chars; | |
type GetIterFnType = Fn((usize, char)) -> Option<char>; | |
type IdentityType = Fn(Option<char>) -> Option<char>; | |
type GetIterType<'a> = FlatMap<Map<Enumerate<Chars<'a>>, &'static GetIterFnType>, Option<char>, &'static IdentityType>; | |
const GET_ITER_FN: &'static GetIterFnType = &|(i, x)| if i % 2 == 0 { Some(x) } else { None }; |
fn fib(n: u64) -> u64 { | |
match n { | |
0 => 1, | |
1 => 1, | |
_ => fib(n - 1) + fib(n - 2) | |
} | |
} | |
fn fib_fast(n: u64) -> u64 { | |
let mut seen = vec![None; 1 + n as usize]; |
[ | |
{ | |
"title": "Magaz Stinged", | |
"artist": "Funckarma", | |
"station": "Klik Me Radio" | |
}, | |
{ | |
"title": "Rare & Pelentiful", | |
"artist": "Tipper", | |
"station": "Klik Me Radio" |
// i suppose i should put this somewhere before accidentally losing it | |
// need to update lr-core to have file import/export so this can work depending only on that and lodash and yargs | |
'use strict' | |
let path = require('path') | |
let fs = require('fs') | |
let _ = require('lodash') | |
let argv = require('yargs') | |
.usage('usage: node combiner.js output.track.json') | |
.option(0, { |
I hereby claim:
To claim this, I am signing this object:
store.dispatch({type: 'SET_CAM', cam:{x:0,y:0,z:0.5}}) // 0.5 is default, z > 0 |
store.dispatch({type: 'SET_AUDIO_OFFSET', offset: 1}) // offset in seconds |