ON_Write3dmBufferArchive Class Reference

#include <opennurbs_archive.h>

Inheritance diagram for ON_Write3dmBufferArchive:
ON_BinaryArchive

Public Member Functions

 ON_Write3dmBufferArchive (size_t initial_sizeof_buffer, size_t max_sizeof_buffer, int archive_3dm_version, unsigned int archive_opennurbs_version)
 Construct an ON_BinaryArchive for writing information to a memory buffer. More...
 
 ~ON_Write3dmBufferArchive ()
 
bool AtEnd () const override
 ON_BinaryArchive overrides. More...
 
const void * Buffer () const
 
void * HarvestBuffer ()
 
size_t SizeOfArchive () const
 
size_t SizeOfBuffer () const
 
- Public Member Functions inherited from ON_BinaryArchive
 ON_BinaryArchive (ON::archive_mode)
 
virtual ~ON_BinaryArchive ()
 
ON_3dmArchiveTableType Active3dmTable () const
 
bool AddManifestMapItem (const class ON_ManifestMapItem &map_item)
 
const class ON_3dmPropertiesArchive3dmProperties () const
 
const class ON_3dmSettingsArchive3dmSettings () const
 
const ON_StringArchive3dmStartSectionComment () const
 
const ON_3dmArchiveTableStatus Archive3dmTableStatus (ON_3dmArchiveTableType table_type)
 
int Archive3dmVersion () const
 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, ...). More...
 
bool ArchiveContains3dmTable (ON_3dmArchiveTableType table) const
 As time passes, more tables have been added to 3dm archives. More...
 
const ON_DimStyleArchiveCurrentDimStyle () const
 
const ON_UUID ArchiveCurrentDimStyleId () const
 
const int ArchiveCurrentDimStyleIndex () const
 
const ON_wStringArchiveDirectoryName () const
 
const wchar_t * ArchiveDirectoryNameAsPointer () const
 
bool ArchiveFileMoved () const
 
const ON_wStringArchiveFileName () const
 
const wchar_t * ArchiveFileNameAsPointer () const
 
const ON_wStringArchiveFullPath () const
 
const wchar_t * ArchiveFullPathAsPointer () const
 
unsigned int ArchiveOpenNURBSVersion () const
 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. More...
 
ON::RuntimeEnvironment ArchiveRuntimeEnvironment () const
 
const ON_wStringArchiveSavedAsFullPath () const
 
const wchar_t * ArchiveSavedAsFullPathPointer () const
 
size_t ArchiveStartOffset () const
 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. More...
 
const ON_TextStyleArchiveTextStyleFromArchiveTextStyleIndex (int archive_text_style_index) const
 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. More...
 
unsigned int BadCRCCount () const
 
bool BeginRead3dmAnonymousChunk (int *version)
 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. More...
 
bool BeginRead3dmBigChunk (unsigned int *, ON__INT64 *)
 
bool BeginRead3dmBitmapTable ()
 
bool BeginRead3dmChunk (unsigned int expected_tcode, int *major_version, int *minor_version)
 Begins reading a chunk that must be in the archive at this location. More...
 
bool BeginRead3dmDimStyleTable ()
 
bool BeginRead3dmGroupTable ()
 
bool BeginRead3dmHatchPatternTable ()
 
bool BeginRead3dmHistoryRecordTable ()
 
bool BeginRead3dmInstanceDefinitionTable ()
 
bool BeginRead3dmLayerTable ()
 
bool BeginRead3dmLightTable ()
 
bool BeginRead3dmLinetypeTable ()
 
bool BeginRead3dmMaterialTable ()
 
bool BeginRead3dmObjectTable ()
 
bool BeginRead3dmTextureMappingTable ()
 
bool BeginRead3dmUserTable (ON_UUID &plugin_id, bool *bLastSavedAsGoo, int *archive_3dm_version, unsigned int *archive_opennurbs_version)
 
bool BeginReadDictionary (ON_UUID *dictionary_id, unsigned int *version, ON_wString &dictionary_name)
 
int BeginReadDictionaryEntry (int *de_type, ON_wString &entry_name)
 Begin reading a dictionary entry. More...
 
bool BeginWrite3dmAnonymousChunk (int version)
 If version >= 0, calls BeginWrite3dmChunk(TCODE_ANONYMOUS_CHUNK,1,version). More...
 
bool BeginWrite3dmBigChunk (ON__UINT32 typecode, ON__INT64 value)
 
bool BeginWrite3dmBitmapTable ()
 
bool BeginWrite3dmChunk (unsigned int, int)
 Writes a chunk header containing 4 byte typecode and value. More...
 
bool BeginWrite3dmChunk (unsigned int tcode, int major_version, int minor_version)
 Begins writing a chunk. More...
 
bool BeginWrite3dmDimStyleTable ()
 
bool BeginWrite3dmGroupTable ()
 
bool BeginWrite3dmHatchPatternTable ()
 
bool BeginWrite3dmHistoryRecordTable ()
 
bool BeginWrite3dmInstanceDefinitionTable ()
 
