/** * R3.D3.API.Material.Phong * @param apiComponent * * @property alphaMap * @property aoMap * @property aoMapIntensity * @property bumpMap * @property bumpScale * @property color * @property combine * @property displacementMap * @property displacementScale * @property displacementBias * @property emissive * @property emissiveMap * @property emissiveIntensity * @property envMap * @property lightMap * @property lightMapIntensity * @property diffuseMap * @property morphNormals * @property morphTargets * @property normalMap * @property normalScale * @property reflectivity * @property refractionRatio * @property shininess * @property skinning * @property specular * @property specularMap * @property wireframe * @property wireframeLinecap * @property wireframeLinejoin * @property wireframeLinewidth * * @constructor */ R3.D3.API.Material.Phong = function( apiComponent ) { __API_MATERIAL__; if (R3.Utils.UndefinedOrNull(apiComponent.alphaMap)) { apiComponent.alphaMap = null; } this.alphaMap = apiComponent.alphaMap; if (R3.Utils.UndefinedOrNull(apiComponent.aoMap)) { apiComponent.aoMap = null; } this.aoMap = apiComponent.aoMap; if (R3.Utils.UndefinedOrNull(apiComponent.aoMapIntensity)) { apiComponent.aoMapIntensity = 1; } this.aoMapIntensity = apiComponent.aoMapIntensity; if (R3.Utils.UndefinedOrNull(apiComponent.bumpMap)) { apiComponent.bumpMap = null; } this.bumpMap = apiComponent.bumpMap; if (R3.Utils.UndefinedOrNull(apiComponent.bumpScale)) { apiComponent.bumpScale = 1; } this.bumpScale = apiComponent.bumpScale; if (R3.Utils.UndefinedOrNull(apiComponent.color)) { apiComponent.color = new R3.API.Color( { parent : this, register : true, r : 1, g : 1, b : 1, a : 1 } ); } this.color = apiComponent.color; if (R3.Utils.UndefinedOrNull(apiComponent.combine)) { apiComponent.combine = R3.D3.API.Material.COMBINE_MULTIPLY_OPERATION; } this.combine = apiComponent.combine; if (R3.Utils.UndefinedOrNull(apiComponent.displacementMap)) { apiComponent.displacementMap = null; } this.displacementMap = apiComponent.displacementMap; if (R3.Utils.UndefinedOrNull(apiComponent.displacementBias)) { apiComponent.displacementBias = 0; } this.displacementBias = apiComponent.displacementBias; if (R3.Utils.UndefinedOrNull(apiComponent.displacementScale)) { apiComponent.displacementScale = 1; } this.displacementScale = apiComponent.displacementScale; if (R3.Utils.UndefinedOrNull(apiComponent.emissive)) { apiComponent.emissive = new R3.API.Color( { parent : this, register : true, r : 1, g : 1, b : 1, a : 1 } ); } this.emissive = apiComponent.emissive; if (R3.Utils.UndefinedOrNull(apiComponent.emissiveMap)) { apiComponent.emissiveMap = null; } this.emissiveMap = apiComponent.emissiveMap; if (R3.Utils.UndefinedOrNull(apiComponent.emissiveIntensity)) { apiComponent.emissiveIntensity = 1; } this.emissiveIntensity = apiComponent.emissiveIntensity; if (R3.Utils.UndefinedOrNull(apiComponent.envMap)) { apiComponent.envMap = null; } this.envMap = apiComponent.envMap; if (R3.Utils.UndefinedOrNull(apiComponent.lightMap)) { apiComponent.lightMap = null; } this.lightMap = apiComponent.lightMap; if (R3.Utils.UndefinedOrNull(apiComponent.lightMapIntensity)) { apiComponent.lightMapIntensity = 1; } this.lightMapIntensity = apiComponent.lightMapIntensity; if (R3.Utils.UndefinedOrNull(apiComponent.diffuseMap)) { apiComponent.diffuseMap = null; } this.diffuseMap = apiComponent.diffuseMap; if (R3.Utils.UndefinedOrNull(apiComponent.morphNormals)) { apiComponent.morphNormals = false; } this.morphNormals = apiComponent.morphNormals; if (R3.Utils.UndefinedOrNull(apiComponent.morphTargets)) { apiComponent.morphTargets = false; } this.morphTargets = apiComponent.morphTargets; if (R3.Utils.UndefinedOrNull(apiComponent.normalMap)) { apiComponent.normalMap = null; } this.normalMap = apiComponent.normalMap; if (R3.Utils.UndefinedOrNull(apiComponent.normalScale)) { apiComponent.normalScale = 1; } this.normalScale = apiComponent.normalScale; if (R3.Utils.UndefinedOrNull(apiComponent.reflectivity)) { apiComponent.reflectivity = 1; } this.reflectivity = apiComponent.reflectivity; if (R3.Utils.UndefinedOrNull(apiComponent.refractionRatio)) { apiComponent.refractionRatio = 0.98; } this.refractionRatio = apiComponent.refractionRatio; if (R3.Utils.UndefinedOrNull(apiComponent.shininess)) { apiComponent.shininess = 30; } this.shininess = apiComponent.shininess; if (R3.Utils.UndefinedOrNull(apiComponent.skinning)) { apiComponent.skinning = false; } this.skinning = apiComponent.skinning; if (R3.Utils.UndefinedOrNull(apiComponent.specular)) { apiComponent.specular = new R3.API.Color( { parent : this, register : true, r : 0.06, g : 0.06, b : 0.06, a : 0 } ); } this.specular = apiComponent.specular; if (R3.Utils.UndefinedOrNull(apiComponent.specularMap)) { apiComponent.specularMap = null; } this.specularMap = apiComponent.specularMap; if (R3.Utils.UndefinedOrNull(apiComponent.wireframe)) { apiComponent.wireframe = false; } this.wireframe = apiComponent.wireframe; if (R3.Utils.UndefinedOrNull(apiComponent.wireframeLinecap)) { apiComponent.wireframeLinecap = 'round'; } this.wireframeLinecap = apiComponent.wireframeLinecap; if (R3.Utils.UndefinedOrNull(apiComponent.wireframeLinejoin)) { apiComponent.wireframeLinejoin = 'round'; } this.wireframeLinejoin = apiComponent.wireframeLinejoin; if (R3.Utils.UndefinedOrNull(apiComponent.wireframeLinewidth)) { apiComponent.wireframeLinewidth = 1; } this.wireframeLinewidth = apiComponent.wireframeLinewidth; }; R3.D3.API.Material.Phong.prototype = Object.create(R3.D3.API.Material.prototype); R3.D3.API.Material.Phong.prototype.constructor = R3.D3.API.Material.Phong;