191 lines
4.5 KiB
JavaScript
191 lines
4.5 KiB
JavaScript
|
/**
|
||
|
* 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;
|