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