bool BeginWrite3dmLayerTable ()
 
bool BeginWrite3dmLightTable ()
 
bool BeginWrite3dmLinetypeTable ()
 
bool BeginWrite3dmMaterialTable ()
 
bool BeginWrite3dmObjectTable ()
 
bool BeginWrite3dmTextureMappingTable ()
 
bool BeginWrite3dmUserTable (ON_UUID plugin_id, bool bSavingGoo, int goo_3dm_version, unsigned int goo_opennurbs_version)
 Write the user table header information that must precede the user table information written by a plug-in. More...
 
bool BeginWrite3dmUserTable (const ON_UUID &)
 
bool BeginWriteDictionary (ON_UUID dictionary_id, unsigned int version, const wchar_t *dictionary_name)
 Begins writing a dictionary. More...
 
bool BeginWriteDictionaryEntry (int de_type, const wchar_t *entry_name)
 Begins writing a dictionary entry. More...
 
bool ChunkBoundaryCheck () const
 
void ClearModelSerialNumber ()
 Clear() information set by SetModelSerialNumber() do not modify ON_ModelComponent model serial number information when the classes are read. More...
 
unsigned int CriticalErrorCount () const
 
ON__UINT64 CurrentPosition () const
 
unsigned int Dump3dmChunk (ON_TextLog &text_log, int recursion_depth=0)
 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. More...
 
bool EnableCRCCalculation (bool bEnable)
 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. More...
 
void EnableSave3dmAnalysisMeshes (unsigned int object_type_flags, bool bSave3dmAnalysisMeshes)
 Specify which types of objects (ON_Brep, ON_Extrusion, ON_SubD, ...) save analysis meshes in the 3dm file. More...
 
void EnableSave3dmRenderMeshes (unsigned int object_type_flags, bool bSave3dmRenderMeshes)
 Specify which types of objects (ON_Brep, ON_Extrusion, ON_SubD, ...) save render meshes in the 3dm file. More...
 
ON::endian Endian () const
 
bool EndRead3dmBitmapTable ()
 
bool EndRead3dmChunk ()
 Calling this will skip rest of stuff in chunk if it was only partially read. More...
 
bool EndRead3dmChunk (bool bSupressPartiallyReadChunkWarning)
 
bool EndRead3dmDimStyleTable ()
 
bool EndRead3dmGroupTable ()
 
bool EndRead3dmHatchPatternTable ()
 
bool EndRead3dmHistoryRecordTable ()
 
bool EndRead3dmInstanceDefinitionTable ()
 
bool EndRead3dmLayerTable ()
 
bool EndRead3dmLightTable ()
 
bool EndRead3dmLinetypeTable ()
 
bool EndRead3dmMaterialTable ()
 
bool EndRead3dmObjectTable ()
 
bool EndRead3dmTextureMappingTable ()
 
bool EndRead3dmUserTable ()
 
bool EndReadDictionary ()
 
bool EndReadDictionaryEntry ()
 
bool EndWrite3dmBitmapTable ()
 
bool EndWrite3dmChunk ()
 updates length in chunk header More...
 
bool EndWrite3dmDimStyleTable ()
 
bool EndWrite3dmGroupTable ()
 
bool EndWrite3dmHatchPatternTable ()
 
bool EndWrite3dmHistoryRecordTable ()
 
bool EndWrite3dmInstanceDefinitionTable ()
 
bool EndWrite3dmLayerTable ()
 
bool EndWrite3dmLightTable ()
 
bool EndWrite3dmLinetypeTable ()
 
bool EndWrite3dmMaterialTable ()
 
bool EndWrite3dmObjectTable ()
 
bool EndWrite3dmTextureMappingTable ()
 
bool EndWrite3dmUserTable ()
 
bool EndWriteDictionary ()
 Begins writing a dictionary entry. More...
 
bool EndWriteDictionaryEntry ()
 
bool FindTableInDamagedArchive (unsigned int tcode_table, unsigned int tcode_record, ON_UUID class_uuid, int min_length_data)
 Expert user function for reading damaged files. The search starts at the beginning of the file. More...
 
ON_3dmArchiveTableType FirstFailed3dmTable () const
 
int GetCurrentChunk (ON_3DM_CHUNK &chunk) const
 Expert user function for reading damaged files. More...
 
int GetCurrentChunk (ON_3DM_BIG_CHUNK &big_chunk) const
 
unsigned int InstanceDefinitionModelSerialNumber () const
 
bool Internal_Read3dmDimStyleOverrides (class ON_Annotation &annotation, bool bFromDimStyleTable)
 
bool Internal_Write3dmDimStyleOverrides (const class ON_Annotation &annotation, const class ON_DimStyle *dim_style_overrides)
 
virtual int LoadUserDataApplication (ON_UUID application_id)
 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. More...
 
const class ON_ComponentManifestManifest () const
 
const class ON_ManifestMapManifestMap () const
 
ON::archive_mode Mode () const
 
unsigned int ModelSerialNumber () const
 
