From d6c3db8e4532727ffd5e0fcd01ff8ee6c0fb0d98 Mon Sep 17 00:00:00 2001 From: Lentil Hoffman Date: Tue, 30 Dec 2025 19:02:46 -0600 Subject: [PATCH] Fix options localStorage --- Readme.md | 9 ++-- config.js | 5 ++ display.js | 8 ++-- gravity-simulator-3.png | Bin 0 -> 177421 bytes objects.js | 14 +++++- options.js | 63 ++++++++++++------------- pointer.js | 13 +++--- simulator.js | 64 ++++++++++++++++++++++--- style.css | 11 +++-- tool.js | 12 ++--- tool/header.js | 11 +++-- tool/modes.js | 4 +- tool/options.js | 27 ++++++----- tool/play-pause.js | 50 ++++---------------- tool/utility.js | 100 ++++++++++++++++++++++++++++++++++++++-- tool/zoom.js | 58 +---------------------- toolbar.js | 17 ++++++- 17 files changed, 280 insertions(+), 186 deletions(-) create mode 100644 gravity-simulator-3.png diff --git a/Readme.md b/Readme.md index b6520d3..1ff4a50 100644 --- a/Readme.md +++ b/Readme.md @@ -8,7 +8,8 @@ Uses `npm` for `eslint`. Screenshots ----------- -![Simulation of a small body orbiting a pair of larger ones](./gravity-simulator-2.png "Gravity Simulator Screenshot 2") +![A small body orbiting a pair of larger ones](./gravity-simulator-2.png "Gravity Simulator Screenshot 2") +![A body orbiting a pair, all three of similar size](./gravity-simulator-3.png "Gravity Simulator Screenshot 3") TODO ---- @@ -30,10 +31,10 @@ TODO - [ ] Undo "Clear Traces" Action - [ ] Undo "Reset - [ ] Time Control: Reverse Time -- [ ] Save to LocalStorage +- [x] Save to LocalStorage - [ ] Lossy Rescaling To Widen Zoom (Handling overflow/underflow) - [ ] Track farthest reaches, min/max in each dimension (x, y) - - [ ] Enabling Zoom to Fit Traces - [x] Compute Net Angular Momentum - [ ] Display Net Angular Momentum - +- [ ] Calculate Work as FxD as measure of energy flux + - [ ] Option to automatically slow time when energy flux is greater diff --git a/config.js b/config.js index dfdaa70..b44f303 100644 --- a/config.js +++ b/config.js @@ -18,6 +18,7 @@ export const PATH_TRACES_DASHED_OPACITY = 1.0; // SIZES export const POINTER_HISTORY_SIZE = 20; +export const FRAMERATE_SAMPLE_DURATION = 2.0; // Seconds export const POINTER_DOWN_HISTORY_SIZE = 5; export const ARROWHEAD_LENGTH = 7; export const ARROWHEAD_WIDTH = 5; @@ -36,6 +37,7 @@ export const TOOL_INFO_CLASSNAME = 'lhg-tool-info'; export const TOOLBAR_CLASSNAME = 'lhg-toolbar'; export const TOOLBAR_HEADER_CLASSNAME = 'lhg-toolbar-header'; export const WIDE_CLASSNAME = 'lhg-wide'; +export const TALL_CLASSNAME = 'lhg-tall'; export const OVERLAY_INFO_BOX_CLASSNAME = 'lhg-overlay-info-box'; // EVENT NAMES @@ -48,3 +50,6 @@ export const EVENT_OPTION_SET = 'lhg-option-set'; export const MODE_MASS_GENERATION = 'mass-gen'; export const MODE_PAN_VIEW = 'pan-view'; export const MODE_OBJECT_SELECT = 'select'; + +// LOCAL STORAGE PREFIXES/SUFFIXES +export const TOOLBAR_EXPANDED_SUFFIX = 'lhg-toolbar-expanded'; diff --git a/display.js b/display.js index c97a2fc..e193d37 100644 --- a/display.js +++ b/display.js @@ -59,9 +59,6 @@ export class Display { fullscreen() { this.canvas.width = document.documentElement.clientWidth; this.canvas.height = document.documentElement.clientHeight; - if (this.sim.getOption('debug.canvasSize')) { - this.sim.info['Canvas'] = [`${this.canvas.width}`, `${this.canvas.height}`]; - } } fillCanvas() { @@ -160,8 +157,9 @@ export class Display { } else if (this.sim.panning && !this.sim.panning.paused) { // Apply update to viewOrigin based on panning const { velocity } = this.sim.panning; - this.viewOrigin.x -= velocity.x * elapsedTime; - this.viewOrigin.y -= velocity.y * elapsedTime; + // TODO: something with time scale? Panning is too fast. + this.viewOrigin.x -= velocity.x * elapsedTime / 1000; // millisecond conversion? + this.viewOrigin.y -= velocity.y * elapsedTime / 1000; } } diff --git a/gravity-simulator-3.png b/gravity-simulator-3.png new file mode 100644 index 0000000000000000000000000000000000000000..2d104ad989be04b12b1357d1f49bd29675988fc0 GIT binary patch literal 177421 zcma&Nby!qg)HaTwfKnnUEv+<2w{$Dr9ZGk@&?z7#AT8Yj(%lWx3^jCj4a^YV!RL9t z-}nCUUe|9f{$b{vefC~^?X~XvUh9N^RFuMaLG%Iv0RclsT3i_c;pr*@0+Kx{GVslp zdfz|<1PTNhaZy$Gw1Xu#Z{1ms?T4}ShDiqVKcWHD^brZtgK=t%LlSW&Lse@$(aO5( z)K|96Ov|NbIu&v=Gy}A*Rc}*G)2#>1*P|w9!?}rhT^WIk<*LL7C}~^+s6A5xIxbv~ zk7KY!J|OTTBcZn*C*8f;n&EIlUP-gaa3WiGsc2e|6#wt@qj!7{IqbjBZ+?!Apa z!eb9@dVYY$dVMOYY@omfz1A&BrTM$;RKMPHN)0>C-g6Dyp#9r>McpN4$%lRVY4OVl zTWU(fL?+n+xdg?eWRPRVDEUtJ*B{iaai3i#|E@7N>Wcu2qm8)Et;;s7MGd-{;l)9v^4$X`3ea^;;i_wO~%pWd21TOAIQIj~`S1* z&$>rG12farV9#hf*em?ceJCAW{@48;wst`h|M3<-5<8~v`BOxm^wIp~68(z!v27XJ z_*~_p{AIa+ye2ojY}(zIsqgGXr_2Ho5z)__9FviwZD+pcp7ihVgKMj6l`~ zb=b@EjMSmt2j^pT9>Q;Y7Eh|Vb;o)8KzBSW0v8|RwViK%a!WYC((Bic)VU@8G3dq* z3;~{Yg*I=Tj`WTmo8anam_D~JsX$y430|<;>#&2Ej|v(xLW#{kok*EcPWcV=yA7N$ zHeYf1ytJhnAR9W{u_D*=zMV;0mc8z^N7MOlrhLd`Br7$b8*TIg(R=xf6e;r^PZNR; zJ<+3Uh@0ONDo`WLzrOYOaD4{SlDMHVKx1MXJ6*dQXwP!LP2h1V+*WU@vjckxC2u14 zlQMws;7N7%Z%PCLZcG0fi$^JNQ7#44+_aFY4jF)hz!u!;iju_ezUW;wiWmhF036pSv0;= z)Bm87u{vhNajh-Ay;!rv7lP5@w-Y0g0yl6Pg7Q+FWuT_8n9a26{WFc!_UO#HCn9T^ zI71P{bDXK&IL~WuPw;E+cDNMpuLgR2TA)zJ^#VK7`x5~v&@Mf<_Zc#u0VKR&NbGEY zy1*BTi(`DmS?ytZdET|kcvfzperd3S)DiPv^RNs{LVqQnfYwI9=HOzT9)tP3Q5 zIFE8(T9VjM!yc?Q+sepXpE^!6-WpFa>*H@xJi0GvdUCyW2QfWq3AFZss{iDcs(gpP zYcVNszCQNx2XmRbuw6`&VCJ0Iu}{l&?R9%dr?mgY`4`$&_KrD&7`@*u#QtE5wHC14 zQAvXtTsM$;v1xIGe4sANZ0IejTU445o!k9Q`bAp~`9jq|=BSB=jpxyRHuPQ})>;=s z2fCKo3x*Y^xiKBVQk!BcelCKQjz6u0*4@8V=8(@S(sE*~mwA z6L#eG!Mdn~KP-%_X7V?`+tw?)Ki)3@O!ltmg;LA@TXVA1j&e?4QNeUFSMSe#TO$Ep zS}?as=R51!Dhl1}4%YYw%PNVozc~~8i=AQxPQlo75s&=lH8!*bj8K36t^BxRMld;; zAX`9X%gU=w@=6omuLFwd*hg@@(yO%8KbO?kPa?qGv>VG$rgiJF(

