Esempio n. 1
0
        void Start()
        {
            linework = LW_Canvas.Create(new GameObject(), "ImpactRings", false);
            //linework = LW_Canvas.Create(gameObject, "ImpactRings", false);
            linework.blendMode        = BlendMode.AlphaBlend;
            linework.featureMode      = FeatureMode.Advanced;
            linework.strokeDrawMode   = StrokeDrawMode.Draw2D;
            linework.joinsAndCapsMode = JoinsAndCapsMode.Shader;
            linework.gradientsMode    = GradientsMode.Vertex;
            linework.antiAliasingMode = AntiAliasingMode.On;

            lineworkTransform          = linework.transform;
            lineworkTransform.position = new Vector3(0, 0.1f, 0);
            lineworkTransform.rotation = Quaternion.Euler(90, 0, 0);

            masterStroke = LW_Stroke.Create(Color.white, 0.05f);
            List <LW_ColorStop> colors = new List <LW_ColorStop>();

            for (int i = 0; i < colorArray.Length; i++)
            {
                colors.Add(new LW_ColorStop(colorArray[i], (float)i / (float)(colorArray.Length - 1)));
            }
            masterStroke.gradientColors = colors;
            masterStroke.paintMode      = PaintMode.RadialGradient;
            masterStroke.gradientUnits  = GradientUnits.userSpaceOnUse;
            masterStroke.presizeVBO     = 100;
        }
Esempio n. 2
0
    // Use this for initialization
    void Start()
    {
        canvas = LW_Canvas.Create(new GameObject(), "ImpactRings", false);
        //linework = LW_Canvas.Create(gameObject, "ImpactRings", false);
        canvas.blendMode        = BlendMode.AlphaBlend;
        canvas.featureMode      = FeatureMode.Advanced;
        canvas.strokeDrawMode   = StrokeDrawMode.Draw2D;
        canvas.joinsAndCapsMode = JoinsAndCapsMode.Shader;
        canvas.gradientsMode    = GradientsMode.Vertex;
        canvas.antiAliasingMode = AntiAliasingMode.On;

        masterStroke               = LW_Stroke.Create(Color.white, 0.05f);
        masterStroke.paintMode     = PaintMode.RadialGradient;
        masterStroke.gradientUnits = GradientUnits.userSpaceOnUse;
        masterStroke.presizeVBO    = 100;

        lines = new LW_Polyline3D[1000];
        LW_Stroke stroke = LW_Stroke.Create(Color.white, 1f);

        stroke.linejoin = Linejoin.Break;
        canvas.graphic.styles.Add(stroke);

        linePoints = new Vector3[lines.Length][];
        for (int i = 0; i < lines.Length; i++)
        {
            linePoints[i] = new Vector3[2];
            lines[i]      = LW_Polyline3D.Create(linePoints[i], false);
            canvas.graphic.Add(lines[i]);
        }
    }
        private LW_Canvas CreateControlPointLine(int pointIndex, int handleIndex)
        {
            LW_Point2D point = points[pointIndex];
            Vector3    start = (vectorCanvas.transform.localToWorldMatrix * vectorCanvas.scaler).MultiplyPoint3x4(point.position);
            Vector3    end   = start;

            if (handleIndex < 0)
            {
                end += (vectorCanvas.scaler).MultiplyVector(point.handleIn);
            }
            else if (handleIndex > 0)
            {
                end += (vectorCanvas.scaler).MultiplyVector(point.handleOut);
            }
            LW_Canvas canvas = LW_Canvas.Create(vectorCanvas.gameObject, "ControlLine");
            LW_Line   line   = LW_Line.Create(start, end);
            LW_Stroke stroke = LW_Stroke.Create(Color.red, 2f);

            line.styles.Add(stroke);
            canvas.graphic.Add(line);

            canvas.featureMode      = FeatureMode.Advanced;
            canvas.joinsAndCapsMode = JoinsAndCapsMode.Shader;
            canvas.gradientsMode    = GradientsMode.Shader;
            canvas.antiAliasingMode = AntiAliasingMode.On;

            canvas.transform.position = Vector3.zero;

            //canvas.SetViewBoxToBounds();
            canvas.SetRectSizeToViewBox();
            //canvas.transform.position = start;

            return(canvas);
        }
