void AddRules(CbcModel& model, const Graph& gr) { vector<CbcBranchAllDifferent*> objects; ForEachEdge(gr, [&](Node n_1, Node n_2) { int arr[2] = {n_1, n_2}; objects.push_back(new CbcBranchAllDifferent(&model, 2, arr)); }); model.addObjects(objects.size(), (CbcObject**)objects.data()); for (auto obj : objects) { delete obj; } objects.clear(); }
void ResetReadTrace (gboolean delete_hhh) { //reset everything if (delete_hhh) { if (!hhh_filename) hhh_filename = g_strdup_printf ("%s.hhh", projectName); remove (hhh_filename); GtkWidget *warningButton = GTK_WIDGET (gtk_object_get_data (GTK_OBJECT (MainWindow2), "WarningButton")); gtk_widget_hide (warningButton); } hhh_file = NULL; last_nonCRed_position = 0; last_processed_time = -1; last_read_time = -1; last_drawable_time = -1; last_drawn_time = -1; if (positions) g_free (positions); nb_positions = 100000; positions = g_new0 (struct HHHTimeUnitInfo, nb_positions); controlThreadsLength = 1000; controlThreads = g_new0 (struct ControlThread, controlThreadsLength); controlThreadsLastNum = -1; GtkObject *dialogue = GTK_OBJECT (MainWindow2); timeLabel = GTK_LABEL (gtk_object_get_data (dialogue, "TimeLabel")); UpdateTimeLabel (); ForEachEdge (ResetReadTrace_ResetEdge); StartReadTraceTimer (); // ResetSourceView (); }
void Core_SimTrace_ChangeTimeTo (int time) { if (!positions) { fprintf (stderr, "Bad request Core_SimTrace_ChangeTimeTo(%d), when positions == NULL\n", time); return; } if (time < 0) time = 0; if (time > last_drawable_time) time = last_drawable_time; ProcessUntilTime (time); last_drawn_time = time; ForEachEdge (on_TimeSpin_changed_AdjustEdge_posInTrace); Core_Simtrace_ForEachThread (on_TimeSpin_changed_AdjustThread_posInTrace); Core_SimTraceTimeChanged (time); //a remettre: DrawTimeStep (time); }