import WebGLConstants from "./WebGLConstants.js";
|
|
/**
|
* The type of a geometric primitive, i.e., points, lines, and triangles.
|
*
|
* @enum {Number}
|
*/
|
var PrimitiveType = {
|
/**
|
* Points primitive where each vertex (or index) is a separate point.
|
*
|
* @type {Number}
|
* @constant
|
*/
|
POINTS: WebGLConstants.POINTS,
|
|
/**
|
* Lines primitive where each two vertices (or indices) is a line segment. Line segments are not necessarily connected.
|
*
|
* @type {Number}
|
* @constant
|
*/
|
LINES: WebGLConstants.LINES,
|
|
/**
|
* Line loop primitive where each vertex (or index) after the first connects a line to
|
* the previous vertex, and the last vertex implicitly connects to the first.
|
*
|
* @type {Number}
|
* @constant
|
*/
|
LINE_LOOP: WebGLConstants.LINE_LOOP,
|
|
/**
|
* Line strip primitive where each vertex (or index) after the first connects a line to the previous vertex.
|
*
|
* @type {Number}
|
* @constant
|
*/
|
LINE_STRIP: WebGLConstants.LINE_STRIP,
|
|
/**
|
* Triangles primitive where each three vertices (or indices) is a triangle. Triangles do not necessarily share edges.
|
*
|
* @type {Number}
|
* @constant
|
*/
|
TRIANGLES: WebGLConstants.TRIANGLES,
|
|
/**
|
* Triangle strip primitive where each vertex (or index) after the first two connect to
|
* the previous two vertices forming a triangle. For example, this can be used to model a wall.
|
*
|
* @type {Number}
|
* @constant
|
*/
|
TRIANGLE_STRIP: WebGLConstants.TRIANGLE_STRIP,
|
|
/**
|
* Triangle fan primitive where each vertex (or index) after the first two connect to
|
* the previous vertex and the first vertex forming a triangle. For example, this can be used
|
* to model a cone or circle.
|
*
|
* @type {Number}
|
* @constant
|
*/
|
TRIANGLE_FAN: WebGLConstants.TRIANGLE_FAN,
|
};
|
|
/**
|
* @private
|
*/
|
PrimitiveType.validate = function (primitiveType) {
|
return (
|
primitiveType === PrimitiveType.POINTS ||
|
primitiveType === PrimitiveType.LINES ||
|
primitiveType === PrimitiveType.LINE_LOOP ||
|
primitiveType === PrimitiveType.LINE_STRIP ||
|
primitiveType === PrimitiveType.TRIANGLES ||
|
primitiveType === PrimitiveType.TRIANGLE_STRIP ||
|
primitiveType === PrimitiveType.TRIANGLE_FAN
|
);
|
};
|
|
export default Object.freeze(PrimitiveType);
|