https://bitbucket.org/lulinalex/mindstream/src/df97197da5148091a41bcf4e0ef4a522fa4adb55/Examples/Scripts/Point1/Point95.ms.script?at=B283
INTEGER type Pixel // - пиксель List type PixelList // - список пикселей class Point Pixel member X Pixel member Y members-end constructor : Pixel RightParam aX Pixel RightParam aY new[ aX |^ aY |^ ] >>> Result ; // : constructor 0 Point:: 0 0 >>> Result ; // 0 constructor XY PixelList right aPoint array var Points [ aPoint ] >>> Points Point:: ( Points FieldByOffset 0 ) ( Points FieldByOffset 1 ) >>> Result ; // XY Pixel readonly X read X Pixel readonly Y read Y constructor OF Point right aPoint Point:: ( aPoint Point:X ) ( aPoint Point:Y ) >>> Result ; // OF Point method + Point right aPoint Point:: ( Self Point:X (+) ( aPoint Point:X ) ) ( Self Point:Y (+) ( aPoint Point:Y ) ) >>> Result ; // + Point method Neg Point:: Neg ( Self Point:X ) Neg ( Self Point:Y ) >>> Result ; // Neg Point method - Point right aPoint Point:OF ( Self Point:+ ( aPoint Point:Neg ) ) >>> Result ; // - STRING method ToPrintable [ '( ' 'X: ' Self Point:X ToPrintable ', Y: ' Self Point:Y ToPrintable ' )' ] strings:Cat >>> Result ; // ToPrintable void method Print Self Point:ToPrintable Print ; // Print class-end // Point class Rectangle Point member TopLeft Point member BottomRight members-end Point readonly TopLeft read TopLeft Point readonly BottomRight read BottomRight constructor : Point RightParam aTopLeft Point RightParam aBottomRight new[ aTopLeft |^ aBottomRight |^ ] >>> Result ; // : STRING method ToPrintable [ '( ' 'TopLeft: ' Self Rectangle:TopLeft Point:ToPrintable ', BottomRight: ' Self Rectangle:BottomRight Point:ToPrintable ' )' ] strings:Cat >>> Result ; // ToPrintable void method Print Self Rectangle:ToPrintable Print ; // Print class-end // Rectangle USES CodeDump.ms.dict ; @SELF DumpElement Point var P1 Point var P2 Point var P3 Point var P4 Point var P5 Point var P6 Point var P7 Point var P8 Point var P9 Point var P10 Point var P11 P1 := Point:0 P2 := Point:0 P3 := Point:: 1 1 P4 := Point:XY ( 2 2 ) P5 := Point:OF P4 P6 := ( P3 Point:+ P4 ) P7 := ( P3 Point:- P4 ) P8 := ( P4 Point:- P3 ) P9 := ( P4 Point:Neg ) P10 := ( P3 Point:Neg ) P11 := Point:XY ( -2 2 ) Object var O1 O1 := P1 O1 Point:Print array var l_Points [ P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 ] >>> l_Points for l_Points Point:Print for l_Points ( Point:X Print ) for l_Points ( Point:Y Print ) for l_Points ( Object:class Print ) for l_Points ( Object:ClassName Print ) for l_Points ( for ( Object:class %G ) ( getClassName Print ) ) Rectangle var R1 R1 := Rectangle:: P1 P4 R1 Rectangle:Print
Комментариев нет:
Отправить комментарий