|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
gluTessProperty
The gluTessProperty function sets the property of a tessellation object.
void gluTessProperty( GLUtesselator *tess, GLenum which, GLdouble value );
Parameters
tess
Specifies the tessellation object (created with gluNewTess).
which
Specifies the property value to set. Valid values are GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARY_ONLY, and GLU_TESS_TOLERANCE.
value
Specifies the value of the indicated property.
Remarks
The gluTessProperty function controls properties stored in a tessellation object. These properties affect the way that the polygons are interpreted and rendered. The legal values are as follows:
GLU_TESS_WINDING_RULE
Determines which parts of the polygon are on the "interior." The value parameter may be set to one of GLU_TESS_WINDING_ODD, GLU_TESS_WINDING_NONZERO, GLU_TESS_WINDING_POSITIVE, or GLU_TESS_WINDING_NEGATIVE, or GLU_TESS_WINDING_ABS_GEQ_TWO. To understand how the winding rule works, first consider that the input contours partition the plane into regions. The winding rule determines which of these regions are inside the polygon.
For a single contour C, the winding number of a point x is simply the signed number of revolutions we make around x as we travel once around C (where counterclockwise is positive). When there are several contours, the individual winding numbers are summed. This procedure associates a signed integer value with each point x in the plane. Note that the winding number is the same for all points in a single region. The winding rule classifies a region as "inside" if its winding number belongs to the chosen category (odd, non-zero, positive, negative, or absolute value of at least two). The previous GLU tessellator (prior to GLU 1.2) used the "odd" rule. The "non-zero" rule is another common way to define the interior. The other three rules are useful for polygon CSG operations.
GLU_TESS_BOUNDARY_ONLY
Specifies a Boolean value (value should be set to GL_TRUE or GL_FALSE). When set to GL_TRUE, a set of closed contours separating the polygon interior and exterior are returned instead of a tessellation. Exterior contours are oriented counterclockwise with respect to the normal, interior contours are oriented clockwise. The GLU_TESS_BEGIN and GLU_TESS_BEGIN_DATA callbacks use the type GL_LINE_LOOP for each contour.
GLU_TESS_TOLERANCE
Specifies a tolerance for merging features to reduce the size of the output. For example, two vertexes that are very close to each other might be replaced by a single vertex. The tolerance is multiplied by the largest coordinate magnitude of any input vertex; this specifies the maximum distance that any feature can move as the result of a single merge operation. If a single feature takes part in several merge operations, the total distance moved can be larger. Feature merging is completely optional; the tolerance is only a hint. The implementation is free to merge in some cases and not in others, or to never merge features at all. The default tolerance is zero.
The current implementation merges vertexes only if they are exactly coincident, regardless of the current tolerance. A vertex is spliced into an edge only if the implementation is unable to distinguish which side of the edge the vertex lies on. Two edges are merged only when both endpoints are identical.
See Also
gluGetTessProperty
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
gluTessProperty
Функция gluTessProperty устанавливает собственность объекта tessellation.
пустота gluTessProperty( GLUtesselator *tess, GLenum какое, величина GLdouble );
Параметры
tess
Определяет объект tessellation (созданное gluNewTess).
какое
Определяет величину собственности, чтобы устанавливаться. Правильные величины - GLU_TESS_WINDING_RULE, GLU_TESS_BOUNDARY_ONLY, и GLU_TESS_TOLERANCE.
величина
Определяет величину указанной собственности.
Замечания
Функция gluTessProperty регулирует свойства хранился на объекте tessellation. Эти свойства влияют на путь, который многоугольники интерпретированы и предоставляют. Юридические величины - следующим образом:
GLU_TESS_WINDING_RULE
Определяет, что какие части многоугольника находятся в "интерьере." Параметр величины может быть установлен на одно из 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 на плоскости. Отметьте, что винтовое число - то же для всех точек в единственном регионе. Завинчивание правил классифицирует регион как "в" если завинчивание номера принадлежит выбранной категории (нечетный, не равным нулю, положительный, отрицательный, или абсолютная величина по крайней мере двух). Предшествующий tessellator GLU (до GLU 1.2) использовал правила "нечетный". Правила "не равным нулю" является другим общим путем определять интерьер. Другие три правила полезные для действий многоугольника CSG.
GLU_TESS_BOUNDARY_ONLY
Определяет Логическую величину (величина должна быть установлена на GL_TRUE или GL_FALSE). Когда установлено на GL_TRUE, набор закрытых контуров, разделяющих интерьер многоугольника и внешний вид возвращан вместо tessellation. Внешние контуры ориентируются против часовой стрелки что касается нормального, внутренние контуры ориентируются по часовой стрелке. GLU_TESS_BEGIN И возвраты GLU_TESS_BEGIN_DATA используют тип GL_LINE_LOOP для каждого контура.
GLU_TESS_TOLERANCE
Определяет допуск для слияния характеристик, чтобы уменьшать размер выхода. Например, две вершины, которые очень близкие к друг друга могло быть заменено единственной вершиной. Допуск умножен на самую большую координатную величину любой входной вершины; это определяет максимальное расстояние, что любая характеристика может переместить как результат единственного действия слияния. Если единственная характеристика принимает участие в нескольких действиях слияния, перемещенное общее расстояние может быть большим. Слияние Характеристики полностью дополнительное; допуск является только намеком. Реализация свободна, чтобы объединять в некоторых случаях и не в других, или, чтобы никогда не объединять характеристики совсем. Встроенный допуск нулевой.
Текущая реализация объединяет вершины только если они точно совпадающие, независимо от текущего допуска. Вершина сращена на край только если реализация - не в состоянии различить какой стороне края ложь вершины на. Два края объединяются только когда обе конечных точки идентичны.
Смотри Также
gluGetTessProperty
| |
|
|
| |