@plurid/plurid-engine 0.0.0-14 → 0.0.0-17
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/distribution/index.es.js +1181 -1176
- package/distribution/index.es.js.map +1 -1
- package/distribution/index.js +1182 -1177
- package/distribution/index.js.map +1 -1
- package/package.json +15 -15
package/distribution/index.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defaultConfiguration,
|
|
1
|
+
import { defaultConfiguration, protocols, HTTPS_PROTOCOL, HTTP_PROTOCOL, compareTypes, internationalization, ROOTS_GAP, LAYOUT_TYPES, PLANE_DEFAULT_ANGLE, PLURID_ROUTER_LOCATION_CHANGED } from "@plurid/plurid-data";
|
|
2
2
|
|
|
3
3
|
import { objects, mathematics, uuid } from "@plurid/plurid-functions";
|
|
4
4
|
|
|
@@ -46,1337 +46,1337 @@ var index$k = Object.freeze({
|
|
|
46
46
|
merge: merge
|
|
47
47
|
});
|
|
48
48
|
|
|
49
|
-
const
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
const extractPathname = location => {
|
|
50
|
+
const queryIndex = location.indexOf("?");
|
|
51
|
+
const noQueryPath = queryIndex === -1 ? location : location.substring(0, queryIndex);
|
|
52
|
+
const fragmentIndex = noQueryPath.indexOf("#:~:");
|
|
53
|
+
const noFragmentPath = fragmentIndex === -1 ? noQueryPath : noQueryPath.substring(0, fragmentIndex);
|
|
54
|
+
return noFragmentPath;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const extractParametersAndMatch = (location, route) => {
|
|
58
|
+
const routeElements = splitPath(route);
|
|
59
|
+
const parameters = [];
|
|
60
|
+
routeElements.forEach((routeElement => {
|
|
61
|
+
if (routeElement[0] === ":") {
|
|
62
|
+
parameters.push(routeElement);
|
|
63
|
+
} else {
|
|
64
|
+
parameters.push("");
|
|
58
65
|
}
|
|
59
|
-
return treePlane;
|
|
60
66
|
}));
|
|
61
|
-
|
|
67
|
+
const {locationElements: locationElements, comparingPath: comparingPath} = computeComparingPath(location, parameters);
|
|
68
|
+
if (comparingPath !== route) {
|
|
69
|
+
return {
|
|
70
|
+
match: false,
|
|
71
|
+
parameters: {},
|
|
72
|
+
elements: locationElements
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
const parametersValues = extractParametersValues(parameters, locationElements);
|
|
76
|
+
return {
|
|
77
|
+
match: true,
|
|
78
|
+
parameters: parametersValues,
|
|
79
|
+
elements: locationElements
|
|
80
|
+
};
|
|
62
81
|
};
|
|
63
82
|
|
|
64
|
-
const
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return updatedPlane;
|
|
71
|
-
}
|
|
72
|
-
if (treePlane.children) {
|
|
73
|
-
const updatedChildren = updateTreeByPlaneIDWithLinkCoordinates(treePlane.children, planeID, linkCoordinates);
|
|
74
|
-
const updatedPlane = Object.assign(Object.assign({}, treePlane), {
|
|
75
|
-
children: updatedChildren
|
|
76
|
-
});
|
|
77
|
-
return updatedPlane;
|
|
83
|
+
const extractParametersValues = (parameters, pathElements) => {
|
|
84
|
+
const parametersValues = {};
|
|
85
|
+
parameters.forEach(((parameter, index) => {
|
|
86
|
+
if (parameter) {
|
|
87
|
+
const parameterKey = parameter.slice(1);
|
|
88
|
+
parametersValues[parameterKey] = pathElements[index];
|
|
78
89
|
}
|
|
79
|
-
return treePlane;
|
|
80
90
|
}));
|
|
81
|
-
return
|
|
91
|
+
return parametersValues;
|
|
82
92
|
};
|
|
83
93
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
94
|
+
const computeComparingPath = (path, parameters) => {
|
|
95
|
+
const pathname = extractPathname(path);
|
|
96
|
+
const locationElements = splitPath(pathname);
|
|
97
|
+
const comparingPathElements = [ ...locationElements ];
|
|
98
|
+
for (const index of locationElements.keys()) {
|
|
99
|
+
if (parameters[index]) {
|
|
100
|
+
comparingPathElements[index] = parameters[index];
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
const comparingPath = comparingPathElements.join("/");
|
|
104
|
+
return {
|
|
105
|
+
locationElements: locationElements,
|
|
106
|
+
comparingPath: comparingPath
|
|
107
|
+
};
|
|
108
|
+
};
|
|
89
109
|
|
|
90
|
-
|
|
91
|
-
__proto__: null,
|
|
92
|
-
configuration: index$k,
|
|
93
|
-
tree: index$j
|
|
94
|
-
});
|
|
110
|
+
const splitPath = path => path.split("/").filter((i => i !== ""));
|
|
95
111
|
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
const
|
|
99
|
-
const
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
112
|
+
const extractQuery = path => {
|
|
113
|
+
const fragmentIndex = path.indexOf("#:~:");
|
|
114
|
+
const noFragmentPath = fragmentIndex === -1 ? path : path.substring(0, fragmentIndex);
|
|
115
|
+
const querySplit = noFragmentPath.split("?");
|
|
116
|
+
if (querySplit.length === 2) {
|
|
117
|
+
const queryValues = {};
|
|
118
|
+
const query = querySplit[1];
|
|
119
|
+
const queryItems = query.split("&");
|
|
120
|
+
for (const item of queryItems) {
|
|
121
|
+
const queryValue = item.split("=");
|
|
122
|
+
const id = queryValue[0];
|
|
123
|
+
const value = decodeURIComponent(queryValue[1]);
|
|
124
|
+
queryValues[id] = value;
|
|
125
|
+
}
|
|
126
|
+
return queryValues;
|
|
127
|
+
} else {
|
|
128
|
+
return {};
|
|
104
129
|
}
|
|
105
|
-
|
|
106
|
-
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
const extractFragments = location => {
|
|
133
|
+
if (!location) {
|
|
134
|
+
return {
|
|
135
|
+
texts: [],
|
|
136
|
+
elements: []
|
|
137
|
+
};
|
|
107
138
|
}
|
|
108
|
-
|
|
109
|
-
|
|
139
|
+
const split = location.split("#:~:");
|
|
140
|
+
const fragmentsValues = split[1];
|
|
141
|
+
if (!fragmentsValues) {
|
|
142
|
+
return {
|
|
143
|
+
texts: [],
|
|
144
|
+
elements: []
|
|
145
|
+
};
|
|
110
146
|
}
|
|
111
|
-
|
|
112
|
-
|
|
147
|
+
const fragmentItems = fragmentsValues.split("&");
|
|
148
|
+
const textFragments = [];
|
|
149
|
+
const elementFragments = [];
|
|
150
|
+
for (const item of fragmentItems) {
|
|
151
|
+
const parsedFragment = parseFragment(item);
|
|
152
|
+
if (parsedFragment) {
|
|
153
|
+
switch (parsedFragment.type) {
|
|
154
|
+
case "text":
|
|
155
|
+
textFragments.push(parsedFragment);
|
|
156
|
+
break;
|
|
157
|
+
|
|
158
|
+
case "element":
|
|
159
|
+
elementFragments.push(parsedFragment);
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
113
163
|
}
|
|
114
|
-
return
|
|
164
|
+
return {
|
|
165
|
+
texts: textFragments,
|
|
166
|
+
elements: elementFragments
|
|
167
|
+
};
|
|
115
168
|
};
|
|
116
169
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
170
|
+
const parseFragment = fragment => {
|
|
171
|
+
const fragmentData = fragment.split("=");
|
|
172
|
+
const fragmentType = fragmentData[0];
|
|
173
|
+
const fragmentValues = fragmentData[1];
|
|
174
|
+
switch (fragmentType.toLowerCase()) {
|
|
175
|
+
case "text":
|
|
176
|
+
{
|
|
177
|
+
const textValues = fragmentValues.split(",");
|
|
178
|
+
const textStart = textValues[0];
|
|
179
|
+
const textEnd = textValues[1];
|
|
180
|
+
const textOccurence = extractOccurence(textValues[2]);
|
|
181
|
+
if (!textStart) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
return {
|
|
185
|
+
type: "text",
|
|
186
|
+
start: textStart,
|
|
187
|
+
end: textEnd || "",
|
|
188
|
+
occurence: textOccurence
|
|
189
|
+
};
|
|
190
|
+
}
|
|
123
191
|
|
|
124
|
-
|
|
192
|
+
case "element":
|
|
193
|
+
{
|
|
194
|
+
const elementValues = fragmentValues.split(",");
|
|
195
|
+
const elementID = elementValues[0];
|
|
196
|
+
const elementOccurence = extractOccurence(elementValues[1]);
|
|
197
|
+
if (!elementID) {
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
return {
|
|
201
|
+
type: "element",
|
|
202
|
+
id: elementID,
|
|
203
|
+
occurence: elementOccurence
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
return undefined;
|
|
208
|
+
};
|
|
125
209
|
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
210
|
+
const extractOccurence = occurence => {
|
|
211
|
+
if (!occurence) {
|
|
212
|
+
return 0;
|
|
213
|
+
}
|
|
214
|
+
const occurenceMatch = occurence.match(/\[(\d*)\]/);
|
|
215
|
+
const occurenceValue = occurenceMatch ? parseInt(occurenceMatch[1]) : 0;
|
|
216
|
+
return occurenceValue;
|
|
217
|
+
};
|
|
132
218
|
|
|
133
|
-
const
|
|
219
|
+
const stringInsertInitial = (value, insert) => {
|
|
220
|
+
if (!value.startsWith(insert)) {
|
|
221
|
+
value = insert + value;
|
|
222
|
+
}
|
|
223
|
+
return value;
|
|
224
|
+
};
|
|
134
225
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
226
|
+
const stringRemoveTrailing = (value, trail) => {
|
|
227
|
+
if (value.endsWith(trail)) {
|
|
228
|
+
value = value.slice(0, value.length - trail.length);
|
|
229
|
+
}
|
|
230
|
+
return value;
|
|
231
|
+
};
|
|
138
232
|
|
|
139
|
-
|
|
140
|
-
return makeQuaternion(-quaternion.x, -quaternion.y, -quaternion.z, quaternion.w);
|
|
141
|
-
}
|
|
233
|
+
const PATH_SEPARATOR = "/";
|
|
142
234
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
const cY = Math.cos(y / 2);
|
|
149
|
-
const cZ = Math.cos(z / 2);
|
|
150
|
-
const sX = Math.sin(x / 2);
|
|
151
|
-
const sY = Math.sin(y / 2);
|
|
152
|
-
const sZ = Math.sin(z / 2);
|
|
153
|
-
const xQ = sX * cY * cZ - cX * sY * sZ;
|
|
154
|
-
const yQ = cX * sY * cZ + sX * cY * sZ;
|
|
155
|
-
const zQ = cX * cY * sZ + sX * sY * cZ;
|
|
156
|
-
const wQ = cX * cY * cZ - sX * sY * sZ;
|
|
157
|
-
return makeQuaternion(xQ, yQ, zQ, wQ);
|
|
158
|
-
}
|
|
235
|
+
const cleanupPath = value => {
|
|
236
|
+
value = stringInsertInitial(value, PATH_SEPARATOR);
|
|
237
|
+
value = stringRemoveTrailing(value, PATH_SEPARATOR);
|
|
238
|
+
return value;
|
|
239
|
+
};
|
|
159
240
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
const sine = Math.sin(halfAngle);
|
|
164
|
-
q.x = x * sine;
|
|
165
|
-
q.y = y * sine;
|
|
166
|
-
q.z = z * sine;
|
|
167
|
-
q.w = Math.cos(halfAngle);
|
|
168
|
-
return q;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
function quaternionMultiply(quaternionArray) {
|
|
172
|
-
const firstQuaternion = quaternionArray[0];
|
|
173
|
-
const valueQuaternion = Object.assign({}, firstQuaternion);
|
|
174
|
-
for (let i = 1; i < quaternionArray.length; i++) {
|
|
175
|
-
const nextQuaternion = quaternionArray[i];
|
|
176
|
-
const w = valueQuaternion.w * nextQuaternion.w - valueQuaternion.x * nextQuaternion.x - valueQuaternion.y * nextQuaternion.y - valueQuaternion.z * nextQuaternion.z;
|
|
177
|
-
const x = valueQuaternion.x * nextQuaternion.w + valueQuaternion.w * nextQuaternion.x + valueQuaternion.y * nextQuaternion.z - valueQuaternion.z * nextQuaternion.y;
|
|
178
|
-
const y = valueQuaternion.y * nextQuaternion.w + valueQuaternion.w * nextQuaternion.y + valueQuaternion.z * nextQuaternion.x - valueQuaternion.x * nextQuaternion.z;
|
|
179
|
-
const z = valueQuaternion.z * nextQuaternion.w + valueQuaternion.w * nextQuaternion.z + valueQuaternion.x * nextQuaternion.y - valueQuaternion.y * nextQuaternion.x;
|
|
180
|
-
valueQuaternion.x = x;
|
|
181
|
-
valueQuaternion.y = y;
|
|
182
|
-
valueQuaternion.z = z;
|
|
183
|
-
valueQuaternion.w = w;
|
|
241
|
+
const computePlaneAddress = (plane, route, origin = "origin") => {
|
|
242
|
+
if (origin === "origin" && typeof location !== "undefined" && location.host) {
|
|
243
|
+
origin = location.host;
|
|
184
244
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
245
|
+
const cleanPlane = extractPathname(plane);
|
|
246
|
+
const planeAddressType = checkPlaneAddressType(cleanPlane);
|
|
247
|
+
switch (planeAddressType) {
|
|
248
|
+
case "http":
|
|
249
|
+
case "https":
|
|
250
|
+
case "pttp":
|
|
251
|
+
return cleanPlane;
|
|
252
|
+
}
|
|
253
|
+
origin = stringRemoveTrailing(origin, "/");
|
|
254
|
+
const absolutePlane = isAbsolutePlane(plane);
|
|
255
|
+
const path = route && route !== "/" ? absolutePlane ? cleanupPath(cleanPlane) : cleanupPath(route) + cleanupPath(cleanPlane) : cleanupPath(cleanPlane);
|
|
256
|
+
const planeAddress = protocols.plurid + origin + path;
|
|
257
|
+
return planeAddress;
|
|
258
|
+
};
|
|
198
259
|
|
|
199
|
-
|
|
200
|
-
const num = quaternion.x * 2;
|
|
201
|
-
const num2 = quaternion.y * 2;
|
|
202
|
-
const num3 = quaternion.z * 2;
|
|
203
|
-
const num4 = quaternion.x * num;
|
|
204
|
-
const num5 = quaternion.y * num2;
|
|
205
|
-
const num6 = quaternion.z * num3;
|
|
206
|
-
const num7 = quaternion.x * num2;
|
|
207
|
-
const num8 = quaternion.x * num3;
|
|
208
|
-
const num9 = quaternion.y * num3;
|
|
209
|
-
const num10 = quaternion.w * num;
|
|
210
|
-
const num11 = quaternion.w * num2;
|
|
211
|
-
const num12 = quaternion.w * num3;
|
|
212
|
-
return [ 1 - (num5 + num6), num7 - num12, num8 + num11, 0, num7 + num12, 1 - (num4 + num6), num9 - num10, 0, num8 - num11, num9 + num10, 1 - (num4 + num5), 0, 0, 0, 0, 1 ];
|
|
213
|
-
}
|
|
260
|
+
const isAbsolutePlane = value => value[0] === "/";
|
|
214
261
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
});
|
|
262
|
+
const checkPlaneAddressType = value => {
|
|
263
|
+
value = value.toLowerCase().trim();
|
|
264
|
+
if (value.startsWith(protocols.plurid)) {
|
|
265
|
+
return "pttp";
|
|
266
|
+
}
|
|
267
|
+
if (value.startsWith(protocols.https)) {
|
|
268
|
+
return HTTPS_PROTOCOL;
|
|
269
|
+
}
|
|
270
|
+
if (value.startsWith(protocols.http)) {
|
|
271
|
+
return HTTP_PROTOCOL;
|
|
272
|
+
}
|
|
273
|
+
return "relative";
|
|
274
|
+
};
|
|
229
275
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
return rotationMatrix;
|
|
237
|
-
}
|
|
276
|
+
const removeTrailingSlash = value => {
|
|
277
|
+
if (value.endsWith("/") && value.length > 1) {
|
|
278
|
+
return value.slice(0, value.length - 1);
|
|
279
|
+
}
|
|
280
|
+
return value;
|
|
281
|
+
};
|
|
238
282
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
283
|
+
const cleanPathValue = value => {
|
|
284
|
+
const queryStart = value.indexOf("?");
|
|
285
|
+
if (queryStart < 0) {
|
|
286
|
+
return removeTrailingSlash(value);
|
|
287
|
+
}
|
|
288
|
+
return removeTrailingSlash(value.substring(0, queryStart));
|
|
289
|
+
};
|
|
242
290
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
291
|
+
const checkParameterLength = (parameter, length, compareType) => {
|
|
292
|
+
const parameterLength = parameter.length;
|
|
293
|
+
switch (compareType) {
|
|
294
|
+
case compareTypes.equal:
|
|
295
|
+
return parameterLength === length;
|
|
246
296
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
const a00 = matrixA[0];
|
|
250
|
-
const a01 = matrixA[1];
|
|
251
|
-
const a02 = matrixA[2];
|
|
252
|
-
const a03 = matrixA[3];
|
|
253
|
-
const a10 = matrixA[4];
|
|
254
|
-
const a11 = matrixA[5];
|
|
255
|
-
const a12 = matrixA[6];
|
|
256
|
-
const a13 = matrixA[7];
|
|
257
|
-
const a20 = matrixA[8];
|
|
258
|
-
const a21 = matrixA[9];
|
|
259
|
-
const a22 = matrixA[10];
|
|
260
|
-
const a23 = matrixA[11];
|
|
261
|
-
const a30 = matrixA[12];
|
|
262
|
-
const a31 = matrixA[13];
|
|
263
|
-
const a32 = matrixA[14];
|
|
264
|
-
const a33 = matrixA[15];
|
|
265
|
-
let b0 = matrixB[0];
|
|
266
|
-
let b1 = matrixB[1];
|
|
267
|
-
let b2 = matrixB[2];
|
|
268
|
-
let b3 = matrixB[3];
|
|
269
|
-
result[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
270
|
-
result[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
271
|
-
result[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
272
|
-
result[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
273
|
-
b0 = matrixB[4];
|
|
274
|
-
b1 = matrixB[5];
|
|
275
|
-
b2 = matrixB[6];
|
|
276
|
-
b3 = matrixB[7];
|
|
277
|
-
result[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
278
|
-
result[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
279
|
-
result[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
280
|
-
result[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
281
|
-
b0 = matrixB[8];
|
|
282
|
-
b1 = matrixB[9];
|
|
283
|
-
b2 = matrixB[10];
|
|
284
|
-
b3 = matrixB[11];
|
|
285
|
-
result[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
286
|
-
result[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
287
|
-
result[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
288
|
-
result[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
289
|
-
b0 = matrixB[12];
|
|
290
|
-
b1 = matrixB[13];
|
|
291
|
-
b2 = matrixB[14];
|
|
292
|
-
b3 = matrixB[15];
|
|
293
|
-
result[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
294
|
-
result[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
295
|
-
result[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
296
|
-
result[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
297
|
-
return result;
|
|
298
|
-
}
|
|
297
|
+
case compareTypes.equalLessThan:
|
|
298
|
+
return parameterLength <= length;
|
|
299
299
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
for (let i = 1; i < matrices.length; i++) {
|
|
303
|
-
inputMatrix = multiplyMatrices$1(inputMatrix, matrices[i]);
|
|
304
|
-
}
|
|
305
|
-
return inputMatrix;
|
|
306
|
-
}
|
|
300
|
+
case compareTypes.lessThan:
|
|
301
|
+
return parameterLength < length;
|
|
307
302
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
}
|
|
303
|
+
case compareTypes.equalGreaterThan:
|
|
304
|
+
return parameterLength >= length;
|
|
311
305
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
rotateMatrix: rotateMatrix,
|
|
315
|
-
translateMatrix: translateMatrix$1,
|
|
316
|
-
scaleMatrix: scaleMatrix$1,
|
|
317
|
-
multiplyMatrices: multiplyMatrices$1,
|
|
318
|
-
multiplyArrayOfMatrices: multiplyArrayOfMatrices,
|
|
319
|
-
matrixArrayToCSSMatrix: matrixArrayToCSSMatrix
|
|
320
|
-
});
|
|
306
|
+
case compareTypes.greaterThan:
|
|
307
|
+
return parameterLength > length;
|
|
321
308
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
309
|
+
default:
|
|
310
|
+
return parameterLength <= length;
|
|
311
|
+
}
|
|
325
312
|
};
|
|
326
313
|
|
|
327
|
-
const
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
314
|
+
const checkValidPath = (validationParameters, parameters) => {
|
|
315
|
+
if (validationParameters) {
|
|
316
|
+
for (const [parameterKey, parameterData] of Object.entries(validationParameters)) {
|
|
317
|
+
const {length: length, lengthType: lengthType, startsWith: startsWith, endsWith: endsWith, includes: includes} = parameterData;
|
|
318
|
+
const paramaterValue = parameters[parameterKey];
|
|
319
|
+
if (!paramaterValue) {
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
if (startsWith && !paramaterValue.startsWith(startsWith)) {
|
|
323
|
+
return false;
|
|
324
|
+
}
|
|
325
|
+
if (endsWith && !paramaterValue.endsWith(endsWith)) {
|
|
326
|
+
return false;
|
|
327
|
+
}
|
|
328
|
+
if (includes && !includes.includes(paramaterValue)) {
|
|
329
|
+
return false;
|
|
330
|
+
}
|
|
331
|
+
if (length) {
|
|
332
|
+
const validLength = checkParameterLength(paramaterValue, length, lengthType);
|
|
333
|
+
return validLength;
|
|
335
334
|
}
|
|
336
|
-
result[i][j] = sum;
|
|
337
335
|
}
|
|
338
336
|
}
|
|
339
|
-
return
|
|
337
|
+
return true;
|
|
340
338
|
};
|
|
341
339
|
|
|
342
|
-
const
|
|
343
|
-
if (
|
|
344
|
-
|
|
340
|
+
const cleanPathElement = path => {
|
|
341
|
+
if (path[0] === "/") {
|
|
342
|
+
return path.slice(1);
|
|
345
343
|
}
|
|
346
|
-
|
|
347
|
-
let result = first;
|
|
348
|
-
for (const [index, matrix] of matrices.entries()) {
|
|
349
|
-
if (index === 0) {
|
|
350
|
-
continue;
|
|
351
|
-
}
|
|
352
|
-
result = multiplyMatrices(result, matrix);
|
|
353
|
-
}
|
|
354
|
-
return result;
|
|
355
|
-
};
|
|
356
|
-
|
|
357
|
-
const arrayToMatrix = array => {
|
|
358
|
-
const matrix = [];
|
|
359
|
-
for (let i = 0; i < array.length; i += 4) {
|
|
360
|
-
const row = [];
|
|
361
|
-
row.push(array[i]);
|
|
362
|
-
row.push(array[i + 1]);
|
|
363
|
-
row.push(array[i + 2]);
|
|
364
|
-
row.push(array[i + 3]);
|
|
365
|
-
matrix.push(row);
|
|
366
|
-
}
|
|
367
|
-
return matrix;
|
|
344
|
+
return path;
|
|
368
345
|
};
|
|
369
346
|
|
|
370
|
-
|
|
347
|
+
var index$j = Object.freeze({
|
|
348
|
+
__proto__: null,
|
|
349
|
+
cleanPathElement: cleanPathElement
|
|
350
|
+
});
|
|
371
351
|
|
|
372
|
-
const
|
|
373
|
-
const
|
|
374
|
-
|
|
352
|
+
const mapPathsToRoutes = (paths, view) => {
|
|
353
|
+
const routes = [];
|
|
354
|
+
for (const [key, path] of Object.entries(paths)) {
|
|
355
|
+
const pathView = view[key];
|
|
356
|
+
if (pathView) {
|
|
357
|
+
const route = {
|
|
358
|
+
value: ""
|
|
359
|
+
};
|
|
360
|
+
routes.push(route);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
return routes;
|
|
375
364
|
};
|
|
376
365
|
|
|
377
|
-
const
|
|
378
|
-
const
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
366
|
+
const pluridLinkPathDivider = route => {
|
|
367
|
+
const windowProtocol = typeof window === "undefined" ? "http" : window.location.protocol.replace(":", "");
|
|
368
|
+
const windowHost = typeof window === "undefined" ? "localhost:63000" : window.location.host;
|
|
369
|
+
const split = route.split("://").filter((value => value !== "")).map((value => cleanPathElement(value)));
|
|
370
|
+
let protocol = windowProtocol;
|
|
371
|
+
const host = {
|
|
372
|
+
value: windowHost,
|
|
373
|
+
controlled: false
|
|
374
|
+
};
|
|
375
|
+
const path = {
|
|
376
|
+
value: "",
|
|
377
|
+
parameters: {},
|
|
378
|
+
query: {}
|
|
379
|
+
};
|
|
380
|
+
const space = {
|
|
381
|
+
value: "",
|
|
382
|
+
parameters: {},
|
|
383
|
+
query: {}
|
|
384
|
+
};
|
|
385
|
+
const universe = {
|
|
386
|
+
value: "",
|
|
387
|
+
parameters: {},
|
|
388
|
+
query: {}
|
|
389
|
+
};
|
|
390
|
+
const cluster = {
|
|
391
|
+
value: "",
|
|
392
|
+
parameters: {},
|
|
393
|
+
query: {}
|
|
394
|
+
};
|
|
395
|
+
const plane = {
|
|
396
|
+
value: "",
|
|
397
|
+
parameters: {},
|
|
398
|
+
query: {},
|
|
399
|
+
fragments: {
|
|
400
|
+
texts: [],
|
|
401
|
+
elements: []
|
|
384
402
|
}
|
|
385
|
-
return value.toFixed(2) + " ";
|
|
386
403
|
};
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
404
|
+
const valid = false;
|
|
405
|
+
if (split.length === 0 || split.length > 7) {
|
|
406
|
+
const url = {
|
|
407
|
+
protocol: {
|
|
408
|
+
value: protocol,
|
|
409
|
+
secure: true
|
|
410
|
+
},
|
|
411
|
+
host: host,
|
|
412
|
+
path: path,
|
|
413
|
+
space: space,
|
|
414
|
+
universe: universe,
|
|
415
|
+
cluster: cluster,
|
|
416
|
+
plane: plane,
|
|
417
|
+
valid: valid
|
|
418
|
+
};
|
|
419
|
+
return url;
|
|
390
420
|
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
421
|
+
if (route.startsWith("/://")) {
|
|
422
|
+
const routeSplit = split.slice(1);
|
|
423
|
+
switch (routeSplit.length) {
|
|
424
|
+
case 1:
|
|
425
|
+
path.value = routeSplit[0];
|
|
426
|
+
break;
|
|
394
427
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
428
|
+
case 5:
|
|
429
|
+
path.value = routeSplit[0];
|
|
430
|
+
space.value = routeSplit[1];
|
|
431
|
+
universe.value = routeSplit[2];
|
|
432
|
+
cluster.value = routeSplit[3];
|
|
433
|
+
plane.value = routeSplit[4];
|
|
434
|
+
break;
|
|
435
|
+
}
|
|
436
|
+
const url = {
|
|
437
|
+
protocol: {
|
|
438
|
+
value: protocol,
|
|
439
|
+
secure: true
|
|
440
|
+
},
|
|
441
|
+
host: host,
|
|
442
|
+
path: path,
|
|
443
|
+
space: space,
|
|
444
|
+
universe: universe,
|
|
445
|
+
cluster: cluster,
|
|
446
|
+
plane: plane,
|
|
447
|
+
valid: true
|
|
448
|
+
};
|
|
449
|
+
return url;
|
|
450
|
+
}
|
|
451
|
+
if (split[0] !== "http" && split[0] !== "https" && split[0] !== "chrome-extension") {
|
|
452
|
+
switch (split.length) {
|
|
453
|
+
case 1:
|
|
454
|
+
plane.value = split[0];
|
|
455
|
+
break;
|
|
402
456
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
const m = [ [ x, 0, z, 0 ], [ 0, 1, 0, 0 ], [ y, 0, x, 0 ], [ 0, 0, 0, 1 ] ];
|
|
408
|
-
return m;
|
|
409
|
-
};
|
|
457
|
+
case 2:
|
|
458
|
+
cluster.value = split[0];
|
|
459
|
+
plane.value = split[1];
|
|
460
|
+
break;
|
|
410
461
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
return m;
|
|
417
|
-
};
|
|
462
|
+
case 3:
|
|
463
|
+
universe.value = split[0];
|
|
464
|
+
cluster.value = split[1];
|
|
465
|
+
plane.value = split[2];
|
|
466
|
+
break;
|
|
418
467
|
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
468
|
+
case 4:
|
|
469
|
+
space.value = split[0];
|
|
470
|
+
universe.value = split[1];
|
|
471
|
+
cluster.value = split[2];
|
|
472
|
+
plane.value = split[3];
|
|
473
|
+
break;
|
|
423
474
|
|
|
424
|
-
|
|
475
|
+
case 5:
|
|
476
|
+
path.value = split[0];
|
|
477
|
+
space.value = split[1];
|
|
478
|
+
universe.value = split[2];
|
|
479
|
+
cluster.value = split[3];
|
|
480
|
+
plane.value = split[4];
|
|
481
|
+
break;
|
|
425
482
|
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
const num8 = quaternion.x * num3;
|
|
435
|
-
const num9 = quaternion.y * num3;
|
|
436
|
-
const num10 = quaternion.w * num;
|
|
437
|
-
const num11 = quaternion.w * num2;
|
|
438
|
-
const num12 = quaternion.w * num3;
|
|
439
|
-
return [ [ 1 - (num5 + num6), num7 - num12, num8 + num11, 0 ], [ num7 + num12, 1 - (num4 + num6), num9 - num10, 0 ], [ num8 - num11, num9 + num10, 1 - (num4 + num5), 0 ], [ 0, 0, 0, 1 ] ];
|
|
440
|
-
}
|
|
483
|
+
case 6:
|
|
484
|
+
host.value = split[0];
|
|
485
|
+
path.value = split[1];
|
|
486
|
+
space.value = split[2];
|
|
487
|
+
universe.value = split[3];
|
|
488
|
+
cluster.value = split[4];
|
|
489
|
+
plane.value = split[5];
|
|
490
|
+
break;
|
|
441
491
|
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
492
|
+
default:
|
|
493
|
+
const url = {
|
|
494
|
+
protocol: {
|
|
495
|
+
value: protocol,
|
|
496
|
+
secure: true
|
|
497
|
+
},
|
|
498
|
+
host: host,
|
|
499
|
+
path: path,
|
|
500
|
+
space: space,
|
|
501
|
+
universe: universe,
|
|
502
|
+
cluster: cluster,
|
|
503
|
+
plane: plane,
|
|
504
|
+
valid: valid
|
|
505
|
+
};
|
|
506
|
+
return url;
|
|
507
|
+
}
|
|
508
|
+
} else {
|
|
509
|
+
switch (split.length) {
|
|
510
|
+
case 3:
|
|
511
|
+
protocol = split[0];
|
|
512
|
+
host.value = split[1];
|
|
513
|
+
path.value = split[2];
|
|
514
|
+
break;
|
|
446
515
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
516
|
+
case 7:
|
|
517
|
+
protocol = split[0];
|
|
518
|
+
host.value = split[1];
|
|
519
|
+
path.value = split[2];
|
|
520
|
+
space.value = split[3];
|
|
521
|
+
universe.value = split[4];
|
|
522
|
+
cluster.value = split[5];
|
|
523
|
+
plane.value = split[6];
|
|
524
|
+
break;
|
|
451
525
|
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
ABig = Math.abs(A[r][c]);
|
|
468
|
-
rBig = r;
|
|
469
|
-
}
|
|
470
|
-
r++;
|
|
526
|
+
default:
|
|
527
|
+
const url = {
|
|
528
|
+
protocol: {
|
|
529
|
+
value: protocol,
|
|
530
|
+
secure: true
|
|
531
|
+
},
|
|
532
|
+
host: host,
|
|
533
|
+
path: path,
|
|
534
|
+
space: space,
|
|
535
|
+
universe: universe,
|
|
536
|
+
cluster: cluster,
|
|
537
|
+
plane: plane,
|
|
538
|
+
valid: valid
|
|
539
|
+
};
|
|
540
|
+
return url;
|
|
471
541
|
}
|
|
472
|
-
|
|
473
|
-
|
|
542
|
+
}
|
|
543
|
+
const url = {
|
|
544
|
+
protocol: {
|
|
545
|
+
value: protocol,
|
|
546
|
+
secure: true
|
|
547
|
+
},
|
|
548
|
+
host: host,
|
|
549
|
+
path: path,
|
|
550
|
+
space: space,
|
|
551
|
+
universe: universe,
|
|
552
|
+
cluster: cluster,
|
|
553
|
+
plane: plane,
|
|
554
|
+
valid: true
|
|
555
|
+
};
|
|
556
|
+
return url;
|
|
557
|
+
};
|
|
558
|
+
|
|
559
|
+
const resolveRoute = (route, protocol, host) => {
|
|
560
|
+
const windowProtocol = typeof window === "undefined" ? protocol || "http" : window.location.protocol.replace(":", "");
|
|
561
|
+
const windowHost = typeof window === "undefined" ? host || "localhost:63000" : window.location.host;
|
|
562
|
+
const divisions = pluridLinkPathDivider(route);
|
|
563
|
+
const defaultPathname = typeof window !== "undefined" ? window.location.pathname === "/" ? "p" : window.location.pathname.slice(1) : divisions.path.value ? divisions.path.value : "p";
|
|
564
|
+
const protocolDivision = divisions.protocol.value || windowProtocol;
|
|
565
|
+
const hostDivision = divisions.host.value ? divisions.host : {
|
|
566
|
+
value: windowHost,
|
|
567
|
+
controlled: true
|
|
568
|
+
};
|
|
569
|
+
const path = divisions.path.value ? divisions.path : {
|
|
570
|
+
value: defaultPathname,
|
|
571
|
+
parameters: {},
|
|
572
|
+
query: {}
|
|
573
|
+
};
|
|
574
|
+
const space = divisions.space.value ? divisions.space : {
|
|
575
|
+
value: "s",
|
|
576
|
+
parameters: {},
|
|
577
|
+
query: {}
|
|
578
|
+
};
|
|
579
|
+
const universe = divisions.universe.value ? divisions.universe : {
|
|
580
|
+
value: "u",
|
|
581
|
+
parameters: {},
|
|
582
|
+
query: {}
|
|
583
|
+
};
|
|
584
|
+
const cluster = divisions.cluster.value ? divisions.cluster : {
|
|
585
|
+
value: "c",
|
|
586
|
+
parameters: {},
|
|
587
|
+
query: {}
|
|
588
|
+
};
|
|
589
|
+
const plane = divisions.plane;
|
|
590
|
+
const separator = "://";
|
|
591
|
+
if (!plane.value && route !== "/") {
|
|
592
|
+
const resolvers = [ protocolDivision, hostDivision.value, path.value ];
|
|
593
|
+
const absoluteRoute = resolvers.join(separator);
|
|
594
|
+
return {
|
|
595
|
+
protocol: protocolDivision,
|
|
596
|
+
host: hostDivision,
|
|
597
|
+
path: path,
|
|
598
|
+
space: space,
|
|
599
|
+
universe: universe,
|
|
600
|
+
cluster: cluster,
|
|
601
|
+
plane: plane,
|
|
602
|
+
route: absoluteRoute
|
|
603
|
+
};
|
|
604
|
+
}
|
|
605
|
+
[ protocolDivision, hostDivision.value, path.value, space.value, universe.value, cluster.value, cleanPathElement(plane.value) ];
|
|
606
|
+
return {
|
|
607
|
+
protocol: "",
|
|
608
|
+
host: "",
|
|
609
|
+
path: path,
|
|
610
|
+
space: "",
|
|
611
|
+
universe: "",
|
|
612
|
+
cluster: "",
|
|
613
|
+
plane: "",
|
|
614
|
+
route: route
|
|
615
|
+
};
|
|
616
|
+
};
|
|
617
|
+
|
|
618
|
+
const updateTreePlane$1 = (tree, page) => {
|
|
619
|
+
const updatedTree = tree.map((treePlane => {
|
|
620
|
+
if (treePlane.planeID === page.planeID) {
|
|
621
|
+
return Object.assign({}, page);
|
|
474
622
|
}
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
A[r] = temp;
|
|
480
|
-
temp = B[c];
|
|
481
|
-
B[c] = B[r];
|
|
482
|
-
B[r] = temp;
|
|
623
|
+
if (treePlane.children) {
|
|
624
|
+
return Object.assign(Object.assign({}, treePlane), {
|
|
625
|
+
children: updateTreePlane$1(treePlane.children, page)
|
|
626
|
+
});
|
|
483
627
|
}
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
Br[s] = Br[s] + f * Bc[s];
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
} else {
|
|
500
|
-
f = Ac[c];
|
|
501
|
-
for (s = c; s < cols; s++) {
|
|
502
|
-
Ar[s] = Ar[s] / f;
|
|
503
|
-
}
|
|
504
|
-
for (s = 0; s < cols; s++) {
|
|
505
|
-
Br[s] = Br[s] / f;
|
|
506
|
-
}
|
|
507
|
-
}
|
|
628
|
+
return treePlane;
|
|
629
|
+
}));
|
|
630
|
+
return updatedTree;
|
|
631
|
+
};
|
|
632
|
+
|
|
633
|
+
const updateTreeByPlaneIDWithLinkCoordinates = (tree, planeID, linkCoordinates) => {
|
|
634
|
+
const updatedTree = tree.map((treePlane => {
|
|
635
|
+
if (treePlane.planeID === planeID) {
|
|
636
|
+
const updatedPlane = Object.assign(Object.assign({}, treePlane), {
|
|
637
|
+
linkCoordinates: linkCoordinates
|
|
638
|
+
});
|
|
639
|
+
return updatedPlane;
|
|
508
640
|
}
|
|
509
|
-
|
|
510
|
-
|
|
641
|
+
if (treePlane.children) {
|
|
642
|
+
const updatedChildren = updateTreeByPlaneIDWithLinkCoordinates(treePlane.children, planeID, linkCoordinates);
|
|
643
|
+
const updatedPlane = Object.assign(Object.assign({}, treePlane), {
|
|
644
|
+
children: updatedChildren
|
|
645
|
+
});
|
|
646
|
+
return updatedPlane;
|
|
647
|
+
}
|
|
648
|
+
return treePlane;
|
|
649
|
+
}));
|
|
650
|
+
return updatedTree;
|
|
511
651
|
};
|
|
512
652
|
|
|
513
|
-
var index$
|
|
653
|
+
var index$i = Object.freeze({
|
|
514
654
|
__proto__: null,
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
multiplyMatricesArray: multiplyMatricesArray,
|
|
518
|
-
arrayToMatrix: arrayToMatrix,
|
|
519
|
-
matrixToArray: matrixToArray,
|
|
520
|
-
matrix3DToMatrix: matrix3DToMatrix,
|
|
521
|
-
printMatrix: printMatrix,
|
|
522
|
-
rotateXMatrix: rotateXMatrix,
|
|
523
|
-
rotateYMatrix: rotateYMatrix,
|
|
524
|
-
rotateZMatrix: rotateZMatrix,
|
|
525
|
-
translateMatrix: translateMatrix,
|
|
526
|
-
scaleMatrix: scaleMatrix,
|
|
527
|
-
rotationMatrixFromQuaternion: rotationMatrixFromQuaternion,
|
|
528
|
-
matrixToCSSMatrix: matrixToCSSMatrix,
|
|
529
|
-
identityMatrix: identityMatrix,
|
|
530
|
-
inverseMatrix: inverseMatrix
|
|
655
|
+
updateTreePlane: updateTreePlane$1,
|
|
656
|
+
updateTreeByPlaneIDWithLinkCoordinates: updateTreeByPlaneIDWithLinkCoordinates
|
|
531
657
|
});
|
|
532
658
|
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
659
|
+
var index$h = Object.freeze({
|
|
660
|
+
__proto__: null,
|
|
661
|
+
configuration: index$k,
|
|
662
|
+
tree: index$i
|
|
663
|
+
});
|
|
664
|
+
|
|
665
|
+
const getWheelDirection = (deltas, ABSTHRESHOLD = 10, THRESHOLD = 0) => {
|
|
666
|
+
let direction = "left";
|
|
667
|
+
const wheelDeltaX = deltas.deltaX;
|
|
668
|
+
const wheelDeltaY = deltas.deltaY;
|
|
669
|
+
const absWheelDeltaX = Math.abs(wheelDeltaX);
|
|
670
|
+
const absWheelDeltaY = Math.abs(wheelDeltaY);
|
|
671
|
+
if (wheelDeltaX > THRESHOLD && absWheelDeltaY < ABSTHRESHOLD && absWheelDeltaX > absWheelDeltaY) {
|
|
672
|
+
direction = "left";
|
|
538
673
|
}
|
|
539
|
-
|
|
674
|
+
if (wheelDeltaX < THRESHOLD && absWheelDeltaY < ABSTHRESHOLD && absWheelDeltaX > absWheelDeltaY) {
|
|
675
|
+
direction = "right";
|
|
676
|
+
}
|
|
677
|
+
if (wheelDeltaY > THRESHOLD && absWheelDeltaX < ABSTHRESHOLD && absWheelDeltaY > absWheelDeltaX) {
|
|
678
|
+
direction = "up";
|
|
679
|
+
}
|
|
680
|
+
if (wheelDeltaY < THRESHOLD && absWheelDeltaX < ABSTHRESHOLD && absWheelDeltaY > absWheelDeltaX) {
|
|
681
|
+
direction = "down";
|
|
682
|
+
}
|
|
683
|
+
return direction;
|
|
684
|
+
};
|
|
685
|
+
|
|
686
|
+
var index$g = Object.freeze({
|
|
687
|
+
__proto__: null,
|
|
688
|
+
getWheelDirection: getWheelDirection
|
|
689
|
+
});
|
|
690
|
+
|
|
691
|
+
const degToRad = deg => deg * .01745329252;
|
|
692
|
+
|
|
693
|
+
const radToDeg = rad => rad * 57.2957795131;
|
|
694
|
+
|
|
695
|
+
const makeQuaternion = (x, y, z, w) => ({
|
|
696
|
+
x: x,
|
|
697
|
+
y: y,
|
|
698
|
+
z: z,
|
|
699
|
+
w: w
|
|
700
|
+
});
|
|
701
|
+
|
|
702
|
+
const zeroQuaternion = () => makeQuaternion(0, 0, 0, 0);
|
|
703
|
+
|
|
704
|
+
function inverseQuaternion(quaternion) {
|
|
705
|
+
return makeQuaternion(quaternion.x, quaternion.y, quaternion.z, -quaternion.w);
|
|
540
706
|
}
|
|
541
707
|
|
|
542
|
-
function
|
|
543
|
-
|
|
544
|
-
const scale = getScalationValue(matrix3d);
|
|
545
|
-
if (valuesMatrix.length === 16) {
|
|
546
|
-
for (let i = 0; i < 11; i++) {
|
|
547
|
-
valuesMatrix[i] /= scale;
|
|
548
|
-
}
|
|
549
|
-
} else if (valuesMatrix.length === 6) {
|
|
550
|
-
for (let i = 0; i < 4; i++) {
|
|
551
|
-
valuesMatrix[i] /= scale;
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
const rotationMatrix = valuesMatrix;
|
|
555
|
-
return rotationMatrix;
|
|
708
|
+
function conjugateQuaternion(quaternion) {
|
|
709
|
+
return makeQuaternion(-quaternion.x, -quaternion.y, -quaternion.z, quaternion.w);
|
|
556
710
|
}
|
|
557
711
|
|
|
558
|
-
function
|
|
559
|
-
const
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
const
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
if (valuesMatrix.length === 16) {
|
|
574
|
-
const scaleMatrix = getMatrixValues(matrix3d).slice(0, 4);
|
|
575
|
-
scale = 0;
|
|
576
|
-
for (const el of scaleMatrix) {
|
|
577
|
-
scale += parseFloat(el) * parseFloat(el);
|
|
578
|
-
}
|
|
579
|
-
scale = parseFloat(Math.sqrt(scale).toPrecision(4));
|
|
580
|
-
} else if (valuesMatrix.length === 6) {
|
|
581
|
-
temp = valuesMatrix[0] * valuesMatrix[0] + valuesMatrix[1] * valuesMatrix[1];
|
|
582
|
-
scale = parseFloat(Math.sqrt(temp).toPrecision(4));
|
|
583
|
-
}
|
|
584
|
-
return scale;
|
|
712
|
+
function computeQuaternionFromEulers(alpha, beta, gamma, radians = true) {
|
|
713
|
+
const x = radians ? beta : degToRad(beta);
|
|
714
|
+
const y = radians ? gamma : degToRad(gamma);
|
|
715
|
+
const z = radians ? alpha : degToRad(alpha);
|
|
716
|
+
const cX = Math.cos(x / 2);
|
|
717
|
+
const cY = Math.cos(y / 2);
|
|
718
|
+
const cZ = Math.cos(z / 2);
|
|
719
|
+
const sX = Math.sin(x / 2);
|
|
720
|
+
const sY = Math.sin(y / 2);
|
|
721
|
+
const sZ = Math.sin(z / 2);
|
|
722
|
+
const xQ = sX * cY * cZ - cX * sY * sZ;
|
|
723
|
+
const yQ = cX * sY * cZ + sX * cY * sZ;
|
|
724
|
+
const zQ = cX * cY * sZ + sX * sY * cZ;
|
|
725
|
+
const wQ = cX * cY * cZ - sX * sY * sZ;
|
|
726
|
+
return makeQuaternion(xQ, yQ, zQ, wQ);
|
|
585
727
|
}
|
|
586
728
|
|
|
587
|
-
function
|
|
588
|
-
const
|
|
589
|
-
|
|
729
|
+
function quaternionFromAxisAngle(x, y, z, angle) {
|
|
730
|
+
const q = zeroQuaternion();
|
|
731
|
+
const halfAngle = angle / 2;
|
|
732
|
+
const sine = Math.sin(halfAngle);
|
|
733
|
+
q.x = x * sine;
|
|
734
|
+
q.y = y * sine;
|
|
735
|
+
q.z = z * sine;
|
|
736
|
+
q.w = Math.cos(halfAngle);
|
|
737
|
+
return q;
|
|
590
738
|
}
|
|
591
739
|
|
|
592
|
-
function
|
|
593
|
-
const
|
|
594
|
-
const
|
|
595
|
-
let
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
const
|
|
599
|
-
const
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
if (values.length === 16) {
|
|
606
|
-
const cosaX1 = values[5];
|
|
607
|
-
const sinaX3 = values[9];
|
|
608
|
-
if (sinaX3 <= 0) {
|
|
609
|
-
rotateX = Math.acos(cosaX1);
|
|
610
|
-
}
|
|
611
|
-
if (sinaX3 > 0) {
|
|
612
|
-
rotateX = 2 * pi - Math.acos(cosaX1);
|
|
613
|
-
}
|
|
614
|
-
const cosaY1 = values[0];
|
|
615
|
-
const sinaY2 = values[2];
|
|
616
|
-
if (sinaY2 <= 0) {
|
|
617
|
-
rotateY = Math.acos(cosaY1);
|
|
618
|
-
}
|
|
619
|
-
if (sinaY2 > 0) {
|
|
620
|
-
rotateY = 2 * pi - Math.acos(cosaY1);
|
|
621
|
-
}
|
|
622
|
-
rotateX = Math.atan2(values[9], values[5]);
|
|
623
|
-
rotateY = Math.atan2(values[2], values[0]);
|
|
740
|
+
function quaternionMultiply(quaternionArray) {
|
|
741
|
+
const firstQuaternion = quaternionArray[0];
|
|
742
|
+
const valueQuaternion = Object.assign({}, firstQuaternion);
|
|
743
|
+
for (let i = 1; i < quaternionArray.length; i++) {
|
|
744
|
+
const nextQuaternion = quaternionArray[i];
|
|
745
|
+
const w = valueQuaternion.w * nextQuaternion.w - valueQuaternion.x * nextQuaternion.x - valueQuaternion.y * nextQuaternion.y - valueQuaternion.z * nextQuaternion.z;
|
|
746
|
+
const x = valueQuaternion.x * nextQuaternion.w + valueQuaternion.w * nextQuaternion.x + valueQuaternion.y * nextQuaternion.z - valueQuaternion.z * nextQuaternion.y;
|
|
747
|
+
const y = valueQuaternion.y * nextQuaternion.w + valueQuaternion.w * nextQuaternion.y + valueQuaternion.z * nextQuaternion.x - valueQuaternion.x * nextQuaternion.z;
|
|
748
|
+
const z = valueQuaternion.z * nextQuaternion.w + valueQuaternion.w * nextQuaternion.z + valueQuaternion.x * nextQuaternion.y - valueQuaternion.y * nextQuaternion.x;
|
|
749
|
+
valueQuaternion.x = x;
|
|
750
|
+
valueQuaternion.y = y;
|
|
751
|
+
valueQuaternion.z = z;
|
|
752
|
+
valueQuaternion.w = w;
|
|
624
753
|
}
|
|
625
|
-
return
|
|
626
|
-
rotateX: rotateX,
|
|
627
|
-
rotateY: rotateY,
|
|
628
|
-
rotateZ: 0
|
|
629
|
-
};
|
|
754
|
+
return valueQuaternion;
|
|
630
755
|
}
|
|
631
756
|
|
|
632
|
-
function
|
|
633
|
-
const
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
translateX: translateX,
|
|
639
|
-
translateY: translateY,
|
|
640
|
-
translateZ: translateZ
|
|
757
|
+
function rotatePointViaQuaternion(pointRotate, quaternion) {
|
|
758
|
+
const temporaryQuaternion = {
|
|
759
|
+
x: pointRotate[0],
|
|
760
|
+
y: pointRotate[1],
|
|
761
|
+
z: pointRotate[2],
|
|
762
|
+
w: 0
|
|
641
763
|
};
|
|
764
|
+
const rotatedPointQuaternion = quaternionMultiply([ quaternion, temporaryQuaternion, conjugateQuaternion(quaternion) ]);
|
|
765
|
+
return rotatedPointQuaternion;
|
|
642
766
|
}
|
|
643
767
|
|
|
644
|
-
function
|
|
645
|
-
const
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
768
|
+
function makeRotationMatrixFromQuaternion(quaternion) {
|
|
769
|
+
const num = quaternion.x * 2;
|
|
770
|
+
const num2 = quaternion.y * 2;
|
|
771
|
+
const num3 = quaternion.z * 2;
|
|
772
|
+
const num4 = quaternion.x * num;
|
|
773
|
+
const num5 = quaternion.y * num2;
|
|
774
|
+
const num6 = quaternion.z * num3;
|
|
775
|
+
const num7 = quaternion.x * num2;
|
|
776
|
+
const num8 = quaternion.x * num3;
|
|
777
|
+
const num9 = quaternion.y * num3;
|
|
778
|
+
const num10 = quaternion.w * num;
|
|
779
|
+
const num11 = quaternion.w * num2;
|
|
780
|
+
const num12 = quaternion.w * num3;
|
|
781
|
+
return [ 1 - (num5 + num6), num7 - num12, num8 + num11, 0, num7 + num12, 1 - (num4 + num6), num9 - num10, 0, num8 - num11, num9 + num10, 1 - (num4 + num5), 0, 0, 0, 0, 1 ];
|
|
649
782
|
}
|
|
650
783
|
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
rotateY -= angleIncrement;
|
|
666
|
-
valRotationMatrix = rotateMatrix(rotateX, rotateY);
|
|
667
|
-
}
|
|
668
|
-
if (direction === "right") {
|
|
669
|
-
rotateY += angleIncrement;
|
|
670
|
-
valRotationMatrix = rotateMatrix(rotateX, rotateY);
|
|
671
|
-
}
|
|
672
|
-
if (direction === "up") {
|
|
673
|
-
rotateY -= angleIncrement;
|
|
674
|
-
valRotationMatrix = rotateMatrix(rotateX, rotateY);
|
|
675
|
-
}
|
|
676
|
-
if (direction === "down") {
|
|
677
|
-
rotateY += angleIncrement;
|
|
678
|
-
valRotationMatrix = rotateMatrix(rotateX, rotateY);
|
|
679
|
-
}
|
|
680
|
-
const transformedMatrix3d = setTransform(valRotationMatrix, valTranslationMatrix, valScalationMatrix);
|
|
681
|
-
return transformedMatrix3d;
|
|
682
|
-
}
|
|
784
|
+
var index$f = Object.freeze({
|
|
785
|
+
__proto__: null,
|
|
786
|
+
degToRad: degToRad,
|
|
787
|
+
radToDeg: radToDeg,
|
|
788
|
+
makeQuaternion: makeQuaternion,
|
|
789
|
+
zeroQuaternion: zeroQuaternion,
|
|
790
|
+
inverseQuaternion: inverseQuaternion,
|
|
791
|
+
conjugateQuaternion: conjugateQuaternion,
|
|
792
|
+
computeQuaternionFromEulers: computeQuaternionFromEulers,
|
|
793
|
+
quaternionFromAxisAngle: quaternionFromAxisAngle,
|
|
794
|
+
quaternionMultiply: quaternionMultiply,
|
|
795
|
+
rotatePointViaQuaternion: rotatePointViaQuaternion,
|
|
796
|
+
makeRotationMatrixFromQuaternion: makeRotationMatrixFromQuaternion
|
|
797
|
+
});
|
|
683
798
|
|
|
684
|
-
function
|
|
685
|
-
const
|
|
686
|
-
const
|
|
687
|
-
const
|
|
688
|
-
const
|
|
689
|
-
const
|
|
690
|
-
|
|
691
|
-
let translateY = transformTranslate.translateY;
|
|
692
|
-
const translateZ = transformTranslate.translateZ;
|
|
693
|
-
const scale = getTransformScale(matrix3d).scale;
|
|
694
|
-
const valRotationMatrix = rotateMatrix(rotateX, rotateY, rotateZ);
|
|
695
|
-
let valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
696
|
-
const valScalationMatrix = scaleMatrix$1(scale);
|
|
697
|
-
scale < .5 ? linearIncrement = 50 : linearIncrement = 30;
|
|
698
|
-
if (direction === "left") {
|
|
699
|
-
translateX += linearIncrement;
|
|
700
|
-
valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
701
|
-
}
|
|
702
|
-
if (direction === "right") {
|
|
703
|
-
translateX -= linearIncrement;
|
|
704
|
-
valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
705
|
-
}
|
|
706
|
-
if (direction === "up") {
|
|
707
|
-
translateY += linearIncrement;
|
|
708
|
-
valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
709
|
-
}
|
|
710
|
-
if (direction === "down") {
|
|
711
|
-
translateY -= linearIncrement;
|
|
712
|
-
valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
713
|
-
}
|
|
714
|
-
const transformedMatrix3d = setTransform(valRotationMatrix, valTranslationMatrix, valScalationMatrix);
|
|
715
|
-
return transformedMatrix3d;
|
|
799
|
+
function rotateMatrix(xAngle, yAngle, zAngle = 0) {
|
|
800
|
+
const xQuaternion = computeQuaternionFromEulers(0, xAngle, 0);
|
|
801
|
+
const yQuaternion = computeQuaternionFromEulers(0, 0, yAngle);
|
|
802
|
+
const zQuaternion = computeQuaternionFromEulers(zAngle, 0, 0);
|
|
803
|
+
const quartenionMultiplication = quaternionMultiply([ yQuaternion, xQuaternion, zQuaternion ]);
|
|
804
|
+
const rotationMatrix = makeRotationMatrixFromQuaternion(quartenionMultiplication);
|
|
805
|
+
return rotationMatrix;
|
|
716
806
|
}
|
|
717
807
|
|
|
718
|
-
function
|
|
719
|
-
|
|
720
|
-
const rotateX = transformRotate.rotateX;
|
|
721
|
-
const rotateY = transformRotate.rotateY;
|
|
722
|
-
const rotateZ = transformRotate.rotateZ;
|
|
723
|
-
const transformTranslate = getTransformTranslate(matrix3d);
|
|
724
|
-
const translateX = transformTranslate.translateX;
|
|
725
|
-
const translateY = transformTranslate.translateY;
|
|
726
|
-
const translateZ = transformTranslate.translateZ;
|
|
727
|
-
let scale = getTransformScale(matrix3d).scale;
|
|
728
|
-
const valRotationMatrix = rotateMatrix(rotateX, rotateY, rotateZ);
|
|
729
|
-
const valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
730
|
-
let valScalationMatrix = scaleMatrix$1(scale);
|
|
731
|
-
if (direction === "up") {
|
|
732
|
-
scale -= scaleIncrement;
|
|
733
|
-
if (scale < .1) {
|
|
734
|
-
scale = .1;
|
|
735
|
-
}
|
|
736
|
-
valScalationMatrix = scaleMatrix$1(scale);
|
|
737
|
-
}
|
|
738
|
-
if (direction === "down") {
|
|
739
|
-
scale += scaleIncrement;
|
|
740
|
-
if (scale > 4) {
|
|
741
|
-
scale = 4;
|
|
742
|
-
}
|
|
743
|
-
valScalationMatrix = scaleMatrix$1(scale);
|
|
744
|
-
}
|
|
745
|
-
const transformedMatrix3d = setTransform(valRotationMatrix, valTranslationMatrix, valScalationMatrix);
|
|
746
|
-
return transformedMatrix3d;
|
|
808
|
+
function translateMatrix$1(x, y, z) {
|
|
809
|
+
return [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, x, y, z, 1 ];
|
|
747
810
|
}
|
|
748
811
|
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
getRotationMatrix: getRotationMatrix,
|
|
753
|
-
getTranslationMatrix: getTranslationMatrix,
|
|
754
|
-
getScalationValue: getScalationValue,
|
|
755
|
-
setTransform: setTransform,
|
|
756
|
-
getTransformRotate: getTransformRotate,
|
|
757
|
-
getTransformTranslate: getTransformTranslate,
|
|
758
|
-
getTransformScale: getTransformScale,
|
|
759
|
-
rotatePlurid: rotatePlurid,
|
|
760
|
-
translatePlurid: translatePlurid,
|
|
761
|
-
scalePlurid: scalePlurid
|
|
762
|
-
});
|
|
812
|
+
function scaleMatrix$1(s) {
|
|
813
|
+
return [ s, 0, 0, 0, 0, s, 0, 0, 0, 0, s, 0, 0, 0, 0, 1 ];
|
|
814
|
+
}
|
|
763
815
|
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
816
|
+
function multiplyMatrices$1(matrixA, matrixB) {
|
|
817
|
+
const result = [];
|
|
818
|
+
const a00 = matrixA[0];
|
|
819
|
+
const a01 = matrixA[1];
|
|
820
|
+
const a02 = matrixA[2];
|
|
821
|
+
const a03 = matrixA[3];
|
|
822
|
+
const a10 = matrixA[4];
|
|
823
|
+
const a11 = matrixA[5];
|
|
824
|
+
const a12 = matrixA[6];
|
|
825
|
+
const a13 = matrixA[7];
|
|
826
|
+
const a20 = matrixA[8];
|
|
827
|
+
const a21 = matrixA[9];
|
|
828
|
+
const a22 = matrixA[10];
|
|
829
|
+
const a23 = matrixA[11];
|
|
830
|
+
const a30 = matrixA[12];
|
|
831
|
+
const a31 = matrixA[13];
|
|
832
|
+
const a32 = matrixA[14];
|
|
833
|
+
const a33 = matrixA[15];
|
|
834
|
+
let b0 = matrixB[0];
|
|
835
|
+
let b1 = matrixB[1];
|
|
836
|
+
let b2 = matrixB[2];
|
|
837
|
+
let b3 = matrixB[3];
|
|
838
|
+
result[0] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
839
|
+
result[1] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
840
|
+
result[2] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
841
|
+
result[3] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
842
|
+
b0 = matrixB[4];
|
|
843
|
+
b1 = matrixB[5];
|
|
844
|
+
b2 = matrixB[6];
|
|
845
|
+
b3 = matrixB[7];
|
|
846
|
+
result[4] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
847
|
+
result[5] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
848
|
+
result[6] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
849
|
+
result[7] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
850
|
+
b0 = matrixB[8];
|
|
851
|
+
b1 = matrixB[9];
|
|
852
|
+
b2 = matrixB[10];
|
|
853
|
+
b3 = matrixB[11];
|
|
854
|
+
result[8] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
855
|
+
result[9] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
856
|
+
result[10] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
857
|
+
result[11] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
858
|
+
b0 = matrixB[12];
|
|
859
|
+
b1 = matrixB[13];
|
|
860
|
+
b2 = matrixB[14];
|
|
861
|
+
b3 = matrixB[15];
|
|
862
|
+
result[12] = b0 * a00 + b1 * a10 + b2 * a20 + b3 * a30;
|
|
863
|
+
result[13] = b0 * a01 + b1 * a11 + b2 * a21 + b3 * a31;
|
|
864
|
+
result[14] = b0 * a02 + b1 * a12 + b2 * a22 + b3 * a32;
|
|
865
|
+
result[15] = b0 * a03 + b1 * a13 + b2 * a23 + b3 * a33;
|
|
866
|
+
return result;
|
|
867
|
+
}
|
|
769
868
|
|
|
770
|
-
|
|
869
|
+
function multiplyArrayOfMatrices(matrices) {
|
|
870
|
+
let inputMatrix = matrices[0];
|
|
871
|
+
for (let i = 1; i < matrices.length; i++) {
|
|
872
|
+
inputMatrix = multiplyMatrices$1(inputMatrix, matrices[i]);
|
|
873
|
+
}
|
|
874
|
+
return inputMatrix;
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
function matrixArrayToCSSMatrix(array) {
|
|
878
|
+
return "matrix3d(" + array.join(",") + ")";
|
|
879
|
+
}
|
|
880
|
+
|
|
881
|
+
var index$e = Object.freeze({
|
|
771
882
|
__proto__: null,
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
883
|
+
rotateMatrix: rotateMatrix,
|
|
884
|
+
translateMatrix: translateMatrix$1,
|
|
885
|
+
scaleMatrix: scaleMatrix$1,
|
|
886
|
+
multiplyMatrices: multiplyMatrices$1,
|
|
887
|
+
multiplyArrayOfMatrices: multiplyArrayOfMatrices,
|
|
888
|
+
matrixArrayToCSSMatrix: matrixArrayToCSSMatrix
|
|
776
889
|
});
|
|
777
890
|
|
|
778
|
-
const
|
|
891
|
+
const getInitialMatrix = () => {
|
|
892
|
+
const matrix = [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ];
|
|
893
|
+
return matrix;
|
|
894
|
+
};
|
|
779
895
|
|
|
780
|
-
const
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
896
|
+
const multiplyMatrices = (m1, m2) => {
|
|
897
|
+
const result = [];
|
|
898
|
+
for (let i = 0; i < m1.length; i++) {
|
|
899
|
+
result[i] = [];
|
|
900
|
+
for (let j = 0; j < m2[0].length; j++) {
|
|
901
|
+
let sum = 0;
|
|
902
|
+
for (let k = 0; k < m1[0].length; k++) {
|
|
903
|
+
sum += m1[i][k] * m2[k][j];
|
|
904
|
+
}
|
|
905
|
+
result[i][j] = sum;
|
|
906
|
+
}
|
|
787
907
|
}
|
|
788
|
-
return
|
|
908
|
+
return result;
|
|
789
909
|
};
|
|
790
910
|
|
|
791
|
-
const
|
|
792
|
-
if (
|
|
793
|
-
|
|
794
|
-
return Object.assign({
|
|
795
|
-
value: value,
|
|
796
|
-
component: component
|
|
797
|
-
}, options);
|
|
911
|
+
const multiplyMatricesArray = matrices => {
|
|
912
|
+
if (matrices.length < 2) {
|
|
913
|
+
throw new Error("invalid number of matrices");
|
|
798
914
|
}
|
|
799
|
-
|
|
915
|
+
const first = matrices[0];
|
|
916
|
+
let result = first;
|
|
917
|
+
for (const [index, matrix] of matrices.entries()) {
|
|
918
|
+
if (index === 0) {
|
|
919
|
+
continue;
|
|
920
|
+
}
|
|
921
|
+
result = multiplyMatrices(result, matrix);
|
|
922
|
+
}
|
|
923
|
+
return result;
|
|
800
924
|
};
|
|
801
925
|
|
|
802
|
-
const
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
926
|
+
const arrayToMatrix = array => {
|
|
927
|
+
const matrix = [];
|
|
928
|
+
for (let i = 0; i < array.length; i += 4) {
|
|
929
|
+
const row = [];
|
|
930
|
+
row.push(array[i]);
|
|
931
|
+
row.push(array[i + 1]);
|
|
932
|
+
row.push(array[i + 2]);
|
|
933
|
+
row.push(array[i + 3]);
|
|
934
|
+
matrix.push(row);
|
|
809
935
|
}
|
|
810
|
-
return
|
|
936
|
+
return matrix;
|
|
811
937
|
};
|
|
812
938
|
|
|
813
|
-
const
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
const
|
|
817
|
-
|
|
818
|
-
return noFragmentPath;
|
|
939
|
+
const matrixToArray = matrix => matrix.flat();
|
|
940
|
+
|
|
941
|
+
const matrix3DToMatrix = value => {
|
|
942
|
+
const values = value.replace("matrix3d(", "").replace(")", "").split(",").map((val => parseFloat(val)));
|
|
943
|
+
return arrayToMatrix(values);
|
|
819
944
|
};
|
|
820
945
|
|
|
821
|
-
const
|
|
822
|
-
const
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
if (routeElement[0] === ":") {
|
|
826
|
-
parameters.push(routeElement);
|
|
827
|
-
} else {
|
|
828
|
-
parameters.push("");
|
|
946
|
+
const printMatrix = (matrix, name) => {
|
|
947
|
+
const normalize = value => {
|
|
948
|
+
if (value === 1 || value === 0) {
|
|
949
|
+
return value + " ";
|
|
829
950
|
}
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
return
|
|
834
|
-
match: false,
|
|
835
|
-
parameters: {},
|
|
836
|
-
elements: locationElements
|
|
837
|
-
};
|
|
838
|
-
}
|
|
839
|
-
const parametersValues = extractParametersValues(parameters, locationElements);
|
|
840
|
-
return {
|
|
841
|
-
match: true,
|
|
842
|
-
parameters: parametersValues,
|
|
843
|
-
elements: locationElements
|
|
951
|
+
if (value > 0) {
|
|
952
|
+
return value.toFixed(2) + " ";
|
|
953
|
+
}
|
|
954
|
+
return value.toFixed(2) + " ";
|
|
844
955
|
};
|
|
956
|
+
console.log("matrix", name + ":");
|
|
957
|
+
for (const row of matrix) {
|
|
958
|
+
console.log(normalize(row[0]), normalize(row[1]), normalize(row[2]), normalize(row[3]));
|
|
959
|
+
}
|
|
960
|
+
console.log(`matrix3d(${matrix.flat().join(",")})`);
|
|
961
|
+
console.log();
|
|
845
962
|
};
|
|
846
963
|
|
|
847
|
-
const
|
|
848
|
-
const
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
}
|
|
854
|
-
}));
|
|
855
|
-
return parametersValues;
|
|
964
|
+
const rotateXMatrix = angle => {
|
|
965
|
+
const x = Math.cos(angle);
|
|
966
|
+
const y = -1 * Math.sin(angle);
|
|
967
|
+
const z = Math.sin(angle);
|
|
968
|
+
const m = [ [ 1, 0, 0, 0 ], [ 0, x, y, 0 ], [ 0, z, x, 0 ], [ 0, 0, 0, 1 ] ];
|
|
969
|
+
return m;
|
|
856
970
|
};
|
|
857
971
|
|
|
858
|
-
const
|
|
859
|
-
const
|
|
860
|
-
const
|
|
861
|
-
const
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
comparingPathElements[index] = parameters[index];
|
|
865
|
-
}
|
|
866
|
-
}
|
|
867
|
-
const comparingPath = comparingPathElements.join("/");
|
|
868
|
-
return {
|
|
869
|
-
locationElements: locationElements,
|
|
870
|
-
comparingPath: comparingPath
|
|
871
|
-
};
|
|
972
|
+
const rotateYMatrix = angle => {
|
|
973
|
+
const x = Math.cos(angle);
|
|
974
|
+
const y = -1 * Math.sin(angle);
|
|
975
|
+
const z = Math.sin(angle);
|
|
976
|
+
const m = [ [ x, 0, z, 0 ], [ 0, 1, 0, 0 ], [ y, 0, x, 0 ], [ 0, 0, 0, 1 ] ];
|
|
977
|
+
return m;
|
|
872
978
|
};
|
|
873
979
|
|
|
874
|
-
const
|
|
980
|
+
const rotateZMatrix = angle => {
|
|
981
|
+
const x = Math.cos(angle);
|
|
982
|
+
const y = -1 * Math.sin(angle);
|
|
983
|
+
const z = Math.sin(angle);
|
|
984
|
+
const m = [ [ x, y, 0, 0 ], [ z, x, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ];
|
|
985
|
+
return m;
|
|
986
|
+
};
|
|
875
987
|
|
|
876
|
-
const
|
|
877
|
-
const
|
|
878
|
-
|
|
879
|
-
const querySplit = noFragmentPath.split("?");
|
|
880
|
-
if (querySplit.length === 2) {
|
|
881
|
-
const queryValues = {};
|
|
882
|
-
const query = querySplit[1];
|
|
883
|
-
const queryItems = query.split("&");
|
|
884
|
-
for (const item of queryItems) {
|
|
885
|
-
const queryValue = item.split("=");
|
|
886
|
-
const id = queryValue[0];
|
|
887
|
-
const value = decodeURIComponent(queryValue[1]);
|
|
888
|
-
queryValues[id] = value;
|
|
889
|
-
}
|
|
890
|
-
return queryValues;
|
|
891
|
-
} else {
|
|
892
|
-
return {};
|
|
893
|
-
}
|
|
988
|
+
const translateMatrix = (x = 0, y = 0, z = 0) => {
|
|
989
|
+
const m = [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ x, y, z, 1 ] ];
|
|
990
|
+
return m;
|
|
894
991
|
};
|
|
895
992
|
|
|
896
|
-
const
|
|
897
|
-
if (!location) {
|
|
898
|
-
return {
|
|
899
|
-
texts: [],
|
|
900
|
-
elements: []
|
|
901
|
-
};
|
|
902
|
-
}
|
|
903
|
-
const split = location.split("#:~:");
|
|
904
|
-
const fragmentsValues = split[1];
|
|
905
|
-
if (!fragmentsValues) {
|
|
906
|
-
return {
|
|
907
|
-
texts: [],
|
|
908
|
-
elements: []
|
|
909
|
-
};
|
|
910
|
-
}
|
|
911
|
-
const fragmentItems = fragmentsValues.split("&");
|
|
912
|
-
const textFragments = [];
|
|
913
|
-
const elementFragments = [];
|
|
914
|
-
for (const item of fragmentItems) {
|
|
915
|
-
const parsedFragment = parseFragment(item);
|
|
916
|
-
if (parsedFragment) {
|
|
917
|
-
switch (parsedFragment.type) {
|
|
918
|
-
case "text":
|
|
919
|
-
textFragments.push(parsedFragment);
|
|
920
|
-
break;
|
|
993
|
+
const scaleMatrix = s => [ [ s, 0, 0, 0 ], [ 0, s, 0, 0 ], [ 0, 0, s, 0 ], [ 0, 0, 0, 1 ] ];
|
|
921
994
|
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
995
|
+
function rotationMatrixFromQuaternion(quaternion) {
|
|
996
|
+
const num = quaternion.x * 2;
|
|
997
|
+
const num2 = quaternion.y * 2;
|
|
998
|
+
const num3 = quaternion.z * 2;
|
|
999
|
+
const num4 = quaternion.x * num;
|
|
1000
|
+
const num5 = quaternion.y * num2;
|
|
1001
|
+
const num6 = quaternion.z * num3;
|
|
1002
|
+
const num7 = quaternion.x * num2;
|
|
1003
|
+
const num8 = quaternion.x * num3;
|
|
1004
|
+
const num9 = quaternion.y * num3;
|
|
1005
|
+
const num10 = quaternion.w * num;
|
|
1006
|
+
const num11 = quaternion.w * num2;
|
|
1007
|
+
const num12 = quaternion.w * num3;
|
|
1008
|
+
return [ [ 1 - (num5 + num6), num7 - num12, num8 + num11, 0 ], [ num7 + num12, 1 - (num4 + num6), num9 - num10, 0 ], [ num8 - num11, num9 + num10, 1 - (num4 + num5), 0 ], [ 0, 0, 0, 1 ] ];
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
const matrixToCSSMatrix = matrix => {
|
|
1012
|
+
const value = matrix.flat().join(",");
|
|
1013
|
+
return `matrix3d(${value})`;
|
|
932
1014
|
};
|
|
933
1015
|
|
|
934
|
-
const
|
|
935
|
-
const
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
1016
|
+
const identityMatrix = () => {
|
|
1017
|
+
const matrix = [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ];
|
|
1018
|
+
return matrix;
|
|
1019
|
+
};
|
|
1020
|
+
|
|
1021
|
+
const inverseMatrix = matrix => {
|
|
1022
|
+
const cols = 4;
|
|
1023
|
+
const rows = 4;
|
|
1024
|
+
const A = [ ...matrix ];
|
|
1025
|
+
const B = identityMatrix();
|
|
1026
|
+
let r;
|
|
1027
|
+
let s;
|
|
1028
|
+
let f;
|
|
1029
|
+
let temp;
|
|
1030
|
+
for (let c = 0; c < cols; c++) {
|
|
1031
|
+
let ABig = Math.abs(A[c][c]);
|
|
1032
|
+
let rBig = c;
|
|
1033
|
+
r = c + 1;
|
|
1034
|
+
while (r < rows) {
|
|
1035
|
+
if (Math.abs(A[r][c]) > ABig) {
|
|
1036
|
+
ABig = Math.abs(A[r][c]);
|
|
1037
|
+
rBig = r;
|
|
947
1038
|
}
|
|
948
|
-
|
|
949
|
-
type: "text",
|
|
950
|
-
start: textStart,
|
|
951
|
-
end: textEnd || "",
|
|
952
|
-
occurence: textOccurence
|
|
953
|
-
};
|
|
1039
|
+
r++;
|
|
954
1040
|
}
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
1041
|
+
if (ABig === 0) {
|
|
1042
|
+
throw Error("Cannot calculate inverse, determinant is zero");
|
|
1043
|
+
}
|
|
1044
|
+
r = rBig;
|
|
1045
|
+
if (r !== c) {
|
|
1046
|
+
temp = A[c];
|
|
1047
|
+
A[c] = A[r];
|
|
1048
|
+
A[r] = temp;
|
|
1049
|
+
temp = B[c];
|
|
1050
|
+
B[c] = B[r];
|
|
1051
|
+
B[r] = temp;
|
|
1052
|
+
}
|
|
1053
|
+
const Ac = A[c];
|
|
1054
|
+
const Bc = B[c];
|
|
1055
|
+
for (r = 0; r < rows; r++) {
|
|
1056
|
+
const Ar = A[r];
|
|
1057
|
+
const Br = B[r];
|
|
1058
|
+
if (r !== c) {
|
|
1059
|
+
if (Ar[c] !== 0) {
|
|
1060
|
+
f = -Ar[c] / Ac[c];
|
|
1061
|
+
for (s = c; s < cols; s++) {
|
|
1062
|
+
Ar[s] = Ar[s] + f * Ac[s];
|
|
1063
|
+
}
|
|
1064
|
+
for (s = 0; s < cols; s++) {
|
|
1065
|
+
Br[s] = Br[s] + f * Bc[s];
|
|
1066
|
+
}
|
|
1067
|
+
}
|
|
1068
|
+
} else {
|
|
1069
|
+
f = Ac[c];
|
|
1070
|
+
for (s = c; s < cols; s++) {
|
|
1071
|
+
Ar[s] = Ar[s] / f;
|
|
1072
|
+
}
|
|
1073
|
+
for (s = 0; s < cols; s++) {
|
|
1074
|
+
Br[s] = Br[s] / f;
|
|
1075
|
+
}
|
|
963
1076
|
}
|
|
964
|
-
return {
|
|
965
|
-
type: "element",
|
|
966
|
-
id: elementID,
|
|
967
|
-
occurence: elementOccurence
|
|
968
|
-
};
|
|
969
1077
|
}
|
|
970
1078
|
}
|
|
971
|
-
return
|
|
1079
|
+
return B;
|
|
972
1080
|
};
|
|
973
1081
|
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
1082
|
+
var index$d = Object.freeze({
|
|
1083
|
+
__proto__: null,
|
|
1084
|
+
getInitialMatrix: getInitialMatrix,
|
|
1085
|
+
multiplyMatrices: multiplyMatrices,
|
|
1086
|
+
multiplyMatricesArray: multiplyMatricesArray,
|
|
1087
|
+
arrayToMatrix: arrayToMatrix,
|
|
1088
|
+
matrixToArray: matrixToArray,
|
|
1089
|
+
matrix3DToMatrix: matrix3DToMatrix,
|
|
1090
|
+
printMatrix: printMatrix,
|
|
1091
|
+
rotateXMatrix: rotateXMatrix,
|
|
1092
|
+
rotateYMatrix: rotateYMatrix,
|
|
1093
|
+
rotateZMatrix: rotateZMatrix,
|
|
1094
|
+
translateMatrix: translateMatrix,
|
|
1095
|
+
scaleMatrix: scaleMatrix,
|
|
1096
|
+
rotationMatrixFromQuaternion: rotationMatrixFromQuaternion,
|
|
1097
|
+
matrixToCSSMatrix: matrixToCSSMatrix,
|
|
1098
|
+
identityMatrix: identityMatrix,
|
|
1099
|
+
inverseMatrix: inverseMatrix
|
|
1100
|
+
});
|
|
1101
|
+
|
|
1102
|
+
function getMatrixValues(matrix3d) {
|
|
1103
|
+
const matrixValues = matrix3d.split("(")[1].split(")")[0].split(",");
|
|
1104
|
+
const matrixValuesInt = [];
|
|
1105
|
+
for (let i = 0; i < matrixValues.length; i++) {
|
|
1106
|
+
matrixValuesInt[i] = parseFloat(matrixValues[i]);
|
|
977
1107
|
}
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
return occurenceValue;
|
|
981
|
-
};
|
|
1108
|
+
return matrixValuesInt;
|
|
1109
|
+
}
|
|
982
1110
|
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
1111
|
+
function getRotationMatrix(matrix3d) {
|
|
1112
|
+
const valuesMatrix = getMatrixValues(matrix3d);
|
|
1113
|
+
const scale = getScalationValue(matrix3d);
|
|
1114
|
+
if (valuesMatrix.length === 16) {
|
|
1115
|
+
for (let i = 0; i < 11; i++) {
|
|
1116
|
+
valuesMatrix[i] /= scale;
|
|
1117
|
+
}
|
|
1118
|
+
} else if (valuesMatrix.length === 6) {
|
|
1119
|
+
for (let i = 0; i < 4; i++) {
|
|
1120
|
+
valuesMatrix[i] /= scale;
|
|
1121
|
+
}
|
|
986
1122
|
}
|
|
987
|
-
|
|
988
|
-
|
|
1123
|
+
const rotationMatrix = valuesMatrix;
|
|
1124
|
+
return rotationMatrix;
|
|
1125
|
+
}
|
|
989
1126
|
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
1127
|
+
function getTranslationMatrix(matrix3d) {
|
|
1128
|
+
const valuesMatrix = getMatrixValues(matrix3d);
|
|
1129
|
+
let translationMatrix;
|
|
1130
|
+
if (valuesMatrix.length === 16) {
|
|
1131
|
+
translationMatrix = getMatrixValues(matrix3d).slice(12, 15);
|
|
1132
|
+
} else if (valuesMatrix.length === 6) {
|
|
1133
|
+
translationMatrix = getMatrixValues(matrix3d).slice(4);
|
|
993
1134
|
}
|
|
994
|
-
return
|
|
995
|
-
}
|
|
1135
|
+
return translationMatrix;
|
|
1136
|
+
}
|
|
996
1137
|
|
|
997
|
-
|
|
1138
|
+
function getScalationValue(matrix3d) {
|
|
1139
|
+
const valuesMatrix = getMatrixValues(matrix3d);
|
|
1140
|
+
let temp = 0;
|
|
1141
|
+
let scale;
|
|
1142
|
+
if (valuesMatrix.length === 16) {
|
|
1143
|
+
const scaleMatrix = getMatrixValues(matrix3d).slice(0, 4);
|
|
1144
|
+
scale = 0;
|
|
1145
|
+
for (const el of scaleMatrix) {
|
|
1146
|
+
scale += parseFloat(el) * parseFloat(el);
|
|
1147
|
+
}
|
|
1148
|
+
scale = parseFloat(Math.sqrt(scale).toPrecision(4));
|
|
1149
|
+
} else if (valuesMatrix.length === 6) {
|
|
1150
|
+
temp = valuesMatrix[0] * valuesMatrix[0] + valuesMatrix[1] * valuesMatrix[1];
|
|
1151
|
+
scale = parseFloat(Math.sqrt(temp).toPrecision(4));
|
|
1152
|
+
}
|
|
1153
|
+
return scale;
|
|
1154
|
+
}
|
|
998
1155
|
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
};
|
|
1156
|
+
function setTransform(rotationMatrix, translationMatrix, scalationMatrix) {
|
|
1157
|
+
const transformMatrix = multiplyArrayOfMatrices([ translationMatrix, rotationMatrix, scalationMatrix ]);
|
|
1158
|
+
return matrixArrayToCSSMatrix(transformMatrix);
|
|
1159
|
+
}
|
|
1004
1160
|
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1161
|
+
function getTransformRotate(matrix3d) {
|
|
1162
|
+
const pi = Math.PI;
|
|
1163
|
+
const values = getRotationMatrix(matrix3d);
|
|
1164
|
+
let rotateX = 0;
|
|
1165
|
+
let rotateY = 0;
|
|
1166
|
+
if (values.length === 6) {
|
|
1167
|
+
const cosa = values[0];
|
|
1168
|
+
const sina = values[1];
|
|
1169
|
+
if (cosa === 1 && sina === 0) {
|
|
1170
|
+
rotateX = Math.asin(sina);
|
|
1171
|
+
rotateY = Math.acos(cosa);
|
|
1172
|
+
}
|
|
1016
1173
|
}
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
}
|
|
1174
|
+
if (values.length === 16) {
|
|
1175
|
+
const cosaX1 = values[5];
|
|
1176
|
+
const sinaX3 = values[9];
|
|
1177
|
+
if (sinaX3 <= 0) {
|
|
1178
|
+
rotateX = Math.acos(cosaX1);
|
|
1179
|
+
}
|
|
1180
|
+
if (sinaX3 > 0) {
|
|
1181
|
+
rotateX = 2 * pi - Math.acos(cosaX1);
|
|
1182
|
+
}
|
|
1183
|
+
const cosaY1 = values[0];
|
|
1184
|
+
const sinaY2 = values[2];
|
|
1185
|
+
if (sinaY2 <= 0) {
|
|
1186
|
+
rotateY = Math.acos(cosaY1);
|
|
1187
|
+
}
|
|
1188
|
+
if (sinaY2 > 0) {
|
|
1189
|
+
rotateY = 2 * pi - Math.acos(cosaY1);
|
|
1190
|
+
}
|
|
1191
|
+
rotateX = Math.atan2(values[9], values[5]);
|
|
1192
|
+
rotateY = Math.atan2(values[2], values[0]);
|
|
1193
|
+
}
|
|
1194
|
+
return {
|
|
1195
|
+
rotateX: rotateX,
|
|
1196
|
+
rotateY: rotateY,
|
|
1197
|
+
rotateZ: 0
|
|
1198
|
+
};
|
|
1199
|
+
}
|
|
1023
1200
|
|
|
1024
|
-
|
|
1201
|
+
function getTransformTranslate(matrix3d) {
|
|
1202
|
+
const values = getTranslationMatrix(matrix3d);
|
|
1203
|
+
const translateX = values[0];
|
|
1204
|
+
const translateY = values[1];
|
|
1205
|
+
const translateZ = values[2];
|
|
1206
|
+
return {
|
|
1207
|
+
translateX: translateX,
|
|
1208
|
+
translateY: translateY,
|
|
1209
|
+
translateZ: translateZ
|
|
1210
|
+
};
|
|
1211
|
+
}
|
|
1025
1212
|
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
}
|
|
1031
|
-
|
|
1032
|
-
return HTTPS_PROTOCOL;
|
|
1033
|
-
}
|
|
1034
|
-
if (value.startsWith(protocols.http)) {
|
|
1035
|
-
return HTTP_PROTOCOL;
|
|
1036
|
-
}
|
|
1037
|
-
return "relative";
|
|
1038
|
-
};
|
|
1213
|
+
function getTransformScale(matrix3d) {
|
|
1214
|
+
const scale = getScalationValue(matrix3d);
|
|
1215
|
+
return {
|
|
1216
|
+
scale: scale
|
|
1217
|
+
};
|
|
1218
|
+
}
|
|
1039
1219
|
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1220
|
+
function rotatePlurid(matrix3d, direction = "", angleIncrement = .07) {
|
|
1221
|
+
const transformRotate = getTransformRotate(matrix3d);
|
|
1222
|
+
const rotateX = transformRotate.rotateX;
|
|
1223
|
+
let rotateY = transformRotate.rotateY;
|
|
1224
|
+
const rotateZ = transformRotate.rotateZ;
|
|
1225
|
+
const transformTranslate = getTransformTranslate(matrix3d);
|
|
1226
|
+
const translateX = transformTranslate.translateX;
|
|
1227
|
+
const translateY = transformTranslate.translateY;
|
|
1228
|
+
const translateZ = transformTranslate.translateZ;
|
|
1229
|
+
const scale = getTransformScale(matrix3d).scale;
|
|
1230
|
+
let valRotationMatrix = rotateMatrix(rotateX, rotateY, rotateZ);
|
|
1231
|
+
const valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
1232
|
+
const valScalationMatrix = scaleMatrix$1(scale);
|
|
1233
|
+
if (direction === "left") {
|
|
1234
|
+
rotateY -= angleIncrement;
|
|
1235
|
+
valRotationMatrix = rotateMatrix(rotateX, rotateY);
|
|
1043
1236
|
}
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
const cleanPathValue = value => {
|
|
1048
|
-
const queryStart = value.indexOf("?");
|
|
1049
|
-
if (queryStart < 0) {
|
|
1050
|
-
return removeTrailingSlash(value);
|
|
1237
|
+
if (direction === "right") {
|
|
1238
|
+
rotateY += angleIncrement;
|
|
1239
|
+
valRotationMatrix = rotateMatrix(rotateX, rotateY);
|
|
1051
1240
|
}
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
const checkParameterLength = (parameter, length, compareType) => {
|
|
1056
|
-
const parameterLength = parameter.length;
|
|
1057
|
-
switch (compareType) {
|
|
1058
|
-
case compareTypes.equal:
|
|
1059
|
-
return parameterLength === length;
|
|
1060
|
-
|
|
1061
|
-
case compareTypes.equalLessThan:
|
|
1062
|
-
return parameterLength <= length;
|
|
1063
|
-
|
|
1064
|
-
case compareTypes.lessThan:
|
|
1065
|
-
return parameterLength < length;
|
|
1066
|
-
|
|
1067
|
-
case compareTypes.equalGreaterThan:
|
|
1068
|
-
return parameterLength >= length;
|
|
1069
|
-
|
|
1070
|
-
case compareTypes.greaterThan:
|
|
1071
|
-
return parameterLength > length;
|
|
1072
|
-
|
|
1073
|
-
default:
|
|
1074
|
-
return parameterLength <= length;
|
|
1241
|
+
if (direction === "up") {
|
|
1242
|
+
rotateY -= angleIncrement;
|
|
1243
|
+
valRotationMatrix = rotateMatrix(rotateX, rotateY);
|
|
1075
1244
|
}
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
if (validationParameters) {
|
|
1080
|
-
for (const [parameterKey, parameterData] of Object.entries(validationParameters)) {
|
|
1081
|
-
const {length: length, lengthType: lengthType, startsWith: startsWith, endsWith: endsWith, includes: includes} = parameterData;
|
|
1082
|
-
const paramaterValue = parameters[parameterKey];
|
|
1083
|
-
if (!paramaterValue) {
|
|
1084
|
-
return false;
|
|
1085
|
-
}
|
|
1086
|
-
if (startsWith && !paramaterValue.startsWith(startsWith)) {
|
|
1087
|
-
return false;
|
|
1088
|
-
}
|
|
1089
|
-
if (endsWith && !paramaterValue.endsWith(endsWith)) {
|
|
1090
|
-
return false;
|
|
1091
|
-
}
|
|
1092
|
-
if (includes && !includes.includes(paramaterValue)) {
|
|
1093
|
-
return false;
|
|
1094
|
-
}
|
|
1095
|
-
if (length) {
|
|
1096
|
-
const validLength = checkParameterLength(paramaterValue, length, lengthType);
|
|
1097
|
-
return validLength;
|
|
1098
|
-
}
|
|
1099
|
-
}
|
|
1245
|
+
if (direction === "down") {
|
|
1246
|
+
rotateY += angleIncrement;
|
|
1247
|
+
valRotationMatrix = rotateMatrix(rotateX, rotateY);
|
|
1100
1248
|
}
|
|
1101
|
-
|
|
1102
|
-
|
|
1249
|
+
const transformedMatrix3d = setTransform(valRotationMatrix, valTranslationMatrix, valScalationMatrix);
|
|
1250
|
+
return transformedMatrix3d;
|
|
1251
|
+
}
|
|
1103
1252
|
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1253
|
+
function translatePlurid(matrix3d, direction = "", linearIncrement = 50) {
|
|
1254
|
+
const transformRotate = getTransformRotate(matrix3d);
|
|
1255
|
+
const rotateX = transformRotate.rotateX;
|
|
1256
|
+
const rotateY = transformRotate.rotateY;
|
|
1257
|
+
const rotateZ = transformRotate.rotateZ;
|
|
1258
|
+
const transformTranslate = getTransformTranslate(matrix3d);
|
|
1259
|
+
let translateX = transformTranslate.translateX;
|
|
1260
|
+
let translateY = transformTranslate.translateY;
|
|
1261
|
+
const translateZ = transformTranslate.translateZ;
|
|
1262
|
+
const scale = getTransformScale(matrix3d).scale;
|
|
1263
|
+
const valRotationMatrix = rotateMatrix(rotateX, rotateY, rotateZ);
|
|
1264
|
+
let valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
1265
|
+
const valScalationMatrix = scaleMatrix$1(scale);
|
|
1266
|
+
scale < .5 ? linearIncrement = 50 : linearIncrement = 30;
|
|
1267
|
+
if (direction === "left") {
|
|
1268
|
+
translateX += linearIncrement;
|
|
1269
|
+
valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
1107
1270
|
}
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
var index$a = Object.freeze({
|
|
1112
|
-
__proto__: null,
|
|
1113
|
-
cleanPathElement: cleanPathElement
|
|
1114
|
-
});
|
|
1115
|
-
|
|
1116
|
-
const mapPathsToRoutes = (paths, view) => {
|
|
1117
|
-
const routes = [];
|
|
1118
|
-
for (const [key, path] of Object.entries(paths)) {
|
|
1119
|
-
const pathView = view[key];
|
|
1120
|
-
if (pathView) {
|
|
1121
|
-
const route = {
|
|
1122
|
-
value: ""
|
|
1123
|
-
};
|
|
1124
|
-
routes.push(route);
|
|
1125
|
-
}
|
|
1271
|
+
if (direction === "right") {
|
|
1272
|
+
translateX -= linearIncrement;
|
|
1273
|
+
valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
1126
1274
|
}
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
const pluridLinkPathDivider = route => {
|
|
1131
|
-
const windowProtocol = typeof window === "undefined" ? "http" : window.location.protocol.replace(":", "");
|
|
1132
|
-
const windowHost = typeof window === "undefined" ? "localhost:63000" : window.location.host;
|
|
1133
|
-
const split = route.split("://").filter((value => value !== "")).map((value => cleanPathElement(value)));
|
|
1134
|
-
let protocol = windowProtocol;
|
|
1135
|
-
const host = {
|
|
1136
|
-
value: windowHost,
|
|
1137
|
-
controlled: false
|
|
1138
|
-
};
|
|
1139
|
-
const path = {
|
|
1140
|
-
value: "",
|
|
1141
|
-
parameters: {},
|
|
1142
|
-
query: {}
|
|
1143
|
-
};
|
|
1144
|
-
const space = {
|
|
1145
|
-
value: "",
|
|
1146
|
-
parameters: {},
|
|
1147
|
-
query: {}
|
|
1148
|
-
};
|
|
1149
|
-
const universe = {
|
|
1150
|
-
value: "",
|
|
1151
|
-
parameters: {},
|
|
1152
|
-
query: {}
|
|
1153
|
-
};
|
|
1154
|
-
const cluster = {
|
|
1155
|
-
value: "",
|
|
1156
|
-
parameters: {},
|
|
1157
|
-
query: {}
|
|
1158
|
-
};
|
|
1159
|
-
const plane = {
|
|
1160
|
-
value: "",
|
|
1161
|
-
parameters: {},
|
|
1162
|
-
query: {},
|
|
1163
|
-
fragments: {
|
|
1164
|
-
texts: [],
|
|
1165
|
-
elements: []
|
|
1166
|
-
}
|
|
1167
|
-
};
|
|
1168
|
-
const valid = false;
|
|
1169
|
-
if (split.length === 0 || split.length > 7) {
|
|
1170
|
-
const url = {
|
|
1171
|
-
protocol: {
|
|
1172
|
-
value: protocol,
|
|
1173
|
-
secure: true
|
|
1174
|
-
},
|
|
1175
|
-
host: host,
|
|
1176
|
-
path: path,
|
|
1177
|
-
space: space,
|
|
1178
|
-
universe: universe,
|
|
1179
|
-
cluster: cluster,
|
|
1180
|
-
plane: plane,
|
|
1181
|
-
valid: valid
|
|
1182
|
-
};
|
|
1183
|
-
return url;
|
|
1275
|
+
if (direction === "up") {
|
|
1276
|
+
translateY += linearIncrement;
|
|
1277
|
+
valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
1184
1278
|
}
|
|
1185
|
-
if (
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1279
|
+
if (direction === "down") {
|
|
1280
|
+
translateY -= linearIncrement;
|
|
1281
|
+
valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
1282
|
+
}
|
|
1283
|
+
const transformedMatrix3d = setTransform(valRotationMatrix, valTranslationMatrix, valScalationMatrix);
|
|
1284
|
+
return transformedMatrix3d;
|
|
1285
|
+
}
|
|
1191
1286
|
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1287
|
+
function scalePlurid(matrix3d, direction = "", scaleIncrement = .05) {
|
|
1288
|
+
const transformRotate = getTransformRotate(matrix3d);
|
|
1289
|
+
const rotateX = transformRotate.rotateX;
|
|
1290
|
+
const rotateY = transformRotate.rotateY;
|
|
1291
|
+
const rotateZ = transformRotate.rotateZ;
|
|
1292
|
+
const transformTranslate = getTransformTranslate(matrix3d);
|
|
1293
|
+
const translateX = transformTranslate.translateX;
|
|
1294
|
+
const translateY = transformTranslate.translateY;
|
|
1295
|
+
const translateZ = transformTranslate.translateZ;
|
|
1296
|
+
let scale = getTransformScale(matrix3d).scale;
|
|
1297
|
+
const valRotationMatrix = rotateMatrix(rotateX, rotateY, rotateZ);
|
|
1298
|
+
const valTranslationMatrix = translateMatrix$1(translateX, translateY, translateZ);
|
|
1299
|
+
let valScalationMatrix = scaleMatrix$1(scale);
|
|
1300
|
+
if (direction === "up") {
|
|
1301
|
+
scale -= scaleIncrement;
|
|
1302
|
+
if (scale < .1) {
|
|
1303
|
+
scale = .1;
|
|
1199
1304
|
}
|
|
1200
|
-
|
|
1201
|
-
protocol: {
|
|
1202
|
-
value: protocol,
|
|
1203
|
-
secure: true
|
|
1204
|
-
},
|
|
1205
|
-
host: host,
|
|
1206
|
-
path: path,
|
|
1207
|
-
space: space,
|
|
1208
|
-
universe: universe,
|
|
1209
|
-
cluster: cluster,
|
|
1210
|
-
plane: plane,
|
|
1211
|
-
valid: true
|
|
1212
|
-
};
|
|
1213
|
-
return url;
|
|
1305
|
+
valScalationMatrix = scaleMatrix$1(scale);
|
|
1214
1306
|
}
|
|
1215
|
-
if (
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
case 3:
|
|
1227
|
-
universe.value = split[0];
|
|
1228
|
-
cluster.value = split[1];
|
|
1229
|
-
plane.value = split[2];
|
|
1230
|
-
break;
|
|
1307
|
+
if (direction === "down") {
|
|
1308
|
+
scale += scaleIncrement;
|
|
1309
|
+
if (scale > 4) {
|
|
1310
|
+
scale = 4;
|
|
1311
|
+
}
|
|
1312
|
+
valScalationMatrix = scaleMatrix$1(scale);
|
|
1313
|
+
}
|
|
1314
|
+
const transformedMatrix3d = setTransform(valRotationMatrix, valTranslationMatrix, valScalationMatrix);
|
|
1315
|
+
return transformedMatrix3d;
|
|
1316
|
+
}
|
|
1231
1317
|
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1318
|
+
var index$c = Object.freeze({
|
|
1319
|
+
__proto__: null,
|
|
1320
|
+
getMatrixValues: getMatrixValues,
|
|
1321
|
+
getRotationMatrix: getRotationMatrix,
|
|
1322
|
+
getTranslationMatrix: getTranslationMatrix,
|
|
1323
|
+
getScalationValue: getScalationValue,
|
|
1324
|
+
setTransform: setTransform,
|
|
1325
|
+
getTransformRotate: getTransformRotate,
|
|
1326
|
+
getTransformTranslate: getTransformTranslate,
|
|
1327
|
+
getTransformScale: getTransformScale,
|
|
1328
|
+
rotatePlurid: rotatePlurid,
|
|
1329
|
+
translatePlurid: translatePlurid,
|
|
1330
|
+
scalePlurid: scalePlurid
|
|
1331
|
+
});
|
|
1238
1332
|
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
plane.value = split[4];
|
|
1245
|
-
break;
|
|
1333
|
+
var index$b = Object.freeze({
|
|
1334
|
+
__proto__: null,
|
|
1335
|
+
general: index$d,
|
|
1336
|
+
matrix3d: index$c
|
|
1337
|
+
});
|
|
1246
1338
|
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
break;
|
|
1339
|
+
var index$a = Object.freeze({
|
|
1340
|
+
__proto__: null,
|
|
1341
|
+
direction: index$g,
|
|
1342
|
+
matrix: index$e,
|
|
1343
|
+
quaternion: index$f,
|
|
1344
|
+
transform: index$b
|
|
1345
|
+
});
|
|
1255
1346
|
|
|
1256
|
-
|
|
1257
|
-
const url = {
|
|
1258
|
-
protocol: {
|
|
1259
|
-
value: protocol,
|
|
1260
|
-
secure: true
|
|
1261
|
-
},
|
|
1262
|
-
host: host,
|
|
1263
|
-
path: path,
|
|
1264
|
-
space: space,
|
|
1265
|
-
universe: universe,
|
|
1266
|
-
cluster: cluster,
|
|
1267
|
-
plane: plane,
|
|
1268
|
-
valid: valid
|
|
1269
|
-
};
|
|
1270
|
-
return url;
|
|
1271
|
-
}
|
|
1272
|
-
} else {
|
|
1273
|
-
switch (split.length) {
|
|
1274
|
-
case 3:
|
|
1275
|
-
protocol = split[0];
|
|
1276
|
-
host.value = split[1];
|
|
1277
|
-
path.value = split[2];
|
|
1278
|
-
break;
|
|
1347
|
+
const internatiolate = (lamguage, field) => internationalization[lamguage][field];
|
|
1279
1348
|
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1349
|
+
const resolvePluridPlaneData = plane => {
|
|
1350
|
+
if (Array.isArray(plane)) {
|
|
1351
|
+
const [route, component, options] = plane;
|
|
1352
|
+
return Object.assign({
|
|
1353
|
+
route: route,
|
|
1354
|
+
component: component
|
|
1355
|
+
}, options);
|
|
1356
|
+
}
|
|
1357
|
+
return plane;
|
|
1358
|
+
};
|
|
1289
1359
|
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
path: path,
|
|
1298
|
-
space: space,
|
|
1299
|
-
universe: universe,
|
|
1300
|
-
cluster: cluster,
|
|
1301
|
-
plane: plane,
|
|
1302
|
-
valid: valid
|
|
1303
|
-
};
|
|
1304
|
-
return url;
|
|
1305
|
-
}
|
|
1360
|
+
const resolvePluridRoutePlaneData = plane => {
|
|
1361
|
+
if (Array.isArray(plane)) {
|
|
1362
|
+
const [value, component, options] = plane;
|
|
1363
|
+
return Object.assign({
|
|
1364
|
+
value: value,
|
|
1365
|
+
component: component
|
|
1366
|
+
}, options);
|
|
1306
1367
|
}
|
|
1307
|
-
|
|
1308
|
-
protocol: {
|
|
1309
|
-
value: protocol,
|
|
1310
|
-
secure: true
|
|
1311
|
-
},
|
|
1312
|
-
host: host,
|
|
1313
|
-
path: path,
|
|
1314
|
-
space: space,
|
|
1315
|
-
universe: universe,
|
|
1316
|
-
cluster: cluster,
|
|
1317
|
-
plane: plane,
|
|
1318
|
-
valid: true
|
|
1319
|
-
};
|
|
1320
|
-
return url;
|
|
1368
|
+
return plane;
|
|
1321
1369
|
};
|
|
1322
1370
|
|
|
1323
|
-
const
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
const divisions = pluridLinkPathDivider(route);
|
|
1327
|
-
const defaultPathname = typeof window !== "undefined" ? window.location.pathname === "/" ? "p" : window.location.pathname.slice(1) : divisions.path.value ? divisions.path.value : "p";
|
|
1328
|
-
const protocolDivision = divisions.protocol.value || windowProtocol;
|
|
1329
|
-
const hostDivision = divisions.host.value ? divisions.host : {
|
|
1330
|
-
value: windowHost,
|
|
1331
|
-
controlled: true
|
|
1332
|
-
};
|
|
1333
|
-
const path = divisions.path.value ? divisions.path : {
|
|
1334
|
-
value: defaultPathname,
|
|
1335
|
-
parameters: {},
|
|
1336
|
-
query: {}
|
|
1337
|
-
};
|
|
1338
|
-
const space = divisions.space.value ? divisions.space : {
|
|
1339
|
-
value: "s",
|
|
1340
|
-
parameters: {},
|
|
1341
|
-
query: {}
|
|
1342
|
-
};
|
|
1343
|
-
const universe = divisions.universe.value ? divisions.universe : {
|
|
1344
|
-
value: "u",
|
|
1345
|
-
parameters: {},
|
|
1346
|
-
query: {}
|
|
1347
|
-
};
|
|
1348
|
-
const cluster = divisions.cluster.value ? divisions.cluster : {
|
|
1349
|
-
value: "c",
|
|
1350
|
-
parameters: {},
|
|
1351
|
-
query: {}
|
|
1352
|
-
};
|
|
1353
|
-
const plane = divisions.plane;
|
|
1354
|
-
const separator = "://";
|
|
1355
|
-
if (!plane.value && route !== "/") {
|
|
1356
|
-
const resolvers = [ protocolDivision, hostDivision.value, path.value ];
|
|
1357
|
-
const absoluteRoute = resolvers.join(separator);
|
|
1358
|
-
return {
|
|
1359
|
-
protocol: protocolDivision,
|
|
1360
|
-
host: hostDivision,
|
|
1361
|
-
path: path,
|
|
1362
|
-
space: space,
|
|
1363
|
-
universe: universe,
|
|
1364
|
-
cluster: cluster,
|
|
1365
|
-
plane: plane,
|
|
1366
|
-
route: absoluteRoute
|
|
1367
|
-
};
|
|
1371
|
+
const getPluridPlaneIDByData = element => {
|
|
1372
|
+
if (!element) {
|
|
1373
|
+
return "";
|
|
1368
1374
|
}
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
space: "",
|
|
1375
|
-
universe: "",
|
|
1376
|
-
cluster: "",
|
|
1377
|
-
plane: "",
|
|
1378
|
-
route: route
|
|
1379
|
-
};
|
|
1375
|
+
const parent = element.parentElement;
|
|
1376
|
+
if (parent && parent.dataset.pluridPlane) {
|
|
1377
|
+
return parent.dataset.pluridPlane;
|
|
1378
|
+
}
|
|
1379
|
+
return getPluridPlaneIDByData(parent);
|
|
1380
1380
|
};
|
|
1381
1381
|
|
|
1382
1382
|
class IsoMatcher {
|
|
@@ -1385,7 +1385,7 @@ class IsoMatcher {
|
|
|
1385
1385
|
this.planesIndex = new Map;
|
|
1386
1386
|
this.routesKeys = [];
|
|
1387
1387
|
this.planesKeys = [];
|
|
1388
|
-
if (origin === "origin" && typeof location !== "undefined") {
|
|
1388
|
+
if (origin === "origin" && typeof location !== "undefined" && location.host) {
|
|
1389
1389
|
this.origin = location.host;
|
|
1390
1390
|
} else {
|
|
1391
1391
|
this.origin = origin;
|
|
@@ -2651,7 +2651,7 @@ const resolveSpace = (view, configuration, planesRegistrar, currentState, localS
|
|
|
2651
2651
|
view: view
|
|
2652
2652
|
}, hostname);
|
|
2653
2653
|
const computedTree = spaceTree.compute();
|
|
2654
|
-
const stateSpace = Object.assign(Object.assign(Object.assign(Object.assign({
|
|
2654
|
+
const stateSpace = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({
|
|
2655
2655
|
loading: true,
|
|
2656
2656
|
animatedTransform: false,
|
|
2657
2657
|
transformTime: 450,
|
|
@@ -2661,6 +2661,7 @@ const resolveSpace = (view, configuration, planesRegistrar, currentState, localS
|
|
|
2661
2661
|
translationX: 0,
|
|
2662
2662
|
translationY: 0,
|
|
2663
2663
|
translationZ: 0,
|
|
2664
|
+
transform: "matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)",
|
|
2664
2665
|
activeUniverseID: "",
|
|
2665
2666
|
camera: {
|
|
2666
2667
|
x: 0,
|
|
@@ -2682,9 +2683,13 @@ const resolveSpace = (view, configuration, planesRegistrar, currentState, localS
|
|
|
2682
2683
|
}
|
|
2683
2684
|
},
|
|
2684
2685
|
culledView: [],
|
|
2685
|
-
|
|
2686
|
+
activePlaneID: "",
|
|
2687
|
+
isolatePlane: "",
|
|
2688
|
+
lastClosedPlane: "",
|
|
2686
2689
|
tree: computedTree
|
|
2687
|
-
}, precomputedState === null || precomputedState === void 0 ? void 0 : precomputedState.space), contextState === null || contextState === void 0 ? void 0 : contextState.space), localState === null || localState === void 0 ? void 0 : localState.space), currentState === null || currentState === void 0 ? void 0 : currentState.space)
|
|
2690
|
+
}, precomputedState === null || precomputedState === void 0 ? void 0 : precomputedState.space), contextState === null || contextState === void 0 ? void 0 : contextState.space), localState === null || localState === void 0 ? void 0 : localState.space), currentState === null || currentState === void 0 ? void 0 : currentState.space), {
|
|
2691
|
+
view: view
|
|
2692
|
+
});
|
|
2688
2693
|
if (currentState) {
|
|
2689
2694
|
stateSpace.translationX = currentState.space.translationX;
|
|
2690
2695
|
stateSpace.translationY = currentState.space.translationY;
|
|
@@ -2801,5 +2806,5 @@ const pluridRouterNavigate = path => {
|
|
|
2801
2806
|
window.dispatchEvent(event);
|
|
2802
2807
|
};
|
|
2803
2808
|
|
|
2804
|
-
export { cleanTemplate, index$
|
|
2809
|
+
export { cleanTemplate, index$h as general, index$a as interaction, internatiolate, index$8 as planes, pluridRouterNavigate, index$9 as routing, index$2 as space, index as state, index$j as utilities };
|
|
2805
2810
|
//# sourceMappingURL=index.es.js.map
|