Luxophia

Форк
0
/
LUX.Brep.Poin.D3.pas 
112 строк · 3.8 Кб
1
unit LUX.Brep.Poin.D3;
2

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

5
uses LUX, LUX.D3, LUX.Brep.Poin;
6

7
type //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【型】
8

9
     TPoin3D = class;
10

11
     //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
12

13
     //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
14

15
     //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TPoin3D
16

17
     TPoin3D = class( TPoin<TSingle3D> )
18
     private
19
     protected
20
     public
21
     end;
22

23
     //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TPoinModel3D<_TPoin_>
24

25
     TPoinModel3D<_TPoin_:TPoin<TSingle3D>> = class( TPoinModel<TSingle3D,_TPoin_> )
26
     private
27
     protected
28
       ///// アクセス
29
       function GetBarycenter :TSingle3D;
30
     public
31
       ///// プロパティ
32
       property Barycenter :TSingle3D read GetBarycenter;
33
       ///// メソッド
34
       function GetBoundingBox :TSingleArea3D;
35
     end;
36

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

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

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

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

45
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【レコード】
46

47
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【クラス】
48

49
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TPoin3D
50

51
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
52

53
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
54

55
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
56

57
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% TPoinModel3D<_TPoin_>
58

59
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& private
60

61
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& protected
62

63
/////////////////////////////////////////////////////////////////////// アクセス
64

65
function TPoinModel3D<_TPoin_>.GetBarycenter :TSingle3D;
66
var
67
   I :Integer;
68
begin
69
     Result := TSingle3D.Create( 0, 0, 0 );
70

71
     for I := 0 to ChildsN-1 do
72
     begin
73
          Result := Result + Childs[ I ].Pos;
74
     end;
75

76
     Result := Result / ChildsN;
77
end;
78

79
//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& public
80

81
/////////////////////////////////////////////////////////////////////// メソッド
82

83
function TPoinModel3D<_TPoin_>.GetBoundingBox :TSingleArea3D;
84
var
85
   I :Integer;
86
begin
87
     Result := TSingleArea3D.NeInf;
88

89
     for I := 0 to ChildsN-1 do
90
     begin
91
          with Childs[ I ].Pos do
92
          begin
93
               if X < Result.Min.X then Result.Min.X := X;
94
               if Y < Result.Min.Y then Result.Min.Y := Y;
95
               if Z < Result.Min.Z then Result.Min.Z := Z;
96

97
               if Result.Max.X < X then Result.Max.X := X;
98
               if Result.Max.Y < Y then Result.Max.Y := Y;
99
               if Result.Max.Z < Z then Result.Max.Z := Z;
100
          end;
101
     end;
102
end;
103

104
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$【ルーチン】
105

106
//############################################################################## □
107

108
initialization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 初期化
109

110
finalization //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 最終化
111

112
end. //######################################################################### ■
113

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

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

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

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