bool ObjectHasUserDataToWrite (const class ON_Object *object) const
 Determine if an object has user data that should be written. More...
 
 ON_DEPRECATED_MSG ("Use either ReadStringUTF8ElementCount() or ReadStringUTF16ElementCount()") bool ReadStringSize(size_t *str_array_count)
 
bool PeekAt3dmBigChunkType (ON__UINT32 *typecode, ON__INT64 *big_value)
 
bool PeekAt3dmChunkType (unsigned int *, int *)
 
ON_3dmArchiveTableType Previous3dmTable () const
 
bool Read3dmAnonymousUserTable (int archive_3dm_version, unsigned int archive_opennurbs_version, ON_3dmGoo &goo)
 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. More...
 
int Read3dmBitmap (class ON_Bitmap **)
 
bool Read3dmChunkVersion (int *, int *)
 
int Read3dmDimStyle (class ON_DimStyle **ppDimStyle)
 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. More...
 
bool Read3dmEndMark (size_t *)
 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 loosing sections. More...
 
bool Read3dmGoo (ON_3dmGoo &)
 
int Read3dmGroup (class ON_Group **)
 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. More...
 
int Read3dmHatchPattern (class ON_HatchPattern **)
 
int Read3dmHistoryRecord (class ON_HistoryRecord *&)
 
int Read3dmInstanceDefinition (class ON_InstanceDefinition **)
 Reads instance definitions from instance defintion table. More...
 
int Read3dmLayer (ON_Layer **)
 
int Read3dmLight (class ON_Light **light, class ON_3dmObjectAttributes *attributes)
 
int Read3dmLinetype (class ON_Linetype **)
 
int Read3dmMaterial (class ON_Material **)
 
int Read3dmModelGeometry (class ON_ModelGeometryComponent **model_geometry, unsigned int object_filter=0)
 
int Read3dmModelGeometryForExperts (bool bManageGeometry, bool bManageAttributes, class ON_ModelGeometryComponent **model_geometry, unsigned int object_filter)
 
int Read3dmModelLight (class ON_ModelGeometryComponent **model_light)
 
int Read3dmObject (ON_Object **model_object, ON_3dmObjectAttributes *attributes, unsigned int object_filter=0)
 
bool Read3dmProperties (class ON_3dmProperties &)
 
bool Read3dmReferencedComponentId (ON_ModelComponent::Type component_type, ON_UUID *component_id)
 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 arcive to values in the model. uses to adjust and write a model component Id. More...
 
bool Read3dmReferencedComponentIndex (ON_ModelComponent::Type component_type, int *component_index)
 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. More...
 
bool Read3dmReferencedComponentIndexArray (ON_ModelComponent::Type component_type, ON_SimpleArray< int > &component_index_array)
 
bool Read3dmSettings (class ON_3dmSettings &)
 
bool Read3dmStartSection (int *version, ON_String &sStartSectionComment)
 
int Read3dmTextureMapping (class ON_TextureMapping **)
 
bool ReadArc (ON_Arc &)
 
bool ReadArray (ON_SimpleArray< bool > &)
 
bool ReadArray (ON_SimpleArray< char > &)
 
bool ReadArray (ON_SimpleArray< short > &)
 
bool ReadArray (ON_SimpleArray< int > &)
 
bool ReadArray (ON_SimpleArray< float > &)
 
bool ReadArray (ON_SimpleArray< double > &)
 
bool ReadArray (ON_SimpleArray< ON_Color > &)
 
bool ReadArray (ON_SimpleArray< ON_2dPoint > &)
 
bool ReadArray (ON_SimpleArray< ON_3dPoint > &)
 
bool ReadArray (ON_SimpleArray< ON_4dPoint > &)
 
bool ReadArray (ON_SimpleArray< ON_2dVector > &)
 
bool ReadArray (ON_SimpleArray< ON_3dVector > &)
 
bool ReadArray (ON_SimpleArray< ON_Xform > &)
 
bool ReadArray (ON_SimpleArray< ON_2fPoint > &)
 
bool ReadArray (ON_SimpleArray< ON_3fPoint > &)
 
bool ReadArray (ON_SimpleArray< ON_4fPoint > &)
 
bool ReadArray (ON_SimpleArray< ON_2fVector > &)
 
bool ReadArray (ON_SimpleArray< ON_3fVector > &)
 
bool ReadArray (ON_SimpleArray< ON_UUID > &)
 
bool ReadArray (ON_SimpleArray< ON_UuidIndex > &)
 
bool ReadArray (ON_SimpleArray< ON_UuidPtr > &)
 
bool ReadArray (ON_SimpleArray< ON_SurfaceCurvature > &)
 
bool ReadArray (ON_ClassArray< ON_String > &)
 
bool ReadArray (ON_ClassArray< ON_wString > &)
 
bool ReadArray (ON_SimpleArray< ON_DisplayMaterialRef > &)
 
bool ReadArray (ON_SimpleArray< ON_LinetypeSegment > &)
 
bool ReadArray (ON_SimpleArray< ON_MappingChannel > &)
 