Esempio n. 4
0
    public void setProps(PCLSkeleton skel, Transform lookAtTarget, string text, float time, int jointIndex, Vector3 dir, float fontSize, float posSmooth, float circleSize)
    {
        this.skel         = skel;
        this.lookAtTarget = lookAtTarget;
        this.jointIndex   = jointIndex;
        this.text         = text;
        this.posSmooth    = posSmooth;

        Invoke("kill", time);

        // Create the LineWorks Components and Scriptable Objects.
        linework = GetComponent <LW_Canvas>();
        linework.segmentation     = 20;
        linework.featureMode      = FeatureMode.Advanced;
        linework.strokeDrawMode   = StrokeDrawMode.Draw3D;
        linework.joinsAndCapsMode = JoinsAndCapsMode.Shader;

        circle                = LW_Circle.Create(Vector2.zero, .15f / transform.localScale.x);
        circleStroke          = LW_Stroke.Create(Color.white, .2f);
        circleStroke.linejoin = Linejoin.Round;
        circle.styles.Add(circleStroke);
        linework.graphic.Add(circle);

        Vector3[] points = new Vector3[3];
        points[0]  = Vector3.zero;
        points[1]  = Vector3.Scale(Vector3.one, dir) / transform.localScale.x;
        points[2]  = points[1] + (Vector3.right * dir.x * lineSizeFactor) / transform.localScale.x;
        line       = LW_Polyline3D.Create(points);
        lineStroke = LW_Stroke.Create(Color.white, .2f);
        line.styles.Add(lineStroke);
        linework.graphic.Add(line);
        line.isVisible = false;

        tm.transform.localPosition = points[2];
        tm.anchor        = dir.x > 0 ? TextAnchor.LowerRight : TextAnchor.LowerLeft;
        tm.alignment     = dir.x > 0 ? TextAlignment.Right : TextAlignment.Left;
        tm.characterSize = fontSize / 100;
        text             = "Super cool dis-donc";

        seq = DOTween.Sequence();
        //seq.Pause();
        //blink circle
        seq.AppendCallback(() => blinkShape(circle, .5f)).AppendInterval(.3f);
        // reduce circle
        seq.AppendCallback(() => reduceCircle(circleSize / transform.localScale.x)).AppendInterval(.2f);
        //reveal line
        seq.AppendCallback(() => blinkShape(line, .5f)).AppendInterval(.3f);
        seq.AppendCallback(() => revealText(1));

        if (skel != null)
        {
            transform.position = skel.joints[jointIndex];
        }
        transform.LookAt(lookAtTarget.position);
    }
Esempio n. 5
0
        void CreateRing(Vector3 point)
        {
            if (linework != null)
            {
                LW_Circle circle = LW_Circle.Create(point, 0.01f);
                LW_Stroke stroke = masterStroke.Copy() as LW_Stroke;
                stroke.gradientStart = point;
                stroke.gradientEnd   = point + Vector3.right * ringMaxRadius;
                linework.graphic.Add(circle);
                circle.styles.Add(stroke);

                StartCoroutine(DrawRing(circle, stroke));
            }
        }
        private LW_Canvas CreateControlPointDot(int pointIndex, int handleIndex)
        {
            LW_Point2D point    = points[pointIndex];
            Vector3    position = (vectorCanvas.transform.localToWorldMatrix * vectorCanvas.scaler).MultiplyPoint3x4(point.position);
            float      radius   = 6f;
            Color      color    = Color.white;

            if (handleIndex < 0)
            {
                position += (vectorCanvas.scaler).MultiplyVector(point.handleIn);
                radius    = 4f;
                color     = Color.gray;
            }
            else if (handleIndex > 0)
            {
                position += (vectorCanvas.scaler).MultiplyVector(point.handleOut);
                radius    = 4f;
                color     = Color.gray;
            }
            //GameObject controlPointGO = new GameObject("ControlPoint " + pointIndex + " : " + handleIndex);
            //controlPointGO.transform.SetParent(vectorCanvas.transform);

            LW_Canvas canvas = LW_Canvas.Create(vectorCanvas.gameObject, "ControlPoint");
            LW_Circle circle = LW_Circle.Create(Vector3.zero, radius);
            LW_Fill   fill   = LW_Fill.Create(color);
            LW_Stroke stroke = LW_Stroke.Create(Color.black, 2f);

            circle.styles.Add(fill);
            circle.styles.Add(stroke);
            canvas.graphic.Add(circle);

            canvas.featureMode      = FeatureMode.Advanced;
            canvas.joinsAndCapsMode = JoinsAndCapsMode.Shader;
            canvas.gradientsMode    = GradientsMode.Shader;
            canvas.antiAliasingMode = AntiAliasingMode.On;

            canvas.transform.position = position;

            canvas.viewBox = new Rect(0, 0, 32, 32);
            canvas.SetRectSizeToViewBox();

            ControlPointHandler cpHandler = canvas.gameObject.AddComponent <ControlPointHandler>();

            cpHandler.tentacle    = this;
            cpHandler.pointIndex  = pointIndex;
            cpHandler.handleIndex = handleIndex;
            cpHandler.fillStyle   = fill;

            return(canvas);
        }
