Rhino C++ API  8.14
Public Member Functions | List of all members
ON_UserDataHolder Class Reference

#include <opennurbs_userdata.h>

Inheritance diagram for ON_UserDataHolder:
ON_Object

Public Member Functions

unsigned int CopyUserDataFrom (const ON_Object &source_object, ON_UUID user_data_item_id)
 
bool IsValid (class ON_TextLog *text_log=nullptr) const override
 
unsigned int MoveUserDataFrom (const ON_Object &source_object)
 
unsigned int MoveUserDataTo (const ON_Object &destination_object, bool bAppend)
 
unsigned int MoveUserDataTo (const ON_Object &destination_object, ON_UUID user_data_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution)
 
- Public Member Functions inherited from ON_Object
 ON_Object () ON_NOEXCEPT
 
 ON_Object (const ON_Object &)
 
virtual ~ON_Object ()
 
virtual ON_AggregateComponentStatus AggregateComponentStatus () const
 
bool AttachUserData (class ON_UserData *pUserData)
 
unsigned int ClearAllComponentStates () const
 
virtual unsigned int ClearComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_clear) const
 
virtual unsigned int ClearComponentStates (ON_ComponentStatus states_to_clear) const
 
void CopyUserData (const ON_Object &source_object)
 
unsigned int CopyUserData (const ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution)
 
virtual ON__UINT32 DataCRC (ON__UINT32 current_remainder) const
 
virtual bool DeleteComponents (const ON_COMPONENT_INDEX *ci_list, size_t ci_count)
 
virtual void DestroyRuntimeCache (bool bDelete=true)
 
bool DetachUserData (class ON_UserData *pUserData)
 
virtual void Dump (ON_TextLog &) const
 
void EmergencyDestroy ()
 
class ON_UserDataFirstUserData () const
 
virtual unsigned int GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_COMPONENT_INDEX > &components) const
 
class ON_UserDataGetUserData (const ON_UUID &userdata_uuid) const
 
bool GetUserString (const wchar_t *key, ON_wString &string_value) const
 
int GetUserStringKeys (ON_ClassArray< ON_wString > &user_string_keys) const
 
int GetUserStrings (ON_ClassArray< ON_UserString > &user_strings) const
 
bool IsCorrupt (bool bRepair, bool bSilentError, class ON_TextLog *text_log) const
 
bool IsKindOf (const ON_ClassId *pClassId) const
 
virtual void MarkAggregateComponentStatusAsNotCurrent () const
 
virtual void MemoryRelocate ()
 
virtual ON_UUID ModelObjectId () const
 
void MoveUserData (ON_Object &source_object)
 
unsigned int MoveUserData (ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution, bool bDeleteAllSourceItems)
 
virtual ON::object_type ObjectType () const
 
ON_Objectoperator= (const ON_Object &)
 
void PurgeUserData ()
 
virtual bool Read (ON_BinaryArchive &binary_archive)
 
virtual unsigned int SetComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_set) const
 
virtual unsigned int SetComponentStatus (ON_COMPONENT_INDEX component_index, ON_ComponentStatus status_to_copy) const
 
bool SetUserString (const wchar_t *key, const wchar_t *string_value)
 
int SetUserStrings (int count, const ON_UserString *user_strings, bool bReplace)
 
virtual unsigned int SizeOf () const
 
bool ThisIsNullptr (bool bSilentError) const
 
void TransformUserData (const class ON_Xform &xform)
 
virtual bool UpdateReferencedComponents (const class ON_ComponentManifest &source_manifest, const class ON_ComponentManifest &destination_manifest, const class ON_ManifestMap &manifest_map)
 
int UserStringCount () const
 
virtual bool Write (ON_BinaryArchive &binary_archive) const
 

Additional Inherited Members

- Public Types inherited from ON_Object
enum  UserDataConflictResolution : unsigned char {
  UserDataConflictResolution::destination_object = 0, UserDataConflictResolution::source_object = 1, UserDataConflictResolution::source_copycount_gt = 2, UserDataConflictResolution::source_copycount_ge = 3,
  UserDataConflictResolution::destination_copycount_gt = 4, UserDataConflictResolution::destination_copycount_ge = 5, UserDataConflictResolution::delete_item = 6
}
 

Member Function Documentation

◆ CopyUserDataFrom()

unsigned int ON_UserDataHolder::CopyUserDataFrom ( const ON_Object source_object,
ON_UUID  user_data_item_id 
)

Description: Copies the data from source_object with copy_count > 0 to "this" ON_UserDataHolder. Parameters: source_object - [in] This object and it's user data are not modified. user_data_item_id - [in] If not nil, then only userdata with this item id will be coped Returns: Number of user data items that were copied from source_object to "this" ON_UserDataHolder.

◆ IsValid()

bool ON_UserDataHolder::IsValid ( class ON_TextLog text_log = nullptr) const
overridevirtual

Description: Tests an object to see if its data members are correctly initialized. Parameters: text_log - [in] if the object is not valid and text_log is not nullptr, then a brief english description of the reason the object is not valid is appended to the log. The information appended to text_log is suitable for low-level debugging purposes by programmers and is not intended to be useful as a high level user interface tool. Returns: @untitled table true object is valid false object is invalid, uninitialized, etc.

Reimplemented from ON_Object.

◆ MoveUserDataFrom()

unsigned int ON_UserDataHolder::MoveUserDataFrom ( const ON_Object source_object)

Description: Transfers the user data from source_object to "this". When MoveUserDataFrom() returns source_object will not have any user data. If "this" had user data when MoveUserDataFrom() was called, then that user data is destroyed. Parameters: source_object - [in] The "const" is a lie. It is there because, in practice the source object is frequently const and const_cast ends up being excessively used. Returns: Number of user data items that were moved from source_object to "this" ON_UserDataHolder.

◆ MoveUserDataTo() [1/2]

unsigned int ON_UserDataHolder::MoveUserDataTo ( const ON_Object destination_object,
bool  bAppend 
)

Description: Moves the user data on "this" ON_UserDataHolder to destination_object. When MoveUserDataTo() returns "this" ON_UserDataHolder will not have any user data. Parameters: destination_object - [in] The "const" is a lie. It is there because, in practice the source object is generally const and const_cast ends up being constantly used. bAppend - [in] true: Existing user data on destination_object is left unchanged. MoveUserDataTo( destination_object, true ) is identical to calling MoveUserDataTo( destination_object, ON_Object::UserDataConflictResolution::destination_object). false: Existing user data on destination_object is destroyed. Returns: Number of user data items moved from "this" ON_UserDataHolder to destination_object.

◆ MoveUserDataTo() [2/2]

unsigned int ON_UserDataHolder::MoveUserDataTo ( const ON_Object destination_object,
ON_UUID  user_data_item_id,
ON_Object::UserDataConflictResolution  userdata_conflict_resolution 
)

Description: Moves the user data on "this" ON_UserDataHolder to destination_object. When MoveUserDataTo() returns "this" ON_UserDataHolder will not have any user data. Parameters: destination_object - [in] The "const" is a lie. It is there because, in practice the source object is generally const and const_cast ends up being constantly used. user_data_item_id - [in] If not nil, then only user data items with this id will be considered for moving. userdata_conflict_resolution - [in] If destination_object and "this" ON_UserDataHolder have the same type of user data item, then userdata_conflict_resolution is used to determine if that destination_object user data item is replaced with the one on "this" ON_UserDataHolder. Returns: Number of user data items moved from "this" ON_UserDataHolder to destination_object.