Домой Классы Статические функции Перечисления (ENUM) Записи (RECORD)

{Scene|_2D}


CLASS {Scene|_2D} , UNTESTED:



IMPORT : {Paintbox} , {Date_time} , {Geometry} , {Canvas} , {Bitmap} , {Form} , {String_functions} , {AL4_drawing} , {System_functions} , {Mathematics} .

BASE CLASS {Paintbox} .


 

FUNCTION New_scene|_2D (
     
{Form} Parent|_form ,
     
STR Alias|_scene ,
     
STR Scrollbars|_V_H ) ==> {Scene} , NEW



-------------------------------------------------------------- 'primitives'

     

STRUCTURE {polygon|_or_polyline}

      {Geometry}.{point} Vertex|es_array[]

      BOOL Is_closed|_polygon .



STRUCTURE {ellipse|_or_arc}

      REAL A_axis|_BIG_of_ellipse

      REAL B_axis|_low_of_ellipse

      REAL Start|_angle_of_arc

      REAL Sweep|_angle_360_full_ellipse

      REAL End_start|_angle_at_end_of_animation

      REAL End_sweep|_angle_at_end_of_animation

      BOOL Is_pie|_lines_from_center .



STRUCTURE {sprite}

      {Bitmap} Image_|to_draw_ .



STRUCTURE {text|_multiline}

      STR Text|_to_draw

      STR Font|_name

      REAL Size|_font_height

      BOOL Bold|_font_style

      BOOL Italic|_style

      BOOL Underline|_style

      BOOL Box|ed_text

      REAL Margins|_for_around_box .



STRUCTURE {primitive}

      BOOL Is_polygon

      BOOL Is_ellipse

      BOOL Is_sprite

      BOOL Is_text|_primitive

      BOOL Is_transform|ation

      {polygon} Polygon|_or_polyline

      {ellipse} Ellipse|_or_arc

      {sprite} Sprite|_image

      {text} Text|_string

      INT Foreground

      INT Background

      REAL Pen_width

      {point} Corner|_all_points_are_relative_to_it

      REAL Rotation|_angle

      BOOL Animation|_used

      {date_time} Start_time

      {date_time} End_time

      {point} End_offset|_corner_0_0_if_not_moving

      REAL End_rotation|_absolute

      REAL Scale_X|_use_1_to_not_scale

      REAL Scale_Y|_use_1_to_not_scale

      REAL End_scale_X|_use_1_to_not_scale

      REAL End_scale_Y|_use_1_to_not_scale

      BOOL Repeat|animation

      BOOL Alter_direction|each_time_on_repeat

      INT Time_disappear|between_animations_milliseconds

      BOOL Currently_back_dir|ection_animation_switched_if_alter_direction

      STR Name|_of_primitive_or_group

      INT Priority|_to_draw_from_0_to_N .



--------------------------------------------------------- 'make primitives'

          

FUNCTION Make_polyline (
     
STR Name|_of_primitive ,
     
{point} Corner|_point ) ==> {primitive}



FUNCTION Make_polygon (
     
STR Name|_of_primitive ,
     
{point} Corner|_point ) ==> {primitive}



FUNCTION Make_rect|angle (
     
STR Name|_of_primitive ,
     
{Geometry}.{rect} R|ectangle ) ==> {primitive}



FUNCTION Make_ellipse (
     
STR Name|_of_primitive ,
     
{rect} R|ectangle_initial ) ==> {primitive}



FUNCTION Make_arc (
     
STR Name|_of_primitive ,
     
{rect} R|ectangle_initial ,
     
{point} Angles|_Xstart_Ysweep ) ==> {primitive}



FUNCTION Make_pie (
     
STR Name|_of_primitive ,
     
{rect} R|ectangle_initial ,
     
{point} Angles|_Xstart_Ysweep ) ==> {primitive}



FUNCTION Make_sprite (
     
STR Name|_of_primitive ,
     
{rect} R|ectangle_initial ,
     
{Bitmap} Image|_sprite ) ==> {primitive}



FUNCTION Make_text (
     
STR Name|_of_primitive ,
     
STR Text|_may_be_multiline ,
     
{point} Top_left|_corner ) ==> {primitive}



FUNCTION Make_transform (
     
STR Name|_of_primitive ,
     
{point} Offset|transform ,
     
REAL Rotate|degrees_after_offset ) ==> {primitive}



FUNCTION Make_scale|transform (
     
STR Name|_of_primitive ,
     
REAL X_scale|factor ,
     
REAL Y_scale|factor ) ==> {primitive}



---------------------------------------- 'add / delete / update primitives'

{primitive} All|_primitives[] , READ


      

METHOD Add|_primitive_to_scene ( {primitive} P|rimitive_to_add )



METHOD Delete|_primitive_by_index (
     
INT I|ndex_of_primitive_to_delete )



METHOD Delete_by_name ( STR Patt|ern_to_delete_matching )



METHOD Find|_by_name (
     
STR Patt|ern_to_find ,
     
INT From|_which_index_to_find ) ==> INT



METHOD Update_primitive|_by_index (
     
INT I|ndex_of_primitive_to_delete ,
     
{primitive} P|rimitive_replacing_old )



METHOD Move|_primitive_in_order (
     
INT Old INDEXING {primitive} ,
     
INT New INDEXING {primitive} )



------------------------------------------------------- 'control animation'

INT Interval|_between_frames_of_animation


 

METHOD Set_interval|_animation ( INT New|_interval_1_TO_10000_ms )



---------------------------------------------------------------- 'painting'

END


См. так же с защищёнными членами