public TradeInfoEventArgs(TRANS_TYPE aType, TradeRecordResult aTrade) { FromUsercode = null; ToUsercode = null; TradeType = aType; Trade = aTrade; }
float GetPrevValue(TRANS_TYPE nGroupIndex, float value) { bool bRightClick = Input.GetMouseButtonUp(1); if (bRightClick) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: return(value - 0.1f); case TRANS_TYPE.ROTATION: return(value - 15); case TRANS_TYPE.SCALE: return(value * 0.9f); } } else { switch (nGroupIndex) { case TRANS_TYPE.POSITION: return(value - 1); case TRANS_TYPE.ROTATION: return(value - 90); case TRANS_TYPE.SCALE: return(value * 0.5f); } } return(value); }
float GetNextValue(TRANS_TYPE nGroupIndex, float value) { bool bRightClick = Input.GetMouseButtonUp(1); if (bRightClick) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: return(value + 0.1f); case TRANS_TYPE.ROTATION: return(value + 15); case TRANS_TYPE.SCALE: return(value * 1.1f); } } else { switch (nGroupIndex) { case TRANS_TYPE.POSITION: return(value + 1); case TRANS_TYPE.ROTATION: return(value + 90); case TRANS_TYPE.SCALE: return(value * 2); } } return(value); }
Vector3 GetNextValue(TRANS_TYPE nGroupIndex, Vector3 value) { value.x = GetNextValue(nGroupIndex, value.x); value.y = GetNextValue(nGroupIndex, value.y); value.z = GetNextValue(nGroupIndex, value.z); return(value); }
void CopyTransform(TRANS_TYPE nGroupIndex) { if (m_nWorldLocalSelIndex == 0) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: m_CopyTransform.m_vecPos = m_SelectedTransform.position; break; case TRANS_TYPE.ROTATION: m_CopyTransform.m_vecRotHint = m_SelectedTransform.rotation.eulerAngles; break; case TRANS_TYPE.SCALE: m_CopyTransform.m_vecScale = m_SelectedTransform.lossyScale; break; } } else { switch (nGroupIndex) { case TRANS_TYPE.POSITION: m_CopyTransform.m_vecPos = m_SelectedTransform.localPosition; break; case TRANS_TYPE.ROTATION: m_CopyTransform.m_vecRotHint = m_SelectedTransform.localRotation.eulerAngles; break; case TRANS_TYPE.SCALE: m_CopyTransform.m_vecScale = m_SelectedTransform.localScale; break; } } }
static void resetTransaction() { transType = TRANS_TYPE.NONE; fromAccount = ACCT_TYPE.EMPTY; toAccount = ACCT_TYPE.EMPTY; transAmount = NAN; pinRetries = 0; }
protected override void OnPumpTrade(TRANS_TYPE aType, TradeRecordResult aRecord) { var handler = OnNewTrade; if (handler != null) { handler(this, new TradeInfoEventArgs(aType, aRecord)); } }
void PasteTransform(TRANS_TYPE nGroupIndex) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: SetTransform(TRANS_TYPE.POSITION, m_CopyTransform.m_vecPos); break; case TRANS_TYPE.ROTATION: SetTransform(TRANS_TYPE.ROTATION, m_CopyTransform.m_vecRotHint); break; case TRANS_TYPE.SCALE: SetTransform(TRANS_TYPE.SCALE, m_CopyTransform.m_vecScale); break; } }
void ResetTransform(TRANS_TYPE nGroupIndex) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: SetTransform(TRANS_TYPE.POSITION, Vector3.zero); break; case TRANS_TYPE.ROTATION: SetTransform(TRANS_TYPE.ROTATION, Vector3.zero); break; case TRANS_TYPE.SCALE: SetTransform(TRANS_TYPE.SCALE, Vector3.one); break; } }
float GetNextName(TRANS_TYPE nGroupIndex) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: return(1); case TRANS_TYPE.ROTATION: return(90); case TRANS_TYPE.SCALE: return(2); } return(0); }
float GetPrevName(TRANS_TYPE nGroupIndex) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: return(-1); case TRANS_TYPE.ROTATION: return(-90); case TRANS_TYPE.SCALE: return(0.5f); } return(0); }
void SaveTransform() { if (m_SaveTrans == null) { m_SaveTrans = new NcTransformTool(); } int nGroup = 3; for (int n = 0; n < nGroup; n++) { TRANS_TYPE nTrans = (TRANS_TYPE)n; if (m_nWorldLocalSelIndex == 0) { switch (nTrans) { case TRANS_TYPE.POSITION: m_SaveTrans.m_vecPos = m_SelectedTransform.position; break; case TRANS_TYPE.ROTATION: m_SaveTrans.m_vecRotHint = m_SelectedTransform.eulerAngles; break; case TRANS_TYPE.SCALE: m_SaveTrans.m_vecScale = m_SelectedTransform.lossyScale; break; } } else { switch (nTrans) { case TRANS_TYPE.POSITION: m_SaveTrans.m_vecPos = m_SelectedTransform.localPosition; break; case TRANS_TYPE.ROTATION: m_SaveTrans.m_vecRotHint = m_SelectedTransform.localEulerAngles; break; case TRANS_TYPE.SCALE: m_SaveTrans.m_vecScale = m_SelectedTransform.localScale; break; } } } }
public static DOCUMENT ToDocumentMockup(this Request.REQ_DOCUMENT request, string code, DOCUMENT_TYPE docType, TRANS_TYPE transType) { PERIOD period = new PERIOD(); period.BEGIN = string.IsNullOrEmpty(request.FILTER.BEGIN) ? $"{DateTime.Today:yyyy-MM-dd}" : request.FILTER.BEGIN; period.END = string.IsNullOrEmpty(request.FILTER.END) ? $"{new DateTime(9999, 12, 31):yyyy-MM-dd}" : request.FILTER.END; DOCUMENT oDocument = DOCUMENT.CreateInstance(); oDocument.CODE = $"Document {code}"; oDocument.DOC_TYPE = docType; oDocument.TRANS_TYPE = transType; oDocument.PLAN_BEGIN = period.BEGIN; oDocument.PLAN_END = period.END; oDocument.REQUESTOR = request.ToEmployeeMockup(true); oDocument.STATUS = "Waiting"; oDocument.TRANS_DATE = oDocument.PLAN_BEGIN; return(oDocument); }
private void StartLink(TRANS_TYPE trade_type, TradeRecordResult trade) { var dock = new DockServer(); try { using (var db = dock.CopySource) { var sql = string.Empty; var mt4_from = trade.login; var jss = new JavaScriptSerializer(); if ((trade_type == TRANS_TYPE.TRANS_ADD || trade_type == TRANS_TYPE.TRANS_UPDATE) && trade.cmd <= (int)Utils.TRADE_COMMAND.OP_SELL) { var trade_date = trade.timestamp.FromTime32(); Utils.CommonLog.Info("MT4:{0}的订单{1}已收到", mt4_from, trade.order); try { sql = "SELECT * FROM copy WHERE from_mt4=@mt4_id"; var lst = new List <dynamic>(); using (var cmd = new SQLiteCommand(sql, db)) { cmd.Parameters.AddWithValue("@mt4_id", mt4_from); using (var copy_reader = cmd.ExecuteReader()) { while (copy_reader.Read()) { dynamic copy_item = new ExpandoObject(); copy_item.from_mt4 = int.Parse(copy_reader["from_mt4"] .ToString()); copy_item.to_mt4 = int.Parse(copy_reader["to_mt4"] .ToString()); copy_item.source = int.Parse(copy_reader["source"] .ToString()); copy_item.amount = double.Parse(copy_reader["amount"] .ToString()); lst.Add(copy_item); } } } var real_copy = lst.Where(i => i.source == 0); var demo_copy = lst.Where(i => i.source != 0); if (lst.Count > 0) { MT4Wrapper api = null; var equity = 0.0; var balance = 0.0; var free = 0.0; using (api = Poll.New()) { api.GetEquity(mt4_from, ref equity, ref free, ref balance); } if (real_copy.Count() > 0) { using (api = Poll.New()) { CopyNewTrade(trade, mt4_from, real_copy, trade_date, api, balance, dock, 0); } } if (demo_copy.Count() > 0) { using (api = Poll.DemoAPI()) { CopyNewTrade(trade, mt4_from, demo_copy, trade_date, api, balance, dock, 1); } } } } catch (Exception e) { Utils.CommonLog.Error("执行copy功能出现故障,订单号{0},{1},{2}", trade.order, e.Message, e.StackTrace); } } if (trade_type == TRANS_TYPE.TRANS_DELETE && !string.IsNullOrWhiteSpace(trade.symbol)) { try { sql = "SELECT * FROM copy_order WHERE order_from=@order_id"; var lst = new List <dynamic>(); using (var cmd = new SQLiteCommand(sql, db)) { cmd.Parameters.AddWithValue("@order_id", trade.order); using (var copy_reader = cmd.ExecuteReader()) { while (copy_reader.Read()) { dynamic copy_item = new ExpandoObject(); copy_item.mt4_from = int.Parse(copy_reader["mt4_from"] .ToString()); copy_item.mt4_to = int.Parse(copy_reader["mt4_to"] .ToString()); copy_item.source = int.Parse(copy_reader["source"] .ToString()); copy_item.order_from = int.Parse(copy_reader["order_from"] .ToString()); copy_item.order_to = int.Parse(copy_reader["order_to"] .ToString()); copy_item.direction = int.Parse(copy_reader["direction"] .ToString()); copy_item.volume = int.Parse(copy_reader["volume"] .ToString()); lst.Add(copy_item); } } } if (lst.Count > 0) { Utils.CommonLog.Info("可复制订单{0}已平仓,copy数量{1}", trade.order, lst.Count); } var real_copy = lst.Where(i => i.source == 0); var demo_copy = lst.Where(i => i.source != 0); MT4Wrapper api = null; if (real_copy.Count() > 0) { using (api = Poll.New()) { CopyBalanceTrade(trade, mt4_from, real_copy, api, dock, 0); } } if (demo_copy.Count() > 0) { using (api = Poll.DemoAPI()) { CopyBalanceTrade(trade, mt4_from, demo_copy, api, dock, 1); } } } catch (Exception e) { Utils.CommonLog.Error("执行copy平仓功能出现故障,订单号{0},{1},{2}", trade.order, e.Message, e.StackTrace); } } } } catch (Exception e) { Utils.CommonLog.Error(string.Format("复制StartLink出错,{0},{1}", e.Message, e.StackTrace)); } }
static MSG custSelectTrans(TRANS_TYPE transactionType) { return(MSG.SELECT_FROM_ACCT); }
static MSG custSelectTrans([Domain("TransTypes")] TRANS_TYPE transactionType) { transType = transactionType; return(MSG.SELECT_FROM_ACCT); }
float GetNextName(TRANS_TYPE nGroupIndex) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: return 1; case TRANS_TYPE.ROTATION: return 90; case TRANS_TYPE.SCALE: return 2; } return 0; }
static MSG custSelectTrans(TRANS_TYPE transactionType) { return MSG.SELECT_FROM_ACCT; }
static MSG custSelectTrans([Domain("TransTypes")] TRANS_TYPE transactionType) { transType = transactionType; return MSG.SELECT_FROM_ACCT; }
// ========================================================================================================== void winPopup(int id) { Rect baseRect = GetPopupRect(); GUIStyle styleBox = GUI.skin.GetStyle("Transform_Box"); if (UnfocusClose(baseRect, 0, 0, 0, 20)) { return; } Rect lineRect; Rect groupRect; Rect leftRect; Rect rightRect; int nGroup = 3; int nLine = 2; string format = ""; baseRect = FXMakerLayout.GetChildVerticalRect(baseRect, 0, 1, 0, 1); baseRect = FXMakerLayout.GetOffsetRect(baseRect, -2); GUI.Box(baseRect, " "); // -------------------------------------------------------------------------------- // // World Position // groupRect = gNcLayout.GetInnerVerticalRect(baseRect, 15, 0, 5); // groupRect = gNcLayout.GetOffsetRect(groupRect, -5); // leftRect = gNcLayout.GetInnerHorizontalRect(groupRect, 6, 0, 2); // rightRect = gNcLayout.GetInnerHorizontalRect(groupRect, 6, 2, 4); // GUI.Label(gNcLayout.GetInnerHorizontalRect(leftRect, 1, 0, 1), "World Position"); // GUI.Box(gNcLayout.GetInnerHorizontalRect(rightRect, 3, 0, 1), trans.position.x.ToString(format), styleBox); // GUI.Box(gNcLayout.GetInnerHorizontalRect(rightRect, 3, 1, 1), trans.position.y.ToString(format), styleBox); // GUI.Box(gNcLayout.GetInnerHorizontalRect(rightRect, 3, 2, 1), trans.position.z.ToString(format), styleBox); // NgGUIDraw.DrawHorizontalLine(new Vector2(groupRect.x, groupRect.yMax+5), (int)groupRect.width, Color.black, 2, false); // Clipboard groupRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 35, 0, 8); groupRect = FXMakerLayout.GetOffsetRect(groupRect, -5); leftRect = FXMakerLayout.GetInnerHorizontalRect(groupRect, 6, 0, 2); rightRect = FXMakerLayout.GetInnerHorizontalRect(groupRect, 6, 2, 4); for (int n = 0; n < nGroup; n++) { Vector3 vecValue = Vector3.zero; TRANS_TYPE nTrans = (TRANS_TYPE)n; switch (nTrans) { case TRANS_TYPE.POSITION: vecValue = m_CopyTransform.m_vecPos; break; case TRANS_TYPE.ROTATION: vecValue = m_CopyTransform.m_vecRotHint; break; case TRANS_TYPE.SCALE: vecValue = m_CopyTransform.m_vecScale; break; } GUI.Label(FXMakerLayout.GetInnerVerticalRect(FXMakerLayout.GetInnerHorizontalRect(leftRect, 1, 0, 1), 3, n, 1), "Clipboard " + m_TransStrings[n]); GUI.Box(FXMakerLayout.GetInnerVerticalRect(FXMakerLayout.GetInnerHorizontalRect(rightRect, 3, 0, 1), 3, n, 1), vecValue.x.ToString(format), styleBox); GUI.Box(FXMakerLayout.GetInnerVerticalRect(FXMakerLayout.GetInnerHorizontalRect(rightRect, 3, 1, 1), 3, n, 1), vecValue.y.ToString(format), styleBox); GUI.Box(FXMakerLayout.GetInnerVerticalRect(FXMakerLayout.GetInnerHorizontalRect(rightRect, 3, 2, 1), 3, n, 1), vecValue.z.ToString(format), styleBox); } groupRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 35, 8, 1); groupRect = FXMakerLayout.GetOffsetRect(groupRect, -5); NgGUIDraw.DrawHorizontalLine(new Vector2(groupRect.x, groupRect.y - 5), (int)groupRect.width, Color.grey, 2, false); // -------------------------------------------------------------------------------- groupRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 35, 9, 3); groupRect = FXMakerLayout.GetOffsetRect(groupRect, 5, 0, -5, 0); GUIContent[] worldlocalCon = new GUIContent[2] { GetHelpContent("World"), GetHelpContent("Local") }; int nWorldLocalIndex = GUI.SelectionGrid(groupRect, m_nWorldLocalSelIndex, worldlocalCon, 2); if (m_nWorldLocalSelIndex != nWorldLocalIndex) { m_nWorldLocalSelIndex = nWorldLocalIndex; EditorPrefs.SetInt("FxmPopup_Transform.m_nWorldLocalSelIndex", m_nWorldLocalSelIndex); InitFloatInput(); SaveTransform(); } // -------------------------------------------------------------------------------- Rect editRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 35, 12, 18); for (int n = 0; n < nGroup; n++) { Vector3 vecValue = Vector3.zero; TRANS_TYPE nTrans = (TRANS_TYPE)n; switch (nTrans) { case TRANS_TYPE.POSITION: vecValue = m_SaveTrans.m_vecPos; break; case TRANS_TYPE.ROTATION: vecValue = m_SaveTrans.m_vecRotHint; break; case TRANS_TYPE.SCALE: vecValue = m_SaveTrans.m_vecScale; break; } Vector3 oldValue = vecValue; for (int nn = 0; nn < 3; nn++) { if (m_strFloatInput[n, nn] == null) { m_strFloatInput[n, nn] = vecValue[nn].ToString(); } } groupRect = FXMakerLayout.GetInnerVerticalRect(editRect, nGroup, n, 1); groupRect = FXMakerLayout.GetOffsetRect(groupRect, -3); leftRect = FXMakerLayout.GetInnerHorizontalRect(groupRect, 6, 0, 2); rightRect = FXMakerLayout.GetInnerHorizontalRect(groupRect, 6, 2, 4); // left // line 1 lineRect = FXMakerLayout.GetInnerVerticalRect(leftRect, nLine, 0, 1); GUI.Label(FXMakerLayout.GetInnerHorizontalRect(lineRect, 1, 0, 1), (m_nWorldLocalSelIndex == 0 ? "World " : "Local ") + m_TransStrings[n]); // line 2 lineRect = FXMakerLayout.GetInnerVerticalRect(leftRect, nLine, 1, 1); if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 0, 1), GetHelpContent("Reset"))) { ResetTransform(nTrans); RecreateInstance(); InitFloatInput(); return; } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 1, 1), GetHelpContent("Copy"))) { CopyTransform(nTrans); InitFloatInput(); return; } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 2, 1), GetHelpContent("Paste"))) { PasteTransform(nTrans); InitFloatInput(); return; } // left, All Scale if (nTrans == TRANS_TYPE.SCALE) { lineRect = FXMakerLayout.GetInnerVerticalRect(leftRect, nLine, 0, 1); if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 5, 3, 1), GetHelpContent(GetPrevName(nTrans).ToString()))) { SetTransform(TRANS_TYPE.SCALE, GetPrevValue(nTrans, vecValue)); RecreateInstance(); InitFloatInput(); return; } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 5, 4, 1), GetHelpContent(GetNextName(nTrans).ToString()))) { SetTransform(TRANS_TYPE.SCALE, GetNextValue(nTrans, vecValue)); RecreateInstance(); InitFloatInput(); return; } } // right // line 1 lineRect = FXMakerLayout.GetInnerVerticalRect(rightRect, nLine, 0, 1); GUI.SetNextControlName("TextField"); m_strFloatInput[n, 0] = GUI.TextField(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 0, 1), m_strFloatInput[n, 0]); m_strFloatInput[n, 0] = NgConvert.GetVaildFloatString(m_strFloatInput[n, 0], ref vecValue.x); GUI.SetNextControlName("TextField"); m_strFloatInput[n, 1] = GUI.TextField(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 1, 1), m_strFloatInput[n, 1]); m_strFloatInput[n, 1] = NgConvert.GetVaildFloatString(m_strFloatInput[n, 1], ref vecValue.y); GUI.SetNextControlName("TextField"); m_strFloatInput[n, 2] = GUI.TextField(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3, 2, 1), m_strFloatInput[n, 2]); m_strFloatInput[n, 2] = NgConvert.GetVaildFloatString(m_strFloatInput[n, 2], ref vecValue.z); // if (nTrans == TRANS_TYPE.ROTATION) // vecValue = Vector3.zero; // line 2 lineRect = FXMakerLayout.GetInnerVerticalRect(rightRect, nLine, 1, 1); if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3 * 2, 0, 1), GetHelpContent(GetPrevName(nTrans).ToString()))) { vecValue.x = GetPrevValue(nTrans, vecValue.x); } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3 * 2, 1, 1), GetHelpContent(GetNextName(nTrans).ToString()))) { vecValue.x = GetNextValue(nTrans, vecValue.x); } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3 * 2, 2, 1), GetHelpContent(GetPrevName(nTrans).ToString()))) { vecValue.y = GetPrevValue(nTrans, vecValue.y); } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3 * 2, 3, 1), GetHelpContent(GetNextName(nTrans).ToString()))) { vecValue.y = GetNextValue(nTrans, vecValue.y); } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3 * 2, 4, 1), GetHelpContent(GetPrevName(nTrans).ToString()))) { vecValue.z = GetPrevValue(nTrans, vecValue.z); } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(lineRect, 3 * 2, 5, 1), GetHelpContent(GetNextName(nTrans).ToString()))) { vecValue.z = GetNextValue(nTrans, vecValue.z); } // Set if (vecValue != oldValue) { SetTransform(nTrans, vecValue); RecreateInstance(); InitFloatInput(); return; } } // -------------------------------------------------------------------------------- // World, Local groupRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 35, 30, 1); groupRect = FXMakerLayout.GetOffsetRect(groupRect, -5); NgGUIDraw.DrawHorizontalLine(new Vector2(groupRect.x, groupRect.y - 6), (int)groupRect.width, Color.grey, 1, false); groupRect = FXMakerLayout.GetInnerVerticalRect(baseRect, 35, 30, 5); groupRect = FXMakerLayout.GetOffsetRect(groupRect, -5); leftRect = FXMakerLayout.GetInnerHorizontalRect(groupRect, 6, 0, 2); rightRect = FXMakerLayout.GetInnerHorizontalRect(groupRect, 6, 2, 4); GUI.Label(leftRect, m_nWorldLocalSelIndex == 0 ? "World " : "Local "); if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(rightRect, 3, 0, 1), GetHelpContent("Reset"))) { ResetTransform(TRANS_TYPE.POSITION); ResetTransform(TRANS_TYPE.ROTATION); ResetTransform(TRANS_TYPE.SCALE); RecreateInstance(); InitFloatInput(); return; } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(rightRect, 3, 1, 1), GetHelpContent("Copy"))) { CopyTransform(TRANS_TYPE.POSITION); CopyTransform(TRANS_TYPE.ROTATION); CopyTransform(TRANS_TYPE.SCALE); return; } if (GUI.Button(FXMakerLayout.GetInnerHorizontalRect(rightRect, 3, 2, 1), GetHelpContent("Paste"))) { PasteTransform(TRANS_TYPE.POSITION); PasteTransform(TRANS_TYPE.ROTATION); PasteTransform(TRANS_TYPE.SCALE); RecreateInstance(); InitFloatInput(); return; } FXMakerMain.inst.SaveTooltip(); }
float GetNextValue(TRANS_TYPE nGroupIndex, float value) { bool bRightClick = Input.GetMouseButtonUp(1); if (bRightClick) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: return value+0.1f; case TRANS_TYPE.ROTATION: return value+15; case TRANS_TYPE.SCALE: return value*1.1f; } } else { switch (nGroupIndex) { case TRANS_TYPE.POSITION: return value+1; case TRANS_TYPE.ROTATION: return value+90; case TRANS_TYPE.SCALE: return value*2; } } return value; }
float GetPrevValue(TRANS_TYPE nGroupIndex, float value) { bool bRightClick = Input.GetMouseButtonUp(1); if (bRightClick) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: return value-0.1f; case TRANS_TYPE.ROTATION: return value-15; case TRANS_TYPE.SCALE: return value*0.9f; } } else { switch (nGroupIndex) { case TRANS_TYPE.POSITION: return value-1; case TRANS_TYPE.ROTATION: return value-90; case TRANS_TYPE.SCALE: return value*0.5f; } } return value; }
void SetTransform(TRANS_TYPE nGroupIndex, Vector3 vecValue) { // Set if (m_nWorldLocalSelIndex == 0) { // set Original switch (nGroupIndex) { case TRANS_TYPE.POSITION: m_SelectedTransform.position = vecValue; break; case TRANS_TYPE.ROTATION: m_SelectedTransform.rotation = Quaternion.Euler(vecValue); break; // case TRANS_TYPE.ROTATION: m_SelectedTransform.rotation = Quaternion.Euler(vecValue); break; case TRANS_TYPE.SCALE: CopyWorldScale(vecValue, m_SelectedTransform); break; } // Nan 문제로 recreate 방식으로 변경 // // set Instance // List<FxmInfoIndexing> indexComs = FxmInfoIndexing.FindInstanceIndexings(m_SelectedTransform); // foreach (FxmInfoIndexing indexCom in indexComs) // { // switch (nGroupIndex) // { // case TRANS_TYPE.POSITION: indexCom.transform.Translate(vecValue - m_SaveTrans.m_vecPos, Space.World); break; // case TRANS_TYPE.ROTATION: indexCom.transform.rotation *= Quaternion.Euler(vecValue - m_SaveTrans.m_vecRotHint); break; // // case TRANS_TYPE.ROTATION: indexCom.transform.rotation *= Quaternion.Euler(vecValue); break; // case TRANS_TYPE.SCALE: CopyWorldScale(vecValue - m_SaveTrans.m_vecScale, indexCom.transform); break; // } // } } else { // set Original switch (nGroupIndex) { case TRANS_TYPE.POSITION: m_SelectedTransform.localPosition = vecValue; break; case TRANS_TYPE.ROTATION: m_SelectedTransform.localRotation = Quaternion.Euler(vecValue); break; // case TRANS_TYPE.ROTATION: m_SelectedTransform.localRotation *= Quaternion.Euler(vecValue); break; case TRANS_TYPE.SCALE: m_SelectedTransform.transform.localScale = vecValue; break; } // // set Instance // List<FxmInfoIndexing> indexComs = FxmInfoIndexing.FindInstanceIndexings(m_SelectedTransform); // foreach (FxmInfoIndexing indexCom in indexComs) // { // switch (nGroupIndex) // { // case TRANS_TYPE.POSITION: indexCom.transform.Translate(vecValue - m_SaveTrans.m_vecPos, Space.Self); break; // case TRANS_TYPE.ROTATION: indexCom.transform.localRotation *= Quaternion.Euler(vecValue - m_SaveTrans.m_vecRotHint); break; // case TRANS_TYPE.SCALE: indexCom.transform.localScale = vecValue - m_SaveTrans.m_vecScale; break; // } // } } // Last Update switch (nGroupIndex) { case TRANS_TYPE.POSITION: m_SaveTrans.m_vecPos = vecValue; break; case TRANS_TYPE.ROTATION: m_SaveTrans.m_vecRotHint = vecValue; break; case TRANS_TYPE.SCALE: m_SaveTrans.m_vecScale = vecValue; break; } }
Vector3 GetNextValue(TRANS_TYPE nGroupIndex, Vector3 value) { value.x = GetNextValue(nGroupIndex, value.x); value.y = GetNextValue(nGroupIndex, value.y); value.z = GetNextValue(nGroupIndex, value.z); return value; }
float GetPrevName(TRANS_TYPE nGroupIndex) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: return -1; case TRANS_TYPE.ROTATION: return -90; case TRANS_TYPE.SCALE: return 0.5f; } return 0; }
void ResetTransform(TRANS_TYPE nGroupIndex) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: SetTransform(TRANS_TYPE.POSITION, Vector3.zero); break; case TRANS_TYPE.ROTATION: SetTransform(TRANS_TYPE.ROTATION, Vector3.zero); break; case TRANS_TYPE.SCALE: SetTransform(TRANS_TYPE.SCALE , Vector3.one); break; } }
private void Trade2Mysql(TRANS_TYPE aType, TradeRecordResult aRecord, Match j, int leverage, double pov, float pip_coefficient = 1.0f, string aFromCode = null, string aToCode = null) { var sql = string.Empty; var match = j.Groups; aRecord.symbol = match["symbol"].ToString(); using (var cmd = new MySqlCommand()) { cmd.Connection = TradeSource.MysqlSource; if (aType == TRANS_TYPE.TRANS_ADD) { sql = "INSERT INTO `order`(mt4_id, order_id, " + "login, symbol, digits, cmd, volume, open_time, " + "state, open_price, sl, tp, close_time, value_date, " + "expiration, reason, commission, commission_agent, storage, " + "close_price, profit, taxes, magic, comment, internal_id, " + "activation, spread, margin_rate, leverage, pov, pip_coefficient, " + "from_code, to_code) " + " VALUES(@mt4id, @orderid, " + "@login, @symbol, @digits, @cmd, @volume, @open_time, " + "@state, @open_price, @sl, @tp, @close_time, @value_date, " + "@expiration, @reason, @commission, @commission_agent, @storage, " + "@close_price, @profit, @taxes, @magic, @comment, @internal_id, " + "@activation, @spread, @margin_rate, @leverage, @pov, @pip_coefficient, " + "@from_code, @to_code) " + "ON DUPLICATE KEY UPDATE " + "login=@login, symbol=@symbol, digits=@digits, cmd=@cmd, volume=@volume, open_time=@open_time, " + "state=@state, open_price=@open_price, sl=@sl, tp=@tp, close_time=@close_time, value_date=@value_date, " + "expiration=@expiration, reason=@reason, commission=@commission, commission_agent=@commission_agent, storage=@storage, " + "close_price=@close_price, profit=@profit, taxes=@taxes, magic=@magic, comment=@comment, internal_id=@internal_id, " + "activation=@activation, spread=@spread, margin_rate=@margin_rate, " + "leverage=@leverage, pov=@pov, pip_coefficient=@pip_coefficient"; cmd.CommandText = sql; cmd.Parameters.AddWithValue("@mt4id", aRecord.login); cmd.Parameters.AddWithValue("@orderid", aRecord.order); cmd.Parameters.AddWithValue("@login", aRecord.login); cmd.Parameters.AddWithValue("@symbol", aRecord.symbol); cmd.Parameters.AddWithValue("@digits", aRecord.digits); cmd.Parameters.AddWithValue("@cmd", aRecord.cmd); cmd.Parameters.AddWithValue("@volume", aRecord.volume); cmd.Parameters.AddWithValue("@open_time", aRecord.open_time.FromTime32()); cmd.Parameters.AddWithValue("@state", aRecord.state); cmd.Parameters.AddWithValue("@open_price", aRecord.open_price); cmd.Parameters.AddWithValue("@sl", aRecord.sl); cmd.Parameters.AddWithValue("@tp", aRecord.tp); cmd.Parameters.AddWithValue("@close_time", aRecord.close_time.FromTime32()); cmd.Parameters.AddWithValue("@value_date", aRecord.value_date); cmd.Parameters.AddWithValue("@expiration", aRecord.expiration); cmd.Parameters.AddWithValue("@reason", aRecord.reason); cmd.Parameters.AddWithValue("@commission", aRecord.commission); cmd.Parameters.AddWithValue("@commission_agent", aRecord.commission_agent); cmd.Parameters.AddWithValue("@storage", aRecord.storage); cmd.Parameters.AddWithValue("@close_price", aRecord.close_price); cmd.Parameters.AddWithValue("@profit", aRecord.profit); cmd.Parameters.AddWithValue("@taxes", aRecord.taxes); cmd.Parameters.AddWithValue("@magic", aRecord.magic); cmd.Parameters.AddWithValue("@comment", aRecord.comment); cmd.Parameters.AddWithValue("@internal_id", aRecord.internal_id); cmd.Parameters.AddWithValue("@activation", aRecord.activation); cmd.Parameters.AddWithValue("@spread", aRecord.spread); cmd.Parameters.AddWithValue("@margin_rate", aRecord.margin_rate); cmd.Parameters.AddWithValue("@leverage", leverage); cmd.Parameters.AddWithValue("@pov", pov); cmd.Parameters.AddWithValue("@pip_coefficient", pip_coefficient); cmd.Parameters.AddWithValue("@from_code", aFromCode); cmd.Parameters.AddWithValue("@to_code", aToCode); cmd.ExecuteNonQuery(); } else if (aType == TRANS_TYPE.TRANS_DELETE) { sql = "INSERT INTO history(mt4_id, timestamp, order_id, " + "login, symbol, digits, cmd, volume, open_time, " + "state, open_price, sl, tp, close_time, value_date, " + "expiration, reason, commission, commission_agent, storage, " + "close_price, profit, taxes, magic, comment, internal_id, " + "activation, spread, margin_rate, leverage, pov, pip_coefficient, " + "from_code, to_code) " + "VALUES(@mt4id, @timestamp, @orderid, " + "@login, @symbol, @digits, @cmd, @volume, @open_time, " + "@state, @open_price, @sl, @tp, @close_time, @value_date, " + "@expiration, @reason, @commission, @commission_agent, @storage, " + "@close_price, @profit, @taxes, @magic, @comment, @internal_id, " + "@activation, @spread, @margin_rate, @leverage, @pov, @pip_coefficient, " + "@from_code, @to_code) " + "ON DUPLICATE KEY UPDATE " + "login=@login, symbol=@symbol, digits=@digits, cmd=@cmd, volume=@volume, open_time=@open_time, " + "state=@state, open_price=@open_price, sl=@sl, tp=@tp, close_time=@close_time, value_date=@value_date, " + "expiration=@expiration, reason=@reason, commission=@commission, commission_agent=@commission_agent, storage=@storage, " + "close_price=@close_price, profit=@profit, taxes=@taxes, magic=@magic, comment=@comment, internal_id=@internal_id, " + "activation=@activation, spread=@spread, margin_rate=@margin_rate, " + "leverage=@leverage, pov=@pov, pip_coefficient=@pip_coefficient"; cmd.CommandText = sql; cmd.Parameters.AddWithValue("@mt4id", aRecord.login); cmd.Parameters.AddWithValue("@timestamp", aRecord.timestamp.FromTime32()); cmd.Parameters.AddWithValue("@orderid", aRecord.order); cmd.Parameters.AddWithValue("@login", aRecord.login); cmd.Parameters.AddWithValue("@symbol", aRecord.symbol); cmd.Parameters.AddWithValue("@digits", aRecord.digits); cmd.Parameters.AddWithValue("@cmd", aRecord.cmd); cmd.Parameters.AddWithValue("@volume", aRecord.volume); cmd.Parameters.AddWithValue("@open_time", aRecord.open_time.FromTime32()); cmd.Parameters.AddWithValue("@state", aRecord.state); cmd.Parameters.AddWithValue("@open_price", aRecord.open_price); cmd.Parameters.AddWithValue("@sl", aRecord.sl); cmd.Parameters.AddWithValue("@tp", aRecord.tp); cmd.Parameters.AddWithValue("@close_time", aRecord.close_time.FromTime32()); cmd.Parameters.AddWithValue("@value_date", aRecord.value_date); cmd.Parameters.AddWithValue("@expiration", aRecord.expiration); cmd.Parameters.AddWithValue("@reason", aRecord.reason); cmd.Parameters.AddWithValue("@commission", aRecord.commission); cmd.Parameters.AddWithValue("@commission_agent", aRecord.commission_agent); cmd.Parameters.AddWithValue("@storage", aRecord.storage); cmd.Parameters.AddWithValue("@close_price", aRecord.close_price); cmd.Parameters.AddWithValue("@profit", aRecord.profit); cmd.Parameters.AddWithValue("@taxes", aRecord.taxes); cmd.Parameters.AddWithValue("@magic", aRecord.magic); cmd.Parameters.AddWithValue("@comment", aRecord.comment); cmd.Parameters.AddWithValue("@internal_id", aRecord.internal_id); cmd.Parameters.AddWithValue("@activation", aRecord.activation); cmd.Parameters.AddWithValue("@spread", aRecord.spread); cmd.Parameters.AddWithValue("@margin_rate", aRecord.margin_rate); cmd.Parameters.AddWithValue("@leverage", leverage); cmd.Parameters.AddWithValue("@pov", pov); cmd.Parameters.AddWithValue("@pip_coefficient", pip_coefficient); cmd.Parameters.AddWithValue("@from_code", aFromCode); cmd.Parameters.AddWithValue("@to_code", aToCode); cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); cmd.CommandText = "DELETE FROM `order` WHERE order_id = @orderid"; cmd.Parameters.AddWithValue("@orderid", aRecord.order); cmd.ExecuteNonQuery(); } } }
void PasteTransform(TRANS_TYPE nGroupIndex) { switch (nGroupIndex) { case TRANS_TYPE.POSITION: SetTransform(TRANS_TYPE.POSITION, m_CopyTransform.m_vecPos); break; case TRANS_TYPE.ROTATION: SetTransform(TRANS_TYPE.ROTATION, m_CopyTransform.m_vecRotHint); break; case TRANS_TYPE.SCALE: SetTransform(TRANS_TYPE.SCALE , m_CopyTransform.m_vecScale); break; } }