rails-physics 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/ranges/segment.js +1 -1
- package/ranges/segmenttree.js +3 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rails-physics",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.10",
|
|
4
4
|
"description": "A plugin for the matter-js physics library designed to efficiently simulate objects moving in a one-dimensional space whose projection onto the 2-dimensional space of the screen changes over time",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
package/ranges/segment.js
CHANGED
package/ranges/segmenttree.js
CHANGED
|
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
12
|
var _SegmentTree_raw;
|
|
13
|
-
import {
|
|
13
|
+
import { centre, leftChild, rightChild, isLeaf } from "./segment.js";
|
|
14
14
|
import Matter from "matter-js";
|
|
15
15
|
//Implement a segment tree for O(log(n)) updates and O(log(n)) location of center of mass
|
|
16
16
|
export class SegmentTree {
|
|
@@ -26,7 +26,7 @@ export class SegmentTree {
|
|
|
26
26
|
while (index < __classPrivateFieldGet(this, _SegmentTree_raw, "f").length) {
|
|
27
27
|
console.log(index, __classPrivateFieldGet(this, _SegmentTree_raw, "f")[index].left, __classPrivateFieldGet(this, _SegmentTree_raw, "f")[index].right);
|
|
28
28
|
if (!isLeaf(__classPrivateFieldGet(this, _SegmentTree_raw, "f")[index])) {
|
|
29
|
-
let middle =
|
|
29
|
+
let middle = centre(__classPrivateFieldGet(this, _SegmentTree_raw, "f")[index]);
|
|
30
30
|
__classPrivateFieldGet(this, _SegmentTree_raw, "f")[index].left_child = __classPrivateFieldGet(this, _SegmentTree_raw, "f").length;
|
|
31
31
|
__classPrivateFieldGet(this, _SegmentTree_raw, "f").push({ mass: default_density * (middle - __classPrivateFieldGet(this, _SegmentTree_raw, "f")[index].left), left: __classPrivateFieldGet(this, _SegmentTree_raw, "f")[index].left, right: middle, parent: index, waiting_changes: 0 });
|
|
32
32
|
__classPrivateFieldGet(this, _SegmentTree_raw, "f")[index].right_child = __classPrivateFieldGet(this, _SegmentTree_raw, "f").length;
|
|
@@ -35,7 +35,7 @@ export class SegmentTree {
|
|
|
35
35
|
index++;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
|
|
38
|
+
centreOfMass() {
|
|
39
39
|
let target = __classPrivateFieldGet(this, _SegmentTree_raw, "f")[0].mass / 2;
|
|
40
40
|
let index = 0;
|
|
41
41
|
while (!isLeaf(__classPrivateFieldGet(this, _SegmentTree_raw, "f")[index])) {
|