three
Version:
JavaScript 3D library
336 lines (220 loc) • 6.78 kB
JavaScript
/**
* @author mrdoob / http://mrdoob.com/
*/
var THREE = { REVISION: '77' };
//
if ( typeof define === 'function' && define.amd ) {
define( 'three', THREE );
} else if ( 'undefined' !== typeof exports && 'undefined' !== typeof module ) {
module.exports = THREE;
}
// Polyfills
if ( Number.EPSILON === undefined ) {
Number.EPSILON = Math.pow( 2, - 52 );
}
//
if ( Math.sign === undefined ) {
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/sign
Math.sign = function ( x ) {
return ( x < 0 ) ? - 1 : ( x > 0 ) ? 1 : + x;
};
}
if ( Function.prototype.name === undefined ) {
// Missing in IE9-11.
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name
Object.defineProperty( Function.prototype, 'name', {
get: function () {
return this.toString().match( /^\s*function\s*(\S*)\s*\(/ )[ 1 ];
}
} );
}
if ( Object.assign === undefined ) {
// Missing in IE.
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
( function () {
Object.assign = function ( target ) {
'use strict';
if ( target === undefined || target === null ) {
throw new TypeError( 'Cannot convert undefined or null to object' );
}
var output = Object( target );
for ( var index = 1; index < arguments.length; index ++ ) {
var source = arguments[ index ];
if ( source !== undefined && source !== null ) {
for ( var nextKey in source ) {
if ( Object.prototype.hasOwnProperty.call( source, nextKey ) ) {
output[ nextKey ] = source[ nextKey ];
}
}
}
}
return output;
};
} )();
}
//
Object.assign( THREE, {
// https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent.button
MOUSE: { LEFT: 0, MIDDLE: 1, RIGHT: 2 },
// GL STATE CONSTANTS
CullFaceNone: 0,
CullFaceBack: 1,
CullFaceFront: 2,
CullFaceFrontBack: 3,
FrontFaceDirectionCW: 0,
FrontFaceDirectionCCW: 1,
// SHADOWING TYPES
BasicShadowMap: 0,
PCFShadowMap: 1,
PCFSoftShadowMap: 2,
// MATERIAL CONSTANTS
// side
FrontSide: 0,
BackSide: 1,
DoubleSide: 2,
// shading
FlatShading: 1,
SmoothShading: 2,
// colors
NoColors: 0,
FaceColors: 1,
VertexColors: 2,
// blending modes
NoBlending: 0,
NormalBlending: 1,
AdditiveBlending: 2,
SubtractiveBlending: 3,
MultiplyBlending: 4,
CustomBlending: 5,
// custom blending equations
// (numbers start from 100 not to clash with other
// mappings to OpenGL constants defined in Texture.js)
AddEquation: 100,
SubtractEquation: 101,
ReverseSubtractEquation: 102,
MinEquation: 103,
MaxEquation: 104,
// custom blending destination factors
ZeroFactor: 200,
OneFactor: 201,
SrcColorFactor: 202,
OneMinusSrcColorFactor: 203,
SrcAlphaFactor: 204,
OneMinusSrcAlphaFactor: 205,
DstAlphaFactor: 206,
OneMinusDstAlphaFactor: 207,
// custom blending source factors
//ZeroFactor: 200,
//OneFactor: 201,
//SrcAlphaFactor: 204,
//OneMinusSrcAlphaFactor: 205,
//DstAlphaFactor: 206,
//OneMinusDstAlphaFactor: 207,
DstColorFactor: 208,
OneMinusDstColorFactor: 209,
SrcAlphaSaturateFactor: 210,
// depth modes
NeverDepth: 0,
AlwaysDepth: 1,
LessDepth: 2,
LessEqualDepth: 3,
EqualDepth: 4,
GreaterEqualDepth: 5,
GreaterDepth: 6,
NotEqualDepth: 7,
// TEXTURE CONSTANTS
MultiplyOperation: 0,
MixOperation: 1,
AddOperation: 2,
// Tone Mapping modes
NoToneMapping: 0, // do not do any tone mapping, not even exposure (required for special purpose passes.)
LinearToneMapping: 1, // only apply exposure.
ReinhardToneMapping: 2,
Uncharted2ToneMapping: 3, // John Hable
CineonToneMapping: 4, // optimized filmic operator by Jim Hejl and Richard Burgess-Dawson
// Mapping modes
UVMapping: 300,
CubeReflectionMapping: 301,
CubeRefractionMapping: 302,
EquirectangularReflectionMapping: 303,
EquirectangularRefractionMapping: 304,
SphericalReflectionMapping: 305,
CubeUVReflectionMapping: 306,
CubeUVRefractionMapping: 307,
// Wrapping modes
RepeatWrapping: 1000,
ClampToEdgeWrapping: 1001,
MirroredRepeatWrapping: 1002,
// Filters
NearestFilter: 1003,
NearestMipMapNearestFilter: 1004,
NearestMipMapLinearFilter: 1005,
LinearFilter: 1006,
LinearMipMapNearestFilter: 1007,
LinearMipMapLinearFilter: 1008,
// Data types
UnsignedByteType: 1009,
ByteType: 1010,
ShortType: 1011,
UnsignedShortType: 1012,
IntType: 1013,
UnsignedIntType: 1014,
FloatType: 1015,
HalfFloatType: 1025,
// Pixel types
//UnsignedByteType: 1009,
UnsignedShort4444Type: 1016,
UnsignedShort5551Type: 1017,
UnsignedShort565Type: 1018,
// Pixel formats
AlphaFormat: 1019,
RGBFormat: 1020,
RGBAFormat: 1021,
LuminanceFormat: 1022,
LuminanceAlphaFormat: 1023,
// THREE.RGBEFormat handled as THREE.RGBAFormat in shaders
RGBEFormat: THREE.RGBAFormat, //1024;
DepthFormat: 1026,
// DDS / ST3C Compressed texture formats
RGB_S3TC_DXT1_Format: 2001,
RGBA_S3TC_DXT1_Format: 2002,
RGBA_S3TC_DXT3_Format: 2003,
RGBA_S3TC_DXT5_Format: 2004,
// PVRTC compressed texture formats
RGB_PVRTC_4BPPV1_Format: 2100,
RGB_PVRTC_2BPPV1_Format: 2101,
RGBA_PVRTC_4BPPV1_Format: 2102,
RGBA_PVRTC_2BPPV1_Format: 2103,
// ETC compressed texture formats
RGB_ETC1_Format: 2151,
// Loop styles for AnimationAction
LoopOnce: 2200,
LoopRepeat: 2201,
LoopPingPong: 2202,
// Interpolation
InterpolateDiscrete: 2300,
InterpolateLinear: 2301,
InterpolateSmooth: 2302,
// Interpolant ending modes
ZeroCurvatureEnding: 2400,
ZeroSlopeEnding: 2401,
WrapAroundEnding: 2402,
// Triangle Draw modes
TrianglesDrawMode: 0,
TriangleStripDrawMode: 1,
TriangleFanDrawMode: 2,
// Texture Encodings
LinearEncoding: 3000, // No encoding at all.
sRGBEncoding: 3001,
GammaEncoding: 3007, // uses GAMMA_FACTOR, for backwards compatibility with WebGLRenderer.gammaInput/gammaOutput
// The following Texture Encodings are for RGB-only (no alpha) HDR light emission sources.
// These encodings should not specified as output encodings except in rare situations.
RGBEEncoding: 3002, // AKA Radiance.
LogLuvEncoding: 3003,
RGBM7Encoding: 3004,
RGBM16Encoding: 3005,
RGBDEncoding: 3006, // MaxRange is 256.
// Depth packing strategies
BasicDepthPacking: 3200, // for writing to float textures for high precision or for visualizing results in RGB buffers
RGBADepthPacking: 3201 // for packing into RGBA buffers.
} );