Added map context to scale simplification by map scale

Added distance to quadratic functions to vector
This commit is contained in:
Mitchell McCaffrey
2020-04-29 18:21:44 +10:00
parent 3e5a80e7d1
commit 9975f564fa
6 changed files with 170 additions and 48 deletions

View File

@@ -1,8 +1,7 @@
import React, { useRef, useEffect, useState } from "react";
import React, { useRef, useEffect, useState, useContext } from "react";
import shortid from "shortid";
import { compare as comparePoints } from "../../helpers/vector2";
import {
getBrushPositionForTool,
isShapeHovered,
@@ -11,6 +10,8 @@ import {
getRelativePointerPosition,
} from "../../helpers/drawing";
import MapInteractionContext from "../../contexts/MapInteractionContext";
function MapFog({
width,
height,
@@ -32,6 +33,8 @@ function MapFog({
isEditing &&
(toolSettings.type === "toggle" || toolSettings.type === "remove");
const { scaleRef } = useContext(MapInteractionContext);
// Reset pointer position when tool changes
useEffect(() => {
setPointerPosition({ x: -1, y: -1 });
@@ -65,7 +68,6 @@ function MapFog({
color: "black",
blend: true, // Blend while drawing
id: shortid.generate(),
fogType: toolSettings.useGridSnapping ? "sharp" : "smooth",
});
}
}
@@ -124,7 +126,14 @@ function MapFog({
if (drawingShape.data.points.length > 1) {
const shape = {
...drawingShape,
data: { points: simplifyPoints(drawingShape.data.points, gridSize) },
data: {
points: simplifyPoints(
drawingShape.data.points,
gridSize,
// Downscale fog as smoothing doesn't currently work with edge snapping
scaleRef.current / 2
),
},
blend: false,
};
onShapeAdd(shape);