Ejemplo n.º 1
0
 public TradeInfoEventArgs(TRANS_TYPE aType, TradeRecordResult aTrade)
 {
     FromUsercode = null;
     ToUsercode   = null;
     TradeType    = aType;
     Trade        = aTrade;
 }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    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);
    }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
    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;
            }
        }
    }
Ejemplo n.º 6
0
 static void resetTransaction()
 {
     transType   = TRANS_TYPE.NONE;
     fromAccount = ACCT_TYPE.EMPTY;
     toAccount   = ACCT_TYPE.EMPTY;
     transAmount = NAN;
     pinRetries  = 0;
 }
Ejemplo n.º 7
0
        protected override void OnPumpTrade(TRANS_TYPE aType, TradeRecordResult aRecord)
        {
            var handler = OnNewTrade;

            if (handler != null)
            {
                handler(this, new TradeInfoEventArgs(aType, aRecord));
            }
        }
Ejemplo n.º 8
0
    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;
        }
    }
Ejemplo n.º 9
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;
        }
    }
Ejemplo n.º 10
0
    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);
    }
Ejemplo n.º 11
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);
    }
Ejemplo n.º 12
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;
                }
            }
        }
    }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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));
            }
        }
Ejemplo n.º 15
0
 static MSG custSelectTrans(TRANS_TYPE transactionType)
 {
     return(MSG.SELECT_FROM_ACCT);
 }
Ejemplo n.º 16
0
 static MSG custSelectTrans([Domain("TransTypes")] TRANS_TYPE transactionType)
 {
     transType = transactionType; return(MSG.SELECT_FROM_ACCT);
 }
Ejemplo n.º 17
0
	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;
	}
Ejemplo n.º 18
0
 static MSG custSelectTrans(TRANS_TYPE transactionType)
 {
     return MSG.SELECT_FROM_ACCT;
 }
Ejemplo n.º 19
0
 static MSG custSelectTrans([Domain("TransTypes")] TRANS_TYPE transactionType)
 {
     transType = transactionType; return MSG.SELECT_FROM_ACCT;
 }
Ejemplo n.º 20
0
    // ==========================================================================================================
    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();
    }
Ejemplo n.º 21
0
	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;
	}
Ejemplo n.º 22
0
	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;
	}
Ejemplo n.º 23
0
	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;
		}
	}
Ejemplo n.º 24
0
	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;
	}
Ejemplo n.º 25
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;
	}
Ejemplo n.º 26
0
    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;
        }
    }
Ejemplo n.º 27
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;
		}
	}
Ejemplo n.º 28
0
        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();
                }
            }
        }
Ejemplo n.º 29
0
	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;
			}
		}
	}
Ejemplo n.º 30
0
 static void resetTransaction()
 {
     transType = TRANS_TYPE.NONE;
     fromAccount = ACCT_TYPE.EMPTY;
     toAccount = ACCT_TYPE.EMPTY;
     transAmount = NAN;
     pinRetries = 0;
 }
Ejemplo n.º 31
0
	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;
		}
	}