private void OnGetActiveRoutToolMessage(GetActiveRoutToolMessage msg) { if (ActiveTool) { DispatcherHelper.CheckBeginInvokeOnUI(() => { if (_chainTransform == null) { _chainTransform = this.GetChainTansform(); } var t = _chainTransform.Value; Task.Run(() => { var p = t.Transform(Position); var v = t.Transform(Direction); if (_tool != null) { msg.SetData(p, v, _tool, ToolHolderId); } }); }); } }
private void OnGetActiveRoutToolMessage(GetActiveRoutToolMessage msg) { if (ActiveTool) { DispatcherHelper.CheckBeginInvokeOnUI(() => { if (_chainTransform == null) { _chainTransform = this.GetChainTansform(); } var t = _chainTransform.Value; Task.Run(() => { if (_tool.ToolType == ToolType.AngularTransmissionImpl) { var at = _tool as AngolarTransmissionImpl; int i = 0; foreach (var item in at.Subspindles) { var p = t.Transform(Position + item.Position.ToVector3D()); var v = t.Transform(item.Direction.ToVector3D()); msg.SetData(p, v, item.Tool, ToolHolderId + i++); } } else { var p = t.Transform(Position); var v = t.Transform(Direction); if (_tool != null) { msg.SetData(p, v, _tool, ToolHolderId); } } }); }); } }