Esempio n. 7
0
    void Start()
    {
        stroke        = LW_Stroke.Create(Color.red, 1.0f);
        strokeOutline = LW_Stroke.Create(Color.red, 1.4f);
        //testLine = LW_Stroke.Create (Color.magenta, 1.0f);
        chordShapeLine        = LW_Polyline3D.Create(new Vector2[0], false);
        chordShapeLineOutline = LW_Polyline3D.Create(new Vector2[0], false);


        //stroke.verticalOffset = 0.1f;
        // Adjust the segmenetation to get a smoother looking line.
        linework.segmentation = 20;
        // If you want to use any of the advanced shader features you have to set featureMode to Advanced.
        linework.featureMode = FeatureMode.Advanced;
        // If you would like the stroke to be 3D. ie. always face the camera.
        linework.strokeDrawMode = StrokeDrawMode.Draw2D;
        // If you would like to have the shader provide anti-aliasing
        linework.antiAliasingMode = AntiAliasingMode.On;
        // It is recommended for 3D lines to use the 'Round' Linejoin.
        linework.joinsAndCapsMode = JoinsAndCapsMode.Shader;
        stroke.linejoin           = Linejoin.Round;
        stroke.linecap            = Linecap.Round;
        strokeOutline.linejoin    = Linejoin.Round;
        strokeOutline.linecap     = Linecap.Round;
        //testLine.linejoin = Linejoin.Round;
        //testLine.linecap = Linecap.Round;
        stroke.opacity        = 0.6f;
        strokeOutline.opacity = 0.8f;

        for (int i = 0; i < 15; i++)           // creating a chordshape for each of the 5 CAGED shapes
        {
            chordShapeLines[i] = LW_Polyline3D.Create(new Vector2[0], false);
            chordShapeLines[i].styles.Add(stroke);

            chordShapeOutlines[i] = LW_Polyline3D.Create(new Vector2[0], false);
            chordShapeOutlines[i].styles.Add(strokeOutline);

            linework.graphic.Add(chordShapeOutlines [i]);
            linework.graphic.Add(chordShapeLines [i]);
        }



//			chordShapeLine.styles.Add (testLine);
//			chordShapeLineOutline.styles.Add (strokeOutline);
//
//			linework.graphic.Add (chordShapeLine);
//
//			linework.graphic.Add (chordShapeLineOutline);
    }
        IEnumerator Start()
        {
            yield return(null);    //new WaitForSeconds(0.1f);

            if (vectorCanvas == null)
            {
                vectorCanvas = GetComponent <LW_Canvas>();
            }

            path   = vectorCanvas.graphic[0] as LW_Path2D;
            points = path.points;

            tentacleStyle   = path.styles[0] as LW_Stroke;
            suctionCupStyle = path.styles[1] as LW_Marker;
            spotStyle1      = path.styles[2] as LW_Marker;
            spotStyle2      = path.styles[3] as LW_Marker;
            spotStyle3      = path.styles[4] as LW_Marker;

            orgTentacleWidth     = tentacleStyle.globalWidth;
            orgSizeOfSuctionCups = suctionCupStyle.scale;
            orgNumOfSuctionCups  = suctionCupStyle.numberOfMarkers;
            orgNumOfSpots1       = spotStyle1.numberOfMarkers;
            orgNumOfSpots2       = spotStyle2.numberOfMarkers;
            orgNumOfSpots3       = spotStyle3.numberOfMarkers;

            controlPoints = new List <ControlPoint>();

            for (int i = 0; i < points.Count; i++)
            {
                ControlPoint controlPoint = new ControlPoint();

                LW_Point2D point = points[i];
                if (point.hasHandleIn)
                {
                    controlPoint.handleInLine = CreateControlPointLine(i, -1);
                    controlPoint.handleInDot  = CreateControlPointDot(i, -1);
                }
                if (point.hasHandleOut)
                {
                    controlPoint.handleOutLine = CreateControlPointLine(i, 1);
                    controlPoint.handleOutDot  = CreateControlPointDot(i, 1);
                }
                controlPoint.positionDot = CreateControlPointDot(i, 0);

                controlPoints.Add(controlPoint);
            }
        }
