コード例 #1
0
    private void SetJointRotation(Transform joint, AxisEnum axis, float fAU, float fMin, float fMax)
    {
        if (joint == null)
        {
            return;
        }

//		float fSign = 1.0f;
//		if(fMax < fMin)
//			fSign = -1.0f;

        // [-1, +1] -> [0, 1]
        //fAUnorm = (fAU + 1f) / 2f;
        float fValue = fMin + (fMax - fMin) * fAU;

        Vector3 jointRot = joint.localRotation.eulerAngles;

        switch (axis)
        {
        case AxisEnum.X:
            jointRot.x = fValue;
            break;

        case AxisEnum.Y:
            jointRot.y = fValue;
            break;

        case AxisEnum.Z:
            jointRot.z = fValue;
            break;
        }

        joint.localRotation = Quaternion.Euler(jointRot);
    }
コード例 #2
0
ファイル: MotionManager.cs プロジェクト: Gz1d/Gz
        public bool SetAxisPos(AxisEnum Axis, double Pos)
        {
            bool IsTrue = true;

            IsTrue = MyMotionBase.SetAixsPos(Axis, Pos);
            return(IsTrue);
        }
コード例 #3
0
    private float GetJointRotation(Transform joint, AxisEnum axis)
    {
        float fJointRot = 0.0f;

        if (joint == null)
        {
            return(fJointRot);
        }

        Vector3 jointRot = joint.localRotation.eulerAngles;

        switch (axis)
        {
        case AxisEnum.X:
            fJointRot = jointRot.x;
            break;

        case AxisEnum.Y:
            fJointRot = jointRot.y;
            break;

        case AxisEnum.Z:
            fJointRot = jointRot.z;
            break;
        }

        return(fJointRot);
    }
コード例 #4
0
 public AxisMapping(AxisEnum axis, float sensitivity, ActionEnum action, float minimumInput)
 {
     this.axis         = axis;
     this.sensitivity  = sensitivity;
     this.action       = action;
     this.minimumInput = minimumInput;
 }
コード例 #5
0
ファイル: MotionManager.cs プロジェクト: Gz1d/Gz
        public bool GetAxisPos(AxisEnum Axis, out double Pos)
        {
            Pos = 0;
            bool IsTrue = true;

            IsTrue = MyMotionBase.GetAxisPos(Axis, out Pos);
            return(IsTrue);
        }
コード例 #6
0
    /// <summary>
    /// Get a specified axis value
    /// </summary>
    public float GetAxisValue(AxisEnum axis, int controller = 0)
    {
        if (OnGetAxisValue != null)
        {
            return(OnGetAxisValue(axis, controller));
        }

        return(0.0f);
    }
コード例 #7
0
ファイル: Grid1D.cs プロジェクト: LitvinovVN/Elasticity
        /// <summary>
        /// Конструктор. Создаёт одномерную сетку с заданным по осям числом узлов
        /// </summary>
        /// <param name="gridSize">Размер расчетной области</param>
        /// <param name="numNodes">Количество узлов</param>
        public Grid1D(decimal gridSize, uint numNodes, AxisEnum axisEnum = AxisEnum.X)
        {
            AxisEnum = axisEnum;
            GridSize = gridSize;

            StepTransition st = new StepTransition(numNodes, gridSize / (numNodes - 1), gridSize);

            StepTransitions.Add(st);
        }
コード例 #8
0
ファイル: MotionBase.cs プロジェクト: Gz1d/Gz
        public virtual bool  SetAixsPos(AxisEnum Axis, double Pos)
        {
            LD.Common.PlcDevice PLCAxis = (LD.Common.PlcDevice)Enum.Parse(typeof(LD.Common.PlcDevice), Axis.ToString());
            double Pos0  = Pos * 1000.0;
            int    PosIn = (int)Pos0;

            LD.Logic.PlcHandle.Instance.WriteValue(PLCAxis, PosIn);
            return(true);
        }
