public void UpdateEdge(int edgeIndex) { Vector2 vector = (this._edges[edgeIndex].Point1 = this._vertices[(edgeIndex + 1) % this._vertices.Length]) - (this._edges[edgeIndex].Point0 = this._vertices[edgeIndex]); this._edges[edgeIndex].Length = Vector2ex.Normalize(ref vector, 1E-05f); this._edges[edgeIndex].Direction = vector; this._edges[edgeIndex].Normal = vector.Perp(); }
public void UpdateEdges() { int num = this._vertices.Length; int num2 = num - 1; for (int i = 0; i < num; i++) { Vector2 vector = (this._edges[num2].Point1 = this._vertices[i]) - (this._edges[num2].Point0 = this._vertices[num2]); this._edges[num2].Length = Vector2ex.Normalize(ref vector, 1E-05f); this._edges[num2].Direction = vector; this._edges[num2].Normal = vector.Perp(); num2 = i; } }
public static float AngleRad(this Vector2 vector, Vector2 target) { Vector2ex.Normalize(ref vector, 1E-05f); Vector2ex.Normalize(ref target, 1E-05f); float num = vector.x * target.x + vector.y * target.y; if (num > 1f) { num = 1f; } else if (num < -1f) { num = -1f; } return(Mathf.Acos(num)); }