bool?ProcessLineStripNoTint(NativeList <float4x2> lineBuffer) { var lPoints = points; var lColors = colors; if (lPoints.Length == 0) { return(null); } var p = lPoints[0].Ros2Unity(); var pc = lColors[0].ToUnityColor32(); for (int i = 1; i < lPoints.Length; i++) { var q = lPoints[i].Ros2Unity(); var qc = lColors[i].ToUnityColor32(); LineWithColor line = new LineWithColor(p, pc, q, qc); if (LineResource.IsElementValid(line)) { lineBuffer.Add(line.f); } p = q; pc = qc; } return(null); }
protected override void Awake() { base.Awake(); disc.EndDragging += () => { dragBack = true; Moved?.Invoke(this, 0); lines.Reset(); currentAngle = null; }; disc.StartDragging += () => { dragBack = false; }; link.Color = Color.cyan.WithAlpha(0.8f); link.EmissiveColor = Color.cyan; ringUp.Color = Color.cyan.WithAlpha(0.5f); ringUp.EmissiveColor = Color.cyan; ringDown.Color = Color.cyan.WithAlpha(0.5f); ringDown.EmissiveColor = Color.cyan; lines = ResourcePool.RentDisplay <LineResource>(transform); lines.ElementScale = 0.02f; lines.RenderType = LineResource.LineRenderType.AlwaysCapsule; }
bool?ProcessLineStripSingleColor(NativeList <float4x2> lineBuffer) { var lPoints = points; if (lPoints.Length == 0) { return(color32.a < 255); } var p = lPoints[0].Ros2Unity(); float colorAsFloat = PointWithColor.FloatFromColorBits(color32); for (int i = 1; i < lPoints.Length; i++) { var q = lPoints[i].Ros2Unity(); LineWithColor line = new LineWithColor(p, colorAsFloat, q, colorAsFloat); if (LineResource.IsElementValid(line)) { lineBuffer.Add(line.f); } p = q; } return(color32.a < 255); }
void Awake() { node = new GameObject("AR LineConnector Node"); node.transform.SetParentLocal(TfListener.OriginFrame.transform); lines = ResourcePool.RentDisplay <LineResource>(node.transform); lines.ElementScale = 0.005f; foreach (ref var sphere in spheres.Ref()) { sphere = ResourcePool.Rent <MeshMarkerResource>(Resource.Displays.Sphere, node.transform); sphere.Transform.localScale = 0.05f * Vector3.one; sphere.ShadowsEnabled = false; } Color = Color.cyan; Layer = LayerType.IgnoreRaycast; }
bool?ProcessLineListNoTint(NativeList <float4x2> lineBuffer) { var lPoints = points; var lColors = colors; for (int i = 0; i < lPoints.Length / 2; i++) { LineWithColor line = new LineWithColor( lPoints[2 * i + 0].Ros2Unity(), lColors[2 * i + 0].ToUnityColor32(), lPoints[2 * i + 1].Ros2Unity(), lColors[2 * i + 1].ToUnityColor32() ); if (LineResource.IsElementValid(line)) { lineBuffer.Add(line.f); } } return(null); }
bool?ProcessLineListSingleColor(NativeList <float4x2> lineBuffer) { var lPoints = points; float colorAsFloat = PointWithColor.FloatFromColorBits(color32); for (int i = 0; i < lPoints.Length / 2; i++) { LineWithColor line = new LineWithColor( lPoints[2 * i + 0].Ros2Unity(), colorAsFloat, lPoints[2 * i + 1].Ros2Unity(), colorAsFloat ); if (LineResource.IsElementValid(line)) { lineBuffer.Add(line.f); } } return(color32.a < 255); }
static void CreateLineResource(float z) { using (NativeList <LineWithColor> lines = new NativeList <LineWithColor>()) { LineResource resource = ResourcePool.RentDisplay <LineResource>(); for (int i = 0; i < MaxSegmentsForMesh + 10; i++) { lines.Add(new LineWithColor( new Vector3(i, 0, z), Color.green, new Vector3(i + 1, 1, z), Color.green )); } resource.Set(lines); } using (NativeList <LineWithColor> lines = new NativeList <LineWithColor>()) { LineResource resource = ResourcePool.RentDisplay <LineResource>(); for (int i = 0; i < MaxSegmentsForMesh + 10; i++) { lines.Add(new LineWithColor( new Vector3(i, 0, z + 1), 0.025f * i, new Vector3(i + 1, 1, z + 1), 0.025f * i )); } resource.UseColormap = true; resource.Colormap = ColormapId.hsv; resource.Set(lines); } using (NativeList <LineWithColor> lines = new NativeList <LineWithColor>()) { LineResource resource = ResourcePool.RentDisplay <LineResource>(); for (int i = 0; i < MaxSegmentsForMesh + 10; i++) { lines.Add(new LineWithColor( new Vector3(i, 0, z + 2), new Color(1, 0, 0, 0.5f), new Vector3(i + 1, 1, z + 2), Color.green )); } resource.Set(lines); } using (NativeList <LineWithColor> lines = new NativeList <LineWithColor>()) { LineResource resource = ResourcePool.RentDisplay <LineResource>(); for (int i = 0; i < MaxSegmentsForMesh + 10; i++) { lines.Add(new LineWithColor( new Vector3(i, 0, z + 3), 0.025f * i, new Vector3(i + 1, 1, z + 3), 0.025f * i )); } resource.UseColormap = true; resource.Tint = new Color(1, 1, 1, 0.5f); resource.Colormap = ColormapId.hsv; resource.Set(lines); } }
static void CreateLineResourceShort(float z) { { LineResource resource = ResourcePool.RentDisplay <LineResource>(); NativeList <LineWithColor> lines = new NativeList <LineWithColor>(); for (int i = 0; i < MaxSegmentsForMesh / 2; i++) { lines.Add(new LineWithColor( new Vector3(i, 0, z), Color.green, new Vector3(i + 1, 1, z), Color.green )); } resource.Set(lines); } { LineResource resource = ResourcePool.RentDisplay <LineResource>(); NativeList <LineWithColor> lines = new NativeList <LineWithColor>(); for (int i = 0; i < MaxSegmentsForMesh / 2; i++) { lines.Add(new LineWithColor( new Vector3(i, 0, z + 1), 0.1f * i, new Vector3(i + 1, 1, z + 1), 0.1f * i )); } resource.UseColormap = true; resource.Colormap = ColormapId.hsv; resource.Set(lines); } { LineResource resource = ResourcePool.RentDisplay <LineResource>(); NativeList <LineWithColor> lines = new NativeList <LineWithColor>(); for (int i = 0; i < MaxSegmentsForMesh / 2; i++) { lines.Add(new LineWithColor( new Vector3(i, 0, z + 2), Color.red.WithAlpha(0.25f), new Vector3(i + 1, 1, z + 2), Color.green )); } resource.Set(lines); } { LineResource resource = ResourcePool.RentDisplay <LineResource>(); NativeList <LineWithColor> lines = new NativeList <LineWithColor>(); for (int i = 0; i < MaxSegmentsForMesh / 2; i++) { lines.Add(new LineWithColor( new Vector3(i, 0, z + 3), 0.1f * i, new Vector3(i + 1, 1, z + 3), 0.1f * i )); } resource.UseColormap = true; resource.Tint = Color.white.WithAlpha(0.25f); resource.Colormap = ColormapId.hsv; resource.Set(lines); } }
/// <summary> /// Append part. /// </summary> /// <param name="appender"></param> /// <param name="previous"></param> /// <param name="value"></param> /// <param name="line"></param> /// <returns></returns> public virtual bool TryCreate(ILineFactory appender, ILine previous, byte[] value, out ILineResource line) { line = new LineResource(appender, previous, value); return(true); }