Програмне забезпечення Dystlab має власний скриптовий рушій (Scripter), який підтримує мови програмування Pascal та Basic. Scripter можна використовувати для розробки застосунків, рисування рамок у звітах, графічної візуалізації, тощо.
Бібліотека Scene
procedure Scene.AddCone(x, y, z, Radius, Height: Double);
Додає до сцени конус з координатами (x,y,z), радіусом основи Radius та висотою Height.
Приклад:
Scene.AddCone(0, 0, 0, 0.55, 2.5);
procedure Scene.AddCube(x, y, z, SizeX, SizeY, SizeZ: Double);
Додає до сцени паралелепипед з координатами центру (x,y,z) та розмірами за відповідними осями SizeX, SizeY, SizeZ.
Приклад:
Scene.AddCube(0, 0, 0, 2.5, 10, 15);
procedure Scene.AddCylinder(x, y, z, Radius, Height: Double);
Додає до сцени циліндр з координатами (x,y,z), радіусом Radius та висотою Height.
Приклад:
Scene.AddCylinder(0, 0, 0, 0.55, 2.5);
procedure Scene.AddDisk(x, y, z, r: Double);
Додає до сцени плоский диск з координатами центру (x,y,z) та радіусом "r".
Приклад:
Scene.AddDisk(0, 0, 0, 5.5);
procedure Scene.AddGridXY(x1, x2, StepX, y1, y2, StepY: Double);
Додає до сцени сітку в площині XY. Аргументи x1, x2 є координатами початку та кінця сітки по осі "x". Аргументи y1, y2 — те саме, по осі "y". Аргументи StepX, StepY є кроком сітки по осі "x" та "y", відповідно.
Приклад:
Scene.AddGridXY(-10, 10, 0.5, -20, 20, 2.5);
procedure Scene.AddGridXZ(x1, x2, StepX, z1, z2, StepZ: Double);
Додає до сцени сітку в площині XZ. Аргументи x1, x2 є координатами початку та кінця сітки по осі "x". Аргументи z1, z2 — те саме, по осі "z". Аргументи StepX, StepZ є кроком сітки по осі "x" та "z", відповідно.
Приклад:
Scene.AddGridXZ(-10, 10, 0.5, -20, 20, 2.5);
procedure Scene.AddGridYZ(y1, y2, StepX, z1, z2, StepZ: Double);
Додає до сцени сітку в площині YZ. Аргументи y1, y2 є координатами початку та кінця сітки по осі "y". Аргументи z1, z2 — те саме, по осі "z". Аргументи StepY, StepZ є кроком сітки по осі "y" та "z", відповідно.
Приклад:
Scene.AddGridYZ(-10, 10, 0.5, -20, 20, 2.5);
procedure Scene.AddLine(x1, y1, z1, x2, y2, z2: Double);
Додає до сцени лінію з координатами початку (x1,y1,z1) та кінця (x2,y2,z2).
Приклад:
Scene.AddLine(0, 0, 0, 100, 100, -2);
procedure Scene.AddLineSegment(x, y, z: Double);
Додає до сцени точку полілінії з координатами (x,y,z). Початком полілінії є перша точка після команди "Scene.StartLineGroup". Завершити полілінію можна командою "Scene.CloseLineGroup".
Приклад:
Scene.AddLineSegment(10, 0, -20);
procedure Scene.AddPoint(x, y, z: Double);
Додає до сцени точку з координатами (x,y,z). Для великих груп точки рекомендується додавати між командами StartPointGroup..ClosePointGroup.
Приклад:
Scene.AddPoint(0, 0, 0);
procedure Scene.AddScreenText(S: string; x, y: Integer);
Додає до сцени текст "S" в координатах екрану (x,y). Початком системи координат екрану є верхній лівий кут.
Приклад:
Scene.AddScreenText(DateToStr(Now), 5, 5);
procedure Scene.AddSphere(x, y, z, Radius: Double);
Додає до сцени сферу з координатами центру (x,y,z) та радіусом Radius.
Приклад:
Scene.AddSphere(0, 0, 0, 12);
procedure Scene.AddText(S: string; x, y, z: Double);
Додає до сцени текст "S" в координатах (x,y,z).
Приклад:
Scene.AddText('XYZ', 0, 0, 0);
procedure Scene.Clear;
Очищає сцену — видаляє усі графічні об'єкти.
Приклад:
Scene.Clear;
procedure Scene.CloseLineGroup;
Закриває полілінію, яка була почата командою "Scene.StartLineGroup". Точки полілінії додаються командою "Scene.AddLineSegment".
Приклад:
Scene.CloseLineGroup;
procedure Scene.ClosePointGroup;
Закриває групу точок, розпочату командою "Scene.StartPointGroup".
Приклад:
Scene.ClosePointGroup;
property Scene.DefaultDirection.X /Y /Z : Double;
Встановлює напрям "уперед" для нових об'єктів сцени.
Приклад:
Scene.DefaultDirection.X := 1.0;
property Scene.DefaultPosition.X /Y /Z : Double;
Встановлює позицію для нових об'єктів сцени.
Приклад:
Scene.DefaultPosition.Z := -5;
property Scene.DefaultRotation.X /Y /Z : Double;
Встановлює орієнтацію (кути повороту) для нових об'єктів сцени. Кути задаються в градусах.
Приклад:
Scene.DefaultRotation.Y := 90;
property Scene.DefaultUp.X /Y /Z : Double;
Встановлює напрям "верх" для нових об'єктів сцени.
Приклад:
Scene.DefaultUp.Z := 1.0;
property Scene.LineStyle.Color: TColor;
Вертає поточний або встановлює новий колір ліній. Застосовується до усіх наступних об'єктів. За базовими налаштунками "clBlack".
Приклад:
Scene.LineStyle.Color := clRed;
property Scene.LineStyle.Pattern: Word;
Вертає поточний або встановлює новий тип ліній. Застосовується до усіх наступних об'єктів. За базовими налаштунками "$FFFF" (суцільна лінія).
Приклад:
Scene.LineStyle.Pattern := 0;
property Scene.LineStyle.Width: Double;
Вертає поточну або встановлює нову товщину ліній. Застосовується до усіх наступних об'єктів. За базовими налаштунками 1.
Приклад:
Scene.LineStyle.Width := 1.5;
property Scene.Material.Back.Ambient: TColor;
Те саме що й Scene.Material.Front.Ambient, але для зворотнього боку об'єкту.
Приклад:
Scene.Material.Back.Ambient := clRed;
property Scene.Material.Back.Diffuse: TColor;
Те саме що й Scene.Material.Front.Diffuse, але для зворотнього боку об'єкту.
Приклад:
Scene.Material.Back.Diffuse := clRed;
property Scene.Material.Back.Emission: TColor;
Те саме що й Scene.Material.Front.Emission, але для зворотнього боку об'єкту.
Приклад:
Scene.Material.Back.Emission := clRed;
property Scene.Material.Back.Shininess: Byte;
Те саме що й Scene.Material.Front.Shininess, але для зворотнього боку об'єкту.
Приклад:
Scene.Material.Back.Shininess := 10;
property Scene.Material.Back.Specular: TColor;
Те саме що й Scene.Material.Front.Specular, але для зворотнього боку об'єкту.
Приклад:
Scene.Material.Back.Specular := clRed;
property Scene.Material.Front.Ambient: TColor;
Вертає поточний або встановлює новий "Ambient" колір переднього боку об'єкту. Застосовується до усіх наступних об'єктів.
Приклад:
Scene.Material.Front.Ambient := clRed;
property Scene.Material.Front.Diffuse: TColor;
Вертає поточний або встановлює новий "Diffuse" колір переднього боку об'єкту. Застосовується до усіх наступних об'єктів.
Приклад:
Scene.Material.Front.Diffuse := clRed;
property Scene.Material.Front.Emission: TColor;
Вертає поточний або встановлює новий "Emission" колір переднього боку об'єкту. Застосовується до усіх наступних об'єктів.
Приклад:
Scene.Material.Front.Emission := clRed;
property Scene.Material.Front.Shininess: Byte;
Вертає поточну або встановлює нову інтенсивність блискучості переднього боку об'єкту. Застосовується до усіх наступних об'єктів.
Приклад:
Scene.Material.Front.Shininess := 10;
property Scene.Material.Front.Specular: TColor;
Вертає поточний або встановлює новий "Specular" колір переднього боку об'єкту. Застосовується до усіх наступних об'єктів.
Приклад:
Scene.Material.Front.Specular := clRed;
property Scene.PointStyle.Color: TColor;
Вертає поточний або встановлює новий колір точок. Застосовується до усіх наступних об'єктів. За базовими налаштунками "clBlack".
Приклад:
Scene.PointStyle.Color := clRed;
property Scene.PointStyle.Size: Double;
Вертає поточний або встановлює новий розмір точок. Застосовується до усіх наступних об'єктів. За базовими налаштунками 1.
Приклад:
Scene.PointStyle.Size := 1.5;
procedure Scene.RotateAbsolute(Obj: TObject; rx, ry, rz: Double);
Повертає об'єкт Obj на кут (rx,ry,rz) відносно відповідних осей "x", "y", "z". Кут задається в градусах.
Приклад:
Scene.RotateAbsolute(Cube1, 0, 45, 0);
procedure Scene.StartLineGroup;
Починає полілінію. Точки полілінії додаються командою "Scene.AddLineSegment". Закриває полілінію команда "Scene.CloseLineGroup".
Приклад:
Scene.StartLineGroup;
procedure Scene.StartPointGroup;
Починає групу точок, які додаються командою "Scene.AddPoint". Закрити групу точок можна командою "Scene.ClosePointGroup".
Приклад:
Scene.StartPointGroup;
property Scene.TextStyle.Alignment: TAlignment;
Вертає поточне або встановлює нове горизонтальне вирівнювання тексту. Може мати значення "taLeftJustify", "taRightJustify", "taCenter". Застосовується до усіх наступних об'єктів.
Приклад:
Scene.TextStyle.Alignment := taCenter;
property Scene.TextStyle.Angle: Double;
Вертає поточний або встановлює новий кут повороту тексту. Кут задається в градусах. Застосовується до усіх наступних об'єктів.
Приклад:
Scene.TextStyle.Angle := 45.0;
property Scene.TextStyle.Font.Color: TColor;
Вертає поточний або встановлює новий колір тексту. Застосовується до усіх наступних об'єктів.
Приклад:
Scene.TextStyle.Font.Color := clBlue;
property Scene.TextStyle.Font.Name: string;
Вертає поточний або встановлює новий шрифт тексту. Застосовується до усіх наступних об'єктів.
Приклад:
Scene.TextStyle.Font.Name := 'Times New Roman';
property Scene.TextStyle.Font.Size: Integer;
Вертає поточний або встановлює новий розмір тексту. Застосовується до усіх наступних об'єктів.
Приклад:
Scene.TextStyle.Font.Size := 12;
property Scene.TextStyle.Font.Style: TFontStyle;
Вертає поточний або встановлює новий стиль тексту. Може мати значення "fsBold", "fsItalic", "fsUnderline", "fsStrikeOut". Застосовується до усіх наступних об'єктів.
Приклад:
Scene.TextStyle.Font.Style := [fsBold, fsItalic];
property Scene.TextStyle.VerticalAlignment: TVerticalAlignment;
Вертає поточне або встановлює нове вертикальне вирівнювання тексту. Може мати значення "taAlignTop", "taAlignBottom", "taVerticalCenter". Застосовується до усіх наступних об'єктів.
Приклад:
Scene.TextStyle.VerticalAlignment := taVerticalCenter;
procedure Scene.Translate(Obj: TObject; dx, dy, dz: Double);
Переміщує об'єкт Obj у просторі сцени на відстань (dx,dy,dz) відносно відповідних осей "x", "y", "z".
Приклад:
Scene.Translate(Sphere1, 1.5, -2.6, 0);
property Scene.View.AntiAliasing: TGLAntiAliasing;
Вертає поточний або встановлює новий режим AntiAliasing. Може мати значення "aaDefault", "aaNone", "aa2x", "aa2xHQ", "aa4x", "aa4xHQ", "aa6x", "aa8x", "aa16x", "csa8x", "csa8xHQ", "csa16x", "csa16xHQ".
Приклад:
Scene.View.AntiAliasing := aaNone;
property Scene.View.BackgroundColor: TColor;
Вертає поточний або встановлює новий колір фону.
Приклад:
Scene.View.BackgroundColor := clGray;
property Scene.View.BackgroundAlpha: Single;
Вертає поточний або встановлює новий рівень прозорості фону.
Приклад:
Scene.View.BackgroundAlpha := 0.5;
property Scene.View.Lighting: Boolean;
Вертає поточний або змінює режим освітлення. Якщо True, то для освітлення об'єктів сцена використовує джерела світла.
Приклад:
Scene.View.Lighting := False;