bool ReadArray (ON_ClassArray< ON_MaterialRef > &)
 
bool ReadArray (ON_ClassArray< ON_MappingRef > &)
 
bool ReadArray (ON_ClassArray< class ON_ObjRef > &)
 
bool ReadArray (ON_SimpleArray< class ON_ObjRef_IRefID > &)
 
bool ReadArray (ON_SimpleArray< class ON_ClippingPlaneInfo > &)
 
bool ReadArray (ON_ObjectArray< class ON_Layer > &)
 
bool ReadArray (ON_SimpleArray< class ON_Layer *> &)
 
bool ReadBigInt (size_t, ON__INT64 *)
 
bool ReadBigInt (size_t, ON__UINT64 *)
 
bool ReadBigInt (ON__INT64 *)
 
bool ReadBigInt (ON__UINT64 *)
 
bool ReadBigSize (size_t *)
 
bool ReadBigTime (time_t *)
 
bool ReadBool (bool *)
 
bool ReadBoundingBox (ON_BoundingBox &)
 
ON__UINT64 ReadBuffer (ON__UINT64 sizeof_buffer, void *buffer)
 Expert user function that uses Read() to load a buffer. Paramters: sizeof_buffer - [in] number of bytes to attempt to read. buffer - [out] read bytes are stored in this buffer More...
 
bool ReadByte (size_t, void *)
 
bool ReadChar (size_t, char *)
 
bool ReadChar (size_t, unsigned char *)
 
bool ReadChar (char *)
 
bool ReadChar (unsigned char *)
 
bool ReadCircle (ON_Circle &)
 
bool ReadColor (ON_Color &)
 
bool ReadComponentIndex (ON_COMPONENT_INDEX &)
 
bool ReadCompressedBuffer (size_t sizeof__outbuffer, void *outbuffer, bool *bFailedCRC)
 Read compressed information from an archive and uncompress it. More...
 
bool ReadCompressedBufferSize (size_t *sizeof__outbuffer)
 Red the size of a compressed buffer. More...
 
bool ReadDisplayMaterialRef (ON_DisplayMaterialRef &)
 
bool ReadDouble (size_t, double *)
 
bool ReadDouble (double *)
 
bool ReadFloat (size_t, float *)
 
bool ReadFloat (float *)
 
bool ReadInt (size_t, int *)
 
bool ReadInt (size_t, unsigned int *)
 
bool ReadInt (int *)
 
bool ReadInt (unsigned int *)
 
bool ReadInterval (ON_Interval &)
 
bool ReadLine (ON_Line &)
 
bool ReadLinetypeSegment (ON_LinetypeSegment &)
 
bool ReadLong (size_t, long *)
 
bool ReadLong (size_t, unsigned long *)
 
bool ReadLong (long *)
 
bool ReadLong (unsigned long *)
 
bool ReadMode () const
 
bool ReadModelComponentAttributes (ON_ModelComponent &model_component, unsigned int *attributes_filter)
 Reads the attributes the Write() function writes. More...
 
int ReadObject (ON_Object **ppObject)
 Reads and object from a 3dm archive; More...
 
int ReadObject (ON_Object &object)
 Reads and object from a 3dm archive. More...
 
bool ReadObjectUserData (ON_Object &object)
 Low level tool to read user data and attach it to the object. This function should never be called directly. More...
 
bool ReadPlane (ON_Plane &)
 
bool ReadPlaneEquation (ON_PlaneEquation &)
 
bool ReadPoint (ON_2dPoint &)
 
bool ReadPoint (ON_3dPoint &)
 
bool ReadPoint (ON_4dPoint &)
 
bool ReadShort (size_t, short *)
 
bool ReadShort (size_t, unsigned short *)
 
bool ReadShort (short *)
 
bool ReadShort (unsigned short *)
 
bool ReadSize (size_t *)
 
bool ReadString (size_t str_array_count, char *str_array)
 
bool ReadString (size_t str_array_count, unsigned char *str_array)
 
bool ReadString (size_t str_array_count, unsigned short *str_array)
 
bool ReadString (ON_String &sUTF8)
 
bool ReadString (ON_wString &s)
 
bool ReadStringUTF16ElementCount (size_t *string_utf16_element_count)
 
bool ReadStringUTF8ElementCount (size_t *string_utf8_element_count)
 
bool ReadTime (struct tm &)
 
bool ReadUuid (ON_UUID &)
 
bool ReadV1_TCODE_ANNOTATION (unsigned int, ON_Object **, ON_3dmObjectAttributes *)
 
bool ReadV1_TCODE_LEGACY_CRV (ON_Object **, ON_3dmObjectAttributes *)
 
bool ReadV1_TCODE_LEGACY_FAC (ON_Object **, ON_3dmObjectAttributes *)
 
bool ReadV1_TCODE_LEGACY_SHL (ON_Object **, ON_3dmObjectAttributes *)
 
bool ReadV1_TCODE_MESH_OBJECT (ON_Object **, ON_3dmObjectAttributes *)
 
bool ReadV1_TCODE_RH_POINT (ON_Object **, ON_3dmObjectAttributes *)
 helpers for reading V1 objects More...
 
bool ReadV1_TCODE_RHINOIO_OBJECT_BREP (ON_Object **, ON_3dmObjectAttributes *)
 
bool ReadV1_TCODE_RHINOIO_OBJECT_NURBS_CURVE (ON_Object **, ON_3dmObjectAttributes *)
 
bool ReadV1_TCODE_RHINOIO_OBJECT_NURBS_SURFACE (ON_Object **, ON_3dmObjectAttributes *)
 
bool ReadVector (ON_2dVector &)
 
bool ReadVector (ON_3dVector &)
 
bool ReadWideString (ON_wString &wide_string)
 Read a wide string written with the WriteWideString() function. More...
 
bool ReadXform (ON_Xform &)
 
bool ReferencedComponentIdMapping () const
 
bool ReferencedComponentIndexMapping () const
 
unsigned int ReferenceModelSerialNumber () const
 
bool Save3dmAnalysisMesh (ON::object_type object_type) const
 
unsigned int Save3dmAnalysisMeshObjectTypeFlags () const
 Specify which types of objects (ON_Brep, ON_Extrusion, ON_SubD, ...) save analysis meshes in the 3dm file. More...
 
bool Save3dmPreviewImage () const
 
bool Save3dmRenderMesh (ON::object_type object_type) const
 
unsigned int Save3dmRenderMeshObjectTypeFlags () const
 Specify which types of objects (ON_Brep, ON_Extrusion, ON_SubD, ...) save render meshes in the 3dm file. More...
 
bool Seek3dmChunkFromCurrentPosition (unsigned int)
 
bool Seek3dmChunkFromStart (unsigned int)
 
bool SeekBackward (ON__UINT64 bytes_backward)
 Reduce the archive's current position by bytes_backward from the current position. More...
 
bool SeekForward (ON__UINT64 bytes_forward)
 Increase the archive's current position to bytes_forward from the current position. More...
 
bool SeekFromStart (ON__UINT64 bytes_from_start)
 Set current position to bytes_from_start many bytes from the start of the archive. More...
 
bool SetArchive3dmVersion (int)
 
void SetArchiveFullPath (const wchar_t *archive_full_path)
 
void SetArchiveFullPath (const wchar_t *archive_directory_name, const wchar_t *archive_file_name)
 
void SetChunkBoundaryCheck (bool bChunkBoundaryCheck)
 
void SetModelSerialNumber (unsigned int model_serial_number, unsigned int reference_model_serial_number, unsigned int instance_definition_model_serial_number)
 Specify model serial number attributes to assign to ON_ModelComponent classes when they are read. More...
 
void SetReferencedComponentIdMapping (bool bEnableReferenceComponentIdMapping)
 Set the archive's ReferencedComponentIdMapping() state. More...
 
void SetReferencedComponentIndexMapping (bool bEnableReferenceComponentIndexMapping)
 Set the archive's ReferencedComponentIndexMapping() state. More...
 
void SetSave3dmPreviewImage (bool bSave3dmPreviewImage)
 
bool SetShouldSerializeUserDataDefault (bool bSerialize)
 Specify the serialization option for object user data and user tables that are not explicity set by SetShouldSerializeUserDataItem(). More...
 
bool SetShouldSerializeUserDataItem (ON_UUID application_id, ON_UUID item_id, bool bSerializeUserDataItem)
 Specify if an application's (plug-in's) object user data or user table should be read or written. More...
 
void SetStorageDeviceError (ON_BinaryArchive::eStorageDeviceError storage_device_error)
 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 More...
 
void SetStorageDeviceError (unsigned int storage_device_error)
 
void SetUseBufferCompression (bool bUseBufferCompression)
 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. More...
 
bool ShouldSerializeAllUserData () const
 
bool ShouldSerializeNoUserData () const
 
bool ShouldSerializeSomeUserData () const
 
bool ShouldSerializeUserDataDefault () const
 
bool ShouldSerializeUserDataItem (ON_UUID application_id, ON_UUID item_id) const
 Determine if an application's (plug-in's) object user data or user table should be read or written. More...
 
bool ShouldWriteUserDataItem (const class ON_Object *object, const class ON_UserData *object_user_data) const
 
size_t SizeofChunkLength () const
 
unsigned int StorageDeviceError () const
 An error terminated reading or writing More...
 
bool UnsetMode () const
 
bool UpdateManifestMapItemDestination (const class ON_ManifestMapItem &map_item)
 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. More...
 
bool UseBufferCompression () const
 
bool Write3dmAnonymousUserTable (const class ON_3dmGoo &)
 
bool Write3dmAnonymousUserTableRecord (ON_UUID plugin_id, int goo_3dm_version, unsigned int goo_opennurbs_version, const class ON_3dmGoo &goo)
 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(). More...
 
bool Write3dmBitmap (const class ON_Bitmap &)
 
bool Write3dmChunkVersion (int, int)
 
bool Write3dmDimStyle (const class ON_DimStyle &)
 
bool Write3dmDimStyleComponent (const class ON_ModelComponentReference &model_component_reference)
 
bool Write3dmDimStyleComponent (const class ON_ModelComponent *model_component)
 
bool Write3dmEndMark ()
 Writes a TCODE_ENDOFFILE chunk that contains the number of bytes in the archive. More...
 
bool Write3dmGoo (const ON_3dmGoo &)
 
bool Write3dmGroup (const class ON_Group &)
 
bool Write3dmGroupComponent (const class ON_ModelComponentReference &model_component_reference)
 
bool Write3dmGroupComponent (const class ON_ModelComponent *model_component)
 
bool Write3dmHatchPattern (const class ON_HatchPattern &)
 
bool Write3dmHatchPatternComponent (const class ON_ModelComponentReference &model_component_reference)
 
bool Write3dmHatchPatternComponent (const class ON_ModelComponent *model_component)
 
bool Write3dmHistoryRecord (const class ON_HistoryRecord &)
 
bool Write3dmHistoryRecordComponent (const class ON_ModelComponentReference &model_component_reference)
 
bool Write3dmHistoryRecordComponent (const class ON_ModelComponent *model_component)
 
bool Write3dmImageComponent (const class ON_ModelComponentReference &model_component_reference)
 
bool Write3dmImageComponent (const class ON_ModelComponent *model_component)
 
bool Write3dmInstanceDefinition (const class ON_InstanceDefinition &)
 
bool Write3dmInstanceDefinitionComponent (const class ON_ModelComponentReference &model_component_reference)
 
bool Write3dmInstanceDefinitionComponent (const class ON_ModelComponent *model_component)
 
bool Write3dmLayer (const ON_Layer &)
 
bool Write3dmLayerComponent (const class ON_ModelComponentReference &model_component_reference)
 
bool Write3dmLayerComponent (const class ON_ModelComponent *model_component)
 
bool Write3dmLight (const class ON_Light &, const class ON_3dmObjectAttributes *)
 
bool Write3dmLinePatternComponent (const class ON_ModelComponentReference &model_component_reference)
 
bool Write3dmLinePatternComponent (const class ON_ModelComponent *model_component)
 
bool Write3dmLinetype (const class ON_Linetype &line_pattern)
 
bool Write3dmMaterial (const class ON_Material &)
 
bool Write3dmMaterialComponent (const class ON_ModelComponentReference &model_component_reference)
 
bool Write3dmMaterialComponent (const class ON_ModelComponent *model_component)
 
bool Write3dmModelGeometryComponent (const class ON_ModelComponentReference &model_component_reference)
 
bool Write3dmModelGeometryComponent (const class ON_ModelGeometryComponent *model_geometry)
 
bool Write3dmModelLightComponent (const class ON_ModelComponentReference &model_component_reference)
 
bool Write3dmModelLightComponent (const class ON_ModelGeometryComponent *model_light)
 
bool Write3dmObject (const ON_Object &, const ON_3dmObjectAttributes *)
 
bool Write3dmProperties (const class ON_3dmProperties &)
 
bool Write3dmReferencedComponentId (ON_ModelComponent::Type component_type, ON_UUID model_component_id)
 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. More...
 
bool Write3dmReferencedComponentId (const ON_ModelComponent &model_component)
 
bool Write3dmReferencedComponentIndex (ON_ModelComponent::Type component_type, int model_component_index)
 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. More...
 
bool Write3dmReferencedComponentIndex (ON_ModelComponent::Type component_type, ON_UUID model_component_id)
 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. More...
 
bool Write3dmReferencedComponentIndex (const ON_ModelComponent &model_component)
 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. More...
 
bool Write3dmSettings (const class ON_3dmSettings &)
 
bool Write3dmStartSection (int version, const char *sStartSectionComment)
 
bool Write3dmTextureMapping (const class ON_TextureMapping &)
 
bool Write3dmTextureMappingComponent (const class ON_ModelComponentReference &model_component_reference)
 
bool Write3dmTextureMappingComponent (const class ON_ModelComponent *model_component)
 
bool WriteArc (const ON_Arc &)
 
bool WriteArray (const ON_SimpleArray< bool > &)
 
bool WriteArray (const ON_SimpleArray< char > &)
 
bool WriteArray (const ON_SimpleArray< short > &)
 
bool WriteArray (const ON_SimpleArray< int > &)
 
bool WriteArray (const ON_SimpleArray< float > &)
 
bool WriteArray (const ON_SimpleArray< double > &)
 
bool WriteArray (const ON_SimpleArray< ON_Color > &)
 
bool WriteArray (const ON_SimpleArray< ON_2dPoint > &)
 
bool WriteArray (const ON_SimpleArray< ON_3dPoint > &)
 
bool WriteArray (const ON_SimpleArray< ON_4dPoint > &)
 
bool WriteArray (const ON_SimpleArray< ON_2dVector > &)
 
bool WriteArray (const ON_SimpleArray< ON_3dVector > &)
 
bool WriteArray (const ON_SimpleArray< ON_2fPoint > &)
 
bool WriteArray (const ON_SimpleArray< ON_3fPoint > &)
 
bool WriteArray (const ON_SimpleArray< ON_4fPoint > &)
 
bool WriteArray (const ON_SimpleArray< ON_2fVector > &)
 
bool WriteArray (const ON_SimpleArray< ON_3fVector > &)
 
bool WriteArray (const ON_SimpleArray< ON_Xform > &)
 
bool WriteArray (const ON_SimpleArray< ON_UUID > &)
 
bool WriteArray (const ON_SimpleArray< ON_UuidIndex > &)
 
bool WriteArray (const ON_SimpleArray< ON_UuidPtr > &)
 
bool WriteArray (const ON_SimpleArray< ON_SurfaceCurvature > &)
 
bool WriteArray (const ON_ClassArray< ON_String > &)
 
bool WriteArray (const ON_ClassArray< ON_wString > &)
 
bool WriteArray (const ON_SimpleArray< ON_DisplayMaterialRef > &)
 
bool WriteArray (const ON_SimpleArray< ON_LinetypeSegment > &)
 
bool WriteArray (const ON_SimpleArray< ON_MappingChannel > &)
 
bool WriteArray (const ON_ClassArray< ON_MaterialRef > &)
 
bool WriteArray (const ON_ClassArray< ON_MappingRef > &)
 
bool WriteArray (const ON_ClassArray< class ON_ObjRef > &)
 
bool WriteArray (const ON_SimpleArray< class ON_ObjRef_IRefID > &)
 
bool WriteArray (const ON_SimpleArray< class ON_ClippingPlaneInfo > &)
 
bool WriteArray (int count, const class ON_Layer *)
 
bool WriteArray (int count, const class ON_Layer *const *)
 
bool WriteBigInt (size_t, const ON__INT64 *)
 
bool WriteBigInt (size_t, const ON__UINT64 *)
 
bool WriteBigInt (ON__INT64)
 
bool WriteBigInt (ON__UINT64)
 
bool WriteBigSize (size_t)
 
bool WriteBigTime (time_t)
 
bool WriteBool (bool)
 
bool WriteBoolFalse ()
 
bool WriteBoolTrue ()
 
bool WriteBoundingBox (const ON_BoundingBox &)
 
bool WriteByte (size_t, const void *)
 
bool WriteChar (size_t, const char *)
 
bool WriteChar (size_t, const unsigned char *)
 
bool WriteChar (char)
 
bool WriteChar (unsigned char)
 
bool WriteCircle (const ON_Circle &)
 
bool WriteColor (const ON_Color &)
 
bool WriteComponentIndex (const ON_COMPONENT_INDEX &)
 
bool WriteCompressedBuffer (size_t sizeof__inbuffer, const void *inbuffer)
 Compress buffer and write the compressed information to the archive. More...
 
bool WriteDisplayMaterialRef (const ON_DisplayMaterialRef &)
 
bool WriteDouble (size_t, const double *)
 
bool WriteDouble (double)
 
bool WriteFloat (size_t, const float *)
 
bool WriteFloat (float)
 
bool WriteInt (size_t, const int *)
 
bool WriteInt (size_t, const unsigned int *)
 
bool WriteInt (int)
 
bool WriteInt (unsigned int)
 
bool WriteInterval (const ON_Interval &)
 
bool WriteLine (const ON_Line &)
 
bool WriteLinetypeSegment (const ON_LinetypeSegment &)
 
bool WriteLong (size_t, const long *)
 
bool WriteLong (size_t, const unsigned long *)
 
bool WriteLong (long)
 
bool WriteLong (unsigned long)
 
bool WriteMode () const
 
bool WriteModelComponentAttributes (const class ON_ModelComponent &model_component, unsigned int attributes_filter)
 Writes the attributes identified by the component_filter parameter. More...
 
bool WriteModelComponentName (const ON_ModelComponent &model_component)
 
bool WriteObject (const ON_Object *)
 
bool WriteObject (const ON_Object &)
 
bool WriteObjectUserData (const ON_Object &object)
 Low level tool to writes user data attached to the object. This function should never be called directly. More...
 
bool WritePlane (const ON_Plane &)
 
bool WritePlaneEquation (const ON_PlaneEquation &)
 
bool WritePoint (const ON_2dPoint &)
 
bool WritePoint (const ON_3dPoint &)
 
bool WritePoint (const ON_4dPoint &)
 
bool WriteShort (size_t, const short *)
 
bool WriteShort (size_t, const unsigned short *)
 
bool WriteShort (short)
 
bool WriteShort (unsigned short)
 
bool WriteSize (size_t)
 
bool WriteString (const char *sUTF8)
 
bool WriteString (const unsigned char *sUTF8)
 
bool WriteString (const ON_String &sUTF8)
 
bool WriteString (const ON_wString &s)
 
bool WriteTime (const struct tm &)
 
bool WriteUTF16String (const unsigned short *sUTF16)
 
bool WriteUuid (const ON_UUID &)
 
