Лабораторная работа 2 - Применение модели грид-потоков для внедрения в грид существующего приложения
Заготовка кода для класса грид-потока RenderThread
using System;
using System.IO;
using System.Drawing;
using System.Diagnostics;
using Alchemi.Core.Owner;
/// <summary>
/// Класс грид-потока. Отвечает за обработку части изображения.
/// </summary>
[Serializable]
public class RenderThread : GThread
{
/// <summary>Строка с текстовым представлением сцены для рендеринга.</summary>
private string inputScene;
/// <summary>Каталог для хранения временных результатов.</summary>
private string tempDirectory;
/// <summary>Рабочий каталог приложения MegaPOV.</summary>
private string workDirectory;
/// <summary>Дополнительные аргументы приложения MegaPOV.</summary>
private string additionalArguments;
/// <summary>Ширина изображения в пикселях.</summary>
private int width;
/// <summary>Высота изображения в пикселях.</summary>
private int height;
/// <summary>Начальный ряд пикселей для рендеринга.</summary>
private int startRow;
/// <summary>Начальный столбец пикселей для рендеринга.</summary>
private int startCol;
/// <summary>Конечный ряд пикселей для рендеринга.</summary>
private int endRow;
/// <summary>Конечный столбец пикселей для рендеринга.</summary>
private int endCol;
/// <summary>Качесво сглаживания изображения.</summary>
private AntialisingLevel antialiasLevel;
/// <summary>Точечный рисунок для хранения части изображения.</summary>
private Bitmap image;
/// <summary>
/// Создает новый экземпляр грид-потока для рендеринга части изображения.
/// </summary>
/// <param name="inputScene">строка с текстовым представлением сцены</param>
/// <param name="tempDirectory">временный каталог</param>
/// <param name="workDirectory">рабочий каталог</param>
/// <param name="width">ширина изображения</param>
/// <param name="height">высота изображения</param>
/// <param name="startRow">начальный ряд</param>
/// <param name="startCol">начальный столбец</param>
/// <param name="endRow">конечный ряд</param>
/// <param name="endCol">конечный столбец</param>
/// <param name="antialiasLevel">настройки сглаживания изображения</param>
public RenderThread(string inputScene, string tempDirectory, string workDirectory,
int width, int height,
int startRow, int startCol, int endRow, int endCol,
AntialisingLevel antialiasLevel, string additionalArguments)
{
...
}
/// <summary>
/// Основной метод грид-потока. Обрабатывает часть изображения.
/// </summary>
public override void Start()
{
...
}
/// <summary>Сгенерированная часть общего изображения.</summary>
public Bitmap Image
{
get
{
return image;
}
}
/// <summary>Координата левого столбца пикселей.</summary>
public int StartCol
{
get
{
return startCol;
}
}
/// <summary>Координата верхнего столбца пикселей.</summary>
public int StartRow
{
get
{
return startRow;
}
}
/// <summary>Ширина сгенерированной части изображения.</summary>
public int Width
{
get
{
return endCol - startCol;
}
}
/// <summary>Высота сгенерированной части изображения.</summary>
public int Height
{
get
{
return endRow - startRow;
}
}
}