Програмне забезпечення 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;