コード例 #1
0
ファイル: Knot.cs プロジェクト: UTMS-VR/DeformingKnot
        public Knot(
            ClosedCurve curve,
            OculusTouch oculusTouch,
            float distanceThreshold        = -1,
            List <Curve>?collisionCurves   = null,
            LogicalButton?buttonA          = null,
            LogicalButton?buttonB          = null,
            LogicalButton?buttonC          = null,
            LogicalButton?buttonD          = null,
            Material?curveMaterial         = null,
            Material?pullableCurveMaterial = null,
            Material?pointMaterial         = null
            )
        {
            buttonA = buttonA ?? LogicalOVRInput.RawButton.A;
            buttonB = buttonB ?? LogicalOVRInput.RawButton.B;
            buttonC = buttonC ?? LogicalOVRInput.RawButton.RIndexTrigger;
            buttonD = buttonD ?? LogicalOVRInput.RawButton.RHandTrigger;
            int count = curve.GetPoints().Count;

            (int first, int second)chosenPoints = (count / 3, 2 * count / 3);
            KnotData data = new KnotData(curve, chosenPoints, oculusTouch, distanceThreshold, collisionCurves,
                                         buttonA, buttonB, buttonC, buttonD, curveMaterial, pullableCurveMaterial, pointMaterial);

            this.state = new KnotStateBase(data);

            HandCurve.SetUp(oculusTouch, drawButton: buttonC, moveButton: buttonD);
        }
コード例 #2
0
ファイル: Knot.cs プロジェクト: shizuo-kaji/DeformingKnot
        public Knot(
            List <Vector3> points,
            OculusTouch oculusTouch,
            int meridian                   = 20,
            float radius                   = 0.1f,
            float distanceThreshold        = -1,
            List <Curve> collisionCurves   = null,
            LogicalButton buttonA          = null,
            LogicalButton buttonB          = null,
            LogicalButton buttonC          = null,
            LogicalButton buttonD          = null,
            Material curveMaterial         = null,
            Material pullableCurveMaterial = null,
            Material pointMaterial         = null
            )
        {
            buttonA = buttonA ?? LogicalOVRInput.RawButton.A;
            buttonB = buttonB ?? LogicalOVRInput.RawButton.B;
            buttonC = buttonC ?? LogicalOVRInput.RawButton.RIndexTrigger;
            buttonD = buttonD ?? LogicalOVRInput.RawButton.RHandTrigger;
            int count = points.Count;

            (int first, int second)chosenPoints = (count / 3, 2 * count / 3);
            KnotData data = new KnotData(points, chosenPoints, oculusTouch, radius, meridian, distanceThreshold, collisionCurves,
                                         buttonA, buttonB, buttonC, buttonD, curveMaterial, pullableCurveMaterial, pointMaterial);

            this.state = new KnotStateBase(data);

            Curve.SetUp(oculusTouch, drawButton: buttonC, moveButton: buttonD);
        }
コード例 #3
0
ファイル: Knot.cs プロジェクト: UTMS-VR/DeformingKnot
        public void Update()
        {
            IKnotState?newState = this.state.Update();

            if (newState != null)
            {
                Debug.Log($"Changed to {newState}");
                this.state = newState;
            }
        }