Пример #1
0
        /// <summary>
        /// ComputeHashCode
        /// </summary>
        /// <returns></returns>
        private void ComputeHashCode()
        {
            int result  = 1;
            int modCode = 0;

            if (m_diffuseTex != null)
            {
                result  = m_diffuseTex.GetHashCode();
                modCode = (1 << 1);
            }

            if (m_normalTex != null)
            {
                result   = (result * 397) ^ m_normalTex.GetHashCode();
                modCode += (1 << 2);
            }

            if (m_specularIntensity != 0)
            {
                result   = (result * 397) ^ m_specularIntensity.GetHashCode();
                modCode += (1 << 4);
            }

            if (m_specularPower != 0)
            {
                result   = (result * 397) ^ m_specularPower.GetHashCode();
                modCode += (1 << 5);
            }

            if (m_diffuseColor.GetHashCode() != 0)
            {
                result   = (result * 397) ^ m_diffuseColor.GetHashCode();
                modCode += (1 << 6);
            }

            if (DiffuseUVAnim.GetHashCode() != 0)
            {
                result   = (result * 397) ^ DiffuseUVAnim.GetHashCode();
                modCode += (1 << 7);
            }

            if (EmissiveUVAnim.GetHashCode() != 0)
            {
                result   = (result * 397) ^ EmissiveUVAnim.GetHashCode();
                modCode += (1 << 8);
            }

            result   = (result * 397) ^ EmissivityEnabled.GetHashCode();
            modCode += (1 << 9);

            HashCode = (result * 397) ^ modCode;
        }