Exemple #1
0
        public virtual void SetScrollerElementLocalPosOnAxis(float localPosOnAxis, int dimension)
        {
            Vector2 newScrollerElementLocalPos = thisScrollerElement.GetLocalPosition();

            newScrollerElementLocalPos[dimension] = localPosOnAxis;
            thisScrollerElement.SetLocalPosition(newScrollerElementLocalPos);
        }
Exemple #2
0
    string GetCursorOffsetString()
    {
        IUIElementGroupScroller uieGroupScroller = (IUIElementGroupScroller)uieGroupScrollerAdaptor.GetUIElement();

        if (uieGroupScroller != null)
        {
            IUIElement scrollerElement = uieGroupScroller.GetScrollerElement();
            Vector2    offset          = new Vector2();
            for (int i = 0; i < 2; i++)
            {
                float cursorOffset = uieGroupScroller.GetElementCursorOffsetInPixel(
                    scrollerElement.GetLocalPosition()[i],
                    i
                    );
                offset[i] = cursorOffset;
            }
            string result = "Cursored Offset: ( " +
                            offset.x +
                            ", " +
                            offset.y +
                            " )";
            return(result);
        }
        return("");
    }
    public void UpadateProcess_Demo(float initDeltaPosOnAxis, float deceleration, int dimension, Vector2 elementInitLocalPos)
    {
        IInertialScrollProcessConstArg arg = CreateMockConstArg();

        arg.processManager.GetInertialScrollDeceleration().Returns(deceleration);
        arg.initialVelocity.Returns(initDeltaPosOnAxis);
        arg.dimension.Returns(dimension);
        IUIElement scrollerElement = Substitute.For <IUIElement>();

        scrollerElement.GetLocalPosition().Returns(elementInitLocalPos);
        arg.scrollerElement.Returns(scrollerElement);
        TestInertialScrollProcess process = new TestInertialScrollProcess(arg);

        bool done = false;

        DebugHelper.PrintInRed("initVel: " + initDeltaPosOnAxis.ToString() + ", deceleration: " + deceleration.ToString());
        float   deltaT   = .1f;
        Vector2 localPos = elementInitLocalPos;

        scrollerElement.SetLocalPosition(Arg.Do <Vector2>(x => localPos = x));
        while (!done)
        {
            process.UpdateProcess(deltaT);

            Debug.Log("elementLocalPos: " + localPos.ToString() + ", velocity: " + process.thisPrevVelocity_Test.ToString());
            if (process.thisElapsedTime_Test >= process.thisExpireTime_Test)
            {
                done = true;
            }
        }
    }
Exemple #4
0
        public ScrollerElementSnapProcess(
            IConstArg arg
            ) : base(
                arg
                )
        {
            IUIElement scrollerElement = arg.scrollerElement;
            int        dimension       = arg.dimension;
            float      targetElementLocalPositionOnAxis = arg.targetElementLocalPositionOnAxis;
            float      initialVelOnAxis = arg.initialVelocityOnAxis;

            float initialElementLocalPosOnAxis = scrollerElement.GetLocalPosition()[dimension];

            thisTargetElementLocalPositionOnAxis = targetElementLocalPositionOnAxis;

            float springCoefficient = 10f;

            thisSpringCalculator = new RealTimeCriticallyDampedSpringCalculator(initialElementLocalPosOnAxis, targetElementLocalPositionOnAxis, initialVelOnAxis, springCoefficient);

            prevLocalPosOnAxis = scrollerElement.GetLocalPosition()[dimension];
            thisInitVel        = initialVelOnAxis;
        }
Exemple #5
0
    public void UpdateProcess_Demo(Vector2 initialLocalPos, float targetLocalPosOnAxis, float initialVelOnAxis, int dimension, float diffThreshold, float stopVelocity)
    {
        IScrollerElementSnapProcessConstArg arg = CreateMockConstArg();
        IUIElement scrollerElement = Substitute.For <IUIElement>();

        arg.scrollerElement.Returns(scrollerElement);
        scrollerElement.GetLocalPosition().Returns(initialLocalPos);
        arg.dimension.Returns(dimension);
        arg.targetElementLocalPositionOnAxis.Returns(targetLocalPosOnAxis);
        arg.processManager.GetScrollerElementSnapSpringCoefficient().Returns(5f);
        arg.initialVelocityOnAxis.Returns(initialVelOnAxis);
        arg.stopVelocity.Returns(stopVelocity);
        TestScrollerElementSnapProcess process = new TestScrollerElementSnapProcess(arg);

        float   deltaT         = .02f;
        bool    done           = false;
        Vector2 passedLocalPos = Vector2.zero;

        scrollerElement.SetLocalPosition(Arg.Do <Vector2>(x => passedLocalPos = x));

        float prevLocalPosOnAxis = initialLocalPos[dimension];

        DKUtility.DebugHelper.PrintInRed("initPos: " + initialLocalPos.ToString() + ", targetPosOnAxis: " + targetLocalPosOnAxis.ToString() + ", initVel: " + initialVelOnAxis.ToString() + ", dimension: " + dimension.ToString());

        float delta;

        while (!done)
        {
            process.UpdateProcess(deltaT);
            delta = Mathf.Abs(passedLocalPos[dimension] - prevLocalPosOnAxis) / deltaT;
            Debug.Log("scrollerElementLocalPos: " + passedLocalPos.ToString() + ", delta: " + delta.ToString());

            if (delta <= stopVelocity)
            {
                done = true;
            }

            prevLocalPosOnAxis = passedLocalPos[dimension];
        }
    }
Exemple #6
0
        protected float GetNormalizedCursoredPositionFromGroupElementToCursor(IUIElement groupElement, int dimension)
        {
            float groupElementLocalPositionOnAxis = groupElement.GetLocalPosition()[dimension];

            return(GetNormalizedCursoredPositionFromPosInElementSpace(groupElementLocalPositionOnAxis - thisPadding[dimension], dimension));
        }