示例#1
0
/*

	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;
}
示例#2
0
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;
	}
}