plotboilerplate 1.15.0 → 1.17.1
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/README.md +1 -0
- package/changelog.md +65 -0
- package/dist/index.esm.js +760 -667
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/plotboilerplate.browser.min.js +1 -1
- package/dist/plotboilerplate.browser.min.js.map +1 -1
- package/dist/plotboilerplate.js +765 -571
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +1 -1
- package/src/cjs/BezierPath.d.ts +32 -14
- package/src/cjs/BezierPath.js +65 -24
- package/src/cjs/BezierPath.js.map +1 -1
- package/src/cjs/Bounds.d.ts +33 -1
- package/src/cjs/Bounds.js +38 -1
- package/src/cjs/Bounds.js.map +1 -1
- package/src/cjs/Circle.d.ts +15 -13
- package/src/cjs/Circle.js +16 -34
- package/src/cjs/Circle.js.map +1 -1
- package/src/cjs/CircleSector.d.ts +17 -16
- package/src/cjs/CircleSector.js +12 -24
- package/src/cjs/CircleSector.js.map +1 -1
- package/src/cjs/CubicBezierCurve.d.ts +16 -15
- package/src/cjs/CubicBezierCurve.js +57 -94
- package/src/cjs/CubicBezierCurve.js.map +1 -1
- package/src/cjs/KeyHandler.d.ts +10 -3
- package/src/cjs/KeyHandler.js +28 -23
- package/src/cjs/KeyHandler.js.map +1 -1
- package/src/cjs/Line.d.ts +2 -15
- package/src/cjs/Line.js +6 -31
- package/src/cjs/Line.js.map +1 -1
- package/src/cjs/MouseHandler.js +43 -53
- package/src/cjs/MouseHandler.js.map +1 -1
- package/src/cjs/PBImage.d.ts +15 -13
- package/src/cjs/PBImage.js +11 -15
- package/src/cjs/PBImage.js.map +1 -1
- package/src/cjs/PBText.d.ts +13 -12
- package/src/cjs/PBText.js +8 -12
- package/src/cjs/PBText.js.map +1 -1
- package/src/cjs/PlotBoilerplate.d.ts +3 -1
- package/src/cjs/PlotBoilerplate.js +9 -2
- package/src/cjs/PlotBoilerplate.js.map +1 -1
- package/src/cjs/Polygon.d.ts +23 -14
- package/src/cjs/Polygon.js +22 -35
- package/src/cjs/Polygon.js.map +1 -1
- package/src/cjs/Triangle.d.ts +15 -13
- package/src/cjs/Triangle.js +23 -64
- package/src/cjs/Triangle.js.map +1 -1
- package/src/cjs/VEllipse.d.ts +14 -9
- package/src/cjs/VEllipse.js +10 -18
- package/src/cjs/VEllipse.js.map +1 -1
- package/src/cjs/VEllipseSector.d.ts +15 -1
- package/src/cjs/VEllipseSector.js +11 -1
- package/src/cjs/VEllipseSector.js.map +1 -1
- package/src/cjs/Vector.d.ts +3 -15
- package/src/cjs/Vector.js +9 -49
- package/src/cjs/Vector.js.map +1 -1
- package/src/cjs/VertTuple.d.ts +15 -1
- package/src/cjs/VertTuple.js +14 -19
- package/src/cjs/VertTuple.js.map +1 -1
- package/src/cjs/Vertex.d.ts +23 -13
- package/src/cjs/Vertex.js +24 -22
- package/src/cjs/Vertex.js.map +1 -1
- package/src/cjs/VertexListeners.d.ts +12 -8
- package/src/cjs/VertexListeners.js +18 -25
- package/src/cjs/VertexListeners.js.map +1 -1
- package/src/cjs/draw.d.ts +45 -3
- package/src/cjs/draw.js +149 -6
- package/src/cjs/draw.js.map +1 -1
- package/src/cjs/drawgl.d.ts +41 -3
- package/src/cjs/drawgl.js +45 -3
- package/src/cjs/drawgl.js.map +1 -1
- package/src/cjs/drawutilssvg.d.ts +69 -4
- package/src/cjs/drawutilssvg.js +147 -16
- package/src/cjs/drawutilssvg.js.map +1 -1
- package/src/cjs/index.d.ts +0 -1
- package/src/cjs/index.js +0 -1
- package/src/cjs/index.js.map +1 -1
- package/src/cjs/interfaces/DrawLib.d.ts +64 -27
- package/src/cjs/interfaces/DrawLib.js +3 -0
- package/src/cjs/interfaces/DrawLib.js.map +1 -1
- package/src/cjs/interfaces/core.d.ts +2 -12
- package/src/cjs/interfaces/core.js +1 -0
- package/src/cjs/interfaces/core.js.map +1 -1
- package/src/cjs/module.d.ts +1 -3
- package/src/cjs/module.js +2 -5
- package/src/cjs/module.js.map +1 -1
- package/src/cjs/utils/creategui.js +16 -2
- package/src/cjs/utils/datastructures/Color.d.ts +3 -1
- package/src/cjs/utils/datastructures/Color.js +17 -6
- package/src/cjs/utils/datastructures/Color.js.map +1 -1
- package/src/cjs/utils/datastructures/Girih.d.ts +5 -0
- package/src/cjs/utils/datastructures/Girih.js +18 -14
- package/src/cjs/utils/datastructures/Girih.js.map +1 -1
- package/src/cjs/utils/datastructures/GirihPenroseRhombus.js +42 -25
- package/src/cjs/utils/datastructures/GirihPenroseRhombus.js.map +1 -1
- package/src/cjs/utils/datastructures/GirihTile.js +2 -13
- package/src/cjs/utils/datastructures/GirihTile.js.map +1 -1
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +17 -1
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +50 -32
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
- package/src/cjs/utils/io/DndFileHandler.d.ts +63 -0
- package/src/cjs/utils/io/DndFileHandler.js +112 -0
- package/src/cjs/utils/io/DndFileHandler.js.map +1 -0
- package/src/cjs/utils/io/FileDrop.d.ts +98 -0
- package/src/cjs/utils/io/FileDrop.js +142 -0
- package/src/cjs/utils/io/FileDrop.js.map +1 -0
- package/src/esm/BezierPath.d.ts +32 -14
- package/src/esm/BezierPath.js +65 -24
- package/src/esm/BezierPath.js.map +1 -1
- package/src/esm/Bounds.d.ts +33 -1
- package/src/esm/Bounds.js +38 -1
- package/src/esm/Bounds.js.map +1 -1
- package/src/esm/Circle.d.ts +15 -13
- package/src/esm/Circle.js +16 -34
- package/src/esm/Circle.js.map +1 -1
- package/src/esm/CircleSector.d.ts +17 -16
- package/src/esm/CircleSector.js +12 -24
- package/src/esm/CircleSector.js.map +1 -1
- package/src/esm/CubicBezierCurve.d.ts +16 -15
- package/src/esm/CubicBezierCurve.js +57 -94
- package/src/esm/CubicBezierCurve.js.map +1 -1
- package/src/esm/KeyHandler.d.ts +10 -3
- package/src/esm/KeyHandler.js +28 -23
- package/src/esm/KeyHandler.js.map +1 -1
- package/src/esm/Line.d.ts +2 -15
- package/src/esm/Line.js +6 -31
- package/src/esm/Line.js.map +1 -1
- package/src/esm/MouseHandler.js +43 -53
- package/src/esm/MouseHandler.js.map +1 -1
- package/src/esm/PBImage.d.ts +15 -13
- package/src/esm/PBImage.js +11 -15
- package/src/esm/PBImage.js.map +1 -1
- package/src/esm/PBText.d.ts +13 -12
- package/src/esm/PBText.js +8 -12
- package/src/esm/PBText.js.map +1 -1
- package/src/esm/PlotBoilerplate.d.ts +3 -1
- package/src/esm/PlotBoilerplate.js +9 -2
- package/src/esm/PlotBoilerplate.js.map +1 -1
- package/src/esm/Polygon.d.ts +23 -14
- package/src/esm/Polygon.js +22 -35
- package/src/esm/Polygon.js.map +1 -1
- package/src/esm/Triangle.d.ts +15 -13
- package/src/esm/Triangle.js +23 -64
- package/src/esm/Triangle.js.map +1 -1
- package/src/esm/VEllipse.d.ts +14 -9
- package/src/esm/VEllipse.js +10 -18
- package/src/esm/VEllipse.js.map +1 -1
- package/src/esm/VEllipseSector.d.ts +15 -1
- package/src/esm/VEllipseSector.js +11 -1
- package/src/esm/VEllipseSector.js.map +1 -1
- package/src/esm/Vector.d.ts +3 -15
- package/src/esm/Vector.js +9 -49
- package/src/esm/Vector.js.map +1 -1
- package/src/esm/VertTuple.d.ts +15 -1
- package/src/esm/VertTuple.js +14 -19
- package/src/esm/VertTuple.js.map +1 -1
- package/src/esm/Vertex.d.ts +23 -13
- package/src/esm/Vertex.js +24 -22
- package/src/esm/Vertex.js.map +1 -1
- package/src/esm/VertexListeners.d.ts +12 -8
- package/src/esm/VertexListeners.js +18 -25
- package/src/esm/VertexListeners.js.map +1 -1
- package/src/esm/draw.d.ts +45 -3
- package/src/esm/draw.js +147 -6
- package/src/esm/draw.js.map +1 -1
- package/src/esm/drawgl.d.ts +41 -3
- package/src/esm/drawgl.js +44 -3
- package/src/esm/drawgl.js.map +1 -1
- package/src/esm/drawutilssvg.d.ts +69 -4
- package/src/esm/drawutilssvg.js +146 -16
- package/src/esm/drawutilssvg.js.map +1 -1
- package/src/esm/index.d.ts +0 -1
- package/src/esm/index.js +0 -1
- package/src/esm/index.js.map +1 -1
- package/src/esm/interfaces/DrawLib.d.ts +64 -27
- package/src/esm/interfaces/DrawLib.js +3 -0
- package/src/esm/interfaces/DrawLib.js.map +1 -1
- package/src/esm/interfaces/core.d.ts +2 -12
- package/src/esm/interfaces/core.js +1 -0
- package/src/esm/interfaces/core.js.map +1 -1
- package/src/esm/module.d.ts +1 -3
- package/src/esm/module.js +5 -4
- package/src/esm/module.js.map +1 -1
- package/src/esm/utils/datastructures/Color.d.ts +3 -1
- package/src/esm/utils/datastructures/Color.js +17 -6
- package/src/esm/utils/datastructures/Color.js.map +1 -1
- package/src/esm/utils/datastructures/Girih.d.ts +5 -0
- package/src/esm/utils/datastructures/Girih.js +18 -14
- package/src/esm/utils/datastructures/Girih.js.map +1 -1
- package/src/esm/utils/datastructures/GirihPenroseRhombus.js +42 -25
- package/src/esm/utils/datastructures/GirihPenroseRhombus.js.map +1 -1
- package/src/esm/utils/datastructures/GirihTile.js +2 -13
- package/src/esm/utils/datastructures/GirihTile.js.map +1 -1
- package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +17 -1
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js +49 -32
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
- package/src/esm/utils/io/DndFileHandler.d.ts +63 -0
- package/src/esm/utils/io/DndFileHandler.js +106 -0
- package/src/esm/utils/io/DndFileHandler.js.map +1 -0
- package/src/esm/utils/io/FileDrop.d.ts +98 -0
- package/src/esm/utils/io/FileDrop.js +136 -0
- package/src/esm/utils/io/FileDrop.js.map +1 -0
- package/src/ts/BezierPath.ts +78 -22
- package/src/ts/Bounds.ts +40 -1
- package/src/ts/Circle.ts +187 -200
- package/src/ts/CircleSector.ts +141 -141
- package/src/ts/CubicBezierCurve.ts +738 -810
- package/src/ts/KeyHandler.ts +221 -212
- package/src/ts/Line.ts +48 -80
- package/src/ts/MouseHandler.ts +356 -368
- package/src/ts/PBImage.ts +67 -69
- package/src/ts/PBText.ts +16 -14
- package/src/ts/PlotBoilerplate.ts +9 -2
- package/src/ts/Polygon.ts +34 -34
- package/src/ts/Triangle.ts +444 -489
- package/src/ts/VEllipse.ts +18 -17
- package/src/ts/VEllipseSector.ts +20 -1
- package/src/ts/Vector.ts +124 -160
- package/src/ts/VertTuple.ts +333 -338
- package/src/ts/Vertex.ts +35 -21
- package/src/ts/VertexListeners.ts +248 -266
- package/src/ts/draw.ts +201 -6
- package/src/ts/drawgl.ts +47 -3
- package/src/ts/drawutilssvg.ts +187 -16
- package/src/ts/index.ts +0 -1
- package/src/ts/interfaces/DrawLib.ts +72 -27
- package/src/ts/interfaces/core.ts +3 -13
- package/src/ts/module.ts +2 -4
- package/src/ts/utils/datastructures/Color.ts +17 -6
- package/src/ts/utils/datastructures/Girih.ts +204 -209
- package/src/ts/utils/datastructures/GirihPenroseRhombus.ts +170 -152
- package/src/ts/utils/datastructures/GirihTile.ts +394 -419
- package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +56 -34
- package/src/ts/utils/io/FileDrop.ts +178 -0
- package/src/ts/SVGBuilder.ts +0 -109
|
@@ -44,7 +44,6 @@ var Girih = /** @class */ (function () {
|
|
|
44
44
|
this.tiles = [];
|
|
45
45
|
this.initTemplates(edgeLength);
|
|
46
46
|
}
|
|
47
|
-
;
|
|
48
47
|
/**
|
|
49
48
|
* Initialize the TILE_TEMPLATES array.
|
|
50
49
|
*
|
|
@@ -72,7 +71,6 @@ var Girih = /** @class */ (function () {
|
|
|
72
71
|
this.TILE_TEMPLATES.push(decagon.transformTilePositionToAdjacency(5, bowtie));
|
|
73
72
|
this.TILE_TEMPLATES.push(pentagon.transformTilePositionToAdjacency(4, rhombus));
|
|
74
73
|
};
|
|
75
|
-
;
|
|
76
74
|
/**
|
|
77
75
|
* Add a new tile to this Girih pattern.
|
|
78
76
|
*
|
|
@@ -85,7 +83,6 @@ var Girih = /** @class */ (function () {
|
|
|
85
83
|
Girih.prototype.addTile = function (tile) {
|
|
86
84
|
this.tiles.push(tile);
|
|
87
85
|
};
|
|
88
|
-
;
|
|
89
86
|
/**
|
|
90
87
|
* Remove the tile at given array position. The index must be inside valid bounds.
|
|
91
88
|
*
|
|
@@ -98,7 +95,16 @@ var Girih = /** @class */ (function () {
|
|
|
98
95
|
Girih.prototype.removeTileAt = function (index) {
|
|
99
96
|
this.tiles.splice(index, 1);
|
|
100
97
|
};
|
|
101
|
-
|
|
98
|
+
/**
|
|
99
|
+
*
|
|
100
|
+
* @param tiles
|
|
101
|
+
*/
|
|
102
|
+
Girih.prototype.replaceTiles = function (tiles) {
|
|
103
|
+
this.tiles.splice(0, this.tiles.length);
|
|
104
|
+
for (var i in tiles) {
|
|
105
|
+
this.addTile(tiles[i]);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
102
108
|
/**
|
|
103
109
|
* Find that tile (index) which contains the given position. First match will be returned.
|
|
104
110
|
*
|
|
@@ -115,7 +121,6 @@ var Girih = /** @class */ (function () {
|
|
|
115
121
|
}
|
|
116
122
|
return -1;
|
|
117
123
|
};
|
|
118
|
-
;
|
|
119
124
|
/**
|
|
120
125
|
* Turn the tile the mouse is hovering over.
|
|
121
126
|
* The turnCount is ab abstract number: -1 for one turn left, +1 for one turn right.
|
|
@@ -130,12 +135,12 @@ var Girih = /** @class */ (function () {
|
|
|
130
135
|
* @return {void}
|
|
131
136
|
*/
|
|
132
137
|
Girih.prototype.turnTile = function (tileIndex, turnCount) {
|
|
133
|
-
if (tileIndex == -1)
|
|
138
|
+
if (tileIndex == -1)
|
|
139
|
+
// TODO: still required?
|
|
134
140
|
return;
|
|
135
141
|
var tile = this.tiles[tileIndex];
|
|
136
|
-
tile.rotate(turnCount * Math.PI * 2 / tile.symmetry);
|
|
142
|
+
tile.rotate((turnCount * Math.PI * 2) / tile.symmetry);
|
|
137
143
|
};
|
|
138
|
-
;
|
|
139
144
|
/**
|
|
140
145
|
* Move that tile the mouse is hovering over.
|
|
141
146
|
* The move amounts are abstract numbers, 1 indicating one unit along each axis.
|
|
@@ -149,12 +154,12 @@ var Girih = /** @class */ (function () {
|
|
|
149
154
|
* @return {void}
|
|
150
155
|
*/
|
|
151
156
|
Girih.prototype.moveTile = function (tileIndex, moveXAmount, moveYAmount) {
|
|
152
|
-
if (tileIndex == -1)
|
|
157
|
+
if (tileIndex == -1)
|
|
158
|
+
// TODO: still required?
|
|
153
159
|
return;
|
|
154
160
|
var tile = this.tiles[tileIndex];
|
|
155
161
|
tile.move({ x: moveXAmount * 10, y: moveYAmount * 10 });
|
|
156
162
|
};
|
|
157
|
-
;
|
|
158
163
|
/**
|
|
159
164
|
* Find all possible adjadent tiles and their locations (type, rotation and offset). The
|
|
160
165
|
* function will return an array of all possible tiles matching at the given tile and edge.
|
|
@@ -168,7 +173,8 @@ var Girih = /** @class */ (function () {
|
|
|
168
173
|
*/
|
|
169
174
|
Girih.prototype.findPossibleAdjacentTiles = function (tileIndex, edgeIndex) {
|
|
170
175
|
var adjTiles = [];
|
|
171
|
-
if (tileIndex == -1 || edgeIndex == -1)
|
|
176
|
+
if (tileIndex == -1 || edgeIndex == -1)
|
|
177
|
+
// TODO: still required?
|
|
172
178
|
return [];
|
|
173
179
|
var template = null;
|
|
174
180
|
for (var i in this.TILE_TEMPLATES) {
|
|
@@ -183,9 +189,7 @@ var Girih = /** @class */ (function () {
|
|
|
183
189
|
// previewTilePointer = Math.min( adjTiles.length-1, previewTiilePointer );
|
|
184
190
|
return adjTiles;
|
|
185
191
|
};
|
|
186
|
-
;
|
|
187
192
|
return Girih;
|
|
188
|
-
}());
|
|
193
|
+
}()); // END class Girih
|
|
189
194
|
exports.Girih = Girih;
|
|
190
|
-
; // END class Girih
|
|
191
195
|
//# sourceMappingURL=Girih.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Girih.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/Girih.ts"],"names":[],"mappings":";AAAA;;;;;;IAMI;;;AAEJ,uCAAsC;AAEtC,6CAA4C;AAC5C,+CAA8C;AAC9C,+CAA8C;AAC9C,6DAA4D;AAC5D,iDAAgD;AAChD,+CAA8C;
|
|
1
|
+
{"version":3,"file":"Girih.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/Girih.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,19 +55,21 @@ var GirihPenroseRhombus = /** @class */ (function (_super) {
|
|
|
55
55
|
// Overwrite the default symmetries:
|
|
56
56
|
// the penrose-rhombus tile has a 180° symmetry (5/10 * 360°)
|
|
57
57
|
_this.uniqueSymmetries = 5;
|
|
58
|
-
if (typeof addCenterPolygon
|
|
58
|
+
if (typeof addCenterPolygon === "undefined") {
|
|
59
59
|
addCenterPolygon = true; // Add by default
|
|
60
|
+
}
|
|
60
61
|
// Init the actual decahedron shape with the passed size
|
|
61
62
|
var pointA = new Vertex_1.Vertex(0, 0);
|
|
62
63
|
var pointB = pointA;
|
|
63
64
|
_this.addVertex(pointB);
|
|
64
|
-
var angles = [
|
|
65
|
+
var angles = [
|
|
66
|
+
0.0,
|
|
65
67
|
36.0,
|
|
66
68
|
144.0 // 108.0
|
|
67
69
|
];
|
|
68
70
|
var theta = 0.0;
|
|
69
71
|
for (var i = 0; i < angles.length; i++) {
|
|
70
|
-
theta +=
|
|
72
|
+
theta += 180.0 - angles[i];
|
|
71
73
|
pointA = pointB; // center of rotation
|
|
72
74
|
pointB = pointB.clone();
|
|
73
75
|
pointB.x += _this.edgeLength;
|
|
@@ -80,56 +82,68 @@ var GirihPenroseRhombus = /** @class */ (function (_super) {
|
|
|
80
82
|
for (var i = 0; i < _this.vertices.length; i++) {
|
|
81
83
|
_this.vertices[i].add(move).add(position);
|
|
82
84
|
}
|
|
83
|
-
_this.textureSource.min.x = 2 / 500.0
|
|
84
|
-
|
|
85
|
+
_this.textureSource.min.x = 2 / 500.0;
|
|
86
|
+
_this.textureSource.min.y = 8 / 460.0;
|
|
85
87
|
_this.textureSource.max.x = _this.textureSource.min.x + 173 / 500.0;
|
|
86
88
|
_this.textureSource.max.y = _this.textureSource.min.y + 56 / 460.0;
|
|
87
|
-
;
|
|
88
89
|
_this.baseBounds = _this.getBounds();
|
|
89
90
|
_this._buildInnerPolygons(_this.edgeLength, addCenterPolygon);
|
|
90
91
|
_this._buildOuterPolygons(_this.edgeLength, addCenterPolygon);
|
|
91
92
|
return _this;
|
|
92
93
|
}
|
|
93
|
-
;
|
|
94
94
|
/**
|
|
95
95
|
* @override
|
|
96
96
|
*/
|
|
97
97
|
GirihPenroseRhombus.prototype.clone = function () {
|
|
98
98
|
return new GirihPenroseRhombus(this.position.clone(), this.edgeLength, true).rotate(this.rotation);
|
|
99
99
|
};
|
|
100
|
-
|
|
101
|
-
GirihPenroseRhombus.prototype._buildInnerPolygons = function (edgeLength, addCenterPolygon) {
|
|
100
|
+
GirihPenroseRhombus.prototype._buildInnerPolygons = function (_edgeLength, addCenterPolygon) {
|
|
102
101
|
var indices = [0, 2];
|
|
103
102
|
var centerTile = new Polygon_1.Polygon();
|
|
104
103
|
for (var i = 0; i < indices.length; i++) {
|
|
105
104
|
var innerTile = new Polygon_1.Polygon();
|
|
106
105
|
var index = indices[i];
|
|
107
|
-
var left = this.getVertexAt(index)
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
var
|
|
106
|
+
var left = this.getVertexAt(index)
|
|
107
|
+
.clone()
|
|
108
|
+
.scale(0.5, this.getVertexAt(index + 1));
|
|
109
|
+
var right = this.getVertexAt(index + 1)
|
|
110
|
+
.clone()
|
|
111
|
+
.scale(0.5, this.getVertexAt(index + 2));
|
|
112
|
+
var innerA = this.getVertexAt(index + 1)
|
|
113
|
+
.clone()
|
|
114
|
+
.scale(0.28, this.position);
|
|
115
|
+
var innerB = this.getVertexAt(index + 1)
|
|
116
|
+
.clone()
|
|
117
|
+
.scale(0.55, this.position);
|
|
111
118
|
innerTile.addVertex(left);
|
|
112
119
|
innerTile.addVertex(innerA);
|
|
113
120
|
innerTile.addVertex(right);
|
|
114
121
|
innerTile.addVertex(innerB);
|
|
115
|
-
centerTile.addVertex(this.getVertexAt(index)
|
|
122
|
+
centerTile.addVertex(this.getVertexAt(index)
|
|
123
|
+
.clone()
|
|
124
|
+
.scale(0.1775, this.getVertexAt(index + 2)));
|
|
116
125
|
centerTile.addVertex(innerA.clone());
|
|
117
126
|
this.innerTilePolygons.push(innerTile);
|
|
118
127
|
}
|
|
119
128
|
if (addCenterPolygon)
|
|
120
129
|
this.innerTilePolygons.push(centerTile);
|
|
121
130
|
};
|
|
122
|
-
|
|
123
|
-
GirihPenroseRhombus.prototype._buildOuterPolygons = function (edgeLength, centerPolygonExists) {
|
|
131
|
+
GirihPenroseRhombus.prototype._buildOuterPolygons = function (_edgeLength, centerPolygonExists) {
|
|
124
132
|
// Add left and right 'spikes'.
|
|
125
133
|
var indices = [0, 2];
|
|
126
134
|
for (var i = 0; i < indices.length; i++) {
|
|
127
135
|
var outerTile = new Polygon_1.Polygon();
|
|
128
136
|
var index = indices[i];
|
|
129
|
-
var left = this.getVertexAt(index)
|
|
130
|
-
|
|
137
|
+
var left = this.getVertexAt(index)
|
|
138
|
+
.clone()
|
|
139
|
+
.scale(0.5, this.getVertexAt(index + 1));
|
|
140
|
+
var right = this.getVertexAt(index + 1)
|
|
141
|
+
.clone()
|
|
142
|
+
.scale(0.5, this.getVertexAt(index + 2));
|
|
131
143
|
// const innerA:Vertex = this.getVertexAt( index+1 ).clone().scale( 0.28, this.position );
|
|
132
|
-
var innerB = this.getVertexAt(index + 1)
|
|
144
|
+
var innerB = this.getVertexAt(index + 1)
|
|
145
|
+
.clone()
|
|
146
|
+
.scale(0.55, this.position);
|
|
133
147
|
outerTile.addVertex(left.clone());
|
|
134
148
|
outerTile.addVertex(this.getVertexAt(index + 1).clone());
|
|
135
149
|
outerTile.addVertex(right.clone());
|
|
@@ -144,16 +158,21 @@ var GirihPenroseRhombus = /** @class */ (function (_super) {
|
|
|
144
158
|
var outerTile = new Polygon_1.Polygon();
|
|
145
159
|
var index = indices_1[i];
|
|
146
160
|
outerTile.addVertex(this.getVertexAt(index).clone());
|
|
147
|
-
outerTile.addVertex(this.getVertexAt(index)
|
|
161
|
+
outerTile.addVertex(this.getVertexAt(index)
|
|
162
|
+
.clone()
|
|
163
|
+
.scale(0.5, this.getVertexAt(index + 1)));
|
|
148
164
|
outerTile.addVertex(this.innerTilePolygons[i].getVertexAt(1).clone());
|
|
149
|
-
outerTile.addVertex(this.getVertexAt(index)
|
|
165
|
+
outerTile.addVertex(this.getVertexAt(index)
|
|
166
|
+
.clone()
|
|
167
|
+
.scale(0.1775, this.getVertexAt(index + 2)));
|
|
150
168
|
outerTile.addVertex(this.innerTilePolygons[(i + 1) % 2].getVertexAt(1).clone());
|
|
151
|
-
outerTile.addVertex(this.getVertexAt(index - 1)
|
|
169
|
+
outerTile.addVertex(this.getVertexAt(index - 1)
|
|
170
|
+
.clone()
|
|
171
|
+
.scale(0.5, this.getVertexAt(index)));
|
|
152
172
|
this.outerTilePolygons.push(outerTile);
|
|
153
173
|
}
|
|
154
174
|
}
|
|
155
175
|
};
|
|
156
|
-
;
|
|
157
176
|
/**
|
|
158
177
|
* If you want the center polygon not to be drawn the canvas handler needs to
|
|
159
178
|
* know the respective polygon index (inside the this.innerTilePolygons array).
|
|
@@ -162,9 +181,7 @@ var GirihPenroseRhombus = /** @class */ (function (_super) {
|
|
|
162
181
|
GirihPenroseRhombus.prototype.getCenterPolygonIndex = function () {
|
|
163
182
|
return 2;
|
|
164
183
|
};
|
|
165
|
-
;
|
|
166
184
|
return GirihPenroseRhombus;
|
|
167
185
|
}(GirihTile_1.GirihTile));
|
|
168
186
|
exports.GirihPenroseRhombus = GirihPenroseRhombus;
|
|
169
|
-
;
|
|
170
187
|
//# sourceMappingURL=GirihPenroseRhombus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GirihPenroseRhombus.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/GirihPenroseRhombus.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;IAsBI;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"GirihPenroseRhombus.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/GirihPenroseRhombus.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,8 +39,6 @@ var TileType;
|
|
|
39
39
|
// This is not part of the actual girih tile set!
|
|
40
40
|
TileType["PENROSE_RHOMBUS"] = "PENROSE_RHOMBUS";
|
|
41
41
|
})(TileType = exports.TileType || (exports.TileType = {}));
|
|
42
|
-
;
|
|
43
|
-
;
|
|
44
42
|
/**
|
|
45
43
|
* @classdesc This is a general tile superclass. All other tile classes extends this one.
|
|
46
44
|
*
|
|
@@ -91,7 +89,6 @@ var GirihTile = /** @class */ (function (_super) {
|
|
|
91
89
|
_this.tileType = tileType;
|
|
92
90
|
return _this;
|
|
93
91
|
}
|
|
94
|
-
;
|
|
95
92
|
/**
|
|
96
93
|
* Move this tile around (together will all inner polygons).
|
|
97
94
|
* As this function overrides Polygon.move(...), the returned
|
|
@@ -113,7 +110,6 @@ var GirihTile = /** @class */ (function (_super) {
|
|
|
113
110
|
this.position.add(amount);
|
|
114
111
|
return this;
|
|
115
112
|
};
|
|
116
|
-
;
|
|
117
113
|
/**
|
|
118
114
|
* Find the adjacent tile (given by the template tile)
|
|
119
115
|
* Note that the tile itself will be modified (rotated and moved to the correct position).
|
|
@@ -140,7 +136,6 @@ var GirihTile = /** @class */ (function (_super) {
|
|
|
140
136
|
}
|
|
141
137
|
return null;
|
|
142
138
|
};
|
|
143
|
-
;
|
|
144
139
|
/**
|
|
145
140
|
* Find all possible adjacent tile positions (and rotations) for `neighbourTile`.
|
|
146
141
|
*
|
|
@@ -167,7 +162,6 @@ var GirihTile = /** @class */ (function (_super) {
|
|
|
167
162
|
}
|
|
168
163
|
return foundAlignments;
|
|
169
164
|
};
|
|
170
|
-
;
|
|
171
165
|
/**
|
|
172
166
|
* Apply adjacent tile position to `neighbourTile`.
|
|
173
167
|
*
|
|
@@ -188,7 +182,6 @@ var GirihTile = /** @class */ (function (_super) {
|
|
|
188
182
|
}
|
|
189
183
|
return null;
|
|
190
184
|
};
|
|
191
|
-
;
|
|
192
185
|
/**
|
|
193
186
|
* Get the inner tile polygon at the given index.
|
|
194
187
|
* This function applies MOD to the index.
|
|
@@ -205,7 +198,6 @@ var GirihTile = /** @class */ (function (_super) {
|
|
|
205
198
|
else
|
|
206
199
|
return this.innerTilePolygons[index % this.innerTilePolygons.length];
|
|
207
200
|
};
|
|
208
|
-
;
|
|
209
201
|
/**
|
|
210
202
|
* Get the outer tile polygon at the given index.
|
|
211
203
|
* This function applies MOD to the index.
|
|
@@ -222,7 +214,6 @@ var GirihTile = /** @class */ (function (_super) {
|
|
|
222
214
|
else
|
|
223
215
|
return this.outerTilePolygons[index % this.outerTilePolygons.length];
|
|
224
216
|
};
|
|
225
|
-
;
|
|
226
217
|
/**
|
|
227
218
|
* Rotate this tile
|
|
228
219
|
* Note: this function behaves a bitdifferent than the genuine Polygon.rotate function!
|
|
@@ -249,7 +240,6 @@ var GirihTile = /** @class */ (function (_super) {
|
|
|
249
240
|
this.rotation += angle;
|
|
250
241
|
return this;
|
|
251
242
|
};
|
|
252
|
-
;
|
|
253
243
|
/**
|
|
254
244
|
* This function locates the closest tile edge (polygon edge)
|
|
255
245
|
* to the passed point.
|
|
@@ -277,7 +267,7 @@ var GirihTile = /** @class */ (function (_super) {
|
|
|
277
267
|
for (var i = 0; i < this.vertices.length; i++) {
|
|
278
268
|
var vertI = this.getVertexAt(i);
|
|
279
269
|
var vertJ = this.getVertexAt(i + 1);
|
|
280
|
-
// Create a point in the middle of the edge
|
|
270
|
+
// Create a point in the middle of the edge
|
|
281
271
|
middle.x = vertI.x + (vertJ.x - vertI.x) / 2.0;
|
|
282
272
|
middle.y = vertI.y + (vertJ.y - vertI.y) / 2.0;
|
|
283
273
|
tmpDistance = middle.distance(point);
|
|
@@ -311,7 +301,6 @@ var GirihTile = /** @class */ (function (_super) {
|
|
|
311
301
|
*/
|
|
312
302
|
GirihTile.DEFAULT_EDGE_LENGTH = 58;
|
|
313
303
|
return GirihTile;
|
|
314
|
-
}(Polygon_1.Polygon));
|
|
304
|
+
}(Polygon_1.Polygon)); // END class
|
|
315
305
|
exports.GirihTile = GirihTile;
|
|
316
|
-
; // END class
|
|
317
306
|
//# sourceMappingURL=GirihTile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GirihTile.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/GirihTile.ts"],"names":[],"mappings":";AAAA;;;;;;;;;IASI;;;;;;;;;;;;;;;;AAEJ,uCAAsC;AACtC,mCAAkC;AAClC,yCAAwC;AACxC,uCAAsC;AAGtC,IAAY,QASX;AATD,WAAY,QAAQ;
|
|
1
|
+
{"version":3,"file":"GirihTile.js","sourceRoot":"","sources":["../../../ts/utils/datastructures/GirihTile.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
* @modified 2021-01-03 Changed property to `autoAdjustPaths` in the HandlerOptions interface (typo).
|
|
21
21
|
* @modified 2021-01-03 Added following new functions: `addPathVertexDragStartListeners`, `removePathVertexDragStartListeners`, `addPathVertexDragEndListeners` and `removePathVertexDragEndListeners`.
|
|
22
22
|
* @modified 2021-03-31 Fixed the issue with the new AlloyFinger (Typescript).
|
|
23
|
-
* @
|
|
23
|
+
* @modified 2022-02-03 Changing the element to catch events (eventCatcher instead of canvas).
|
|
24
|
+
* @version 1.1.2
|
|
24
25
|
*
|
|
25
26
|
* @file BezierPathInteractionHelper
|
|
26
27
|
* @public
|
|
@@ -90,7 +91,11 @@ export declare class BezierPathInteractionHelper {
|
|
|
90
91
|
private currentT;
|
|
91
92
|
private currentA;
|
|
92
93
|
private currentB;
|
|
94
|
+
private _mouseHandler;
|
|
95
|
+
private _touchHandler;
|
|
93
96
|
private _keyHandler;
|
|
97
|
+
private _mouseEnterListener;
|
|
98
|
+
private _mouseLeaveListener;
|
|
94
99
|
/**
|
|
95
100
|
* Pre: all paths must have been added to the PlotBoilerplate's drawable buffer (use the add(Drawable) function).
|
|
96
101
|
*
|
|
@@ -158,6 +163,17 @@ export declare class BezierPathInteractionHelper {
|
|
|
158
163
|
* @return {void}
|
|
159
164
|
**/
|
|
160
165
|
update(): void;
|
|
166
|
+
/**
|
|
167
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
168
|
+
* After calling this function the object might not hold valid data any more and
|
|
169
|
+
* should not be used any more.
|
|
170
|
+
*
|
|
171
|
+
* @method destroy
|
|
172
|
+
* @instance
|
|
173
|
+
* @memberof BezierPathInteractionHelper
|
|
174
|
+
* @return {void}
|
|
175
|
+
**/
|
|
176
|
+
destroy(): void;
|
|
161
177
|
private _locatePath;
|
|
162
178
|
private _handleDelete;
|
|
163
179
|
private _handleSingleVertexDelete;
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
* @modified 2021-01-03 Changed property to `autoAdjustPaths` in the HandlerOptions interface (typo).
|
|
22
22
|
* @modified 2021-01-03 Added following new functions: `addPathVertexDragStartListeners`, `removePathVertexDragStartListeners`, `addPathVertexDragEndListeners` and `removePathVertexDragEndListeners`.
|
|
23
23
|
* @modified 2021-03-31 Fixed the issue with the new AlloyFinger (Typescript).
|
|
24
|
-
* @
|
|
24
|
+
* @modified 2022-02-03 Changing the element to catch events (eventCatcher instead of canvas).
|
|
25
|
+
* @version 1.1.2
|
|
25
26
|
*
|
|
26
27
|
* @file BezierPathInteractionHelper
|
|
27
28
|
* @public
|
|
@@ -72,6 +73,7 @@ var BezierPathInteractionHelper = /** @class */ (function () {
|
|
|
72
73
|
* @param {function(number,BezierPath)} options.onPathRemoved (pathIndex,oldPath)
|
|
73
74
|
**/
|
|
74
75
|
function BezierPathInteractionHelper(pb, paths, options) {
|
|
76
|
+
var _this = this;
|
|
75
77
|
options = options || {};
|
|
76
78
|
this.pb = pb;
|
|
77
79
|
this.paths = [];
|
|
@@ -99,8 +101,15 @@ var BezierPathInteractionHelper = /** @class */ (function () {
|
|
|
99
101
|
for (var i = 0; i < paths.length; i++) {
|
|
100
102
|
this.addPath(paths[i]);
|
|
101
103
|
}
|
|
102
|
-
this.
|
|
103
|
-
|
|
104
|
+
this._mouseEnterListener = function () {
|
|
105
|
+
_this.mouseIsOver = true;
|
|
106
|
+
};
|
|
107
|
+
this._mouseLeaveListener = function () {
|
|
108
|
+
_this.mouseIsOver = false;
|
|
109
|
+
_this._clearMoveEvent();
|
|
110
|
+
};
|
|
111
|
+
this._mouseHandler = this._installMouseListener();
|
|
112
|
+
this._touchHandler = this._installTouchListener();
|
|
104
113
|
this._keyHandler = this._installKeyListener();
|
|
105
114
|
// Paths might have changed by auto-adjustment.
|
|
106
115
|
if (this.autoAdjustPaths)
|
|
@@ -173,6 +182,27 @@ var BezierPathInteractionHelper = /** @class */ (function () {
|
|
|
173
182
|
// Just re-run the calculation with the recent mouse/touch position
|
|
174
183
|
this._handleMoveEvent(this.currentB.x, this.currentB.y);
|
|
175
184
|
};
|
|
185
|
+
/**
|
|
186
|
+
* This function should invalidate any installed listeners and invalidate this object.
|
|
187
|
+
* After calling this function the object might not hold valid data any more and
|
|
188
|
+
* should not be used any more.
|
|
189
|
+
*
|
|
190
|
+
* @method destroy
|
|
191
|
+
* @instance
|
|
192
|
+
* @memberof BezierPathInteractionHelper
|
|
193
|
+
* @return {void}
|
|
194
|
+
**/
|
|
195
|
+
BezierPathInteractionHelper.prototype.destroy = function () {
|
|
196
|
+
for (var i = 0; i < this.paths.length; i++) {
|
|
197
|
+
this._removeDefaultPathListeners(this.paths[i]);
|
|
198
|
+
// removePathVertexDragStartListeners(this.paths[i], listener);
|
|
199
|
+
}
|
|
200
|
+
this.paths = [];
|
|
201
|
+
this.pb.eventCatcher.removeEventListener("mouseenter", this._mouseEnterListener);
|
|
202
|
+
this.pb.eventCatcher.removeEventListener("mouseleave", this._mouseLeaveListener);
|
|
203
|
+
this._mouseHandler.destroy();
|
|
204
|
+
this._keyHandler.destroy();
|
|
205
|
+
};
|
|
176
206
|
// +---------------------------------------------------------------------------------
|
|
177
207
|
// | A helper function to locate a given path instance inside the array.
|
|
178
208
|
// |
|
|
@@ -256,6 +286,7 @@ var BezierPathInteractionHelper = /** @class */ (function () {
|
|
|
256
286
|
}
|
|
257
287
|
}
|
|
258
288
|
else {
|
|
289
|
+
// TODO: remove drag listener from removed vertex!
|
|
259
290
|
deletedVertIndices.push(i);
|
|
260
291
|
}
|
|
261
292
|
}
|
|
@@ -281,6 +312,7 @@ var BezierPathInteractionHelper = /** @class */ (function () {
|
|
|
281
312
|
BezierPathInteractionHelper.prototype._replacePathAt = function (pathIndex, newPath) {
|
|
282
313
|
var oldPath = this.paths[pathIndex];
|
|
283
314
|
this.pb.remove(oldPath, false, true); // Remove with vertices
|
|
315
|
+
oldPath.destroy();
|
|
284
316
|
this._removeDefaultPathListeners(oldPath);
|
|
285
317
|
BezierPathInteractionHelper.setPathAutoAdjust(newPath);
|
|
286
318
|
this.paths[pathIndex] = newPath;
|
|
@@ -318,32 +350,33 @@ var BezierPathInteractionHelper = /** @class */ (function () {
|
|
|
318
350
|
var _self = this;
|
|
319
351
|
var afProps = {
|
|
320
352
|
// Todo: which event types does AlloyFinger use?
|
|
321
|
-
touchStart: function (
|
|
353
|
+
touchStart: function (_event) {
|
|
322
354
|
_self.mouseIsOver = true;
|
|
323
355
|
},
|
|
324
|
-
touchMove: function (
|
|
325
|
-
if (_self.pb.getDraggedElementCount() == 0 &&
|
|
356
|
+
touchMove: function (event) {
|
|
357
|
+
if (_self.pb.getDraggedElementCount() == 0 && event.touches.length > 0) {
|
|
326
358
|
// console.log('touchmove');
|
|
327
|
-
_self._handleMoveEvent(
|
|
359
|
+
_self._handleMoveEvent(event.touches[0].clientX, event.touches[0].clientY);
|
|
328
360
|
}
|
|
329
361
|
},
|
|
330
|
-
touchEnd: function (
|
|
362
|
+
touchEnd: function (_event) {
|
|
331
363
|
_self.mouseIsOver = false;
|
|
332
364
|
_self._clearMoveEvent();
|
|
333
365
|
}
|
|
334
366
|
};
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
else
|
|
339
|
-
new alloy_finger_1.AlloyFinger(this.pb.eventCatcher ? this.pb.eventCatcher : this.pb.
|
|
367
|
+
if (window["createAlloyFinger"]) {
|
|
368
|
+
return window["createAlloyFinger"](this.pb.eventCatcher ? this.pb.eventCatcher : this.pb.eventCatcher, afProps);
|
|
369
|
+
}
|
|
370
|
+
else {
|
|
371
|
+
return new alloy_finger_1.AlloyFinger(this.pb.eventCatcher ? this.pb.eventCatcher : this.pb.eventCatcher, afProps);
|
|
372
|
+
}
|
|
340
373
|
};
|
|
341
374
|
// +---------------------------------------------------------------------------------
|
|
342
375
|
// | Called once upon initialization.
|
|
343
376
|
// +-------------------------------
|
|
344
377
|
BezierPathInteractionHelper.prototype._installMouseListener = function () {
|
|
345
378
|
var _self = this;
|
|
346
|
-
new MouseHandler_1.MouseHandler(this.pb.
|
|
379
|
+
var mouseHandler = new MouseHandler_1.MouseHandler(this.pb.eventCatcher)
|
|
347
380
|
.up(function (e) {
|
|
348
381
|
if (e.params.wasDragged)
|
|
349
382
|
return;
|
|
@@ -383,18 +416,12 @@ var BezierPathInteractionHelper = /** @class */ (function () {
|
|
|
383
416
|
_self.onVertexInserted(_self.currentPathIndex, leftPath.bezierCurves.length, newPath, oldPath);
|
|
384
417
|
})
|
|
385
418
|
.move(function (e) {
|
|
386
|
-
// console.log('moved');
|
|
387
|
-
// if( _self.pb.getDraggedElementCount() == 0 )
|
|
388
419
|
_self.mouseIsOver = true;
|
|
389
420
|
_self._handleMoveEvent(e.params.pos.x, e.params.pos.y);
|
|
390
421
|
});
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
_self.pb.canvas.addEventListener("mouseleave", function () {
|
|
395
|
-
_self.mouseIsOver = false;
|
|
396
|
-
_self._clearMoveEvent();
|
|
397
|
-
});
|
|
422
|
+
this.pb.eventCatcher.addEventListener("mouseenter", this._mouseEnterListener);
|
|
423
|
+
this.pb.eventCatcher.addEventListener("mouseleave", this._mouseLeaveListener);
|
|
424
|
+
return mouseHandler;
|
|
398
425
|
};
|
|
399
426
|
// +---------------------------------------------------------------------------------
|
|
400
427
|
// | Called once upon initialization.
|
|
@@ -408,15 +435,6 @@ var BezierPathInteractionHelper = /** @class */ (function () {
|
|
|
408
435
|
});
|
|
409
436
|
};
|
|
410
437
|
// +---------------------------------------------------------------------------------
|
|
411
|
-
// | Adds vertex listeners to all path points.
|
|
412
|
-
// |
|
|
413
|
-
// | @param {BezierPath} path - The path to add vertex listeners to.
|
|
414
|
-
// +-------------------------------
|
|
415
|
-
// TODO: THIS CAN BE REMOVED?
|
|
416
|
-
// private _addDefaultPathListeners( path:BezierPath ) : void {
|
|
417
|
-
// BezierPathInteractionHelper.addPathVertexDragListeners( path, this._updateMinDistance );
|
|
418
|
-
// };
|
|
419
|
-
// +---------------------------------------------------------------------------------
|
|
420
438
|
// | Removes vertex listeners from all path points.
|
|
421
439
|
// |
|
|
422
440
|
// | @param {BezierPath} path - The path to remove vertex listeners from.
|