Функция gluTessProperty
Функция gluTessProperty задает свойство объекта тесселяции.
Синтаксис
void WINAPI gluTessProperty(
GLUtesselator *tess,
GLenum which,
GLdouble value
);
Параметры
-
Тесс
-
Объект тесселяции (созданный с помощью gluNewTess).
-
Который
-
Задаваемое значение свойства. Допустимы следующие значения: GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARY_ONLY и GLU_TESS_TOLERANCE.
Значение Значение - GLU_TESS_WINDING_RULE
Определяет, какие части многоугольника находятся во внутренней части. Для параметра value можно задать одно из следующих значений: GLU_TESS_WINDING_ODD, GLU_TESS_WINDING_NONZERO, GLU_TESS_WINDING_POSITIVE, GLU_TESS_WINDING_NEGATIVE или GLU_TESS_WINDING_ABS_GEQ_TWO.
Чтобы понять, как работает правило обмотки, сначала учтите, что входные контуры разделяют плоскость на области. Правило обмотки определяет, какие из этих областей находятся внутри многоугольника.
Для одноконтурного C число обмотки точки x — это просто число оборотов, которые мы делаем вокруг x, когда мы перемещаемся один раз вокруг C (где против часовой стрелки является положительным). При наличии нескольких контуров суммируются отдельные числа обмотки. Эта процедура связывает целочисленное значение со знаком с каждой точкой x в плоскости. Обратите внимание, что номер обмотки одинаков для всех точек в одном регионе.
Правило обмотки классифицирует область как "внутри", если ее номер обмотки относится к выбранной категории (нечетные, ненулевое, положительное, отрицательное или абсолютное значение не менее двух). В предыдущем тесселлаторе GLU (до GLU 1.2) использовалось правило "нечетных". Правило "ненулевого" (GLU_TESS_WINDING_NONZERO) — еще один распространенный способ определения внутренней части. Остальные три правила (GLU_TESS_WINDING_POSITIVE, GLU_TESS_WINDING_NEGATIVE GLU_TESS_WINDING_ABS_GEQ_TWO) полезны для операций многоугольников CSG.- GLU_TESS_BOUNDARY_ONLY
Задает логическое значение (задайте значение GL_TRUE или GL_FALSE). Если задать значение GL_TRUE, вместо тесселяции возвращается набор закрытых контуров, разделяющих внешний и внутренний многоугольник. Внешние контуры ориентированы против часовой стрелки по отношению к норме; внутренние контуры ориентированы по часовой стрелке. Обратные вызовы GLU_TESS_BEGIN и GLU_TESS_BEGIN_DATA используют тип GL_LINE_LOOP для каждого контура. - GLU_TESS_TOLERANCE
Задает допустимость объединения признаков для уменьшения размера выходных данных. Например, две вершины, которые находятся очень близко друг к другу, могут быть заменены одной вершиной. Погрешность умножается на самую большую величину координат любой входной вершины; указывает максимальное расстояние, которое может переместить любой компонент в результате одной операции слияния. Если один компонент участвует в нескольких операциях слияния, общее расстояние перемещения может быть больше.
Слияние признаков является полностью необязательным; Допустимое значение является лишь подсказкой. Реализация может свободно объединяться в одних случаях, а в других — нет, а также никогда не объединять функции. Допустимое значение по умолчанию равно нулю.
Текущая реализация объединяет вершины только в том случае, если они точно совпадают, независимо от текущего допуска. Вершина сращивается в ребро только в том случае, если реализация не может определить, на какой стороне края находится вершина. Два ребра объединяются, только если обе конечные точки идентичны. -
value
-
Значение указанного свойства.
Возвращаемое значение
Эта функция не возвращает значение.
Комментарии
Функция gluTessProperty управляет свойствами, хранящимися в объекте тесселяции. Эти свойства влияют на способ интерпретации и отрисовки многоугольников.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL |
|