/// <summary>
/// Search line in triangles/triangle_strip/triangle_fan/
/// triangles_adjacency/triangle_strip_adjacency/
/// quads/quad_strip/polygon
/// </summary>
/// <param name="arg"></param>
/// <param name="stageVertexId"></param>
/// <param name="x">mouse position(Left Down is (0, 0)).</param>
/// <param name="y">mouse position(Left Down is (0, 0)).</param>
/// <param name="lastVertexId"></param>
/// <param name="searcher"></param>
/// <returns></returns>
private PickedGeometry SearchLine(RenderEventArgs arg, uint stageVertexId,
int x, int y, uint lastVertexId, ZeroIndexLineSearcher searcher)
{
var vertexIds = searcher.Search(arg, x, y, lastVertexId, this);
var positions = FillPickedGeometrysPosition(vertexIds);
var pickedGeometry = new PickedGeometry(PickingGeometryType.Line, positions, vertexIds, stageVertexId, this);
return(pickedGeometry);
}