void CreateSolid() { Debug.Log("solid line"); using (var vh = new VertexHelper()) { MeshUtil.AddRect(BoundsUtil.UnitBounds, vh); MeshUtil.UpdateMesh(GetComponent <MeshFilter>(), vh); } }
void CreateBorderDashed() { using (var vh = new VertexHelper()) { var sections = BorderSectionBounds(); var top = sections[0]; var right = sections[1]; var bottom = sections[2]; var left = sections[3]; var outerBounds = BorderOuterBounds; // Horizontal float scaledDashLength = property.border.dashLength / property.width; float scaledGapLength = property.border.gapLength / property.width; int numRects = Mathf.CeilToInt(top.size.x / (scaledDashLength + scaledGapLength)); for (int i = 0; i < numRects; i++) { float displacement = (scaledDashLength + scaledGapLength) * i; Vector2 anchor = top.TopLeft().Incr(displacement, 0); var rect = new Bounds().FromPoints( anchor, outerBounds.ClosestPoint(anchor.Incr(scaledDashLength, -scaledBorderHeight))); MeshUtil.AddRect(rect, vh); // BOT anchor = bottom.TopLeft().Incr(displacement, 0); rect = new Bounds().FromPoints( anchor, outerBounds.ClosestPoint(anchor.Incr(scaledDashLength, -scaledBorderHeight))); MeshUtil.AddRect(rect, vh); } // Vertical scaledDashLength = property.border.dashLength / property.height; scaledGapLength = property.border.gapLength / property.height; numRects = Mathf.CeilToInt(right.size.y / (scaledDashLength + scaledGapLength)); for (int i = 0; i < numRects; i++) { float displacement = (scaledDashLength + scaledGapLength) * i; Vector2 anchor = right.TopLeft().Incr(0, -displacement); var rect = new Bounds().FromPoints( anchor, outerBounds.ClosestPoint(anchor.Incr(scaledBorderWidth, -scaledDashLength))); MeshUtil.AddRect(rect, vh); // BOT anchor = left.TopLeft().Incr(0, -displacement); rect = new Bounds().FromPoints( anchor, outerBounds.ClosestPoint(anchor.Incr(scaledBorderWidth, -scaledDashLength))); MeshUtil.AddRect(rect, vh); } // draw bot outerMeshController.mesh = vh.CreateMesh(); } }
void CreateBorderSolid() { using (var vh = new VertexHelper()) { foreach (Bounds b in BorderSectionBounds()) { MeshUtil.AddRect(b, vh); } outerMeshController.mesh = vh.CreateMesh(); } }
void CreateDashed() { float fullSegmentLength = (property.border.dashLength + property.border.gapLength); int numFragments = Mathf.CeilToInt(property.length / fullSegmentLength); if (numFragments > MAX_FRAGMENTS) { Debug.LogError("Line has too many fragments (" + numFragments + ")"); return; } using (var vh = new VertexHelper()) { for (int i = 0; i < numFragments; i++) { float deltaX = i * fullSegmentLength / property.length; var min = new Vector2(-0.5f + deltaX, -0.5f); var max = new Vector2(-0.5f + deltaX + property.border.dashLength / property.length, 0.5f); MeshUtil.AddRect(new Bounds().WithMinMax(min, max), vh); } MeshUtil.UpdateMesh(GetComponent <MeshFilter>(), vh); } }