private void ExecuteDynamic(ArcInterpolatedPositionLinkAction action, int notifyId) { bool isFirst = true; foreach (var item in action.Components) { var component = item.Type == ArcInterpolatedPositionLinkAction.ArcComponent.ArcComponentType.X ? ArcComponent.X : ArcComponent.Y; var data = new ArcComponentData { GroupId = _interpolationGroupId, StartAngle = action.StartAngle, Angle = action.Angle, Radius = action.Radius, CenterCoordinate = item.CenterCoordinate, Component = component }; Messenger.Send(new GetLinkMessage() { Id = item.LinkId, SetLink = (link) => { LinkMovementManager.Add(item.LinkId, item.TargetCoordinate, action.Duration, data, isFirst ? notifyId : 0); isFirst = false; } }); } _interpolationGroupId++; }
public static void ExecuteAction(this ArcInterpolatedPositionLinkAction a, int actionId = 0) { bool isFirst = true; foreach (var item in a.Components) { var component = item.Type == ArcInterpolatedPositionLinkAction.ArcComponent.ArcComponentType.X ? MachineViewer.Plugins.Common.Enums.Links.Interpolation.ArcComponent.X : MachineViewer.Plugins.Common.Enums.Links.Interpolation.ArcComponent.Y; var data = new ArcComponentData { GroupId = _interpolationGroupId, StartAngle = a.StartAngle, Angle = a.Angle, Radius = a.Radius, CenterCoordinate = item.CenterCoordinate, Component = component }; Messenger.Default.Send(new ArcInterpolationLinkMessage(item.LinkId, item.TargetCoordinate, a.Duration, data) { BackNotifyId = isFirst ? actionId : 0 }); //isFirst = false; } _interpolationGroupId++; }
internal void Add(int linkId, double targetValue, ArcComponentData data) { ArcMovementItem md = null; switch (data.Component) { case Plugins.Common.Enums.Links.Interpolation.ArcComponent.X: md = new XArcMovementItem(linkId, targetValue); break; case Plugins.Common.Enums.Links.Interpolation.ArcComponent.Y: md = new YArcMovementItem(linkId, targetValue); break; default: break; } if (md != null) { md.Angle = data.Angle; md.StartAngle = data.StartAngle; md.CenterCoordinate = data.CenterCoordinate; md.Radius = data.Radius; Items.Add(md); } else { throw new ArgumentException("Invalid arc component!"); } }
public void Add(ILinkViewModel link, double targetValue, ArcComponentData data) { IArcMovementItem md = ArcMovementItem.Create(link, targetValue); md.Angle = data.Angle; md.StartAngle = data.StartAngle; md.CenterCoordinate = data.CenterCoordinate; md.Radius = data.Radius; md.ArcComponent = data.Component; Items.Add(md); }
public static void Add(int linkId, double targetValue, double duration, ArcComponentData data) { lock (_lockObj2) { if (!_itemsGroups.TryGetValue(data.GroupId, out LinksMovementsGroup group)) { group = new LinksMovementsGroup(data.GroupId, duration); _itemsGroups.Add(data.GroupId, group); } group.Add(linkId, targetValue, data); } }
public ArcInterpolationLinkMessage(int id, double targetCoordinate, double duration, ArcComponentData arcComponentData) : base(id, targetCoordinate, duration) { ArcComponentData = arcComponentData; }