static bool Read3dmUserDataHeader( const size_t offset, ON_BinaryArchive& file, ON_TextLog& dump ) { // TCODE_OPENNURBS_CLASS_USERDATA chunks have 2 uuids // the first identifies the type of ON_Object class // the second identifies that kind of user data ON_UUID userdata_classid = ON_nil_uuid; ON_UUID userdata_itemid = ON_nil_uuid; bool rc = file.ReadUuid( userdata_classid ); if ( !rc ) { ErrorReport(offset,"ReadUuid() failed to read the user data class id.",dump); } else { dump.Print("UserData class id = "); dump.Print( userdata_classid ); const ON_ClassId* pUserDataClassId = ON_ClassId::ClassId(userdata_classid); if ( pUserDataClassId ) { const char* sClassName = pUserDataClassId->ClassName(); if ( sClassName ) { dump.Print(" (%s)",sClassName); } } dump.Print("\n"); rc = file.ReadUuid( userdata_itemid ); if ( !rc ) { ErrorReport(offset,"ReadUuid() failed to read the user data item id.",dump); } else { dump.Print("UserData item id = "); dump.Print( userdata_itemid ); dump.Print("\n"); int userdata_copycount = -1; rc = file.ReadInt( &userdata_copycount ); if ( !rc ) { ErrorReport(offset,"ReadInt() failed to read the user data copy count.",dump); } else { ON_Xform userdata_xform; rc = file.ReadXform( userdata_xform ); if ( !rc ) { ErrorReport(offset,"ReadXform() failed to read the user data xform.",dump); } } } } return rc; }
bool ON_BezierCageMorph::Read(ON_BinaryArchive& archive) { int major_version = 0; int minor_version = 0; bool rc = archive.BeginRead3dmChunk(TCODE_ANONYMOUS_CHUNK,&major_version,&minor_version); if ( rc ) { if ( major_version != 1 ) rc = false; if (rc) rc = archive.ReadXform(m_xyz2rst); if(rc) rc = m_rst2xyz.Read(archive); if ( !archive.EndRead3dmChunk() ) rc = false; } return rc; }
ON_BOOL32 ON_InstanceRef::Read( ON_BinaryArchive& binary_archive ) { int major_version = 0; int minor_version = 0; bool rc = binary_archive.Read3dmChunkVersion(&major_version,&minor_version); if ( rc ) { if ( major_version != 1 ) rc = false; if (rc ) rc = binary_archive.ReadUuid( m_instance_definition_uuid ); if ( rc ) rc = binary_archive.ReadXform( m_xform ); if ( rc ) rc = binary_archive.ReadBoundingBox( m_bbox ); } return rc; }