Luxophia

Форк
0
/
LUX.Color.Grid.D3.pas 
127 строк · 4.2 Кб
1
unit LUX.Color.Grid.D3;
2

3
interface //#################################################################### ■
4

5
uses System.UITypes,
6
     FMX.Graphics,
7
     LUX,
8
     LUX.Data.Grid.T3,
9
     LUX.Color;
10

11
type //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【型】
12

13
     //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
14

15
     //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
16

17
     //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TPoinColorGrid3D<_TItem_>
18

19
     TPoinColorGrid3D<_TItem_> = class( TPoinArray3D<_TItem_> )
20
     private
21
     protected
22
       ///// メソッド
23
       procedure DrawToXY( const BMP_:TBitmap; Z_:Integer; const Func_:TConstFunc<Integer,Integer,Integer,TAlphaColor> ); overload;
24
     public
25
     end;
26

27
     //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TCellColorGrid3D<_TItem_>
28

29
     TCellColorGrid3D<_TItem_> = class( TCellArray3D<_TItem_> )
30
     private
31
     protected
32
       ///// メソッド
33
       procedure DrawToXY( const BMP_:TBitmap; Z_:Integer; const Func_:TConstFunc<Integer,Integer,Integer,TAlphaColor> ); overload;
34
     public
35
     end;
36

37
//const //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【定数】
38

39
//var //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【変数】
40

41
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
42

43
implementation //############################################################### ■
44

45
uses System.Threading;
46

47
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
48

49
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
50

51
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TPoinColorGrid3D<_TItem_>
52

53
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
54

55
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
56

57
/////////////////////////////////////////////////////////////////////// メソッド
58

59
procedure TPoinColorGrid3D<_TItem_>.DrawToXY( const BMP_:TBitmap; Z_:Integer; const Func_:TConstFunc<Integer,Integer,Integer,TAlphaColor> );
60
var
61
   B :TBitmapData;
62
begin
63
     BMP_.SetSize( PoinsX, PoinsY );
64

65
     BMP_.Map( TMapAccess.Write, B );
66

67
     TParallel.For( 0, PoinsY-1, procedure( Y:Integer )
68
     var
69
        P :PAlphaColor;
70
        X :Integer;
71
     begin
72
          P := B.GetScanline( Y );
73

74
          for X := 0 to PoinsX-1 do
75
          begin
76
               P^ := Func_( X, Y, Z_ );  Inc( P );
77
          end;
78
     end );
79

80
     BMP_.Unmap( B );
81
end;
82

83
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
84

85
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TCellColorGrid3D
86

87
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
88

89
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
90

91
/////////////////////////////////////////////////////////////////////// メソッド
92

93
procedure TCellColorGrid3D<_TItem_>.DrawToXY( const BMP_:TBitmap; Z_:Integer; const Func_:TConstFunc<Integer,Integer,Integer,TAlphaColor> );
94
var
95
   B :TBitmapData;
96
begin
97
     BMP_.SetSize( CellsX, CellsY );
98

99
     BMP_.Map( TMapAccess.Write, B );
100

101
     TParallel.For( 0, CellsY-1, procedure( Y:Integer )
102
     var
103
        P :PAlphaColor;
104
        X :Integer;
105
     begin
106
          P := B.GetScanline( Y );
107

108
          for X := 0 to CellsX-1 do
109
          begin
110
               P^ := Func_( X, Y, Z_ );  Inc( P );
111
          end;
112
     end );
113

114
     BMP_.Unmap( B );
115
end;
116

117
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
118

119
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
120

121
//############################################################################## □
122

123
initialization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 初期化
124

125
finalization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 最終化
126

127
end. //######################################################################### ■
128

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.