/**
         * The equals method doesn't always work--mostly on on classes that consist only of primitives. Be careful.
         */
        public bool equals(FastEntityStatePdu rhs)
        {
            bool ivarsEqual = true;

            if (rhs.GetType() != this.GetType())
            {
                return(false);
            }

            if (!(_site == rhs._site))
            {
                ivarsEqual = false;
            }
            if (!(_application == rhs._application))
            {
                ivarsEqual = false;
            }
            if (!(_entity == rhs._entity))
            {
                ivarsEqual = false;
            }
            if (!(_forceId == rhs._forceId))
            {
                ivarsEqual = false;
            }
            if (!(_numberOfArticulationParameters == rhs._numberOfArticulationParameters))
            {
                ivarsEqual = false;
            }
            if (!(_entityKind == rhs._entityKind))
            {
                ivarsEqual = false;
            }
            if (!(_domain == rhs._domain))
            {
                ivarsEqual = false;
            }
            if (!(_country == rhs._country))
            {
                ivarsEqual = false;
            }
            if (!(_category == rhs._category))
            {
                ivarsEqual = false;
            }
            if (!(_subcategory == rhs._subcategory))
            {
                ivarsEqual = false;
            }
            if (!(_specific == rhs._specific))
            {
                ivarsEqual = false;
            }
            if (!(_extra == rhs._extra))
            {
                ivarsEqual = false;
            }
            if (!(_altEntityKind == rhs._altEntityKind))
            {
                ivarsEqual = false;
            }
            if (!(_altDomain == rhs._altDomain))
            {
                ivarsEqual = false;
            }
            if (!(_altCountry == rhs._altCountry))
            {
                ivarsEqual = false;
            }
            if (!(_altCategory == rhs._altCategory))
            {
                ivarsEqual = false;
            }
            if (!(_altSubcategory == rhs._altSubcategory))
            {
                ivarsEqual = false;
            }
            if (!(_altSpecific == rhs._altSpecific))
            {
                ivarsEqual = false;
            }
            if (!(_altExtra == rhs._altExtra))
            {
                ivarsEqual = false;
            }
            if (!(_xVelocity == rhs._xVelocity))
            {
                ivarsEqual = false;
            }
            if (!(_yVelocity == rhs._yVelocity))
            {
                ivarsEqual = false;
            }
            if (!(_zVelocity == rhs._zVelocity))
            {
                ivarsEqual = false;
            }
            if (!(_xLocation == rhs._xLocation))
            {
                ivarsEqual = false;
            }
            if (!(_yLocation == rhs._yLocation))
            {
                ivarsEqual = false;
            }
            if (!(_zLocation == rhs._zLocation))
            {
                ivarsEqual = false;
            }
            if (!(_psi == rhs._psi))
            {
                ivarsEqual = false;
            }
            if (!(_theta == rhs._theta))
            {
                ivarsEqual = false;
            }
            if (!(_phi == rhs._phi))
            {
                ivarsEqual = false;
            }
            if (!(_entityAppearance == rhs._entityAppearance))
            {
                ivarsEqual = false;
            }
            if (!(_deadReckoningAlgorithm == rhs._deadReckoningAlgorithm))
            {
                ivarsEqual = false;
            }

            for (int idx = 0; idx < 15; idx++)
            {
                if (!(_otherParameters[idx] == rhs._otherParameters[idx]))
                {
                    ivarsEqual = false;
                }
            }

            if (!(_xAcceleration == rhs._xAcceleration))
            {
                ivarsEqual = false;
            }
            if (!(_yAcceleration == rhs._yAcceleration))
            {
                ivarsEqual = false;
            }
            if (!(_zAcceleration == rhs._zAcceleration))
            {
                ivarsEqual = false;
            }
            if (!(_xAngularVelocity == rhs._xAngularVelocity))
            {
                ivarsEqual = false;
            }
            if (!(_yAngularVelocity == rhs._yAngularVelocity))
            {
                ivarsEqual = false;
            }
            if (!(_zAngularVelocity == rhs._zAngularVelocity))
            {
                ivarsEqual = false;
            }

            for (int idx = 0; idx < 12; idx++)
            {
                if (!(_marking[idx] == rhs._marking[idx]))
                {
                    ivarsEqual = false;
                }
            }

            if (!(_capabilities == rhs._capabilities))
            {
                ivarsEqual = false;
            }

            for (int idx = 0; idx < _articulationParameters.Count; idx++)
            {
                ArticulationParameter x = (ArticulationParameter)_articulationParameters[idx];
                if (!(_articulationParameters[idx].Equals(rhs._articulationParameters[idx])))
                {
                    ivarsEqual = false;
                }
            }


            return(ivarsEqual);
        }
        /**
          * The equals method doesn't always work--mostly on on classes that consist only of primitives. Be careful.
          */
        public bool equals(FastEntityStatePdu rhs)
        {
            bool ivarsEqual = true;

            if(rhs.GetType() != this.GetType())
            return false;

             if( ! (_site == rhs._site)) ivarsEqual = false;
             if( ! (_application == rhs._application)) ivarsEqual = false;
             if( ! (_entity == rhs._entity)) ivarsEqual = false;
             if( ! (_forceId == rhs._forceId)) ivarsEqual = false;
             if( ! (_numberOfArticulationParameters == rhs._numberOfArticulationParameters)) ivarsEqual = false;
             if( ! (_entityKind == rhs._entityKind)) ivarsEqual = false;
             if( ! (_domain == rhs._domain)) ivarsEqual = false;
             if( ! (_country == rhs._country)) ivarsEqual = false;
             if( ! (_category == rhs._category)) ivarsEqual = false;
             if( ! (_subcategory == rhs._subcategory)) ivarsEqual = false;
             if( ! (_specific == rhs._specific)) ivarsEqual = false;
             if( ! (_extra == rhs._extra)) ivarsEqual = false;
             if( ! (_altEntityKind == rhs._altEntityKind)) ivarsEqual = false;
             if( ! (_altDomain == rhs._altDomain)) ivarsEqual = false;
             if( ! (_altCountry == rhs._altCountry)) ivarsEqual = false;
             if( ! (_altCategory == rhs._altCategory)) ivarsEqual = false;
             if( ! (_altSubcategory == rhs._altSubcategory)) ivarsEqual = false;
             if( ! (_altSpecific == rhs._altSpecific)) ivarsEqual = false;
             if( ! (_altExtra == rhs._altExtra)) ivarsEqual = false;
             if( ! (_xVelocity == rhs._xVelocity)) ivarsEqual = false;
             if( ! (_yVelocity == rhs._yVelocity)) ivarsEqual = false;
             if( ! (_zVelocity == rhs._zVelocity)) ivarsEqual = false;
             if( ! (_xLocation == rhs._xLocation)) ivarsEqual = false;
             if( ! (_yLocation == rhs._yLocation)) ivarsEqual = false;
             if( ! (_zLocation == rhs._zLocation)) ivarsEqual = false;
             if( ! (_psi == rhs._psi)) ivarsEqual = false;
             if( ! (_theta == rhs._theta)) ivarsEqual = false;
             if( ! (_phi == rhs._phi)) ivarsEqual = false;
             if( ! (_entityAppearance == rhs._entityAppearance)) ivarsEqual = false;
             if( ! (_deadReckoningAlgorithm == rhs._deadReckoningAlgorithm)) ivarsEqual = false;

             for(int idx = 0; idx < 15; idx++)
             {
              if(!(_otherParameters[idx] == rhs._otherParameters[idx])) ivarsEqual = false;
             }

             if( ! (_xAcceleration == rhs._xAcceleration)) ivarsEqual = false;
             if( ! (_yAcceleration == rhs._yAcceleration)) ivarsEqual = false;
             if( ! (_zAcceleration == rhs._zAcceleration)) ivarsEqual = false;
             if( ! (_xAngularVelocity == rhs._xAngularVelocity)) ivarsEqual = false;
             if( ! (_yAngularVelocity == rhs._yAngularVelocity)) ivarsEqual = false;
             if( ! (_zAngularVelocity == rhs._zAngularVelocity)) ivarsEqual = false;

             for(int idx = 0; idx < 12; idx++)
             {
              if(!(_marking[idx] == rhs._marking[idx])) ivarsEqual = false;
             }

             if( ! (_capabilities == rhs._capabilities)) ivarsEqual = false;

             for(int idx = 0; idx < _articulationParameters.Count; idx++)
             {
            ArticulationParameter x = (ArticulationParameter)_articulationParameters[idx];
            if( ! ( _articulationParameters[idx].Equals(rhs._articulationParameters[idx]))) ivarsEqual = false;
             }

            return ivarsEqual;
        }