Диссертация (1137096), страница 46
Текст из файла (страница 46)
markParametersAreSet ( ) ;_ r e s u l t _ x j a l . ag e = ag e ;_ r e s u l t _ x j a l . gender = gender ;_ r e s u l t _ x j a l . v_comf = v_comf ;_ r e s u l t _ x j a l . v_max = v_max ;_ r e s u l t _ x j a l . v _ h at _ m ax = v _ h at _ m ax ;_result_xjal . status = status ;_result_xjal . situation = situation ;_result_xjal . exit = exit ;_ r e s u l t _ x j al . expl = expl ;_result _xj al . status_change = status_change ;225_result_xjal . s = s ;_result_xjal . cross_exit = cross_exit ;/ / Завершение с о з д а н и я вложенного объектаperson .
c a l l C r e a t e ( _ r e s u l t _ x j a l , index ) ;_result_xjal . st ar t () ;return _result_xjal ;5180}5185519051955200/ ∗∗∗ Этот метод удаляет заданный вложенный объект и з к о л л е к ц и и э к з е м п л я р о в р е п л и ц и р о в а н н о г о объекта p erso n <br>∗ Данный объект будет уничтожен , но в общем с л у ч а е это произойдет позже .∗ @param o b j e c t активный объект − элемент р е п л и ц и р о в а н н о г о вложенного объекта p erso n , который должен быть у д а л е н∗ @ ret u rn <code >t r u e </ code > , е с л и объект успешно уда л ен , <code > f a l s e </ code > , е с л и он не принадлежит p e r s o n∗/p u b l i c boolean remove_person ( Person o b j e c t ) {i f ( ! p e r s o n .
_remove ( o b j e c t ) ) {return false ;}object . setDestroyed () ;return true ;}/ ∗∗∗ Создает э к з е м п л я р вложенного объекта и добавляет е г о в ко н ец сп и ска э к з е м п л я р о в р еп л и ц и р о в а н н ы х объектов<br >∗ <i >П о л ь зо в а т ел ь не должен вызывать этот метод </ i >∗/p r o t e c t e d Explosion i n s t a n t i a t e _ e x p l o s i o n _ x j a l ( f i n a l i n t index ) {E x p l o s i o n _ r e s u l t _ x j a l = new E x p l o s i o n ( g e t E n g i n e ( ) , t h i s , e x p l o s i o n ) ;5205e x p l o s i o n .
_ ad d ( _ r e s u l t _ x j a l ) ;return _result_xjal ;}5210521552205225523052355240/ ∗∗∗ И н и ц и а л и за ц и я параметров э к з е м п л я р а вложенного объекта<br >∗ П о л ь зо в а т ел ь не должен вызывать этот метод∗/p r i v a t e void se t u p P a r a m e t e r s_ e x p l o si o n _ x j a l ( f i n a l Explosion se l f , f i n a l i n t index ) {sel f . epsilon0 =s c a l e . t o P i x e l s ( v a r e p s i l o n _ 0 , LENGTH_UNIT_METER );sel f .
epsilon1 =s c a l e . t o P i x e l s ( v a r e p s i l o n _ 1 , LENGTH_UNIT_METER );sel f . epsilon2 =s c a l e . t o P i x e l s ( v a r e p s i l o n _ 2 , LENGTH_UNIT_METER );}/ ∗∗∗ И н и ц и а л и за ц и я э к з е м п л я р а вложенного объекта<br >∗ П о л ь зо в а т ел ь не должен вызывать этот метод∗/p r i v a t e void c r e a t e _ e x p l o s i o n _ x j a l ( Explosion se l f , f i n a l i n t index ) {self . create () ;/ / Port c o n n e c t i o n s}/ ∗∗∗ Создает э к з е м п л я р вложенного объекта и добавляет е г о в ко н ец сп и ска э к з е м п л я р о в р еп л и ц и р о в а н н ы х объектов<br >∗ <i >П о л ь зо в а т ел ь не должен вызывать этот метод </ i >∗/p r o t e c t e d Person i n s t a n t i a t e _ p e r s o n _ x j a l ( f i n a l i n t index ) {P e r s o n _ r e s u l t _ x j a l = new P e r s o n ( g e t E n g i n e ( ) , t h i s , p e r s o n ) ;p e r s o n .
_ ad d ( _ r e s u l t _ x j a l ) ;5245return _result_xjal ;}/ ∗∗∗ И н и ц и а л и за ц и я параметров э к з е м п л я р а вложенного объекта<br >5250∗ П о л ь зо в а т ел ь не должен вызывать этот метод∗/p r i v a t e void s e t u p P a r a m e t e r s _ p e r s o n _ x j a l ( f i n a l Person s e l f , f i n a l i n t index ) {s e l f . ag e =u n i f o r m _ d iscr (6 , 79)5255 ;s e l f . gender =G en d er . v a l u e s ( ) [ b e r n o u l l i ( 0 . 5 ) ];226selfselfselfselfselfselfselfselfselfself52605265. v_comf = s e l f .
_ v _ c o m f _ D e f a u l t V a l u e _ x j a l ( ) ;. v_max = s e l f . _ v _ m a x _ D e f a u l t V a l u e _ x j a l ( ) ;. v _ h at _ m ax = s e l f . _ v _ h a t _ m a x _ D e f a u l t V a l u e _ x j a l ( ) ;. status = self . _status_DefaultValue_xjal () ;. situation = self . _situation_DefaultValue_xjal () ;. exit = self . _exit_DefaultValue_xjal () ;. expl = s e l f .
_expl_DefaultValue_xjal () ;. status_change = self . _status_change_DefaultValue_xjal () ;. s = s el f . _s_DefaultValue_xjal ( ) ;. cross_exit = sel f . _cross_exit_DefaultValue_xjal () ;}52705275/ ∗∗∗ И н и ц и а л и за ц и я э к з е м п л я р а вложенного объекта<br >∗ П о л ь зо в а т ел ь не должен вызывать этот метод∗/p r i v a t e void c r e a t e _ p e r s o n _ x j a l ( Person s e l f , f i n a l i n t index ) {s e l f . setEnvironment ( t h i s ) ;self . create () ;/ / Port c o n n e c t i o n s5280}/ / Функции5285/ ∗∗∗ Функция расчета параметров области м о дел и р о в а н и я∗/v o i d A r ea ( ) {viewArea_base .
setWidth ( width ) ;5290 v i e w A r e a _ b a s e . s e t H e i g h t ( h e i g h t ) ;r e c t a n g l e _ b a se . setWidth ( width ) ;rectangle_base . setHeight ( height ) ;viewArea_base . navigateTo ( ) ;}5295/ ∗∗∗ Функция отрисовки стен∗/v o i d myWall ( ) {5300Wal l myWallUp ;Wal l myWallDown;myWallUp = new Wal l ( t h i s , SHAPE_DRAW_2D3D , t r u e , WALL_FILL_NONE, b l a c k , 2 . 0 , 5 0 . 0 , SegmentUp ( ) ) ;myWallDown = new Wal l ( t h i s , SHAPE_DRAW_2D3D , t r u e , WALL_FILL_NONE, b l a c k , 2 . 0 , 5 0 .
0 , SegmentDown ( ) ) ;5305 myWallUp . i n i t i a l i z e ( ) ;myWallDown. i n i t i a l i z e ( ) ;myWallUp . s e t V i s i b l e ( t r u e ) ;myWallDown. s e t V i s i b l e ( t r u e ) ;p r e s e n t a t i o n . add ( myWallUp ) ;5310 p r e s e n t a t i o n . add ( myWallDown) ;}5315/ ∗∗∗ Функция расчетов в е р х н и х сегментов стены∗/MarkupSegment [ ]SegmentUp ( ) {5320 MarkupSegment [ ] MarkupSegmentUp ;i f ( b11==b0 && b21==b0 ) {MarkupSegmentUp = new MarkupSegment [ ] {new Mar k u p S eg m en t Li n e ( a0 , b0 , 0 .
0 , a21 ,} e l s e i f ( b11 ! = b0 && b21==b0 ) {5325 MarkupSegmentUp = new MarkupSegment [ ] {new Mar k u p S eg m en t Li n e ( a11 , b11 , 0 . 0 , a0new Mar k u p S eg m en t Li n e ( a0 , b0 , 0 . 0 , a21 ,} e l s e i f ( b11==b0 && b21 ! = b0 ) {MarkupSegmentUp = new MarkupSegment [ ] {5330new Mar k u p S eg m en t Li n e ( a0 , b0 , 0 . 0 , a21 ,new Mar k u p S eg m en t Li n e ( a21 , b0 , 0 . 0 , a21} else {MarkupSegmentUp = new MarkupSegment [ ] {new Mar k u p S eg m en t Li n e ( a11 , b11 , 0 .
0 , a05335new Mar k u p S eg m en t Li n e ( a0 , b0 , 0 . 0 , a21 ,new Mar k u p S eg m en t Li n e ( a21 , b0 , 0 . 0 , a21}r e t u r n MarkupSegmentUp ;}5340b0 , 0 . 0 ) } ;, b0 , 0 . 0 ) ,b0 , 0 . 0 ) } ;b0 , 0 . 0 ) ,, b21 , 0 . 0 ) } ;, b0 , 0 . 0 ) ,b0 , 0 . 0 ) ,, b21 , 0 . 0 ) } ;227/ ∗∗∗ Функция расчетов нижних сегментов стены∗/5345 MarkupSegment [ ]SegmentDown ( ) {5350535553605365MarkupSegment [ ] MarkupSegmentDown ;i f ( b12==b0+ l e n 2 && b22==b0+ l e n 2 ) {MarkupSegmentDown = new MarkupSegment [ ] {new Mar k u p S eg m en t Li n e ( a22 , b0+ l e n 2 ,} e l s e i f ( b12 ! = b0+ l e n 2 && b22==b0 + l e n 2 ) {MarkupSegmentDown = new MarkupSegment [ ] {new Mar k u p S eg m en t Li n e ( a22 , b0+ l e n 2 ,new Mar k u p S eg m en t Li n e ( a12 , b0+ l e n 2 ,} e l s e i f ( b12==b0+ l e n 2 && b22 ! = b0 + l e n 2 ) {MarkupSegmentDown = new MarkupSegment [ ] {new Mar k u p S eg m en t Li n e ( a22 , b22 , 0 .
0new Mar k u p S eg m en t Li n e ( a22 , b0+ l e n 2 ,} else {MarkupSegmentDown = new MarkupSegment [ ] {new Mar k u p S eg m en t Li n e ( a22 , b22 , 0 . 0new Mar k u p S eg m en t Li n e ( a22 , b0+ l e n 2 ,new Mar k u p S eg m en t Li n e ( a12 , b0+ l e n 2 ,}0 .
0 , a12 , b0+ l e n 2 , 0 . 0 ) } ;0 . 0 , a12 , b0+ l e n 2 , 0 . 0 ) ,0 . 0 , a12 , b12 , 0 . 0 ) } ;, a22 , b0 + l e n 2 , 0 . 0 ) ,0 . 0 , a12 , b0+ l e n 2 , 0 . 0 ) } ;, a22 , b0 + l e n 2 , 0 . 0 ) ,0 . 0 , a12 , b0+ l e n 2 , 0 . 0 ) ,0 . 0 , a12 , b12 , 0 . 0 ) } ;r e t u r n MarkupSegmentDown ;}53705375538053855390539554005405541054155420/ ∗∗∗ Функция отрисовки вертикальных гр а н и ц клеток∗/void Vert ( ) {int i ;i f ( m_hor >1 ) {L i n e _ v e r t = new S h a p e L i n e [ m_hor −1];f o r ( i = 0 ; i <=m_hor−2; i ++) {L i n e _ v e r t [ i ] = new S h a p e L i n e ( ) ;L i n e _ v e r t [ i ] . setDrawMode ( ShapeDrawMode .
SHAPE_DRAW_2D3D) ;Line_vert [ i ] . setLineWidth ( 1 . 0 ) ;Li n e _ v e r t [ i ] . se t C o l o r ( green ) ;Line_vert [ i ] . setZHeight (50 . 0) ;L i n e _ v e r t [ i ] . s e t X ( l e n 1 ∗( i +1 ) / m_hor+a0 ) ;L i n e _ v e r t [ i ] . s e t Y ( b0 ) ;Line_vert [ i ] . setZ (0) ;L i n e _ v e r t [ i ] . setDx ( 0 ) ;L i n e _ v e r t [ i ] . setDy ( len2 ) ;L i n e _ v e r t [ i ] . setDz ( 0 ) ;L i n e _ v e r t [ i ] .
s e t L i n e S t y l e ( LINE_STYLE_DASHED ) ;Line_vert [ i ] . setVisible ( true ) ;p r e s e n t a t i o n . add ( L i n e _ v e r t [ i ] ) ;}}}/ ∗∗∗ Функция отрисовки го р и зо н т а л ь н ы х гр а н и ц клеток∗/v o i d Hor ( ) {int i ;i f ( m _ v er t >1 ) {L i n e _ h o r = new S h a p e L i n e [ m _ v er t −1];f o r ( i = 0 ; i <= m _ v er t −2; i ++) {L i n e _ h o r [ i ] = new S h a p e L i n e ( ) ;L i n e _ h o r [ i ] .
setDrawMode ( ShapeDrawMode . SHAPE_DRAW_2D3D) ;Line_hor [ i ] . setLineWidth ( 1 . 0 ) ;Line_hor [ i ] . s e t C o l o r ( green ) ;Line_hor [ i ] . setZHeight ( 5 0 . 0 ) ;L i n e _ h o r [ i ] . s e t X ( a11 ) ;L i n e _ h o r [ i ] . s e t Y ( l e n 2 ∗( i +1 ) / m _ v er t +b0 ) ;Line_hor [ i ] . setZ ( 0 ) ;Line_hor [ i ] .