/// <summary> /// Find ALL the GUI stuff needed for the sensor GUI to work /// </summary> private void FindElements() { tabStateMachine = Auxiliary.FindGameObject("Tabs").GetComponent <StateMachine>(); canvas = GameObject.Find("Canvas"); sensorManager = GameObject.Find("SensorManager").GetComponent <SensorManager>(); dynamicCamera = GameObject.Find("Main Camera").GetComponent <DynamicCamera>(); toolkit = GetComponent <Toolkit>(); //For Sensor position and attachment configuration configureSensorPanel = Auxiliary.FindObject(canvas, "SensorConfigurationPanel"); sensorConfigHeader = Auxiliary.FindObject(configureSensorPanel, "SensorConfigHeader"); //For Sensor angle configuration sensorAnglePanel = Auxiliary.FindObject(canvas, "SensorAnglePanel"); xAngleEntry = Auxiliary.FindObject(sensorAnglePanel, "xAngleEntry"); yAngleEntry = Auxiliary.FindObject(sensorAnglePanel, "yAngleEntry"); zAngleEntry = Auxiliary.FindObject(sensorAnglePanel, "zAngleEntry"); //For range configuration sensorRangePanel = Auxiliary.FindObject(canvas, "RangePanel"); RangeEntry = Auxiliary.FindObject(sensorRangePanel, "RangeEntry"); sensorOutputPanel = Auxiliary.FindObject(canvas, "SensorOutputBorder"); robotCameraGUI = GetComponent <RobotCameraGUI>(); }
/// <summary> /// Start the sensor configuration /// </summary> public void StartConfiguration() { if (configureSensorPanel.activeSelf) { configureSensorPanel.SetActive(false); } if (currentSensor.sensorType.Equals("Gyro")) { configureSensorPanel = Auxiliary.FindObject(canvas, "GyroConfigurationPanel"); sensorConfigHeader = Auxiliary.FindObject(configureSensorPanel, "SensorConfigHeader"); } else if (configureSensorPanel.name.Equals("GyroConfigurationPanel")) { configureSensorPanel = Auxiliary.FindObject(canvas, "SensorConfigurationPanel"); sensorConfigHeader = Auxiliary.FindObject(configureSensorPanel, "SensorConfigHeader"); } HideInvisibleSensors(); currentSensor.ChangeVisibility(true); SyncHideSensorButton(); configureSensorPanel.SetActive(true); sensorConfigHeader.GetComponentInChildren <Text>().text = currentSensor.name; if (preConfigState == null) { preConfigState = UnityEngine.Camera.main.transform.GetComponent <DynamicCamera>().ActiveState; } dynamicCamera.SwitchCameraState(new DynamicCamera.ConfigurationState(dynamicCamera, currentSensor.gameObject)); }
///// <summary> ///// 构造函数,自定义椭球 ///// </summary> ///// <param name="a">椭球元素a</param> ///// <param name="b">椭球元素b</param> // public CoordinateTrans(double a, double b) //{ // ep = new Ellipsoid(a, b); //} /// <summary> /// 大地到子午面坐标系 /// </summary> /// <param name="B">大地纬度</param> /// <returns></returns> public _2D_Point B2Xy(double B) { double x = ep.data.a * Math.Cos(B) / Auxiliary.GetW(ep.data.e_2, B), y = ep.data.a / Auxiliary.GetV(ep.data.e2_2, B) * Math.Sin(B); return(new _2D_Point(x, y)); }
// Use this for initialization private void Start() { canvas = GameObject.Find("Canvas"); sensorManagerGUI = GetComponent <SensorManagerGUI>(); //Ruler Objects rulerStartPoint = GameObject.Find("RulerStartPoint"); rulerEndPoint = GameObject.Find("RulerEndPoint"); rulerWindow = Auxiliary.FindObject(canvas, "RulerPanel"); rulerText = Auxiliary.FindObject(canvas, "RulerText").GetComponent <Text>(); rulerXText = Auxiliary.FindObject(canvas, "RulerXAxisText").GetComponent <Text>(); rulerYText = Auxiliary.FindObject(canvas, "RulerYAxisText").GetComponent <Text>(); rulerZText = Auxiliary.FindObject(canvas, "RulerZAxisText").GetComponent <Text>(); //Stopwatch Objects stopwatchWindow = Auxiliary.FindObject(canvas, "StopwatchPanel"); stopwatchText = Auxiliary.FindObject(canvas, "StopwatchText").GetComponent <Text>(); stopwatchStartButtonText = Auxiliary.FindObject(canvas, "StopwatchStartText").GetComponent <Text>(); //Stats Objects statsWindow = Auxiliary.FindObject(canvas, "StatsPanel"); speedEntry = Auxiliary.FindObject(statsWindow, "SpeedEntry"); speedUnit = Auxiliary.FindObject(speedEntry, "Unit").GetComponent <Text>(); accelerationEntry = Auxiliary.FindObject(statsWindow, "AccelerationEntry"); accelerationUnit = Auxiliary.FindObject(accelerationEntry, "Unit").GetComponent <Text>(); angularVelocityEntry = Auxiliary.FindObject(statsWindow, "AngularVelocityEntry"); weightEntry = Auxiliary.FindObject(statsWindow, "WeightEntry"); weightUnit = Auxiliary.FindObject(weightEntry, "Unit").GetComponent <Text>(); }
private Geodetic_Point Iteration(_3D_Point XYZ) { _3D_Point blh = new _3D_Point(); //var l = _2D_Point.Get_PAngle(new _2D_Point(0, 0), new _2D_Point(XYZ.X, XYZ.Y)); blh.Y = Auxiliary.Get_L(XYZ.X, XYZ.Y); double dis = _2D_Point.Get_Norm(new _2D_Point(0, 0), new _2D_Point(XYZ.X, XYZ.Y)); double t0 = XYZ.Z / dis, p = ep.data.c * ep.data.e_2 / dis, k = 1 + ep.data.e2_2, t1 = t0, t2 = t0; do { t1 = t2; t2 = t0 + p * t1 / Math.Sqrt(k + t1 * t1); }while (Math.Abs(Angle.ChangeToAngle(t2 - t1).Miao) > 0.0001); blh.X = Angle.ChangeToAngle(t2 = Math.Atan(t2)).ChangeToRad(); double W = Auxiliary.GetW(ep.data.e_2, t2), N = ep.data.a / W; double h1 = XYZ.Z - N * (1 - ep.data.e_2) * Math.Sin(t2), h2 = dis - N * Math.Cos(t2); double h = Math.Sqrt(h1 * h1 + h2 * h2); if (h1 / Math.Sin(t2) < 0 || h2 / Math.Cos(t2) < 0) { h = -h; } blh.Z = h; return(new Geodetic_Point(false, blh.X, blh.Y, blh.Z)); }
private Geodetic_Point Direct(_3D_Point XYZ) { double e_2 = ep.data.e_2, e2_2 = ep.data.e2_2, a = ep.data.a, b = ep.data.b; double r = _2D_Point.Get_Norm(new _2D_Point(0, 0), new _2D_Point(XYZ.X, XYZ.Y)), u0 = Math.Atan(XYZ.Z / r * Math.Sqrt(1 + e2_2)), tgB = (XYZ.Z + b * e2_2 * Math.Sin(u0) * Math.Sin(u0)) / (r - a * e_2 * Math.Cos(u0) * Math.Cos(u0)), B = Math.Atan(XYZ.Z / r + a * e_2 * tgB / r / Math.Sqrt(1 + (1 - e_2) * tgB * tgB)); _3D_Point blh = new _3D_Point(); //blh.X = Angle.ChangeToAngle(B).ChangeToDouble(); blh.X = B; //var l = _2D_Point.Get_PAngle(new _2D_Point(0, 0), new _2D_Point(XYZ.X, XYZ.Y)); //blh.Y = l.ChangeToDouble(); blh.Y = Auxiliary.Get_L(XYZ.X, XYZ.Y); double W = Auxiliary.GetW(e_2, B), N = a / W; double h1 = XYZ.Z - N * (1 - e_2) * Math.Sin(B), h2 = r - N * Math.Cos(B); double h = Math.Sqrt(h1 * h1 + h2 * h2); if (h1 / Math.Sin(B) < 0 || h2 / Math.Cos(B) < 0) { h = -h; } blh.Z = h; return(new Geodetic_Point(false, blh.X, blh.Y, blh.Z)); }
/// <summary> /// Help button and menu text /// </summary> public void OnHelpButtonPressed() { helpMenu.SetActive(true); // To change the help menu texts within the simulator, most are configured by calling the // the following component. helpBodyText.GetComponent <Text>().text = "\n\nTutorials: bxd.autodesk.com" + "\n\nHome Tab: Main simulator functions" + "\n\nDriver Practice Tab: Gamepiece setup and interaction" + "\n\nScoring Tab: Match play" + "\n\nSensors Tab: Robot camera and sensors"; Auxiliary.FindObject(helpMenu, "Type").GetComponent <Text>().text = "MainToolbar"; overlay.SetActive(true); tabs.transform.Translate(new Vector3(300, 0, 0)); foreach (Transform t in toolbar.transform) { if (t.gameObject.name != "HelpButton") { t.Translate(new Vector3(300, 0, 0)); } else { t.gameObject.SetActive(false); } } if (PlayerPrefs.GetInt("analytics") == 1) { Analytics.CustomEvent("Main Toolbar Help Button Pressed", new Dictionary <string, object> //for analytics tracking { }); } }
/// <summary> /// Reset robot dropdown callback. Note: Dropdowns register with "On...Clicked" /// naming conventions. /// </summary> /// <param name="i"></param> public void OnResetRobotDropdownClicked(int i) { switch (i) { case 1: State.BeginRobotReset(); State.EndRobotReset(); resetDropdown.GetComponent <Dropdown>().value = 0; break; case 2: GameObject.Destroy(GameObject.Find("Dropdown List")); EndOtherProcesses(); resetDropdown.GetComponent <Dropdown>().value = 0; State.BeginRobotReset(); break; case 3: Auxiliary.FindObject(canvas, "ResetRobotDropdown").SetActive(false); Auxiliary.FindObject(canvas, "LoadingPanel").SetActive(true); SceneManager.LoadScene("Scene"); resetDropdown.GetComponent <Dropdown>().value = 0; break; } }
public void OpenGoalManager() { InitializeDisplay(); goalWindow.SetActive(true); Auxiliary.FindObject(goalWindow, "AddGoalButton").GetComponentInChildren <Text>().text = "New " + color + " Goal"; //set goal color if (color.Equals("Red")) { redButton.GetComponent <Button>().image.color = Color.red; redButton.GetComponent <Button>().interactable = false; blueButton.GetComponent <Button>().interactable = true; blueButton.GetComponent <Button>().image.color = Color.black; } else { blueButton.GetComponent <Button>().image.color = Color.blue; blueButton.GetComponent <Button>().interactable = false; redButton.GetComponent <Button>().interactable = true; redButton.GetComponent <Button>().image.color = Color.black; } CreateTabs(); AnalyticsManager.GlobalInstance.LogEventAsync(AnalyticsLedger.EventCatagory.ScoringTab, AnalyticsLedger.EventAction.Clicked, "Score Zones", AnalyticsLedger.getMilliseconds().ToString()); }
public JsonResult UpdateUserInfo(int userId, string realName, string phone, string idCard, string bankName, string bankNumber, string pwd) { bool result = false; string msg = "修改失败!"; UserInfo userInfo = new UserInfo(); userInfo = _userBll.GetUserInfoById(userId); if (userInfo != null) { userInfo.Phone = phone; userInfo.RealName = realName; userInfo.BankName = bankName; userInfo.BankNumber = bankNumber; if (string.IsNullOrEmpty(pwd)) { result = false; msg = "密码不能为空!"; } if (pwd != userInfo.Pwd) { userInfo.Pwd = Auxiliary.Md5Encrypt(pwd); } result = _userBll.UpdateUserInfo(userInfo); } if (result) { msg = "修改成功"; } return(Json(new { result = result, msg = msg })); }
void Update() { if (index == Globe.selectMailIndex) { iconSprite.spriteName = "banzixuanzhong"; } else { iconSprite.spriteName = ""; } if (index == 0) { mailStateIcon.spriteName = "yidu"; } if (mailItem.EndTime > Auxiliary.GetNowTime()) { TimeSpan residueTime = PropertyManager.ConvertIntDateTime(mailItem.EndTime) - PropertyManager.ConvertIntDateTime(Auxiliary.GetNowTime()); if (residueDay > residueTime.Days) { residueDay = residueTime.Days; if (residueDay <= 0) { deleteDate.text = "1天后过期"; } else { deleteDate.text = residueDay + "天后过期"; } } } else//邮件结束时间大于当前系统时间删除本地邮件 服务器处理方式是:再次去获取全部邮件的时候才触发删除到期邮件 { playerData.GetInstance().RemoveSingleMailItem(mailItem.Id); } }
/// <summary> /// Find all robot camera related GUI elements in the canvas /// </summary> private void FindGUIElements() { canvas = GameObject.Find("Canvas"); sensorManagerGUI = GetComponent <SensorManagerGUI>(); //For robot camera view window robotCameraView = Resources.Load("Images/Old Assets/RobotCameraView") as RenderTexture; robotCameraViewWindow = Auxiliary.FindObject(canvas, "RobotCameraPanelBorder"); //For robot camera manager robotCameraListObject = GameObject.Find("RobotCameraList"); robotCameraManager = robotCameraListObject.GetComponent <RobotCameraManager>(); //For camera indicator if (CameraIndicator == null) { CameraIndicator = Auxiliary.FindObject(robotCameraListObject, "CameraIndicator"); } //For camera position and attachment configuration configureCameraPanel = Auxiliary.FindObject(canvas, "CameraConfigurationPanel"); configureRobotCameraButton = Auxiliary.FindObject(canvas, "CameraConfigurationButton"); //For camera angle configuration cameraAnglePanel = Auxiliary.FindObject(canvas, "CameraAnglePanel"); xAngleEntry = Auxiliary.FindObject(cameraAnglePanel, "xAngleEntry1"); yAngleEntry = Auxiliary.FindObject(cameraAnglePanel, "yAngleEntry1"); zAngleEntry = Auxiliary.FindObject(cameraAnglePanel, "zAngleEntry1"); //For field of view configuration cameraFOVPanel = Auxiliary.FindObject(configureCameraPanel, "CameraFOVPanel"); FOVEntry = Auxiliary.FindObject(cameraFOVPanel, "FOVEntry"); }
void SetGoalKeepScored(int id, bool value) { Goal goal; if (color.Equals("Red")) { goal = redGoals[gamepieceIndex][id].GetComponent <Goal>(); if (!value && goal.Sticky) { goal.Sticky = false; Auxiliary.FindObject(goalElements[id], "Sticky").GetComponent <Toggle>().isOn = false; } goal.SetKeepScored(value); } else { goal = blueGoals[gamepieceIndex][id].GetComponent <Goal>(); if (!value && goal.Sticky) { goal.Sticky = false; Auxiliary.FindObject(goalElements[id], "Sticky").GetComponent <Toggle>().isOn = false; } goal.SetKeepScored(value); } WriteGoals(); }
public void Save(Auxiliary auxiliary) { Execute(new AuxiliarySaveRequest { Content = auxiliary }); DataFactory.Instance.GetCacheHashtable().Remove(CacheHashkey.AuxiliaryList); }
/// <summary> /// Toggles between quick reset and reset spawnpoint /// </summary> /// <param name="i"></param> public void ChooseResetMode(int i) { switch (i) { case 1: State.BeginRobotReset(); State.EndRobotReset(); resetDropdown.GetComponent <Dropdown>().value = 0; break; case 2: EndOtherProcesses(); DynamicCamera.ControlEnabled = true; State.BeginRobotReset(); resetDropdown.GetComponent <Dropdown>().value = 0; break; case 3: Auxiliary.FindObject(GameObject.Find("Reset Robot Dropdown"), "Dropdown List").SetActive(false); Auxiliary.FindObject(GameObject.Find("Canvas"), "LoadingPanel").SetActive(true); SceneManager.LoadScene("Scene"); resetDropdown.GetComponent <Dropdown>().value = 0; break; } }
public override float ReturnOutput() { //Raycasting begins, draw a ray from emitter to the receiver Ray ray = new Ray(Emitter.transform.position, Emitter.transform.forward); BulletSharp.Math.Vector3 fromUltra = ray.origin.ToBullet(); BulletSharp.Math.Vector3 toCollider = ray.GetPoint(10).ToBullet(); Vector3 toColliderUnity = toCollider.ToUnity(); //Callback returns all hit point results in order to avoid non colliders interfere with the ray test AllHitsRayResultCallback raysCallback = new AllHitsRayResultCallback(fromUltra, toCollider); //Retrieves bullet physics world and does a ray test with the given coordinates and updates the callback object BPhysicsWorld world = BPhysicsWorld.Get(); world.world.RayTest(fromUltra, toCollider, raysCallback); List <BulletSharp.Math.Vector3> colliderPositions = raysCallback.HitPointWorld; BulletSharp.Math.Vector3 colliderPosition = BulletSharp.Math.Vector3.Zero; float distanceToCollider = 0; //Set the initial distance as the distance between emitter and receiver if (main != null && main.IsMetric) { distanceToCollider = sensorOffset; } else { distanceToCollider = Auxiliary.ToFeet(sensorOffset); } //Loop through all hitpoints (exclude the origin), if there is at least one hitpoint less than the distance between two sensors, //something should block the beam between emitter and receiver foreach (BulletSharp.Math.Vector3 pos in colliderPositions) { if ((pos - fromUltra).Length < distanceToCollider && !pos.Equals(BulletSharp.Math.Vector3.Zero)) { distanceToCollider = (pos - fromUltra).Length; colliderPosition = pos; } } //Again if the line connects to the middle of the field nothing is blocking the beam Debug.DrawLine(fromUltra.ToUnity(), colliderPosition.ToUnity(), Color.blue); if (distanceToCollider < sensorOffset) { //Something is there state = "Broken"; return(1); } else { //Nothing in between state = "Unbroken"; return(0); } }
/// <summary> /// Increment score by point value /// </summary> private void UpdateScore() { if (score == null) { score = Auxiliary.FindObject(Auxiliary.FindObject(Auxiliary.FindObject("Canvas"), "ScorePanel"), color + "ScoreText").GetComponent <Text>(); } score.text = (int.Parse(score.GetComponent <Text>().text.ToString()) + pointValue).ToString(); }
public bool AddAuxiliary(Auxiliary auxiliary) { auxiliaries.Add(auxiliary); AddObservers(auxiliary); return(true); }
/// <summary> /// Refreshes the position of the move arrows with the position offsets. /// </summary> public void RefreshMoveArrows() { for (int i = 0; i < moveArrows.Length; i++) { moveArrows[i].transform.parent = Auxiliary.FindObject(gameObject, DPMDataHandler.dpmodes[i].releaseNode).transform; moveArrows[i].transform.localPosition = DPMDataHandler.dpmodes[i].releasePosition; } }
private void Start() { canvas = GameObject.Find("Canvas"); gameDataInput = Auxiliary.FindObject(canvas, "InputField").GetComponent <InputField>(); emuDriverStationPanel = Auxiliary.FindObject(canvas, "EmulationDriverStation"); runButton = Auxiliary.FindObject(canvas, "StartRobotCodeButton"); GameData(); }
/// <summary> /// Toggle between showing sensor outputs and hiding them /// </summary> public void ToggleSensorOutput() { if (sensorManager.GetActiveSensors().Count > 0) { sensorOutputPanel.SetActive(!sensorOutputPanel.activeSelf); } Auxiliary.FindObject(Auxiliary.FindObject(canvas, "SensorToolbar"), "ShowOutputsButton").GetComponentInChildren <Text>().text = sensorOutputPanel.activeSelf ? "Hide Outputs" : "Show Outputs"; }
public TimeSpan CheckTimeNowadays(string givenTime, bool isyMd) { DateTime currentDate = TimeManager.Instance.ConvertIntDateTime(Auxiliary.GetNowTime()); DateTime nextDate = DateTime.ParseExact(givenTime, isyMd ? "yyMMdd" : "yyMMddHHmmss", new System.Globalization.CultureInfo("zh-CN", true)); TimeSpan sp = currentDate - nextDate; return(sp); }
/// <summary> /// Establishes references to required <see cref="GameObject"/>s and /// sets their properties. /// </summary> public override void Start() { checkBox = Auxiliary.FindGameObject("Checkbox"); continueButton = Auxiliary.FindGameObject("ContinueButton"); continueButton.SetActive(isFirstState); checkBox.GetComponent <Toggle>().isOn = PlayerPrefs.GetInt("ShowDisclaimer", 1) == 1 ? true : false; }
/// <summary> /// TODO 保存容量與出貨料號關係 /// </summary> /// <param name="ctRelCarton"></param> /// <returns></returns> public bool saveCapacityRelCus(CapacityRelCus capacityRelCus) { capacityRelCus.Uuid = Auxiliary.Get_UUID(); capacityRelCus.CreateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); capacityRelCus.OpUser = Auxiliary.loginName; return(capacityDao.saveCapacityRelCus(capacityRelCus)); }
/// <summary> /// Refreshes the position of the move arrows with the position offsets. /// </summary> public void RefreshMoveArrows() { dp = dpmRobot.GetDriverPractice(FieldDataHandler.gamepieces[gamepieceIndex]); GameObject releaseNode = Auxiliary.FindObject(dpmRobot.gameObject, dp.releaseNode); moveArrows.transform.parent = releaseNode.transform; moveArrows.transform.localPosition = dp.releasePosition; }
/// <summary> /// Change the sensor range /// </summary> /// <param name="distance"></param> /// <param name="isEditing"></param> public override void SetSensorRange(float distance, bool isEditing) { if (isEditing && !main.IsMetric) { distance = Auxiliary.ToMeter(distance); } MaxRange = distance; }
/// <summary> /// 高斯引数法反算 /// </summary> /// <param name="ge">已知元素</param> public void GaussInverse(GeodeticElement ge) { double Bm = Methods.Average(ge.Br1, ge.Br2), delta_B = ge.Br2 - ge.Br1, delta_L = ge.Lr2 - ge.Lr1, Vm = Auxiliary.GetV(ep.data.e2_2, Bm), Nm = Auxiliary.GetN(ep.data.a, ep.data.e_2, Bm), tm = Auxiliary.Get_t(Bm), tm2 = tm * tm, yita_2 = Auxiliary.GetYita2(ep.data.e2_2, Bm), cos_Bm = Math.Cos(Bm), cos_Bm2 = cos_Bm * cos_Bm; double r01 = Nm * cos_Bm, r21 = r01 / 24 / Math.Pow(Vm, 4) * (1 + yita_2 - 9 * yita_2 * tm2 + yita_2 * yita_2), r03 = -r01 / 24 * cos_Bm2 * tm2; double s10 = Nm / Vm / Vm, s12 = -s10 * cos_Bm2 / 24 * (2 + 3 * tm2 + 2 * yita_2 * tm2), s30 = Nm / Math.Pow(Vm, 6) / 8 * (yita_2 - tm2 * yita_2 + yita_2 * yita_2); double t01 = tm * cos_Bm, t21 = t01 / 24 / Math.Pow(Vm, 4) * (2 + 7 * yita_2 + 9 * tm2 * yita_2 + 5 * yita_2 * yita_2), t03 = t01 * cos_Bm2 / 24 * (2 + tm2 + 2 * yita_2); double S_sinAm = r01 * delta_L + r21 * delta_B * delta_B * delta_L + r03 * Math.Pow(delta_L, 3), S_cosAm = s10 * delta_B + s12 * delta_B * delta_L * delta_L + s30 * Math.Pow(delta_B, 3), delta_A = t01 * delta_L + t21 * delta_B * delta_B * delta_L + t03 * Math.Pow(delta_L, 3); //S_sinAm1=S_sinAm,S_cosAm1=S_cosAm,delta_A1=delta_A; double Am = _2D_Point.Get_PAngle(new _2D_Point(0, 0), new _2D_Point(S_cosAm, S_sinAm)).ChangeToRad(); //Am1 //do //{ // S_sinAm = S_sinAm1; // S_cosAm = S_cosAm1; // Am = Am1; // S_sinAm1 = delta_L * Nm * cos_Bm - S_sinAm / 24 / Nm / Nm * (S_sinAm * S_sinAm * tm2 - S_cosAm * S_cosAm * (1 + yita_2 - 9 * yita_2 * tm2 + yita_2 * yita_2)); // S_cosAm1 = delta_B * Nm / Vm / Vm - S_cosAm1 / 24 / Nm / Nm * (S_sinAm1 * S_sinAm1 * (2 + 3 * tm2 + 2 * yita_2 * tm2) + 3 * yita_2 * S_cosAm * S_cosAm1 * (1 + yita_2 - tm2 + 4 * tm2 * yita_2)); // Am1 = _2D_Point.Get_PAngle(new _2D_Point(0, 0), new _2D_Point(S_cosAm1, S_sinAm1)).ChangeToRad(); //} while (Math.Abs(Angle.ChangeToAngle(Am1 - Am).Miao) > 0.0001); ge.S = ge.Sr = S_sinAm / Math.Sin(Am); ge.Ar12 = Am - delta_A / 2; ge.A12 = Angle.ChangeToAngle(ge.Ar12); if (Am + delta_A >= Math.PI) { ge.Ar21 = Am + delta_A / 2 - Math.PI; } else { ge.Ar21 = Am + delta_A / 2 + Math.PI; } ge.A21 = Angle.ChangeToAngle(ge.Ar21); }
public LinePointAuxiliaryState(Tool tool, Auxiliary auxiliary, Geometry geometry) : base(tool, auxiliary) { if (auxiliary is LinePointAuxiliary) { this.auxiliary = (LinePointAuxiliary)auxiliary; } this.geometry = geometry; }
public RemoveAuxiliaryOperation(GeoController geoController, Geometry geometry, Auxiliary auxiliary) { CanRotateCamera = true; CanActiveElement = true; this.geoController = geoController; this.geometry = geometry; this.auxiliary = auxiliary; }
/// <summary> /// Links a panel to the provided <see cref="State"/> type from the panel's name. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="panelName"></param> private void LinkPanel <T>(string panelName, bool strict = true) where T : State { GameObject tab = Auxiliary.FindGameObject(panelName); if (tab != null) { uiStateMachine.Link <T>(tab, true, strict); } }