@openhps/core
Version:
Open Hybrid Positioning System - Core component
97 lines (91 loc) • 3.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DepthTexture = void 0;
var _Source = require("./Source.js");
var _Texture = require("./Texture.js");
var _constants = require("../constants.js");
/**
* This class can be used to automatically save the depth information of a
* rendering into a texture.
*
* @augments Texture
*/
class DepthTexture extends _Texture.Texture {
/**
* Constructs a new depth texture.
*
* @param {number} width - The width of the texture.
* @param {number} height - The height of the texture.
* @param {number} [type=UnsignedIntType] - The texture type.
* @param {number} [mapping=Texture.DEFAULT_MAPPING] - The texture mapping.
* @param {number} [wrapS=ClampToEdgeWrapping] - The wrapS value.
* @param {number} [wrapT=ClampToEdgeWrapping] - The wrapT value.
* @param {number} [magFilter=LinearFilter] - The mag filter value.
* @param {number} [minFilter=LinearFilter] - The min filter value.
* @param {number} [anisotropy=Texture.DEFAULT_ANISOTROPY] - The anisotropy value.
* @param {number} [format=DepthFormat] - The texture format.
*/
constructor(width, height, type = _constants.UnsignedIntType, mapping, wrapS, wrapT, magFilter = _constants.NearestFilter, minFilter = _constants.NearestFilter, anisotropy, format = _constants.DepthFormat) {
if (format !== _constants.DepthFormat && format !== _constants.DepthStencilFormat) {
throw new Error('DepthTexture format must be either THREE.DepthFormat or THREE.DepthStencilFormat');
}
super(null, mapping, wrapS, wrapT, magFilter, minFilter, format, type, anisotropy);
/**
* This flag can be used for type testing.
*
* @type {boolean}
* @readonly
* @default true
*/
this.isDepthTexture = true;
/**
* The image property of a depth texture just defines its dimensions.
*
* @type {{width:number,height:number}}
*/
this.image = {
width: width,
height: height
};
/**
* If set to `true`, the texture is flipped along the vertical axis when
* uploaded to the GPU.
*
* Overwritten and set to `false` by default.
*
* @type {boolean}
* @default false
*/
this.flipY = false;
/**
* Whether to generate mipmaps (if possible) for a texture.
*
* Overwritten and set to `false` by default.
*
* @type {boolean}
* @default false
*/
this.generateMipmaps = false;
/**
* The depth compare function.
*
* @type {?(NeverCompare|LessCompare|EqualCompare|LessEqualCompare|GreaterCompare|NotEqualCompare|GreaterEqualCompare|AlwaysCompare)}
* @default null
*/
this.compareFunction = null;
}
copy(source) {
super.copy(source);
this.source = new _Source.Source(Object.assign({}, source.image)); // see #30540
this.compareFunction = source.compareFunction;
return this;
}
toJSON(meta) {
const data = super.toJSON(meta);
if (this.compareFunction !== null) data.compareFunction = this.compareFunction;
return data;
}
}
exports.DepthTexture = DepthTexture;