NewRGBLatticeTriangleMesh
Заливка, Графика
Описание
Создаёт решётчатую треугольную сетку с затенением Гуро, тип затенения PDF 5, и регистрирует её под именем ShaderName в цвете DeviceRGB. Вершины выводятся строка за строкой по VerticesPerRow записей в строке, решётка триангулируется соответствующим читателем, а поток вершин не несёт флагов рёбер
Синтаксис
Delphi
Function TPDFlib.NewRGBLatticeTriangleMesh(Const ShaderName: WideString;
Const Vertices: Array Of TPLMeshVertex; VerticesPerRow: Integer;
BitsPerCoordinate, BitsPerComponent: Integer;
Const BoundsX0, BoundsY0, BoundsX1, BoundsY1: Double): Integer;Параметры
| ShaderName | Имя, под которым регистрируется шейдер; передайте его в SetFillShader или SetLineShader, чтобы рисовать сеткой |
|---|---|
| Vertices | Массив записей TPLMeshVertex (X, Y, R, G, B) с компонентами цвета в диапазоне от 0 до 1, упорядоченных по строкам; длина должна быть точным кратным VerticesPerRow и содержать не менее двух строк |
| VerticesPerRow | Количество вершин в строке решётки, не менее 2 |
| BitsPerCoordinate | Биты квантования координат вершин, от 1 до 32 |
| BitsPerComponent | Биты квантования на компонент цвета, от 1 до 16 |
| BoundsX0, BoundsY0, BoundsX1, BoundsY1 | Прямоугольник декодирования, отображающий упакованные координаты вершин в координатное пространство затенения |
Возвращаемые значения
| 0 | Сетка не была создана, потому что документ не выбран, VerticesPerRow меньше 2, количество вершин не кратно VerticesPerRow или содержит менее двух строк либо параметр битов вне диапазона |
|---|---|
| 1 | Сетка зарегистрирована под именем ShaderName |
Примечания
Координаты следуют системе библиотеки с началом в левом верхнем углу и переводятся внутри (ISO 32000-1 §8.7.4.5.6). Решётке нужно меньше вершин, чем NewRGBFreeFormTriangleMesh, для выровненных по сетке цветовых полей, поскольку общие вершины указываются один раз
Пример
// 3 columns x 2 rows of color samples
SetLength(Vertices, 6);
for I:= 0 to High(Vertices) do
Begin
Vertices[I].X:= 100+ (I mod 3)* 150;
Vertices[I].Y:= 100+ (I div 3)* 150;
Vertices[I].R:= I/ 5; Vertices[I].G:= 0.5; Vertices[I].B:= 1- I/ 5;
End;
PDF.NewRGBLatticeTriangleMesh('grid', Vertices, 3, 16, 8,
100, 100, 400, 250);
PDF.SetFillShader('grid');