public AlongDirectionSemplificationCheckResult Check(ImplicitToolBase tool) { var result = AlongDirectionSemplificationCheckResult.None; if (IsComparable(tool)) { var d = tool._position - _position; var p = CheckParallel(d); if (p > 0) { result = AlongDirectionSemplificationCheckResult.GoOn; } else if (p < 0) { result = AlongDirectionSemplificationCheckResult.BackOff; } } return(result); }
protected abstract bool IsComparable(ImplicitToolBase tool);