fdSphereExt.pas 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. unit fdSphereExt;
  2. interface
  3. uses
  4. System.SysUtils,
  5. System.Types,
  6. System.UITypes,
  7. System.Classes,
  8. System.Variants,
  9. System.Math.Vectors,
  10. FMX.Types,
  11. FMX.Controls,
  12. FMX.Forms,
  13. FMX.Graphics,
  14. FMX.Dialogs,
  15. FMX.Types3D,
  16. FMX.Ani,
  17. FMX.MaterialSources,
  18. FMX.Controls3D,
  19. FMX.Objects3D,
  20. FMX.Viewport3D,
  21. FMX.Controls.Presentation,
  22. FMX.StdCtrls,
  23. FMX.Layouts,
  24. FMX.ListBox,
  25. FMX.Edit,
  26. FMX.EditBox,
  27. FMX.SpinBox,
  28. GBE.SphereExtend;
  29. type
  30. TFormSphereExt = class(TForm)
  31. Viewport3D1: TViewport3D;
  32. Light1: TLight;
  33. LightMaterialSource1: TLightMaterialSource;
  34. ArcDial1: TArcDial;
  35. LightMaterialSource2: TLightMaterialSource;
  36. ColorMaterialSource1: TColorMaterialSource;
  37. Layout1: TLayout;
  38. CheckBox1: TCheckBox;
  39. ComboBox1: TComboBox;
  40. LightMaterialSource3: TLightMaterialSource;
  41. Dummy1: TDummy;
  42. LightMaterialSource4: TLightMaterialSource;
  43. SpinBox1: TSpinBox;
  44. Label1: TLabel;
  45. Label2: TLabel;
  46. SpinBox2: TSpinBox;
  47. GBESphereExtend1: TGBESphereExtend;
  48. FloatAnimation1: TFloatAnimation;
  49. procedure ArcDial1Change(Sender: TObject);
  50. procedure CheckBox1Change(Sender: TObject);
  51. procedure ComboBox1Change(Sender: TObject);
  52. procedure FormCreate(Sender: TObject);
  53. procedure SpinBox1Change(Sender: TObject);
  54. procedure SpinBox2Change(Sender: TObject);
  55. private
  56. public
  57. end;
  58. var
  59. FormSphereExt: TFormSphereExt;
  60. implementation
  61. {$R *.fmx}
  62. procedure TFormSphereExt.ArcDial1Change(Sender: TObject);
  63. begin
  64. GBESphereExtend1.RotationAngle.X := ArcDial1.Value;
  65. end;
  66. procedure TFormSphereExt.CheckBox1Change(Sender: TObject);
  67. begin
  68. GBESphereExtend1.ShowLines := CheckBox1.IsChecked;
  69. end;
  70. procedure TFormSphereExt.ComboBox1Change(Sender: TObject);
  71. begin
  72. GBESphereExtend1.Depth := 9;
  73. GBESphereExtend1.Height := 8;
  74. GBESphereExtend1.Width := 9;
  75. GBESphereExtend1.RotationAngle.X := 0;
  76. GBESphereExtend1.SubdivisionsAxes := 24;
  77. GBESphereExtend1.SubdivisionsHeight := 16;
  78. SpinBox1.Value := 24;
  79. SpinBox2.Value := 16;
  80. case Combobox1.ItemIndex of
  81. 0: begin
  82. GBESphereExtend1.Forme := TSpheroid.apple;
  83. GBESphereExtend1.MaterialSource := LightMaterialSource1;
  84. end;
  85. 1: begin
  86. GBESphereExtend1.Forme := TSpheroid.pot;
  87. GBESphereExtend1.MaterialSource := LightMaterialSource2;
  88. end;
  89. 2: begin
  90. GBESphereExtend1.Forme := TSpheroid.dome;
  91. GBESphereExtend1.Longueur := 0.5;
  92. GBESphereExtend1.RotationAngle.X := 180;
  93. GBESphereExtend1.MaterialSource := LightMaterialSource3;
  94. end;
  95. 3: begin
  96. GBESphereExtend1.Forme := TSpheroid.culbuto;
  97. GBESphereExtend1.Longueur := 0.5;
  98. GBESphereExtend1.MaterialSource := LightMaterialSource4;
  99. end;
  100. 4: begin
  101. GBESphereExtend1.Forme := TSpheroid.capsule;
  102. GBESphereExtend1.Longueur := 2;
  103. GBESphereExtend1.Depth := 3;
  104. GBESphereExtend1.Height := 8;
  105. GBESphereExtend1.Width := 3;
  106. GBESphereExtend1.MaterialSource := LightMaterialSource3;
  107. end;
  108. 5: begin
  109. GBESphereExtend1.Forme := TSpheroid.sphere;
  110. GBESphereExtend1.Depth := 9;
  111. GBESphereExtend1.Height := 9;
  112. GBESphereExtend1.Width := 9;
  113. GBESphereExtend1.MaterialSource := LightMaterialSource3;
  114. end;
  115. 6: begin
  116. GBESphereExtend1.Forme := TSpheroid.diamond;
  117. GBESphereExtend1.MaterialSource := LightMaterialSource4;
  118. end;
  119. end;
  120. end;
  121. procedure TFormSphereExt.FormCreate(Sender: TObject);
  122. begin
  123. Combobox1.ItemIndex := 0;
  124. end;
  125. procedure TFormSphereExt.SpinBox1Change(Sender: TObject);
  126. begin
  127. GBESphereExtend1.SubdivisionsAxes := round(SpinBox1.Value);
  128. end;
  129. procedure TFormSphereExt.SpinBox2Change(Sender: TObject);
  130. begin
  131. GBESphereExtend1.SubdivisionsHeight := round(SpinBox2.Value);
  132. end;
  133. end.