protected virtual Vector2 ObstacleCollisionOffset(Polygon pastSelf, Vector2 p_vertex, Vector2 o_vertex) { Segment2D p_vertexPath = new Segment2D(pastSelf.Vertices[GetVertexIndex(p_vertex)], p_vertex); Line2D o_vertexPath = new Line2D(o_vertex, o_vertex + p_vertexPath.Vector); if (o_vertexPath.Contains(o_vertex) && o_vertexPath.Contains(p_vertex)) { return(o_vertex - p_vertex); } return(Vector2.zero); }