class ON_MeshNgonList* ON_Mesh::ModifyNgonList() { ON_UserData* ud = GetUserData(ON_MeshNgonUserData::m_ON_MeshNgonUserData_class_id.Uuid()); ON_MeshNgonUserData* ngud = ON_MeshNgonUserData::Cast(ud); if ( 0 == ngud ) { if ( ud ) { delete ud; ud = 0; } ngud = new ON_MeshNgonUserData(); ngud->m_mesh_F_count = m_F.Count(); ngud->m_mesh_V_count = m_V.Count(); AttachUserData(ngud); } else if ( 0 != ngud->m_ngon_list && !ON_ValidateMeshNgonUserData(ngud,*this) ) { delete ngud->m_ngon_list; ngud->m_ngon_list = 0; } if ( 0 == ngud->m_ngon_list ) { ngud->m_ngon_list = new ON_MeshNgonList(); ngud->m_mesh_F_count = m_F.Count(); ngud->m_mesh_V_count = m_V.Count(); } return ngud->m_ngon_list; }
void ON_Object::CopyUserData( const ON_Object& src ) { const ON_UserData* p; for ( p = src.m_userdata_list; p; p = p->m_userdata_next ) { if ( p->m_userdata_copycount ) { ON_Object* o = p->Duplicate(); if ( o ) { if ( !AttachUserData(ON_UserData::Cast(o)) ) delete o; } } } }
bool ON_Object::SetUserString( const wchar_t* key, const wchar_t* string_value ) { ON_UserStringList* us = ON_UserStringList::Cast(GetUserData(ON_UserStringList::m_ON_UserStringList_class_id.Uuid())); if ( !us ) { us = new ON_UserStringList(); if ( !AttachUserData(us) ) { delete us; us = 0; } } return (us) ? us->SetUserString(key,string_value) : false; }
class ON_MeshNgonList* ON_Mesh::ModifyNgonList() { ON_UserData* ud = GetUserData(ON_MeshNgonUserData::m_ON_MeshNgonUserData_class_id.Uuid()); ON_MeshNgonUserData* ngud = ON_MeshNgonUserData::Cast(ud); if ( 0 == ngud ) { if ( ud ) { delete ud; ud = 0; } ngud = new ON_MeshNgonUserData(); AttachUserData(ngud); } if ( 0 == ngud->m_ngon_list ) { ngud->m_ngon_list = new ON_MeshNgonList(); } return ngud->m_ngon_list; }