CMGDK r49-rc2
|
00001 # i f n d e f H G L _ A S T A R _ F I N D _ P A T H _ I N C L U D E 00002 00003 # d e f i n e H G L _ A S T A R _ F I N D _ P A T H _ I N C L U D E 00004 00005 00006 00007 # i n c l u d e < h g l / t y p e / L i s t . H > 00008 00009 n a m e s p a c e h g l 00010 00011 { 00012 00013 / * * 00014 00015 * [!jWWW{|c 00016 00017 * / 00018 00019 c l a s s F i n d P a t h / / / [!jWWW{| 00020 00021 { 00022 00023 p r o t e c t e d : 00024 00025 00026 00027 i n t L e f t , T o p ; 00028 00029 i n t S t a r t X , S t a r t Y ; 00030 00031 i n t E n d X , E n d Y ; 00032 00033 i n t W i d t h , H e i g h t ; 00034 00035 00036 00037 v i r t u a l b o o l f i n d _ p a t h ( ) = 0 ; 00038 00039 00040 00041 p u b l i c : / / NN 00042 00043 00044 00045 D e f E v e n t ( b o o l , C h e c k P o i n t , ( i n t , i n t , i n t , i n t ) ) ; / / / < hg N*Np/f&TSpNN 00046 00047 00048 00049 p u b l i c : / / ^\'` 00050 00051 00052 00053 s t r u c t S t e p C o o r d 00054 00055 { 00056 00057 i n t x , y ; 00058 00059 00060 00061 S t e p C o o r d ( ) { x = y = 0 ; } 00062 00063 S t e p C o o r d ( i n t _ x , i n t _ y ) { x = _ x ; y = _ y ; } 00064 00065 } ; 00066 00067 00068 00069 c l a s s S t e p L i s t : p u b l i c L i s t < S t e p C o o r d > 00070 00071 { 00072 00073 p u b l i c : 00074 00075 00076 00077 v o i d A d d ( i n t x , i n t y ) 00078 00079 { 00080 00081 L i s t < S t e p C o o r d > : : A d d ( S t e p C o o r d ( x , y ) ) ; 00082 00083 } 00084 00085 00086 00087 v o i d I n s e r t ( i n t i n d e x , i n t x , i n t y ) 00088 00089 { 00090 00091 L i s t < S t e p C o o r d > : : I n s e r t ( i n d e x , S t e p C o o r d ( x , y ) ) ; 00092 00093 } 00094 00095 } ; 00096 00097 00098 00099 S t e p L i s t S t e p s ; / / / < g~bvekP[~g 00100 00101 00102 00103 i n t M a x F i n d ; / / / < g'Yg~bppe, ؞1 2 8 00104 00105 00106 00107 p u b l i c : / / el 00108 00109 00110 00111 F i n d P a t h ( i n t w , i n t h ) ; 00112 00113 v i r t u a l ~ F i n d P a t h ( ) { S t e p s . C l e a r ( ) ; } 00114 00115 00116 00117 v o i d S e t S t a r t ( i n t x , i n t y ) ; / / / < nwYp 00118 00119 v o i d S e t E n d ( i n t x , i n t y ) ; / / / < nvhp 00120 00121 00122 00123 b o o l F i n d ( ) ; / / / < _Yg~b 00124 00125 b o o l F i n d ( i n t l , i n t t , i n t s x , i n t s y , i n t e x , i n t e y ) ; / / / < _Yg~b 00126 00127 b o o l F i n d ( i n t s x , i n t s y , i n t e x , i n t e y ) ; / / / < _Yg~b 00128 00129 } ; / / c l a s s F i n d P a t h 00130 00131 00132 00133 / * * 00134 00135 * [{lg>N 00136 00137 * / 00138 00139 e n u m F i n d P a t h A l g o r i t h m l / / / [{lg>N 00140 00141 { 00142 00143 f p a N o n e = 0 , 00144 00145 00146 00147 f p a A S t a r , / / / < A * VeT 00148 00149 f p a A S t a r 8 , / / / < A * kQeT 00150 00151 f p a L i n e , / / / < v~ 00152 00153 00154 00155 f p a E n d 00156 00157 } ; 00158 00159 00160 00161 t y p e d e f F i n d P a t h A l g o r i t h m l F P A ; 00162 00163 00164 00165 F i n d P a t h * C r e a t e F i n d P a t h ( F P A , i n t , i n t ) ; / / / < R^[!jWW 00166 00167 } / / n a m e s p a c e h g l 00168 00169 # e n d i f / / H G L _ A S T A R _ F I N D _ P A T H _ I N C L U D E 00170 00171