r3-legacy/src/r3-d3-api-material-standard.js

282 lines
6.6 KiB
JavaScript

/**
* R3.D3.API.Material.Standard
* @param apiMaterial
* @param alphaMap
* @param aoMap
* @param aoMapIntensity
* @param bumpMap
* @param bumpScale
* @param color
* @param displacementMap
* @param displacementScale
* @param displacementBias
* @param emissive
* @param emissiveMap
* @param emissiveIntensity
* @param envMap
* @param envMapIntensity
* @param lightMap
* @param lightMapIntensity
* @param diffuseMap
* @param metalness
* @param metalnessMap
* @param morphNormals
* @param morphTargets
* @param normalMap
* @param normalScale
* @param refractionRatio
* @param roughness
* @param roughnessMap
* @param skinning
* @param wireframe
* @param wireframeLinecap
* @param wireframeLinejoin
* @param wireframeLinewidth
* @constructor
*/
R3.D3.API.Material.Standard = function(
apiMaterial,
alphaMap,
aoMap,
aoMapIntensity,
bumpMap,
bumpScale,
color,
displacementMap,
displacementScale,
displacementBias,
emissive,
emissiveMap,
emissiveIntensity,
envMap,
envMapIntensity,
lightMap,
lightMapIntensity,
diffuseMap,
metalness,
metalnessMap,
morphNormals,
morphTargets,
normalMap,
normalScale,
refractionRatio,
roughness,
roughnessMap,
skinning,
wireframe,
wireframeLinecap,
wireframeLinejoin,
wireframeLinewidth
) {
if (R3.Utils.UndefinedOrNull(apiMaterial)) {
apiMaterial = {
materialType: R3.D3.API.Material.MATERIAL_TYPE_STANDARD
};
}
if (R3.Utils.UndefinedOrNull(apiMaterial.materialType)) {
apiMaterial.materialType = R3.D3.API.Material.MATERIAL_TYPE_STANDARD;
}
if (R3.Utils.UndefinedOrNull(alphaMap)) {
alphaMap = null;
}
this.alphaMap = alphaMap;
if (R3.Utils.UndefinedOrNull(aoMap)) {
aoMap = null;
}
this.aoMap = aoMap;
if (R3.Utils.UndefinedOrNull(aoMapIntensity)) {
aoMapIntensity = 1;
}
this.aoMapIntensity = aoMapIntensity;
if (R3.Utils.UndefinedOrNull(bumpMap)) {
bumpMap = null;
}
this.bumpMap = bumpMap;
if (R3.Utils.UndefinedOrNull(bumpScale)) {
bumpScale = 1;
}
this.bumpScale = bumpScale;
if (R3.Utils.UndefinedOrNull(color)) {
color = new R3.API.Color(1, 1, 1, 1)
}
this.color = color;
if (R3.Utils.UndefinedOrNull(displacementMap)) {
displacementMap = null;
}
this.displacementMap = displacementMap;
if (R3.Utils.UndefinedOrNull(displacementBias)) {
displacementBias = 0;
}
this.displacementBias = displacementBias;
if (R3.Utils.UndefinedOrNull(displacementScale)) {
displacementScale = 1;
}
this.displacementScale = displacementScale;
if (R3.Utils.UndefinedOrNull(emissive)) {
emissive = new R3.API.Color(0, 0, 0, 0);
}
this.emissive = emissive;
if (R3.Utils.UndefinedOrNull(emissiveMap)) {
emissiveMap = null;
}
this.emissiveMap = emissiveMap;
if (R3.Utils.UndefinedOrNull(emissiveIntensity)) {
emissiveIntensity = 1;
}
this.emissiveIntensity = emissiveIntensity;
if (R3.Utils.UndefinedOrNull(envMap)) {
envMap = null;
}
this.envMap = envMap;
if (R3.Utils.UndefinedOrNull(envMapIntensity)) {
envMapIntensity = 1;
}
this.envMapIntensity = envMapIntensity;
if (R3.Utils.UndefinedOrNull(lightMap)) {
lightMap = null;
}
this.lightMap = lightMap;
if (R3.Utils.UndefinedOrNull(lightMapIntensity)) {
lightMapIntensity = 1;
}
this.lightMapIntensity = lightMapIntensity;
if (R3.Utils.UndefinedOrNull(diffuseMap)) {
diffuseMap = null;
}
this.diffuseMap = diffuseMap;
if (R3.Utils.UndefinedOrNull(metalness)) {
metalness = 0.5;
}
this.metalness = metalness;
if (R3.Utils.UndefinedOrNull(metalnessMap)) {
metalnessMap = null;
}
this.metalnessMap = metalnessMap;
if (R3.Utils.UndefinedOrNull(morphNormals)) {
morphNormals = false;
}
this.morphNormals = morphNormals;
if (R3.Utils.UndefinedOrNull(morphTargets)) {
morphTargets = false;
}
this.morphTargets = morphTargets;
if (R3.Utils.UndefinedOrNull(normalMap)) {
normalMap = null;
}
this.normalMap = normalMap;
if (R3.Utils.UndefinedOrNull(normalScale)) {
normalScale = 1;
}
this.normalScale = normalScale;
if (R3.Utils.UndefinedOrNull(refractionRatio)) {
refractionRatio = 0.98;
}
this.refractionRatio = refractionRatio;
if (R3.Utils.UndefinedOrNull(roughness)) {
roughness = 0.5;
}
this.roughness = roughness;
if (R3.Utils.UndefinedOrNull(roughnessMap)) {
roughnessMap = null;
}
this.roughnessMap = roughnessMap;
if (R3.Utils.UndefinedOrNull(skinning)) {
skinning = false;
}
this.skinning = skinning;
if (R3.Utils.UndefinedOrNull(wireframe)) {
wireframe = false;
}
this.wireframe = wireframe;
if (R3.Utils.UndefinedOrNull(wireframeLinecap)) {
wireframeLinecap = 'round';
}
this.wireframeLinecap = wireframeLinecap;
if (R3.Utils.UndefinedOrNull(wireframeLinejoin)) {
wireframeLinejoin = 'round';
}
this.wireframeLinejoin = wireframeLinejoin;
if (R3.Utils.UndefinedOrNull(wireframeLinewidth)) {
wireframeLinewidth = 1;
}
this.wireframeLinewidth = wireframeLinewidth;
R3.D3.API.Material.call(
this,
apiMaterial.id,
apiMaterial.name,
apiMaterial.materialType,
apiMaterial.parentEntity,
apiMaterial.parentMeshes,
apiMaterial.alphaTest,
apiMaterial.blendDst,
apiMaterial.blendDstAlpha,
apiMaterial.blendEquation,
apiMaterial.blendEquationAlpha,
apiMaterial.blending,
apiMaterial.blendSrc,
apiMaterial.blendSrcAlpha,
apiMaterial.clipIntersection,
apiMaterial.clippingPlanes,
apiMaterial.clipShadows,
apiMaterial.colorWrite,
apiMaterial.customDepthMaterial,
apiMaterial.customDistanceMaterial,
apiMaterial.defines,
apiMaterial.depthFunc,
apiMaterial.depthTest,
apiMaterial.depthWrite,
apiMaterial.fog,
apiMaterial.lights,
apiMaterial.opacity,
apiMaterial.overdraw,
apiMaterial.polygonOffset,
apiMaterial.polygonOffsetFactor,
apiMaterial.polygonOffsetUnits,
apiMaterial.precision,
apiMaterial.premultipliedAlpha,
apiMaterial.dithering,
apiMaterial.flatShading,
apiMaterial.side,
apiMaterial.transparent,
apiMaterial.vertexColors,
apiMaterial.visible
);
};
R3.D3.API.Material.Standard.prototype = Object.create(R3.D3.API.Material.prototype);
R3.D3.API.Material.Standard.prototype.constructor = R3.D3.API.Material.Standard;