Source: material/LineMaterial.js

import { MATERIAL_TYPE, DRAW_MODE } from '../const.js';
import { Material } from './Material.js';

/**
 * A material for drawing wireframe-style geometries.
 * @constructor
 * @extends zen3d.Material
 * @memberof zen3d
 */
function LineMaterial() {
	Material.call(this);

	this.type = MATERIAL_TYPE.LINE;

	/**
     * Controls line thickness.
     * Due to limitations of the OpenGL Core Profile with the WebGL renderer on most platforms linewidth will always be 1 regardless of the set value.
     * @type {number}
     * @default 1
     */
	this.lineWidth = 1;

	/**
     * Set draw mode to LINES / LINE_LOOP / LINE_STRIP
     * @type {zen3d.DRAW_MODE}
     * @default zen3d.DRAW_MODE.LINES
     */
	this.drawMode = DRAW_MODE.LINES;
}

LineMaterial.prototype = Object.assign(Object.create(Material.prototype), /** @lends zen3d.LineMaterial.prototype */{

	constructor: LineMaterial,

	copy: function(source) {
		Material.prototype.copy.call(this, source);

		this.lineWidth = source.lineWidth;

		return this;
	}

});

export { LineMaterial };