public override void DrawConstraint(Constraint c) { switch (c.tag) { case Tags.DistanceConstraint: var distance = c as DistanceConstraint; Drawing2D.DrawLine(distance.v0.position + DemoUtils.offset, distance.v1.position + DemoUtils.offset, DemoUtils.constraintColor); break; case Tags.SpringConstraint: var spring = c as SpringConstraint; Drawing2D.DrawLine(spring.v0.position + DemoUtils.offset, spring.v1.position + DemoUtils.offset, DemoUtils.constraintColor); break; case Tags.DragConstraint: break; case Tags.PinConstraint: var pin = c as PinConstraint; Drawing2D.FillCircle(pin.position + DemoUtils.offset, DemoUtils.pinSize, DemoUtils.pinColor); break; case Tags.AngleConstraint: break; } }
public override void DrawBody(Body body) { switch (body.tag) { case Tags.Cloth: break; case Tags.SolidBody: DrawSolidBody(body); break; case Tags.Tree: Drawing2D.DrawLine(body.vertices[0].position + DemoUtils.offset, body.vertices[1].position + DemoUtils.offset, DemoUtils.constraintColor); DrawNormalBody(body); break; case Tags.TreeWithFoliage: var desc = body.data as Builders.TreeFoliageDesc; for (var i = 0; i < desc.branches.Count; ++i) { if (desc.branches[i] < 0) { continue; } var constraint = body.constraints[i] as SpringConstraint; var trunkWidth = Mathf.Lerp(10f, 2f, desc.branches[i]); Drawing2D.DrawLine(constraint.v0.position + DemoUtils.offset, constraint.v1.position + DemoUtils.offset, DemoUtils.trunkColor, trunkWidth); } for (var i = 0; i < desc.leaves.Count; ++i) { var vertex = body.vertices[desc.leaves[i]]; Drawing2D.FillCircle(vertex.position + DemoUtils.offset, 25, DemoUtils.foliageColor); } break; case Tags.NormalBody: default: DrawNormalBody(body); break; } }
/// <summary> /// Circles Example /// </summary> private void DrawCircles() { mRectangleY += mRectangleHeight + 20; Drawing2D.DrawRect(new Rect(mRectangleX, mRectangleY, mRectangleWidth, mRectangleHeight)); Drawing2D.DrawText("Circles", mRectangleX + 5, mRectangleY + 5, 18, Color.white, mBitmapFont); float x = 15 - mSampleWidth; float y = mRectangleY + 50; float radius = mRectangleHeight - 60; Drawing2D.DrawCircle(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, 8, ToColor(36, 86, 188), 2f); Drawing2D.DrawCircle(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, 20, ToColor(93, 166, 221), 2f); Drawing2D.DrawCircle(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, 20, ToColor(21, 179, 89), 4f); radius = mRectangleHeight - 50; y = mRectangleY + 40; Drawing2D.DrawDashedCircle(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, 12, ToColor(175, 217, 141), 3f, 3f); Drawing2D.DrawDashedCircle(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, 12, ToColor(248, 222, 104), 3f, 3f); Drawing2D.DrawDashedCircle(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, 12, ToColor(255, 196, 126), 3f, 3f); Drawing2D.FillCircle(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, ToColor(255, 112, 92)); Drawing2D.FillCircle(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius * 1.15f, ToColor(232, 62, 83)); }
/// <summary> /// Arcs Example /// </summary> private void DrawArcs() { mRectangleY += mRectangleHeight + 20; Drawing2D.DrawRect(new Rect(mRectangleX, mRectangleY, mRectangleWidth, mRectangleHeight)); Drawing2D.DrawText("Arcs", mRectangleX + 5, mRectangleY + 5, 18, Color.white, mBitmapFont); float x = 15 - mSampleWidth; float y = mRectangleY + 50; float radius = mRectangleHeight - 60; Drawing2D.DrawArc(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, 8, 0, 270, ToColor(36, 86, 188), 2f, CustomTextureLines); Drawing2D.DrawArc(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, 12, 90, 270, ToColor(93, 166, 221), 2f, CustomTextureLines); Drawing2D.DrawArc(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, 16, 0, 180, ToColor(21, 179, 89), 4f, CustomTextureLines); radius = mRectangleHeight - 50; y = mRectangleY + 40; Drawing2D.DrawDashedArc(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, 12, 0, 270, ToColor(175, 217, 141), 3f, 3f); Drawing2D.DrawDashedArc(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, 12, 45, 225, ToColor(248, 222, 104), 4f, 3f); Drawing2D.DrawDashedArc(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, 12, 90, 270, ToColor(255, 196, 126), 6f, 3f); Drawing2D.FillCircle(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius, ToColor(255, 112, 92)); Drawing2D.DrawDashedArc(new Vector2((x) + ((mSampleWidth / 2) - radius), y), radius + 2, 12, 90, 270, ToColor(255, 112, 92), 6f, 3f); Drawing2D.FillCircle(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius * 1.15f, ToColor(232, 62, 83)); Drawing2D.DrawDashedArc(new Vector2((x) + ((mSampleWidth / 2) - radius), y), (radius * 1.15f) + 2, 12, 0, 180, ToColor(232, 62, 83), 6f, 3f); }
private void DrawVertex(Vertex v) { Drawing2D.FillCircle(v.position + DemoUtils.offset, DemoUtils.vertexSize, DemoUtils.vertexColor); }
/// <summary> /// /// </summary> private void DrawCompound() { mNumSamples = 7; mSampleWidth = (mParentRect.width - 30) / (mNumSamples); mRectangleY += mRectangleHeight + 20; Drawing2D.DrawRect(new Rect(mRectangleX, mRectangleY, mRectangleWidth, mRectangleHeight)); Drawing2D.DrawText("Other", mRectangleX + 5, mRectangleY + 5, 18, Color.white, mBitmapFont); float x = 15 - mSampleWidth; float y = mRectangleY + 35; float height = mRectangleHeight - 55; // Bars Chart x += 50; Drawing2D.FillRect(new Rect((x += mSampleWidth + 20), y - 10, 15, 50), ToColor(36, 86, 188), CustomTexture3DVertical); Drawing2D.FillRect(new Rect(x + 15, y, 15, 40), ToColor(175, 217, 141), CustomTexture3DVertical); Drawing2D.FillRect(new Rect(x + 30, y + 20, 15, 20), ToColor(255, 112, 92), CustomTexture3DVertical); Drawing2D.FillRect(new Rect(x + 45, y - 5, 15, 45), ToColor(93, 166, 221), CustomTexture3DVertical); // Progress Bar (circle) float radius = mRectangleHeight - 60; y += 5; x -= 100; Drawing2D.DrawArc(new Vector2((x += mSampleWidth) + ((mSampleWidth / 2) - radius), y), radius * 1.5f, 32, 270, 270, ToColor(21, 179, 89), 8f, CustomTextureLines); Drawing2D.FillCircle(new Vector2((x) + ((mSampleWidth / 2) - radius), y), radius * 1.45f, ToColor(21, 179, 89, 128)); Drawing2D.DrawText("75%", (x) + ((mSampleWidth / 2) - radius - 15), y - 9, 18, Color.white, mBitmapFont); y -= 5; // Progress Bar x += 30; CustomTextureProgressBar.wrapMode = TextureWrapMode.Repeat; Drawing2D.DrawRect(new Rect(x += mSampleWidth, y, mSampleWidth - mSamplesMargin, height - 5), Color.white, 1f); Drawing2D.FillRect(new Rect(x, y + 1, mSampleWidth - mSamplesMargin - 20, height - 5 - 1), ToColor(255, 255, 255, 200), CustomTextureProgressBar, new Vector2(4, 1)); Drawing2D.DrawText("85%", (x) + ((mSampleWidth / 2) - 30), y + 1, 17, Color.white, mBitmapFont); //Drawing2D.DrawGUIText("85%", (x) + ((mSampleWidth / 2) - 30), y + 1, 17, Color.white); // X-Y Axis x += 60; Drawing2D.DrawArrow(new Vector2(x += mSampleWidth + 20, y + 35), new Vector2(x + 40, y + 35), ToColor(255, 112, 92), 4, 20, 25); Drawing2D.DrawText("X", x + 45, y + 15, 12, ToColor(255, 112, 92), mBitmapFont); Drawing2D.DrawArrow(new Vector2(x, y + 35), new Vector2(x, y - 5), ToColor(248, 222, 104), 4, 20, 25); Drawing2D.DrawText("Y", x + 10, y - 15, 12, ToColor(248, 222, 104), mBitmapFont); // Chart x -= 110; Drawing2D.DrawLine(new Vector2(x += mSampleWidth + 20, y + 35), new Vector2(x + 250, y + 35), ToColor(240, 240, 240), 2); // X Axis Drawing2D.DrawLine(new Vector2(x, y + 35), new Vector2(x, y - 25), ToColor(240, 240, 240), 2); // Y Axis Drawing2D.DrawLine(new Vector2(x, y + 20), new Vector2(x + 250, y + 20), ToColor(180, 180, 180, 128), 1); // 10 Axis Drawing2D.DrawLine(new Vector2(x, y + 5), new Vector2(x + 250, y + 5), ToColor(180, 180, 180, 128), 1); // 20 Axis Drawing2D.DrawLine(new Vector2(x, y - 10), new Vector2(x + 250, y - 10), ToColor(180, 180, 180, 128), 1); // 30 Axis Drawing2D.DrawLine(new Vector2(x, y - 25), new Vector2(x + 250, y - 25), ToColor(180, 180, 180, 128), 1); // 30 Axis Drawing2D.DrawText("Time", x + 220, y + 20, 11, ToColor(240, 240, 240), mBitmapFont); Drawing2D.DrawText("Value", x + 5, y - 25, 11, ToColor(240, 240, 240), mBitmapFont); Vector2[] vertices = new Vector2[12]; vertices[0] = new Vector2(x + 10, y + 30); vertices[1] = new Vector2(x + 30, y + 15); vertices[2] = new Vector2(x + 50, y + 20); vertices[3] = new Vector2(x + 70, y + 25); vertices[4] = new Vector2(x + 90, y + 15); vertices[5] = new Vector2(x + 110, y - 5); vertices[6] = new Vector2(x + 130, y - 15); vertices[7] = new Vector2(x + 150, y - 25); vertices[8] = new Vector2(x + 170, y - 5); vertices[9] = new Vector2(x + 190, y - 10); vertices[10] = new Vector2(x + 210, y - 15); vertices[11] = new Vector2(x + 230, y - 20); Drawing2D.DrawPolygon(vertices, ToColor(232, 62, 83), 4f, null, true); // Picture x += 110; Drawing2D.FillQuad(new Vector2((x += mSampleWidth) + 40, y + 5), 140, 64, Color.white, 8, CustomTexturePicture, null); Drawing2D.DrawQuad(new Vector2((x) + 40, y + 5), 140, 64, Color.white, 3, 8); x -= 20; Drawing2D.FillQuad(new Vector2((x += mSampleWidth) + 40, y + 5), 140, 64, Color.green, -6, CustomTexturePicture, null); Drawing2D.DrawQuad(new Vector2((x) + 40, y + 5), 140, 64, Color.white, 1, -6); }
public void FillCircle(Vector2 center, float radius, Color color) { Drawing2D.FillCircle(center, radius, color); }