larry babby and threejs for glsl
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"PolyTwistColourWidth": [
|
||||
{ "type": "range", "min": 3, "max": 10, "defaultValue": 5, "property": "sides" },
|
||||
{ "type": "range", "min": 1, "max": 600, "defaultValue": 300, "property": "width" },
|
||||
{ "type": "range", "min": 1, "max": 100, "defaultValue": 50, "property": "depth" },
|
||||
{ "type": "range", "min": 0, "max": 360, "defaultValue": 180, "property": "rotation" },
|
||||
{ "type": "color", "defaultValue": "#4287f5", "property": "colour1" },
|
||||
{ "type": "color", "defaultValue": "#42f57b", "property": "colour2" }
|
||||
],
|
||||
"FloralPhyllo": [
|
||||
{ "type": "range", "min": 1, "max": 600, "defaultValue": 300, "property": "width" },
|
||||
{ "type": "range", "min": 1, "max": 100, "defaultValue": 50, "property": "depth" },
|
||||
{ "type": "color", "defaultValue": "#4287f5", "property": "colour1" },
|
||||
{ "type": "color", "defaultValue": "#4287f5", "property": "colour2" }
|
||||
]
|
||||
}
|
|
@ -0,0 +1,111 @@
|
|||
body {
|
||||
-webkit-box-sizing: border-box;
|
||||
/* Safari/Chrome, other WebKit */
|
||||
-moz-box-sizing: border-box;
|
||||
/* Firefox, other Gecko */
|
||||
box-sizing: border-box;
|
||||
/* Opera/IE 8+ */
|
||||
height: 100%
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
canvas {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
#toolbar {
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
height: 100%;
|
||||
|
||||
position: absolute;
|
||||
padding: 0px 20px 0px 20px;
|
||||
width: 500px;
|
||||
height: 100vh;
|
||||
background-color: rgb(189, 189, 189);
|
||||
}
|
||||
|
||||
#custom {
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
height: 100%;
|
||||
|
||||
/* position: absolute; */
|
||||
padding: 0px 20px 0px 20px;
|
||||
/* width: 500px; */
|
||||
/* height: 100vh; */
|
||||
background-color: rgb(189, 189, 189);
|
||||
}
|
||||
|
||||
.button {
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 20px;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
|
||||
.controls {
|
||||
display: flex;
|
||||
margin: 8px 0px;
|
||||
}
|
||||
|
||||
.controlFrameButton {
|
||||
width: 8%;
|
||||
}
|
||||
.controlPauseButton {
|
||||
width: 80%;
|
||||
margin: auto;
|
||||
}
|
||||
/* <!-- HTML !-->
|
||||
<button class="button-8" role="button">Button 8</button> */
|
||||
|
||||
/* CSS */
|
||||
.button-8 {
|
||||
background-color: #e1ecf4;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #7aa7c7;
|
||||
box-shadow: rgba(255, 255, 255, .7) 0 1px 0 0 inset;
|
||||
box-sizing: border-box;
|
||||
color: #1f3f55;
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
/* font-family: -apple-system,system-ui,"Segoe UI","Liberation Sans",sans-serif; */
|
||||
font-size: 13px;
|
||||
font-weight: 400;
|
||||
line-height: 1.15385;
|
||||
/* margin: 0; */
|
||||
outline: none;
|
||||
padding: 8px .8em;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
touch-action: manipulation;
|
||||
vertical-align: baseline;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.button-8:hover,
|
||||
.button-8:focus {
|
||||
background-color: #b3d3ea;
|
||||
color: #2c5777;
|
||||
}
|
||||
|
||||
.button-8:focus {
|
||||
box-shadow: 0 0 0 4px rgba(0, 149, 255, .15);
|
||||
}
|
||||
|
||||
.button-8:active {
|
||||
background-color: #a0c7e4;
|
||||
box-shadow: none;
|
||||
color: #2c5777;
|
||||
}
|
||||
|
||||
.buttonReset{
|
||||
background-color: #f4e1e1;
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<!-- ahhh -->
|
||||
|
||||
<head>
|
||||
<title>Document</title>
|
||||
<link rel="stylesheet" href="./css/styles.css">
|
||||
</head>
|
||||
|
||||
<body style="margin:0;">
|
||||
<canvas id="myCanvas" style="display: block;box-sizing: border-box;"></canvas>
|
||||
<div id="toolbar">
|
||||
<br>
|
||||
<select id="shape-selector">
|
||||
<option value="Larry">Larry</option>
|
||||
<option value="NewWave">NewWave</option>
|
||||
<option value="EyePrototype">EyePrototype</option>
|
||||
<option value="Nodal_expanding">Nodal_expanding</option>
|
||||
<option value="MaryFace">MaryFace</option>
|
||||
<option value="CircleExpand">CircleExpand</option>
|
||||
<option value="PolyTwistColourWidth">PolyTwistColourWidth</option>
|
||||
<option value="FloralPhyllo">FloralPhyllo</option>
|
||||
<option value="FloralPhyllo_Accident">FloralPhyllo_Accident</option>
|
||||
<option value="Spiral1">Spiral1</option>
|
||||
<option value="FloralAccident">FloralAccident</option>
|
||||
<option value="Phyllotaxis">Phyllotaxis</option>
|
||||
<option value="SquareTwist_angle">SquareTwist_angle</option>
|
||||
</select>
|
||||
<div id="custom"></div>
|
||||
<br>
|
||||
<p>Controls:</p>
|
||||
<p>
|
||||
Press "Space" to pause and start the animation
|
||||
</p>
|
||||
<p>
|
||||
Press "P" to show/hide the control panel
|
||||
</p>
|
||||
<br>
|
||||
<p>Speed</p>
|
||||
<input type="text" id="inputDegPerSec" value="10" onchange="ChangeDegPerSec(this.value)">
|
||||
<br>
|
||||
<p>Controls</p>
|
||||
<div class="controls">
|
||||
<button class="controlFrameButton button-8" onclick="BackwardFrame()"><</button>
|
||||
<button class="controlPauseButton button-8" id="pauseButton" onclick="TogglePause()">Play</button>
|
||||
<button class="controlFrameButton button-8" onclick="ForwardFrame()">></button>
|
||||
</div>
|
||||
<button class="buttonReset button-8" id="resetButton" onclick="Reset()">Reset Rotation</button>
|
||||
</div>
|
||||
<div>
|
||||
<button onclick="manualToggleSettings()" class="button">Show/hide</button>
|
||||
</div>
|
||||
</body>
|
||||
<script src="./js/helper.js" type="text/javascript"></script>
|
||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
||||
<script src="./js/math.js" type="text/javascript"></script>
|
||||
<script src="./js/objects.js" type="text/javascript"></script>
|
||||
<script src="./js/index.js"></script>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,407 @@
|
|||
async function fetchConfig(className) {
|
||||
// Configurations for different shapes
|
||||
const config = {
|
||||
Larry: [
|
||||
{
|
||||
type: "range",
|
||||
min: 1,
|
||||
max: 5,
|
||||
defaultValue: 1,
|
||||
property: "magnitude"
|
||||
},
|
||||
// Dropdown control to select food
|
||||
{
|
||||
type: "dropdown",
|
||||
property: "selectedFood",
|
||||
defaultValue: "lettuce",
|
||||
options: [
|
||||
{ value: "lettuce", label: "Lettuce" },
|
||||
{ value: "apple", label: "Apple" },
|
||||
{ value: "carrot", label: "Carrot" }
|
||||
]
|
||||
},
|
||||
{
|
||||
type: "range",
|
||||
min: 0,
|
||||
max: 20,
|
||||
defaultValue: 2,
|
||||
property: "eatSpeed"
|
||||
},
|
||||
{
|
||||
type: "range",
|
||||
min: 0,
|
||||
max: 10000,
|
||||
defaultValue: 3000,
|
||||
property: "eatDuration"
|
||||
},
|
||||
// Button control to start eating
|
||||
{
|
||||
type: "button",
|
||||
label: "Start Eating",
|
||||
method: "startEating",
|
||||
},
|
||||
// Dropdown control to select hat
|
||||
{
|
||||
type: "dropdown",
|
||||
property: "selectedHat",
|
||||
defaultValue: "",
|
||||
options: [
|
||||
{ value: "", label: "None" },
|
||||
{ value: "cap", label: "Cap" },
|
||||
{ value: "top_hat", label: "Top Hat" },
|
||||
{ value: "center_box_full", label: "Center Full" },
|
||||
{ value: "center_box_hollow", label: "Center Hollow" },
|
||||
]
|
||||
},
|
||||
// Button control to apply a hat
|
||||
{
|
||||
type: "button",
|
||||
label: "Apply Hat",
|
||||
method: "applyHat"
|
||||
},
|
||||
// Movement controls
|
||||
{
|
||||
type: "range",
|
||||
min: 0,
|
||||
max: 360,
|
||||
defaultValue: 0,
|
||||
property: "moveDirection"
|
||||
},
|
||||
{
|
||||
type: "range",
|
||||
min: 1,
|
||||
max: 100,
|
||||
defaultValue: 10,
|
||||
property: "moveDistance"
|
||||
},
|
||||
{
|
||||
type: "range",
|
||||
min: 1,
|
||||
max: 10,
|
||||
defaultValue: 5,
|
||||
property: "moveSpeed"
|
||||
},
|
||||
|
||||
{
|
||||
type: "button",
|
||||
label: "Wander",
|
||||
method: "wander"
|
||||
},
|
||||
// Appearance controls
|
||||
{
|
||||
type: "dropdown",
|
||||
property: "selectedShell",
|
||||
defaultValue: "default",
|
||||
options: [
|
||||
{ value: "default", label: "Default" },
|
||||
{ value: "spiky", label: "Spiky" },
|
||||
{ value: "striped", label: "Striped" }
|
||||
]
|
||||
},
|
||||
{
|
||||
type: "button",
|
||||
label: "Apply Shell",
|
||||
method: "applyShell"
|
||||
},
|
||||
// Background controls
|
||||
{
|
||||
type: "dropdown",
|
||||
property: "selectedBackground",
|
||||
defaultValue: "",
|
||||
options: [
|
||||
{ value: "", label: "None" },
|
||||
{ value: "field_white", label: "Field Whtie" },
|
||||
{ value: "field_blue", label: "Field Blue" },
|
||||
{ value: "field_trans", label: "Field Trans" }
|
||||
]
|
||||
},
|
||||
{
|
||||
type: "button",
|
||||
label: "Apply Background",
|
||||
method: "applyBackground"
|
||||
}
|
||||
],
|
||||
// Add other shape configurations here
|
||||
};
|
||||
return config[className];
|
||||
}
|
||||
|
||||
|
||||
function addControl(item, instance) {
|
||||
let parentDiv = document.getElementById("custom");
|
||||
|
||||
let title = document.createElement("p");
|
||||
title.innerText = item.property + ": " + item.defaultValue;
|
||||
title.id = "elText" + item.property;
|
||||
|
||||
let control;
|
||||
|
||||
if (item.type === "range") {
|
||||
control = document.createElement("input");
|
||||
control.type = "range";
|
||||
control.min = item.min;
|
||||
control.max = item.max;
|
||||
control.value = item.defaultValue;
|
||||
control.addEventListener("input", (event) => {
|
||||
const newValue = event.target.value;
|
||||
instance[item.property] = parseInt(newValue, 10);
|
||||
title.innerText = item.property + ": " + newValue;
|
||||
});
|
||||
} else if (item.type === "button") {
|
||||
control = document.createElement("button");
|
||||
control.innerText = item.label;
|
||||
control.addEventListener("click", () => {
|
||||
instance[item.method]();
|
||||
});
|
||||
} else if (item.type === "dropdown") {
|
||||
control = document.createElement("select");
|
||||
item.options.forEach(option => {
|
||||
let optionElement = document.createElement("option");
|
||||
optionElement.value = option.value;
|
||||
optionElement.innerText = option.label;
|
||||
control.appendChild(optionElement);
|
||||
});
|
||||
control.value = item.defaultValue;
|
||||
control.addEventListener("change", (event) => {
|
||||
const newValue = event.target.value;
|
||||
instance[item.property] = newValue;
|
||||
title.innerText = item.property + ": " + newValue;
|
||||
});
|
||||
}
|
||||
|
||||
control.className = "control";
|
||||
control.id = "el" + item.property;
|
||||
|
||||
parentDiv.appendChild(title);
|
||||
parentDiv.appendChild(control);
|
||||
|
||||
return { element: control };
|
||||
}
|
||||
|
||||
|
||||
function drawEyelid(width, x1, y1, colour) {
|
||||
x1 -= centerX;
|
||||
y1 -= centerY;
|
||||
|
||||
const angle = Math.atan2(y1, x1);
|
||||
const cosAngle = Math.cos(angle);
|
||||
const sinAngle = Math.sin(angle);
|
||||
|
||||
const x2 = cosAngle * width;
|
||||
const y2 = sinAngle * width;
|
||||
|
||||
const x3Old = width / 2;
|
||||
const y3Old = width / 2;
|
||||
const x4Old = width / 2;
|
||||
const y4Old = -width / 2;
|
||||
|
||||
const x3 = x3Old * cosAngle - y3Old * sinAngle;
|
||||
const y3 = x3Old * sinAngle + y3Old * cosAngle;
|
||||
const x4 = x4Old * cosAngle - y4Old * sinAngle;
|
||||
const y4 = x4Old * sinAngle + y4Old * cosAngle;
|
||||
|
||||
x1 += centerX;
|
||||
y1 += centerY;
|
||||
const x2Final = x2 + x1;
|
||||
const y2Final = y2 + y1;
|
||||
const x3Final = x3 + x1;
|
||||
const y3Final = y3 + y1;
|
||||
const x4Final = x4 + x1;
|
||||
const y4Final = y4 + y1;
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(x1, y1);
|
||||
ctx.quadraticCurveTo(x3Final, y3Final, x2Final, y2Final);
|
||||
|
||||
ctx.moveTo(x1, y1);
|
||||
ctx.quadraticCurveTo(x4Final, y4Final, x2Final, y2Final);
|
||||
ctx.fillStyle = colour;
|
||||
ctx.fill();
|
||||
|
||||
ctx.lineWidth = 2;
|
||||
ctx.strokeStyle = "black";
|
||||
ctx.stroke();
|
||||
}
|
||||
|
||||
function drawEyelidAccident(x1, y1) {
|
||||
let leafWidth = 120;
|
||||
let leafHeight = 60;
|
||||
x1 -= centerX;
|
||||
y1 -= centerY;
|
||||
let angle = Math.atan(y1 / x1);
|
||||
// if(angle >=Math.PI){
|
||||
// angle -=Math.PI
|
||||
// console.log("greater called")
|
||||
// }
|
||||
angle = Math.abs(angle);
|
||||
let x2Old = 0 + leafWidth;
|
||||
let y2Old = 0;
|
||||
|
||||
let x3Old = 0 + leafWidth / 2;
|
||||
let y3Old = 0 + leafHeight / 2;
|
||||
|
||||
let x4Old = 0 + leafWidth / 2;
|
||||
let y4Old = 0 - leafHeight / 2;
|
||||
|
||||
let x2 = x2Old * Math.cos(angle) - y2Old * Math.sin(angle);
|
||||
let y2 = x2Old * Math.sin(angle) + y2Old * Math.cos(angle);
|
||||
|
||||
let x3 = x3Old * Math.cos(angle) - y3Old * Math.sin(angle);
|
||||
let y3 = x3Old * Math.sin(angle) + y3Old * Math.cos(angle);
|
||||
|
||||
let x4 = x4Old * Math.cos(angle) - y4Old * Math.sin(angle);
|
||||
let y4 = x4Old * Math.sin(angle) + y4Old * Math.cos(angle);
|
||||
|
||||
let oldx1 = x1;
|
||||
let oldy1 = y1;
|
||||
|
||||
x1 += centerX; // +x2/2
|
||||
y1 += centerY; // +x2/2
|
||||
x2 += x1;
|
||||
y2 += y1;
|
||||
x3 += x1;
|
||||
y3 += y1;
|
||||
x4 += x1;
|
||||
y4 += y1;
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(x1, y1);
|
||||
ctx.quadraticCurveTo(x3, y3, x2, y2);
|
||||
|
||||
ctx.moveTo(x1, y1);
|
||||
ctx.quadraticCurveTo(x4, y4, x2, y2);
|
||||
ctx.fillStyle = "black";
|
||||
ctx.fill();
|
||||
|
||||
ctx.lineWidth = 1;
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(x1, y1);
|
||||
ctx.quadraticCurveTo(x3, y3, x2, y2);
|
||||
|
||||
ctx.moveTo(x1, y1);
|
||||
ctx.quadraticCurveTo(x4, y4, x2, y2);
|
||||
ctx.strokeStyle = "orange";
|
||||
ctx.stroke();
|
||||
}
|
||||
|
||||
function DrawPolygon(sides, width, rotation, colour, line_width) {
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(
|
||||
centerX + width * Math.cos((rotation * Math.PI) / 180),
|
||||
centerY + width * Math.sin((rotation * Math.PI) / 180)
|
||||
);
|
||||
|
||||
for (var i = 1; i <= sides; i += 1) {
|
||||
ctx.lineTo(
|
||||
centerX +
|
||||
width *
|
||||
Math.cos((i * 2 * Math.PI) / sides + (rotation * Math.PI) / 180),
|
||||
centerY +
|
||||
width * Math.sin((i * 2 * Math.PI) / sides + (rotation * Math.PI) / 180)
|
||||
);
|
||||
}
|
||||
ctx.strokeStyle = colour;
|
||||
ctx.lineWidth = line_width;
|
||||
ctx.stroke();
|
||||
}
|
||||
|
||||
function rad(degrees) {
|
||||
return (degrees * Math.PI) / 180;
|
||||
}
|
||||
|
||||
function colourToText(colour) {
|
||||
return "rgb(" + colour[0] + "," + colour[1] + "," + colour[2] + ")";
|
||||
}
|
||||
|
||||
|
||||
function waveNormal(x, max) {
|
||||
let val = Math.sin((x / max) * Math.PI * 2 - max * (Math.PI / (max * 2))) / 2 + 0.5
|
||||
return val
|
||||
}
|
||||
|
||||
function LerpHex(a, b, amount) {
|
||||
var ah = parseInt(a.replace(/#/g, ""), 16),
|
||||
ar = ah >> 16,
|
||||
ag = (ah >> 8) & 0xff,
|
||||
ab = ah & 0xff,
|
||||
bh = parseInt(b.replace(/#/g, ""), 16),
|
||||
br = bh >> 16,
|
||||
bg = (bh >> 8) & 0xff,
|
||||
bb = bh & 0xff,
|
||||
rr = ar + amount * (br - ar),
|
||||
rg = ag + amount * (bg - ag),
|
||||
rb = ab + amount * (bb - ab);
|
||||
|
||||
return (
|
||||
"#" + (((1 << 24) + (rr << 16) + (rg << 8) + rb) | 0).toString(16).slice(1)
|
||||
);
|
||||
}
|
||||
|
||||
function LerpRGB(a, b, t) {
|
||||
if (t < 0) {
|
||||
t *= -1;
|
||||
}
|
||||
var newColor = [0, 0, 0];
|
||||
newColor[0] = a[0] + (b[0] - a[0]) * t;
|
||||
newColor[1] = a[1] + (b[1] - a[1]) * t;
|
||||
newColor[2] = a[2] + (b[2] - a[2]) * t;
|
||||
return newColor;
|
||||
}
|
||||
|
||||
function lerpRGB(a, b, t) {
|
||||
const result = [0, 0, 0];
|
||||
for (let i = 0; i < 3; i++) {
|
||||
result[i] = (1 - t) * a[i] + t * b[i];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
function drawCenter(width) {
|
||||
// console.log("center?")
|
||||
ctx.strokeStyle = "pink";
|
||||
ctx.lineWidth = 1
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(centerX - width, centerY);
|
||||
ctx.lineTo(centerX + width, centerY);
|
||||
ctx.closePath();
|
||||
ctx.stroke();
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(centerX, centerY - width);
|
||||
ctx.lineTo(centerX, centerY + width);
|
||||
ctx.closePath();
|
||||
ctx.stroke();
|
||||
}
|
||||
|
||||
function render_clear() {
|
||||
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
|
||||
ctx.fillStyle = "black";
|
||||
ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);
|
||||
}
|
||||
|
||||
function rotatePointTmp(x, y, centerXX, centerYY, rotation) {
|
||||
let xFromC = x - centerXX;
|
||||
let yFromC = y - centerYY;
|
||||
let d = (xFromC ** 2 + yFromC ** 2) ** 0.5
|
||||
// let orgAngle = Math.atan2(yFromC/xFromC)
|
||||
let orgAngle = Math.atan2(xFromC, yFromC)
|
||||
let tmp = Math.cos(rad(orgAngle - rotation)) * d
|
||||
// console.log(Math.cos((-90)*(Math.PI/180)))
|
||||
console.log(orgAngle)
|
||||
console.log(rad(rotation))
|
||||
console.log(Math.cos(orgAngle - rad(rotation)) * d)
|
||||
console.log(d)
|
||||
// console.log(d)
|
||||
let newPointX = Math.cos(orgAngle - rad(rotation + 90)) * d + centerXX;
|
||||
let newPointY = Math.sin(orgAngle - rad(rotation + 90)) * d + centerYY;
|
||||
return [newPointX, newPointY]
|
||||
}
|
||||
|
||||
function rotatePoint(x, y, rotation) {
|
||||
let nCos = Math.cos(rad(rotation))
|
||||
// console.log(nCos*(180/Math.PI))
|
||||
// console.log(rad(rotation))
|
||||
let nSin = Math.sin(rad(rotation))
|
||||
let newX = x * nCos - y * nSin
|
||||
let newY = y * nCos + x * nSin
|
||||
return [newX, newY]
|
||||
}
|
|
@ -0,0 +1,154 @@
|
|||
//jshint esversion:8
|
||||
let c = document.getElementById("myCanvas");
|
||||
let ctx = c.getContext("2d");
|
||||
ctx.canvas.width = window.innerWidth;
|
||||
ctx.canvas.height = window.innerHeight;
|
||||
centerX = ctx.canvas.width / 2;
|
||||
centerY = ctx.canvas.height / 2;
|
||||
ctx.imageSmoothingEnabled = false;
|
||||
|
||||
|
||||
let deg_per_sec = 10;
|
||||
let targetFps = 60;
|
||||
let frameDuration = 1000 / targetFps;
|
||||
|
||||
let rotation = 0; //was = j = angle
|
||||
let paused = true;
|
||||
render_clear();
|
||||
|
||||
let drawObj = null;
|
||||
function createInstance(className, args) {
|
||||
const classMap = {
|
||||
Larry: Larry,
|
||||
NewWave: NewWave,
|
||||
PolyTwistColourWidth: PolyTwistColourWidth,
|
||||
FloralPhyllo: FloralPhyllo,
|
||||
Spiral1: Spiral1,
|
||||
FloralAccident: FloralAccident,
|
||||
FloralPhyllo_Accident: FloralPhyllo_Accident,
|
||||
Nodal_expanding: Nodal_expanding,
|
||||
Phyllotaxis:Phyllotaxis,
|
||||
SquareTwist_angle:SquareTwist_angle,
|
||||
EyePrototype:EyePrototype,
|
||||
CircleExpand:CircleExpand,
|
||||
MaryFace:MaryFace,
|
||||
// Add more class constructors here as needed
|
||||
};
|
||||
|
||||
if (classMap.hasOwnProperty(className)) {
|
||||
return new classMap[className](...args);
|
||||
} else {
|
||||
throw new Error(`Unknown class name: ${className}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
async function updateDrawObj() {
|
||||
const shapeSelector = document.getElementById("shape-selector");
|
||||
const selectedShape = shapeSelector.value;
|
||||
const config = await fetchConfig(selectedShape);
|
||||
if (drawObj) {
|
||||
drawObj.remove(); // Remove the previous instance
|
||||
}
|
||||
|
||||
// Initialize the instance without configuration
|
||||
drawObj = createInstance(selectedShape, []);
|
||||
|
||||
// Set up controls and then update instance properties
|
||||
drawObj.initialise(config);
|
||||
|
||||
// Update instance properties based on control values
|
||||
config.forEach(item => {
|
||||
if (item.type === "range" || item.type === "dropdown") {
|
||||
const control = document.getElementById("el" + item.property);
|
||||
drawObj[item.property] = control.value;
|
||||
}
|
||||
});
|
||||
|
||||
console.log(drawObj);
|
||||
}
|
||||
|
||||
|
||||
updateDrawObj();
|
||||
|
||||
function render() {
|
||||
setTimeout(() => {
|
||||
requestAnimationFrame(() => {
|
||||
render_clear();
|
||||
if (drawObj) {
|
||||
drawObj.draw(rotation);
|
||||
}
|
||||
|
||||
if (!paused) {
|
||||
rotation += deg_per_sec / targetFps;
|
||||
}
|
||||
drawCenter(300)
|
||||
});
|
||||
render();
|
||||
}, frameDuration);
|
||||
}
|
||||
|
||||
document
|
||||
.getElementById("shape-selector")
|
||||
.addEventListener("change", updateDrawObj);
|
||||
|
||||
let toolbarShowing = true;
|
||||
document.addEventListener("keydown", toggleSettings);
|
||||
|
||||
function manualToggleSettings(){
|
||||
console.log("hi")
|
||||
toolbarShowing = !toolbarShowing;
|
||||
let tb = document.getElementById("toolbar");
|
||||
if (toolbarShowing) {
|
||||
tb.style.display = "flex";
|
||||
} else {
|
||||
tb.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
function toggleSettings(e) {
|
||||
if (e.key == "p") {
|
||||
toolbarShowing = !toolbarShowing;
|
||||
}
|
||||
if (e.code === "Space") {
|
||||
paused = !paused;
|
||||
}
|
||||
|
||||
let tb = document.getElementById("toolbar");
|
||||
if (toolbarShowing) {
|
||||
tb.style.display = "flex";
|
||||
} else {
|
||||
tb.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
function TogglePause() {
|
||||
let pb = document.getElementById("pauseButton");
|
||||
paused = !paused;
|
||||
|
||||
if (paused) {
|
||||
pb.textContent = "Play";
|
||||
} else {
|
||||
pb.textContent = "Pause";
|
||||
}
|
||||
}
|
||||
function Reset() {
|
||||
rotation = 0; //was = j = angle
|
||||
currentFrame = 0;
|
||||
}
|
||||
|
||||
function ForwardFrame() {
|
||||
rotation += deg_per_sec / fps; // was = j = innerRotation, now = rotation
|
||||
currentFrame += 1; // was = i
|
||||
}
|
||||
function BackwardFrame() {
|
||||
rotation -= deg_per_sec / fps; // was = j = innerRotation, now = rotation
|
||||
currentFrame -= 1; // was = i
|
||||
}
|
||||
|
||||
function ChangeDegPerSec(newValue) {
|
||||
deg_per_sec = newValue;
|
||||
}
|
||||
|
||||
window.onload = render;
|
|
@ -0,0 +1,77 @@
|
|||
function rotateMatrix2d(p, angle) {
|
||||
// cos0 sin0
|
||||
// -sin0 cos0
|
||||
const angleD = rad(angle);
|
||||
const r = [
|
||||
[Math.cos(angleD), Math.sin(angleD)],
|
||||
[-Math.sin(angleD), Math.cos(angleD)],
|
||||
];
|
||||
const newPoint = [
|
||||
p[0] * r[0][0] + p[1] * r[0][1],
|
||||
p[0] * r[1][0] + p[1] * r[1][1],
|
||||
];
|
||||
return newPoint;
|
||||
}
|
||||
|
||||
function rotateMatrix3dX(p, angle) {
|
||||
// cos0 sin0
|
||||
// -sin0 cos0
|
||||
const angleD = rad(angle);
|
||||
const r = [
|
||||
[1, 0, 0],
|
||||
[0, Math.cos(angleD), -Math.sin(angleD)],
|
||||
[0, Math.sin(angleD), Math.cos(angleD)],
|
||||
];
|
||||
const newPoint = [
|
||||
p[0] * r[0][0] + p[1] * r[0][1] + p[2] * r[0][2],
|
||||
p[0] * r[1][0] + p[1] * r[1][1] + p[2] * r[1][2],
|
||||
p[0] * r[2][0] + p[1] * r[2][1] + p[2] * r[2][2],
|
||||
];
|
||||
return newPoint;
|
||||
}
|
||||
|
||||
function rotateMatrix3dY(p, angle) {
|
||||
// cos0 sin0
|
||||
// -sin0 cos0
|
||||
const angleD = rad(angle);
|
||||
const r = [
|
||||
[Math.cos(angleD), 0, Math.sin(angleD)],
|
||||
[0, 1, 0],
|
||||
[-Math.sin(angleD), 0, Math.cos(angleD)],
|
||||
];
|
||||
const newPoint = [
|
||||
p[0] * r[0][0] + p[1] * r[0][1] + p[2] * r[0][2],
|
||||
p[0] * r[1][0] + p[1] * r[1][1] + p[2] * r[1][2],
|
||||
p[0] * r[2][0] + p[1] * r[2][1] + p[2] * r[2][2],
|
||||
];
|
||||
return newPoint;
|
||||
}
|
||||
function rotateMatrix3dZ(p, angle) {
|
||||
// cos0 sin0
|
||||
// -sin0 cos0
|
||||
const angleD = rad(angle);
|
||||
const r = [
|
||||
[Math.cos(angleD), -Math.sin(angleD), 0],
|
||||
[Math.sin(angleD), Math.cos(angleD), 0],
|
||||
[0, 0, 1],
|
||||
];
|
||||
const newPoint = [
|
||||
p[0] * r[0][0] + p[1] * r[0][1] + p[2] * r[0][2],
|
||||
p[0] * r[1][0] + p[1] * r[1][1] + p[2] * r[1][2],
|
||||
p[0] * r[2][0] + p[1] * r[2][1] + p[2] * r[2][2],
|
||||
];
|
||||
return newPoint;
|
||||
}
|
||||
|
||||
function projectionOrth(v) {
|
||||
const p = [
|
||||
[1, 0, 0],
|
||||
[0, 1, 0],
|
||||
];
|
||||
|
||||
const nPoint = [
|
||||
p[0][0] * v[0] + p[0][1] * v[1] + p[0][2] * v[2],
|
||||
p[1][0] * v[0] + p[1][1] * v[1] + p[1][2] * v[2],
|
||||
];
|
||||
return nPoint;
|
||||
}
|
|
@ -0,0 +1,808 @@
|
|||
|
||||
class BaseShape {
|
||||
constructor() {
|
||||
this.controls = []; // Keep track of created elements and event listeners
|
||||
this.speedMultiplier = 100;
|
||||
}
|
||||
|
||||
initialise(config) {
|
||||
for (let item of config) {
|
||||
const { element, listener } = addControl(item, this);
|
||||
this.controls.push({ element, listener });
|
||||
}
|
||||
|
||||
// Add a default speed multiplier control
|
||||
const { element, listener } = addControl({
|
||||
type: "range",
|
||||
min: 1,
|
||||
max: 500,
|
||||
defaultValue: 100,
|
||||
property: "speedMultiplier",
|
||||
}, this);
|
||||
this.controls.push({ element, listener });
|
||||
}
|
||||
|
||||
remove() {
|
||||
this.controls.forEach(({ element, listener }) => {
|
||||
if (element && listener) {
|
||||
element.removeEventListener("input", listener);
|
||||
}
|
||||
if (element && element.parentElement) {
|
||||
element.parentElement.removeChild(element);
|
||||
const titleElement = document.getElementById("elText" + element.id.slice(2));
|
||||
if (titleElement) {
|
||||
titleElement.parentElement.removeChild(titleElement);
|
||||
}
|
||||
}
|
||||
});
|
||||
this.controls = [];
|
||||
}
|
||||
|
||||
draw() {
|
||||
throw new Error("Draw function not implemented");
|
||||
}
|
||||
}
|
||||
|
||||
class Larry extends BaseShape {
|
||||
constructor(eatSpeed, eatDuration) {
|
||||
super();
|
||||
this.magnitude = 1;
|
||||
this.bodyWidth = 64;
|
||||
this.bodyHeight = 64;
|
||||
this.headWidth = 21;
|
||||
this.headHeight = 24;
|
||||
this.headOffsetX = 54 - this.headWidth * this.magnitude / 2;
|
||||
this.headOffsetY = this.bodyHeight * this.magnitude - 7; // Bottom of the body minus 7 pixels
|
||||
this.globalX = centerX;
|
||||
this.globalY = centerY;
|
||||
this.localX = 0;
|
||||
this.localY = 0;
|
||||
this.speedMultiplier = 100;
|
||||
|
||||
this.isEating = false;
|
||||
this.eatDuration = eatDuration;
|
||||
this.eatSpeed = eatSpeed;
|
||||
|
||||
this.bodyImage = new Image();
|
||||
this.headImage = new Image();
|
||||
this.hatImage = new Image();
|
||||
this.shellImage = new Image();
|
||||
this.backgroundImage = new Image();
|
||||
|
||||
this.bodyImage.src = 'larry_photos/body.png';
|
||||
this.headImage.src = 'larry_photos/head.png';
|
||||
this.hatImage.src = '';
|
||||
this.shellImage.src = '';
|
||||
this.backgroundImage.src = '';
|
||||
}
|
||||
|
||||
draw(timestamp) {
|
||||
timestamp *= (this.speedMultiplier / 100);
|
||||
// Draw background
|
||||
if (this.backgroundImage.src) {
|
||||
console.log("drawing background: " + this.backgroundImage.src)
|
||||
ctx.drawImage(this.backgroundImage, centerX- (this.backgroundImage.width), centerY -this.backgroundImage.height,this.backgroundImage.width*2,this.backgroundImage.height*2);
|
||||
}
|
||||
|
||||
// Draw body at its anchor point (center-bottom)
|
||||
const bodyX = this.globalX - (this.bodyWidth * this.magnitude / 2);
|
||||
const bodyY = this.globalY - this.bodyHeight * this.magnitude;
|
||||
ctx.drawImage(this.bodyImage, bodyX, bodyY, this.bodyWidth * this.magnitude, this.bodyHeight * this.magnitude);
|
||||
|
||||
// Draw head aligned with body
|
||||
// const headX = bodyX + this.headOffsetX;
|
||||
// let headY = bodyY + this.headOffsetY - this.headHeight;
|
||||
const headX = bodyX + (54 * this.magnitude - this.headWidth * this.magnitude / 2);
|
||||
let headY = bodyY + (this.bodyHeight * this.magnitude - 7* this.magnitude) - this.headHeight * this.magnitude;
|
||||
|
||||
if (this.isEating === true) {
|
||||
const eatMaxHeight = 20;
|
||||
const eatingYOffset = ((Math.sin((timestamp * 2 * Math.PI * this.eatSpeed * 0.1) - Math.PI / 2) + 1) / 2) * eatMaxHeight;
|
||||
headY -= eatingYOffset;
|
||||
}
|
||||
ctx.drawImage(this.headImage, headX, headY, this.headWidth * this.magnitude, this.headHeight * this.magnitude);
|
||||
|
||||
// Draw hat if any
|
||||
if (this.hatImage.src) {
|
||||
let hatXoffset = (this.headWidth*this.magnitude)/2 -(this.hatImage.width*this.magnitude)/2 + (2*this.magnitude);
|
||||
let hatYoffset = (this.headHeight*this.magnitude) - (this.hatImage.height*this.magnitude) + (-11 * this.magnitude);
|
||||
if(document.getElementById('elselectedHat').value === "cap"){
|
||||
hatXoffset += this.magnitude*1.5
|
||||
}
|
||||
this.drawCrosshair(headX,headY,20)
|
||||
ctx.drawImage(this.hatImage, headX + hatXoffset, headY + hatYoffset,this.hatImage.width*this.magnitude,this.hatImage.height*this.magnitude);
|
||||
}
|
||||
|
||||
// Draw shell if any
|
||||
if (this.shellImage.src) {
|
||||
ctx.drawImage(this.shellImage, bodyX, bodyY, this.bodyWidth, this.bodyHeight);
|
||||
}
|
||||
}
|
||||
|
||||
drawCrosshair(x,y,size){
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(x-size,y);
|
||||
ctx.lineTo(x+size,y);
|
||||
ctx.stroke();
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(x,y-size);
|
||||
ctx.lineTo(x,y+size);
|
||||
ctx.stroke();
|
||||
}
|
||||
|
||||
startEating() {
|
||||
console.log("Larry starts eating");
|
||||
console.log(this.eatDuration)
|
||||
this.isEating = true;
|
||||
setTimeout(() => {
|
||||
this.isEating = false;
|
||||
console.log("Larry stops eating");
|
||||
}, this.eatDuration); // Adjust duration as needed
|
||||
}
|
||||
|
||||
applyHat() {
|
||||
const hatSelection = document.getElementById('elselectedHat').value;
|
||||
if (hatSelection === "") {
|
||||
this.hatImage.src = ``;
|
||||
}
|
||||
else {
|
||||
this.hatImage.src = `larry_photos/hats/${hatSelection}.png`;
|
||||
}
|
||||
}
|
||||
|
||||
wander() {
|
||||
console.log("Larry starts wandering");
|
||||
// Implement wandering logic here
|
||||
}
|
||||
|
||||
applyShell() {
|
||||
const shellSelection = document.getElementById('elselectedShell').value;
|
||||
this.shellImage.src = `larry_photos/shells/${shellSelection}.png`;
|
||||
}
|
||||
|
||||
applyBackground() {
|
||||
const backgroundSelection = document.getElementById('elselectedBackground').value;
|
||||
this.backgroundImage.src = `larry_photos/backgrounds/${backgroundSelection}.png`;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class PolyTwistColourWidth extends BaseShape {
|
||||
constructor(sides, width, line_width, depth, rotation, speedMultiplier, colour1, colour2) {
|
||||
super();
|
||||
this.sides = sides;
|
||||
this.width = width;
|
||||
this.line_width = line_width;
|
||||
this.depth = depth;
|
||||
this.rotation = rotation;
|
||||
this.speedMultiplier = speedMultiplier;
|
||||
this.colour1 = colour1;
|
||||
this.colour2 = colour2;
|
||||
}
|
||||
|
||||
draw(rotation) {
|
||||
rotation *= (this.speedMultiplier / 100)
|
||||
let out_angle = 0;
|
||||
const innerAngle = 180 - ((this.sides - 2) * 180) / this.sides;
|
||||
const scopeAngle = rotation - (innerAngle * Math.floor(rotation / innerAngle));
|
||||
|
||||
if (scopeAngle < innerAngle / 2) {
|
||||
out_angle = innerAngle / (2 * Math.cos((2 * Math.PI * scopeAngle) / (3 * innerAngle))) - innerAngle / 2;
|
||||
} else {
|
||||
out_angle = -innerAngle / (2 * Math.cos(((2 * Math.PI) / 3) - ((2 * Math.PI * scopeAngle) / (3 * innerAngle)))) + (innerAngle * 3) / 2;
|
||||
}
|
||||
let minWidth = Math.sin(rad(innerAngle / 2)) * (0.5 / Math.tan(rad(innerAngle / 2))) * 2;
|
||||
|
||||
let widthMultiplier = minWidth / Math.sin(Math.PI / 180 * (90 + innerAngle / 2 - out_angle + innerAngle * Math.floor(out_angle / innerAngle)));
|
||||
|
||||
for (let i = 0; i < this.depth; i++) {
|
||||
const fraction = i / this.depth;
|
||||
const ncolour = LerpHex(this.colour1, this.colour2, fraction);
|
||||
DrawPolygon(this.sides, this.width * widthMultiplier ** i, out_angle * i + this.rotation, ncolour, this.line_width);
|
||||
}
|
||||
}
|
||||
}
|
||||
class FloralPhyllo extends BaseShape {
|
||||
constructor(width, depth, start, colour1, colour2) {
|
||||
super();
|
||||
this.width = width;
|
||||
this.depth = depth;
|
||||
this.start = start;
|
||||
this.colour1 = colour1;
|
||||
this.colour2 = colour2;
|
||||
this.speedMultiplier = 500;
|
||||
}
|
||||
|
||||
draw(rotation) {
|
||||
rotation *= (this.speedMultiplier / 500)
|
||||
rotation += this.start
|
||||
// var c = 24; //something to do with width. but not width
|
||||
var c = 1; //something to do with width. but not width
|
||||
//dont make larger than 270 unless altering the number of colours in lerpedColours
|
||||
for (let n = this.depth; n > 0; n -= 1) {
|
||||
let colVal = waveNormal(n, this.depth)
|
||||
let ncolour = LerpHex(this.colour1, this.colour2, n / this.depth);
|
||||
const a = n * rotation / 1000; //137.5;
|
||||
const r = c * Math.sqrt(n);
|
||||
const x = r * Math.cos(a) + centerX;
|
||||
const y = r * Math.sin(a) + centerY;
|
||||
|
||||
drawEyelid(n * 2.4 + 40, x, y, ncolour);
|
||||
}
|
||||
}
|
||||
}
|
||||
class Spiral1 extends BaseShape {
|
||||
constructor(sides, width, colour) {
|
||||
super();
|
||||
this.sides = sides;
|
||||
this.width = width;
|
||||
this.colour = colour;
|
||||
}
|
||||
|
||||
draw(rotation) {
|
||||
rotation *= (this.speedMultiplier / 100)
|
||||
var rot = Math.round((this.sides - 2) * 180 / this.sides * 2)
|
||||
var piv = 360 / this.sides;
|
||||
var stt = 0.5 * Math.PI - rad(rot) //+ rad(rotation);
|
||||
var end = 0;
|
||||
var n = this.width / ((this.width / 10) * (this.width / 10)) //pixel correction for mid leaf
|
||||
|
||||
for (let i = 1; i < this.sides + 1; i++) {
|
||||
end = stt + rad(rot);
|
||||
ctx.lineWidth = 5
|
||||
ctx.beginPath();
|
||||
ctx.arc(centerX + Math.cos(rad(90 + piv * i + rotation)) * this.width, centerY + Math.sin(rad(90 + piv * i + rotation)) * this.width, this.width, stt + rad(rotation) - (stt - end) / 2, end + rad(rotation) + rad(n), 0);
|
||||
ctx.strokeStyle = this.colour;
|
||||
ctx.stroke();
|
||||
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.arc(centerX + Math.cos(rad(90 + piv * i - rotation)) * this.width, centerY + Math.sin(rad(90 + piv * i - rotation)) * this.width, this.width, stt - rad(rotation), end - (end - stt) / 2 + rad(n) - rad(rotation), 0);
|
||||
ctx.strokeStyle = this.colour;
|
||||
ctx.stroke();
|
||||
|
||||
|
||||
stt = end + -(rad(rot - piv)) //+rad(30);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class FloralAccident extends BaseShape {
|
||||
constructor(sides, width, colour) {
|
||||
super();
|
||||
this.sides = sides;
|
||||
this.width = width;
|
||||
this.colour = colour;
|
||||
}
|
||||
|
||||
draw(rotation) {
|
||||
rotation *= (this.speedMultiplier / 100)
|
||||
var rot = Math.round((this.sides - 2) * 180 / this.sides * 2)
|
||||
var piv = 360 / this.sides;
|
||||
var stt = 0.5 * Math.PI - rad(rot) //+ rad(rotation);
|
||||
var end = 0;
|
||||
var n = this.width / ((this.width / 10) * (this.width / 10)) //pixel correction for mid leaf
|
||||
|
||||
for (let i = 1; i < this.sides + 1; i++) {
|
||||
end = stt + rad(rot);
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.arc(centerX + Math.cos(rad(90 + piv * i + rotation)) * this.width, centerY + Math.sin(rad(90 + piv * i + rotation)) * this.width, this.width, stt - (stt - end + rad(rotation)) / 2, end + rad(n), 0);
|
||||
ctx.strokeStyle = this.colour;
|
||||
ctx.stroke();
|
||||
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.arc(centerX + Math.cos(rad(90 + piv * i - rotation)) * this.width, centerY + Math.sin(rad(90 + piv * i - rotation)) * this.width, this.width, stt, end - (end - stt - rad(rotation)) / 2 + rad(n), 0);
|
||||
ctx.strokeStyle = this.colour;
|
||||
ctx.stroke();
|
||||
|
||||
|
||||
stt = end + -(rad(rot - piv)) //+rad(30);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
class FloralPhyllo_Accident extends BaseShape {
|
||||
constructor(sides, width, colour1, colour2) {
|
||||
super();
|
||||
this.sides = sides;
|
||||
this.width = width;
|
||||
this.colour1 = colour1;
|
||||
this.colour2 = colour2;
|
||||
}
|
||||
|
||||
draw(rotation) {
|
||||
rotation *= (this.speedMultiplier / 100)
|
||||
var c = 24; //something to do with width. but not width
|
||||
|
||||
for (let n = 0; n < 300; n += 1) {
|
||||
let ncolour = LerpHex(this.colour1, this.colour2, Math.cos(rad(n / 2)));
|
||||
let a = n * (rotation / 1000 + 100); //137.5;
|
||||
let r = c * Math.sqrt(n);
|
||||
let x = r * Math.cos(a) + centerX;
|
||||
let y = r * Math.sin(a) + centerY;
|
||||
|
||||
drawEyelidAccident(x, y);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
class Nodal_expanding extends BaseShape {
|
||||
constructor(expand, points, start, line_width, colour1, colour2, colour_change) {
|
||||
super();
|
||||
this.expand = expand;
|
||||
this.points = points;
|
||||
this.start = start;
|
||||
this.line_width = line_width;
|
||||
this.colour1 = colour1;
|
||||
this.colour2 = colour2;
|
||||
this.colour_change = colour_change
|
||||
}
|
||||
|
||||
draw(rotation) {
|
||||
rotation *= (this.speedMultiplier / 1000)
|
||||
var angle = (360 / 3000 * rotation) + this.start //2000 controls speed
|
||||
|
||||
var length = this.expand;
|
||||
|
||||
for (let z = 1; z <= this.points; z++) { //why specifically 2500
|
||||
ctx.beginPath();
|
||||
let ncolour = LerpHex(this.colour1, this.colour2, z / this.points);
|
||||
|
||||
ctx.moveTo(centerX + (Math.cos(rad(angle * (z - 1) + 0)) * (length - this.expand)), centerY + (Math.sin(rad(angle * (z - 1) + 0)) * (length - this.expand)));
|
||||
ctx.lineTo(centerX + (Math.cos(rad(angle * z + 0)) * length), centerY + (Math.sin(rad(angle * z + 0)) * length));
|
||||
length += this.expand;
|
||||
ctx.lineWidth = this.line_width;//try 1
|
||||
ctx.strokeStyle = ncolour;
|
||||
ctx.lineCap = "round"
|
||||
// ctx.strokeStyle = colourToText(ncolour);
|
||||
console.log(ncolour)
|
||||
ctx.stroke();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
class Phyllotaxis extends BaseShape {
|
||||
constructor(width, start, nMax, wave, colour1, colour2) {
|
||||
super();
|
||||
this.width = width;
|
||||
this.start = start;
|
||||
this.nMax = nMax;
|
||||
this.wave = wave;
|
||||
this.colour1 = colour1;
|
||||
this.colour2 = colour2;
|
||||
}
|
||||
drawWave(angle) {
|
||||
angle /= 1000
|
||||
const startColor = [45, 129, 252];
|
||||
const endColor = [252, 3, 98];
|
||||
const distanceMultiplier = 3;
|
||||
const maxIterations = 200;
|
||||
// angle=0;
|
||||
for (let n = 0; n < maxIterations; n++) {
|
||||
ctx.beginPath();
|
||||
const nColor = lerpRGB(startColor, endColor, Math.cos(rad(n / 2)));
|
||||
|
||||
// const nAngle = n* angle ;
|
||||
// const nAngle = n*angle+ Math.sin(rad(n*1+angle*4000))/1 ;
|
||||
const nAngle = n * angle + Math.sin(rad(n * 1 + angle * 40000)) / 2;
|
||||
const radius = distanceMultiplier * n;
|
||||
const xCoord = radius * Math.cos(nAngle) + centerX;
|
||||
const yCoord = radius * Math.sin(nAngle) + centerY;
|
||||
ctx.arc(xCoord, yCoord, 8, 0, 2 * Math.PI);
|
||||
ctx.fillStyle = colourToText(nColor);
|
||||
ctx.fill();
|
||||
}
|
||||
}
|
||||
drawSpiral(angle) {
|
||||
angle /= 5000
|
||||
const startColor = [45, 129, 252];
|
||||
const endColor = [252, 3, 98];
|
||||
const distanceMultiplier = 2;
|
||||
const maxIterations = 1000;
|
||||
|
||||
|
||||
for (let n = 0; n < maxIterations; n++) {
|
||||
const nColor = lerpRGB(startColor, endColor, Math.cos(rad(n / 2)));
|
||||
|
||||
const nAngle = n * angle + Math.sin(angle * n * 2);
|
||||
const radius = distanceMultiplier * n;
|
||||
const xCoord = radius * Math.cos(nAngle) + centerX;
|
||||
const yCoord = radius * Math.sin(nAngle) + centerY;
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.arc(xCoord, yCoord, 8, 0, 2 * Math.PI);
|
||||
ctx.fillStyle = colourToText(nColor);
|
||||
ctx.fill();
|
||||
}
|
||||
}
|
||||
|
||||
// Draw_nodal(300, 100, 31, rotation, "blue");
|
||||
draw(rotation) {
|
||||
rotation *= (this.speedMultiplier / 300)
|
||||
rotation += this.start
|
||||
const sizeMultiplier = this.nMax / (5 - 3)
|
||||
if (this.wave === 1) {
|
||||
this.drawWave(rotation)
|
||||
}
|
||||
else if (this.wave === 2) {
|
||||
this.drawSpiral(rotation)
|
||||
}
|
||||
else {
|
||||
for (let n = 0; n < this.nMax; n += 1) {
|
||||
const ncolour = LerpHex(this.colour1, this.colour2, n / this.nMax);
|
||||
// const ncolour = LerpHex(this.colour1, this.colour2, (n/this.nMax)**2);
|
||||
const a = n * (rotation / 1000)//137.5;
|
||||
const r = this.width * Math.sqrt(n);
|
||||
const x = r * Math.cos(a) + centerX;
|
||||
const y = r * Math.sin(a) + centerY;
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.arc(x, y, (n / sizeMultiplier) + 3, 0, 2 * Math.PI);
|
||||
ctx.fillStyle = ncolour;
|
||||
// ctx.fillStyle = colourToText(ncolour);
|
||||
ctx.fill();
|
||||
// console.log(this.c)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
class SquareTwist_angle extends BaseShape {
|
||||
constructor(width, line_width, colour1) {
|
||||
super();
|
||||
this.width = width;
|
||||
this.line_width = line_width;
|
||||
this.colour1 = colour1;
|
||||
}
|
||||
drawSquare(angle, size, colour) {
|
||||
ctx.save();
|
||||
ctx.translate(centerX, centerY)//-(Math.sin(rad(angle)) *centerX));
|
||||
ctx.rotate(rad(angle + 180));
|
||||
ctx.beginPath();
|
||||
ctx.strokeStyle = colour;
|
||||
ctx.lineWidth = this.line_width;
|
||||
ctx.rect(-size / 2, -size / 2, size, size);
|
||||
ctx.stroke();
|
||||
ctx.restore();
|
||||
}
|
||||
// DrawSquareTwist_angle(400,0,rotation,"red")
|
||||
draw(rotation) {
|
||||
rotation *= (this.speedMultiplier / 100)
|
||||
let out_angle = rotation;
|
||||
let widthMultiplier = 1 / (2 * Math.sin(Math.PI / 180 * (130 - out_angle + 90 * Math.floor(out_angle / 90)))) + 0.5
|
||||
|
||||
for (let i = 0; i < 25; i++) {
|
||||
this.drawSquare(rotation * i, this.width * widthMultiplier ** i, this.colour1)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class CircleExpand extends BaseShape {
|
||||
constructor(nCircles, gap, linear, heart, colour1, colour2) {
|
||||
super();
|
||||
this.nCircles = nCircles;
|
||||
this.gap = gap;
|
||||
this.linear = linear;
|
||||
this.heart = heart;
|
||||
this.colour1 = colour1;
|
||||
this.colour2 = colour2
|
||||
}
|
||||
lerpColor(a, b, amount) {
|
||||
var ah = +a.replace('#', '0x'),
|
||||
ar = ah >> 16, ag = ah >> 8 & 0xff, ab = ah & 0xff,
|
||||
bh = +b.replace('#', '0x'),
|
||||
br = bh >> 16, bg = bh >> 8 & 0xff, bb = bh & 0xff,
|
||||
rr = ar + amount * (br - ar),
|
||||
rg = ag + amount * (bg - ag),
|
||||
rb = ab + amount * (bb - ab);
|
||||
|
||||
return '#' + ((1 << 24) + (rr << 16) + (rg << 8) + rb | 0).toString(16).slice(1);
|
||||
}
|
||||
|
||||
arraySort(x, y) {
|
||||
if (x.r > y.r) {
|
||||
return 1;
|
||||
}
|
||||
if (x.r < y.r) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
drawHeart(w, colour) {
|
||||
// var w = 200
|
||||
ctx.strokeStyle = "black";
|
||||
ctx.fillStyle = colour;
|
||||
ctx.lineWidth = 1;
|
||||
var x = centerX - w / 2;
|
||||
let y = centerY - w / 2
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(x, y + w / 4);
|
||||
ctx.quadraticCurveTo(x, y, x + w / 4, y);
|
||||
ctx.quadraticCurveTo(x + w / 2, y, x + w / 2, y + w / 5);
|
||||
ctx.quadraticCurveTo(x + w / 2, y, x + w * 3 / 4, y);
|
||||
ctx.quadraticCurveTo(x + w, y, x + w, y + w / 4);
|
||||
ctx.quadraticCurveTo(x + w, y + w / 2, x + w * 3 / 4, y + w * 3 / 4);
|
||||
ctx.lineTo(x + w / 2, y + w);
|
||||
ctx.lineTo(x + w / 4, y + w * 3 / 4);
|
||||
ctx.quadraticCurveTo(x, y + w / 2, x, y + w / 4);
|
||||
ctx.stroke();
|
||||
ctx.fill();
|
||||
}
|
||||
|
||||
draw(rotation) {
|
||||
rotation *= (0.9)
|
||||
ctx.strokeWeight = 1;
|
||||
ctx.lineWidth = 1;
|
||||
let arrOfWidths = []
|
||||
let arrOfco = []
|
||||
let intRot;
|
||||
if (this.linear) {
|
||||
intRot = Math.floor(rotation * 30) / 100
|
||||
}
|
||||
else {
|
||||
intRot = Math.sin(rad(Math.floor(rotation * 30) / 4)) + rotation / 4
|
||||
}
|
||||
|
||||
for (let i = 0; i < this.nCircles; i++) {
|
||||
const width = this.gap * ((intRot + i) % this.nCircles);
|
||||
const colour = (Math.sin(rad(i * (360 / this.nCircles) - 90)) + 1) / 2
|
||||
arrOfWidths.push({ r: width, c: colour });
|
||||
}
|
||||
|
||||
let newArr = arrOfWidths.sort(this.arraySort)
|
||||
|
||||
for (let i = this.nCircles - 1; i >= 0; i--) {
|
||||
let newColour = this.lerpColor(this.colour1, this.colour2, newArr[i].c)
|
||||
|
||||
if (this.heart) {
|
||||
this.drawHeart(newArr[i].r, newColour)
|
||||
}
|
||||
else {
|
||||
ctx.beginPath();
|
||||
ctx.arc(centerX, centerY, newArr[i].r, 0, 2 * Math.PI);
|
||||
ctx.fillStyle = newColour;
|
||||
ctx.fill();
|
||||
ctx.stokeStyle = "black";
|
||||
ctx.stroke();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class EyePrototype extends BaseShape {
|
||||
constructor(x, y, rotate, flip, width, blink_speed, draw_spiral, spiral_full, draw_pupil, draw_expand, draw_hypno, line_width, colourPupil, colourSpiral, colourExpand) {
|
||||
super();
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.rotate = rotate;
|
||||
this.flip = flip
|
||||
this.width = width;
|
||||
this.blink_speed = blink_speed;
|
||||
this.line_width = line_width;
|
||||
this.step = 0;
|
||||
this.opening = true;
|
||||
this.counter = 0;
|
||||
this.cooldown = 0;
|
||||
this.draw_spiral = draw_spiral;
|
||||
this.spiral_full = spiral_full;
|
||||
this.draw_pupil = draw_pupil;
|
||||
this.draw_expand = draw_expand;
|
||||
this.draw_hypno = draw_hypno;
|
||||
this.colourPupil = colourPupil;
|
||||
this.colourSpiral = colourSpiral;
|
||||
this.colourExpand = colourExpand;
|
||||
this.centerPulse = new CircleExpand(10, 30, 1, 0, "#2D81FC", "#FC0362")
|
||||
}
|
||||
drawEyelid(rotation) {
|
||||
ctx.strokeStyle = "orange";
|
||||
let relCenterX = centerX + this.x;
|
||||
let relCenterY = centerY + this.y;
|
||||
rotation *= (this.speedMultiplier / 100)
|
||||
ctx.lineWidth = 1;
|
||||
ctx.beginPath();
|
||||
let newPoint = 0
|
||||
let newPoint1 = 0
|
||||
let addedRotate = this.flip ? 90 : 0
|
||||
newPoint = rotatePoint(- this.width / 2, 0, this.rotate + addedRotate)
|
||||
ctx.moveTo(relCenterX + newPoint[0], relCenterY + newPoint[1]);
|
||||
newPoint = rotatePoint(0, - rotation / 400 * this.width, this.rotate + addedRotate)
|
||||
newPoint1 = rotatePoint(this.width / 2, 0, this.rotate + addedRotate)
|
||||
ctx.quadraticCurveTo(relCenterX + newPoint[0], relCenterY + newPoint[1], relCenterX + newPoint1[0], relCenterY + newPoint1[1]);
|
||||
|
||||
newPoint = rotatePoint(- this.width / 2, 0, this.rotate + addedRotate)
|
||||
ctx.moveTo(relCenterX + newPoint[0], relCenterY + newPoint[1]);
|
||||
newPoint = rotatePoint(0, + rotation / 400 * this.width, this.rotate + addedRotate)
|
||||
newPoint1 = rotatePoint(this.width / 2, 0, this.rotate + addedRotate)
|
||||
ctx.quadraticCurveTo(relCenterX + newPoint[0], relCenterY + newPoint[1], relCenterX + newPoint1[0], relCenterY + newPoint1[1]);
|
||||
ctx.stroke();
|
||||
}
|
||||
eyelidCut(rotation) {
|
||||
let relCenterX = centerX + this.x;
|
||||
let relCenterY = centerY + this.y;
|
||||
let newPoint = 0
|
||||
let newPoint1 = 0
|
||||
let addedRotate = this.flip ? 90 : 0
|
||||
// ctx.lineWidth = 1;
|
||||
let squarePath = new Path2D();
|
||||
newPoint = rotatePoint(- this.width / 2, 0, this.rotate + addedRotate)
|
||||
squarePath.moveTo(relCenterX + newPoint[0], relCenterY + newPoint[1]);
|
||||
newPoint = rotatePoint(0, - rotation / 400 * this.width, this.rotate + addedRotate)
|
||||
newPoint1 = rotatePoint(this.width / 2, 0, this.rotate + addedRotate)
|
||||
squarePath.quadraticCurveTo(relCenterX + newPoint[0], relCenterY + newPoint[1], relCenterX + newPoint1[0], relCenterY + newPoint1[1]);
|
||||
|
||||
newPoint = rotatePoint(- this.width / 2, 0, this.rotate + addedRotate)
|
||||
squarePath.moveTo(relCenterX + newPoint[0], relCenterY + newPoint[1]);
|
||||
newPoint = rotatePoint(0, + rotation / 400 * this.width, this.rotate + addedRotate)
|
||||
newPoint1 = rotatePoint(this.width / 2, 0, this.rotate + addedRotate)
|
||||
squarePath.quadraticCurveTo(relCenterX + newPoint[0], relCenterY + newPoint[1], relCenterX + newPoint1[0], relCenterY + newPoint1[1]);
|
||||
|
||||
ctx.clip(squarePath);
|
||||
}
|
||||
drawGrowEye(step) {
|
||||
// console.log(step)
|
||||
ctx.strokeStyle = this.colourExpand
|
||||
ctx.beginPath();
|
||||
ctx.lineWidth = 5;
|
||||
ctx.arc(centerX + this.x, centerY + this.y, step, 0, 2 * Math.PI);
|
||||
ctx.stroke();
|
||||
}
|
||||
drawCircle(step) {
|
||||
ctx.strokeStyle = this.colourPupil
|
||||
ctx.beginPath();
|
||||
ctx.lineWidth = 5;
|
||||
ctx.arc(centerX + this.x, centerY + this.y, step, 0, 2 * Math.PI);
|
||||
ctx.stroke();
|
||||
}
|
||||
|
||||
drawSpiral(step) {
|
||||
ctx.strokeStyle = this.colourSpiral;
|
||||
let a = 1
|
||||
let b = 5
|
||||
ctx.moveTo(centerX, centerY);
|
||||
ctx.beginPath();
|
||||
let max = this.spiral_full ? this.width : this.width / 2
|
||||
for (let i = 0; i < max; i++) {
|
||||
let angle = 0.1 * i;
|
||||
let x = centerX + (a + b * angle) * Math.cos(angle + step / 2);
|
||||
let y = centerY + (a + b * angle) * Math.sin(angle + step / 2);
|
||||
|
||||
ctx.lineTo(x + this.x, y + this.y);
|
||||
}
|
||||
ctx.lineWidth = 3;
|
||||
ctx.stroke();
|
||||
}
|
||||
stepFunc() {
|
||||
if (this.cooldown != 0) {
|
||||
this.cooldown--;
|
||||
} else {
|
||||
if (this.opening == true) {
|
||||
if (this.step >= 200) {
|
||||
this.cooldown = 200;
|
||||
this.opening = false;
|
||||
this.step -= this.blink_speed;
|
||||
} else {
|
||||
this.step += this.blink_speed;
|
||||
}
|
||||
} else {
|
||||
if (this.step <= 0) {
|
||||
this.opening = true;
|
||||
this.step += this.blink_speed;
|
||||
} else {
|
||||
this.step -= this.blink_speed;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
draw(rotation) {
|
||||
let speedMult = 50
|
||||
console.log(this.blink_speed)
|
||||
let waitTime = this.blink_speed
|
||||
let cap = 200
|
||||
let d = waitTime * speedMult * 10
|
||||
let a = cap * 2 + d
|
||||
let outputRotation = Math.min(Math.abs((Math.floor(rotation * speedMult) % a) - a / 2 - d / 2), cap)
|
||||
|
||||
ctx.fillStyle = "black";
|
||||
ctx.save();
|
||||
this.drawEyelid(outputRotation);
|
||||
// squareCut();
|
||||
this.eyelidCut(outputRotation);
|
||||
// console.log(Math.floor(this.counter % this.width / 2))
|
||||
if (Math.floor(this.counter % (this.width / 4)) === 0) {
|
||||
this.counter = 0;
|
||||
}
|
||||
ctx.fillStyle = "black";
|
||||
ctx.fillRect(this.x - this.width / 2 + centerX, 0, this.width, ctx.canvas.height);
|
||||
if (this.draw_expand) {
|
||||
this.drawGrowEye(this.width / 4 + this.counter);
|
||||
}
|
||||
|
||||
if (this.draw_hypno) {
|
||||
this.centerPulse.draw(rotation)
|
||||
}
|
||||
if (this.draw_spiral) {
|
||||
this.drawSpiral(rotation)
|
||||
}
|
||||
if (this.draw_pupil) {
|
||||
this.drawCircle(this.width / 4);
|
||||
}
|
||||
|
||||
ctx.restore();
|
||||
|
||||
this.stepFunc();
|
||||
this.counter++;
|
||||
}
|
||||
}
|
||||
class MaryFace extends BaseShape {
|
||||
constructor(x1, y1, rotate1, width1, x2, y2, rotate2, width2) {
|
||||
super();
|
||||
this.x1 = x1;
|
||||
this.y1 = y1;
|
||||
this.rotate1 = rotate1;
|
||||
this.width1 = width1;
|
||||
this.x2 = x2;
|
||||
this.y2 = y2;
|
||||
this.rotate2 = rotate2;
|
||||
this.width2 = width2;
|
||||
this.eye1 = new EyePrototype(x1, y1, rotate1, 0, width1, 10, 1, 1, 0, 0, 0, 1, "#00fffb", "#00fffb", "#00fffb")
|
||||
this.eye2 = new EyePrototype(x2, y2, rotate2, 0, width2, 10, 1, 1, 0, 0, 0, 1, "#00fffb", "#00fffb", "#00fffb")
|
||||
// this.eye3 = new EyePrototype(112, -280, rotate2+2,1, width2, 10, 1, 1, 0, 0, 1, "#00fffb", "#00fffb", "#00fffb")
|
||||
this.eye3 = new EyePrototype(110, -280, rotate2 + 2, 1, width2, 10, 1, 1, 0, 0, 0, 1, "#00fffb", "#00fffb", "#00fffb")//maybe
|
||||
}
|
||||
|
||||
draw(rotation) {
|
||||
let img = new Image();
|
||||
img.src = "maryFace.png";
|
||||
|
||||
ctx.drawImage(img, centerX - img.width / 2, centerY - img.height / 2);
|
||||
this.eye1.draw(rotation);
|
||||
this.eye2.draw(rotation);
|
||||
this.eye3.draw(rotation);
|
||||
}
|
||||
}
|
||||
class NewWave extends BaseShape {
|
||||
constructor(width, sides, step, lineWidth, limiter) {
|
||||
super();
|
||||
this.width = width
|
||||
this.sides = sides;
|
||||
this.step = step;
|
||||
this.lineWidth = lineWidth;
|
||||
this.limiter = limiter;
|
||||
}
|
||||
|
||||
draw(rotation) {
|
||||
rotation *= this.speedMultiplier / 400
|
||||
ctx.lineWidth = this.lineWidth
|
||||
for (let j = 0; j < this.sides; j++) {
|
||||
const radRotation = rad(360 / this.sides * j)
|
||||
const inverter = 1 - (j % 2) * 2
|
||||
let lastX = centerX
|
||||
let lastY = centerY
|
||||
for (let i = 0; i < this.width; i += this.step) {
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(lastX, lastY);
|
||||
ctx.strokeStyle = colourToText(lerpRGB([255, 51, 170], [51, 170, 255], i / this.width))
|
||||
const x = i
|
||||
const y = (Math.sin(-i * inverter / 30 + rotation * inverter) * i / (this.limiter / 100))
|
||||
|
||||
const xRotated = x * Math.cos(radRotation) - y * Math.sin(radRotation)
|
||||
const yRotated = x * Math.sin(radRotation) + y * Math.cos(radRotation)
|
||||
lastX = centerX + xRotated;
|
||||
lastY = centerY + yRotated;
|
||||
ctx.lineTo(centerX + xRotated, centerY + yRotated);
|
||||
ctx.stroke();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,359 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 26.3.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="750px" height="750px"
|
||||
viewBox="0 0 750 750" style="enable-background:new 0 0 750 750;" xml:space="preserve">
|
||||
<style type="text/css">
|
||||
.st0{fill:#FFFFFF;}
|
||||
.st1{fill:#FB8604;}
|
||||
.st2{fill:none;stroke:#FB8604;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
.st3{fill:none;stroke:#FB8604;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st4{fill:none;stroke:#FB8604;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1684,5.2807;}
|
||||
.st5{fill:none;stroke:#FB8604;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0898,5.1496;}
|
||||
.st6{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st7{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0028,7.0049;}
|
||||
.st8{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0187,7.0327;}
|
||||
.st9{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0037,7.0065;}
|
||||
.st10{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9928,6.9873;}
|
||||
.st11{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9957,6.9924;}
|
||||
.st12{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9878,6.9786;}
|
||||
.st13{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0054,7.0094;}
|
||||
.st14{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9755,6.9571;}
|
||||
.st15{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.972,6.9511;}
|
||||
.st16{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0334,7.0584;}
|
||||
.st17{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9725,6.9518;}
|
||||
.st18{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0038,7.0066;}
|
||||
.st19{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9879,6.9789;}
|
||||
.st20{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9711,6.9495;}
|
||||
.st21{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0154,7.027;}
|
||||
.st22{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9691,6.946;}
|
||||
.st23{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0146,7.0255;}
|
||||
.st24{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9984,6.9972;}
|
||||
.st25{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0136,7.0239;}
|
||||
.st26{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0202,7.0354;}
|
||||
.st27{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0512,7.0896;}
|
||||
.st28{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.1218,7.2131;}
|
||||
.st29{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.039,7.0682;}
|
||||
.st30{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0036,7.0063;}
|
||||
.st31{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0478,7.0836;}
|
||||
.st32{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9687,6.9451;}
|
||||
.st33{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0627,7.1098;}
|
||||
.st34{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0819,7.1433;}
|
||||
.st35{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9767,6.9593;}
|
||||
.st36{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9929,6.9875;}
|
||||
.st37{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:4.0173,7.0303;}
|
||||
.st38{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.961,6.9318;}
|
||||
.st39{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.947,6.9073;}
|
||||
.st40{fill:none;stroke:#FB8604;stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.9908,6.9839;}
|
||||
.st41{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9966,4.9944;}
|
||||
.st42{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;}
|
||||
.st43{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9096,4.8493;}
|
||||
.st44{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.3193,5.5322;}
|
||||
.st45{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9558,4.9263;}
|
||||
.st46{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.2618,5.4363;}
|
||||
.st47{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0169,5.0281;}
|
||||
.st48{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.5291,4.2151;}
|
||||
.st49{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.103,5.1717;}
|
||||
.st50{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9575,4.9292;}
|
||||
.st51{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.3365,5.5609;}
|
||||
.st52{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1424,5.2373;}
|
||||
.st53{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1363,5.2272;}
|
||||
.st54{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.7994,4.6656;}
|
||||
.st55{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8999,4.8332;}
|
||||
.st56{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0099,5.0165;}
|
||||
.st57{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.844,3.0734;}
|
||||
.st58{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9022,4.8371;}
|
||||
.st59{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.0395,3.3991;}
|
||||
.st60{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1923,5.3205;}
|
||||
.st61{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9539,4.9232;}
|
||||
.st62{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0075,5.0125;}
|
||||
.st63{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.3534,5.5889;}
|
||||
.st64{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9667,4.9445;}
|
||||
.st65{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1331,5.2219;}
|
||||
.st66{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0872,5.1454;}
|
||||
.st67{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8949,4.8248;}
|
||||
.st68{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9725,4.9542;}
|
||||
.st69{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0386,5.0643;}
|
||||
.st70{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0094,5.0156;}
|
||||
.st71{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0371,5.0618;}
|
||||
.st72{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1062,5.177;}
|
||||
.st73{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0125,5.0208;}
|
||||
.st74{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9084,4.8473;}
|
||||
.st75{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0296,5.0494;}
|
||||
.st76{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9662,4.9437;}
|
||||
.st77{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.2029,5.3381;}
|
||||
.st78{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9909,4.9849;}
|
||||
.st79{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.4809,5.8015;}
|
||||
.st80{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.4766,5.7943;}
|
||||
.st81{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1471,5.2451;}
|
||||
.st82{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9268,4.878;}
|
||||
.st83{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9785,4.9641;}
|
||||
.st84{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0427,5.0712;}
|
||||
.st85{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0948,5.1579;}
|
||||
.st86{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0479,5.0798;}
|
||||
.st87{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1288,5.2146;}
|
||||
.st88{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0295,5.0492;}
|
||||
.st89{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0562,5.0937;}
|
||||
.st90{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0096,5.0161;}
|
||||
.st91{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0214,5.0356;}
|
||||
.st92{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9114,4.8524;}
|
||||
.st93{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0352,5.0587;}
|
||||
.st94{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.7643,4.6072;}
|
||||
.st95{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.058,5.0966;}
|
||||
.st96{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.7966,4.661;}
|
||||
.st97{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.7367,2.8946;}
|
||||
.st98{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.7663,4.6105;}
|
||||
.st99{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.9235,3.2058;}
|
||||
.st100{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0393,5.0655;}
|
||||
.st101{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8203,4.7005;}
|
||||
.st102{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9792,4.9653;}
|
||||
.st103{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1822,5.3036;}
|
||||
.st104{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0113,5.0189;}
|
||||
.st105{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1551,5.2585;}
|
||||
.st106{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.018,5.0301;}
|
||||
.st107{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.4824,5.8041;}
|
||||
.st108{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.3801,3.9668;}
|
||||
.st109{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0129,5.0216;}
|
||||
.st110{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.625,2.7083;}
|
||||
.st111{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.9221,3.2035;}
|
||||
.st112{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1124,5.1874;}
|
||||
.st113{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0952,5.1586;}
|
||||
.st114{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9708,4.9513;}
|
||||
.st115{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.5755,4.2925;}
|
||||
.st116{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0041,5.0068;}
|
||||
.st117{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9986,4.9977;}
|
||||
.st118{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1488,5.2479;}
|
||||
.st119{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1057,5.1761;}
|
||||
.st120{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9579,4.9299;}
|
||||
.st121{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8749,4.7914;}
|
||||
.st122{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0643,5.1071;}
|
||||
.st123{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1274,5.2123;}
|
||||
.st124{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1,5.1667;}
|
||||
.st125{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8472,4.7454;}
|
||||
.st126{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1118,5.1863;}
|
||||
.st127{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0106,5.0177;}
|
||||
.st128{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.7458,4.5763;}
|
||||
.st129{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9343,4.8906;}
|
||||
.st130{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.4131,5.6885;}
|
||||
.st131{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.2838,5.473;}
|
||||
.st132{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9369,4.8948;}
|
||||
.st133{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.4913,4.1522;}
|
||||
.st134{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0222,5.037;}
|
||||
.st135{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1123,5.1871;}
|
||||
.st136{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0602,5.1004;}
|
||||
.st137{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1376,5.2294;}
|
||||
.st138{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8568,4.7613;}
|
||||
.st139{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.3279,3.8798;}
|
||||
.st140{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1.5312,2.552;}
|
||||
.st141{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9978,4.9963;}
|
||||
.st142{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.3089,5.5148;}
|
||||
.st143{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8474,4.7456;}
|
||||
.st144{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.2084,5.3473;}
|
||||
.st145{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8968,4.828;}
|
||||
.st146{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1168,5.1947;}
|
||||
.st147{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.981,4.9683;}
|
||||
.st148{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9834,4.9723;}
|
||||
.st149{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0096,5.016;}
|
||||
.st150{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0425,5.0708;}
|
||||
.st151{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.5109,4.1848;}
|
||||
.st152{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9658,4.943;}
|
||||
.st153{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8709,4.7848;}
|
||||
.st154{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1073,5.1789;}
|
||||
.st155{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.3657,5.6095;}
|
||||
.st156{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.008,5.0134;}
|
||||
.st157{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9888,4.9813;}
|
||||
.st158{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8942,4.8236;}
|
||||
.st159{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.2728,5.4547;}
|
||||
.st160{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.717,4.5283;}
|
||||
.st161{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.053,5.0883;}
|
||||
.st162{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.084,5.14;}
|
||||
.st163{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0483,5.0805;}
|
||||
.st164{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9472,4.9121;}
|
||||
.st165{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0489,5.0815;}
|
||||
.st166{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.2105,5.3508;}
|
||||
.st167{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1121,5.1868;}
|
||||
.st168{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9144,4.8574;}
|
||||
.st169{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.2099,5.3498;}
|
||||
.st170{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0035,5.0059;}
|
||||
.st171{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0979,5.1632;}
|
||||
.st172{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0377,5.0628;}
|
||||
.st173{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.895,4.825;}
|
||||
.st174{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8221,4.7035;}
|
||||
.st175{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0558,5.0931;}
|
||||
.st176{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.28,5.4666;}
|
||||
.st177{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0048,5.0079;}
|
||||
.st178{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8024,4.6707;}
|
||||
.st179{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9867,4.9779;}
|
||||
.st180{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1426,5.2376;}
|
||||
.st181{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.7353,4.5588;}
|
||||
.st182{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.6394,4.399;}
|
||||
.st183{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0205,5.0341;}
|
||||
.st184{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.8833,4.8055;}
|
||||
.st185{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.3253,5.5422;}
|
||||
.st186{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.2789,5.4648;}
|
||||
.st187{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.2975,3.8292;}
|
||||
.st188{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.7364,4.5607;}
|
||||
.st189{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9916,4.986;}
|
||||
.st190{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.003,5.005;}
|
||||
.st191{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9847,4.9746;}
|
||||
.st192{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.1766,5.2943;}
|
||||
.st193{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.7665,4.6108;}
|
||||
.st194{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.6685,4.4475;}
|
||||
.st195{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0516,5.0859;}
|
||||
.st196{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.9141,4.8569;}
|
||||
.st197{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.3649,5.6082;}
|
||||
.st198{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.3143,5.5238;}
|
||||
.st199{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.327,3.8783;}
|
||||
.st200{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:2.7654,4.6089;}
|
||||
.st201{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0036,5.006;}
|
||||
.st202{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:3.0013,5.0021;}
|
||||
.st203{fill:none;stroke:#FB8604;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
.st204{fill:none;stroke:#FB8604;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}
|
||||
</style>
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds bottomLeftOrigin="true" height="13470.3" width="4626" x="-2000" y="-4314"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g id="FILL-BACKGROUND">
|
||||
<rect class="st0" width="750" height="750"/>
|
||||
</g>
|
||||
<g id="N-DIMENSIONS">
|
||||
</g>
|
||||
<g id="N-TEXT">
|
||||
</g>
|
||||
<g id="_x32_D_x24_AG-DIAGRAM">
|
||||
<g id="POLYLINE_00000019637509149587408630000017135930699805897140_">
|
||||
<g>
|
||||
<g>
|
||||
<line class="st6" x1="64.63" y1="542.91" x2="66.63" y2="542.91"/>
|
||||
<line class="st17" x1="73.58" y1="542.91" x2="583.55" y2="542.91"/>
|
||||
<line class="st6" x1="587.02" y1="542.91" x2="589.02" y2="542.91"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g id="_x32_D_x24_AG-DETAILS-DIAGRAM">
|
||||
</g>
|
||||
<g id="_x32_D_x24_AG-DETAILS">
|
||||
</g>
|
||||
<g id="_x32_D_x24_AG-ANIMALS">
|
||||
<g id="POLYLINE_00000057124465893097847600000004400792138133572256_">
|
||||
<path class="st203" d="M175.95,509.79c-6.98,1.19-14.84,2.26-21.88,2.95c-7.13,0.66-23.77,1.85-30.89,3.17
|
||||
c-4.79,0.8-9.62,1.9-14.28,3.27c-4.03,1.18-8.09,2.6-11.92,4.33c-2.54,1.16-5.13,2.49-7.43,4.09c-2.78,1.92-5.31,4.28-7.19,7.1
|
||||
c-1.04,1.57-1.92,3.29-2.34,5.14c0,0-0.03,0.14-0.03,0.14l-0.03,0.13c0,0-0.01,0.07-0.01,0.07s-0.01,0.06-0.01,0.06
|
||||
s-0.01,0.06-0.01,0.06c-0.03,0.26-0.07,0.52-0.06,0.78c0,0,0,0.05,0,0.05s0,0.05,0,0.05s0,0.05,0,0.05s0,0.05,0,0.05
|
||||
s0,0.05,0,0.05s0,0.02,0,0.02s0,0.02,0,0.02s0,0.02,0,0.02c0.02,0.13,0.04,0.26,0.08,0.38c0.09,0.3,0.29,0.56,0.55,0.73
|
||||
c0.38,0.24,0.83,0.32,1.27,0.37c0.3,0.33,438.56-0.14,439.22,0.04c0,0,3.05-0.03,3.05-0.03s2.83-0.05,2.83-0.05l2.61-0.09
|
||||
c3.51-0.16,7.14-0.43,10.56-1.31c1.4-0.34,2.8-0.81,4.16-1.28c0,0,9.84-3.51,9.84-3.51s0.98-0.37,0.98-0.37s1.01-0.39,1.01-0.39
|
||||
s1.04-0.42,1.04-0.42s1.07-0.45,1.07-0.45c0.9-0.39,1.91-0.85,2.79-1.28c5.13-2.5,9.96-5.69,14.34-9.36
|
||||
c7.45-6.22,13.56-13.99,18.32-22.43c3.91-6.93,7.09-14.35,9.28-22.01c3.33-11.18,3.67-24.31,5.98-35.7
|
||||
c1.52-7.68,4.62-15.02,8.69-21.69c3.8-6.26,8.43-12.06,13.66-17.19c0,0,1.02-0.99,1.02-0.99s4.57-4.29,4.57-4.29
|
||||
s0.79-0.76,0.79-0.76s0.38-0.37,0.38-0.37s0.37-0.37,0.37-0.37l0.36-0.37c0,0,0.34-0.36,0.34-0.36c1.12-1.2,2.17-2.53,2.92-3.99
|
||||
c1.04-2,1.59-4.26,1.54-6.52c-0.03-1.86-0.48-3.69-1.16-5.41l-1.01-2.53c-0.57-1.51-1.12-3.22-0.55-4.81
|
||||
c0.32-0.89,0.94-1.63,1.64-2.26c1.12-0.99,2.45-1.72,3.81-2.31c6.46-2.75,13.7-2.47,20.56-1.88c2.86,0.25,7.39,0.89,10.25,1.11
|
||||
c0.62,0.04,1.27,0.07,1.89,0.05c0.72-0.03,1.47-0.12,2.12-0.46c0.58-0.3,1.02-0.83,1.25-1.45c0.3-0.8,0.29-1.68,0.15-2.52
|
||||
c-0.18-1.02-0.61-2.05-1.41-2.74c-0.4-0.35-0.9-0.6-1.42-0.71c-0.55-0.12-1.13-0.13-1.7-0.12c-1.07,0.03-3.08,0.14-4.14,0.14
|
||||
c-1.46,0.02-3.22-0.07-4.69-0.17c0,0-10.33-0.76-10.33-0.76c-1.4-0.11-12.11-0.53-13.77-0.6c-3.91-0.23-7.88-0.68-11.58-1.99
|
||||
c-1.97-0.68-3.89-1.58-5.72-2.58c-3.08-1.64-11.58-7.14-14.66-9.04l-2.39-1.44l-3.66-2.11c0,0-0.38-0.22-0.38-0.22
|
||||
s-0.37-0.23-0.37-0.23c-0.09-0.07-0.28-0.17-0.37-0.23c-0.48-0.32-0.96-0.66-1.4-1.04c-2.03-1.73-3.4-4.08-4.43-6.51
|
||||
c-1.29-2.89-1.76-6.11-2.13-9.24c-0.44-3.81-0.81-9.21-1.06-13.08c-1-16.74-2.21-45.09-2.62-61.85
|
||||
c-0.23-10.61-0.21-21.92,0.64-32.5c0.47-5.53,0.96-14.11,1.88-19.5c0.33-1.83,0.71-3.71,1.59-5.37c0.65-1.26,1.75-2.3,2.5-3.49
|
||||
c0.35-0.57,0.55-1.2,0.43-1.88c-0.15-0.89-0.73-1.65-1.46-2.16c-0.6-0.42-1.3-0.68-2.02-0.84c-1.53-0.33-3.14-0.26-4.67,0.06
|
||||
c-1,0.22-2.03,0.55-2.83,1.22c-0.53,0.44-0.9,1.06-1.08,1.73c-0.17,0.63-0.2,1.29-0.18,1.94c0.11,2.44,0.47,5,0.33,7.46
|
||||
c-0.04,1.01-0.13,2.24-0.22,3.25c0,0-0.21,2.32-0.21,2.32s-7.26,68.08-7.26,68.08c-0.67,6.9-3.86,46.65-4.81,52.59
|
||||
c-0.45,3.25-1.13,6.57-2.02,9.72c-0.69,2.36-2.28,7.94-3.02,10.2c-1.03,0.52-2.44,1.16-3.42,1.74c-1.58,0.97-3.14,2.04-4.59,3.19
|
||||
c-1.95,1.54-3.79,3.26-5.42,5.14c-1.39,1.6-2.62,3.39-3.74,5.18l-8.61,14.2c-7.17,11.38-14.95,23.45-23.19,34.07
|
||||
c-3.56,4.5-7.31,9.03-11.71,12.73c-1.93,1.6-4.05,3.05-6.38,3.99c-1.25,0.5-2.57,0.87-3.92,0.94c-1.71,0.11-3.43-0.29-4.98-1"/>
|
||||
</g>
|
||||
<g id="POLYLINE_00000000936520979570235080000002186263548217956789_">
|
||||
<path class="st203" d="M286.34,500.59c3.59-1.43,7.67-3.52,11.3-4.85c4.16-1.52,11.23-3.24,15.55-4.45
|
||||
c11.86-3.4,23.54-7.9,34.71-13.1c3.04-1.44,6.21-3.06,9.1-4.74c2.68-1.51,8.16-5.1,10.84-6.85c2.32-1.48,4.72-2.95,7.21-4.13
|
||||
c2.35-1.12,4.85-2.04,7.34-2.8c3.1-0.96,6.45-1.76,9.62-2.44c11.64-2.5,34.71-6.3,46.71-8.33c3.58-0.64,7.75-1.42,11.28-2.24
|
||||
c4.71-1.08,9.48-2.55,14.02-4.18c4.31-1.61,15.7-5.44,19.72-7.33c3.37-1.58,6.71-3.45,9.37-6.09c0.98-0.99,1.84-2.13,2.31-3.45
|
||||
c0.32-0.87,0.46-1.81,0.38-2.74c-0.08-0.91-0.36-1.8-0.83-2.58c-0.88-1.49-2.37-2.47-3.81-3.35c-3.46-2-6.9-4.07-9.82-6.77
|
||||
c-1.4-1.27-2.69-2.68-3.8-4.21c-0.86-1.19-1.63-2.5-2.28-3.82c-2.34-4.77-3.98-10.2-6.41-14.93c-3.32-6.71-7.72-12.99-12.29-18.91
|
||||
c-8.12-10.26-16.82-20.44-26.36-29.41c-10.15-9.52-21.61-17.88-33.22-25.52c-8.81-5.76-18.16-11.38-27.51-16.21
|
||||
c-8-4.1-16.38-7.75-25.04-10.2c-9.2-2.65-18.86-3.99-28.39-4.75c-12.59-0.95-25.46-0.97-38.05-0.07
|
||||
c-8.33,0.61-16.85,1.77-24.99,3.63c-8.97,2.05-17.95,4.99-26.49,8.42c-11.43,4.64-22.66,10.26-32.72,17.41
|
||||
c-8.19,5.79-15.67,12.74-22.37,20.2c-7.63,8.51-14.44,17.93-20.04,27.9c-6.47,11.5-11.46,23.99-14.17,36.92
|
||||
c-5.04,23.84-2.95,49.25,6.23,71.85c3.31,8.08,7.57,15.89,12.8,22.9c3.03,4.05,6.38,7.93,10.16,11.3
|
||||
c6.74,6.06,14.8,10.55,23.25,13.76c6.07,2.27,12.37,4.21,18.81,5.04c4.91,0.64,9.94,0.71,14.88,0.51c6.25-0.26,12.78-0.98,18.95-2
|
||||
c11.33-1.92,22.74-4.93,32.67-10.88c6.87-4.07,12.91-9.48,18.25-15.38c4.44-4.9,8.57-10.2,12.25-15.7
|
||||
c5.53-8.27,10.18-17.22,13.79-26.49c4.35-11.23,7.33-23.07,9.1-34.98c1.5-10.37,2.13-21.01,1.17-31.45
|
||||
c-0.82-8.83-2.83-17.62-5.9-25.93c-1.96-5.3-4.38-10.53-7.13-15.47c-2.46-4.4-5.24-8.73-8.53-12.56
|
||||
c-2.38-2.78-5.07-5.33-7.98-7.55c-4.66-3.55-9.91-6.35-15.31-8.6c-8.93-3.67-18.52-5.89-28.18-6.27
|
||||
c-9.78-0.35-19.62,1.25-28.97,4.09c-15.4,4.72-30.1,12.79-41.01,24.8c-3.27,3.61-6.18,7.62-8.56,11.87
|
||||
c-2.82,5.02-4.98,10.45-6.53,15.99c-2.28,8.25-3.31,16.96-2.33,25.49c0.55,4.75,1.71,9.49,3.65,13.87c1.5,3.38,3.5,6.57,6.1,9.21
|
||||
c2.38,2.43,5.25,4.36,8.36,5.71c4.79,2.08,10.07,2.88,15.27,2.85c4.91-0.04,9.85-0.83,14.57-2.17
|
||||
c6.94-1.98,13.53-5.34,19.04-10.04c3.8-3.22,7.05-7.08,9.83-11.21c3.3-4.93,6.02-10.32,8.05-15.89
|
||||
c4.42-12.06,5.49-26.15-0.53-37.86c-1.85-3.57-4.39-6.81-7.55-9.3c-2.62-2.08-5.69-3.61-8.92-4.46
|
||||
c-4.41-1.18-9.07-1.25-13.58-0.71c-4.75,0.59-9.46,1.83-13.89,3.64c-5.75,2.37-11.21,5.83-15.11,10.74
|
||||
c-4.36,5.44-6.62,12.44-6.71,19.38c-0.01,2.8,0.34,5.65,1.42,8.25c1.01,2.49,2.79,4.68,5.11,6.06c1.92,1.16,4.14,1.78,6.37,2
|
||||
c2.87,0.29,5.79-0.06,8.54-0.89c4.86-1.46,9.13-4.55,12.46-8.34c1.75-2.01,3.26-4.26,4.34-6.7c0.98-2.22,1.59-4.61,1.78-7.02
|
||||
c0.26-3.43-0.23-7.07-2.09-10.02c-1.01-1.59-2.46-2.88-4.15-3.71c-1.46-0.72-3.08-1.12-4.7-1.28c-1.75-0.18-3.54-0.1-5.27,0.23
|
||||
c-2.11,0.4-4.17,1.18-5.93,2.42c-1.77,1.26-3.2,2.95-4.28,4.82c-0.84,1.47-1.5,3.06-1.84,4.72c-0.27,1.35-0.31,2.81,0.22,4.11
|
||||
c0.83,2.08,3.06,3.35,5.25,3.31c1.76-0.01,3.41-0.87,4.71-2.01c1.37-1.21,2.44-2.84,2.76-4.66c0.22-1.28,0.09-2.74-0.82-3.73
|
||||
c-0.78-0.85-1.97-1.17-3.09-1.28"/>
|
||||
</g>
|
||||
<g id="POLYLINE_00000115514922511656778460000013334750149281772423_">
|
||||
<path class="st203" d="M575.37,330.46c-1.99-3.36-3.79-7.59-5.3-11.22c-5.9-14.35-13.05-32.31-18.14-46.9
|
||||
c-3.47-9.9-7.06-21.35-9.99-31.45c-1.27-4.59-3.15-10.91-4.05-15.54c-0.14-0.79-0.27-1.61-0.3-2.42
|
||||
c-0.03-0.78,0.09-1.56,0.27-2.31c0.38-1.65,1.26-3.33,1.38-5.03c0.04-0.58-0.04-1.18-0.3-1.69c-0.64-1.21-2.01-1.82-3.32-1.99
|
||||
c-1.19-0.15-2.41-0.01-3.56,0.32c-1.45,0.41-2.82,1.16-3.87,2.25c-0.74,0.76-1.29,1.74-1.22,2.83c0.03,0.67,0.26,1.32,0.54,1.92
|
||||
c0.49,1.02,1.36,2.37,1.86,3.38c0.42,0.83,0.77,1.72,1.03,2.61c5.66,23.15,22.56,90.21,26.9,112.73c0.89,4.88,1.56,9.9,1.43,14.87
|
||||
"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="_x32_D_x24_AG-OUTLINE">
|
||||
<g id="POLYLINE_00000154409289530670023290000013535996489216676241_">
|
||||
<path class="st204" d="M175.95,509.79c-6.98,1.19-14.84,2.26-21.88,2.95c-7.13,0.66-23.77,1.85-30.89,3.17
|
||||
c-4.79,0.8-9.62,1.9-14.28,3.27c-4.03,1.18-8.09,2.6-11.92,4.33c-2.54,1.16-5.13,2.49-7.43,4.09c-2.78,1.92-5.31,4.28-7.19,7.1
|
||||
c-1.04,1.57-1.92,3.29-2.34,5.14c0,0-0.03,0.14-0.03,0.14l-0.03,0.13c0,0-0.01,0.07-0.01,0.07s-0.01,0.06-0.01,0.06
|
||||
s-0.01,0.06-0.01,0.06c-0.03,0.26-0.07,0.52-0.06,0.78c0,0,0,0.05,0,0.05s0,0.05,0,0.05s0,0.05,0,0.05s0,0.05,0,0.05
|
||||
s0,0.05,0,0.05s0,0.02,0,0.02s0,0.02,0,0.02s0,0.02,0,0.02c0.02,0.13,0.04,0.26,0.08,0.38c0.09,0.3,0.29,0.56,0.55,0.73
|
||||
c0.38,0.24,0.83,0.32,1.27,0.37c0.3,0.33,438.56-0.14,439.22,0.04c0,0,3.05-0.03,3.05-0.03s2.83-0.05,2.83-0.05l2.61-0.09
|
||||
c3.51-0.16,7.14-0.43,10.56-1.31c1.4-0.34,2.8-0.81,4.16-1.28c0,0,9.84-3.51,9.84-3.51s0.98-0.37,0.98-0.37s1.01-0.39,1.01-0.39
|
||||
s1.04-0.42,1.04-0.42s1.07-0.45,1.07-0.45c0.9-0.39,1.91-0.85,2.79-1.28c5.13-2.5,9.96-5.69,14.34-9.36
|
||||
c7.45-6.22,13.56-13.99,18.32-22.43c3.91-6.93,7.09-14.35,9.28-22.01c3.33-11.18,3.67-24.31,5.98-35.7
|
||||
c1.52-7.68,4.62-15.02,8.69-21.69c3.8-6.26,8.43-12.06,13.66-17.19c0,0,1.02-0.99,1.02-0.99s4.57-4.29,4.57-4.29
|
||||
s0.79-0.76,0.79-0.76s0.38-0.37,0.38-0.37s0.37-0.37,0.37-0.37l0.36-0.37c0,0,0.34-0.36,0.34-0.36c1.12-1.2,2.17-2.53,2.92-3.99
|
||||
c1.04-2,1.59-4.26,1.54-6.52c-0.03-1.86-0.48-3.69-1.16-5.41l-1.01-2.53c-0.57-1.51-1.12-3.22-0.55-4.81
|
||||
c0.32-0.89,0.94-1.63,1.64-2.26c1.12-0.99,2.45-1.72,3.81-2.31c6.46-2.75,13.7-2.47,20.56-1.88c2.86,0.25,7.39,0.89,10.25,1.11
|
||||
c0.62,0.04,1.27,0.07,1.89,0.05c0.72-0.03,1.47-0.12,2.12-0.46c0.58-0.3,1.02-0.83,1.25-1.45c0.3-0.8,0.29-1.68,0.15-2.52
|
||||
c-0.18-1.02-0.61-2.05-1.41-2.74c-0.4-0.35-0.9-0.6-1.42-0.71c-0.55-0.12-1.13-0.13-1.7-0.12c-1.07,0.03-3.08,0.14-4.14,0.14
|
||||
c-1.46,0.02-3.22-0.07-4.69-0.17c0,0-10.33-0.76-10.33-0.76c-1.4-0.11-12.11-0.53-13.77-0.6c-3.91-0.23-7.88-0.68-11.58-1.99
|
||||
c-1.97-0.68-3.89-1.58-5.72-2.58c-3.08-1.64-11.58-7.14-14.66-9.04l-2.39-1.44l-3.66-2.11c0,0-0.38-0.22-0.38-0.22
|
||||
s-0.37-0.23-0.37-0.23c-0.09-0.07-0.28-0.17-0.37-0.23c-0.48-0.32-0.96-0.66-1.4-1.04c-2.03-1.73-3.4-4.08-4.43-6.51
|
||||
c-1.29-2.89-1.76-6.11-2.13-9.24c-0.44-3.81-0.81-9.21-1.06-13.08c-1-16.74-2.21-45.09-2.62-61.85
|
||||
c-0.23-10.61-0.21-21.92,0.64-32.5c0.47-5.53,0.96-14.11,1.88-19.5c0.33-1.83,0.71-3.71,1.59-5.37c0.65-1.26,1.75-2.3,2.5-3.49
|
||||
c0.35-0.57,0.55-1.2,0.43-1.88c-0.15-0.89-0.73-1.65-1.46-2.16c-0.6-0.42-1.3-0.68-2.02-0.84c-1.53-0.33-3.14-0.26-4.67,0.06
|
||||
c-1,0.22-2.03,0.55-2.83,1.22c-0.53,0.44-0.9,1.06-1.08,1.73c-0.17,0.63-0.2,1.29-0.18,1.94c0.11,2.44,0.47,5,0.33,7.46
|
||||
c-0.04,1.01-0.13,2.24-0.22,3.25c0,0-0.21,2.32-0.21,2.32s-7.26,68.08-7.26,68.08c-0.71,7.27-3.84,46.7-4.87,53.03
|
||||
c-0.33,2.26-0.77,4.56-1.34,6.77c-2.06-3.34-3.81-7.59-5.34-11.23c-5.9-14.35-13.05-32.31-18.14-46.9
|
||||
c-4.9-14.18-9.7-29.49-13.4-44.04c-0.41-1.84-0.92-3.75-0.94-5.64c0-0.82,0.16-1.64,0.37-2.43c0.36-1.32,1.01-2.77,1.22-4.12
|
||||
c0.09-0.58,0.1-1.2-0.07-1.77c-0.18-0.61-0.59-1.13-1.09-1.51c-0.96-0.73-2.2-1-3.39-0.99c-1.52,0.01-3.05,0.4-4.39,1.11
|
||||
c-0.91,0.49-1.76,1.12-2.41,1.93c-0.32,0.4-0.59,0.86-0.74,1.36c-0.14,0.47-0.16,0.97-0.09,1.45c0.13,0.86,0.53,1.65,0.95,2.4
|
||||
c0.84,1.44,1.8,3.05,2.28,4.64c0.32,0.99,0.71,2.52,0.98,3.54c0,0,19.65,80.58,19.65,80.58c2.4,10.49,5.72,23.63,7.26,34.25
|
||||
c0.44,3.2,0.67,6.49,0.6,9.72c-1.54,1.71-2.89,3.65-4.11,5.6l-8.61,14.2c-7.17,11.38-14.95,23.45-23.19,34.07
|
||||
c-3.56,4.5-7.31,9.03-11.71,12.73c-1.93,1.6-4.05,3.05-6.38,3.99c-1.25,0.5-2.57,0.87-3.92,0.94c-1.71,0.11-3.43-0.29-4.98-1
|
||||
c0-1.32-0.46-2.64-1.27-3.68c-0.9-1.16-2.16-1.98-3.39-2.74c-2.81-1.63-5.67-3.32-8.16-5.35c-2.95-2.37-5.55-5.24-7.3-8.61
|
||||
c-1.58-2.96-3.02-6.87-4.27-10.02c-1.04-2.59-2.26-5.23-3.57-7.69c-4.71-8.83-11.05-16.88-17.42-24.55
|
||||
c-7.48-8.92-15.46-17.79-24.24-25.46c-9.99-8.81-21.12-16.68-32.31-23.88c-13.65-8.62-27.87-16.98-43.14-22.39
|
||||
c-16.82-5.94-34.94-7.28-52.66-7.48c-14.26-0.04-28.75,0.82-42.73,3.76c-9.81,2.07-19.57,5.21-28.87,8.94
|
||||
c-8.19,3.31-16.39,7.22-23.99,11.73c-15.4,9.05-28.54,21.67-39.34,35.83c-14.36,18.85-24.76,41.16-27.67,64.8
|
||||
c-3.43,27.23,2.05,55.91,16.83,79.19c3.5,5.44,7.51,10.63,12.15,15.16C167.92,504.27,171.83,507.26,175.95,509.79z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After (image error) Size: 38 KiB |
After ![]() (image error) Size: 456 KiB |
After ![]() (image error) Size: 441 KiB |
After ![]() (image error) Size: 461 KiB |
After ![]() (image error) Size: 1.1 KiB |
After ![]() (image error) Size: 715 B |
After ![]() (image error) Size: 727 B |
After ![]() (image error) Size: 715 B |
After ![]() (image error) Size: 1.3 KiB |
After ![]() (image error) Size: 4.4 KiB |
After ![]() (image error) Size: 4.1 KiB |
After ![]() (image error) Size: 4.1 KiB |
After ![]() (image error) Size: 4.2 KiB |
After ![]() (image error) Size: 808 B |
After ![]() (image error) Size: 585 B |
After ![]() (image error) Size: 1.1 MiB |
After ![]() (image error) Size: 1.3 MiB |
|
@ -635,7 +635,7 @@ class MaryFace extends BaseShape {
|
|||
}
|
||||
}
|
||||
class NewWave extends BaseShape {
|
||||
constructor(width,sides,step,lineWidth,limiter) {
|
||||
constructor(width, sides, step, lineWidth, limiter) {
|
||||
super();
|
||||
this.width = width
|
||||
this.sides = sides;
|
||||
|
@ -645,25 +645,25 @@ class NewWave extends BaseShape {
|
|||
}
|
||||
|
||||
draw(rotation) {
|
||||
rotation *= this.speedMultiplier/400
|
||||
rotation *= this.speedMultiplier / 400
|
||||
ctx.lineWidth = this.lineWidth
|
||||
for (let j = 0; j < this.sides; j++) {
|
||||
const radRotation = rad(360/this.sides*j)
|
||||
const inverter = 1-(j%2)*2
|
||||
const radRotation = rad(360 / this.sides * j)
|
||||
const inverter = 1 - (j % 2) * 2
|
||||
let lastX = centerX
|
||||
let lastY = centerY
|
||||
for (let i = 0; i < this.width; i += this.step) {
|
||||
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(lastX, lastY);
|
||||
ctx.strokeStyle = colourToText(lerpRGB([255,51,170],[51,170,255],i/this.width))
|
||||
ctx.strokeStyle = colourToText(lerpRGB([255, 51, 170], [51, 170, 255], i / this.width))
|
||||
const x = i
|
||||
const y = (Math.sin(-i*inverter / 30 + rotation*inverter) * i/(this.limiter/100))
|
||||
const y = (Math.sin(-i * inverter / 30 + rotation * inverter) * i / (this.limiter / 100))
|
||||
|
||||
const xRotated = x * Math.cos(radRotation) - y * Math.sin(radRotation)
|
||||
const yRotated = x * Math.sin(radRotation) + y * Math.cos(radRotation)
|
||||
lastX= centerX + xRotated;
|
||||
lastY= centerY + yRotated;
|
||||
lastX = centerX + xRotated;
|
||||
lastY = centerY + yRotated;
|
||||
ctx.lineTo(centerX + xRotated, centerY + yRotated);
|
||||
ctx.stroke();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Phyllotaxis Animation with Three.js and ShaderMaterial</title>
|
||||
<style>body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
canvas {
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script> -->
|
||||
<script src="/index.975ef6c8.js" defer=""></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Phyllotaxis Animation with Three.js and ShaderMaterial</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
canvas {
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script> -->
|
||||
<script src="./src/index.js" type="module"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../browserslist/cli.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../browserslist/cli.js" "$@"
|
||||
fi
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserslist\cli.js" %*
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../browserslist/cli.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../browserslist/cli.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../browserslist/cli.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../detect-libc/bin/detect-libc.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../detect-libc/bin/detect-libc.js" "$@"
|
||||
fi
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\detect-libc\bin\detect-libc.js" %*
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../detect-libc/bin/detect-libc.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../detect-libc/bin/detect-libc.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../detect-libc/bin/detect-libc.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../detect-libc/bin/detect-libc.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../lmdb/bin/download-prebuilds.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../lmdb/bin/download-prebuilds.js" "$@"
|
||||
fi
|
17
webGl/my-threejs-test/node_modules/.bin/download-lmdb-prebuilds.cmd
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\lmdb\bin\download-prebuilds.js" %*
|
28
webGl/my-threejs-test/node_modules/.bin/download-lmdb-prebuilds.ps1
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../lmdb/bin/download-prebuilds.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../lmdb/bin/download-prebuilds.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../lmdb/bin/download-prebuilds.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../lmdb/bin/download-prebuilds.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
16
webGl/my-threejs-test/node_modules/.bin/download-msgpackr-prebuilds
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../msgpackr-extract/bin/download-prebuilds.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../msgpackr-extract/bin/download-prebuilds.js" "$@"
|
||||
fi
|
17
webGl/my-threejs-test/node_modules/.bin/download-msgpackr-prebuilds.cmd
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\msgpackr-extract\bin\download-prebuilds.js" %*
|
28
webGl/my-threejs-test/node_modules/.bin/download-msgpackr-prebuilds.ps1
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../msgpackr-extract/bin/download-prebuilds.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../msgpackr-extract/bin/download-prebuilds.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../msgpackr-extract/bin/download-prebuilds.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../msgpackr-extract/bin/download-prebuilds.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../@choojs/findup/bin/findup.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../@choojs/findup/bin/findup.js" "$@"
|
||||
fi
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@choojs\findup\bin\findup.js" %*
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../@choojs/findup/bin/findup.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../@choojs/findup/bin/findup.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../@choojs/findup/bin/findup.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../@choojs/findup/bin/findup.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../js-yaml/bin/js-yaml.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../js-yaml/bin/js-yaml.js" "$@"
|
||||
fi
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\js-yaml\bin\js-yaml.js" %*
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../js-yaml/bin/js-yaml.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../json5/lib/cli.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../json5/lib/cli.js" "$@"
|
||||
fi
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\json5\lib\cli.js" %*
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../json5/lib/cli.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../json5/lib/cli.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../json5/lib/cli.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
16
webGl/my-threejs-test/node_modules/.bin/node-gyp-build-optional-packages
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../node-gyp-build-optional-packages/bin.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../node-gyp-build-optional-packages/bin.js" "$@"
|
||||
fi
|
16
webGl/my-threejs-test/node_modules/.bin/node-gyp-build-optional-packages-optional
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../node-gyp-build-optional-packages/optional.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../node-gyp-build-optional-packages/optional.js" "$@"
|
||||
fi
|
17
webGl/my-threejs-test/node_modules/.bin/node-gyp-build-optional-packages-optional.cmd
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\node-gyp-build-optional-packages\optional.js" %*
|
28
webGl/my-threejs-test/node_modules/.bin/node-gyp-build-optional-packages-optional.ps1
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../node-gyp-build-optional-packages/optional.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../node-gyp-build-optional-packages/optional.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../node-gyp-build-optional-packages/optional.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../node-gyp-build-optional-packages/optional.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
16
webGl/my-threejs-test/node_modules/.bin/node-gyp-build-optional-packages-test
generated
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../node-gyp-build-optional-packages/build-test.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../node-gyp-build-optional-packages/build-test.js" "$@"
|
||||
fi
|
17
webGl/my-threejs-test/node_modules/.bin/node-gyp-build-optional-packages-test.cmd
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\node-gyp-build-optional-packages\build-test.js" %*
|
28
webGl/my-threejs-test/node_modules/.bin/node-gyp-build-optional-packages-test.ps1
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../node-gyp-build-optional-packages/build-test.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../node-gyp-build-optional-packages/build-test.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../node-gyp-build-optional-packages/build-test.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../node-gyp-build-optional-packages/build-test.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
17
webGl/my-threejs-test/node_modules/.bin/node-gyp-build-optional-packages.cmd
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\node-gyp-build-optional-packages\bin.js" %*
|
28
webGl/my-threejs-test/node_modules/.bin/node-gyp-build-optional-packages.ps1
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../node-gyp-build-optional-packages/bin.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../node-gyp-build-optional-packages/bin.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../node-gyp-build-optional-packages/bin.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../node-gyp-build-optional-packages/bin.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../parcel/lib/bin.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../parcel/lib/bin.js" "$@"
|
||||
fi
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\parcel\lib\bin.js" %*
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../parcel/lib/bin.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../parcel/lib/bin.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../parcel/lib/bin.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../parcel/lib/bin.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../resolve/bin/resolve" "$@"
|
||||
else
|
||||
exec node "$basedir/../resolve/bin/resolve" "$@"
|
||||
fi
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\resolve\bin\resolve" %*
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../resolve/bin/resolve" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../resolve/bin/resolve" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../semver/bin/semver.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../semver/bin/semver.js" "$@"
|
||||
fi
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver.js" %*
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../semver/bin/semver.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../semver/bin/semver.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../semver/bin/semver.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../svgo/bin/svgo" "$@"
|
||||
else
|
||||
exec node "$basedir/../svgo/bin/svgo" "$@"
|
||||
fi
|
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\svgo\bin\svgo" %*
|
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../svgo/bin/svgo" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../svgo/bin/svgo" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../svgo/bin/svgo" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../svgo/bin/svgo" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
||||
|
||||
case `uname` in
|
||||
*CYGWIN*|*MINGW*|*MSYS*)
|
||||
if command -v cygpath > /dev/null 2>&1; then
|
||||
basedir=`cygpath -w "$basedir"`
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -x "$basedir/node" ]; then
|
||||
exec "$basedir/node" "$basedir/../update-browserslist-db/cli.js" "$@"
|
||||
else
|
||||
exec node "$basedir/../update-browserslist-db/cli.js" "$@"
|
||||
fi
|
17
webGl/my-threejs-test/node_modules/.bin/update-browserslist-db.cmd
generated
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\update-browserslist-db\cli.js" %*
|
28
webGl/my-threejs-test/node_modules/.bin/update-browserslist-db.ps1
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../update-browserslist-db/cli.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../update-browserslist-db/cli.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../update-browserslist-db/cli.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
|
@ -0,0 +1,22 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,19 @@
|
|||
# @babel/code-frame
|
||||
|
||||
> Generate errors that contain a code frame that point to source locations.
|
||||
|
||||
See our website [@babel/code-frame](https://babeljs.io/docs/babel-code-frame) for more information.
|
||||
|
||||
## Install
|
||||
|
||||
Using npm:
|
||||
|
||||
```sh
|
||||
npm install --save-dev @babel/code-frame
|
||||
```
|
||||
|
||||
or using yarn:
|
||||
|
||||
```sh
|
||||
yarn add @babel/code-frame --dev
|
||||
```
|
156
webGl/my-threejs-test/node_modules/@babel/code-frame/lib/index.js
generated
vendored
Normal file
|
@ -0,0 +1,156 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.codeFrameColumns = codeFrameColumns;
|
||||
exports.default = _default;
|
||||
var _highlight = require("@babel/highlight");
|
||||
var _picocolors = _interopRequireWildcard(require("picocolors"), true);
|
||||
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
||||
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
||||
const colors = typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? (0, _picocolors.createColors)(false) : _picocolors.default;
|
||||
const compose = (f, g) => v => f(g(v));
|
||||
let pcWithForcedColor = undefined;
|
||||
function getColors(forceColor) {
|
||||
if (forceColor) {
|
||||
var _pcWithForcedColor;
|
||||
(_pcWithForcedColor = pcWithForcedColor) != null ? _pcWithForcedColor : pcWithForcedColor = (0, _picocolors.createColors)(true);
|
||||
return pcWithForcedColor;
|
||||
}
|
||||
return colors;
|
||||
}
|
||||
let deprecationWarningShown = false;
|
||||
function getDefs(colors) {
|
||||
return {
|
||||
gutter: colors.gray,
|
||||
marker: compose(colors.red, colors.bold),
|
||||
message: compose(colors.red, colors.bold)
|
||||
};
|
||||
}
|
||||
const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
|
||||
function getMarkerLines(loc, source, opts) {
|
||||
const startLoc = Object.assign({
|
||||
column: 0,
|
||||
line: -1
|
||||
}, loc.start);
|
||||
const endLoc = Object.assign({}, startLoc, loc.end);
|
||||
const {
|
||||
linesAbove = 2,
|
||||
linesBelow = 3
|
||||
} = opts || {};
|
||||
const startLine = startLoc.line;
|
||||
const startColumn = startLoc.column;
|
||||
const endLine = endLoc.line;
|
||||
const endColumn = endLoc.column;
|
||||
let start = Math.max(startLine - (linesAbove + 1), 0);
|
||||
let end = Math.min(source.length, endLine + linesBelow);
|
||||
if (startLine === -1) {
|
||||
start = 0;
|
||||
}
|
||||
if (endLine === -1) {
|
||||
end = source.length;
|
||||
}
|
||||
const lineDiff = endLine - startLine;
|
||||
const markerLines = {};
|
||||
if (lineDiff) {
|
||||
for (let i = 0; i <= lineDiff; i++) {
|
||||
const lineNumber = i + startLine;
|
||||
if (!startColumn) {
|
||||
markerLines[lineNumber] = true;
|
||||
} else if (i === 0) {
|
||||
const sourceLength = source[lineNumber - 1].length;
|
||||
markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];
|
||||
} else if (i === lineDiff) {
|
||||
markerLines[lineNumber] = [0, endColumn];
|
||||
} else {
|
||||
const sourceLength = source[lineNumber - i].length;
|
||||
markerLines[lineNumber] = [0, sourceLength];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (startColumn === endColumn) {
|
||||
if (startColumn) {
|
||||
markerLines[startLine] = [startColumn, 0];
|
||||
} else {
|
||||
markerLines[startLine] = true;
|
||||
}
|
||||
} else {
|
||||
markerLines[startLine] = [startColumn, endColumn - startColumn];
|
||||
}
|
||||
}
|
||||
return {
|
||||
start,
|
||||
end,
|
||||
markerLines
|
||||
};
|
||||
}
|
||||
function codeFrameColumns(rawLines, loc, opts = {}) {
|
||||
const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts);
|
||||
const colors = getColors(opts.forceColor);
|
||||
const defs = getDefs(colors);
|
||||
const maybeHighlight = (fmt, string) => {
|
||||
return highlighted ? fmt(string) : string;
|
||||
};
|
||||
const lines = rawLines.split(NEWLINE);
|
||||
const {
|
||||
start,
|
||||
end,
|
||||
markerLines
|
||||
} = getMarkerLines(loc, lines, opts);
|
||||
const hasColumns = loc.start && typeof loc.start.column === "number";
|
||||
const numberMaxWidth = String(end).length;
|
||||
const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines;
|
||||
let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => {
|
||||
const number = start + 1 + index;
|
||||
const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
|
||||
const gutter = ` ${paddedNumber} |`;
|
||||
const hasMarker = markerLines[number];
|
||||
const lastMarkerLine = !markerLines[number + 1];
|
||||
if (hasMarker) {
|
||||
let markerLine = "";
|
||||
if (Array.isArray(hasMarker)) {
|
||||
const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
|
||||
const numberOfMarkers = hasMarker[1] || 1;
|
||||
markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join("");
|
||||
if (lastMarkerLine && opts.message) {
|
||||
markerLine += " " + maybeHighlight(defs.message, opts.message);
|
||||
}
|
||||
}
|
||||
return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join("");
|
||||
} else {
|
||||
return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`;
|
||||
}
|
||||
}).join("\n");
|
||||
if (opts.message && !hasColumns) {
|
||||
frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
|
||||
}
|
||||
if (highlighted) {
|
||||
return colors.reset(frame);
|
||||
} else {
|
||||
return frame;
|
||||
}
|
||||
}
|
||||
function _default(rawLines, lineNumber, colNumber, opts = {}) {
|
||||
if (!deprecationWarningShown) {
|
||||
deprecationWarningShown = true;
|
||||
const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
|
||||
if (process.emitWarning) {
|
||||
process.emitWarning(message, "DeprecationWarning");
|
||||
} else {
|
||||
const deprecationError = new Error(message);
|
||||
deprecationError.name = "DeprecationWarning";
|
||||
console.warn(new Error(message));
|
||||
}
|
||||
}
|
||||
colNumber = Math.max(colNumber, 0);
|
||||
const location = {
|
||||
start: {
|
||||
column: colNumber,
|
||||
line: lineNumber
|
||||
}
|
||||
};
|
||||
return codeFrameColumns(rawLines, location, opts);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=index.js.map
|
1
webGl/my-threejs-test/node_modules/@babel/code-frame/lib/index.js.map
generated
vendored
Normal file
|
@ -0,0 +1,30 @@
|
|||
{
|
||||
"name": "@babel/code-frame",
|
||||
"version": "7.24.2",
|
||||
"description": "Generate errors that contain a code frame that point to source locations.",
|
||||
"author": "The Babel Team (https://babel.dev/team)",
|
||||
"homepage": "https://babel.dev/docs/en/next/babel-code-frame",
|
||||
"bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen",
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/babel/babel.git",
|
||||
"directory": "packages/babel-code-frame"
|
||||
},
|
||||
"main": "./lib/index.js",
|
||||
"dependencies": {
|
||||
"@babel/highlight": "^7.24.2",
|
||||
"picocolors": "^1.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"import-meta-resolve": "^4.0.0",
|
||||
"strip-ansi": "^4.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"type": "commonjs"
|
||||
}
|
22
webGl/my-threejs-test/node_modules/@babel/helper-validator-identifier/LICENSE
generated
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
19
webGl/my-threejs-test/node_modules/@babel/helper-validator-identifier/README.md
generated
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
# @babel/helper-validator-identifier
|
||||
|
||||
> Validate identifier/keywords name
|
||||
|
||||
See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/babel-helper-validator-identifier) for more information.
|
||||
|
||||
## Install
|
||||
|
||||
Using npm:
|
||||
|
||||
```sh
|
||||
npm install --save @babel/helper-validator-identifier
|
||||
```
|
||||
|
||||
or using yarn:
|
||||
|
||||
```sh
|
||||
yarn add @babel/helper-validator-identifier
|
||||
```
|
70
webGl/my-threejs-test/node_modules/@babel/helper-validator-identifier/lib/identifier.js
generated
vendored
Normal file
|
@ -0,0 +1,70 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.isIdentifierChar = isIdentifierChar;
|
||||
exports.isIdentifierName = isIdentifierName;
|
||||
exports.isIdentifierStart = isIdentifierStart;
|
||||
let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
|
||||
let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
|
||||
const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
|
||||
const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
|
||||
nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
|
||||
const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 4026, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 757, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];
|
||||
const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 81, 2, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 9, 5351, 0, 7, 14, 13835, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 983, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
|
||||
function isInAstralSet(code, set) {
|
||||
let pos = 0x10000;
|
||||
for (let i = 0, length = set.length; i < length; i += 2) {
|
||||
pos += set[i];
|
||||
if (pos > code) return false;
|
||||
pos += set[i + 1];
|
||||
if (pos >= code) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function isIdentifierStart(code) {
|
||||
if (code < 65) return code === 36;
|
||||
if (code <= 90) return true;
|
||||
if (code < 97) return code === 95;
|
||||
if (code <= 122) return true;
|
||||
if (code <= 0xffff) {
|
||||
return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code));
|
||||
}
|
||||
return isInAstralSet(code, astralIdentifierStartCodes);
|
||||
}
|
||||
function isIdentifierChar(code) {
|
||||
if (code < 48) return code === 36;
|
||||
if (code < 58) return true;
|
||||
if (code < 65) return false;
|
||||
if (code <= 90) return true;
|
||||
if (code < 97) return code === 95;
|
||||
if (code <= 122) return true;
|
||||
if (code <= 0xffff) {
|
||||
return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));
|
||||
}
|
||||
return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes);
|
||||
}
|
||||
function isIdentifierName(name) {
|
||||
let isFirst = true;
|
||||
for (let i = 0; i < name.length; i++) {
|
||||
let cp = name.charCodeAt(i);
|
||||
if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {
|
||||
const trail = name.charCodeAt(++i);
|
||||
if ((trail & 0xfc00) === 0xdc00) {
|
||||
cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);
|
||||
}
|
||||
}
|
||||
if (isFirst) {
|
||||
isFirst = false;
|
||||
if (!isIdentifierStart(cp)) {
|
||||
return false;
|
||||
}
|
||||
} else if (!isIdentifierChar(cp)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return !isFirst;
|
||||
}
|
||||
|
||||
//# sourceMappingURL=identifier.js.map
|
1
webGl/my-threejs-test/node_modules/@babel/helper-validator-identifier/lib/identifier.js.map
generated
vendored
Normal file
57
webGl/my-threejs-test/node_modules/@babel/helper-validator-identifier/lib/index.js
generated
vendored
Normal file
|
@ -0,0 +1,57 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
Object.defineProperty(exports, "isIdentifierChar", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _identifier.isIdentifierChar;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isIdentifierName", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _identifier.isIdentifierName;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isIdentifierStart", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _identifier.isIdentifierStart;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isKeyword", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isKeyword;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isReservedWord", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isReservedWord;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isStrictBindOnlyReservedWord", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isStrictBindOnlyReservedWord;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isStrictBindReservedWord", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isStrictBindReservedWord;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isStrictReservedWord", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _keyword.isStrictReservedWord;
|
||||
}
|
||||
});
|
||||
var _identifier = require("./identifier.js");
|
||||
var _keyword = require("./keyword.js");
|
||||
|
||||
//# sourceMappingURL=index.js.map
|
1
webGl/my-threejs-test/node_modules/@babel/helper-validator-identifier/lib/index.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"names":["_identifier","require","_keyword"],"sources":["../src/index.ts"],"sourcesContent":["export {\n isIdentifierName,\n isIdentifierChar,\n isIdentifierStart,\n} from \"./identifier.ts\";\nexport {\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"./keyword.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA"}
|
35
webGl/my-threejs-test/node_modules/@babel/helper-validator-identifier/lib/keyword.js
generated
vendored
Normal file
|
@ -0,0 +1,35 @@
|
|||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.isKeyword = isKeyword;
|
||||
exports.isReservedWord = isReservedWord;
|
||||
exports.isStrictBindOnlyReservedWord = isStrictBindOnlyReservedWord;
|
||||
exports.isStrictBindReservedWord = isStrictBindReservedWord;
|
||||
exports.isStrictReservedWord = isStrictReservedWord;
|
||||
const reservedWords = {
|
||||
keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"],
|
||||
strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"],
|
||||
strictBind: ["eval", "arguments"]
|
||||
};
|
||||
const keywords = new Set(reservedWords.keyword);
|
||||
const reservedWordsStrictSet = new Set(reservedWords.strict);
|
||||
const reservedWordsStrictBindSet = new Set(reservedWords.strictBind);
|
||||
function isReservedWord(word, inModule) {
|
||||
return inModule && word === "await" || word === "enum";
|
||||
}
|
||||
function isStrictReservedWord(word, inModule) {
|
||||
return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);
|
||||
}
|
||||
function isStrictBindOnlyReservedWord(word) {
|
||||
return reservedWordsStrictBindSet.has(word);
|
||||
}
|
||||
function isStrictBindReservedWord(word, inModule) {
|
||||
return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word);
|
||||
}
|
||||
function isKeyword(word) {
|
||||
return keywords.has(word);
|
||||
}
|
||||
|
||||
//# sourceMappingURL=keyword.js.map
|
1
webGl/my-threejs-test/node_modules/@babel/helper-validator-identifier/lib/keyword.js.map
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"version":3,"names":["reservedWords","keyword","strict","strictBind","keywords","Set","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","has","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword"],"sources":["../src/keyword.ts"],"sourcesContent":["const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,aAAa,GAAG;EACpBC,OAAO,EAAE,CACP,OAAO,EACP,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,IAAI,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,MAAM,EACN,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,QAAQ,CACT;EACDC,MAAM,EAAE,CACN,YAAY,EACZ,WAAW,EACX,KAAK,EACL,SAAS,EACT,SAAS,EACT,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,CACR;EACDC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW;AAClC,CAAC;AACD,MAAMC,QAAQ,GAAG,IAAIC,GAAG,CAACL,aAAa,CAACC,OAAO,CAAC;AAC/C,MAAMK,sBAAsB,GAAG,IAAID,GAAG,CAACL,aAAa,CAACE,MAAM,CAAC;AAC5D,MAAMK,0BAA0B,GAAG,IAAIF,GAAG,CAACL,aAAa,CAACG,UAAU,CAAC;AAK7D,SAASK,cAAcA,CAACC,IAAY,EAAEC,QAAiB,EAAW;EACvE,OAAQA,QAAQ,IAAID,IAAI,KAAK,OAAO,IAAKA,IAAI,KAAK,MAAM;AAC1D;AAOO,SAASE,oBAAoBA,CAACF,IAAY,EAAEC,QAAiB,EAAW;EAC7E,OAAOF,cAAc,CAACC,IAAI,EAAEC,QAAQ,CAAC,IAAIJ,sBAAsB,CAACM,GAAG,CAACH,IAAI,CAAC;AAC3E;AAMO,SAASI,4BAA4BA,CAACJ,IAAY,EAAW;EAClE,OAAOF,0BAA0B,CAACK,GAAG,CAACH,IAAI,CAAC;AAC7C;AAOO,SAASK,wBAAwBA,CACtCL,IAAY,EACZC,QAAiB,EACR;EACT,OACEC,oBAAoB,CAACF,IAAI,EAAEC,QAAQ,CAAC,IAAIG,4BAA4B,CAACJ,IAAI,CAAC;AAE9E;AAEO,SAASM,SAASA,CAACN,IAAY,EAAW;EAC/C,OAAOL,QAAQ,CAACQ,GAAG,CAACH,IAAI,CAAC;AAC3B"}
|
28
webGl/my-threejs-test/node_modules/@babel/helper-validator-identifier/package.json
generated
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"name": "@babel/helper-validator-identifier",
|
||||
"version": "7.22.20",
|
||||
"description": "Validate identifier/keywords name",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/babel/babel.git",
|
||||
"directory": "packages/babel-helper-validator-identifier"
|
||||
},
|
||||
"license": "MIT",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"main": "./lib/index.js",
|
||||
"exports": {
|
||||
".": "./lib/index.js",
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@unicode/unicode-15.1.0": "^1.5.2",
|
||||
"charcodes": "^0.2.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
},
|
||||
"author": "The Babel Team (https://babel.dev/team)",
|
||||
"type": "commonjs"
|
||||
}
|
73
webGl/my-threejs-test/node_modules/@babel/helper-validator-identifier/scripts/generate-identifier-regex.js
generated
vendored
Normal file
|
@ -0,0 +1,73 @@
|
|||
"use strict";
|
||||
|
||||
// Always use the latest available version of Unicode!
|
||||
// https://tc39.github.io/ecma262/#sec-conformance
|
||||
const version = "15.1.0";
|
||||
|
||||
const start = require(
|
||||
"@unicode/unicode-" + version + "/Binary_Property/ID_Start/code-points.js"
|
||||
).filter(function (ch) {
|
||||
return ch > 0x7f;
|
||||
});
|
||||
let last = -1;
|
||||
const cont = require(
|
||||
"@unicode/unicode-" + version + "/Binary_Property/ID_Continue/code-points.js"
|
||||
).filter(function (ch) {
|
||||
return ch > 0x7f && search(start, ch, last + 1) == -1;
|
||||
});
|
||||
|
||||
function search(arr, ch, starting) {
|
||||
for (let i = starting; arr[i] <= ch && i < arr.length; last = i++) {
|
||||
if (arr[i] === ch) return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
function pad(str, width) {
|
||||
while (str.length < width) str = "0" + str;
|
||||
return str;
|
||||
}
|
||||
|
||||
function esc(code) {
|
||||
const hex = code.toString(16);
|
||||
if (hex.length <= 2) return "\\x" + pad(hex, 2);
|
||||
else return "\\u" + pad(hex, 4);
|
||||
}
|
||||
|
||||
function generate(chars) {
|
||||
const astral = [];
|
||||
let re = "";
|
||||
for (let i = 0, at = 0x10000; i < chars.length; i++) {
|
||||
const from = chars[i];
|
||||
let to = from;
|
||||
while (i < chars.length - 1 && chars[i + 1] == to + 1) {
|
||||
i++;
|
||||
to++;
|
||||
}
|
||||
if (to <= 0xffff) {
|
||||
if (from == to) re += esc(from);
|
||||
else if (from + 1 == to) re += esc(from) + esc(to);
|
||||
else re += esc(from) + "-" + esc(to);
|
||||
} else {
|
||||
astral.push(from - at, to - from);
|
||||
at = to;
|
||||
}
|
||||
}
|
||||
return { nonASCII: re, astral: astral };
|
||||
}
|
||||
|
||||
const startData = generate(start);
|
||||
const contData = generate(cont);
|
||||
|
||||
console.log("/* prettier-ignore */");
|
||||
console.log('let nonASCIIidentifierStartChars = "' + startData.nonASCII + '";');
|
||||
console.log("/* prettier-ignore */");
|
||||
console.log('let nonASCIIidentifierChars = "' + contData.nonASCII + '";');
|
||||
console.log("/* prettier-ignore */");
|
||||
console.log(
|
||||
"const astralIdentifierStartCodes = " + JSON.stringify(startData.astral) + ";"
|
||||
);
|
||||
console.log("/* prettier-ignore */");
|
||||
console.log(
|
||||
"const astralIdentifierCodes = " + JSON.stringify(contData.astral) + ";"
|
||||
);
|
|
@ -0,0 +1,22 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
@ -0,0 +1,19 @@
|
|||
# @babel/highlight
|
||||
|
||||
> Syntax highlight JavaScript strings for output in terminals.
|
||||
|
||||
See our website [@babel/highlight](https://babeljs.io/docs/babel-highlight) for more information.
|
||||
|
||||
## Install
|
||||
|
||||
Using npm:
|
||||
|
||||
```sh
|
||||
npm install --save-dev @babel/highlight
|
||||
```
|
||||
|
||||
or using yarn:
|
||||
|
||||
```sh
|
||||
yarn add @babel/highlight --dev
|
||||
```
|