protected override void OnDuplicate(Rhino.DocObjects.Custom.UserData source)
        {
            var src = source as SampleCsCustomUserData;

            if (null != src)
            {
                Data.Create(src.Data);
            }
        }
 /// <summary>
 /// Clones the user data.
 /// </summary>
 /// <param name="source">The source data.</param>
 protected override void OnDuplicate(UserData source)
 {
   UserDictionary dict = source as UserDictionary;
   if (dict != null)
   {
     m_dictionary = dict.m_dictionary.Clone();
     m_dictionary.SetParentUserData(this);
   }
 }
 /// <summary>
 /// Remove the userdata from this list
 /// </summary>
 /// <param name="userdata"></param>
 /// <returns>true if the user data was successfully removed</returns>
 public bool Remove(UserData userdata)
 {
   IntPtr const_ptr_onobject = m_parent.ConstPointer();
   IntPtr ptr_userdata = userdata.NonConstPointer(false);
   bool rc = UnsafeNativeMethods.ON_Object_DetachUserData(const_ptr_onobject, ptr_userdata);
   if( rc )
     UserData.RemoveFromRuntimeList(userdata);
   return rc;
 }
 /// <summary>
 /// If the userdata is already in a different UserDataList, it
 /// will be removed from that list and added to this list.
 /// </summary>
 /// <param name="userdata">Data element.</param>
 /// <returns>Whether this operation succeeded.</returns>
 public bool Add(UserData userdata)
 {
   if (!(userdata is SharedUserDictionary))
   {
     Type t = userdata.GetType();
     System.Reflection.ConstructorInfo constructor = t.GetConstructor(Type.EmptyTypes);
     if (!t.IsPublic || constructor == null)
       throw new ArgumentException("userdata must be a public class and have a parameterless constructor");
   }
   IntPtr const_ptr_onobject = m_parent.ConstPointer();
   IntPtr ptr_userdata = userdata.NonConstPointer(true);
   const bool detach_if_needed = true;
   bool rc = UnsafeNativeMethods.ON_Object_AttachUserData(const_ptr_onobject, ptr_userdata, detach_if_needed);
   if (rc)
     UserData.StoreInRuntimeList(userdata);
   return rc;
 }
 internal static void RemoveFromRuntimeList(UserData ud)
 {
   g_attached_custom_user_datas.Remove(ud.m_serial_number);
 }
 internal static void StoreInRuntimeList(UserData ud)
 {
   g_attached_custom_user_datas[ud.m_serial_number] = ud;
 }
 /// <summary>
 /// Is called when the object is being duplicated.
 /// </summary>
 /// <param name="source">The source data.</param>
 protected virtual void OnDuplicate(UserData source) { }
Ejemplo n.º 8
0
 internal static void RemoveFromRuntimeList(UserData ud)
 {
     g_attached_custom_user_datas.TryRemove(ud.m_serial_number, out ud);
 }
Ejemplo n.º 9
0
 internal static void StoreInRuntimeList(UserData ud)
 {
     g_attached_custom_user_datas[ud.m_serial_number] = ud;
 }
Ejemplo n.º 10
0
 /// <summary>
 /// Is called when the object is being duplicated.
 /// </summary>
 /// <param name="source">The source data.</param>
 protected virtual void OnDuplicate(UserData source)
 {
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Clones the user data.
 /// </summary>
 /// <param name="source">The source data.</param>
 protected override void OnDuplicate(UserData source)
 {
   UserDictionary dict = source as UserDictionary;
   if (dict != null)
     m_dictionary = dict.m_dictionary.Clone();
 }