1
unit LUX.Brep.Face.TriFlip.D3.FMX;
3
interface //#################################################################### ■
5
uses System.Types, System.Classes, System.Math.Vectors,
6
FMX.Types3D, FMX.Controls3D, FMX.MaterialSources,
7
LUX, LUX.D3, LUX.Brep.Face.TriFlip.D3;
9
type //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【型】
11
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
13
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
15
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TTriFaceShape3D
17
TTriFaceShape3D = class( TControl3D )
20
procedure MakeGeometry;
23
_Material :TMaterialSource;
24
_Model :TTriFaceModel3D;
26
procedure SetModel( const Model_:TTriFaceModel3D );
28
procedure Render; override;
30
constructor Create( Owner_:TComponent ); override;
31
destructor Destroy; override;
33
property Material :TMaterialSource read _Material write _Material;
34
property Model :TTriFaceModel3D read _Model write SetModel ;
37
//const //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【定数】
39
//var //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【変数】
41
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
43
implementation //############################################################### ■
45
uses System.SysUtils, System.RTLConsts;
47
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
49
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
51
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TTriFaceShape3D
53
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
55
procedure TTriFaceShape3D.MakeGeometry;
63
Length := _Model.PoinModel.ChildsN;
65
for I := 0 to _Model.PoinModel.ChildsN-1 do
67
with TTriPoin3D( _Model.PoinModel.Childs[ I ] ) do
69
Vertices [ I ] := Pos;
71
TexCoord0[ I ] := TPointF.Create( Tex.X, Tex.Y );
78
Length := 3{Poin} * _Model.ChildsN;
81
for N := 0 to _Model.ChildsN-1 do
83
with _Model.Childs[ N ] do
85
Indices[ I ] := Poin[ 3 ].Order; Inc( I );
86
Indices[ I ] := Poin[ 2 ].Order; Inc( I );
87
Indices[ I ] := Poin[ 1 ].Order; Inc( I );
94
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
96
/////////////////////////////////////////////////////////////////////// アクセス
98
procedure TTriFaceShape3D.SetModel( const Model_:TTriFaceModel3D );
100
_Model := Model_; MakeGeometry;
103
/////////////////////////////////////////////////////////////////////// メソッド
105
procedure TTriFaceShape3D.Render;
107
Context.SetMatrix( AbsoluteMatrix );
109
_Geometry.Render( Context, TMaterialSource.ValidMaterial(_Material), AbsoluteOpacity );
112
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
114
constructor TTriFaceShape3D.Create( Owner_:TComponent );
118
_Geometry := TMeshData.Create;
121
destructor TTriFaceShape3D.Destroy;
128
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
130
//############################################################################## □
132
initialization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 初期化
134
finalization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 最終化
136
end. //######################################################################### ■