/// <summary> /// Updates a CurveObject and overwrites its informations /// </summary> public void UpdateCurve(BroadCastCurve broadcast) { var allPoints = GeoUtils.GetVector3Array(broadcast.positions); int length = allPoints.Length; GameObject go = GeometryStorage.Instance.GetGeometry(broadcast.curveNr, GeometryStorage.GeoType.Curve); LineRenderer renderer = go.GetComponent <LineRenderer>(); renderer.positionCount = length; renderer.SetPositions(allPoints); renderer.GetPropertyBlock(propBlock); Color c = GeoUtils.GetUColor(broadcast.colors); propBlock.SetColor("_Color", c); renderer.SetPropertyBlock(propBlock); float width = broadcast.width * 2; if (renderer.startWidth == width) { return; } renderer.startWidth = width; renderer.endWidth = width; }
/// <summary> /// UpdateCurves is overwritten from its derived class: GeoClient, /// everytime gemetry data is send, it is stacked in a special "list", /// which is later processed in the unity update circle /// </summary> /// <param name="data">The network class for Curves</param> protected override void UpdateCurves(BroadCastCurve data) { lock (geometryChanged) geometryChanged.Enqueue(data); }