Snap vertices to a reference edge while preserving an angle

I think 3dsmax can do it.

for curve, blender addon flexi bezier (Flexi Bezier Tool) can detect intercept edges and add a point or empty to use with snap.