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); }
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); }