#pragma once #include "DS_2b_cube.h" #include "DS_1b_cube.h" #include "dispore_all.h" #include "PoroMediaDialogShare.h" class IsolatedVoxRemover { public: IsolatedVoxRemover(DS_1b_cube* input_cube); ~IsolatedVoxRemover(); DS_1b_cube* Run_Vox_Remover(char* out_prefix, unsigned char val_to_remove, unsigned long int min_val_volume, void* dlg); private: // void mark6_speed(unsigned short int zseed, unsigned short int yseed, unsigned short int xseed); void mark6_stack(); void region_6(int *error_code); void del_reg(); void val_reg(); //variables typedef struct _voxel { unsigned short int z; unsigned short int y; unsigned short int x; unsigned char next_dir; } voxel; voxel ** stack; unsigned int stack_ptr; DS_2b_cube * cube; unsigned short int min_X, max_X, min_Y, max_Y, min_Z, max_Z, ns_X, ns_Y; unsigned short int wX, wY, wZ; unsigned char mark_val, active_val, background_val, valid_val; unsigned long int volume; unsigned long int min_volume; bool valid_flag, part_flag; unsigned long int MAX_DEPTH; };