コード例 #9
0
            void SetAxisOverride(bool use, AxisEnum value, Vector3 vector)
            {
                if (useAxisOverride || !use)
                {
                    return;
                }

                useAxisOverride    = true;
                axisOverride       = value;
                axisOverrideVector = vector;
            }
コード例 #10
0
ファイル: InputManager.cs プロジェクト: paulgeorges/dodgeball
    public AxisMap IsAxisDown(AxisEnum axisEnum)
    {
        foreach (AxisMap axisMap in axisMaps)
        {
            if (Input.GetButton(axisMap [axisEnum]))
            {
                return(axisMap);
            }
        }

        return(null);
    }
コード例 #11
0
ファイル: MotionBase.cs プロジェクト: Gz1d/Gz
        public virtual bool GetAxisPos(AxisEnum Axis, out double Pos)
        {
            Pos = 0;
            LD.Common.PlcDevice PLCAxis = (LD.Common.PlcDevice)Enum.Parse(typeof(LD.Common.PlcDevice), Axis.ToString());
            Object obj = LD.Logic.PlcHandle.Instance.ReadValue(PLCAxis);

            if (obj == null)
            {
                return(false);
            }
            double Pos0 = (int)obj;

            Pos = Pos0 / 1000.0;
            return(true);
        }
コード例 #12
0
ファイル: Grid2D.cs プロジェクト: LitvinovVN/Elasticity
        /// <summary>
        /// Конструктор. Создаёт одномерную сетку с заданным по осям числом узлов
        /// </summary>
        /// <param name="gridSize">Размер расчетной области</param>
        /// <param name="numNodes">Количество узлов</param>
        public Grid2D(decimal gridSize1, decimal gridSize2, uint numNodes1, uint numNodes2, AxisEnum axisEnum1 = AxisEnum.X, AxisEnum axisEnum2 = AxisEnum.Y)
        {
            AxisEnum1 = axisEnum1;
            AxisEnum2 = axisEnum2;
            GridSize1 = gridSize1;
            GridSize2 = gridSize2;

            StepTransition st1 = new StepTransition(numNodes1, gridSize1 / (numNodes1 - 1), gridSize1);

            StepTransitions1.Add(st1);

            StepTransition st2 = new StepTransition(numNodes2, gridSize2 / (numNodes2 - 1), gridSize2);

            StepTransitions1.Add(st2);
        }
コード例 #13
0
        /// <summary>
        /// Takes input on Horizontal and Verical (keyboard)
        /// Takes input on X and Y (mouse)
        /// Positions camera and sets target position based on these inputs.
        /// </summary>
        private void GetInput()
        {
            ///Keyboard Input
            float horizontal = Input.GetAxis("Horizontal");
            float vertical   = Input.GetAxis("Vertical");

            ///Multiply vector by rotation to move forward relative to where we are looking
            targetVector = gameObject.transform.rotation * new Vector3(targetVector.x + horizontal, 0, targetVector.z + vertical);

            ///Mouse Input
            float mouseX = Input.GetAxis("Mouse X");
            float mouseY = Input.GetAxis("Mouse Y");

            gameObject.transform.Rotate(0, mouseX, 0);
            AxisEnum xAxis = AxisEnum.x;

            cameraController.SetCameraRotation(xAxis, mouseY, CameraChoice);
        }
コード例 #14
0
    private void SetJointRotation(Transform joint, AxisEnum axis, float fAU, float fMin, float fMax)
    {
        if (joint == null)
        {
            return;
        }

        float fSign = 1.0f;

        if (fMax < fMin)
        {
            fSign = -1.0f;
        }

        // [-1, +1] -> [0, 1]
        //fAUnorm = (fAU + 1f) / 2f;
        float fValue = fMin + (fMax - fMin) * fAU;

        Vector3 jointRot = joint.localRotation.eulerAngles;

        switch (axis)
        {
        case AxisEnum.X:
            jointRot.x = fValue;
            break;

        case AxisEnum.Y:
            jointRot.y = fValue;
            break;

        case AxisEnum.Z:
            jointRot.z = fValue;
            break;
        }

        if (smoothFactor != 0f)
        {
            joint.localRotation = Quaternion.Slerp(joint.localRotation, Quaternion.Euler(jointRot), smoothFactor * Time.deltaTime);
        }
        else
        {
            joint.localRotation = Quaternion.Euler(jointRot);
        }
    }
