Axiom.Core.ColorEx.Clone C# (CSharp) Метод

Clone() публичный Метод

Creates a new object that is a copy of the current instance.
public Clone ( ) : ColorEx
Результат ColorEx
		public ColorEx Clone()
		{
			ColorEx clone;
			clone.a = this.a;
			clone.r = this.r;
			clone.g = this.g;
			clone.b = this.b;
			return clone;
		}

Usage Example

        /// <summary>
        /// 
        /// </summary>
        /// <param name="ambient"></param>
        /// <param name="diffuse"></param>
        /// <param name="specular"></param>
        /// <param name="emissive"></param>
        /// <param name="shininess"></param>
        public override void SetSurfaceParams(ColorEx ambient, ColorEx diffuse, ColorEx specular, ColorEx emissive, float shininess, TrackVertexColor tracking)
        {
            // TODO: Cache color values to prune unneccessary setting

            if (cache.materialAmbient.CompareTo(ambient) == 0 &&
                cache.materialDiffuse.CompareTo(diffuse) == 0 &&
                cache.materialSpecular.CompareTo(specular) == 0 &&
                cache.materialEmissive.CompareTo(emissive) == 0 &&
                cache.materialShininess == shininess &&
                cache.materialTracking == tracking)
                return;

            cache.materialAmbient = ambient.Clone();
            cache.materialDiffuse = diffuse.Clone();
            cache.materialSpecular = specular.Clone();
            cache.materialEmissive = emissive.Clone();
            cache.materialShininess = shininess;
            cache.materialTracking = tracking;

            // create a new material based on the supplied params
            D3D.Material mat = new D3D.Material();
            mat.Diffuse = diffuse.ToColor();
            mat.Ambient = ambient.ToColor();
            mat.Specular = specular.ToColor();
            mat.Emissive = emissive.ToColor();
            mat.SpecularSharpness = shininess;

            // set the current material
            device.Material = mat;

            if (tracking != TrackVertexColor.None) {
                SetRenderState(ref cache.colorVertex, RenderStates.ColorVertex, true);
                device.SetRenderState(RenderStates.AmbientMaterialSource, (int)(((tracking & TrackVertexColor.Ambient) != 0) ? D3D.ColorSource.Color1 : D3D.ColorSource.Material));
                device.SetRenderState(RenderStates.DiffuseMaterialSource, (int)(((tracking & TrackVertexColor.Diffuse) != 0) ? D3D.ColorSource.Color1 : D3D.ColorSource.Material));
                device.SetRenderState(RenderStates.SpecularMaterialSource, (int)(((tracking & TrackVertexColor.Specular) != 0) ? D3D.ColorSource.Color1 : D3D.ColorSource.Material));
                device.SetRenderState(RenderStates.EmissiveMaterialSource, (int)(((tracking & TrackVertexColor.Emissive) != 0) ? D3D.ColorSource.Color1 : D3D.ColorSource.Material));
            } else
                SetRenderState(ref cache.colorVertex, RenderStates.ColorVertex, false);
        }
All Usage Examples Of Axiom.Core.ColorEx::Clone