/// <summary> /// Return true if the object is in the given circle relative to a BehaviorEntity. /// </summary> /// <param name="beh">Target BehaviorEntity</param> /// <param name="circ">Relative circle</param> /// <returns></returns> public static ExPred RelCirc(BEHPointer beh, ExTP3 circ) { return(bpi => CollisionMath.pointInCircle.Of( Ex.Subtract(bpi.loc, LBEH(beh)), Ex.Convert(circ(bpi), typeof(CCircle)) )); }
/// <summary> /// Return true if the object is in the given rectangle relative to a BehaviorEntity. /// </summary> /// <param name="beh">Target BehaviorEntity</param> /// <param name="rect">Relative rectangle</param> /// <returns></returns> public static ExPred RelRect(BEHPointer beh, CRect rect) { return(bpi => CollisionMath.pointInRect.Of( Ex.Subtract(bpi.loc, LBEH(beh)), ExC(rect) )); }
public static TEx <Vector2> LBEH(BEHPointer beh) => Ex.Constant(beh).Field("beh").Field("BPI").Field("loc");