Robmaister / SharpNav

Advanced Pathfinding for C#
sharpnav.com
Other
537 stars 128 forks source link

CalcSlabEndPoints - Struct by reference needed #74

Open Lanboost opened 6 years ago

Lanboost commented 6 years ago

If you use the vector definition by SharpNav.Geometry.Vector2 as a STRUCT, the method

class NavTile {
public static void CalcSlabEndPoints(Vector3 va, Vector3 vb, Vector2 bmin, Vector2 bmax, BoundarySide side)
}

The "output" bmin and bmax will always be "(0,0)" (outside of the function, this is because structs are passed by value)

https://stackoverflow.com/questions/9251608/are-structs-pass-by-value

Correct method should be

public static void CalcSlabEndPoints(Vector3 va, Vector3 vb, ref Vector2 bmin, ref Vector2 bmax, BoundarySide side)

This only affects creation of ConnectExtLinks between tiles to my knowledge

BR /Lan

Robmaister commented 6 years ago

Nice catch! I'll make this change when I get a chance, you're more than welcome to submit a PR as well!