Exemple #1
0
 /// \fn     public void _MInitTransitions(int _statesCount)
 ///
 /// \brief  Inits Markov model transitions.
 ///
 /// \author Khoubaeib Klai | [email protected]
 /// \date   24/04/2014
 ///
 /// \version 1.0
 ///
 /// \param  _statesCount number of states in the MM.
 private void _MInitTransitions(int _statesCount)
 {
     _m_TransitionsGUID = new Guid[_statesCount * _statesCount];
     for (int i = 0; i < _statesCount; i++)
     {
         for (int j = 0; j < _statesCount; j++)
         {
             AKN_GraphEdge _graphEdge = new AKN_GraphEdge(_m_NodeDict[_m_StatesGUID[i]], _m_NodeDict[_m_StatesGUID[j]], 0.0F);
             _m_NodeDict[_m_StatesGUID[i]].MBiConnectNode(_m_NodeDict[_m_StatesGUID[j]], 0.0F, out _graphEdge);
             m_DicoEdge[_graphEdge.m_id] = _graphEdge;
             _m_TransitionsGUID[(i * _statesCount) + j] = _graphEdge.m_id;
         }
     }
 }
Exemple #2
0
            /// \fn     public AKN_Status MBiConnectNode(AKN_Node_Base _nodeToConnect1, float _cost, out AKN_GraphEdge _graphEdge)
            ///
            /// \brief
            ///
            /// \author Alexandre Sambo
            /// \date   27/05/2010
            ///
            /// \param  _nodeToConnect1 The node to connect.
            /// \param  _cost cost of connection (can be time, distance, ...)
            /// \param  _graphEdge return created graphEdge
            ///
            /// \return return  if the connection success or note
            public AKN_Status MBiConnectNode(AKN_Node_Base _nodeToConnect1, float _cost, out AKN_GraphEdge _graphEdge)
            {
                AKN_Status newStatus = AKN_Status.m_Success;

                if (!MConnectNode(_nodeToConnect1))
                {
                    newStatus = AKN_Status.m_Failure;
                }
                if (!_nodeToConnect1.MConnectNode(this))
                {
                    newStatus = AKN_Status.m_Failure;
                }
                if (_cost < 0f)
                {
                    newStatus = AKN_Status.m_Failure;
                }
                _graphEdge = new AKN_GraphEdge(this, _nodeToConnect1, _cost, "edge_" + this.m_label + "_" + _nodeToConnect1.m_label);
                m_linkedEdge[_graphEdge.m_id] = _graphEdge;
                _nodeToConnect1.m_linkedEdge[_graphEdge.m_id] = _graphEdge;

                return(newStatus);
            }
Exemple #3
0
 /// \fn public void MAddEdgeInLinckedEdge(AKN_GraphEdge _Edge)
 ///
 /// \brief  Connect link.
 ///
 /// \author Ze Taupe
 /// \date   25/08/2012
 ///
 /// \param  _Edge   The edge.
 public void MAddEdgeInLinckedEdge(AKN_GraphEdge _Edge)
 {
     this._m_linkedEdge.Add(_Edge.m_id, _Edge);
 }