Rhino C++ API  8.13
Public Member Functions | Public Attributes | List of all members
ON_UnknownUserData Class Reference

#include <opennurbs_userdata.h>

Inheritance diagram for ON_UnknownUserData:
ON_UserData ON_Object

Public Member Functions

 ON_UnknownUserData ()
 
 ON_UnknownUserData (const ON_UnknownUserData &)
 
 ~ON_UnknownUserData ()
 
bool Archive () const override
 
ON_UserDataConvert () const
 
void Dump (ON_TextLog &) const override
 
bool GetDescription (ON_wString &) override
 description of user data More...
 
bool IsValid (class ON_TextLog *text_log=nullptr) const override
 ON_Object overrides. More...
 
ON_UnknownUserDataoperator= (const ON_UnknownUserData &)
 
bool Read (ON_BinaryArchive &) override
 
unsigned int SizeOf () const override
 return amount of memory used by user data More...
 
bool Write (ON_BinaryArchive &) const override
 
- Public Member Functions inherited from ON_UserData
 ON_UserData ()
 
 ON_UserData (const ON_UserData &)
 
 ~ON_UserData ()
 
virtual bool DeleteAfterRead (const class ON_BinaryArchive &archive, class ON_Object *parent_object) const
 
virtual bool DeleteAfterWrite (const class ON_BinaryArchive &archive, const class ON_Object *parent_object) const
 
bool IsUnknownUserData () const
 
ON_UserDataNext () const
 
ON_UserDataoperator= (const ON_UserData &)
 
ON_ObjectOwner () const
 Returns object that owns the user data. More...
 
virtual bool Transform (const ON_Xform &)
 
ON_UUID UserDataClassUuid () const
 
virtual bool WriteToArchive (const class ON_BinaryArchive &archive, const class ON_Object *parent_object) const
 
- 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)
 
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 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)
 
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
 

Public Attributes

unsigned int m_3dm_opennurbs_version_number
 
int m_3dm_version
 3dm archive version (0,1,2,3,4,5,50,...) More...
 
void * m_buffer
 
int m_sizeof_buffer
 
ON_UUID m_unknownclass_uuid
 
- Public Attributes inherited from ON_UserData
ON_UUID m_application_uuid
 
unsigned int m_userdata_copycount
 
ON_UUID m_userdata_uuid
 
ON_Xform m_userdata_xform
 

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
}
 

Constructor & Destructor Documentation

◆ ON_UnknownUserData() [1/2]

ON_UnknownUserData::ON_UnknownUserData ( )

used to hold user data when the application class is not loaded at time data is read

◆ ON_UnknownUserData() [2/2]

ON_UnknownUserData::ON_UnknownUserData ( const ON_UnknownUserData )

◆ ~ON_UnknownUserData()

ON_UnknownUserData::~ON_UnknownUserData ( )

Member Function Documentation

◆ Archive()

bool ON_UnknownUserData::Archive ( ) const
overridevirtual

Description: If Archive() returns true, m_application_uuid is not nil, and the virtual Read() and Write() are functions are overridden, then this user data will be written to and read from 3dm archives.

Returns: true if user data should be saved in binary archives. false if the user data should not be saved in binary archives.

Remarks: The default implementation returns false. If you override ON_UserData::Archive so that it returns true, then your constructor must set m_application_uuid, you must override the virtual ON_Object::Read and ON_Object::Write functions and you must CAREFULLY TEST your code.

ON_UserData requires expert programming and testing skills.

If you need to know more details about the archive or parent object to determine if the userdata should be saved, then override WriteToArchive().

YOU SHOULD READ AND UNDERSTAND EVERY COMMENT IN THIS HEADER FILE IN BEFORE ATTEMPTING TO USE ON_UserData.

Reimplemented from ON_UserData.

◆ Convert()

ON_UserData* ON_UnknownUserData::Convert ( ) const

Convert unknown user data to actual user data. Useful if definition of actual user data is dynamically linked after archive containing user data is read.

◆ Dump()

void ON_UnknownUserData::Dump ( ON_TextLog text_log) const
overridevirtual

Description: Overrides virtual ON_Object::Dump(). Prints class name, description, and uuid. Parameters: text_log - [in] Information is sent to this text log. Remarks:

Reimplemented from ON_UserData.

◆ GetDescription()

bool ON_UnknownUserData::GetDescription ( ON_wString )
overridevirtual

description of user data

Reimplemented from ON_UserData.

◆ IsValid()

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

ON_Object overrides.

Reimplemented from ON_UserData.

◆ operator=()

ON_UnknownUserData& ON_UnknownUserData::operator= ( const ON_UnknownUserData )

◆ Read()

bool ON_UnknownUserData::Read ( ON_BinaryArchive binary_archive)
overridevirtual

Description: Low level archive writing tool used by ON_BinaryArchive::ReadObject(). Parameters: binary_archive - archive to read from Returns: Returns true if the read is successful. Remarks: Use ON_BinaryArchive::ReadObject() to read objects. This Read() function should read the objects definition back into its data members.

The default implementation of this virtual function returns false and does nothing.

Reimplemented from ON_Object.

◆ SizeOf()

unsigned int ON_UnknownUserData::SizeOf ( ) const
overridevirtual

return amount of memory used by user data

Reimplemented from ON_UserData.

◆ Write()

bool ON_UnknownUserData::Write ( ON_BinaryArchive binary_archive) const
overridevirtual

Description: Low level archive writing tool used by ON_BinaryArchive::WriteObject(). Parameters: binary_archive - archive to write to Returns: Returns true if the write is successful. Remarks: Use ON_BinaryArchive::WriteObject() to write objects. This Write() function should just write the specific definition of this object. It should not write and any chunk typecode or length information.

The default implementation of this virtual function returns false and does nothing.

Reimplemented from ON_Object.

Member Data Documentation

◆ m_3dm_opennurbs_version_number

unsigned int ON_UnknownUserData::m_3dm_opennurbs_version_number

In V5 and earlier, m_3dm_opennurbs_version had the format YYYYMMDDN For V6 the unsigned int value is calculated by ON_VersionNumberConstruct() and has the high bit set (it will be negative if used as a signed int). When writing files in previous version formats (V5 or earlier) it is important to write a YYYYMMDDN version number in the file. Use ON_VersionNumberParse() get the YYYY, MM, DD and N values from m_3dm_opennurbs_version.

◆ m_3dm_version

int ON_UnknownUserData::m_3dm_version

3dm archive version (0,1,2,3,4,5,50,...)

These version numbers are set when unknown user data is read from a file record the version of the 3dm archive and the version of opennurbs that were used when the plug-in wrote the user data. This information was added in to V5 opennurbs 200910190. For files written with earlier versions of opennurbs, these values are set from the archive containing the user data. The purpose of this version information is to have it accompany unknown user data so that if is is eventually read by the plug-in an ON_BinaryArchive with correct version information can be passed to the plug-in's reading code. In archives, these values are stored in the TCODE_USER_TABLE_RECORD_HEADER chunk.

◆ m_buffer

void* ON_UnknownUserData::m_buffer

◆ m_sizeof_buffer

int ON_UnknownUserData::m_sizeof_buffer

◆ m_unknownclass_uuid

ON_UUID ON_UnknownUserData::m_unknownclass_uuid

Description: This is the uuid of the missing class. This uuid is the 3rd parameter to the ON_OBJECT_IMPLEMENT() macro of the missing class.