%n!I{IFy?p_ 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%0D0fn5i~1f{S^<-^&g8s)3>j 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

eVue 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 cAJ0WsayGj`R}}6 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 PA!YD%^>bP0l+XkK8!t?J literal 0 HcmV?d00001 diff --git a/objects.js b/objects.js index a1237c4..56233eb 100644 --- a/objects.js +++ b/objects.js @@ -200,13 +200,20 @@ export class Objects { }); } + // elapsedTime is given in milliseconds computeFrame(elapsedTime) { + // convert elapsed time to seconds + elapsedTime /= 1000; // If we're creating an object, increment its mass // with the mass creation rate accelerating over time - const massCreationRate = this.sim.getOption('param.massCreationRate'); + + // Scaling this parameter because of millisecond conversion + const massCreationRate = this.sim.getOption('param.massCreationRate') / 1000; + if (this.creatingObject !== undefined) { const obj = this.objects[this.creatingObject]; const rate = massCreationRate * obj.age; + console.log('obj.age', obj.age, 'mass creation rate', rate, 'elapsedTime', elapsedTime); // TODO: After objects merge during creation, mass creation rate can accelerate obj.mass += rate * elapsedTime; } @@ -215,6 +222,8 @@ export class Objects { this.computeForces(); if (this.sim.playing) { + // TODO: If creating/selected object, clamp its position to the cursor + // Predict positions (Velocity verlet method) this.forEachObject(obj => { obj.currentAcceleration = {...obj.acceleration}; @@ -306,8 +315,9 @@ export class Objects { `${obj.position.y.toPrecision(6)}, `, `${obj.mass.toPrecision(6)} kg, `, `${speed.toPrecision(2)} m/s, ${direction.toPrecision(2)}°`, + `Alive: ${obj.alive}`, ]; - }); + }, { alive: null }); } } diff --git a/options.js b/options.js index ac1598f..5381ad1 100644 --- a/options.js +++ b/options.js @@ -2,54 +2,51 @@ import { EVENT_OPTION_SET, } from './config.js'; -export const optionsLayout = { - pauseDuring: { - creation: ['Pause While Creating', 'boolean', true], - selection: ['Pause While Selecting', 'boolean', true], - }, - display: { - velocity: ['Velocity Vectors', 'boolean', true], - acceleration: ['Accel. Vectors', 'boolean', true], - traces: ['Path Traces', 'boolean', true], - dashedTraces: ['Dashed Traces', 'boolean', false], - }, - collision: { - merge: ['Merge Masses
on Collision', 'boolean', true, {wide: true}], - }, - param: { - gravity: ['Gravity', 'number', 4E4], - timeScale: ['Time Scale', 'number', 0.2], - massCreationRate: ['Mass Creation Rate', 'number', 10], - }, - debug: { - objectsInfo: ['Objects Info', 'boolean', false], - cursorInfo: ['Cursor Info', 'boolean', false], - canvasSize: ['Canvas Size', 'boolean', false], - currentMode: ['Current Mode', 'boolean', false], - panningInfo: ['Panning Info', 'boolean', false], - }, -}; - export class Options { sim = undefined; + options = undefined; values = {}; - constructor(sim) { + getStorageKey(path) { + return `${path}:options`; + } + + constructor(sim, options) { this.sim = sim; + this.options = options; // Global methods to get/set current option values this.sim.getOption = (path) => this.getOption(path); this.sim.setOption = (path, value) => this.setOption(path, value); this.sim.onOptionSet = (path, cb) => this.onOptionSet(path, cb); + + // Initialize values from localStorage + for (const groupName of Object.keys(options)) { + for (const [name, [, , defaultValue]] of Object.entries(this.options[groupName])) { + const path = [groupName, name].join('.'); + let value = this.getOption(path) + if (value === undefined) { + value = defaultValue; + this.setOption(path, value); + } + } + } } getOption(path) { - const val = this.values[path]; - return val; + let value = this.values[path]; + if (value === undefined) { + value = localStorage.getItem(this.getStorageKey(path)); + if (value === 'false') value = false; + else if (value === 'true') value = true; + this.values[path] = value; + } + return value; } setOption(path, value) { this.values[path] = value; + window.localStorage.setItem(this.getStorageKey(path), value); const e = new CustomEvent(EVENT_OPTION_SET, {detail: {path, value}}); this.sim.div.dispatchEvent(e); } @@ -63,8 +60,8 @@ export class Options { }); } - static getSection(layout, sectionName) { - const section = layout[sectionName]; + getSection(sectionName) { + const section = this.options[sectionName]; const group = { type: 'group', name: sectionName, diff --git a/pointer.js b/pointer.js index 0252b88..d9c10bc 100644 --- a/pointer.js +++ b/pointer.js @@ -66,7 +66,7 @@ export class Pointer { points = Math.min(points, POINTER_HISTORY_SIZE, this.pointerHistory.length); const start = this.pointerHistory[this.pointerHistory.length - points]; const end = this.pointerHistory[this.pointerHistory.length - 1]; - const dt = (end.t - start.t) / 1000; + const dt = (end.t - start.t); return { x: (end.x - start.x) / dt, y: (end.y - start.y) / dt, @@ -145,14 +145,13 @@ export class Pointer { // TODO: If e.touches.length > 1, user may be engaging pinch to zoom handlePointerMove({x: clientX, y: clientY}) { this.updatePointer({x: clientX, y: clientY}); - const v = this.latestPointerVelocity; - // Convert pointer velocity to simulation scale - v.x /= this.sim.display.scale; - v.y /= this.sim.display.scale; if (this.sim.isCurrentMode(MODE_MASS_GENERATION)) { + // Convert pointer velocity to simulation scale + const vx = this.latestPointerVelocity.x / this.sim.display.scale; + const vy = this.latestPointerVelocity.y / this.sim.display.scale; const {x, y} = this.sim.screenToSim(clientX, clientY); - this.sim.objects.handlePointerMove({x, y, vx: v.x, vy: v.y}); + this.sim.objects.handlePointerMove({x, y, vx, vy}); } else if (this.sim.isCurrentMode(MODE_PAN_VIEW)) { if (this.panTouchStart) { @@ -160,7 +159,7 @@ export class Pointer { this.panTouchLatest = { x: clientX, y: clientY, - t: document.timeline.currentTime, + t: this.sim.rawTime, }; } } diff --git a/simulator.js b/simulator.js index a243b0a..111cae2 100644 --- a/simulator.js +++ b/simulator.js @@ -1,5 +1,6 @@ import { EVENT_ZOOM, + FRAMERATE_SAMPLE_DURATION, SCALE_POWER_MAX, SCALE_POWER_MIN, } from './config.js'; @@ -16,12 +17,42 @@ import { UtilityTool } from './tool/utility.js'; import { Toolbar } from './toolbar.js'; import { ToolbarGroup } from './toolbar-group.js'; +const simOptions = { + pauseDuring: { + creation: ['Pause While Creating', 'boolean', true], + selection: ['Pause While Selecting', 'boolean', true], + }, + display: { + velocity: ['Velocity Vectors', 'boolean', true], + acceleration: ['Accel. Vectors', 'boolean', true], + traces: ['Path Traces', 'boolean', true], + dashedTraces: ['Dashed Traces', 'boolean', false], + }, + collision: { + merge: ['Merge Masses
on Collision', 'boolean', true, {wide: true}], + }, + param: { + gravity: ['Gravity', 'number', 4E4], + timeScale: ['Time Scale', 'number', 0.2], + massCreationRate: ['Mass Creation Rate', 'number', 10], + }, + debug: { + objectsInfo: ['Objects Info', 'boolean', false], + cursorInfo: ['Cursor Info', 'boolean', false], + frameRate: ['Frame Rate', 'boolean', false, {wide: true}], + currentMode: ['Current Mode', 'boolean', false], + panningInfo: ['Panning Info', 'boolean', false], + }, +}; + export class Sim { info = {}; rawTime = undefined; time = undefined; nextZoom = undefined; playing = true; + recentFrames = []; + frameRate = 0; objects = undefined; display = undefined; @@ -38,12 +69,26 @@ export class Sim { onModeEnter = () => undefined; onModeLeave = () => undefined; + markFrame(t) { + const { recentFrames: rfs } = this; + rfs.push(t); + if (rfs.length < 2) return; + const oldest = rfs[0]; + const newest = rfs[rfs.length - 1]; + const count = rfs.length; + const duration = (newest - oldest) / 1000; // ms to s + this.frameRate = count / duration; + if (duration >= FRAMERATE_SAMPLE_DURATION) { + rfs.shift(); + } + } + constructor(divId) { this.divId = divId; const div = document.getElementById(this.divId); this.div = div; - this.options = new Options(this); + this.options = new Options(this, simOptions); this.display = new Display(this); this.objects = new Objects(this); this.toolbars = { @@ -95,7 +140,7 @@ export class Sim { } // Initiate main loop - this.rawTime = document.timeline.currentTime / 1000; + this.rawTime = document.timeline.currentTime; this.time = 0; requestAnimationFrame(t => this.loop(t)); } @@ -163,10 +208,14 @@ export class Sim { // Main loop loop(currentTime) { - currentTime /= 1000; + this.markFrame(currentTime); const timeScale = this.getOption('param.timeScale'); - const elapsedTime = (currentTime - this.rawTime) * timeScale; + + // elapsedTime in milliseconds + // rawTime in milliseconds + const elapsedTime = (currentTime - this.rawTime) / timeScale; this.rawTime = currentTime; + if (this.playing) { this.time += elapsedTime; } @@ -175,6 +224,10 @@ export class Sim { this.info['Mode'] = this.getCurrentMode(); } + if (this.getOption('debug.frameRate')) { + this.info['Frame Rate'] = this.frameRate?.toPrecision(3); + } + if (this.nextZoom) { this.zoom(this.nextZoom); this.nextZoom = undefined; @@ -188,15 +241,14 @@ export class Sim { this.info['Net Angular Momentum'] = this.objects.computeSystemAngularMomentum().toPrecision(6); } - this.display.computePanning(elapsedTime); this.objects.computeFrame(elapsedTime); this.overlay.renderInfo(); + // this.display.computePanning(elapsedTime); this.display.fillCanvas(); this.display.drawObjects(); for (const group in this.toolbarGroups) { this.toolbarGroups[group].frame(); } - requestAnimationFrame(t => this.loop(t)); } } diff --git a/style.css b/style.css index bcd5887..8b713cc 100644 --- a/style.css +++ b/style.css @@ -33,8 +33,8 @@ div.lhg-toolbar { width: fit-content; margin: 0.5em; border-radius: 0.5em; - border-width: 1px; - border-color: #282; + border-width: 2px; + border-color: #151; border-style: solid; } @@ -44,7 +44,7 @@ div.lhg-tool { left: 0; width: 12em; /* padding: 0.5em; */ - margin: 0.5em; + /* margin: 0.5em; */ text-align: middle; } @@ -107,6 +107,11 @@ div.lhg-tool .lhg-wide { width: 12em; } +div.lhg-tool .lhg-tall { + padding-top: 1em; + padding-bottom: 1em; +} + div.lhg-overlay-info-box { position: absolute; top: 0px; diff --git a/tool.js b/tool.js index 90ebf34..eaccac5 100644 --- a/tool.js +++ b/tool.js @@ -1,18 +1,18 @@ // Idea here is, tool can declare its parameters; -// can call back to toolbar for whatever... -// through toolbar can access sim +// can call back to container for whatever... +// through container can access sim import { TOOL_CLASSNAME, } from './config.js'; export class Tool { - toolbar = undefined; + container = undefined; sim = undefined; - constructor(toolbar) { - this.toolbar = toolbar; - this.sim = this.toolbar.sim; + constructor(container) { + this.container = container; + this.sim = this.container.sim; const div = document.createElement('div'); this.div = div; div.classList.add(TOOL_CLASSNAME) diff --git a/tool/header.js b/tool/header.js index bebfc60..1dd2433 100644 --- a/tool/header.js +++ b/tool/header.js @@ -2,8 +2,9 @@ import {TOOLBAR_HEADER_CLASSNAME} from '../config.js'; import { Tool } from '../tool.js'; export class Header extends Tool { - constructor(toolbar, title = 'Tools') { - super(toolbar); + + constructor(container, title = 'Tools') { + super(container); this.title = document.createElement('h1'); this.title.innerHTML = title; @@ -22,12 +23,12 @@ export class Header extends Tool { } updateButton() { - this.toggleButton.innerHTML = this.toolbar.expanded ? '˄' : '˅'; + this.toggleButton.innerHTML = this.container.expanded ? '˅' : '˄'; } toggle() { - this.toolbar.expanded = !this.toolbar.expanded; - this.toolbar.applyExpanded(); + this.container.expanded = !this.container.expanded; + this.container.applyExpanded(); this.updateButton(); } } diff --git a/tool/modes.js b/tool/modes.js index fe37178..cd009dc 100644 --- a/tool/modes.js +++ b/tool/modes.js @@ -18,8 +18,8 @@ export class ModeSwitch extends Tool { ]; buttons = []; - constructor(toolbar) { - super(toolbar); + constructor(container) { + super(container); const modesDiv = document.createElement('div'); const heading = document.createElement('h2'); diff --git a/tool/options.js b/tool/options.js index 5dd0163..206b7a8 100644 --- a/tool/options.js +++ b/tool/options.js @@ -4,7 +4,6 @@ import { WIDE_CLASSNAME, } from '../config.js'; import { Tool } from '../tool.js'; -import { Options, optionsLayout } from '../options.js'; export class OptionsTool extends Tool { visitItem(item, path) { @@ -29,14 +28,20 @@ export class OptionsTool extends Tool { if (item.wide === true) { button.classList.add(WIDE_CLASSNAME); } - this.sim.setOption(path, item.default); - button.style.opacity = this.sim.getOption(path) ? '100%' : '50%'; - button.addEventListener('click', () => { - this.sim.setOption(path, !this.sim.getOption(path)); - button.style.opacity = this.sim.getOption(path) ? '100%' : '50%'; - }); + const value = this.sim.getOption(path); + if (value === undefined) { + this.sim.setOption(path, item.default); + } + button.style.opacity = value ? '100%' : '50%'; this.sim.onOptionSet(path, value => { + console.log('option set cb', path, value); button.style.opacity = value ? '100%' : '50%'; + console.log('button opacity', button.style.opacity); + }); + button.addEventListener('click', () => { + const value = this.sim.options.getOption(path, true); + console.log('click, option value', value); + this.sim.setOption(path, !value); }); return button; } @@ -77,12 +82,12 @@ export class OptionsTool extends Tool { } } - constructor(toolbar, sections) { - super(toolbar); + constructor(container, sections) { + super(container); for (const sectionName of sections) { - const item = Options.getSection(optionsLayout, sectionName); - const child = this.visitItem(item); + const option = this.sim.options.getSection(sectionName); + const child = this.visitItem(option); this.div.appendChild(child); } } diff --git a/tool/play-pause.js b/tool/play-pause.js index 491969d..6d661bb 100644 --- a/tool/play-pause.js +++ b/tool/play-pause.js @@ -1,68 +1,36 @@ -import {TOOL_INFO_CLASSNAME, WIDE_CLASSNAME} from '../config.js'; +import { + TALL_CLASSNAME +} from '../config.js'; import {Tool} from '../tool.js'; export class PlayPause extends Tool { playHTML = 'Play'; pauseHTML = 'Pause'; - currentTimeEl = undefined; pauseButton = undefined; playButton = undefined; - get timeText() { - let time = this.sim.time; - // Time in seconds - const s = time % 60; - time = (time - s) / 60; - const m = time % 60; - time = (time - m) / 60; - const h = time % 24; - time = (time - h) / 24; - const d = time; - time -= m * 60; - - const ms = (s - Math.floor(s)) * 1000; - return [ - d || undefined, - h.toString().padStart(2, '0'), - m.toString().padStart(2, '0'), - [ - s.toFixed(0).padStart(2, '0'), - ms.toFixed(0).padStart(3, '0'), - ].join('.') - ].filter(x => x !== undefined).join(':'); - } - - frame() { - if (this.currentTimeEl) { - this.currentTimeEl.innerHTML = this.timeText; - } - } - updateButtons() { this.pauseButton.style.opacity = this.sim.playing ? '100%' : '50%'; this.playButton.style.opacity = this.sim.playing ? '50%' : '100%'; } - constructor(toolbar) { - super(toolbar); + constructor(container) { + super(container); - const currentTime = document.createElement('button'); const pauseButton = document.createElement('button'); const playButton = document.createElement('button'); + this.pauseButton = pauseButton; this.playButton = playButton; - this.currentTimeEl = currentTime; - this.div.appendChild(currentTime); this.div.appendChild(pauseButton); this.div.appendChild(playButton); - currentTime.classList.add(TOOL_INFO_CLASSNAME); - currentTime.classList.add(WIDE_CLASSNAME); - pauseButton.innerHTML = this.pauseHTML; playButton.innerHTML = this.playHTML; - currentTime.innerHTML = this.timeText; + + playButton.classList.add(TALL_CLASSNAME); + pauseButton.classList.add(TALL_CLASSNAME); this.updateButtons(); diff --git a/tool/utility.js b/tool/utility.js index 268da4c..2e92b2c 100644 --- a/tool/utility.js +++ b/tool/utility.js @@ -1,23 +1,83 @@ import {Tool} from '../tool.js'; import { + TOOL_INFO_CLASSNAME, WIDE_CLASSNAME, } from '../config.js'; export class UtilityTool extends Tool { - constructor(toolbar) { - super(toolbar); + currentTimeEl = undefined; + + get displayScaleText() { + return `Scale: ${this.sim.getScaleDisplay()}`; + } + + get timeText() { + let time = this.sim.time; + // Time in milliseconds + const ms = Math.floor(time % 1000); + time = (time - ms) / 1000; + const s = Math.floor(time % 60); + time = (time - s) / 60; + const m = Math.floor(time % 60); + time = (time - m) / 60; + const h = Math.floor(time % 24); + time = (time - h) / 24; + const d = Math.floor(time); + return [ + d || undefined, + h.toString().padStart(2, '0'), + m.toString().padStart(2, '0'), + [ + s.toString().padStart(2, '0'), + ms.toString().padStart(3, '0'), + ].join('.') + ].filter(x => x !== undefined).join(':'); + } + + frame() { + if (this.currentTimeEl) { + this.currentTimeEl.innerHTML = this.timeText; + } + } + + constructor(container) { + super(container); const zeroVelocity = document.createElement('button'); const clearTraces = document.createElement('button'); + const zoomAll = document.createElement('button'); + const currentScale = document.createElement('button') + const currentTime = document.createElement('button'); + const clearDebug = document.createElement('button'); - this.div.appendChild(clearTraces); + this.currentTimeEl = currentTime; + + this.div.appendChild(currentTime); + this.div.appendChild(currentScale); + this.div.appendChild(zoomAll); this.div.appendChild(zeroVelocity); + this.div.appendChild(clearTraces); + this.div.appendChild(clearDebug); zeroVelocity.classList.add(WIDE_CLASSNAME); clearTraces.classList.add(WIDE_CLASSNAME); + zoomAll.classList.add(WIDE_CLASSNAME); + currentScale.classList.add(WIDE_CLASSNAME); + currentScale.classList.add(TOOL_INFO_CLASSNAME); + currentTime.classList.add(TOOL_INFO_CLASSNAME); + currentTime.classList.add(WIDE_CLASSNAME); + clearDebug.classList.add(WIDE_CLASSNAME); zeroVelocity.innerHTML = 'Zero Momentum'; clearTraces.innerHTML = 'Clear Traces'; + zoomAll.innerHTML = 'Zoom to Fit'; + currentScale.innerHTML = this.displayScaleText; + currentTime.innerHTML = this.timeText; + clearDebug.innerHTML = 'Clear Debug'; + + this.sim.onZoom(() => { + currentScale.innerHTML = this.displayScaleText; + }); zeroVelocity.addEventListener('click', () => { // Determine center of mass and average momentum @@ -43,5 +103,39 @@ export class UtilityTool extends Tool { obj.history = []; }, {alive: null}); }); + + zoomAll.addEventListener('click', () => { + // Determine bounding box + const box = this.sim.objects.boundingBox; + const x = (box.start.x + box.end.x) / 2; + const y = (box.start.y + box.end.y) / 2; + const widthRatio = Math.abs(box.start.x - box.end.x) / this.sim.display.width; + const heightRatio = Math.abs(box.start.y - box.end.y) / this.sim.display.height; + const biggerRatio = Math.max(widthRatio, heightRatio); + const base2factor = Math.log(1/biggerRatio) / Math.log(2) - 0.5; + const factor = Math.floor(base2factor); + // Determine average momentum and set panning velocity to match + const netMomentum = {x: 0, y: 0}; + let totalMass = 0; + let count = 0; + this.sim.objects.forEachObject(obj => { + count++; + netMomentum.x += obj.mass * obj.velocity.x; + netMomentum.y += obj.mass * obj.velocity.y; + totalMass += obj.mass; + }); + if (!count) { + return; + } + const netVelocity = { + x: netMomentum.x / totalMass, + y: netMomentum.y / totalMass, + }; + this.sim.scheduleZoom({x, y}, factor, netVelocity) + }); + + clearDebug.addEventListener('click', () => { + this.sim.info = {}; + }); } } diff --git a/tool/zoom.js b/tool/zoom.js index 3ad84a8..ff738f2 100644 --- a/tool/zoom.js +++ b/tool/zoom.js @@ -1,45 +1,21 @@ import { Tool } from '../tool.js'; import { - TOOL_INFO_CLASSNAME, - WIDE_CLASSNAME, ZOOM_IN_FACTOR, ZOOM_OUT_FACTOR, } from '../config.js'; export class Zoom extends Tool { - get displayScale() { - return this.sim.getScaleDisplay(); - } + constructor(container) { + super(container); - get displayScaleText() { - return `Scale: ${this.displayScale}`; - } - - constructor(toolbar) { - super(toolbar); - - const currentScale = document.createElement('button') const zoomOut = document.createElement('button'); const zoomIn = document.createElement('button'); - const zoomAll = document.createElement('button'); - this.div.appendChild(currentScale); this.div.appendChild(zoomOut); this.div.appendChild(zoomIn); - this.div.appendChild(zoomAll); - - zoomAll.classList.add(WIDE_CLASSNAME); - currentScale.classList.add(WIDE_CLASSNAME); - currentScale.classList.add(TOOL_INFO_CLASSNAME); zoomOut.innerHTML = 'Zoom
Out'; zoomIn.innerHTML = 'Zoom
In'; - zoomAll.innerHTML = 'Zoom to Fit'; - currentScale.innerHTML = this.displayScaleText; - - this.sim.onZoom(() => { - currentScale.innerHTML = this.displayScaleText; - }); zoomOut.addEventListener('click', () => { // Aim at center of view @@ -54,35 +30,5 @@ export class Zoom extends Tool { const y = this.sim.display.height * this.sim.display.scale / 2; this.sim.scheduleZoom(this.sim.screenToSim(x, y), ZOOM_IN_FACTOR); }); - - zoomAll.addEventListener('click', () => { - // Determine bounding box - const box = this.sim.objects.boundingBox; - const x = (box.start.x + box.end.x) / 2; - const y = (box.start.y + box.end.y) / 2; - const widthRatio = Math.abs(box.start.x - box.end.x) / this.sim.display.width; - const heightRatio = Math.abs(box.start.y - box.end.y) / this.sim.display.height; - const biggerRatio = Math.max(widthRatio, heightRatio); - const base2factor = Math.log(1/biggerRatio) / Math.log(2) - 1; - const factor = Math.floor(base2factor); - // Determine average momentum and set panning velocity to match - const netMomentum = {x: 0, y: 0}; - let totalMass = 0; - let count = 0; - this.sim.objects.forEachObject(obj => { - count++; - netMomentum.x += obj.mass * obj.velocity.x; - netMomentum.y += obj.mass * obj.velocity.y; - totalMass += obj.mass; - }); - if (!count) { - return; - } - const netVelocity = { - x: netMomentum.x / totalMass, - y: netMomentum.y / totalMass, - }; - this.sim.scheduleZoom({x, y}, factor, netVelocity) - }); } } diff --git a/toolbar.js b/toolbar.js index eec256e..4281035 100644 --- a/toolbar.js +++ b/toolbar.js @@ -1,5 +1,6 @@ import { TOOLBAR_CLASSNAME, + TOOLBAR_EXPANDED_SUFFIX, } from './config.js'; import {Header} from './tool/header.js'; @@ -8,10 +9,17 @@ export class Toolbar { tools = []; expanded = undefined; header = undefined; + title = undefined; - constructor(sim, title, { expanded } = {}) { + // TODO: Index on something more durable than title + getExpandedKey() { + return [this.title, TOOLBAR_EXPANDED_SUFFIX].join(':'); + } + + constructor(sim, title) { this.sim = sim; - this.expanded = expanded ?? true; + this.title = title; + this.expanded = window.localStorage.getItem(this.getExpandedKey()) === 'true'; // Create ourselves a div, as child of sim's div const div = document.createElement('div'); @@ -22,6 +30,9 @@ export class Toolbar { const header = new Header(this, title); this.header = header; this.addTool(header); + + header.updateButton(); + this.applyExpanded(); } // tool: instance of Tool @@ -38,8 +49,10 @@ export class Toolbar { } applyExpanded() { + window.localStorage.setItem(this.getExpandedKey(), this.expanded); for (const tool of this.tools) { if (tool === this.header) continue; + if (this.expanded) { if (!this.div.contains(tool.div)) { this.div.appendChild(tool.div);