private void pointerPressedHandler(object sender, MetaGestureEventArgs metaGestureEventArgs) { var pointer = metaGestureEventArgs.Pointer; if (pointer.InputSource == (IInputSource)this) { return; } var newPointer = PointerFactory.Create(pointer.Type, this); newPointer.CopyFrom(pointer); newPointer.Position = processCoords(pointer.GetPressData().RaycastHit.textureCoord); newPointer.Flags = pointer.Flags | Pointer.FLAG_ARTIFICIAL | Pointer.FLAG_INTERNAL; addPointer(newPointer); pressPointer(newPointer); map.Add(pointer.Id, newPointer); }
public override bool CancelPointer(Pointer pointer, bool shouldReturn) { base.CancelPointer(pointer, shouldReturn); map.Remove(pointer.Id); if (shouldReturn) { HitData hit; if (PointerUtils.IsPointerOnTarget(pointer, transform, out hit)) { var newPointer = PointerFactory.Create(pointer.Type, this); newPointer.CopyFrom(pointer); newPointer.Position = processCoords(hit.RaycastHit.textureCoord); addPointer(newPointer); pressPointer(newPointer); map.Add(pointer.Id, newPointer); } } return(true); }
public void PointerFactory(PointerFactory p) { pointerFactory = p; }