/* Free an UNDO struct */ void FreeUndo(UndoData *p_undo) { #define FREE_OBJECTS(name) \ if (p_undo->##name != NULL) \ FreeMemory (p_undo->##name); \ p_undo->Num##name = 0; FREE_OBJECTS(Things); FREE_OBJECTS(Vertexes); FREE_OBJECTS(LineDefs); FREE_OBJECTS(SideDefs); FREE_OBJECTS(Sectors); p_undo->MadeChanges = FALSE; p_undo->MadeMapChanges = FALSE; }
void blt_set_invariants::compute(int verbose_level) { int f_v = (verbose_level >= 1); if (f_v) { cout << "blt_set_invariants::compute" << endl; } longinteger_object *R; Sos = NEW_OBJECT(set_of_sets); Sos2 = NEW_OBJECT(set_of_sets); Sos3 = NEW_OBJECT(set_of_sets); D2 = NEW_OBJECT(decomposition); D3 = NEW_OBJECT(decomposition); if (f_v) { cout << "blt_set::report before P->plane_intersections" << endl; } D->P->plane_intersections(D->G53, the_set_in_PG, set_size, R, *Sos, verbose_level); if (f_v) { cout << "blt_set::report before intersection_matrix" << endl; } Sos->intersection_matrix( intersection_type, highest_intersection_number, intersection_matrix, nb_planes, verbose_level); if (f_v) { cout << "blt_set::report before " "extract_largest_sets" << endl; } Sos->extract_largest_sets(*Sos2, Sos2_idx, verbose_level); if (f_v) { cout << "blt_set::report before " "remove_sets_of_given_size" << endl; } Sos->remove_sets_of_given_size(3, *Sos3, Sos3_idx, verbose_level); if (f_v) { cout << "blt_set::report before " "Sos2->compute_tdo_decomposition" << endl; } Sos2->compute_tdo_decomposition(*D2, verbose_level); D2->get_row_scheme(verbose_level); D2->get_col_scheme(verbose_level); if (Sos3->nb_sets) { if (f_v) { cout << "blt_set::report before " "Sos3[h].compute_tdo_decomposition" << endl; } Sos3->compute_tdo_decomposition(*D3, verbose_level); D3->get_row_scheme(verbose_level); D3->get_col_scheme(verbose_level); } #if 0 P->plane_intersection_invariant(G, data2, set_size, intersection_type[h], highest_intersection_number[h], intersection_matrix[h], nb_planes[h], verbose_level); #endif FREE_OBJECTS(R); if (f_v) { cout << "blt_set_invariants::compute done" << endl; } }