@Override public boolean hasOppositeDirection (Vector2 vector) { return dot(vector) < 0; }
@Override public boolean hasSameDirection (Vector2 vector) { return dot(vector) > 0; }
@Override public boolean hasOppositeDirection (Vector2 vector) { return dot(vector) < 0; }
@Override public boolean hasSameDirection (Vector2 vector) { return dot(vector) > 0; }
/** @return the angle in degrees of this vector (point) relative to the given vector. Angles are towards the positive y-axis * (typically counter-clockwise.) between -180 and +180 */ public float angle (Vector2 reference) { return (float)Math.atan2(crs(reference), dot(reference)) * MathUtils.radiansToDegrees; }
/** @return the angle in radians of this vector (point) relative to the given vector. Angles are towards the positive y-axis. * (typically counter-clockwise.) */ public float angleRad (Vector2 reference) { return (float)Math.atan2(crs(reference), dot(reference)); }
@Override public boolean isPerpendicular (Vector2 vector) { return MathUtils.isZero(dot(vector)); }
/** @return the angle in degrees of this vector (point) relative to the given vector. Angles are towards the positive y-axis * (typically counter-clockwise.) between -180 and +180 */ public float angle (Vector2 reference) { return (float)Math.atan2(crs(reference), dot(reference)) * MathUtils.radiansToDegrees; }
/** @return the angle in radians of this vector (point) relative to the given vector. Angles are towards the positive y-axis. * (typically counter-clockwise.) */ public float angleRad (Vector2 reference) { return (float)Math.atan2(crs(reference), dot(reference)); }
@Override public boolean isPerpendicular (Vector2 vector) { return MathUtils.isZero(dot(vector)); }
@Override public boolean isPerpendicular (Vector2 vector, float epsilon) { return MathUtils.isZero(dot(vector), epsilon); }
@Override public boolean isCollinear (Vector2 other, float epsilon) { return isOnLine(other, epsilon) && dot(other) > 0f; }
@Override public boolean isPerpendicular (Vector2 vector, float epsilon) { return MathUtils.isZero(dot(vector), epsilon); }
@Override public boolean isCollinear (Vector2 other, float epsilon) { return isOnLine(other, epsilon) && dot(other) > 0f; }
@Override public boolean isCollinear (Vector2 other) { return isOnLine(other) && dot(other) > 0f; }
@Override public boolean isCollinear (Vector2 other) { return isOnLine(other) && dot(other) > 0f; }
@Override public boolean isCollinearOpposite (Vector2 other, float epsilon) { return isOnLine(other, epsilon) && dot(other) < 0f; }
@Override public boolean isCollinearOpposite (Vector2 other) { return isOnLine(other) && dot(other) < 0f; }
@Override public boolean isCollinearOpposite (Vector2 other, float epsilon) { return isOnLine(other, epsilon) && dot(other) < 0f; }
@Override public boolean isCollinearOpposite (Vector2 other) { return isOnLine(other) && dot(other) < 0f; }