|
|
|
@@ -710,19 +710,7 @@ function updateSizes(dirtyOnly = false) { |
|
|
|
updateInfo(); |
|
|
|
|
|
|
|
if (config.lockYAxis) { |
|
|
|
if (config.groundPos === "very-high") { |
|
|
|
config.y = -config.height.toNumber("meters") / 12 * 5; |
|
|
|
} else if (config.groundPos === "high") { |
|
|
|
config.y = -config.height.toNumber("meters") / 12 * 4; |
|
|
|
} else if (config.groundPos === "medium") { |
|
|
|
config.y = -config.height.toNumber("meters") / 12 * 3; |
|
|
|
} else if (config.groundPos === "low") { |
|
|
|
config.y = -config.height.toNumber("meters") / 12 * 2; |
|
|
|
} else if (config.groundPos === "very-low") { |
|
|
|
config.y = -config.height.toNumber("meters") / 12; |
|
|
|
} else { |
|
|
|
config.y = 0; |
|
|
|
} |
|
|
|
config.y = -getVerticalOffset(); |
|
|
|
} |
|
|
|
|
|
|
|
drawScales(dirtyOnly); |
|
|
|
@@ -933,7 +921,8 @@ function drawVerticalScale(ifDirty = false) { |
|
|
|
function drawAltitudeLine(ctx, height, label) { |
|
|
|
const pixelScale = (ctx.canvas.clientHeight - 100) / config.height.toNumber("meters"); |
|
|
|
const y = ctx.canvas.clientHeight - 50 - (height.toNumber("meters") - config.y) * pixelScale; |
|
|
|
if (y < ctx.canvas.clientHeight - 100) { |
|
|
|
const offsetY = y + getVerticalOffset() * pixelScale; |
|
|
|
if (offsetY < ctx.canvas.clientHeight - 100) { |
|
|
|
drawTick(ctx, 50, y, label, true); |
|
|
|
} |
|
|
|
} |
|
|
|
@@ -1081,6 +1070,18 @@ function drawVerticalScale(ifDirty = false) { |
|
|
|
drawAltitudeLine(ctx, math.unit(84.80, "meters"), "Hammer Throw"); |
|
|
|
drawAltitudeLine(ctx, math.unit(90.57, "meters"), "Javelin Throw"); |
|
|
|
} |
|
|
|
|
|
|
|
if (config.drawAltitudes == "d&d-sizes" || config.drawAltitudes == "all") { |
|
|
|
drawAltitudeLine(ctx, math.unit(0.375, "feet"), "Fine"); |
|
|
|
drawAltitudeLine(ctx, math.unit(0.75, "feet"), "Dimnutive"); |
|
|
|
drawAltitudeLine(ctx, math.unit(1.5, "feet"), "Tiny"); |
|
|
|
drawAltitudeLine(ctx, math.unit(3, "feet"), "Small"); |
|
|
|
drawAltitudeLine(ctx, math.unit(6, "feet"), "Medium"); |
|
|
|
drawAltitudeLine(ctx, math.unit(12, "feet"), "Large"); |
|
|
|
drawAltitudeLine(ctx, math.unit(24, "feet"), "Huge"); |
|
|
|
drawAltitudeLine(ctx, math.unit(48, "feet"), "Gargantuan"); |
|
|
|
drawAltitudeLine(ctx, math.unit(96, "feet"), "Colossal"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// this is a lot of copypizza... |
|
|
|
@@ -2641,6 +2642,7 @@ const settingsData = { |
|
|
|
"airspaces", |
|
|
|
"races", |
|
|
|
"olympic-records", |
|
|
|
"d&d-sizes" |
|
|
|
], |
|
|
|
get value() { |
|
|
|
return config.drawAltitudes; |
|
|
|
@@ -4377,24 +4379,7 @@ function prepareEntities() { |
|
|
|
let yOffset = 0; |
|
|
|
|
|
|
|
if (config.lockYAxis) { |
|
|
|
if (config.groundPos === "very-high") { |
|
|
|
yOffset = config.height.toNumber("meters") / 12 * 5; |
|
|
|
} |
|
|
|
else if (config.groundPos === "high") { |
|
|
|
yOffset = config.height.toNumber("meters") / 12 * 4; |
|
|
|
} |
|
|
|
else if (config.groundPos === "medium") { |
|
|
|
yOffset = config.height.toNumber("meters") / 12 * 3; |
|
|
|
} |
|
|
|
else if (config.groundPos === "low") { |
|
|
|
yOffset = config.height.toNumber("meters") / 12 * 2; |
|
|
|
} |
|
|
|
else if (config.groundPos === "very-low") { |
|
|
|
yOffset = config.height.toNumber("meters") / 12 * 1; |
|
|
|
} |
|
|
|
else if (config.groundPos === "bottom") { |
|
|
|
yOffset = 0; |
|
|
|
} |
|
|
|
yOffset = getVerticalOffset(); |
|
|
|
} else { |
|
|
|
yOffset = (config.lockYAxis ? 0 : config.height.toNumber("meters")/2); |
|
|
|
} |
|
|
|
@@ -5284,3 +5269,19 @@ function panTo(x, y, height, xSpeed, ySpeed, heightSpeed, timestamp, remaining) |
|
|
|
config.height = math.unit(newHeight, "meters"); |
|
|
|
updateSizes(); |
|
|
|
} |
|
|
|
|
|
|
|
function getVerticalOffset() { |
|
|
|
if (config.groundPos === "very-high") { |
|
|
|
return config.height.toNumber("meters") / 12 * 5; |
|
|
|
} else if (config.groundPos === "high") { |
|
|
|
return config.height.toNumber("meters") / 12 * 4; |
|
|
|
} else if (config.groundPos === "medium") { |
|
|
|
return config.height.toNumber("meters") / 12 * 3; |
|
|
|
} else if (config.groundPos === "low") { |
|
|
|
return config.height.toNumber("meters") / 12 * 2; |
|
|
|
} else if (config.groundPos === "very-low") { |
|
|
|
return config.height.toNumber("meters") / 12; |
|
|
|
} else { |
|
|
|
return 0; |
|
|
|
} |
|
|
|
} |