Exemple #1
0
        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;
            }
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
    /// <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));
    }
Exemple #4
0
    /// <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);
    }
Exemple #5
0
 private void DrawVertex(Vertex v)
 {
     Drawing2D.FillCircle(v.position + DemoUtils.offset, DemoUtils.vertexSize, DemoUtils.vertexColor);
 }
Exemple #6
0
    /// <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);
    }
Exemple #7
0
 public void FillCircle(Vector2 center, float radius, Color color)
 {
     Drawing2D.FillCircle(center, radius, color);
 }