bool WriteVector (const ON_2dVector &)
 
bool WriteVector (const ON_3dVector &)
 
bool WriteWideString (const wchar_t *sWideChar, int sWideChar_count)
 Write a wide string as a UTF-8 encoded string. More...
 
bool WriteWideString (const ON_wString &wide_string)
 Write a wide string as a UTF-8 encoded string. More...
 
bool WriteXform (const ON_Xform &)
 

Protected Member Functions

bool Flush () override
 Force Write() to flush any buffered data to physical archive. More...
 
ON__UINT64 Internal_CurrentPositionOverride () const override
 ON_BinaryArchive overrides. More...
 
size_t Internal_ReadOverride (size_t, void *) override
 ON_BinaryArchive overrides. More...
 
bool Internal_SeekFromCurrentPositionOverride (int byte_offset) override
 
bool Internal_SeekToStartOverride () override
 
size_t Internal_WriteOverride (size_t, const void *) override
 
- Protected Member Functions inherited from ON_BinaryArchive
unsigned int ErrorMessageMask () const
 
bool MaskReadError (ON__UINT64 sizeof_request, ON__UINT64 sizeof_read) const
 

Additional Inherited Members

- Public Types inherited from ON_BinaryArchive
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 inherited from ON_BinaryArchive
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)
 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. More...
 
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 *)
 Tool for swapping bytes when doing I/O on using big endian CPUs. More...
 
static const char * TypecodeName (unsigned int tcode)
 

Constructor & Destructor Documentation

◆ ON_Write3dmBufferArchive()

ON_Write3dmBufferArchive::ON_Write3dmBufferArchive ( size_t  initial_sizeof_buffer,
size_t  max_sizeof_buffer,
int  archive_3dm_version,
unsigned int  archive_opennurbs_version 
)

Construct an ON_BinaryArchive for writing information to a memory buffer.

Parameters
initial_sizeof_buffer[in] initial size of buffer in bytes (>=0) If you are unable to estimate the size you will need, pass in zero.
max_sizeof_buffer[in] maximum size of buffer in bytes (>=0) If max_sizeof_buffer > 0 and the amount of information saved requires a buffer larger than this size, then writing fails. If max_sizeof_buffer <= 0, then no buffer size limits are enforced.
archive_3dm_versionin Pass 0 or ON_BinaryArchive::CurrentArchiveVersion() to write the version of opennurbs archives used by lastest version of Rhino.
archive_opennurbs_version[in]

◆ ~ON_Write3dmBufferArchive()

ON_Write3dmBufferArchive::~ON_Write3dmBufferArchive ( )

Member Function Documentation

◆ AtEnd()

bool ON_Write3dmBufferArchive::AtEnd ( ) const
overridevirtual

ON_BinaryArchive overrides.

Implements ON_BinaryArchive.

◆ Buffer()

const void* ON_Write3dmBufferArchive::Buffer ( ) const
Returns

value of m_buffer. SizeOfArchive() reports the number of bytes written to this buffer. SizeOfBuffer() reports the number of bytes allocated in this buffer.

◆ Flush()

bool ON_Write3dmBufferArchive::Flush ( )
overrideprotectedvirtual

Force Write() to flush any buffered data to physical archive.

Returns
True if succesful or if there is nothing to flush. False if information could not be flushed.

Implements ON_BinaryArchive.

◆ HarvestBuffer()

void* ON_Write3dmBufferArchive::HarvestBuffer ( )
Returns
The pointer to the buffer and sets all members on this archive back to zero. The caller is responsible for calling onfree() on the pointer when finished with the buffer.

◆ Internal_CurrentPositionOverride()

ON__UINT64 ON_Write3dmBufferArchive::Internal_CurrentPositionOverride ( ) const
overrideprotectedvirtual

ON_BinaryArchive overrides.

Implements ON_BinaryArchive.

◆ Internal_ReadOverride()

size_t ON_Write3dmBufferArchive::Internal_ReadOverride ( size_t  ,
void *   
)
overrideprotectedvirtual

ON_BinaryArchive overrides.

Implements ON_BinaryArchive.

◆ Internal_SeekFromCurrentPositionOverride()

bool ON_Write3dmBufferArchive::Internal_SeekFromCurrentPositionOverride ( int  byte_offset)
overrideprotectedvirtual

Implements ON_BinaryArchive.

◆ Internal_SeekToStartOverride()

bool ON_Write3dmBufferArchive::Internal_SeekToStartOverride ( )
overrideprotectedvirtual

Implements ON_BinaryArchive.

◆ Internal_WriteOverride()

size_t ON_Write3dmBufferArchive::Internal_WriteOverride ( size_t  ,
const void *   
)
overrideprotectedvirtual

Implements ON_BinaryArchive.

◆ SizeOfArchive()

size_t ON_Write3dmBufferArchive::SizeOfArchive ( ) const
Returns
Size of the archive in bytes.

◆ SizeOfBuffer()

size_t ON_Write3dmBufferArchive::SizeOfBuffer ( ) const
Returns
value of m_sizeof_buffer