Esempio n. 9
0
        IEnumerator DrawRing(LW_Circle circle, LW_Stroke stroke)
        {
            float minRadius = circle.radius;
            float maxRadius = ringMaxRadius;
            float lifeSpan  = 0;

            while (lifeSpan < ringLifeSpan)
            {
                float t = lifeSpan / ringLifeSpan;
                circle.radius = Mathf.Lerp(minRadius, maxRadius, t);
                lifeSpan     += Time.deltaTime;
                yield return(null);
            }
            if (linework != null)
            {
                linework.graphic.Remove(circle);
            }
        }
Esempio n. 10
0
        void Start()
        {
            spawnPoint = transform.position;
            Vector3[] points = new Vector3[0];
            for (int i = 0; i < points.Length; i++)
            {
                points[i] = spawnPoint;
            }

            linework                  = LW_Canvas.Create(gameObject, "BallLauncher", false);
            linework.blendMode        = BlendMode.AlphaBlend;
            linework.featureMode      = FeatureMode.Advanced;
            linework.strokeDrawMode   = StrokeDrawMode.Draw3D;
            linework.joinsAndCapsMode = JoinsAndCapsMode.Shader;
            linework.gradientsMode    = GradientsMode.Vertex;
            linework.antiAliasingMode = AntiAliasingMode.On;

            LW_Stroke           stroke = LW_Stroke.Create(Color.white, 1);
            List <LW_WidthStop> widths = new List <LW_WidthStop>();

            widths.Add(new LW_WidthStop(0.1f, 0f));
            widths.Add(new LW_WidthStop(0.0f, 1f));

            stroke.widths     = widths;
            stroke.paintMode  = PaintMode.LinearGradient;
            stroke.presizeVBO = 100;
            List <LW_ColorStop> colors = new List <LW_ColorStop>();

            for (int i = 0; i < colorArray.Length; i++)
            {
                colors.Add(new LW_ColorStop(colorArray[i], (float)i / (float)(colorArray.Length - 1)));
            }
            stroke.gradientColors = colors;
            stroke.linecap        = Linecap.Round;
            stroke.linejoin       = Linejoin.Round;

            linework.graphic.styles.Add(stroke);

            sqrMinMove = deltaMinMove * deltaMinMove;

            m_BallPool = new Stack <GameObject>();
            timer      = launchFrequency;
        }
Esempio n. 11
0
        void Start()
        {
            vectorCanvas                  = LW_Canvas.Create(gameObject, "Drawing", true);
            vectorCanvas.featureMode      = FeatureMode.Advanced;
            vectorCanvas.strokeDrawMode   = StrokeDrawMode.Draw2D;
            vectorCanvas.joinsAndCapsMode = JoinsAndCapsMode.Shader;
            vectorCanvas.gradientsMode    = GradientsMode.Vertex;
            vectorCanvas.antiAliasingMode = AntiAliasingMode.On;

            LW_Stroke stroke = LW_Stroke.Create(Color.red, 8);

            stroke.linecap    = Linecap.Round;
            stroke.linejoin   = Linejoin.Round;
            stroke.presizeVBO = 5000;

            vectorCanvas.graphic.styles.Add(stroke);

            sqrMinMove = deltaMinMove * deltaMinMove;
        }
Esempio n. 12
0
        void Start()
        {
            vectorCanvas                  = LW_Canvas.Create(null, "BallOfLines", false);
            vectorCanvas.blendMode        = BlendMode.AdditiveSoft;
            vectorCanvas.featureMode      = FeatureMode.Advanced;
            vectorCanvas.strokeDrawMode   = StrokeDrawMode.Draw3D;
            vectorCanvas.joinsAndCapsMode = JoinsAndCapsMode.Vertex;
            vectorCanvas.gradientsMode    = GradientsMode.Vertex;
            vectorCanvas.antiAliasingMode = AntiAliasingMode.Off;
            vectorCanvas.mainTexture      = texture;

            LW_Stroke stroke = LW_Stroke.Create(Color.white, 1f);

            stroke.linejoin = Linejoin.Break;

            vectorCanvas.graphic.styles.Add(stroke);
            lines = LW_Polyline3D.Create(new Vector3[0], false);
            vectorCanvas.graphic.Add(lines);

            SetWidth(width);
            SetColor(color);
            SetPoints(numberOfPoints);
            MakeLine(numberOfPoints);
        }