Rhino C++ API
8.10
|
#include <opennurbs_model_component.h>
Public Member Functions | |
ON_ModelComponent () ON_NOEXCEPT | |
ON_ModelComponent (const ON_ModelComponent &source) | |
ON_ModelComponent (ON_ModelComponent::Type component_type) ON_NOEXCEPT | |
ON_ModelComponent (ON_ModelComponent::Type component_type, const ON_ModelComponent &source) ON_NOEXCEPT | |
Locked status of source attributes is not copied to permit copy and modify operations. More... | |
~ON_ModelComponent ()=default | |
bool | ChangeName (const wchar_t *new_name, class ON_ComponentManifest *manifest) |
bool | ClearComponentType () |
bool | ClearId () |
bool | ClearIndex () |
unsigned int | ClearModelComponentAttributes (unsigned int attributes_filter) |
bool | ClearModelComponentStatus () |
bool | ClearModelSerialNumber () |
bool | ClearName () |
bool | ClearParentId () |
int | CompareName (const ON_UUID &other_parent_id, const wchar_t *other_name) const |
int | CompareName (const wchar_t *other_name) const |
int | CompareNameExact (const ON_UUID &other_parent_id, const wchar_t *other_name) const |
int | CompareNameExact (const wchar_t *other_name) const |
ON_ModelComponent::Type | ComponentType () const |
bool | ComponentTypeIsLocked () const |
bool | ComponentTypeIsSet () const |
ON__UINT64 | ContentVersionNumber () const |
unsigned int | CopyFrom (const ON_ModelComponent &src, unsigned int attributes_filter) |
ON__UINT32 | DataCRC (ON__UINT32 current_remainder) const override |
const ON_wString | DeletedName () const |
const ON_NameHash & | DeletedNameHash () const |
bool | DeletedNameIsSet () const |
bool | DeleteName () |
void | Dump (ON_TextLog &) const override |
bool | EraseIdentification (bool bIgnoreLocks) |
const wchar_t * | GetName (ON_wString &component_name) const |
const ON_UUID & | Id () const |
bool | IdIsLocked () const |
bool | IdIsNil () const |
bool | IdIsNotNil () const |
bool | IdIsSet () const |
const ON_UUID & | IfIdIsNilSetId () |
int | Index () const |
int | Index (int unset_index_value) const |
bool | IndexIsLocked () const |
bool | IndexIsSet () const |
unsigned int | InstanceDefinitionModelSerialNumber () const |
bool | IsDeleted () const |
bool | IsHidden () const |
bool | IsLocked () const |
bool | IsReferenceComponent () const |
bool | IsSystemComponent () const |
bool | IsValid (class ON_TextLog *text_log=nullptr) const override |
void | LockAllSettingsExceptName () |
void | LockComponentType () |
void | LockId () |
void | LockIndex () |
void | LockModelComponentStatus () |
void | LockModelSerialNumber () |
void | LockName () |
void | LockParentId () |
ON_ComponentStatus | ModelComponentStatus () const |
bool | ModelComponentStatusIsLocked () const |
bool | ModelComponentStatusIsSet () const |
ON_UUID | ModelObjectId () const override |
unsigned int | ModelSerialNumber () const |
bool | ModelSerialNumberIsLocked () const |
bool | ModelSerialNumberIsSet () const |
const ON_wString | Name () const |
const wchar_t * | NameAsPointer () const |
const ON_NameHash & | NameHash () const |
bool | NameIsEmpty () const |
bool | NameIsLocked () const |
bool | NameIsNotEmpty () const |
bool | NameIsSet () const |
const ON_NameHash | NewNameHash (const wchar_t *new_name) const |
ON_ModelComponent & | operator= (const ON_ModelComponent &source) |
const ON_UUID & | ParentId () const |
bool | ParentIdIsLocked () const |
bool | ParentIdIsNil () const |
bool | ParentIdIsNotNil () const |
bool | ParentIdIsSet () const |
bool | ReadModelComponentAttributes (class ON_BinaryArchive &archive) |
unsigned int | ReferenceModelSerialNumber () const |
ON__UINT64 | RuntimeSerialNumber () const |
const ON_UUID & | SetAndLockId () |
bool | SetAsSystemComponent () |
bool | SetAsUnsetSystemComponent () |
bool | SetComponentType (ON_ModelComponent::Type component_component_type) |
bool | SetDeletedModelComponentState (bool bDeleted, class ON_ComponentManifest *manifest) |
void | SetHiddenModelComponentState (bool bHidden) |
const ON_UUID & | SetId () |
bool | SetId (const ON_UUID &component_id) |
bool | SetIdentification (const class ON_ComponentManifestItem &manifest_item, const wchar_t *manifest_name, bool bSetId, bool bParentId, bool bSetName, bool bSetIndex) |
bool | SetIndex (int component_index) |
bool | SetLocalizedSystemComponentName (const wchar_t *system_component_localized_name) |
void | SetLockedModelComponentState (bool bLocked) |
bool | SetModelComponentStatus (ON_ComponentStatus component_status) |
bool | SetModelSerialNumber (unsigned int model_serial_number) |
bool | SetModelSerialNumber (unsigned int model_serial_number, unsigned int reference_model_serial_number, unsigned int instance_definition_model_serial_number) |
bool | SetName (const wchar_t *component_name) |
bool | SetParentId (const ON_UUID &parent_id) |
unsigned int | SizeOf () const override |
bool | UndeleteName () |
bool | WriteModelComponentAttributes (class ON_BinaryArchive &archive, unsigned int attributes_filter) const |
![]() | |
ON_Object () ON_NOEXCEPT | |
ON_Object (const ON_Object &) | |
virtual | ~ON_Object () |
virtual ON_AggregateComponentStatus | AggregateComponentStatus () const |
bool | AttachUserData (class ON_UserData *pUserData) |
unsigned int | ClearAllComponentStates () const |
virtual unsigned int | ClearComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_clear) const |
virtual unsigned int | ClearComponentStates (ON_ComponentStatus states_to_clear) const |
void | CopyUserData (const ON_Object &source_object) |
unsigned int | CopyUserData (const ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution) |
virtual bool | DeleteComponents (const ON_COMPONENT_INDEX *ci_list, size_t ci_count) |
virtual void | DestroyRuntimeCache (bool bDelete=true) |
bool | DetachUserData (class ON_UserData *pUserData) |
void | EmergencyDestroy () |
class ON_UserData * | FirstUserData () const |
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 |
bool | GetUserString (const wchar_t *key, ON_wString &string_value) const |
int | GetUserStringKeys (ON_ClassArray< ON_wString > &user_string_keys) const |
int | GetUserStrings (ON_ClassArray< ON_UserString > &user_strings) const |
bool | IsCorrupt (bool bRepair, bool bSilentError, class ON_TextLog *text_log) const |
bool | IsKindOf (const ON_ClassId *pClassId) const |
virtual void | MarkAggregateComponentStatusAsNotCurrent () const |
virtual void | MemoryRelocate () |
void | MoveUserData (ON_Object &source_object) |
unsigned int | MoveUserData (ON_Object &source_object, ON_UUID source_userdata_item_id, ON_Object::UserDataConflictResolution userdata_conflict_resolution, bool bDeleteAllSourceItems) |
virtual ON::object_type | ObjectType () const |
ON_Object & | operator= (const ON_Object &) |
void | PurgeUserData () |
virtual bool | Read (ON_BinaryArchive &binary_archive) |
virtual unsigned int | SetComponentStates (ON_COMPONENT_INDEX component_index, ON_ComponentStatus states_to_set) const |
virtual unsigned int | SetComponentStatus (ON_COMPONENT_INDEX component_index, ON_ComponentStatus status_to_copy) const |
bool | SetUserString (const wchar_t *key, const wchar_t *string_value) |
int | SetUserStrings (int count, const ON_UserString *user_strings, bool bReplace) |
bool | ThisIsNullptr (bool bSilentError) const |
void | TransformUserData (const class ON_Xform &xform) |
virtual bool | UpdateReferencedComponents (const class ON_ComponentManifest &source_manifest, const class ON_ComponentManifest &destination_manifest, const class ON_ManifestMap &manifest_map) |
int | UserStringCount () const |
virtual bool | Write (ON_BinaryArchive &binary_archive) const |
Static Public Attributes | |
static const ON_wString | NamePathSeparator |
static const ON_wString | ReferencePrefixDelimiter |
static const ON_wString | ReferencePrefixSeparator |
static const ON_ModelComponent | Unset |
*static const ON_wString WorksessionReferencePrefix *const | wchar_t |
Protected Member Functions | |
void | IncrementContentVersionNumber () const |
Friends | |
class | CRhinoObject |
Copyright (c) 1993-2022 Robert McNeel & Associates. All rights reserved. OpenNURBS, Rhinoceros, and Rhino3D are registered trademarks of Robert McNeel & Associates.
THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.
For complete openNURBS copyright information see http://www.opennurbs.org. Description: The ON_ModelComponent class is a base class for all components in a model and manages the index, id and other information common to all components in a model.
enum ON_ModelComponent::Attributes : unsigned int |
The ON_ModelComponent::Attributes enum is used to set bits that identify model component attributes.
|
strong |
The ON_ModelComponent::Type enum has a value for each explicit component type and two special values, Unset and Mixed. Use an ON_ModelComponentTypeIterator instance to iterate over the ON_ModelComponent::Type values. /summary>
ON_ModelComponent::ON_ModelComponent | ( | ) |
|
default |
ON_ModelComponent::ON_ModelComponent | ( | const ON_ModelComponent & | source | ) |
Locked status of source attributes is not copied to permit copy and modify operations. Runtime serial number and content version number are not copied.
ON_ModelComponent::ON_ModelComponent | ( | ON_ModelComponent::Type | component_type | ) |
Description: Sets and locks the component type attribute. Parameters: component_type - [in]
ON_ModelComponent::ON_ModelComponent | ( | ON_ModelComponent::Type | component_type, |
const ON_ModelComponent & | source | ||
) |
Locked status of source attributes is not copied to permit copy and modify operations.
bool ON_ModelComponent::ChangeName | ( | const wchar_t * | new_name, |
class ON_ComponentManifest * | manifest | ||
) |
Description: Change the name of a component and optionally update a manifest. Parameters: new_name - [in] New name for the component. manifest - [in] nullptr or a manifest with an item for the component.
bool ON_ModelComponent::ClearComponentType | ( | ) |
Description: Set the model serial number value to the ON_ModelComponent::Unset.Type() and change the state so TypeIsSet() returns false.
bool ON_ModelComponent::ClearId | ( | ) |
Description: Set the component id value to the ON_ModelComponent::Unset.ModelComponentId() and change the state so ModelComponentIdIsSet() returns false.
bool ON_ModelComponent::ClearIndex | ( | ) |
Description: Set the component index value to the ON_ModelComponent::Unset.ModelComponentIndex() and change the state so ModelComponentIndexIsSet() returns false.
unsigned int ON_ModelComponent::ClearModelComponentAttributes | ( | unsigned int | attributes_filter | ) |
General attributes interface Description: Writes the attributes identified by the component_filter parameter. Parameters: attributes_filter - [in] A bitfield that determines which attributes will be cleared. Returns: a bitfield indicating which attributes were cleared. (Locked attributes cannot be cleared.)
bool ON_ModelComponent::ClearModelComponentStatus | ( | ) |
bool ON_ModelComponent::ClearModelSerialNumber | ( | ) |
Description: Sets the model serial number, reference model serial number and instance definition model serial number values to 0 and flags these values as unset.
bool ON_ModelComponent::ClearName | ( | ) |
Description: Set the component name value to the ON_ModelComponent::Unset.Name() and change the state so NameIsSet() and DeletedNameIsSet() both return false.
bool ON_ModelComponent::ClearParentId | ( | ) |
|
static |
|
static |
Description Call ON_ModelComponent::Id()and then ON_ModelComponent::CompareName(). When used for sorting, will be sorted by id and then by name.
|
static |
Parameters: a -[in] b -[in] Returns: ON_wString::CompareAttributeName(a.Name(), b.Name() ) Remarks: CompareName() is the correct tool to use when looking up objects by name.
int ON_ModelComponent::CompareName | ( | const ON_UUID & | other_parent_id, |
const wchar_t * | other_name | ||
) | const |
Parameters: other_name -[in] Returns: ON_wString::CompareAttributeName(this->Name(), other_name) Remarks: CompareName() is the correct tool to use when looking up objects by name.
int ON_ModelComponent::CompareName | ( | const wchar_t * | other_name | ) | const |
|
static |
Description Call ON_ModelComponent::CompareName() and then ON_ModelComponent::CompareId(). When used for sorting, will be sorted by name and then by id.
|
static |
Parameters: a -[in] b -[in] Returns: int rc = ON_wString::CompareAttributeName(a.Name(), b.Name()); return (0 != rc) ? rc : ON_wString::CompareOrdinal(a.Name(), b.Name(), false); Remarks: CompareNameExact() is the correct tool to use when detecting changes in case are important. Use CompareName() when searching for components by name.
int ON_ModelComponent::CompareNameExact | ( | const ON_UUID & | other_parent_id, |
const wchar_t * | other_name | ||
) | const |
Parameters: other_name -[in] Returns: int rc = ON_wString::CompareAttributeName(this->Name(), other_name); return (0 != rc) ? rc : ON_wString::CompareOrdinal(this->Name(), other_name, false); Remarks: CompareNameExact() is the correct tool to use when detecting changes in case are important. Use CompareName() when searching for components by name.
int ON_ModelComponent::CompareNameExact | ( | const wchar_t * | other_name | ) | const |
ON_ModelComponent::Type ON_ModelComponent::ComponentType | ( | ) | const |
Type interface Returns: Value of the Type attribute. Remarks: If the component is in a model, then the component_type is unique for all components of identical type in the model and is locked.
|
static |
bool ON_ModelComponent::ComponentTypeIsLocked | ( | ) | const |
Returns: True if the Type attribute is locked.
bool ON_ModelComponent::ComponentTypeIsSet | ( | ) | const |
Returns: True if the Type attribute is set.
|
static |
Parameters: component_type - [in] Returns: True if component_type is a valid enum value, and not equal to ON_ModelComponent::Type::Unset.
|
static |
Parameters: component_type - [in] Returns: True if component_type is a valid enum value, and not equal to ON_ModelComponent::Type::Unset, and not equal to ON_ModelComponent::Type::Mixed.
|
static |
ON__UINT64 ON_ModelComponent::ContentVersionNumber | ( | ) | const |
Description: Whenever an attribute is changed, the content version number is incremented. The ContentVersionNumber() is commonly used by consumers of the model component attributes to trigger updates when needed. Remarks: The ContentVersionNumber value is copied by the copy constructor and operator=. The value is not saved in .3dm archives.
unsigned int ON_ModelComponent::CopyFrom | ( | const ON_ModelComponent & | src, |
unsigned int | attributes_filter | ||
) |
|
overridevirtual |
Description: 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. Parameters: current_remainder - [in]; Returns: CRC of the information the defines the object.
Reimplemented from ON_Object.
const ON_wString ON_ModelComponent::DeletedName | ( | ) | const |
const ON_NameHash& ON_ModelComponent::DeletedNameHash | ( | ) | const |
bool ON_ModelComponent::DeletedNameIsSet | ( | ) | const |
Returns: True if the deleted name attribute is set. Remarks: At most one of NameIsSet() and DeletedNameIsSet() is true.
bool ON_ModelComponent::DeleteName | ( | ) |
Description: If NameIsSet() is true, then the name is deleted in a way that can be undone by calling UndeleteName() and the DeletedNameIsSet() property is changed to true.
If NameIsSet() is false or NameIsLocked() is true, then nothing is changed.
Note that a name can be set to the empty string and there is a difference between a name being set to the empty string and a name being unset. If you want to make the name attribute unset, call ClearName().
|
overridevirtual |
Description: Creates a text dump of the object. Remarks: 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 from ON_Object.
Reimplemented in ON_ModelGeometryComponent, CRhinoInstanceDefinition, ON_TextureMapping, ON_TextStyle, ON_HistoryRecord, and ON_SectionStyle.
bool ON_ModelComponent::EraseIdentification | ( | bool | bIgnoreLocks | ) |
const wchar_t* ON_ModelComponent::GetName | ( | ON_wString & | component_name | ) | const |
Parameters: component_name - [out] Returns: A pointer to the string in component_name.
const ON_UUID& ON_ModelComponent::Id | ( | ) | const |
Id interface
The component id is intended to be unique in the context of a model. Returns: Value of the Id attribute. Remarks: If the component is in a model, then the id is unique for all components in the model and is locked.
bool ON_ModelComponent::IdIsLocked | ( | ) | const |
Returns: True if the ModelComponentId attribute is locked.
bool ON_ModelComponent::IdIsNil | ( | ) | const |
bool ON_ModelComponent::IdIsNotNil | ( | ) | const |
bool ON_ModelComponent::IdIsSet | ( | ) | const |
Returns: True if the ModelComponentId attribute is set.
|
protected |
Classes derived from ON_ModelComponent should have private data members and call IncrementContentVersionNumber() when the data member value changes.
int ON_ModelComponent::Index | ( | ) | const |
Index interface
When a component is managed by a model, the component index is identifies the component within the context of that model. Returns: Value of the runtime model component index attribute. Remarks: If the component is in a model, then the index is unique for all components of identical type in the model and is locked. If the index has not been set, ON_UNSET_INT_INDEX is returned. The Index() value can change when saved in an archive (.3dm file). Use the Id() when you need to reference model components in an archive.
int ON_ModelComponent::Index | ( | int | unset_index_value | ) | const |
Returns: Value of the model component index attribute. Parameters: unset_index_value - [in] Value to return if the index has not been set. ON_UNSET_INT_INDEX or indices of default components are often used for this parameter. Returns: IndexIsSet() ? Index() : unset_index_value; Remarks: If the component is in a model, then the index is unique for all components of identical type in the model and is locked.
bool ON_ModelComponent::IndexIsLocked | ( | ) | const |
Returns: True if the ModelComponentIndex attribute is locked.
bool ON_ModelComponent::IndexIsSet | ( | ) | const |
Returns: True if the ModelComponentIndex attribute is set.
|
static |
unsigned int ON_ModelComponent::InstanceDefinitionModelSerialNumber | ( | ) | const |
Returns: When a component is in a model as part of the information required for a linked instance definition, this value identifies the the linked instance definition reference model. Remarks: Reference components are not saved in .3dm archives. Typically this value is set and locked by the code that adds a component to a model. This value is copied by the copy constructor and operator=. This value is not saved in .3dm archives.
In Rhino, this value is a linked instance definition runtime serial number and these values are used.. 0: Active model component. 1-1000: reserved for future use >1000: linked instance definition serial number
|
static |
For internal use. Never call this function.
bool ON_ModelComponent::IsDeleted | ( | ) | const |
Returns: The component's deleted state. Remarks: Deleted components can be undeleted.
bool ON_ModelComponent::IsHidden | ( | ) | const |
Returns: The component's user interface hidden state. Remarks: This is a user interface hidden state and does not effect changing the component values.
bool ON_ModelComponent::IsLocked | ( | ) | const |
Returns: The component's user interface locked state. Remarks: This is a user interface locked state and does not effect changing the component values.
Description: Test a string to see if its beginning matches the string returned by ON_ModelComponent::NamePathSeparator. Parameters: s - [in]; string to test. Returns: null: The beginning of the string does not match ON_ModelComponent::NamePathSeparator. non-null: The beginning of the string matches ON_ModelComponent::NamePathSeparator. The returned pointer is the first character in s after the last character of the delimiter. Put another way, if the beginning of s matches the string ON_ModelComponent::NamePathSeparator, then the returned pointer is s + ON_ModelComponent::NamePathSeparator.Length().
bool ON_ModelComponent::IsReferenceComponent | ( | ) | const |
Returns True if ReferenceModelSerialNumber() or InstanceDefinitionModelSerialNumber() are not zero.
Description: Test a string to see if its beginning matches the string returned by ON_ModelComponent::NameReferenceDelimiter. Parameters: s - [in]; string to test. Returns: null: The beginning of the string does not match ON_ModelComponent::NameReferenceDelimiter. non-null: The beginning of the string matches ON_ModelComponent::NameReferenceDelimiter. The returned pointer is the first character in s after the last character of the delimiter. Put another way, if the beginning of s matches the string ON_ModelComponent::NameReferenceDelimiter, then the returned pointer is s + ON_ModelComponent::NameReferenceDelimiter.Length().
Description: Test a string to see if its beginning matches the string returned by ON_ModelComponent::NameReferenceSeparator. Parameters: s - [in]; string to test. Returns: null: The beginning of the string does not match ON_ModelComponent::NameReferenceSeparator. non-null: The beginning of the string matches ON_ModelComponent::NameReferenceSeparator. The returned pointer is the first character in s after the last character of the delimiter. Put another way, if the beginning of s matches the string ON_ModelComponent::NameReferenceSeparator, then the returned pointer is s + ON_ModelComponent::NameReferenceSeparator.Length().
bool ON_ModelComponent::IsSystemComponent | ( | ) | const |
Returns: True if this model component is a system constant.
Remarks: An incomplete list of system constant model components is below:
ON_InstanceDefinition::Empty
ON_Linetype::Unset ON_Linetype::Continuous ON_Linetype::ByLayer ON_Linetype::ByParent
ON_Layer::Unset ON_Layer::Default
ON_TextStyle::Unset ON_TextStyle::Default ON_TextStyle::ByLayer ON_TextStyle::ByParent
ON_DimStyle::Unset ON_DimStyle::Default ON_DimStyle::DefaultInchDecimal ON_DimStyle::DefaultInchFractional ON_DimStyle::DefaultFootInchArchitectural ON_DimStyle::DefaultMillimeterSmall ON_DimStyle::DefaultMillimeterLarge ON_DimStyle::DefaultMillimeterArchitectural
|
overridevirtual |
Description: Tests an object to see if its data members are correctly initialized. Parameters: text_log - [in] if the object is not valid and text_log is not nullptr, then a brief english description of the reason the object is not valid is appended 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. Returns: @untitled table true object is valid false object is invalid, uninitialized, etc.
Reimplemented from ON_Object.
Reimplemented in ON_TextureMapping, ON_TextStyle, ON_HistoryRecord, and ON_SectionStyle.
|
static |
Parameters: model_component - [in] model_manfest - [in] current model contents valid_name - [in] Valid name for this component in a model with the specified manifest. Returns: true: model_component.Name() is valid false: model_component.Name() is not valid
|
static |
|
static |
Parameters: candidate_component_name - [in] A null terminated string that is UTF-16 or UTF-32 encoded. When sizeof(wchar_t) >= 4, both UTF-16 surrogate pairs and UTF-32 code point values > 0xFFFF are valid and can appear in the same string. Returns: True if candidate_component_name is a valid component name. Remarks: Component names cannot begin with a (, ), [, ], {, }, or space. These brackets can be the second or later code points. A space can be an interior code point.
|
static |
Parameters: length - [in] > 0. The expected number of elements before the null terminator in candidate_component_name[]. candidate_component_name - [in] A null terminated string that is UTF-16 or UTF-32 encoded. When sizeof(wchar_t) >= 4, both UTF-16 surrogate pairs and UTF-32 code point values > 0xFFFF are valid and can appear in the same string. The capacity of candidate_component_name[] must be >= length+1. This validity test fails if candidate_component_name[length] is not zero or if a null terminator appears before candidate_component_name[length]. Returns: True if candidate_component_name is a valid component name. Remarks: Component names cannot begin with a (, ), [, ], {, }, or space. These brackets can be the second or later code points. A space can be an interior code point.
|
static |
Parameters: length - [in] number of wchar_t elements in candidate_component_name[] or -1 if it is a null terminated string. candidate_component_name - [in] The first code point is decoded from this string and passed to ON_ModelComponent::IsValidComponentNameFirstCodePoint(). Returns: True if a component name can begin with the first code point. Remarks: Component names cannot begin with a (, ), [, ], {, }, or space. These brackets can be the second or later code points. A space can be an interior code point.
|
static |
Returns: True if a component name can begin with the first code point. Remarks: Component names cannot begin with a (, ), [, ], {, }, or space. These brackets can be the second or later code points. A space can be an interior code point.
void ON_ModelComponent::LockAllSettingsExceptName | ( | ) |
void ON_ModelComponent::LockComponentType | ( | ) |
Description: Calling LockType() will prohibit future changes to the Type attribute.
void ON_ModelComponent::LockId | ( | ) |
Description: Calling LockModelComponentId() will prohibit future changes to the ModelComponentId attribute.
void ON_ModelComponent::LockIndex | ( | ) |
Description: Calling LockModelComponentIndex() will prohibit future changes to the ModelComponentIndex attribute.
void ON_ModelComponent::LockModelComponentStatus | ( | ) |
void ON_ModelComponent::LockModelSerialNumber | ( | ) |
Description: Calling LockModelSerialNumber() will prohibit future changes to the ModelSerialNumber(), ReferenceModelSerialNumber(), and InstanceDefinitionModelSerialNumber() attributes.
void ON_ModelComponent::LockName | ( | ) |
Description: Calling LockName() will prohibit future changes to the Name attribute.
void ON_ModelComponent::LockParentId | ( | ) |
ON_ComponentStatus ON_ModelComponent::ModelComponentStatus | ( | ) | const |
Model component locked, hidden, deleted, selected, highlights, damaged, ... status interface
bool ON_ModelComponent::ModelComponentStatusIsLocked | ( | ) | const |
bool ON_ModelComponent::ModelComponentStatusIsSet | ( | ) | const |
|
overridevirtual |
Description: 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 ). Returns: The id used to identify the object in the opennurbs model.
Reimplemented from ON_Object.
unsigned int ON_ModelComponent::ModelSerialNumber | ( | ) | const |
Returns: A value identifying the model that manages this component. Remarks: If the component is being managed by a model, this value identifies the model. In Rhino, this value is the document runtime serial number. Typically this value is set and locked by the code that adds a component to a model. This value is copied by the copy constructor and operator=. This value is not saved in .3dm archives.
bool ON_ModelComponent::ModelSerialNumberIsLocked | ( | ) | const |
Returns: True if the ModelSerialNumber(), ReferenceModelSerialNumber(), and InstanceDefinitionModelSerialNumber() attributes are locked.
bool ON_ModelComponent::ModelSerialNumberIsSet | ( | ) | const |
Returns: True if the ModelSerialNumber(), ReferenceModelSerialNumber(), and InstanceDefinitionModelSerialNumber() attributes are set.
const ON_wString ON_ModelComponent::Name | ( | ) | const |
Name interface Returns: Value of the Name attribute. Remarks: If the component is in a model, then the name is unique among all components in the model. Names are formatted as reference : parent::leaf. For example in "A.3dm : Z", "A.3dm" is the reference and "Z" is the leaf. For a layer full path "X::Y::Z", "X::Y" is the parent and "Z" is the leaf. For most models, only the leaf is present in the name. The reference portion appears when a model component originates in a reference file (a linked instance definition with reference component names or a worksession reference). Components with a tree hierarchy, like layers, can have a parent and leaf.
const wchar_t* ON_ModelComponent::NameAsPointer | ( | ) | const |
Description: Expert user function that gets a pointer to the name. Returns: A pointer to the string that contains the name. This pointer must be used immediately and then discarded before any code can possibly call SetName() or the ON_ModelComponent destructor could be called. Remarks: About the only good use for this function is when a model component is persistent and the name is needed for a formatted string. For any other use, call the Name() function and store the result in an ON_wString. This function is dangerous because the returned pointer will be invalid if SetName() is called.
const ON_NameHash& ON_ModelComponent::NameHash | ( | ) | const |
Description: Get a platform independent hash of the name suitable for equality testing and binary searching. When testing for equality or doing binary searches, using ON_NameHash values is faster than using the CompareName or ON_wString::CompareAttributeName.
bool ON_ModelComponent::NameIsEmpty | ( | ) | const |
Returns: true if the name is unset or is set to the empty string.
bool ON_ModelComponent::NameIsLocked | ( | ) | const |
Returns: True if the Name attribute is locked.
bool ON_ModelComponent::NameIsNotEmpty | ( | ) | const |
Returns: true if the name is set and the value is not the empty string.
bool ON_ModelComponent::NameIsSet | ( | ) | const |
Returns: True if the name attribute is set. Remarks: At most one of NameIsSet() and DeletedNameIsSet() is true. A name can be set to the empty string.
|
static |
Example: If the name is "A.3dm>B.3dm : X::Y::Z", then name_leaf = "Z" is returned.
|
static |
Parameters: name - [in] bIncludeReference - [in] Example: If the name is "A.3dm>B.3dm : X::Y::Z" and bIncludeReference is true, then "A.3dm>B.3dm : X::Y" is returned. If the name is "A.3dm>B.3dm : X::Y::Z" and bIncludeReference is false, then "X::Y" is returned.
|
static |
Parameters: name - [in] Example: If the name is "A.3dm : X", then "A.3dm" is returned.
const ON_NameHash ON_ModelComponent::NewNameHash | ( | const wchar_t * | new_name | ) | const |
Parameters: new_name - [in]
Returns: If new_name is empty or a valid component name, then name hash this component would have if SetName(new_name) were called. If new_name is not valid, then ON_NameHash::UnsetNameHash is returned. Remarks: This function trims leading and trailing white space, includes the parent id when ON_ModelComponent::UniqueNameIncludesParent(ComponentType()) is true, and uses ON_ModelComponent::IsValidComponentName() to determine if a non-empty name is valid.
|
static |
Returns: The next ON_ModelComponent instance will have runtime serial number >= ON_ModelComponent::NextRuntimeSerialNumber();
ON_ModelComponent& ON_ModelComponent::operator= | ( | const ON_ModelComponent & | source | ) |
Remarks: operator= will not change locked destination attributes. Locked status of source attributes is not copied to permit copy and modify operations.
const ON_UUID& ON_ModelComponent::ParentId | ( | ) | const |
Parent object interface
bool ON_ModelComponent::ParentIdIsLocked | ( | ) | const |
bool ON_ModelComponent::ParentIdIsNil | ( | ) | const |
bool ON_ModelComponent::ParentIdIsNotNil | ( | ) | const |
bool ON_ModelComponent::ParentIdIsSet | ( | ) | const |
bool ON_ModelComponent::ReadModelComponentAttributes | ( | class ON_BinaryArchive & | archive | ) |
unsigned int ON_ModelComponent::ReferenceModelSerialNumber | ( | ) | const |
Returns: When a component is in a model for reference, this value identifies the reference model. Remarks: Reference components are not saved in .3dm archives. Typically this value is set and locked by the code that adds a component to a model. This value is copied by the copy constructor and operator=. This value is not saved in .3dm archives.
In Rhino, this value is a worksession model runtime serial number and these values are used. 0: not from a worksession reference model 1: from an unidentified reference model 2-1000: reserved for future use >1000: worksession reference model serial number
|
static |
Description: Remove all occurrences of ON::NameReferenceDelimiter() from name.
|
static |
Parameters: name - [in] Example: If the name is "A.3dm : X", then "X" is returned.
|
static |
Description: Remove any trailing occurrence of ON_ModelComponent::NamePathSeparator from name.
|
static |
Description: Remove any trailing occurrence of ON_ModelComponent::NameReferenceDelimiter from name. Example: "A.3dm" = ON_ModelComponent::RemoveTrailingRemoveReferencePrefixDelimiter("A.3dm : ");
|
static |
Description: Remove any trailing occurrence of ON_ModelComponent::NameReferenceSeparator from name.
ON__UINT64 ON_ModelComponent::RuntimeSerialNumber | ( | ) | const |
Returns: The runtime serial number.
This value is unique for every instance of an ON_ModelComponent class.
This value is never saved in .3dm archives.
const ON_UUID& ON_ModelComponent::SetAndLockId | ( | ) |
Description: Sets the id to a new value created by ON_CreateUuid() and locks the id attribute so it cannot be changed. Returns: ON_nil_uuid: Id is locked. Otherwise the value of the new id.
bool ON_ModelComponent::SetAsSystemComponent | ( | ) |
bool ON_ModelComponent::SetAsUnsetSystemComponent | ( | ) |
bool ON_ModelComponent::SetComponentType | ( | ON_ModelComponent::Type | component_component_type | ) |
Parameters: component_component_type - [in] Returns: true if the component_type value was changed to component_component_type or is already equal to component_component_type. false if the component_type value is locked and component_component_type != locked value.
bool ON_ModelComponent::SetDeletedModelComponentState | ( | bool | bDeleted, |
class ON_ComponentManifest * | manifest | ||
) |
Parameters: bDeleted - [in] manifest - [in/out] optional manifest to update Returns: True if the component's deleted state was changed from !bDeleted to bDeleted and all other name and manifest information was updated as expected.
void ON_ModelComponent::SetHiddenModelComponentState | ( | bool | bHidden | ) |
const ON_UUID& ON_ModelComponent::SetId | ( | ) |
Description: Sets the id to a new value created by ON_CreateUuid(). Returns: ON_nil_uuid: Id is locked. Otherwise the value of the new id.
bool ON_ModelComponent::SetId | ( | const ON_UUID & | component_id | ) |
Parameters: component_id - [in] Returns: true if the id value was changed to component_id or is already equal to component_id. false if the id value is locked and component_id != locked value.
bool ON_ModelComponent::SetIdentification | ( | const class ON_ComponentManifestItem & | manifest_item, |
const wchar_t * | manifest_name, | ||
bool | bSetId, | ||
bool | bParentId, | ||
bool | bSetName, | ||
bool | bSetIndex | ||
) |
Description: Set a component's id, name and index to the manifest_item values. Parameters: manifest_item - [in] manifest_name - [in] bSetId - [in] Set the component id to manifest_item.m_manifest_id. bSetParentId - [in] Use manifest_item.NameHash().ParentId() bSetName - [in] Set the component name to manifest_name. bSetIndex - [in] Set the component index to manifest_item.m_manifest_index.
bool ON_ModelComponent::SetIndex | ( | int | component_index | ) |
Parameters: component_index - [in] Returns: true if the index value was changed to component_index or is already equal to component_index. false if the index value is locked and component_index != locked value.
bool ON_ModelComponent::SetLocalizedSystemComponentName | ( | const wchar_t * | system_component_localized_name | ) |
void ON_ModelComponent::SetLockedModelComponentState | ( | bool | bLocked | ) |
bool ON_ModelComponent::SetModelComponentStatus | ( | ON_ComponentStatus | component_status | ) |
bool ON_ModelComponent::SetModelSerialNumber | ( | unsigned int | model_serial_number | ) |
Model Serial Number interface
The ModelSerialNumber() identifies the model that manages the component. If the component is from some type of reference model, then one or both of the reference model serial number and InstanceDefinitionModelSerialNumber() identify the source model. Description: Specify the model that is managing this component. Parameters: model_serial_number - [in] In Rhino, this is the document runtime serial number. Returns: true if the model_serial_number value was changed to component_model_serial_number or is already equal to component_model_serial_number. false if the model_serial_number value is locked and component_model_serial_number != locked value.
bool ON_ModelComponent::SetModelSerialNumber | ( | unsigned int | model_serial_number, |
unsigned int | reference_model_serial_number, | ||
unsigned int | instance_definition_model_serial_number | ||
) |
Description: Specify the model that is managing this component. Parameters: model_serial_number - [in] In Rhino, this is the document runtime serial number. reference_model_serial_number - [in] In Rhino, this is the worksession reference model serial number. instance_definition_model_serial_number - [in] In Rhino, this is the linked instance definition model serial number. Returns: true if the model_serial_number value was changed to component_model_serial_number or is already equal to component_model_serial_number. false if the model_serial_number value is locked and component_model_serial_number != locked value.
bool ON_ModelComponent::SetName | ( | const wchar_t * | component_name | ) |
Parameters: component_name - [in] Leading and trailing nonzero unicode code points with values <= ON_wString::Space are ignored. Returns: true if the name attribute was changed to component_name or is already equal to component_name. false False is returned and no changes are made if the name attribute is locked and component_name != locked value or component_name is not empty and ON_ModelComponent::IsValidComponentName(component_name) is false. Remarks: If component_name is nullptr or the empty string, the NameIsSet() state will still be true.
bool ON_ModelComponent::SetParentId | ( | const ON_UUID & | parent_id | ) |
|
overridevirtual |
Returns: An estimate of the amount of memory the class uses in bytes.
Reimplemented from ON_Object.
Reimplemented in ON_TextureMapping, and CRhinoInstanceDefinition.
|
static |
Example: If a full layer name is "A.3dm : X::Y::Z", then reference_prefix = "A.3dm" name_parent = "X::Y" name_leaf = "Z"
bool ON_ModelComponent::UndeleteName | ( | ) |
|
static |
Parameters: component_type - [in] Returns: True if component name ignores case when testing for equality. Remarks: Currently all other component types except for groups ignore case when testing for equality. This function should be called "NameIgnoresCase" because it also applies to components like materials and geometry objects that are not required to have a unique name.
|
static |
Parameters: component_type - [in] Returns: True if objects with the same name and different parents are considered to have a unique name. This typically means the user interface for the object names is some type of tree. Remarks: Currently, layers are the only object type where this property is true. This function should be called "NameIncludesParent" because it also applies to components like materials and geometry objects that are not required to have a unique name.
|
static |
Parameters: component_type - [in] Returns: True if component's of the specified type require unique names. Remarks: In general, component names ignore case and parent when testing for equality. However, there are exceptions. Use ON_ModelComponent::UniqueNameIncludesParent() and ON_ModelComponent::UniqueNameIgnoresCase() to test for exceptions.
bool ON_ModelComponent::WriteModelComponentAttributes | ( | class ON_BinaryArchive & | archive, |
unsigned int | attributes_filter | ||
) | const |
|
friend |
|
static |
Description: Returns the string "::". This is the string Rhino uses in layer full path names to separate the names of individual layers.
Example: If a model has layers A B C then the full path names are "A", "A::B", "A::B::C".
See Also: ON_ModelComponent::ReferencePrefixDelimiter = " : " ON_ModelComponent::ReferencePrefixSeparator = ">" ON_ModelComponent::NamePathSeparator = "::"
|
static |
Description: Returns the string " : ". This is the string Rhino uses to separate the reference file names from and model component names read from those files.
Example: File A.3dm contains a layer "alpha", dimstyle "a1", an embedded block "A_blk", and a linked block "X" referencing B.3dm with reference component names. File B.3dm contains a layer "beta", dimstyle "b1", an embedded block "B_blk", and linked block "Y" referencing C.3dm. File C.3dm contains a layer gamma, dimstyle "c1", an embedded block "C_blk", and linked block "Z" referencing D.3dm. File D.3dm contains a layer "delta", dimstyle "d1", and an embedded block "D_blk".
Reading file A.3dm will create the following components: Layers: alpha X>B.3dm beta (full layer path "X>B.3dm::beta") Y>C.3dm gamma (full layer path "Y>C.3dm::gamma") Z>D.3dm delta (full layer path "Z>D.3dm::delta") Blocks: X A_blk Y B.3dm : B_blk Z C.3dm : C_blk D.3dm : D_blk Annotation styles a1 B.3dm : b1 C.3dm : c1 D.3dm : d1
See Also: ON_ModelComponent::ReferencePrefixDelimiter = " : " ON_ModelComponent::ReferencePrefixSeparator = ">" ON_ModelComponent::NamePathSeparator = "::"
|
static |
Description: Returns the string ">". This is the string Rhino uses to separate the block definition name and linked file name in grandparent layers.
Example: File A.3dm contains a layer "alpha", dimstyle "a1", an embedded block "A_blk", and a linked block "X" referencing B.3dm with reference component names. File B.3dm contains a layer "beta", dimstyle "b1", an embedded block "B_blk", and linked block "Y" referencing C.3dm. File C.3dm contains a layer gamma, dimstyle "c1", an embedded block "C_blk", and linked block "Z" referencing D.3dm. File D.3dm contains a layer "delta", dimstyle "d1", and an embedded block "D_blk".
Reading file A.3dm will create the following components: Layers: alpha X>B.3dm beta (full layer path "X>B.3dm::beta") Y>C.3dm gamma (full layer path "Y>C.3dm::gamma") Z>D.3dm delta (full layer path "Z>D.3dm::delta") Blocks: X A_blk Y B.3dm : B_blk Z C.3dm : C_blk D.3dm : D_blk Annotation styles a1 B.3dm : b1 C.3dm : c1 D.3dm : d1
See Also: ON_ModelComponent::ReferencePrefixDelimiter = " : " ON_ModelComponent::ReferencePrefixSeparator = ">" ON_ModelComponent::NamePathSeparator = "::"
|
static |
|
static |