/// <summary>
        /// Called when deserializing
        /// </summary>
        /// <param name="info"></param>
        /// <param name="context"></param>
        protected HavokConstraintChainShape(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
            AddHint(HintFlags_e.NoScale);

            // Write dynamic constraint properties
            _constraintChainType = (HavokConstraintChainType_e)info.GetValue("_constraintChainType", typeof(HavokConstraintChainType_e));
            _typeProperties      = (ConstraintChainStateBase)info.GetValue("_typeProperties", typeof(ConstraintChainStateBase));

            if (SerializationHelper.HasElement(info, "_objectKey"))
            {
                _objectKey = info.GetString("_objectKey");
            }
        }
        /// <summary>
        /// Called when deserializing
        /// </summary>
        /// <param name="info"></param>
        /// <param name="context"></param>
        protected HavokConstraintChainShape(SerializationInfo info, StreamingContext context)
            : base(info, context)
        {
            AddHint(HintFlags_e.NoScale);

              // Write dynamic constraint properties
              _constraintChainType = (HavokConstraintChainType_e)info.GetValue("_constraintChainType", typeof(HavokConstraintChainType_e));
              _typeProperties = (ConstraintChainStateBase)info.GetValue("_typeProperties", typeof(ConstraintChainStateBase));

              if (SerializationHelper.HasElement(info, "_objectKey"))
            _objectKey = info.GetString("_objectKey");
        }