Ejemplo n.º 1
0
    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();
    }
Ejemplo n.º 2
0
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 ();
}
Ejemplo n.º 3
0
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);
}