drawing modes
This commit is contained in:
parent
b21a7c7ef2
commit
6f96b2af97
6 changed files with 185 additions and 18 deletions
|
@ -10,6 +10,7 @@ namespace Sledgemapper
|
|||
public Tile HoveredTile { get; set; }
|
||||
public Wall SelectedWall { get; set; }
|
||||
public Overlay SelectedOverlay { get; set; }
|
||||
public SnapPoint SelectedSnapPoint {get;set;}
|
||||
public Note SelectedNote { get; set; }
|
||||
public int TileSize { get; set; }
|
||||
public string CurrentTileId { get; set; }
|
||||
|
@ -65,6 +66,68 @@ namespace Sledgemapper
|
|||
SelectedWall.Rotation = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public void SelectClosestSnapPoint(Point mousePosition)
|
||||
{
|
||||
SelectedSnapPoint.X = HoveredTile.X;
|
||||
SelectedSnapPoint.Y = HoveredTile.Y;
|
||||
|
||||
var points = new List<Point>{
|
||||
new Point(HoveredTile.X * TileSize, HoveredTile.Y * TileSize),
|
||||
new Point((HoveredTile.X+1) * TileSize, HoveredTile.Y * TileSize),
|
||||
new Point((HoveredTile.X+1) * TileSize, (HoveredTile.Y+1) * TileSize),
|
||||
new Point(HoveredTile.X * TileSize, (HoveredTile.Y+1) * TileSize),
|
||||
new Point(HoveredTile.X * TileSize+TileSize/2, HoveredTile.Y * TileSize),
|
||||
new Point(HoveredTile.X * TileSize + TileSize/2, HoveredTile.Y * TileSize+ TileSize/2),
|
||||
new Point(HoveredTile.X * TileSize, HoveredTile.Y * TileSize+TileSize/2),
|
||||
new Point(HoveredTile.X * TileSize+TileSize , HoveredTile.Y * TileSize+TileSize/2),
|
||||
new Point(HoveredTile.X * TileSize+TileSize/2, HoveredTile.Y * TileSize+TileSize)
|
||||
|
||||
};
|
||||
|
||||
var q1 = Math.Pow(mousePosition.X - HoveredTile.X * TileSize, 2);
|
||||
var q2 = Math.Pow(HoveredTile.Y * TileSize - mousePosition.Y, 2);
|
||||
var s = Math.Sqrt(q1 + q2);
|
||||
|
||||
if (s < TileSize / 3)
|
||||
{
|
||||
SelectedOverlay.Intersection = true;
|
||||
return;
|
||||
}
|
||||
|
||||
q1 = Math.Pow(mousePosition.X - (HoveredTile.X + 1) * TileSize, 2);
|
||||
s = Math.Sqrt(q1 + q2);
|
||||
if (s < TileSize / 3)
|
||||
{
|
||||
SelectedOverlay.X = SelectedOverlay.X + 1;
|
||||
SelectedOverlay.Intersection = true;
|
||||
return;
|
||||
}
|
||||
|
||||
//q1 = System.Math.Pow(mousePosition.X - (_hoveredTile.X + 1) * _tileSize, 2);
|
||||
q2 = Math.Pow((HoveredTile.Y + 1) * TileSize - mousePosition.Y, 2);
|
||||
s = Math.Sqrt(q1 + q2);
|
||||
if (s < TileSize / 3)
|
||||
{
|
||||
SelectedOverlay.X = SelectedOverlay.X + 1;
|
||||
SelectedOverlay.Y = SelectedOverlay.Y + 1;
|
||||
SelectedOverlay.Intersection = true;
|
||||
return;
|
||||
}
|
||||
|
||||
q1 = Math.Pow(mousePosition.X - HoveredTile.X * TileSize, 2);
|
||||
q2 = Math.Pow((HoveredTile.Y + 1) * TileSize - mousePosition.Y, 2);
|
||||
s = Math.Sqrt(q1 + q2);
|
||||
if (s < TileSize / 3)
|
||||
{
|
||||
SelectedOverlay.X = SelectedOverlay.X;
|
||||
SelectedOverlay.Y = SelectedOverlay.Y + 1;
|
||||
SelectedOverlay.Intersection = true;
|
||||
return;
|
||||
}
|
||||
|
||||
SelectedOverlay.Intersection = false;
|
||||
}
|
||||
public void SelectOverlay(Point mousePosition)
|
||||
{
|
||||
SelectedOverlay.X = HoveredTile.X;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue