ON_BOOL32 ON_BrepRegion::Read(ON_BinaryArchive& file) { int major_version = 0; int minor_version = 0; bool rc = file.BeginRead3dmChunk(TCODE_ANONYMOUS_CHUNK,&major_version,&minor_version); if ( !rc ) return false; for(;;) { rc = (1==major_version); if (!rc) break; rc = file.ReadInt( &m_region_index ); if (!rc) break; rc = file.ReadInt( &m_type ); if (!rc) break; rc = file.ReadArray( m_fsi ); if (!rc) break; rc = file.ReadBoundingBox( m_bbox ); if (!rc) break; break; } if (!file.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; }
ON_BOOL32 ON_PointCloud::Read( ON_BinaryArchive& file ) { int major_version = 0; int minor_version = 0; bool rc = file.Read3dmChunkVersion(&major_version,&minor_version); if (rc && major_version == 1 ) { if (rc) rc = file.ReadArray( m_P ); if (rc) rc = file.ReadPlane( m_plane ); if (rc) rc = file.ReadBoundingBox( m_bbox ); if (rc) rc = file.ReadInt( &m_flags); if (rc && minor_version >= 1 ) { if (rc) rc = file.ReadArray( m_N ); if (rc) rc = file.ReadArray( m_C ); } } return rc; }
ON_BOOL32 ON_InstanceDefinition::Read( ON_BinaryArchive& binary_archive ) { int major_version = 0; int minor_version = 0; m_us.m_custom_unit_scale = 0.0; m_us.m_custom_unit_name.Destroy(); m_us.m_unit_system = ON::no_unit_system; m_source_bRelativePath = false; m_source_archive.Destroy(); bool rc = binary_archive.Read3dmChunkVersion(&major_version,&minor_version); if ( rc ) { if ( major_version != 1 ) rc = false; // version 1.0 fields if ( rc ) rc = binary_archive.ReadUuid( m_uuid ); if ( rc ) rc = binary_archive.ReadArray( m_object_uuid ); if ( rc ) rc = binary_archive.ReadString( m_name ); if ( rc ) rc = binary_archive.ReadString( m_description ); if ( rc ) rc = binary_archive.ReadString( m_url ); if ( rc ) rc = binary_archive.ReadString( m_url_tag ); if ( rc ) rc = binary_archive.ReadBoundingBox( m_bbox ); // m_idef_update_type was an unsigned int and got changed to an enum. Read and write // as an unsigned int to support backwards compatibility unsigned int source = m_idef_update_type; if ( rc ) rc = binary_archive.ReadInt( &source ); if( rc) m_idef_update_type = ON_InstanceDefinition::IdefUpdateType(source); if ( rc ) rc = binary_archive.ReadString( m_source_archive ); // version 1.1 fields if ( minor_version >= 1 ) { if ( rc ) rc = m_source_archive_checksum.Read( binary_archive ); } // version 1.2 fields if ( minor_version >= 2 ) { int us = ON::no_unit_system; if ( rc ) rc = binary_archive.ReadInt( &us ); m_us.m_unit_system = ON::UnitSystem(us); if ( ON::custom_unit_system != m_us.m_unit_system && ON::no_unit_system != m_us.m_unit_system ) { m_us.m_custom_unit_scale = ON::UnitScale( m_us.m_unit_system, ON::meters ); } else { m_us.m_custom_unit_scale = 0.0; } if ( minor_version >= 3 ) { // version 1.3 fields - added 6 March 2006 //int us = ON::no_unit_system; if ( rc ) rc = binary_archive.ReadDouble( &m_us.m_custom_unit_scale ); if ( rc ) rc = binary_archive.ReadBool( &m_source_bRelativePath ); if ( rc && minor_version >= 4 ) { rc = m_us.Read(binary_archive); if (rc && minor_version >= 5 ) { rc = binary_archive.ReadInt(&m_idef_update_depth); } } } } } return rc; }
ON_BOOL32 ON_InstanceDefinition::Read( ON_BinaryArchive& binary_archive ) { int major_version = 0; int minor_version = 0; m_idef_layer_style = 0; m_us.m_custom_unit_scale = 0.0; m_us.m_custom_unit_name.Destroy(); m_us.m_unit_system = ON::no_unit_system; m_source_bRelativePath = false; m_source_archive.Destroy(); bool rc = binary_archive.Read3dmChunkVersion(&major_version,&minor_version); if ( rc ) { if ( major_version != 1 ) rc = false; // version 1.0 fields if ( rc ) rc = binary_archive.ReadUuid( m_uuid ); if ( rc ) rc = binary_archive.ReadArray( m_object_uuid ); if ( rc ) rc = binary_archive.ReadString( m_name ); if ( rc ) rc = binary_archive.ReadString( m_description ); if ( rc ) rc = binary_archive.ReadString( m_url ); if ( rc ) rc = binary_archive.ReadString( m_url_tag ); if ( rc ) rc = binary_archive.ReadBoundingBox( m_bbox ); // m_idef_update_type was an unsigned int and got changed to an enum. Read and write // as an unsigned int to support backwards compatibility unsigned int source = m_idef_update_type; if ( rc ) rc = binary_archive.ReadInt( &source ); if( rc) m_idef_update_type = ON_InstanceDefinition::IdefUpdateType(source); if ( rc ) rc = binary_archive.ReadString( m_source_archive ); // version 1.1 fields if ( minor_version >= 1 ) { if ( rc ) rc = m_source_archive_checksum.Read( binary_archive ); } // version 1.2 fields if ( minor_version >= 2 ) { int us = ON::no_unit_system; if ( rc ) rc = binary_archive.ReadInt( &us ); m_us.m_unit_system = ON::UnitSystem(us); if ( ON::custom_unit_system != m_us.m_unit_system && ON::no_unit_system != m_us.m_unit_system ) { m_us.m_custom_unit_scale = ON::UnitScale( m_us.m_unit_system, ON::meters ); } else { m_us.m_custom_unit_scale = 0.0; } if ( minor_version >= 3 ) { // version 1.3 fields - added 6 March 2006 //int us = ON::no_unit_system; if ( rc ) rc = binary_archive.ReadDouble( &m_us.m_custom_unit_scale ); if ( rc ) rc = binary_archive.ReadBool( &m_source_bRelativePath ); if ( rc && minor_version >= 4 ) { rc = m_us.Read(binary_archive); if (rc && minor_version >= 5 ) { rc = binary_archive.ReadInt(&m_idef_update_depth); if ( rc && minor_version >= 6 ) { unsigned int i = 0; rc = binary_archive.ReadInt(&i); if ( i && i > 0 && i < 256 ) m_idef_layer_style = (unsigned char)i; } } } } } if ( ON_InstanceDefinition::embedded_def == m_idef_update_type ) { // 7 February 2012 // "embedded_def" is obsolete. if (m_source_archive.Length() > 0 ) m_idef_update_type = ON_InstanceDefinition::linked_and_embedded_def; else DestroySourceArchive(); // convert to static } if ( ON_InstanceDefinition::linked_def == m_idef_update_type ) { if ( m_idef_layer_style < 1 || m_idef_layer_style > 2 ) { // The goal of the next if/else clause is for Rhino users // to see what they saw when they created the file. if ( binary_archive.Archive3dmVersion() < 50 ) { // V4 linked blocks and early V5 linked blocks treated // layers and materials the way newer "active" idefs work, // so when I read an archive with version < 50, the // default will be 1 for "active". m_idef_layer_style = 1; } else { // The more recent V5 linked blocks treated layers and materials // the way "reference" style idefs work, so when I read an // archive with version >= 50 (meaning recent V5), the default // will be 2 for "reference". m_idef_layer_style = 2; } } } else { m_idef_layer_style= 0; } } return rc; }