void LoadStrokes(InkDataModel model) { IPathCollection paths = GetComponentInChildren <IPathCollection>(); if (paths == null) { return; } paths.ClearAllPaths(); IStrokeRenderer renderer = GetComponentInChildren <IStrokeRenderer>(); if (renderer == null) { return; } var enumerator = model.InkTree.Root.GetRecursiveEnumerator(); while (enumerator.MoveNext()) { if (enumerator.Current is PathNode pathNode) { renderer.DrawStroke(pathNode.Path.Spline.Data); } } }
public void RegisterStrokeRenderer(IStrokeRenderer strokeRenderer) { _strokeRenderers.Add(strokeRenderer); if (_isBufferingStroke) { Debug.LogError("[StrokeProcessor] Stroke in progress; Newly registered stroke renderers will not render the entire stroke if a stroke is already in progress."); } }
void Start() { _smoothedSpeed.delay = _smoothingDelay; _strokeProcessor = new StrokeProcessor(); // Set up and register filters. _strokeProcessor.RegisterStrokeFilter(new FilterPositionMovingAverage()); _strokeProcessor.RegisterStrokeFilter(new FilterPitchYawRoll()); _strokeProcessor.RegisterStrokeFilter(_colorFilter); _strokeProcessor.RegisterStrokeFilter(_thicknessFilter); _strokeProcessor.RegisterStrokeFilter(new FilterConstrainThickness()); _strokeProcessor.RegisterStrokeFilter(new FilterSmoothThickness()); // Set up and register renderers. //GameObject rendererObj = new GameObject(); //rendererObj.name = "Stroke Ribbon Renderer"; //var ribbonRenderer = rendererObj.AddComponent<StrokeRibbonRenderer>(); //ribbonRenderer.OnMeshStrokeFinalized += DoOnMeshStrokeFinalized; //_strokeRenderer = ribbonRenderer; //_strokeProcessor.RegisterStrokeRenderer(ribbonRenderer); GameObject rendererObj = new GameObject(); rendererObj.name = "Thick Ribbon Renderer"; rendererObj.transform.parent = transform; var thickRibbonRenderer = rendererObj.AddComponent <ThickRibbonRenderer>(); rendererObj.AddComponent <ThickLineRendererRecorder>(); thickRibbonRenderer._finalizedRibbonParent = _ribbonParentObject; thickRibbonRenderer._ribbonMaterial = _ribbonMaterial; _strokeRenderer = thickRibbonRenderer; _strokeProcessor.RegisterStrokeRenderer(thickRibbonRenderer); //GameObject previewRendererObj = new GameObject(); //previewRendererObj.name = "Stroke Preview Ribbon Renderer"; //var previewRibbonRenderer = previewRendererObj.AddComponent<StrokeBufferRibbonRenderer>(); //previewRibbonRenderer.previewThicknessCurve = _thicknessCurve; //_strokeProcessor.RegisterPreviewStrokeRenderer(previewRibbonRenderer); }