public override bool Equals(object o)
            {
                if (this == o)
                {
                    return(true);
                }
                if (o == null || GetType() != o.GetType())
                {
                    return(false);
                }

                StateKey stateKey = (StateKey)o;

                if (Math.Abs(stateKey.verticalExaggeration - verticalExaggeration) > 0.0000001)
                {
                    return(false);
                }
                if (elevationModel != null ? !elevationModel.Equals(stateKey.elevationModel) :
                    stateKey.elevationModel != null)
                {
                    return(false);
                }
                if (globe != null ? !globe.Equals(stateKey.globe) : stateKey.globe != null)
                {
                    return(false);
                }
                if (_tessellator != null ? !_tessellator.Equals(stateKey._tessellator) : stateKey._tessellator != null)
                {
                    return(false);
                }

                return(true);
            }