Example #1
0
        private static void OnDelete(int serial_number)
        {
            UserData ud = UserData.FromSerialNumber(serial_number);

            if (ud != null)
            {
                ud.m_pNativePointer = IntPtr.Zero;
                GC.SuppressFinalize(ud);
                UserData.m_attached_custom_user_datas.Remove(serial_number);
            }
        }
Example #2
0
/*
 *  public void Remove(UserData userdata)
 *  {
 *    IntPtr pOnObject = m_parent.ConstPointer();
 *    IntPtr pUserData = userdata.NonConstPointer(false);
 *    bool success = UnsafeNativeMethods.ON_Object_DetachUserData(pOnObject, pUserData);
 *    if (success)
 *      userdata.OnDetachFromList();
 *  }
 */

        /// <summary>
        /// Finds a specific data type in this regulated collection.
        /// </summary>
        /// <param name="userdataType">A data type.</param>
        /// <returns>The found data, or null of nothing was found.</returns>
        public UserData Find(Type userdataType)
        {
            if (!userdataType.IsSubclassOf(typeof(UserData)))
            {
                return(null);
            }
            Guid   id            = userdataType.GUID;
            IntPtr pOnObject     = m_parent.ConstPointer();
            int    serial_number = UnsafeNativeMethods.CRhCmnUserData_Find(pOnObject, id);

            return(UserData.FromSerialNumber(serial_number));
        }