|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
Describing the Polygon to Be Tessellated
The polygon to be tessellated, possibly containing holes, is specified using the following four routines: gluBeginPolygon, gluTessVertex, gluNextContour, and gluEndPolygon. For polygons without holes, the specification is exactly as in OpenGL: start with gluBeginPolygon, call gluTessVertex for each vertex in the boundary, and end the polygon with a call to gluEndPolygon. If a polygon consists of multiple contours, including holes and holes within holes, the contours are specified one after the other, each preceded by gluNextContour. When gluEndPolygon is called, it signals the end of the final contour and starts the tessellation. You can omit the call to gluNextContour before the first contour. The detailed descriptions of these functions follow.
void gluBeginPolygon(GLUtriangulatorObj *tessobj);
Begins the specification of a polygon to be tessellated and associates a tessellation object, tessobj, with it. The callback functions to be used are those that were bound to the tessellation object using the routine gluTessCallback.
void gluTessVertex(GLUtriangulatorObj *tessobj, GLdouble v[3], void *data);
Specifies a vertex in the polygon to be tessellated. Call this routine for each vertex in the polygon to be tessellated. tessobj is the tessellation object to use, v contains the three-dimensional vertex coordinates, and data is an arbitrary pointer that is sent to the callback associated with GLU_VERTEX. Typically, it contains vertex data, texture coordinates, color information, or whatever else the application may require.
void gluNextContour(GLUtriangulatorObj *tessobj, GLenum type);
Marks the beginning of the next contour when multiple contours make up the boundary of the polygon to be tessellated. type can be GLU_EXTERIOR, GLU_INTERIOR, GLU_CCW, GLU_CW, or GLU_UNKNOWN. These serve only as hints to the tessellation. If you get them right, the tessellation might go faster. If you get them wrong, they're ignored, and the tessellation still works. For a polygon with holes, one contour is the exterior contour and the others interior. gluNextContour can be called immediately after gluBeginPolygon, but if it isn't, the first contour is assumed to be of type GLU_EXTERIOR. GLU_CW and GLU_CCW indicate clockwise- and counterclockwise- oriented polygons. Choosing which are clockwise and which are counterclockwise is arbitrary in three dimensions, but in any plane, there are two different orientations, and the GLU_CW and GLU_CCW types should be used consistently. Use GLU_UNKNOWN if you don't know which to use.
void gluEndPolygon(GLUtriangulatorObj *tessobj);
Indicates the end of the polygon specification and that the tessellation can begin using the tessellation object tessobj.
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
Описывающий Многоугольник, который Нужно Складываться мозаику
Многоугольник, который нужно складывать мозаику, возможно содержа отверстия, определен используя следующие четыре программы: gluBeginPolygon, gluTessVertex, gluNextContour, и gluEndPolygon. Для многоугольников без отверстий, спецификация - точно как в OpenGL: начните с gluBeginPolygon, призывайте gluTessVertex к каждой вершине на границе и заканчивайте многоугольник с вызовом на gluEndPolygon. Если многоугольник состоит из многочисленных контуров, включая отверстия и отверстия в пределах отверстий, контуры определены один после другое, каждые следованным за gluNextContour. Когда gluEndPolygon назван, это сигнализирует конец конечного контура и начинает tessellation. Вы можете опустить вызов на gluNextContour перед первым контуром. Подробные описания этих функций следуют.
аннулируйте gluBeginPolygon(GLUtriangulatorObj *tessobj);
Начинает спецификацию многоугольника, который нужно складывать мозаику и соединял объект tessellation, tessobj, с ним. Возврат функционирует, чтобы быть использованн - теми которые были обязанными объект tessellation, использовавший программу gluTessCallback.
аннулируйте gluTessVertex(GLUtriangulatorObj *tessobj, GLdouble v[3], пустота *данные);
Определяет вершину во многоугольнике, который нужно складываться мозаику. Призовите эту программу к каждой вершине во многоугольнике, чтобы быть tessellated. tessobj - объект tessellation против использования, v содержит трехмерные координаты вершины, и данные является произвольным указателем, который послан в возврат связанный GLU_VERTEX. Обычно, это содержит данные вершины, координат текстуры, цветной информации, или все, что еще приложение может потребоваться.
аннулируйте gluNextContour(GLUtriangulatorObj *tessobj, тип GLenum);
Выделяет начало следующего контура когда кратное очерчивает созданию границу многоугольника, чтобы быть tessellated. типом может быть GLU_EXTERIOR, GLU_INTERIOR, GLU_CCW, GLU_CW, или GLU_UNKNOWN. Эти обслуживают только как намеки в tessellation. Если Вы получаете их право, tessellation могло пойти быстрее. Если Вы получаете их неправильно, они проигнорированы, и неподвижные работы tessellation. Для многоугольника с отверстиями, один контур является внешним контуром и другие interior. gluNextContour может называться немедленно после gluBeginPolygon, но если он - не, первый контур принят, чтобы быть типа GLU_EXTERIOR. GLU_CW и GLU_CCW указывает по часовой стрелке- и против часовой стрелки- ориентированные многоугольники. Выбор, который - по часовой стрелке и, который - против часовой стрелки произвольное в трех измерениях, но на любой плоскости, есть две других ориентации, и GLU_CW и типы GLU_CCW должны использоваться последовательно. Используйте GLU_UNKNOWN если Вы не знаете какое, чтобы использовать.
аннулируйте gluEndPolygon(GLUtriangulatorObj *tessobj);
Указывает конец спецификации многоугольника и, что tessellation мочь начать использовать объект tessellation tessobj.
| |
|
|
| |