コード例 #15
0
        /**
         * \brief Get the value of the requested axis, of a playerId to a certain frame.
         * This function can be overwritten to include more axis
         * \param axis Axis to retrieve
         * \param playerId Id of the player
         * \param frameNumber Frame number to get. Returns the current value by default
         * \return Value of the axis
         */
        public virtual float GetAxis(AxisEnum axis, int playerId, int frameNumber = -1)
        {
            if (playerId >= _playerInputList.Count)
            {
                return(0.0f);
            }

            frameNumber = CheckFrameNumber(frameNumber);
            switch (axis)
            {
            case AxisEnum.VERTICAL:
                return(_playerInputList[playerId].GetValue(frameNumber).GetVerticalAxis());

            case AxisEnum.HORIZONTAL:
                return(_playerInputList[playerId].GetValue(frameNumber).GetHorizontalAxis());
            }

            return(0.0f);
        }
コード例 #16
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="axis"></param>
        /// <param name="angleToChangeTo"></param>
        /// <param name="camera"></param>
        public void SetCameraRotation(AxisEnum axis, float angleToChangeTo, PlayerCameraEnum camera)
        {
            Camera cameraToChange = GetCameraFromEnum(camera);

            switch (axis)
            {
            case AxisEnum.x:
                cameraToChange.transform.Rotate(angleToChangeTo, 0, 0);
                break;

            case AxisEnum.y:
                cameraToChange.transform.Rotate(0, angleToChangeTo, 0);
                break;

            case AxisEnum.z:
                cameraToChange.transform.Rotate(0, 0, angleToChangeTo);
                break;
            }
        }
コード例 #17
0
    public void SetValues(Transform target, AxisEnum axis, Transform firstConstraint, Transform secondConstraint, Transform FixedPoint, Transform zPosition, Vector3 smoothingTime)
    {
        this.target = target;
        this.axis = axis;
        this.zPosition = zPosition.position.z;
        this.smoothingTime = smoothingTime;

        switch (axis) {
            case AxisEnum.Horizontal:
                this.firstConstraint = firstConstraint.position.x;
                this.secondConstraint = secondConstraint.position.x;
                this.fixedPoint = FixedPoint.position.y;
                break;
            case AxisEnum.Vertical:
                this.firstConstraint = firstConstraint.position.y;
                this.secondConstraint = secondConstraint.position.y;
                this.fixedPoint = FixedPoint.position.x;
                break;
        }
    }
コード例 #18
0
        public void GetStateUpdateMessageTest()
        {
            Random rndVal               = new Random();
            int    headerSize           = 2;
            EmuControllerInputState emu = new EmuControllerInputState();

            for (int i = 0; i < 100; i++)
            {
                AxisEnum ax1 = (AxisEnum)rndVal.Next(0, 8);

                ushort ax1Val = (ushort)rndVal.Next(0, 65536);

                int buttonIndex1 = rndVal.Next(0, 128);

                int dpad1 = rndVal.Next(0, 4);

                DPadDirectionEnum dpad1Val = (DPadDirectionEnum)rndVal.Next(-1, 8);

                emu.Axes.SetValue(ax1, ax1Val);

                emu.Buttons.SetValue(buttonIndex1, true);

                emu.DPads.SetValue(dpad1, dpad1Val);

                byte[] message = emu.GetStateUpdateMessage();

                int expectedMessageLen = 2 * sizeof(ushort) + sizeof(byte) + 6 + headerSize;

                Assert.IsTrue(message.Length == expectedMessageLen);
                Assert.IsTrue(message[1] == message.Length - headerSize);
                Assert.IsTrue(message[2] == (byte)UsageId.Axis);
                Assert.IsTrue(Utils.IsBitSet(message[3], (byte)ax1));
                Assert.IsTrue(BitConverter.ToUInt16(message, 4) == ax1Val);
                Assert.IsTrue(message[6] == (byte)UsageId.Button);
                Assert.IsTrue(Utils.IsBitSet(message[7], buttonIndex1 / 16));
                Assert.IsTrue(Utils.IsBitSet(BitConverter.ToUInt16(message, 8), buttonIndex1 % 16));
                Assert.IsTrue(message[10] == (byte)UsageId.DPad);
                Assert.IsTrue(Utils.IsBitSet(message[11], (byte)dpad1));
                Assert.IsTrue(message[12] == (byte)dpad1Val);
            }
        }
