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; } }
// Other than method name, DrawBezierLine is unchanged from Linusmartensson's original implementation. public static void DrawBezierLine(Vector2 start, Vector2 startTangent, Vector2 end, Vector2 endTangent, Color color, float width, bool antiAlias, int segments) { Vector2 lastV = CubeBezier(start, startTangent, end, endTangent, 0); for (int i = 1; i < segments; ++i) { Vector2 v = CubeBezier(start, startTangent, end, endTangent, i / (float)segments); Drawing2D.DrawLine(lastV, v, color, width, antiAlias); lastV = v; } }
private void DrawBodyOutline(Body body) { for (var i = 0; i < body.vertices.Length - 1; ++i) { var v0 = body.vertices[i]; var v1 = body.vertices[i + 1]; Drawing2D.DrawLine(v0.position + DemoUtils.offset, v1.position + DemoUtils.offset, DemoUtils.constraintColor); } Drawing2D.DrawLine(body.vertices[body.vertices.Length - 1].position + DemoUtils.offset, body.vertices[0].position + DemoUtils.offset, DemoUtils.constraintColor); }
public override void DrawDragConstraint() { if (model.draggedVertex != null) { if (model.draggedBody == null) { Drawing2D.DrawLine(model.draggedVertex.position + DemoUtils.offset, model.dragPosition + DemoUtils.offset, DemoUtils.dragConstraintColor); } Drawing2D.DrawCircle(model.draggedVertex.position + DemoUtils.offset, DemoUtils.pinSize, 8, DemoUtils.dragConstraintColor); } }
void OnGUI() { if (Status == ST_SELECTION) { // если выполняется выделение, рисуем рамку выделения (селектор) Vector2 pointA = new Vector2(Selector.x, Selector.y); Vector2 pointB = Input.mousePosition; pointB.y = Screen.height - pointB.y; Vector2 pointC = new Vector2(pointB.x, Selector.y); Vector2 pointD = new Vector2(Selector.x, pointB.y); Drawing2D.DrawLine(pointA, pointC, Color.blue, 1.0f, false); Drawing2D.DrawLine(pointC, pointB, Color.blue, 1.0f, false); Drawing2D.DrawLine(pointB, pointD, Color.blue, 1.0f, false); Drawing2D.DrawLine(pointD, pointA, Color.blue, 1.0f, false); } }
/// <summary> /// Lines example /// </summary> private void DrawLines() { Drawing2D.DrawRect(new Rect(mRectangleX, mRectangleY, mRectangleWidth, mRectangleHeight)); Drawing2D.DrawText("Lines & Arrows", mRectangleX + 5, mRectangleY + 5, 18, Color.white, mBitmapFont); float x = 15 - mSampleWidth; float y = 60; Drawing2D.DrawLine(new Vector2(x += mSampleWidth, y), new Vector2(x + mSampleWidth - mSamplesMargin, y), ToColor(36, 86, 188), 4f); Drawing2D.DrawLine(new Vector2(x += mSampleWidth, y), new Vector2(x + mSampleWidth - mSamplesMargin, y), ToColor(93, 166, 221), 8f); Drawing2D.DrawLine(new Vector2(x += mSampleWidth, y), new Vector2(x + mSampleWidth - mSamplesMargin, y), ToColor(21, 179, 89), 16f, CustomTexture3D); Drawing2D.DrawDashedLine(new Vector2(x += mSampleWidth, y), new Vector2(x + mSampleWidth - mSamplesMargin, y), ToColor(175, 217, 141), 4f, 3); Drawing2D.DrawDashedLine(new Vector2(x += mSampleWidth, y), new Vector2(x + mSampleWidth - mSamplesMargin, y), ToColor(248, 222, 104), 8f, 3); Drawing2D.DrawDashedLine(new Vector2(x += mSampleWidth, y), new Vector2(x + mSampleWidth - mSamplesMargin, y), ToColor(255, 196, 126), 16f, 3); Drawing2D.DrawArrow(new Vector2(x += mSampleWidth, y + 10), new Vector2(x + mSampleWidth - mSamplesMargin - 25, y - 10), ToColor(255, 112, 92), 4, 20, 25); Drawing2D.DrawDashedArrow(new Vector2(x += mSampleWidth, y - 10), new Vector2(x + mSampleWidth - mSamplesMargin - 25, y + 10), ToColor(232, 62, 83), 4, 20, 25, 3); }
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> /// /// </summary> private void DrawChart() { // Draw main axis Drawing2D.DrawLine(new Vector2(mChartX, mChartY + mChartHeight), new Vector2(mChartX + mChartWidth, mChartY + mChartHeight), ToColor(240, 240, 240), 2); // X Axis Drawing2D.DrawLine(new Vector2(mChartX, mChartY + mChartHeight), new Vector2(mChartX, mChartY - 25), ToColor(240, 240, 240), 2); // Y Axis // Draw guide horizontal lines Drawing2D.DrawLine(new Vector2(mChartX, mChartY + 65), new Vector2(mChartX + mChartWidth, mChartY + 65), ToColor(180, 180, 180, 128), 1); Drawing2D.DrawLine(new Vector2(mChartX, mChartY + 50), new Vector2(mChartX + mChartWidth, mChartY + 50), ToColor(180, 180, 180, 128), 1); Drawing2D.DrawLine(new Vector2(mChartX, mChartY + 35), new Vector2(mChartX + mChartWidth, mChartY + 35), ToColor(180, 180, 180, 128), 1); Drawing2D.DrawLine(new Vector2(mChartX, mChartY + 20), new Vector2(mChartX + mChartWidth, mChartY + 20), ToColor(180, 180, 180, 128), 1); Drawing2D.DrawLine(new Vector2(mChartX, mChartY + 5), new Vector2(mChartX + mChartWidth, mChartY + 5), ToColor(180, 180, 180, 128), 1); Drawing2D.DrawLine(new Vector2(mChartX, mChartY - 10), new Vector2(mChartX + mChartWidth, mChartY - 10), ToColor(180, 180, 180, 128), 1); Drawing2D.DrawLine(new Vector2(mChartX, mChartY - 25), new Vector2(mChartX + mChartWidth, mChartY - 25), ToColor(180, 180, 180, 128), 1); Drawing2D.DrawText("Time", mChartX + mChartWidth, mChartY + mChartHeight - 10, 11, ToColor(240, 240, 240), mBitmapFont); Drawing2D.DrawText("Value", mChartX + 5, mChartY - 25, 11, ToColor(240, 240, 240), mBitmapFont); // Draw Series DrawSeries(mChartValuesRed, ToColor(232, 62, 83)); DrawSeries(mChartValuesYellow, ToColor(248, 222, 104)); }
/// <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 DrawLine(Vector2 pointA, Vector2 pointB, Color color) { Drawing2D.DrawLine(pointA, pointB, color); }