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

191 lines
4.5 KiB
JavaScript
Raw Normal View History

2018-04-09 09:35:04 +02:00
/**
* R3.D3.API.Material.Basic
* @param apiMaterial
* @param alphaMap
* @param aoMap
* @param aoMapIntensity
* @param color
* @param combine
* @param envMap
* @param lightMap
* @param lightMapIntensity
* @param diffuseMap
* @param morphTargets
* @param reflectivity
* @param refractionRatio
* @param skinning
* @param specularMap
* @param wireframe
* @param wireframeLinecap
* @param wireframeLinejoin
* @param wireframeLinewidth
* @constructor
*/
R3.D3.API.Material.Basic = function(
apiMaterial,
alphaMap,
aoMap,
aoMapIntensity,
color,
combine,
envMap,
lightMap,
lightMapIntensity,
diffuseMap,
morphTargets,
reflectivity,
refractionRatio,
skinning,
specularMap,
wireframe,
wireframeLinecap,
wireframeLinejoin,
wireframeLinewidth
) {
if (R3.Utils.UndefinedOrNull(apiMaterial)) {
apiMaterial = {
materialType: R3.D3.API.Material.MATERIAL_TYPE_BASIC
};
}
if (R3.Utils.UndefinedOrNull(apiMaterial.materialType)) {
apiMaterial.materialType = R3.D3.API.Material.MATERIAL_TYPE_BASIC;
}
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(color)) {
color = new R3.API.Color(1, 1, 1, 1)
}
this.color = color;
if (R3.Utils.UndefinedOrNull(combine)) {
combine = R3.D3.API.Material.COMBINE_MULTIPLY_OPERATION;
}
this.combine = combine;
if (R3.Utils.UndefinedOrNull(envMap)) {
envMap = null;
}
this.envMap = envMap;
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(morphTargets)) {
morphTargets = false;
}
this.morphTargets = morphTargets;
if (R3.Utils.UndefinedOrNull(reflectivity)) {
reflectivity = 1;
}
this.reflectivity = reflectivity;
if (R3.Utils.UndefinedOrNull(refractionRatio)) {
refractionRatio = 0.98;
}
this.refractionRatio = refractionRatio;
if (R3.Utils.UndefinedOrNull(skinning)) {
skinning = false;
}
this.skinning = skinning;
if (R3.Utils.UndefinedOrNull(specularMap)) {
specularMap = null;
}
this.specularMap = specularMap;
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.Basic.prototype = Object.create(R3.D3.API.Material.prototype);
R3.D3.API.Material.Basic.prototype.constructor = R3.D3.API.Material.Basic;