#pragma once #include "afxwin.h" #include "MedialDialog.h" #include "DS_1b_cube.h" class MedialAxis { public: MedialAxis(DS_1b_cube* ds_cube_ptr, void * medial_dialog_ptr); ~MedialAxis(void); DS_cube* Thinning(); DS_cube* Thinning_Vect(); private: typedef float vect3f[3]; typedef int vect3i[3]; //MS using Lindquist void Mark_if_MS8(unsigned short z, unsigned short y, unsigned short x, unsigned short iteration); void Mark_if_MS26(unsigned short z, unsigned short y, unsigned short x, unsigned short iteration); void Mark_if_MA(unsigned short z, unsigned short y, unsigned short x, unsigned short iteration); //MS using vectors void Make_Unit_Vector(vect3f vector, vect3i ret_vect); unsigned char Get_Fiber_Vect(unsigned short z, unsigned short y, unsigned short x, unsigned short iteration, vect3f ret_vect); unsigned char Get_Pore_Vect(unsigned short z, unsigned short y, unsigned short x, DS_cube * cube, unsigned short iteration, vect3f ret_vect); //external pointers DS_1b_cube* ds_cube; DS_cube * icube; //progress bar and text CEdit * progress_txt; CProgressCtrl * progress_bar; DS_cube * skeleton; };