Rhino C++ API
8.14
|
< use for generic serialization of binary data More...
#include <opennurbs_archive.h>
Public Types | |
enum | eStorageDeviceError : unsigned int { eStorageDeviceError::None = 0, eStorageDeviceError::WriteFailed = 0xFFFFFFF1, eStorageDeviceError::SeekFailedDuringWriting = 0xFFFFFFF2, eStorageDeviceError::ReadFailed = 0xFFFFFFF8, eStorageDeviceError::SeekFailedDuringReading = 0xFFFFFFF9, eStorageDeviceError::UnknownDeviceError = 0xFFFFFFFFU } |
Static Public Member Functions | |
static bool | ArchiveContains3dmTable (ON_3dmArchiveTableType table, unsigned int archive_3dm_version, unsigned int opennurbs_library_version) |
static unsigned int | ArchiveOpenNURBSVersionToWrite (unsigned int archive_3dm_version, unsigned int opennurbs_version) |
static int | CurrentArchiveVersion () |
static char * | ON_TypecodeParse (unsigned int tcode, char *typecode_name, size_t max_length) |
static ON_BinaryArchive::eStorageDeviceError | StorageDeviceErrorFromUnsigned (unsigned int storage_device_error_as_unsigned) |
static ON_ModelComponent::Type | TableComponentType (ON_3dmArchiveTableType table_type) |
static bool | ToggleByteOrder (size_t, size_t, const void *, void *) |
static const char * | TypecodeName (unsigned int tcode) |
Protected Member Functions | |
unsigned int | ErrorMessageMask () const |
virtual ON__UINT64 | Internal_CurrentPositionOverride () const =0 |
virtual size_t | Internal_ReadOverride (size_t, void *)=0 |
virtual bool | Internal_SeekFromCurrentPositionOverride (int)=0 |
virtual bool | Internal_SeekToStartOverride ()=0 |
virtual size_t | Internal_WriteOverride (size_t, const void *)=0 |
bool | MaskReadError (ON__UINT64 sizeof_request, ON__UINT64 sizeof_read) const |
Friends | |
void | ON_SetBinaryArchiveOpenNURBSVersion (ON_BinaryArchive &, unsigned int) |
< use for generic serialization of binary data
|
strong |
ON_BinaryArchive::ON_BinaryArchive | ( | ON::archive_mode | ) |
|
virtual |
ON_3dmArchiveTableType ON_BinaryArchive::Active3dmTable | ( | ) | const |
Returns: If a 3dm archive is being read or written, the value of the archive section (table) being read is returned. ON_3dmArchiveTableType::Unset is returned if a table is not actively being read or written. Remarks: Use ON_BinaryArchive::Mode() to determine if a binary archive is being read or written. Use ON_BinaryArchive::Previous3dmTable() to determine the most recent table that was successfully read and finished.
bool ON_BinaryArchive::AddManifestMapItem | ( | const class ON_ManifestMapItem & | map_item | ) |
const class ON_3dmProperties& ON_BinaryArchive::Archive3dmProperties | ( | ) | const |
Returns: A copy of the ON_3dmProperties information written to or read from the archive. If this function is called before Write3dmProperties() or Read3dmProperties(), it returns ON_3dmProperties:Empty;
const class ON_3dmSettings& ON_BinaryArchive::Archive3dmSettings | ( | ) | const |
Returns: A copy of the ON_3dmSettings information written to or read from the archive. If this function is called before Write3dmSettings() or Read3dmSettings(), it returns ON_3dmSettings:Default;
const ON_String& ON_BinaryArchive::Archive3dmStartSectionComment | ( | ) | const |
Returns: A copy of the start section comment written to or read from the archive. If this function is called before Write3dmStartSection() or Read3dmStartSection(), it returns ON_String:EmptyString;
const ON_3dmArchiveTableStatus ON_BinaryArchive::Archive3dmTableStatus | ( | ON_3dmArchiveTableType | table_type | ) |
int ON_BinaryArchive::Archive3dmVersion | ( | ) | const |
Description: If a 3dm archive is being read or written, then this is the version of the 3dm archive format (1, 2, 3, 4, 5, 50, 60, ...). Returns: @untitle table 0 a 3dm archive is not being read/written 1 a version 1 3dm archive is being read/written 2 a version 2 3dm archive is being read/written 3 a version 3 3dm archive is being read/written 4 a version 4 3dm archive is being read/written 5 an old version 5 3dm archive is being read 50 a version 5 3dm archive is being read/written 60 a version 6 3dm archive is being read/written 70 a version 7 3dm archive is being read/written ... See Also: ON_BinaryArchive::ArchiveOpenNURBSVersion
bool ON_BinaryArchive::ArchiveContains3dmTable | ( | ON_3dmArchiveTableType | table | ) | const |
Description: As time passes, more tables have been added to 3dm archives. Parameters: table - [in] Returns: True if this archive has the specified table
|
static |
Parameters: archive_3dm_version - [in] 1,2,3,4,5,50,60,70,... opennurbs_library_version - [in] a number > 100000000
const ON_DimStyle& ON_BinaryArchive::ArchiveCurrentDimStyle | ( | ) | const |
const ON_UUID ON_BinaryArchive::ArchiveCurrentDimStyleId | ( | ) | const |
const int ON_BinaryArchive::ArchiveCurrentDimStyleIndex | ( | ) | const |
const ON_wString& ON_BinaryArchive::ArchiveDirectoryName | ( | ) | const |
const wchar_t* ON_BinaryArchive::ArchiveDirectoryNameAsPointer | ( | ) | const |
bool ON_BinaryArchive::ArchiveFileMoved | ( | ) | const |
Returns: true if the 3dm archive being read is not in the same file system location as where is was saved.
const ON_wString& ON_BinaryArchive::ArchiveFileName | ( | ) | const |
const wchar_t* ON_BinaryArchive::ArchiveFileNameAsPointer | ( | ) | const |
const ON_wString& ON_BinaryArchive::ArchiveFullPath | ( | ) | const |
const wchar_t* ON_BinaryArchive::ArchiveFullPathAsPointer | ( | ) | const |
unsigned int ON_BinaryArchive::ArchiveOpenNURBSVersion | ( | ) | const |
Description: If a 3dm archive is being read, then this is the version of openNURBS that was used to write the archive. This value is only available after ON_BinaryArchive::Read3dmProperties is called. See Also: ON_BinaryArchive::Archive3dmVersion ON_BinaryArchive::Read3dmProperties Returns: Version of openNURBS used to write the archive. The openNURBS version is the value returned by ON::Version. See Also: ON::Version ON_BinaryArchive::Read3dmProperties ON_BinaryArchive::Archive3dmVersion Remarks: This value is rarely needed. You probably want to use ON_BinaryArchive::Archive3dmVersion.
|
static |
Description: If a 3dm archive is being written to a version 2,3,4 or 50 format, then new format opennurbs version numbers need to be saved in the old YYYYMMDDN format. This function returns the value that should be written in the file. Parameters: archive_3dm_version - [in] Version of the file that is being written (2, 3, 4, 50, 60, ...) opennurbs_version - [in] opennurbs version number Returns: Value to save in the file.
ON::RuntimeEnvironment ON_BinaryArchive::ArchiveRuntimeEnvironment | ( | ) | const |
Returns: The runtime environment where the archive was created. Remarks: When reading an archive, compare the values of ON_BinaryArchive::ArchiveRuntimeEnvironment() and ON::CurrentRuntimeEnvironment() to determine if adjustments need to be made to resources provided by runtime environments, like fonts.
const ON_wString& ON_BinaryArchive::ArchiveSavedAsFullPath | ( | ) | const |
const wchar_t* ON_BinaryArchive::ArchiveSavedAsFullPathPointer | ( | ) | const |
size_t ON_BinaryArchive::ArchiveStartOffset | ( | ) | const |
Description: When a 3dm archive is saved from an MFC application that supports Windows linking/embedding, the first 5kb to 1mb of the file contains information that is put there by MFC. ArchiveStartOffset() returns the offset into the file where the 3dm archive actually begins. The call to ON_BinaryArchive::Read3dmStartSection() calculates this offset and stores the value in m_3dm_start_section_offset. Returns: Offset into the binary "file" where the actual 3dm archive begins. Remarks: Generally, this value can be ignored. This function is a diagnostice tool that is used to analyzed damaged files.
const ON_TextStyle* ON_BinaryArchive::ArchiveTextStyleFromArchiveTextStyleIndex | ( | int | archive_text_style_index | ) | const |
Description: When reading version 5 and earlier files that contain a text style table, this function can be used to get the archive text style from the archive text style index. This function is used when reading V5 and pre August 2016 V6 ON_DimStyle information.
|
pure virtual |
Returns: True if current position is at the end of the archive.
Implemented in ON_Write3dmBufferArchive, ON_Read3dmBufferArchive, ON_BinaryArchiveBuffer, and ON_BinaryFile.
unsigned int ON_BinaryArchive::BadCRCCount | ( | ) | const |
Returns: Number of chunks read with a bad CRC
bool ON_BinaryArchive::BeginRead3dmAnonymousChunk | ( | int * | version | ) |
Description: Calls BeginWRead3dmChunk(TCODE_ANONYMOUS_CHUNK,&major_version,&minor_version), checks that 1 == major_version, minor_version >= 0 and returns the value of minor_version as version. Parameters: version - [out]
bool ON_BinaryArchive::BeginRead3dmBigChunk | ( | unsigned int * | , |
ON__INT64 * | |||
) |
When the end of the 3dm file is reached, BeginReadChunk() will return true with a typecode of TCODE_ENDOFFILE.
bool ON_BinaryArchive::BeginRead3dmBitmapTable | ( | ) |
bool ON_BinaryArchive::BeginRead3dmChunk | ( | unsigned int | expected_tcode, |
int * | major_version, | ||
int * | minor_version | ||
) |
Description: Begins reading a chunk that must be in the archive at this location. Parameters: expected_tcode - [in] chunk's typecode from opennurbs_3dm.h major_version - [out] minor_version - [out] Returns: True if beginning of the chunk was read. In this case You must call EndRead3dmChunk(), even if something goes wrong while you attempt to read the interior of the chunk. False if the chunk did not exist at the current location in the file.
bool ON_BinaryArchive::BeginRead3dmDimStyleTable | ( | ) |
bool ON_BinaryArchive::BeginRead3dmGroupTable | ( | ) |
bool ON_BinaryArchive::BeginRead3dmHatchPatternTable | ( | ) |
bool ON_BinaryArchive::BeginRead3dmHistoryRecordTable | ( | ) |
bool ON_BinaryArchive::BeginRead3dmInstanceDefinitionTable | ( | ) |
bool ON_BinaryArchive::BeginRead3dmLayerTable | ( | ) |
bool ON_BinaryArchive::BeginRead3dmLightTable | ( | ) |
bool ON_BinaryArchive::BeginRead3dmLinetypeTable | ( | ) |
bool ON_BinaryArchive::BeginRead3dmMaterialTable | ( | ) |
bool ON_BinaryArchive::BeginRead3dmObjectTable | ( | ) |
bool ON_BinaryArchive::BeginRead3dmTextureMappingTable | ( | ) |
bool ON_BinaryArchive::BeginRead3dmUserTable | ( | ON_UUID & | plugin_id, |
bool * | bLastSavedAsGoo, | ||
int * | archive_3dm_version, | ||
unsigned int * | archive_opennurbs_version | ||
) |
Parameters: plugin_id - [out] id of plug-in that wrote the user table bLastSavedAsGoo - [out] True if this table was saved into this archive as goo because the plug-in was not present at the time of the save. archive_3dm_version - [out] Version of the archive the plug-in wrote to. When bLastSavedAsGoo is true, this number can be different from Archive3dmVersion(). archive_opennurbs_version - [out] Version of opennurbs the plug-in used to write the archive.
When bLastSavedAsGoo is true, this number can be different from ArchiveOpenNURBSVersion().
Returns: False when there are no more user tables or an IO error occurs.
bool ON_BinaryArchive::BeginReadDictionary | ( | ON_UUID * | dictionary_id, |
unsigned int * | version, | ||
ON_wString & | dictionary_name | ||
) |
int ON_BinaryArchive::BeginReadDictionaryEntry | ( | int * | de_type, |
ON_wString & | entry_name | ||
) |
Description: Begin reading a dictionary entry. Parameters: de_type - [out] entry_name - [out] Returns: 0: serious IO error 1: success read information and then call EndReadDictionaryEntry() 2: at end of dictionary
bool ON_BinaryArchive::BeginWrite3dmAnonymousChunk | ( | int | version | ) |
Description: If version >= 0, calls BeginWrite3dmChunk(TCODE_ANONYMOUS_CHUNK,1,version).
bool ON_BinaryArchive::BeginWrite3dmBigChunk | ( | ON__UINT32 | typecode, |
ON__INT64 | value | ||
) |
bool ON_BinaryArchive::BeginWrite3dmBitmapTable | ( | ) |
Step 4: REQUIRED - Write/Read bitmap table (it can be empty)
bool ON_BinaryArchive::BeginWrite3dmChunk | ( | unsigned int | tcode, |
int | major_version, | ||
int | minor_version | ||
) |
Description: Begins writing a chunk. Parameters: tcode - [in] chunk's typecode from opennurbs_3dm.h. This cannot be a short tcode. major_version - [in] ( >= 1) minor_version - [in] ( >= 0 ) Returns: True if input was valid and chunk was started. In this case You must call EndWrite3dmChunk(), even if something goes wrong while you attempt to write the contents of the chunk. False if input was not valid or the write failed.
bool ON_BinaryArchive::BeginWrite3dmChunk | ( | unsigned int | , |
int | |||
) |
Low level tools to Write/Read chunks. See opennurbs_3dm.h for details about the structure of chunks. Every chunk must begin with a call to BeginWrite/ReadChunk(). If BeginWriteChunk()/BeginReadChunk() returns true, then you must call EndWrite/ReadChunk() or cease using the archive. Description: Writes a chunk header containing 4 byte typecode and value.
Parameters: typecode - [in] a TCODE_* number from opennurbs_3dm.h value - [in] if (typecode&TCODE_SHORT) is nonzero, then this is the value to be saved. Otherwise, pass a zero and the EndWrite3dmChunk() call will store the length of the chunk.
Returns: true if write was successful.
bool ON_BinaryArchive::BeginWrite3dmDimStyleTable | ( | ) |
Step 11: REQUIRED - Write/Read dimstyle table (it can be empty)
bool ON_BinaryArchive::BeginWrite3dmGroupTable | ( | ) |
Step 9: REQUIRED - Write/Read group table (it can be empty)
bool ON_BinaryArchive::BeginWrite3dmHatchPatternTable | ( | ) |
Step 13: REQUIRED - Write/Read hatch pattern table (it can be empty)
bool ON_BinaryArchive::BeginWrite3dmHistoryRecordTable | ( | ) |
Step 16: REQUIRED - Write/Read history record table (it can be empty)
bool ON_BinaryArchive::BeginWrite3dmInstanceDefinitionTable | ( | ) |
Step 14: REQUIRED - Write/Read instance definition table (it can be empty)
bool ON_BinaryArchive::BeginWrite3dmLayerTable | ( | ) |
Step 8: REQUIRED - Write/Read layer table (it can be empty)
bool ON_BinaryArchive::BeginWrite3dmLightTable | ( | ) |
Step 12: REQUIRED - Write/Read render light table (it can be empty)
bool ON_BinaryArchive::BeginWrite3dmLinetypeTable | ( | ) |
Step 7: REQUIRED - Write/Read linetype table (it can be empty)
bool ON_BinaryArchive::BeginWrite3dmMaterialTable | ( | ) |
Step 6: REQUIRED - Write/Read render material table (it can be empty)
bool ON_BinaryArchive::BeginWrite3dmObjectTable | ( | ) |
Step 15: REQUIRED - Write/Read geometry and annotation table (it can be empty)
bool ON_BinaryArchive::BeginWrite3dmTextureMappingTable | ( | ) |
Step 5: REQUIRED - Write/Read texture mapping table (it can be empty)
bool ON_BinaryArchive::BeginWrite3dmUserTable | ( | const ON_UUID & | ) |
bool ON_BinaryArchive::BeginWrite3dmUserTable | ( | ON_UUID | plugin_id, |
bool | bSavingGoo, | ||
int | goo_3dm_version, | ||
unsigned int | goo_opennurbs_version | ||
) |
Step 17: OPTIONAL - Write/Read 0 or more user tables Description: Write the user table header information that must precede the user table information written by a plug-in. Parameters: plugin_id - [in] bSavingGoo - [in] Set to false if a plug-in will be used to write the user table. Set to true if a user table written by a missing plug-in is being resaved. In this case, goo_3dm_version and goo_opennurbs_version must also be set. In practice, you should use Write3dmAnonymousUserTableRecord() to handle writing "goo" and use this function only when the plug-in in present. goo_3dm_version - [in] If bSavingGoo is false, this parameter must be zero and ON_BinaryArchive::Archive3dmVersion() will be used. If bSavingGoo is true, this parameter must be the version of the 3dm archive (1,2,3,4,5,50,...) the plug-in code used to write the user table. goo_opennurbs_version - [in] If bSavingGoo is false, this parameter must be zero and ON_BinaryArchive::ArchiveOpenNURBSVersion() will be used. If bSavingGoo is true, this parameter must be the version of the opennurbs the plug-in code used to write the user table. Returns: True if the the user information can be written. False if user information should not be written.
bool ON_BinaryArchive::BeginWriteDictionary | ( | ON_UUID | dictionary_id, |
unsigned int | version, | ||
const wchar_t * | dictionary_name | ||
) |
Tools for dictionary IO (used in .NET) Description: Begins writing a dictionary. Parameters: dictionary_id - [in] version - [in] It is suggested that you use ON_VersionNumberConstruct() to create a version number. dictionary_name - [in] You may pass nullptr. Remarks: Begins a new chunk with tcode TCODE_DICTIONARY and then writes a TCODE_DICTIONARY_ID chunk containing the id, version and name. After calling this function, you may either write entries by calling BeginWriteDictionaryEntry(); write entry definition... EndWriteDictionaryEntry(); or you may finish writing the dictionary by calling EndWriteDictionary();
bool ON_BinaryArchive::BeginWriteDictionaryEntry | ( | int | de_type, |
const wchar_t * | entry_name | ||
) |
Description: Begins writing a dictionary entry. Parameters: de_type - [in] entry_name - [in] Returns: true Entry header was written and you must call EndWriteDictionary() after writing the entry data. false Failed to write entry header. Do not call EndWriteDictionary(). Remarks: Begins a new chunk with tcode TCODE_DICTIONARY_ENTRY, then writes the int, and then writes the string.
bool ON_BinaryArchive::CheckForRemappedIds | ( | ) | const |
Returns: True if the archive is reading in a situation where component ids may get remapped.
bool ON_BinaryArchive::ChunkBoundaryCheck | ( | ) | const |
Returns: true: All read, write, and seek operations check to make sure they stay within the current chunk boundary.
void ON_BinaryArchive::ClearModelSerialNumber | ( | ) |
Description: Clear() information set by SetModelSerialNumber() do not modify ON_ModelComponent model serial number information when the classes are read.
unsigned int ON_BinaryArchive::CriticalErrorCount | ( | ) | const |
Returns: Number of critical errors
|
static |
Remarks: In a stable commercially released Rhino version N, CurrentArchiveVersion() = 10*N. In "early" Rhino N WIP, CurrentArchiveVersion() = 10*(N-1). In "later" Rhino N WIP, CurrentArchiveVersion() = 10*N. Returns: The current 3dm archive version that is saved by Rhino.
ON__UINT64 ON_BinaryArchive::CurrentPosition | ( | ) | const |
Returns: Number of bytes from start of archive to the current position.
unsigned int ON_BinaryArchive::Dump3dmChunk | ( | ON_TextLog & | text_log, |
int | recursion_depth = 0 |
||
) |
Description: Expert user function for studying contents of a file. The primary use is as an aid to help dig through files that have been damaged (bad disks, transmission errors, etc.) If an error is found, a line that begins with the word "ERROR" is printed. Parameters: text_log - [in] place to print information recursion_depth - [in] simply a counter to aid in debugging. Returns: 0 if something went wrong, otherwise the typecode of the chunk that was just studied.
bool ON_BinaryArchive::EnableCRCCalculation | ( | bool | bEnable | ) |
Description: Expert user function to control CRC calculation while reading and writing. Typically this is used when seeking around and reading/writing information in non-serial order. Parameters: bEnable - [in] Returns: Current state of CRC calculation. Use the returned value to restore the CRC calculation setting after you are finished doing your fancy pants expert IO.
void ON_BinaryArchive::EnableSave3dmAnalysisMeshes | ( | unsigned int | object_type_flags, |
bool | bSave3dmAnalysisMeshes | ||
) |
Description: Specify which types of objects (ON_Brep, ON_Extrusion, ON_SubD, ...) save analysis meshes in the 3dm file.
Parameters: object_type_flags - [in] The bits in object_type_flags correspond to ON::object_type values and identify the object types the setting will be applied to.
Remarks: Saving analysis meshes increases file size, sometimes dramatically.
Creating ON_Brep analysis meshes is often slow. Disable saving ON_Brep analysis meshes when IO speed or file size is a critical issue, the time expense of recreating the ON_Brep meshes when the file is read is acceptable, and the file will be read by Rhino. Enable when the file size is not an issue or the file will be used by other applications that may not be able to create meshes.
Creating ON_Extrusion meshes is fast. Disable when IO speed or file size is an issue and the file will be read by Rhino. Enable when the file will be used by other applications that may not be able to create meshes.
Creating ON_SubD meshes is fast. Disable when IO speed or file size is an issue and the file will be read by Rhino. Enable when the file will be used by other applications that may not be able to create meshes.
void ON_BinaryArchive::EnableSave3dmRenderMeshes | ( | unsigned int | object_type_flags, |
bool | bSave3dmRenderMeshes | ||
) |
3DM Interface - ignore if not reading/writing a 3DM file this is here so that the infrastructure for writing 3dm archives is available for any type of serialization device. Description: Specify which types of objects (ON_Brep, ON_Extrusion, ON_SubD, ...) save render meshes in the 3dm file.
Parameters: object_type_flags - [in] The bits in object_type_flags correspond to ON::object_type values and identify the object types the setting will be applied to.
Remarks: Saving render meshes increases file size, sometimes dramatically.
Creating ON_Brep analysis meshes is often slow. Disable saving ON_Brep analysis meshes when IO speed or file size is a critical issue, the time expense of recreating the ON_Brep meshes when the file is read is acceptable, and the file will be read by Rhino. Enable when the file size is not an issue or the file will be used by other applications that may not be able to create meshes.
Creating ON_Extrusion meshes is fast. Disable when IO speed or file size is an issue and the file will be read by Rhino. Enable when the file will be used by other applications that may not be able to create meshes.
Creating ON_SubD meshes is fast. Disable when IO speed or file size is an issue and the file will be read by Rhino. Enable when the file will be used by other applications that may not be able to create meshes.
ON::endian ON_BinaryArchive::Endian | ( | ) | const |
endian-ness of cpu
Returns: Endian-ness of the cpu reading this file. Remarks: 3dm files are always saved with little endian byte order.
bool ON_BinaryArchive::EndRead3dmBitmapTable | ( | ) |
bool ON_BinaryArchive::EndRead3dmChunk | ( | ) |
Description: Calling this will skip rest of stuff in chunk if it was only partially read. Parameters: bSupressPartiallyReadChunkWarning - [in] Generally, a call to ON_WARNING is made when a chunk is partially read. If bSupressPartiallyReadChunkWarning is true, then no warning is issued for partially read chunks.
bool ON_BinaryArchive::EndRead3dmChunk | ( | bool | bSupressPartiallyReadChunkWarning | ) |
bool ON_BinaryArchive::EndRead3dmDimStyleTable | ( | ) |
bool ON_BinaryArchive::EndRead3dmGroupTable | ( | ) |
bool ON_BinaryArchive::EndRead3dmHatchPatternTable | ( | ) |
bool ON_BinaryArchive::EndRead3dmHistoryRecordTable | ( | ) |
bool ON_BinaryArchive::EndRead3dmInstanceDefinitionTable | ( | ) |
bool ON_BinaryArchive::EndRead3dmLayerTable | ( | ) |
bool ON_BinaryArchive::EndRead3dmLightTable | ( | ) |
bool ON_BinaryArchive::EndRead3dmLinetypeTable | ( | ) |
bool ON_BinaryArchive::EndRead3dmMaterialTable | ( | ) |
bool ON_BinaryArchive::EndRead3dmObjectTable | ( | ) |
bool ON_BinaryArchive::EndRead3dmTextureMappingTable | ( | ) |
bool ON_BinaryArchive::EndRead3dmUserTable | ( | ) |
bool ON_BinaryArchive::EndReadDictionary | ( | ) |
bool ON_BinaryArchive::EndReadDictionaryEntry | ( | ) |
bool ON_BinaryArchive::EndWrite3dmBitmapTable | ( | ) |
bool ON_BinaryArchive::EndWrite3dmChunk | ( | ) |
updates length in chunk header
bool ON_BinaryArchive::EndWrite3dmDimStyleTable | ( | ) |
bool ON_BinaryArchive::EndWrite3dmGroupTable | ( | ) |
bool ON_BinaryArchive::EndWrite3dmHatchPatternTable | ( | ) |
bool ON_BinaryArchive::EndWrite3dmHistoryRecordTable | ( | ) |
bool ON_BinaryArchive::EndWrite3dmInstanceDefinitionTable | ( | ) |
bool ON_BinaryArchive::EndWrite3dmLayerTable | ( | ) |
bool ON_BinaryArchive::EndWrite3dmLightTable | ( | ) |
bool ON_BinaryArchive::EndWrite3dmLinetypeTable | ( | ) |
bool ON_BinaryArchive::EndWrite3dmMaterialTable | ( | ) |
bool ON_BinaryArchive::EndWrite3dmObjectTable | ( | ) |
bool ON_BinaryArchive::EndWrite3dmTextureMappingTable | ( | ) |
bool ON_BinaryArchive::EndWrite3dmUserTable | ( | ) |
bool ON_BinaryArchive::EndWriteDictionary | ( | ) |
Description: Begins writing a dictionary entry. Parameters: de_type - [in] entry_name - [in] Returns: true Entry header was written and you must call EndWriteDictionary() after writing the entry data. false Failed to write entry header. Do not call EndWriteDictionary(). Remarks: Begins a new chunk with tcode TCODE_DICTIONARY_ENTRY, then writes the int, and then writes the string.
bool ON_BinaryArchive::EndWriteDictionaryEntry | ( | ) |
|
protected |
bool ON_BinaryArchive::FindTableInDamagedArchive | ( | unsigned int | tcode_table, |
unsigned int | tcode_record, | ||
ON_UUID | class_uuid, | ||
int | min_length_data | ||
) |
Description: Expert user function for reading damaged files. The search starts at the beginning of the file. Parameters: tcode_table - [in] typecode of the table tcode_record - [in] typecode of the record class_uuid - [in] id of the opennurbs class in the record min_length_data - [in] minimum size of the opennurbs class data Returns: True if the table start is found. In this case the current position of the archive is at the start of the table and the standared BeginRead3dm...Table() function can be used. False if the table start is not found.
ON_3dmArchiveTableType ON_BinaryArchive::FirstFailed3dmTable | ( | ) | const |
Returns: If a 3dm archive is being read or written and a failure occurs, the first archive section (table) that failed to read or write is returned.
|
pure virtual |
Description: Force Write() to flush any buffered data to physical archive. Returns: True if successful or if there is nothing to flush. False if information could not be flushed.
Implemented in ON_Write3dmBufferArchive, ON_Read3dmBufferArchive, ON_BinaryArchiveBuffer, and ON_BinaryFile.
int ON_BinaryArchive::GetCurrentChunk | ( | ON_3DM_BIG_CHUNK & | big_chunk | ) | const |
int ON_BinaryArchive::GetCurrentChunk | ( | ON_3DM_CHUNK & | chunk | ) | const |
Description: Expert user function for reading damaged files. Parameters: chunk - [out] current chunk. Returns: Level of the chunk or 0 if there is no current chunk.
unsigned int ON_BinaryArchive::InstanceDefinitionModelSerialNumber | ( | ) | const |
void ON_BinaryArchive::IntentionallyWriteCorrupt3dmStartSectionForExpertTesting | ( | ) |
Step 1: REQUIRED - Write/Read Start Section Description: In rare cases, experts testing handling of corrupt 3dm files need to write a 3dm archive that is corrupt. In this rare testing situation, those experts should call IntentionallyWriteCorrupt3dmStartSectionForExpertTesting() exactly one time before they begin writing the file. The 32 byte identifier will replace the 1st 3 spaces with a capital X to mimic a file that became corrupt while residing on storage media.
|
protectedpure virtual |
Implemented in ON_Write3dmBufferArchive, ON_Read3dmBufferArchive, ON_BinaryArchiveBuffer, and ON_BinaryFile.
bool ON_BinaryArchive::Internal_Read3dmDimStyleOverrides | ( | class ON_Annotation & | annotation, |
bool | bFromDimStyleTable | ||
) |
Internal_Read3dmDimStyleOverrides() is a public function on ON_BinaryArchive because it must be called from ON_Annotation::Internal_ReadAnnotation(). There is no other reason to call this function.
|
protectedpure virtual |
Remarks: In some unusual situations when reading old or damaged files, a read may fail. Call MaskReadError( ON__UINT64 sizeof_request, ON__UINT64 sizeof_read ) before calling ON_ERROR().
Implemented in ON_Write3dmBufferArchive, ON_Read3dmBufferArchive, ON_BinaryArchiveBuffer, and ON_BinaryFile.
|
protectedpure virtual |
Implemented in ON_Write3dmBufferArchive, ON_Read3dmBufferArchive, ON_BinaryArchiveBuffer, and ON_BinaryFile.
|
protectedpure virtual |
Implemented in ON_Write3dmBufferArchive, ON_Read3dmBufferArchive, ON_BinaryArchiveBuffer, and ON_BinaryFile.
bool ON_BinaryArchive::Internal_Write3dmDimStyleOverrides | ( | const class ON_Annotation & | annotation, |
const class ON_DimStyle * | dim_style_overrides | ||
) |
Internal_Write3dmDimStyleOverrides() is a public function on ON_BinaryArchive because it must be called from ON_Annotation::Internal_WriteAnnotation(). There is no other reason to call this function.
|
protectedpure virtual |
Implemented in ON_Write3dmBufferArchive, ON_Read3dmBufferArchive, ON_BinaryArchiveBuffer, and ON_BinaryFile.
|
virtual |
Description: When ON_BinaryArchive::ReadObject() encounters userdata and the user data class id is not present, LoadUserDataApplication is called to load the application that created user data. Returns: 0 - could not load the application 1 - successfully loaded the application 2 - the application was already loaded
const class ON_ComponentManifest& ON_BinaryArchive::Manifest | ( | ) | const |
Reading and writing operations fill in the manifest. ON_ComponentManifest query tools can be used to look up model and archive index and id information.
The component and manifest id values are always identical during reading and writing.
When writing, the component indices are model indices and the manifest indices are the archive indices that were written in the file.
When reading, the component indices are "index" values read from the archive and the manifest indices are the order they were read. When files are valid, these indices are the same.
After reading is complete, the application can use ON_ComponentManifest::UpdateManifestItem() to convert the component index and id values to model index and id values.
const class ON_ManifestMap& ON_BinaryArchive::ManifestMap | ( | ) | const |
|
protected |
Parameters: sizeof_request - [in] value of count parameter passed to virtual Read() function. sizeof_read - [in] number of bytes actually read by the virtual Read() function. Returns: True if a call to Read() is permitted to ask for more bytes than are left in the file. This value varies as the file is read and must be checked at each failure.
ON::archive_mode ON_BinaryArchive::Mode | ( | ) | const |
Returns: Archive read/write mode
unsigned int ON_BinaryArchive::ModelSerialNumber | ( | ) | const |
bool ON_BinaryArchive::ObjectHasUserDataToWrite | ( | const class ON_Object * | object | ) | const |
Description: Determine if an object has user data that should be written. Parameters: object - [in] Returns: True if object has user data that should be written.
ON_BinaryArchive::ON_DEPRECATED_MSG | ( | "ON_BinaryArchive::ReadSize is deprecated because it truncates to 32-bits.\n" " - If you are updating existing code use 'ReadInt' instead.\n" " - Else if you need to write a 64-bit size_t please call 'ReadBigSize'" | ) |
< Read a single 32 bit size_t
ON_BinaryArchive::ON_DEPRECATED_MSG | ( | "ON_BinaryArchive::WriteSize is deprecated because it truncates to 32-bits.\n" " - If you are updating existing code use 'WriteInt' instead.\n" " - Else if you need to write a 64-bit size_t please call 'WriteBigSize'" | ) |
< Write a single 32 bit size_t
|
static |
bool ON_BinaryArchive::PeekAt3dmBigChunkType | ( | ON__UINT32 * | typecode, |
ON__INT64 * | big_value | ||
) |
typecode | does not change file position |
bool ON_BinaryArchive::PeekAt3dmChunkType | ( | unsigned int * | , |
int * | |||
) |
ON_3dmArchiveTableType ON_BinaryArchive::Previous3dmTable | ( | ) | const |
Returns: If a 3dm archive is being read or written, the value of the most recently read or written archive section (table) is returned. Remarks: Use ON_BinaryArchive::Mode() to determine if a binary archive is being read or written.
bool ON_BinaryArchive::Read3dmAnonymousUserTable | ( | int | archive_3dm_version, |
unsigned int | archive_opennurbs_version, | ||
ON_3dmGoo & | goo | ||
) |
Description: If the plug-in that wrote the user table is not present and you need to read and resave the user table, then use Read3dmAnonymousUserTable() to load the information into "goo". If you do not need to resave the information, then simply call EndRead3dmUserTable() to skip over this table.
int ON_BinaryArchive::Read3dmBitmap | ( | class ON_Bitmap ** | ) |
bool ON_BinaryArchive::Read3dmChunkVersion | ( | int * | , |
int * | |||
) |
int ON_BinaryArchive::Read3dmDimStyle | ( | class ON_DimStyle ** | ppDimStyle | ) |
Description: Reads annotation dimension styles from dimension style table. If the dimension style definition is read, a dimension style is created by calling new ON_DimStyle(), initialized with values stored in the archive, and returned.
Parameters: ppDimStyle - If the dimstyle definition is read, a dimstyle is created by calling new ON_DimStyle(), initialized with values stored in the archive, and a pointer to the new dimstyle is returned in *ppDimStyle.
Returns:
@untitled table 0 at the end of the dimension style table 1 dimension style definition was successfully read -1 archive is corrupt at this point
Example: Calls to Read3dmDimStyle need to be bracketed by calls to BeginRead3dmDimStyleTable() / EndRead3dmDimStyleTable().
archive.BeginRead3dmDimStyleTable(); int rc = 1; ON_DimStyle* pDimStyle; while(rc==1) { ///< pDimStyle = 0; archive.Read3dmDimStyle(&pDimStyle); if ( pDimStyle ) do something with pDimStyle } ///< archive.EndRead3dmDimStyleTable();
bool ON_BinaryArchive::Read3dmEndMark | ( | size_t * | ) |
Description: Checks for a TCODE_ENDOFFILE chunk at the current position. If it finds one, it reads it and returns the number of bytes in the archive. Comparing this number with the current file position can help detect files that have been damaged by losing sections.
Parameters: sizeof_archive - [out] number of bytes written to archive
Returns: true if successful, false if unable to find or read a TCODE_ENDOFFILE chunk.
bool ON_BinaryArchive::Read3dmGoo | ( | ON_3dmGoo & | ) |
Call to read "goo".
int ON_BinaryArchive::Read3dmGroup | ( | class ON_Group ** | ) |
Description: Reads groups from group table. If the group definition is read, a group is created by calling new ON_Group(), initialized with values stored in the archive, and returned.
Parameters: ppGroup - If the group definition is read, a group is created by calling new ON_Group(), initialized with values stored in the archive, and a pointer to the new group is returned in *ppGroup.
Returns:
@untitled table 0 at the end of the group table 1 group definition was successfully read -1 archive is corrupt at this point
Example: Calls to Read3dmGroup need to be bracketed by calls to BeginRead3dmGroupTable() / EndRead3dmGroupTable().
archive.BeginRead3dmGroupTable(); ON_Group* pGroup; int rc = 1; while(rc==1) { ///< pGroup = 0; archive.Read3dmGroup(&pGroup); if ( pGroup ) do something with pGroup } ///< archive.EndRead3dmGroupTable();
int ON_BinaryArchive::Read3dmHatchPattern | ( | class ON_HatchPattern ** | ) |
int ON_BinaryArchive::Read3dmHistoryRecord | ( | class ON_HistoryRecord *& | ) |
Returns: 0 at end of object table 1 if object is read -1 if file is corrupt
int ON_BinaryArchive::Read3dmInstanceDefinition | ( | class ON_InstanceDefinition ** | ) |
Description: Reads instance definitions from instance definition table.
Parameters: ppInstanceDefinition - If an instance definition is read, an instance definition is created by calling new ON_InstanceDefinition(), initialized with values stored in the archive, and a pointer to the new instance definition is returned in *ppInstanceDefinition.
Returns:
@untitled table 0 at the end of the instance definition table 1 instance definition was successfully read -1 archive is corrupt at this point
Example: Calls to Read3dmInstanceDefinition need to be bracketed by calls to BeginRead3dmInstanceDefinitionTable() / EndRead3dmInstanceDefinitionTable().
archive.BeginRead3dmInstanceDefinitionTable(); int rc = 1; ON_InstanceDefinition* pInstanceDefinition; while(rc==1) { pInstanceDefinition = 0; archive.Read3dmInstanceDefinition(&pInstanceDefinition); if ( pInstanceDefinition ) do something with pInstanceDefinition } archive.EndRead3dmInstanceDefinitionTable();
int ON_BinaryArchive::Read3dmLayer | ( | ON_Layer ** | ) |
int ON_BinaryArchive::Read3dmLight | ( | class ON_Light ** | light, |
class ON_3dmObjectAttributes * | attributes | ||
) |
int ON_BinaryArchive::Read3dmLinetype | ( | class ON_Linetype ** | ) |
int ON_BinaryArchive::Read3dmMaterial | ( | class ON_Material ** | ) |
int ON_BinaryArchive::Read3dmModelGeometry | ( | class ON_ModelGeometryComponent ** | model_geometry, |
unsigned int | object_filter = 0 |
||
) |
Call either Read3dmModelGeometry or Read3dmObject.
Parameters: model_geometry - [out] ON_ModelGeometryComponent returned here. nullptr returned at end of the table. object_filter - [in] optional filter made by setting ON::object_type bits Returns: 0 at end of object table 1 if object is read 2 if object is skipped because it does not match filter -1 if file is corrupt
int ON_BinaryArchive::Read3dmModelGeometryForExperts | ( | bool | bManageGeometry, |
bool | bManageAttributes, | ||
class ON_ModelGeometryComponent ** | model_geometry, | ||
unsigned int | object_filter | ||
) |
Parameters: bManageGeometry - [in] true: model_geometry will reference count and delete the ON_Geometry pointer. false: The caller must delete the ON_Geometry pointer. bManageAttributes - [in] true: model_geometry will reference count and delete the ON_3dmObjectAttributes pointer. false: The caller must delete the ON_3dmObjectAttributes pointer. model_geometry - [out] ON_ModelGeometryComponent returned here. nullptr returned at end of the table. object_filter - [in] optional filter made by setting ON::object_type bits 0 = no filter. Returns: 0 at end of object table 1 if object is read 2 if object is skipped because it does not match filter -1 if file is corrupt
int ON_BinaryArchive::Read3dmModelLight | ( | class ON_ModelGeometryComponent ** | model_light | ) |
Call either Read3dmModelLight or Read3dmLight.
Parameters: model_light - [out] ON_ModelGeometryComponent returned here. nullptr returned at end of the table. object_filter - [in] optional filter made by setting ON::object_type bits Returns: 0 at end of object table 1 if object is read 2 if object is skipped because it does not match filter -1 if file is corrupt
int ON_BinaryArchive::Read3dmObject | ( | ON_Object ** | model_object, |
ON_3dmObjectAttributes * | attributes, | ||
unsigned int | object_filter = 0 |
||
) |
Parameters: model_object - [out] nullptr returned at end of the table. attributes - [out] If not nullptr, then attributes are returned here object_filter - [in] optional filter made by setting ON::object_type bits Returns: 0 at end of object table 1 if object is read 2 if object is skipped because it does not match filter -1 if file is corrupt
bool ON_BinaryArchive::Read3dmProperties | ( | class ON_3dmProperties & | ) |
bool ON_BinaryArchive::Read3dmReferencedComponentId | ( | ON_ModelComponent::Type | component_type, |
ON_UUID * | component_id | ||
) |
Description: When reading 3dm archives, the model component ID in the archive and in the destination model are often identical, but sometimes different. For example, the when the same template is used to create multiple models and files and the models from those files are merged into a single file, there will be ID collisions. For components that are identified by name, like layers and dimension styles, this is not a problem. For components like instance definitions that have a more complicated set of merging rules, it is critical that references to instance definition ids be updated from values in the archive to values in the model. uses to adjust and write a model component Id. Parameters: component_type - [in] Type of the referenced component. component_id - [out] component reference ID Returns: false - catestrophic read failure.
bool ON_BinaryArchive::Read3dmReferencedComponentIndex | ( | ON_ModelComponent::Type | component_type, |
int * | component_index | ||
) |
Description: When reading 3dm archives, model component indexes in the archive and in the destination model are typically different. This function basically reads and reverses the steps that WriteArchiveComponentIndex() uses to adjust and write a model component index. Parameters: component_type - [in] Type of the referenced component. component_index - [out] component reference index Returns: false - catestrophic read failure.
bool ON_BinaryArchive::Read3dmReferencedComponentIndexArray | ( | ON_ModelComponent::Type | component_type, |
ON_SimpleArray< int > & | component_index_array | ||
) |
bool ON_BinaryArchive::Read3dmSettings | ( | class ON_3dmSettings & | ) |
bool ON_BinaryArchive::Read3dmStartSection | ( | int * | version, |
ON_String & | sStartSectionComment | ||
) |
Parameters: version - [out] .3dm file version (2, 3, 4, 5, 50, 60) sStartSectionComment - [out] UTF-8 encoded string passed to Write3dmStartSection() destination_manifest - [in] manifest of the destination model
int ON_BinaryArchive::Read3dmTextureMapping | ( | class ON_TextureMapping ** | ) |
bool ON_BinaryArchive::ReadArc | ( | ON_Arc & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_ClassArray< class ON_ObjRef > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_ClassArray< ON_MappingRef > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_ClassArray< ON_MaterialRef > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_ClassArray< ON_String > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_ClassArray< ON_wString > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_ObjectArray< class ON_Layer > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< bool > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< char > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< class ON_ClippingPlaneInfo > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< class ON_Layer * > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< class ON_ObjRef_IRefID > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< double > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< float > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_2dPoint > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_2dVector > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_2fPoint > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_2fVector > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_3dPoint > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_3dVector > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_3fPoint > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_3fVector > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_4dPoint > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_4fPoint > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON__INT16 > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON__INT32 > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON__INT8 > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON__UINT16 > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON__UINT32 > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON__UINT8 > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_Color > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_DisplayMaterialRef > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_LinetypeSegment > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_MappingChannel > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_SurfaceCurvature > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_UUID > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_UuidIndex > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_UuidPtr > & | ) |
bool ON_BinaryArchive::ReadArray | ( | ON_SimpleArray< ON_Xform > & | ) |
bool ON_BinaryArchive::ReadBigInt | ( | ON__INT64 * | ) |
bool ON_BinaryArchive::ReadBigInt | ( | ON__UINT64 * | ) |
bool ON_BinaryArchive::ReadBigInt | ( | size_t | , |
ON__INT64 * | |||
) |
bool ON_BinaryArchive::ReadBigInt | ( | size_t | , |
ON__UINT64 * | |||
) |
bool ON_BinaryArchive::ReadBigSize | ( | size_t * | ) |
64 bits
bool ON_BinaryArchive::ReadBigTime | ( | time_t * | ) |
UCT seconds since 1 January 1970 (64 bits)
bool ON_BinaryArchive::ReadBool | ( | bool * | ) |
bool ON_BinaryArchive::ReadBoundingBox | ( | ON_BoundingBox & | ) |
ON__UINT64 ON_BinaryArchive::ReadBuffer | ( | ON__UINT64 | sizeof_buffer, |
void * | buffer | ||
) |
Description: Expert user function that uses Read() to load a buffer. Parameters: sizeof_buffer - [in] number of bytes to attempt to read. buffer - [out] read bytes are stored in this buffer Returns: Number of bytes actually read, which may be less than sizeof_buffer if the end of file is encountered.
bool ON_BinaryArchive::ReadByte | ( | size_t | , |
void * | |||
) |
must fail if mode is not read or readwrite
bool ON_BinaryArchive::ReadChar | ( | char * | ) |
bool ON_BinaryArchive::ReadChar | ( | ON__INT8 * | ) |
bool ON_BinaryArchive::ReadChar | ( | ON__UINT8 * | ) |
bool ON_BinaryArchive::ReadChar | ( | size_t | , |
char * | |||
) |
bool ON_BinaryArchive::ReadChar | ( | size_t | , |
ON__INT8 * | |||
) |
bool ON_BinaryArchive::ReadChar | ( | size_t | , |
ON__UINT8 * | |||
) |
bool ON_BinaryArchive::ReadCircle | ( | ON_Circle & | ) |
bool ON_BinaryArchive::ReadColor | ( | ON_4fColor & | ) |
bool ON_BinaryArchive::ReadColor | ( | ON_Color & | ) |
bool ON_BinaryArchive::ReadComponentIndex | ( | ON_COMPONENT_INDEX & | ) |
bool ON_BinaryArchive::ReadCompressedBuffer | ( | size_t | sizeof__outbuffer, |
void * | outbuffer, | ||
bool * | bFailedCRC | ||
) |
Description: Read compressed information from an archive and uncompress it. Parameters: sizeof__outbuffer - [in] size of the uncompressed buffer in bytes outbuffer - [out] uncompressed buffer returned here bFailedCRC - [out] true if cyclic redundancy check fails on uncompressed buffer
Example:
size_t sizeof_buffer = 0; ReadCompressedBufferSize(&sizeof_buffer); buffer = ...; ///< something with sizeof_buffer bytes. int bFailedCRC = false; bool ok = ReadCompressedBuffer( sizeof_buffer, buffer, &bFailedCRC );
Returns: True if read was successful. You need to check the value of bFailedCRC to see if the information that was read is valid. Remarks: Write your archive write/read code as if compression is always enabled. Do not vary what get written or read based on the value of UseBufferCompression().
bool ON_BinaryArchive::ReadCompressedBufferSize | ( | size_t * | sizeof__outbuffer | ) |
ReadCompressedBuffer()/WriteCompressedBuffer() use zlib 1.1.3 to inflate/deflate the data buffer. Care must be used to get an endian independent file.
See ON_Mesh::Read()/ON_Mesh::Write() for an example of an endian independent use of compression. See also ToggleByteOrder() and Endian().
To read data archived by WriteCompressedBuffer( sizeof_buffer, buffer ) do something like:
size_t sizeof_buffer = 0; ReadCompressedBufferSize(&sizeof_buffer); buffer = something with sizeof_buffer bytes. int bFailedCRC = false; bool ok = ReadCompressedBuffer( sizeof_buffer, buffer, &bFailedCRC ); Description: Red the size of a compressed buffer. Parameters: sizeof__outbuffer - [out] size of the uncompressed buffer in bytes Returns: True if read was successful.
bool ON_BinaryArchive::ReadDisplayMaterialRef | ( | ON_DisplayMaterialRef & | ) |
bool ON_BinaryArchive::ReadDouble | ( | double * | ) |
bool ON_BinaryArchive::ReadDouble | ( | size_t | , |
double * | |||
) |
bool ON_BinaryArchive::ReadFloat | ( | float * | ) |
bool ON_BinaryArchive::ReadFloat | ( | size_t | , |
float * | |||
) |
bool ON_BinaryArchive::ReadInt | ( | ON__INT32 * | ) |
bool ON_BinaryArchive::ReadInt | ( | ON__UINT32 * | ) |
bool ON_BinaryArchive::ReadInt | ( | size_t | , |
ON__INT32 * | |||
) |
bool ON_BinaryArchive::ReadInt | ( | size_t | , |
ON__UINT32 * | |||
) |
bool ON_BinaryArchive::ReadInterval | ( | ON_Interval & | ) |
bool ON_BinaryArchive::ReadLine | ( | ON_Line & | ) |
bool ON_BinaryArchive::ReadLinetypeSegment | ( | ON_LinetypeSegment & | ) |
bool ON_BinaryArchive::ReadLong | ( | long * | ) |
bool ON_BinaryArchive::ReadLong | ( | size_t | , |
long * | |||
) |
bool ON_BinaryArchive::ReadLong | ( | size_t | , |
unsigned long * | |||
) |
bool ON_BinaryArchive::ReadLong | ( | unsigned long * | ) |
bool ON_BinaryArchive::ReadMode | ( | ) | const |
Returns: True if Mode() is an archive reading mode.
bool ON_BinaryArchive::ReadModelComponentAttributes | ( | ON_ModelComponent & | model_component, |
unsigned int * | attributes_filter | ||
) |
Description: Reads the attributes the Write() function writes. Parameters: model_component - [in/out] component_filter - [out] A bitfield that reports which attributes were read. If the corresponding component on model_component is locked, the read value is discarded. Returns: false: critical failure. true: reading can continue.
Remarks: If locked attributes are read, thire values are ignored.
int ON_BinaryArchive::ReadObject | ( | ON_Object & | object | ) |
Description: Reads and object from a 3dm archive. Parameters: object - [in] The value of object.ON_ClassId()->Uuid() must exactly match the class uuid in of the next object in the archive. Returns: 0: failure - unable to read object because of file IO problems. 1: success 2: unable to read object because the class id in the archive did not match pObject->ClassId.
int ON_BinaryArchive::ReadObject | ( | ON_Object ** | ppObject | ) |
Read/Write classes derived from ON_Object Description: Reads and object from a 3dm archive; Parameters: ppObject - [out] object is allocated and a pointer to the allocated object is returned as *ppObject; Returns: 0: failure - unable to read object because of file IO problems 1: success 3: unable to read object because it's UUID is not registered this could happen in cases where old code is attempting to read new objects.
bool ON_BinaryArchive::ReadObjectUserData | ( | ON_Object & | object | ) |
Description: Low level tool to read user data and attach it to the object. This function should never be called directly. Parameters: object - [in/out] Returns: True if successful.
bool ON_BinaryArchive::ReadPlane | ( | ON_Plane & | ) |
bool ON_BinaryArchive::ReadPlaneEquation | ( | ON_PlaneEquation & | ) |
bool ON_BinaryArchive::ReadPoint | ( | ON_2dPoint & | ) |
bool ON_BinaryArchive::ReadPoint | ( | ON_3dPoint & | ) |
bool ON_BinaryArchive::ReadPoint | ( | ON_4dPoint & | ) |
bool ON_BinaryArchive::ReadShort | ( | ON__INT16 * | ) |
bool ON_BinaryArchive::ReadShort | ( | ON__UINT16 * | ) |
bool ON_BinaryArchive::ReadShort | ( | size_t | , |
ON__INT16 * | |||
) |
bool ON_BinaryArchive::ReadShort | ( | size_t | , |
ON__UINT16 * | |||
) |
bool ON_BinaryArchive::ReadString | ( | ON_String & | sUTF8 | ) |
bool ON_BinaryArchive::ReadString | ( | ON_wString & | s | ) |
bool ON_BinaryArchive::ReadString | ( | size_t | str_array_count, |
char * | str_array | ||
) |
Parameters: str_array_count - [in] Number of char elements in str_array[], including the null terminator. The value of str_array_count is returned by ReadCharStringElementCount(). str_array - [in/out] Pass in an array with at least str_array_count elements. If true is returned and str_array_count > 0, then str_array[str_array_count-1] = 0. All strings with char elements written by Rhino are UTF-8 encoded unicode strings.
bool ON_BinaryArchive::ReadString | ( | size_t | str_array_count, |
unsigned char * | str_array | ||
) |
Parameters: str_array_count - [in] Number of unsigned char elements in str_array[], including the null terminator. The value of str_array_count is returned by ReadCharStringElementCount(). str_array - [in/out] Pass in an array with at least str_array_count elements. If true is returned and str_array_count > 0, then str_array[str_array_count-1] = 0. All strings with unsigned char elements written by Rhino are UTF-8 encoded unicode strings.
bool ON_BinaryArchive::ReadString | ( | size_t | str_array_count, |
unsigned short * | str_array | ||
) |
Parameters: str_array_count - [in] Number of unsigned short elements in str_array[], including the null terminator. The value of str_array_count is returned by ReadWideCharStringElementCount(). str_array - [in/out] Pass in an array with at least str_array_count elements. If true is returned and str_array_count > 0, then str_array[str_array_count-1] = 0. All strings with unsigned short elements written by Rhino are UTF-16 encoded unicode strings.
bool ON_BinaryArchive::ReadStringSize | ( | size_t * | str_array_count | ) |
Parameters: str_array_count - [out] Number of elements in the string array. All ON_BinaryArchive string WriteString() functions write a null terminator to the file and the null terminator is included in the count. This means that if a string has a non-zero element, then str_array_count >= 2. Remarks: Modify your code to use ReadStringUTF8ElementCount() when reading UTF-8 encoded strings and ReadStringUTF16ElementCount() when reading UTF-16 encoded strings.
bool ON_BinaryArchive::ReadStringUTF16ElementCount | ( | size_t * | string_utf16_element_count | ) |
Parameters: string_utf16_element_count - [out] Number of elements in the string array. All ON_BinaryArchive string WriteString() functions write a null terminator to the file and the null terminator is included in string_element_count. This means that if opennurbs wrote the string, either string_element_count = 0 or string_element_count >= 2.
bool ON_BinaryArchive::ReadStringUTF8ElementCount | ( | size_t * | string_utf8_element_count | ) |
Parameters: string_utf8_element_count - [out] Number of bytes in the string array. All ON_BinaryArchive string WriteString() functions write a null terminator to the file and the null terminator is included in string_element_count. This means that if opennurbs wrote the string, either string_element_count = 0 or string_element_count >= 2.
bool ON_BinaryArchive::ReadTime | ( | struct tm & | ) |
All times are stored in coordinated universal time ( a.k.a GMT, UTC ). Use ANSI C time() and gmtime() calls.
bool ON_BinaryArchive::ReadUuid | ( | ON_UUID & | ) |
bool ON_BinaryArchive::ReadV1_TCODE_ANNOTATION | ( | unsigned int | , |
ON_Object ** | , | ||
ON_3dmObjectAttributes * | |||
) |
bool ON_BinaryArchive::ReadV1_TCODE_LEGACY_CRV | ( | ON_Object ** | , |
ON_3dmObjectAttributes * | |||
) |
bool ON_BinaryArchive::ReadV1_TCODE_LEGACY_FAC | ( | ON_Object ** | , |
ON_3dmObjectAttributes * | |||
) |
bool ON_BinaryArchive::ReadV1_TCODE_LEGACY_SHL | ( | ON_Object ** | , |
ON_3dmObjectAttributes * | |||
) |
bool ON_BinaryArchive::ReadV1_TCODE_MESH_OBJECT | ( | ON_Object ** | , |
ON_3dmObjectAttributes * | |||
) |
bool ON_BinaryArchive::ReadV1_TCODE_RH_POINT | ( | ON_Object ** | , |
ON_3dmObjectAttributes * | |||
) |
helpers for reading V1 objects
bool ON_BinaryArchive::ReadV1_TCODE_RHINOIO_OBJECT_BREP | ( | ON_Object ** | , |
ON_3dmObjectAttributes * | |||
) |
bool ON_BinaryArchive::ReadV1_TCODE_RHINOIO_OBJECT_NURBS_CURVE | ( | ON_Object ** | , |
ON_3dmObjectAttributes * | |||
) |
bool ON_BinaryArchive::ReadV1_TCODE_RHINOIO_OBJECT_NURBS_SURFACE | ( | ON_Object ** | , |
ON_3dmObjectAttributes * | |||
) |
bool ON_BinaryArchive::ReadVector | ( | ON_2dVector & | ) |
bool ON_BinaryArchive::ReadVector | ( | ON_3dVector & | ) |
bool ON_BinaryArchive::ReadWideString | ( | ON_wString & | wide_string | ) |
Description: Read a wide string written with the WriteWideString() function.
bool ON_BinaryArchive::ReadXform | ( | ON_Xform & | ) |
bool ON_BinaryArchive::ReferencedComponentIdMapping | ( | ) | const |
Returns: True: (default state) Read3dmReferencedComponentId() and Write3dmReferencedComponentId() will automatically adjust components Id references so they are valid. False: (uncommon) Read3dmReferencedComponentId() and Write3dmReferencedComponentId() will not adjust components Id references so they are valid.
bool ON_BinaryArchive::ReferencedComponentIndexMapping | ( | ) | const |
Returns: True: (default state) Read3dmReferencedComponentIndex() and Write3dmReferencedComponentIndex() will automatically adjust components index references so they are valid. False: (uncommon) Read3dmReferencedComponentIndex() and Write3dmReferencedComponentIndex() will not adjust components index references so they are valid.
unsigned int ON_BinaryArchive::ReferenceModelSerialNumber | ( | ) | const |
bool ON_BinaryArchive::Save3dmAnalysisMesh | ( | ON::object_type | object_type | ) | const |
Parameters: object_type - [in] Returns: true if analysis meshes for the specified object type will be saved in the .3dm file.
unsigned int ON_BinaryArchive::Save3dmAnalysisMeshObjectTypeFlags | ( | ) | const |
Description: Specify which types of objects (ON_Brep, ON_Extrusion, ON_SubD, ...) save analysis meshes in the 3dm file. Returns: The bits in the return value correspond to ON::object_type values and identify the object types save analysis meshes in the 3dm file.
bool ON_BinaryArchive::Save3dmPreviewImage | ( | ) | const |
Returns: true: (default) If a preview image is included in the ON_3dmProperties information, it will be saved. false: A preview imae, if it exists, will not be saved in the 3dm archive. This reduces archive size. When Save3dmPreviewImage() is false, generating a preview image can be skipped.
bool ON_BinaryArchive::Save3dmRenderMesh | ( | ON::object_type | object_type | ) | const |
Parameters: object_type - [in] Returns: true if render meshes for the specified object type will be saved in the .3dm file.
unsigned int ON_BinaryArchive::Save3dmRenderMeshObjectTypeFlags | ( | ) | const |
Description: Specify which types of objects (ON_Brep, ON_Extrusion, ON_SubD, ...) save render meshes in the 3dm file. Returns: The bits in the return value correspond to ON::object_type values and identify the object types save analysis meshes in the 3dm file.
bool ON_BinaryArchive::Seek3dmChunkFromCurrentPosition | ( | unsigned int | ) |
bool ON_BinaryArchive::Seek3dmChunkFromStart | ( | unsigned int | ) |
bool ON_BinaryArchive::SeekBackward | ( | ON__UINT64 | bytes_backward | ) |
Description: Decrease the archive's current position by bytes_backward from the current position. Parameters: bytes_backward - [in] Returns: True: successful False: failure
bool ON_BinaryArchive::SeekForward | ( | ON__UINT64 | bytes_forward | ) |
Description: Increase the archive's current position by bytes_forward from the current position. Parameters: bytes_forward - [in] Returns: True: successful False: failure
bool ON_BinaryArchive::SeekFromStart | ( | ON__UINT64 | bytes_from_start | ) |
Description: Set current position to bytes_from_start many bytes from the start of the archive. Parameters: bytes_from_start - [in] Returns: True: successful False: failure Remarks: Similar to fseek( ,SEEK_SET)
bool ON_BinaryArchive::SetArchive3dmVersion | ( | int | ) |
void ON_BinaryArchive::SetArchiveFullPath | ( | const wchar_t * | archive_directory_name, |
const wchar_t * | archive_file_name | ||
) |
Parameters: archive_directory_name - [in] full path file being written archive_file_name - [in] name of file being written
void ON_BinaryArchive::SetArchiveFullPath | ( | const wchar_t * | archive_full_path | ) |
Parameters: archive_full_path - [in] full path to file being read or written
void ON_BinaryArchive::SetCheckForRemappedIds | ( | bool | bCheckForRemappedIds | ) |
Parameters: bCheckForRemappedIds - [in] true if the archive is reading in a situation where component ids may get remapped.
void ON_BinaryArchive::SetChunkBoundaryCheck | ( | bool | bChunkBoundaryCheck | ) |
Parameters: bChunkBoundaryCheck - [in] true: All read, write, and seek operations check to make sure they stay within the current chunk boundary.
void ON_BinaryArchive::SetModelSerialNumber | ( | unsigned int | model_serial_number, |
unsigned int | reference_model_serial_number, | ||
unsigned int | instance_definition_model_serial_number | ||
) |
Description: Specify model serial number attributes to assign to ON_ModelComponent classes when they are read.
bool ON_BinaryArchive::SetOpenNURBS3dmVersion | ( | unsigned int | v | ) |
void ON_BinaryArchive::SetReferencedComponentIdMapping | ( | bool | bEnableReferenceComponentIdMapping | ) |
Description: Set the archive's ReferencedComponentIdMapping() state. Parameters: bEnableReferenceComponentIdMapping - [in] True: (default state) Read3dmReferencedComponentId() and Write3dmReferencedComponentId() will automatically adjust components Id references so they are valid. False: (uncommon) Read3dmReferencedComponentId() and Write3dmReferencedComponentId() will not adjust components Id references so they are valid. This is only used with the component being read or written is not the model but is a copy of one in a different model (linked instance definitions being the common situation).
void ON_BinaryArchive::SetReferencedComponentIndexMapping | ( | bool | bEnableReferenceComponentIndexMapping | ) |
Description: Set the archive's ReferencedComponentIndexMapping() state. Parameters: bEnableReferenceComponentIndexMapping - [in] True: (default state) Read3dmReferencedComponentIndex() and Write3dmReferencedComponentIndex() will automatically adjust components index references so they are valid. False: (uncommon) Read3dmReferencedComponentIndex() and Write3dmReferencedComponentIndex() will not adjust components index references so they are valid. This is only used with the component being read or written is not the model but is a copy of one in a different model (linked instance definitions being the common situation).
void ON_BinaryArchive::SetSave3dmPreviewImage | ( | bool | bSave3dmPreviewImage | ) |
bool ON_BinaryArchive::SetShouldSerializeUserDataDefault | ( | bool | bSerialize | ) |
Description: Specify the serialization option for object user data and user tables that are not explicitly set by SetShouldSerializeUserDataItem(). Parameters: bSerialize - [in] Remarks: If no setting is specified, all user data is read and written.
bool ON_BinaryArchive::SetShouldSerializeUserDataItem | ( | ON_UUID | application_id, |
ON_UUID | item_id, | ||
bool | bSerializeUserDataItem | ||
) |
Description: Specify if an application's (plug-in's) object user data or user table should be read or written. Parameters: application_id - [in] The application id (often a plug-in id) for the object user data or user table. item_id - [in] item_id identifies which user data items should be read or written.
void ON_BinaryArchive::SetStorageDeviceError | ( | ON_BinaryArchive::eStorageDeviceError | storage_device_error | ) |
Description: A non-zero storage device error terminates reading or writing. See the ON_BinaryArchive::eStorageDeviceError for values. Parameter: storage_device_error - [in] A non-zero code that identifies an error the terminates reading or writing.
See ON_BinaryArchive::CriticalErrorCodes for values Remarks: Once set, the storage_device_error value cannot be changed.
void ON_BinaryArchive::SetStorageDeviceError | ( | unsigned int | storage_device_error | ) |
void ON_BinaryArchive::SetUseBufferCompression | ( | bool | bUseBufferCompression | ) |
Description: Control when some information, like preview images and mesh information, is compressed when writing 3dm archives. The default is true. In special situations when the storage media is extremely fast and large file size is not a concern, disabling buffer compression can reduce file write time. Parameters: bUseBufferCompression - [in] Remarks: The default is true.
bool ON_BinaryArchive::ShouldSerializeAllUserData | ( | ) | const |
Returns: True if all user data and user tables should be read or written. False if some or no user data or user tables should be read or written. Remarks: AllUserDataSerializationIsEnabled() = (false == ShouldSerializeNoUserData() && false == ShouldSerializeSomeUserData())
bool ON_BinaryArchive::ShouldSerializeNoUserData | ( | ) | const |
Returns: True if no user data and user tables should be read or written. False if some or all user data or user tables should be read or written. Remarks: SerializeNoUserData() = (false == ShouldSerializeAllUserData() && false == ShouldSerializeSomeUserData())
bool ON_BinaryArchive::ShouldSerializeSomeUserData | ( | ) | const |
Returns: True if some but not all user data or user tables should be read or written. False if all user data or no user data should be read or written. Remarks: SerializeSomeUserData() = (false == ShouldSerializeAllUserData() && false == ShouldSerializeNoUserData())
Use ShouldSerializeUserDataItem(application_id,item_id) to determine if a specific object user data or user table should be read or written.
bool ON_BinaryArchive::ShouldSerializeUserDataDefault | ( | ) | const |
bool ON_BinaryArchive::ShouldSerializeUserDataItem | ( | ON_UUID | application_id, |
ON_UUID | item_id | ||
) | const |
Description: Determine if an application's (plug-in's) object user data or user table should be read or written. Parameters: application_id - [in] The application id (often a plug-in id) for the object user data or user table. item_id - [in] item_id identifies which user data items should be read or written.
bool ON_BinaryArchive::ShouldWriteUserDataItem | ( | const class ON_Object * | object, |
const class ON_UserData * | object_user_data | ||
) | const |
size_t ON_BinaryArchive::SizeofChunkLength | ( | ) | const |
unsigned int ON_BinaryArchive::StorageDeviceError | ( | ) | const |
Description: An error terminated reading or writing Returns: 0: no error terminiated reading or writing !=0: See the ON_BinaryArchive::DeviceErrorType for values
|
static |
|
static |
|
static |
Description: Tool for swapping bytes when doing I/O on using big endian CPUs. Remarks: 3dm files are always saved with little endian byte order. See Also: ON_BinaryArchive::Endian
|
static |
bool ON_BinaryArchive::UnsetMode | ( | ) | const |
Returns: True if Mode() is not set to a valid read or write mode.
bool ON_BinaryArchive::UpdateManifestMapItemDestination | ( | const class ON_ManifestMapItem & | map_item | ) |
Description: When an application is reading an archive and changes the index or id of a model component as it is added to the model, then it needs to update the manifest map item destination settings. Parameters: map_item - [in] The source type, index and id match what was read from the 3dm archive. The destination index and id are the values assigned by the application reading the 3dm archive.
bool ON_BinaryArchive::UseBufferCompression | ( | ) | const |
Returns: true: (default) Some information, including preview images and mesh information is compressed when writing 3dm archives. This reduces, sometimes dramatically, the size of the 3dm archive. false: No compression is performed. This increases, sometimes dramatically, the size of the 3dm archive. In special situations when the storage media is extremely fast and large file size is not a concern, disabling buffer compression can reduce file write time.
bool ON_BinaryArchive::Write3dmAnonymousUserTable | ( | const class ON_3dmGoo & | ) |
bool ON_BinaryArchive::Write3dmAnonymousUserTableRecord | ( | ON_UUID | plugin_id, |
int | goo_3dm_version, | ||
unsigned int | goo_opennurbs_version, | ||
const class ON_3dmGoo & | goo | ||
) |
Description: If Read3dmAnaonymousUserTable() was used to read ON_3dmGoo because a plug-in was not present, then use Write3dmAnonymousUserTableRecord() to put than information back into the archive. Write3dmAnonymousUserTableRecord() writes the entire record. Do NOT call BeginWrite3dmUserTable() / EndWrite3dmUserTable() when using Write3dmAnonymousUserTableRecord(). Parameters: plugin_id - [in] goo_version - [in] The version of the archive (1,2,3,4,5,50,...) that was used when the plug-in wrote the user table. goo_opennurbs_version - [in] The version of opennurbs ( YYYMMDDN ) that was used when the plug-in wrote the user table. goo - [in] Returns: True if the goo was written. False if skipped because it could not be robustly saved.
bool ON_BinaryArchive::Write3dmBitmap | ( | const class ON_Bitmap & | ) |
bool ON_BinaryArchive::Write3dmChunkVersion | ( | int | , |
int | |||
) |
A chunk version is a single byte that encodes a major.minor version number. Useful when creating I/O code for 3dm chunks that may change in the future. Increment the minor version number if new information is added to the end of the chunk. Increment the major version if the format of the chunk changes in some other way.
bool ON_BinaryArchive::Write3dmDimStyle | ( | const class ON_DimStyle & | ) |
bool ON_BinaryArchive::Write3dmDimStyleComponent | ( | const class ON_ModelComponent * | model_component | ) |
bool ON_BinaryArchive::Write3dmDimStyleComponent | ( | const class ON_ModelComponentReference & | model_component_reference | ) |
bool ON_BinaryArchive::Write3dmEndMark | ( | ) |
Step 18: REQUIRED when writing / OPTIONAL when reading Write end of file marker. This information is primarily used when debugging files to make sure the end of the file hasn't been cut off. Description: Writes a TCODE_ENDOFFILE chunk that contains the number of bytes in the archive.
Returns: true if successful, false if unable to write to archive.
bool ON_BinaryArchive::Write3dmGoo | ( | const ON_3dmGoo & | ) |
call to write "goo"
bool ON_BinaryArchive::Write3dmGroup | ( | const class ON_Group & | ) |
bool ON_BinaryArchive::Write3dmGroupComponent | ( | const class ON_ModelComponent * | model_component | ) |
bool ON_BinaryArchive::Write3dmGroupComponent | ( | const class ON_ModelComponentReference & | model_component_reference | ) |
bool ON_BinaryArchive::Write3dmHatchPattern | ( | const class ON_HatchPattern & | ) |
bool ON_BinaryArchive::Write3dmHatchPatternComponent | ( | const class ON_ModelComponent * | model_component | ) |
bool ON_BinaryArchive::Write3dmHatchPatternComponent | ( | const class ON_ModelComponentReference & | model_component_reference | ) |
bool ON_BinaryArchive::Write3dmHistoryRecord | ( | const class ON_HistoryRecord & | ) |
bool ON_BinaryArchive::Write3dmHistoryRecordComponent | ( | const class ON_ModelComponent * | model_component | ) |
bool ON_BinaryArchive::Write3dmHistoryRecordComponent | ( | const class ON_ModelComponentReference & | model_component_reference | ) |
bool ON_BinaryArchive::Write3dmImageComponent | ( | const class ON_ModelComponent * | model_component | ) |
bool ON_BinaryArchive::Write3dmImageComponent | ( | const class ON_ModelComponentReference & | model_component_reference | ) |
bool ON_BinaryArchive::Write3dmInstanceDefinition | ( | const class ON_InstanceDefinition & | ) |
bool ON_BinaryArchive::Write3dmInstanceDefinitionComponent | ( | const class ON_ModelComponent * | model_component | ) |
bool ON_BinaryArchive::Write3dmInstanceDefinitionComponent | ( | const class ON_ModelComponentReference & | model_component_reference | ) |
bool ON_BinaryArchive::Write3dmLayer | ( | const ON_Layer & | ) |
bool ON_BinaryArchive::Write3dmLayerComponent | ( | const class ON_ModelComponent * | model_component | ) |
bool ON_BinaryArchive::Write3dmLayerComponent | ( | const class ON_ModelComponentReference & | model_component_reference | ) |
bool ON_BinaryArchive::Write3dmLight | ( | const class ON_Light & | , |
const class ON_3dmObjectAttributes * | |||
) |
bool ON_BinaryArchive::Write3dmLinePatternComponent | ( | const class ON_ModelComponent * | model_component | ) |
bool ON_BinaryArchive::Write3dmLinePatternComponent | ( | const class ON_ModelComponentReference & | model_component_reference | ) |
bool ON_BinaryArchive::Write3dmLinetype | ( | const class ON_Linetype & | line_pattern | ) |
bool ON_BinaryArchive::Write3dmMaterial | ( | const class ON_Material & | ) |
bool ON_BinaryArchive::Write3dmMaterialComponent | ( | const class ON_ModelComponent * | model_component | ) |
bool ON_BinaryArchive::Write3dmMaterialComponent | ( | const class ON_ModelComponentReference & | model_component_reference | ) |
bool ON_BinaryArchive::Write3dmModelGeometryComponent | ( | const class ON_ModelComponentReference & | model_component_reference | ) |
bool ON_BinaryArchive::Write3dmModelGeometryComponent | ( | const class ON_ModelGeometryComponent * | model_geometry | ) |
bool ON_BinaryArchive::Write3dmModelLightComponent | ( | const class ON_ModelComponentReference & | model_component_reference | ) |
bool ON_BinaryArchive::Write3dmModelLightComponent | ( | const class ON_ModelGeometryComponent * | model_light | ) |
bool ON_BinaryArchive::Write3dmObject | ( | const ON_Object & | , |
const ON_3dmObjectAttributes * | |||
) |
bool ON_BinaryArchive::Write3dmProperties | ( | const class ON_3dmProperties & | ) |
Step 2: REQUIRED - Write/Read properties table
bool ON_BinaryArchive::Write3dmReferencedComponentId | ( | const ON_ModelComponent & | model_component | ) |
bool ON_BinaryArchive::Write3dmReferencedComponentId | ( | ON_ModelComponent::Type | component_type, |
ON_UUID | model_component_id | ||
) |
Description: WriteComponentId converts the model ID into an archive ID and writes the archive Id value. Generally, the ID of the component in the model is identical to the ID of the component in the archive. In rare situations this is not the case. Remarks: During writing, the m_manifest member stores the model ID as the "Component" value and the 3dm archive ID as the "Manifest" value.
bool ON_BinaryArchive::Write3dmReferencedComponentIndex | ( | const ON_ModelComponent & | model_component | ) |
Description: When writing archives, the index of the component in the model is often different than the index of the component in the archive. WriteComponentIndex converts the model id or index into an archive index and writes the archive index value. Remarks: During writing, the m_manifest member stores the model id and index as the "Component" value and the 3dm archive id index as the "Manifest" value.
bool ON_BinaryArchive::Write3dmReferencedComponentIndex | ( | ON_ModelComponent::Type | component_type, |
int | model_component_index | ||
) |
Description: When writing archives, the index of the component in the model is often different than the index of the component in the archive. WriteComponentIndex converts the model id or index into an archive index and writes the archive index value. Remarks: During writing, the m_manifest member stores the model id and index as the "Component" value and the 3dm archive id index as the "Manifest" value.
bool ON_BinaryArchive::Write3dmReferencedComponentIndex | ( | ON_ModelComponent::Type | component_type, |
ON_UUID | model_component_id | ||
) |
Description: When writing archives, the index of the component in the model is often different than the index of the component in the archive. WriteComponentIndex converts the model id or index into an archive index and writes the archive index value. Remarks: During writing, the m_manifest member stores the model id and index as the "Component" value and the 3dm archive id index as the "Manifest" value.
bool ON_BinaryArchive::Write3dmSettings | ( | const class ON_3dmSettings & | ) |
Step 3: REQUIRED - Write/Read settings table
bool ON_BinaryArchive::Write3dmStartSection | ( | int | version, |
const char * | sStartSectionComment | ||
) |
Parameters: version - [in] 0, 2, 3, 4, 5, 50 or 60 (5 is treated as 50)
If version is 0, then the value of ON_BinaryArchive::CurrentArchiveVersion() is used.
Use either 0 or the value of ON_BinaryArchive::CurrentArchiveVersion() for the version parameter when you want your code to write the most up to date file version.
sStartSectionComment - [in] nullptr or a UTF-8 encoded string with application name, et cetera. This information is primarily used when debugging files that contain problems. McNeel and Associates stores application name, application version, compile date, and the OS in use when file was written.
bool ON_BinaryArchive::Write3dmTextureMapping | ( | const class ON_TextureMapping & | ) |
bool ON_BinaryArchive::Write3dmTextureMappingComponent | ( | const class ON_ModelComponent * | model_component | ) |
bool ON_BinaryArchive::Write3dmTextureMappingComponent | ( | const class ON_ModelComponentReference & | model_component_reference | ) |
bool ON_BinaryArchive::WriteArc | ( | const ON_Arc & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_ClassArray< class ON_ObjRef > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_ClassArray< ON_MappingRef > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_ClassArray< ON_MaterialRef > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_ClassArray< ON_String > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_ClassArray< ON_wString > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< bool > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< char > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< class ON_ClippingPlaneInfo > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< class ON_ObjRef_IRefID > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< double > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< float > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_2dPoint > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_2dVector > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_2fPoint > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_2fVector > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_3dPoint > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_3dVector > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_3fPoint > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_3fVector > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_4dPoint > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_4fPoint > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON__INT16 > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON__INT32 > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON__INT8 > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON__UINT16 > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON__UINT32 > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON__UINT8 > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_Color > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_DisplayMaterialRef > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_LinetypeSegment > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_MappingChannel > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_SurfaceCurvature > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_UUID > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_UuidIndex > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_UuidPtr > & | ) |
bool ON_BinaryArchive::WriteArray | ( | const ON_SimpleArray< ON_Xform > & | ) |
bool ON_BinaryArchive::WriteArray | ( | int | count, |
const class ON_Layer * | |||
) |
bool ON_BinaryArchive::WriteArray | ( | int | count, |
const class ON_Layer *const * | |||
) |
bool ON_BinaryArchive::WriteBigInt | ( | ON__INT64 | ) |
bool ON_BinaryArchive::WriteBigInt | ( | ON__UINT64 | ) |
bool ON_BinaryArchive::WriteBigInt | ( | size_t | , |
const ON__INT64 * | |||
) |
bool ON_BinaryArchive::WriteBigInt | ( | size_t | , |
const ON__UINT64 * | |||
) |
bool ON_BinaryArchive::WriteBigSize | ( | size_t | ) |
64 bits
bool ON_BinaryArchive::WriteBigTime | ( | time_t | ) |
UCT seconds since 1 January 1970 (64 bits)
bool ON_BinaryArchive::WriteBool | ( | bool | ) |
bool ON_BinaryArchive::WriteBoolFalse | ( | ) |
bool ON_BinaryArchive::WriteBoolTrue | ( | ) |
bool ON_BinaryArchive::WriteBoundingBox | ( | const ON_BoundingBox & | ) |
bool ON_BinaryArchive::WriteByte | ( | size_t | , |
const void * | |||
) |
must fail if mode is not write or readwrite
bool ON_BinaryArchive::WriteChar | ( | char | ) |
bool ON_BinaryArchive::WriteChar | ( | ON__INT8 | ) |
bool ON_BinaryArchive::WriteChar | ( | ON__UINT8 | ) |
bool ON_BinaryArchive::WriteChar | ( | size_t | , |
const char * | |||
) |
bool ON_BinaryArchive::WriteChar | ( | size_t | , |
const ON__INT8 * | |||
) |
bool ON_BinaryArchive::WriteChar | ( | size_t | , |
const ON__UINT8 * | |||
) |
bool ON_BinaryArchive::WriteCircle | ( | const ON_Circle & | ) |
bool ON_BinaryArchive::WriteColor | ( | const ON_4fColor & | ) |
bool ON_BinaryArchive::WriteColor | ( | const ON_Color & | ) |
bool ON_BinaryArchive::WriteComponentIndex | ( | const ON_COMPONENT_INDEX & | ) |
bool ON_BinaryArchive::WriteCompressedBuffer | ( | size_t | sizeof__inbuffer, |
const void * | inbuffer | ||
) |
Description: Compress buffer and write the compressed information to the archive. Parameters: sizeof__inbuffer - [in] size of the uncompressed buffer in bytes inbuffer - [in] uncompressed buffer Returns: True if write was successful. Remarks: Write your archive write/read code as if compression is always enabled. Do not vary what get written or read based on the value of UseBufferCompression().
bool ON_BinaryArchive::WriteDisplayMaterialRef | ( | const ON_DisplayMaterialRef & | ) |
bool ON_BinaryArchive::WriteDouble | ( | double | ) |
bool ON_BinaryArchive::WriteDouble | ( | size_t | , |
const double * | |||
) |
bool ON_BinaryArchive::WriteFloat | ( | float | ) |
bool ON_BinaryArchive::WriteFloat | ( | size_t | , |
const float * | |||
) |
bool ON_BinaryArchive::WriteInt | ( | ON__INT32 | ) |
bool ON_BinaryArchive::WriteInt | ( | ON__UINT32 | ) |
bool ON_BinaryArchive::WriteInt | ( | size_t | , |
const ON__INT32 * | |||
) |
bool ON_BinaryArchive::WriteInt | ( | size_t | , |
const ON__UINT32 * | |||
) |
bool ON_BinaryArchive::WriteInterval | ( | const ON_Interval & | ) |
bool ON_BinaryArchive::WriteLine | ( | const ON_Line & | ) |
bool ON_BinaryArchive::WriteLinetypeSegment | ( | const ON_LinetypeSegment & | ) |
bool ON_BinaryArchive::WriteLong | ( | long | ) |
bool ON_BinaryArchive::WriteLong | ( | size_t | , |
const long * | |||
) |
bool ON_BinaryArchive::WriteLong | ( | size_t | , |
const unsigned long * | |||
) |
bool ON_BinaryArchive::WriteLong | ( | unsigned long | ) |
bool ON_BinaryArchive::WriteMode | ( | ) | const |
Returns: True if Mode() is an archive writing mode.
bool ON_BinaryArchive::WriteModelComponentAttributes | ( | const class ON_ModelComponent & | model_component, |
unsigned int | attributes_filter | ||
) |
Description: Writes the attributes identified by the component_filter parameter. Parameters: model_component - [in] attributes_filter - [in] A bitfield that determines which attributes will be written. Returns: false: critical failure. true: writing can continue.
bool ON_BinaryArchive::WriteModelComponentName | ( | const ON_ModelComponent & | model_component | ) |
bool ON_BinaryArchive::WriteObject | ( | const ON_Object & | ) |
writes object definition
bool ON_BinaryArchive::WriteObject | ( | const ON_Object * | ) |
writes object definition
bool ON_BinaryArchive::WriteObjectUserData | ( | const ON_Object & | object | ) |
Description: Low level tool to writes user data attached to the object. This function should never be called directly. Parameters: object - [in] Returns: True if successful.
bool ON_BinaryArchive::WritePlane | ( | const ON_Plane & | ) |
bool ON_BinaryArchive::WritePlaneEquation | ( | const ON_PlaneEquation & | ) |
bool ON_BinaryArchive::WritePoint | ( | const ON_2dPoint & | ) |
bool ON_BinaryArchive::WritePoint | ( | const ON_3dPoint & | ) |
bool ON_BinaryArchive::WritePoint | ( | const ON_4dPoint & | ) |
bool ON_BinaryArchive::WriteShort | ( | ON__INT16 | ) |
bool ON_BinaryArchive::WriteShort | ( | ON__UINT16 | ) |
bool ON_BinaryArchive::WriteShort | ( | size_t | , |
const ON__INT16 * | |||
) |
bool ON_BinaryArchive::WriteShort | ( | size_t | , |
const ON__UINT16 * | |||
) |
bool ON_BinaryArchive::WriteString | ( | const char * | sUTF8 | ) |
Parameters: sUTF8 - [in] A null terminated UTF-8 encoded unicode string. Remarks: To read a string written with WriteString(const char*), call ReadStringUTF8ElementCount(&string_utf8_element_count) to get the number of char elements written in the file, obtain a buffer with at least string_utf8_element_count char elements and then call ReadString(string_utf8_element_count,buffer) to read the char elements.
If 0 == sUTF8 or 0 == SUTF8[0], a 4 byte int with value = 0 is written, otherwise a 4 byte int with value = strlen + 1 is written, followed by the string, followed by the null terminator.
bool ON_BinaryArchive::WriteString | ( | const ON_String & | sUTF8 | ) |
bool ON_BinaryArchive::WriteString | ( | const ON_wString & | s | ) |
bool ON_BinaryArchive::WriteString | ( | const unsigned char * | sUTF8 | ) |
Parameters: sUTF8 - [in] A null terminated UTF-8 encoded unicode string. Remarks: To read a string written with WriteString(const unsigned char*), call ReadStringUTF8ElementCount(&string_utf8_element_count) to get the number of unsigned char elements written in the file, obtain a buffer with at least string_utf8_element_count unsigned char elements and then call ReadString(string_utf8_element_count,buffer) to read the unsigned charelements.
If 0 == sUTF8 or 0 == SUTF8[0], a 4 byte int with value = 0 is written, otherwise a 4 byte int with value = strlen + 1 is written, followed by the string, followed by the null terminator.
bool ON_BinaryArchive::WriteTime | ( | const struct tm & | ) |
All times are stored in universal coordinated time ( a.k.a GMT, UCT ). Use ANSI C time() and gmtime() calls.
bool ON_BinaryArchive::WriteUTF16String | ( | const unsigned short * | sUTF16 | ) |
Parameters: sUTF16 - [in] A null terminated UTF-16 encoded unicode string. Remarks: To read a string written with WriteString(const unsigned short*), call ReadStringUTF16ElementCount(&string_utf16_element_count) to get the number of unsigned short elements written in the file, obtain a buffer with at least string_utf16_element_count unsigned short elements and then call ReadString(string_utf16_element_count,buffer) to read the unsigned short elements.
If 0 == sUTF8 or 0 == SUTF8[0], a 4 byte int with value = 0 is written, otherwise a 4 byte int with value = strlen + 1 is written, followed by the string, followed by the null terminator.
bool ON_BinaryArchive::WriteUuid | ( | const ON_UUID & | ) |
bool ON_BinaryArchive::WriteVector | ( | const ON_2dVector & | ) |
bool ON_BinaryArchive::WriteVector | ( | const ON_3dVector & | ) |
bool ON_BinaryArchive::WriteWideString | ( | const ON_wString & | wide_string | ) |
Description: Write a wide string as a UTF-8 encoded string.
bool ON_BinaryArchive::WriteWideString | ( | const wchar_t * | sWideChar, |
int | sWideChar_count | ||
) |
Description: Write a wide string as a UTF-8 encoded string.
bool ON_BinaryArchive::WriteXform | ( | const ON_Xform & | ) |
|
friend |
When a 3DM archive is read, m_3dm_opennurbs_version records the version of OpenNURBS used to create the archive. Otherwise, m_3dm_opennurbs_version is zero.
Read3dmProperties() sets this to the version of OpenNURBS that was used to write file file. If the file was created using a version of OpenNURBS before 200012210, this number will be zero.
Write3dmProperties() stores the value returned by ON::Version() in the archive's properties table.
Used int ON_3dmProperties::Read() to set ON_BinaryArchive.m_3dm_opennurbs_version Do not call directly.