/// <summary> /// Read the initial state vector and covariance from the settings class. /// Since state \f$ x_v \f$ and covariance \f$ P_{xx} \f$ are not stored in /// the class, these are passed by reference to be filled in by this function. /// </summary> /// <param name="settings"></param> /// <param name="initial_xv"></param> /// <param name="initial_Pxx"></param> public void read_initial_state(Settings settings, ref Vector initial_xv, ref MatrixFixed initial_Pxx) { ArrayList values; // Check that the motion model is correct values = settings.get_entry("InitialState", "MotionModel"); if ((String)values[0] != motion_model_type) { Debug.WriteLine("Attempted to read an initial state with a motion model of type " + motion_model_type + " where the initialisation data in the [InitialState] section" + " reports the type " + settings.get_entry("InitialState", "MotionModel") + "."); //throw Scene::InitialisationError(error.str()); } // Make sure the vector and matrix are the correct sizes initial_xv = new Vector(STATE_SIZE); initial_Pxx = new MatrixFixed(STATE_SIZE, STATE_SIZE); //initial_xv.Resize(STATE_SIZE); //initial_Pxx.Resize(STATE_SIZE, STATE_SIZE); initial_xv.Fill(0.0f); initial_Pxx.Fill(0.0f); values = settings.get_entry("InitialState", "xv"); String xv_stream = (String)values[0]; initial_xv.ReadASCII(xv_stream); values = settings.get_entry("InitialState", "Pxx"); String Pxx_stream = (String)values[0]; initial_Pxx.ReadASCII(Pxx_stream); }