コード例 #19
0
        private void btnAxisNegMotionMouseDn_Click(object sender, MouseEventArgs e)
        {
            Button btn       = (Button)sender;
            int    axisIndex = 0;

            checkAxisTag(btn, out axisIndex);
            AxisEnum nowAxis = (AxisEnum)(axisIndex + (int)NowCoordi * 8);
            double   rltDis  = 0;

            if (!CheckRltTextValue(ref rltDis))
            {
                return;
            }
            double NowPos = 0;

            if (!MotionManager.Instance.GetAxisPos(nowAxis, out NowPos))
            {
                return;
            }
            AxisEnum NowAxisWrite = (AxisEnum)(axisIndex + (int)NowCoordi * 8 + 4);

            MotionManager.Instance.SetAxisPos(NowAxisWrite, NowPos - rltDis);
        }
コード例 #20
0
 public void SetAxisCamera(Transform target, AxisEnum axis, Transform firstConstraint, Transform secondConstraint, Transform fixedPoint, Transform zPosition, Vector3 smoothingTime)
 {
     axisCameraScript.SetValues(target, axis, firstConstraint, secondConstraint, fixedPoint, zPosition, smoothingTime);
     currentCamera = axisCameraScript;
 }
コード例 #21
0
    private void SetJointRotation(Transform joint, AxisEnum axis, float fAU, float fMin, float fMax)
    {
        if(joint == null)
            return;

        //		float fSign = 1.0f;
        //		if(fMax < fMin)
        //			fSign = -1.0f;

        // [-1, +1] -> [0, 1]
        //fAUnorm = (fAU + 1f) / 2f;
        float fValue = fMin + (fMax - fMin) * fAU;

        Vector3 jointRot = joint.localRotation.eulerAngles;

        switch(axis)
        {
            case AxisEnum.X:
                jointRot.x = fValue;
                break;

            case AxisEnum.Y:
                jointRot.y = fValue;
                break;

            case AxisEnum.Z:
                jointRot.z = fValue;
                break;
        }

        if(smoothFactor != 0f)
            joint.localRotation = Quaternion.Slerp(joint.localRotation, Quaternion.Euler(jointRot), smoothFactor * Time.deltaTime);
        else
            joint.localRotation = Quaternion.Euler(jointRot);
    }
コード例 #22
0
    private float GetJointRotation(Transform joint, AxisEnum axis)
    {
        float fJointRot = 0.0f;

        if(joint == null)
            return fJointRot;

        Vector3 jointRot = joint.localRotation.eulerAngles;

        switch(axis)
        {
            case AxisEnum.X:
                fJointRot = jointRot.x;
                break;

            case AxisEnum.Y:
                fJointRot = jointRot.y;
                break;

            case AxisEnum.Z:
                fJointRot = jointRot.z;
                break;
        }

        return fJointRot;
    }
コード例 #23
0
ファイル: Axes.cs プロジェクト: njz3/EmuController
 /// <summary>
 /// Set value for Axis with the specified index.
 /// </summary>
 /// <param name="axisType">Axis type</param>
 /// <param name="value">Axis value</param>
 public void SetValue(AxisEnum axisType, ushort value)
 {
     SetValue((int)axisType, value);
 }