Pure virtual base class for all classes that must provide runtime class id or support object level 3DM serialization More...
#include <opennurbs_object.h>
Public Types | |
enum | UserDataConflictResolution : unsigned char { UserDataConflictResolution::destination_object = 0, UserDataConflictResolution::source_object = 1, UserDataConflictResolution::source_copycount_gt = 2, UserDataConflictResolution::source_copycount_ge = 3, UserDataConflictResolution::destination_copycount_gt = 4, UserDataConflictResolution::destination_copycount_ge = 5, UserDataConflictResolution::delete_item = 6 } |
When a userdata item is copied or moved from a source object to a destination object, the ON_Object::UserDataConflictResolution enum values specify how conficts are resolved. Remark: A userdata item "conflict" occurs when both the destination and source object have a user data item with the same value of ON_UserData::m_userdata_uuid. More... | |
Public Member Functions | |
ON_Object () ON_NOEXCEPT | |
ON_Object (const ON_Object &) | |
virtual | ~ON_Object () |
virtual ON_AggregateComponentStatus | AggregateComponentStatus () const |
Call whenever a component status setting is modifed by directly changing it on a component in a way that will result in any saved information about the parent object's aggretate component status becoming invalid. More... | |
bool | AttachUserData (class ON_UserData *pUserData) |
Attach user data to an object. More... | |
unsigned int | ClearAllComponentStates () const |
Set all active level component states to ON_ComponentStatus::NoneSet. More... | |
virtual unsigned int | ClearComponentStates (ON_ComponentStatus states_to_clear) const |
Clear the specified states on every component. More... | |
virtual unsigned int | ClearComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_clear) const |
Clear states on an individual component. More... | |
unsigned int | CopyUserData (const ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution) |
Expert user tool that copies user data items with positive values of ON_UserData.m_userdata_copycount from source_object to "this. More... | |
void | CopyUserData (const ON_Object &source_object) |
Calls CopyUserData(source_object,ON_Object::UserDataConflictResolution::source_object). More... | |
virtual ON__UINT32 | DataCRC (ON__UINT32 current_remainder) const |
Returns a CRC calculated from the information that defines the object. This CRC can be used as a quick way to see if two objects are not identical. More... | |
virtual bool | DeleteComponents (const ON_COMPONENT_INDEX *ci_list, size_t ci_count) |
Delete the portions of the object identified in ci_list[]. More... | |
virtual void | DestroyRuntimeCache (bool bDelete=true) |
Expert user function. If you are using openNURBS in its default configuration to read and write 3dm archives, you never need to call this function. Many objects employ lazy creation of (runtime) caches that save information to help speed geometric calculations. This function will destroy all runtime information. More... | |
bool | DetachUserData (class ON_UserData *pUserData) |
Remove user data from an object. More... | |
virtual void | Dump (ON_TextLog &) const |
Creates a text dump of the object. More... | |
void | EmergencyDestroy () |
Sets m_user_data_list = 0. More... | |
class ON_UserData * | FirstUserData () const |
User data is stored as a linked list of ON_UserData classes. FirstUserData gets the first item in the linked list. This is the most recent item attached using AttachUserData(). Remark: To iterate through all the user data on an object, call FirstUserData() and then use ON_UserData::Next() to traverse the list. More... | |
virtual unsigned int | GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_COMPONENT_INDEX > &components) const |
class ON_UserData * | GetUserData (const ON_UUID &userdata_uuid) const |
Get a pointer to user data. More... | |
bool | GetUserString (const wchar_t *key, ON_wString &string_value) const |
Get user string from the object. More... | |
int | GetUserStringKeys (ON_ClassArray< ON_wString > &user_string_keys) const |
Get a list of all user string keys on the object. More... | |
int | GetUserStrings (ON_ClassArray< ON_UserString > &user_strings) const |
Get a list of all user strings on the object. More... | |
bool | IsKindOf (const ON_ClassId *pClassId) const |
Low level tool to test if an object is derived from a specified class. More... | |
virtual bool | IsValid (class ON_TextLog *text_log=nullptr) const |
Tests an object to see if its data members are correctly initialized. More... | |
virtual void | MarkAggregateComponentStatusAsNotCurrent () const |
Call whenever a component status setting is modifed by directly changing it on a component in a way that will result in any saved information about the parent object's aggretate component status becoming invalid. More... | |
virtual void | MemoryRelocate () |
The MemoryRelocate() function is called when an object's location in memory is changed. For example, if an object resides in a chunk of memory that is grown by calling a realloc that has to allocate a new chunk and copy the contents of the old chunk to the new chunk, then the location of the object's memory changes. In practice this happens when classes derived from ON_Object are stored in dynamic arrays, like the default implementation of ON_ObjectArray<>'s that use realloc to grow the dynamic array. More... | |
virtual ON_UUID | ModelObjectId () const |
All objects in an opennurbs model have an id ( ON_Layer.m_layer_id, ON_Font.m_font_id, ON_Material.m_material_id, ON_3dmObjectAttributes.m_uuid ). More... | |
unsigned int | MoveUserData (ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution, bool bDeleteAllSourceItems) |
Expert user tool that moves user data items from source_object to "this. More... | |
void | MoveUserData (ON_Object &source_object) |
Calls MoveUserData(source_object,ON_Object::UserDataConflictResolution::source_object,true). More... | |
virtual ON::object_type | ObjectType () const |
Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on. More... | |
ON_Object & | operator= (const ON_Object &) |
void | PurgeUserData () |
PurgeUserData() removes all user data from object. More... | |
virtual bool | Read (ON_BinaryArchive &binary_archive) |
Low level archive writing tool used by ON_BinaryArchive::ReadObject(). More... | |
virtual unsigned int | SetComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_set) const |
Set states on an individual component. More... | |
virtual unsigned int | SetComponentStatus (ON_COMPONENT_INDEX component_index, ON_ComponentStatus status_to_copy) const |
Copy status settings to an individual component. More... | |
bool | SetUserString (const wchar_t *key, const wchar_t *string_value) |
Attach a user string to the object. This information will perisist through copy construction, operator=, and file IO. More... | |
int | SetUserStrings (int count, const ON_UserString *user_strings, bool bReplace) |
Append entries to the user string list More... | |
virtual unsigned int | SizeOf () const |
void | TransformUserData (const class ON_Xform &xform) |
Objects derived from ON_Geometry must call TransformUserData() in their Transform() member function. More... | |
virtual bool | UpdateReferencedComponents (const class ON_ComponentManifest &source_manifest, const class ON_ComponentManifest &destination_manifest, const class ON_ManifestMap &manifest_map) |
Uses the destination_manifest to update references to other components. This is typically done when a component's references came from a "source" context and are being updated to the "destination" context. For example, inserting one model into another when index, id, and name conflicts need to be resolved at the time of insertion. More... | |
int | UserStringCount () const |
virtual bool | Write (ON_BinaryArchive &binary_archive) const |
Low level archive writing tool used by ON_BinaryArchive::WriteObject(). More... | |
Pure virtual base class for all classes that must provide runtime class id or support object level 3DM serialization
|
strong |
When a userdata item is copied or moved from a source object to a destination object, the ON_Object::UserDataConflictResolution enum values specify how conficts are resolved. Remark: A userdata item "conflict" occurs when both the destination and source object have a user data item with the same value of ON_UserData::m_userdata_uuid.
Enumerator | |
---|---|
destination_object | |
source_object | |
source_copycount_gt | |
source_copycount_ge | |
destination_copycount_gt | |
destination_copycount_ge | |
delete_item |
ON_Object::ON_Object | ( | ) |
|
virtual |
ON_Object::ON_Object | ( | const ON_Object & | ) |
|
virtual |
Call whenever a component status setting is modifed by directly changing it on a component in a way that will result in any saved information about the parent object's aggretate component status becoming invalid.
Reimplemented in ON_Brep.
bool ON_Object::AttachUserData | ( | class ON_UserData * | pUserData | ) |
Attach user data to an object.
pUserData | [in] user data to attach to object. The ON_UserData pointer passed to AttachUserData() must be created with new. |
AttachUserData() will fail if the user data's m_userdata_uuid field is nil or not unique.
unsigned int ON_Object::ClearAllComponentStates | ( | ) | const |
Set all active level component states to ON_ComponentStatus::NoneSet.
|
virtual |
Clear the specified states on every component.
states_to_clear | [in] States to clear. |
Reimplemented in ON_Brep.
|
virtual |
Clear states on an individual component.
component_index | [in] The states will be cleared on this component. |
states_to_clear | [in] If a state is set in the states_to_clear parameter, the same state will be cleared on the component. |
Reimplemented in ON_Brep.
unsigned int ON_Object::CopyUserData | ( | const ON_Object & | source_object, |
ON_UUID | source_userdata_item_id, | ||
ON_Object::UserDataConflictResolution | userdata_conflict_resolution | ||
) |
Expert user tool that copies user data items with positive values of ON_UserData.m_userdata_copycount from source_object to "this.
source_object | [in] source of user data to copy |
source_userdata_item_id | [in] If source_userdata_item_id is not nil, then only the user data item with a matching ON_UserData.m_userdata_uuid value will be copied. |
userdata_conflict_resolution | [in] method to resolve userdata item conficts. |
Generally speaking you don't need to use CopyUserData(). Simply rely on ON_Object::operator=() or the copy constructor to do the right thing.
void ON_Object::CopyUserData | ( | const ON_Object & | source_object | ) |
Calls CopyUserData(source_object,ON_Object::UserDataConflictResolution::source_object).
source_object | [in] |
|
virtual |
Returns a CRC calculated from the information that defines the object. This CRC can be used as a quick way to see if two objects are not identical.
current_remainder | [in]; |
Reimplemented in ON_Mesh, ON_Brep, ON_NurbsCage, ON_BrepFace, ON_DocumentUserStringList, ON_ClippingPlaneSurface, ON_UserStringList, ON_BrepEdge, ON_SumSurface, ON_NurbsSurface, ON_RevSurface, ON_NurbsCurve, ON_BrepVertex, ON_PolyCurve, ON_SurfaceProxy, ON_Extrusion, ON_CurveProxy, ON_PolylineCurve, ON_LineCurve, ON_ArcCurve, ON_PlaneSurface, and ON_ModelComponent.
|
virtual |
Delete the portions of the object identified in ci_list[].
ci_list | [in] List of components to delete. |
ci_list_count | [in] Number of elements in the ci_list[] array. |
Reimplemented in ON_Mesh.
|
virtual |
Expert user function. If you are using openNURBS in its default configuration to read and write 3dm archives, you never need to call this function. Many objects employ lazy creation of (runtime) caches that save information to help speed geometric calculations. This function will destroy all runtime information.
bDelete | [in] if true, any cached information is properly deleted. If false, any cached information is simply discarded. This is useful when the cached information may be in alternate memory pools that are managed in nonstandard ways. |
Reimplemented in ON_Mesh, ON_MorphControl, ON_Brep, ON_NurbsCage, ON_BrepFace, ON_BrepLoop, ON_BrepTrim, ON_PolyEdgeSegment, ON_Curve, ON_Extrusion, ON_Surface, ON_CurveProxy, ON_PolyCurve, ON_PolyEdgeCurve, ON_SurfaceProxy, ON_SumSurface, and ON_RevSurface.
bool ON_Object::DetachUserData | ( | class ON_UserData * | pUserData | ) |
Remove user data from an object.
pUserData | [in] user data to attach to object. The ON_UserData pointer passed to DetachUserData() must have been previously attached using AttachUserData(). |
Call delete pUserData if you want to destroy the user data.
|
virtual |
Creates a text dump of the object.
Dump() is intended for debugging and is not suitable for creating high quality text descriptions of an object.
The default implementations of this virtual function prints the class's name.
Reimplemented in ON_MeshComponentRef, ON_Mesh, ON_Brep, ON_MorphControl, ON_NurbsCage, ON_BrepFace, ON_BrepLoop, ON_TextDot, ON_3dmRenderSettings, ON_DocumentUserStringList, ON_Hatch, ON_ClippingPlaneSurface, ON_BrepTrim, ON_UserStringList, ON_DimStyle, ON_HatchPattern, ON_UnknownUserData, ON_BrepEdge, ON_NurbsSurface, ON_InstanceDefinition, ON_TextContent, ON_NurbsCurve, ON_CurveProxy, ON_TextureMapping, ON_Texture, ON_TextStyle, ON_SumSurface, ON_Material, ON_Viewport, ON_ArcCurve, ON_PolyCurve, ON_RevSurface, ON_HistoryRecord, ON_BrepVertex, ON_Linetype, ON_SurfaceProxy, ON_CurveOnSurface, ON_Extrusion, ON_PolylineCurve, ON_ModelGeometryComponent, ON_LineCurve, ON_PointCloud, ON_Leader, ON_Layer, ON_PlaneSurface, ON_3dmObjectAttributes, ON_Text, ON_Bitmap, ON_PointGrid, ON_Point, ON_UserData, ON_DetailView, ON_Light, and ON_ModelComponent.
void ON_Object::EmergencyDestroy | ( | ) |
Sets m_user_data_list = 0.
class ON_UserData* ON_Object::FirstUserData | ( | ) | const |
User data is stored as a linked list of ON_UserData classes. FirstUserData gets the first item in the linked list. This is the most recent item attached using AttachUserData(). Remark: To iterate through all the user data on an object, call FirstUserData() and then use ON_UserData::Next() to traverse the list.
|
virtual |
states_filter | [in] |
bAllEqualStates | [in] If a state is set in states_filter, all active level components with the same state set will be included in the components_with_set_states[] array. |
If bAllEqualStates is true, then ON_ComponentStatus::AllEqualStates() is used to test for inclusion.
If bAllEqualStates is false, then ON_ComponentStatus::SomeEqualStates() is used to test for inclusion.
components_with_set_states | [out] |
Reimplemented in ON_Brep.
class ON_UserData* ON_Object::GetUserData | ( | const ON_UUID & | userdata_uuid | ) | const |
Get a pointer to user data.
userdata_uuid | [in] value of the user data's m_userdata_uuid field. |
The returned user data is still attached to the object. Deleting the returned user data will automatically remove the user data from the object.
bool ON_Object::GetUserString | ( | const wchar_t * | key, |
ON_wString & | string_value | ||
) | const |
Get user string from the object.
key | [in] id used to retrieve the string. |
string_value | [out] |
int ON_Object::GetUserStringKeys | ( | ON_ClassArray< ON_wString > & | user_string_keys | ) | const |
Get a list of all user string keys on the object.
user_string_keys | [out] user string keys are appended to this list. |
int ON_Object::GetUserStrings | ( | ON_ClassArray< ON_UserString > & | user_strings | ) | const |
Get a list of all user strings on the object.
user_strings | [out] user strings are appended to this list. |
bool ON_Object::IsKindOf | ( | const ON_ClassId * | pClassId | ) | const |
Low level tool to test if an object is derived from a specified class.
pClassId | [in] use classname::ClassId() |
The primary reason for IsKindOf() is to support the static Cast() members declared in the ON_OBJECT_DECLARE macro. If we determine that dynamic_cast is properly supported and implemented by all supported compilers, then IsKindOf() may dissappear. If an application needs to determine if a pointer points to a class derived from ON_SomeClassName, then call ON_SomeClassName::Cast(mystery pointer) and check for a non-null return.
|
virtual |
Tests an object to see if its data members are correctly initialized.
text_log | [in] if the object is not valid and text_log is not nullptr, then a brief englis description of the reason the object is not valid is appened to the log. The information appended to text_log is suitable for |
low | level debugging purposes by programmers and is not intended to be useful as a high level user interface tool. |
Reimplemented in ON_MeshComponentRef, ON_Mesh, ON_Brep, ON_MorphControl, ON_BrepRegion, ON_BrepFaceSide, ON_NurbsCage, ON_BrepFace, ON_BrepLoop, ON_TextDot, ON_InstanceRef, ON_DocumentUserStringList, ON_Hatch, ON_UserDataHolder, ON_BrepTrim, ON_EmbeddedBitmap, ON_DimStyle, ON_HatchPattern, ON_UnknownUserData, ON_BrepEdge, ON_WindowsBitmap, ON_NurbsSurface, ON_InstanceDefinition, ON_NurbsCurve, ON_CurveProxy, ON_TextureMapping, ON_Texture, ON_TextStyle, ON_SumSurface, ON_Material, ON_Viewport, ON_ArcCurve, ON_RevSurface, ON_HistoryRecord, ON_BrepVertex, ON_Linetype, ON_Dimension, ON_PolyCurve, ON_SurfaceProxy, ON_TextContent, ON_CurveOnSurface, ON_Annotation, ON_Extrusion, ON_Geometry, ON_PolylineCurve, ON_Leader, ON_LineCurve, ON_PointCloud, ON_Layer, ON_PlaneSurface, ON_3dmObjectAttributes, ON_PointGrid, ON_Point, ON_DetailView, ON_Light, ON_Text, ON_UserData, and ON_ModelComponent.
|
virtual |
Call whenever a component status setting is modifed by directly changing it on a component in a way that will result in any saved information about the parent object's aggretate component status becoming invalid.
The implementations of this function are nearly instant. and this function may be called as frequently as needed. The next time AggregateComponentStatus() is called the information used to return the value will be updated.
Reimplemented in ON_Brep.
|
virtual |
The MemoryRelocate() function is called when an object's location in memory is changed. For example, if an object resides in a chunk of memory that is grown by calling a realloc that has to allocate a new chunk and copy the contents of the old chunk to the new chunk, then the location of the object's memory changes. In practice this happens when classes derived from ON_Object are stored in dynamic arrays, like the default implementation of ON_ObjectArray<>'s that use realloc to grow the dynamic array.
Reimplemented in ON_Mesh, ON_MorphControl, ON_Brep, and ON_DetailView.
|
virtual |
All objects in an opennurbs model have an id ( ON_Layer.m_layer_id, ON_Font.m_font_id, ON_Material.m_material_id, ON_3dmObjectAttributes.m_uuid ).
Reimplemented in ON_Light, and ON_ModelComponent.
unsigned int ON_Object::MoveUserData | ( | ON_Object & | source_object, |
ON_UUID | source_userdata_item_id, | ||
ON_Object::UserDataConflictResolution | userdata_conflict_resolution, | ||
bool | bDeleteAllSourceItems | ||
) |
Expert user tool that moves user data items from source_object to "this.
source_object | [in] source of user data to copy |
source_userdata_item_id | [in] If source_userdata_item_id is not nil, then only the user data item with a matching ON_UserData.m_userdata_uuid value will be moved. |
userdata_conflict_resolution | [in] method to resolve userdata item conficts. |
bDeleteAllSourceItems | [in] If bDeleteAllSourceItems is true, then any userdata items that are not copied from source_object are deleted. |
Generally speaking you don't need to use MoveUserData(). Simply rely on ON_Object::operator=() or the copy constructor to do the right thing.
void ON_Object::MoveUserData | ( | ON_Object & | source_object | ) |
Calls MoveUserData(source_object,ON_Object::UserDataConflictResolution::source_object,true).
source_object | [in] |
|
virtual |
Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.
ON::object_type enum value.
The default implementation of this virtual function returns ON::unknown_object_type
Reimplemented in ON_MeshComponentRef, ON_Mesh, ON_Brep, ON_MorphControl, ON_NurbsCage, ON_TextDot, ON_InstanceRef, ON_Hatch, ON_ClippingPlaneSurface, ON_InstanceDefinition, ON_TextContent, ON_BrepEdge, ON_Curve, ON_Material, ON_Surface, ON_Extrusion, ON_PointCloud, ON_Layer, ON_Annotation, ON_Leader, ON_PointGrid, ON_Point, ON_Light, and ON_DetailView.
void ON_Object::PurgeUserData | ( | ) |
PurgeUserData() removes all user data from object.
Use delete GetUserData(...) to destroy a single piece of user data.
|
virtual |
Low level archive writing tool used by ON_BinaryArchive::ReadObject().
binary_archive | archive to read from |
Use ON_BinaryArchive::ReadObject() to read objects. This Read() function should read the objects definition back into its data members.
The default implementation of this virtual function returns false and does nothing.
Reimplemented in ON_Mesh, ON_Brep, ON_MorphControl, ON_BrepRegion, ON_BrepFaceSide, ON_NurbsCage, ON_Centermark, ON_BrepFace, ON_BrepLoop, ON_TextDot, ON_DimOrdinate, ON_DimRadial, ON_3dmRenderSettings, ON_InstanceRef, ON_DocumentUserStringList, ON_Hatch, ON_ClippingPlaneSurface, ON_BrepTrim, ON_EmbeddedBitmap, ON_WindowsBitmapEx, ON_DimAngular, ON_UserStringList, ON_DimStyle, ON_HatchPattern, ON_RdkMaterialInstanceIdObsoleteUserData, ON_UnknownUserData, ON_BrepEdge, ON_InstanceDefinition, ON_DimLinear, ON_WindowsBitmap, ON_NurbsSurface, ON_TextContent, ON_NurbsCurve, ON_CurveProxy, ON_TextureMapping, ON_Texture, ON_TextStyle, ON_Viewport, ON_PolyEdgeSegment, ON_SumSurface, ON_Material, ON_ArcCurve, ON_RevSurface, ON_PolyCurve, ON_Linetype, ON_HistoryRecord, ON_BrepVertex, ON_SurfaceProxy, ON_PolylineCurve, ON_CurveOnSurface, ON_Extrusion, ON_LineCurve, ON_PointCloud, ON_Layer, ON_Leader, ON_PlaneSurface, ON_3dmObjectAttributes, ON_Text, ON_PointGrid, ON_Bitmap, ON_Point, ON_Light, and ON_DetailView.
|
virtual |
Set states on an individual component.
component_index | [in] The states will be set on this component. |
states_to_set | [in] If a state is set in the states_to_set parameter, the same state will be set on the component. |
Reimplemented in ON_Brep.
|
virtual |
Copy status settings to an individual component.
component_index | [in] The states will be copied to this component. |
status_to_copy | [in] |
Reimplemented in ON_Brep.
bool ON_Object::SetUserString | ( | const wchar_t * | key, |
const wchar_t * | string_value | ||
) |
Attach a user string to the object. This information will perisist through copy construction, operator=, and file IO.
key | [in] id used to retrieve this string. |
string_value | [in] If nullptr, the string with this id will be removed. |
int ON_Object::SetUserStrings | ( | int | count, |
const ON_UserString * | user_strings, | ||
bool | bReplace | ||
) |
Append entries to the user string list
count | [in] number of element in us[] array |
user_strings | [in] entries to append. |
bReplace | [in] If bReplace is true, then existing entries with the same key are updated with the new entry's value. If bReplace is false, then existing entries are not updated. |
|
virtual |
Reimplemented in ON_MeshComponentRef, ON_Mesh, ON_MorphControl, ON_Brep, ON_NurbsCage, ON_BrepFace, ON_BrepLoop, ON_ClippingPlaneSurface, ON_EmbeddedBitmap, ON_UserStringList, ON_BrepTrim, ON_UnknownUserData, ON_InstanceDefinition, ON_WindowsBitmap, ON_BrepEdge, ON_TextureMapping, ON_Texture, ON_SumSurface, ON_Curve, ON_NurbsSurface, ON_RevSurface, ON_Surface, ON_NurbsCurve, ON_BrepVertex, ON_PolyCurve, ON_Extrusion, ON_SurfaceProxy, ON_CurveProxy, ON_CurveOnSurface, ON_Bitmap, ON_3dmObjectAttributes, ON_PolylineCurve, ON_LineCurve, ON_ArcCurve, ON_PlaneSurface, ON_UserData, ON_DetailView, and ON_ModelComponent.
void ON_Object::TransformUserData | ( | const class ON_Xform & | xform | ) |
Objects derived from ON_Geometry must call TransformUserData() in their Transform() member function.
xform | [in] transformation to apply to user data |
|
virtual |
Uses the destination_manifest to update references to other components. This is typically done when a component's references came from a "source" context and are being updated to the "destination" context. For example, inserting one model into another when index, id, and name conflicts need to be resolved at the time of insertion.
source_manifest | [in] A manifest of the source context with indices and ids corresponding to the current component references. If this manifest is not available, pass ON_ComponentManifest::Empty. |
destination_manifest | [in] A manifest of the destination context with indices and ids corresponding to the desired component references. If this manifest is not available, pass ON_ComponentManifest::Empty. |
manifest_map | [in] A map from the source (current) referenced component index/id values to the destination (desired) component index/id values. |
Reimplemented in ON_3dmObjectAttributes, ON_Layer, and ON_ModelGeometryComponent.
int ON_Object::UserStringCount | ( | ) | const |
|
virtual |
Low level archive writing tool used by ON_BinaryArchive::WriteObject().
binary_archive | archive to write to |
Use ON_BinaryArchive::WriteObject() to write objects. This Write() function should just write the specific definition of this object. It should not write and any chunk typecode or length information.
The default implementation of this virtual function returns false and does nothing.
Reimplemented in ON_Mesh, ON_Brep, ON_MorphControl, ON_BrepRegion, ON_BrepFaceSide, ON_NurbsCage, ON_Centermark, ON_BrepFace, ON_BrepLoop, ON_DimOrdinate, ON_TextDot, ON_DimRadial, ON_3dmRenderSettings, ON_InstanceRef, ON_DocumentUserStringList, ON_Hatch, ON_ClippingPlaneSurface, ON_BrepTrim, ON_EmbeddedBitmap, ON_WindowsBitmapEx, ON_DimAngular, ON_UserStringList, ON_DimStyle, ON_HatchPattern, ON_RdkMaterialInstanceIdObsoleteUserData, ON_UnknownUserData, ON_BrepEdge, ON_WindowsBitmap, ON_DimLinear, ON_NurbsSurface, ON_InstanceDefinition, ON_TextContent, ON_NurbsCurve, ON_CurveProxy, ON_TextureMapping, ON_Texture, ON_TextStyle, ON_PolyEdgeSegment, ON_Viewport, ON_SumSurface, ON_Material, ON_ArcCurve, ON_RevSurface, ON_PolyCurve, ON_HistoryRecord, ON_BrepVertex, ON_Linetype, ON_SurfaceProxy, ON_PolylineCurve, ON_CurveOnSurface, ON_Extrusion, ON_PointCloud, ON_LineCurve, ON_Leader, ON_Layer, ON_PlaneSurface, ON_3dmObjectAttributes, ON_Bitmap, ON_Text, ON_PointGrid, ON_Point, ON_Light, and ON_DetailView.