Modified weapon scripts to eliminate specialized projectile behavior - allows charged weapons to have projectiles and modify weapon stats when charged Added machine gun weapon & VFX Moved third party code to Plugins folder to improve compile times
41 lines
1.7 KiB
C#
41 lines
1.7 KiB
C#
//
|
|
// GroupBoundaryCrossing.cs
|
|
// MSAGL Obstacle class for a Group boundary crossing for Rectilinear Edge Routing.
|
|
//
|
|
// Copyright Microsoft Corporation.
|
|
|
|
using System.Diagnostics;
|
|
using Microsoft.Msagl.Core.Geometry;
|
|
|
|
namespace Microsoft.Msagl.Routing.Rectilinear {
|
|
// A Group is a Shape that has children.
|
|
// This class defines a single crossing of a group boundary, from a point on the group boundary.
|
|
// It is intended as the Value of a GroupBoundaryCrossingMap entry, or as an element in a VisiblityEdge.GroupCrossings
|
|
// array, so the actual crossing coordinates are not included.
|
|
internal class GroupBoundaryCrossing {
|
|
// The group to which this applies.
|
|
internal Obstacle Group { get; set; }
|
|
|
|
// The direction from the vertex on the group boundary toward the inside of the group.
|
|
internal Directions DirectionToInside { get; private set; }
|
|
|
|
internal GroupBoundaryCrossing(Obstacle group, Directions dirToInside) {
|
|
Debug.Assert(CompassVector.IsPureDirection(dirToInside), "Impure direction");
|
|
this.Group = group;
|
|
this.DirectionToInside = dirToInside;
|
|
}
|
|
|
|
static internal double BoundaryWidth { get { return ApproximateComparer.DistanceEpsilon; } }
|
|
|
|
internal Point GetInteriorVertexPoint(Point outerVertex) {
|
|
return ApproximateComparer.Round(outerVertex + (CompassVector.ToPoint(DirectionToInside) * BoundaryWidth));
|
|
}
|
|
|
|
/// <summary>
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public override string ToString() {
|
|
return string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0} {1}", DirectionToInside, Group);
|
|
}
|
|
}
|
|
}
|