Rhino C++ API  7.21
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
ON_3dmObjectAttributes Class Reference

#include <opennurbs_3dm_attributes.h>

Inheritance diagram for ON_3dmObjectAttributes:
ON_Object CRhinoObjectAttributes

Public Member Functions

 ON_3dmObjectAttributes ()
 attributes of geometry and dimension table objects More...
 ~ON_3dmObjectAttributes ()
bool AddDisplayMaterialRef (ON_DisplayMaterialRef display_material)
void AddToGroup (int)
unsigned int ApplyParentalControl (const ON_3dmObjectAttributes &parent_attributes, const ON_Layer &parent_layer, unsigned int control_limits=0xFFFFFFFF)
ON::object_color_source ColorSource () const
const ON_MeshParametersCustomRenderMeshParameters () const
void Default ()
 Initializes all attributes to the default values. More...
void DeleteCustomRenderMeshParameters ()
int DisplayMaterialRefCount () const
void Dump (ON_TextLog &) const override
 virtual More...
bool EnableCustomRenderMeshParameters (bool bEnable)
bool FindDisplayMaterialId (const ON_UUID &viewport_id, ON_UUID *display_material_id=nullptr) const
bool FindDisplayMaterialRef (const ON_DisplayMaterialRef &search_material, ON_DisplayMaterialRef *found_material=nullptr) const
 display material references More...
int GetGroupList (ON_SimpleArray< int > &) const
int GroupCount () const
 group interface More...
const int * GroupList () const
bool IsInGroup (int) const
 Returns true if object is in group with the specified index. More...
bool IsInGroups (const ON_SimpleArray< int > &) const
 Returns true if object is in any of the groups in the list. More...
bool IsInGroups (int, const int *) const
 Returns true if the object is in any of the groups in the list. More...
bool IsInstanceDefinitionObject () const
bool IsValid (class ON_TextLog *text_log=nullptr) const override
bool IsVisible () const
ON::object_linetype_source LinetypeSource () const
ON::object_material_source MaterialSource () const
ON::object_mode Mode () const
 Interface ////////////////////////////////////////////////////////. More...
const ON_wString Name () const
bool operator!= (const ON_3dmObjectAttributes &) const
bool operator== (const ON_3dmObjectAttributes &) const
ON::plot_color_source PlotColorSource () const
ON::plot_weight_source PlotWeightSource () const
bool Read (ON_BinaryArchive &) override
 virtual More...
void RemoveAllDisplayMaterialRefs ()
bool RemoveDisplayMaterialRef (ON_UUID viewport_id, ON_UUID display_material_id=ON_nil_uuid)
void RemoveFromAllGroups ()
 Removes object from all groups. More...
void RemoveFromGroup (int)
void RemoveFromTopGroup ()
 removes the object from the last group in the group list More...
void SetColorSource (ON::object_color_source)
 See ColorSource(). More...
bool SetCustomRenderMeshParameters (const class ON_MeshParameters &mp)
void SetLinetypeSource (ON::object_linetype_source)
 See LinetypeSource(). More...
void SetMaterialSource (ON::object_material_source ms)
void SetMode (ON::object_mode)
 See Mode(). More...
bool SetName (const wchar_t *name, bool bFixInvalidName)
void SetPlotColorSource (ON::plot_color_source)
 See PlotColorSource(). More...
void SetPlotWeightSource (ON::plot_weight_source)
void SetVisible (bool bVisible)
unsigned int SizeOf () const override
 virtual More...
int TopGroup () const
bool Transform (const ON_Xform &xform)
bool UpdateReferencedComponents (const class ON_ComponentManifest &source_manifest, const class ON_ComponentManifest &destination_manifest, const class ON_ManifestMap &manifest_map) override
bool Write (ON_BinaryArchive &) const override
 virtual More...
- Public Member Functions inherited from ON_Object
 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 ON__UINT32 DataCRC (ON__UINT32 current_remainder) const
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_UserDataFirstUserData () const
virtual unsigned int GetComponentsWithSetStates (ON_ComponentStatus states_filter, bool bAllEqualStates, ON_SimpleArray< ON_COMPONENT_INDEX > &components) const
class ON_UserDataGetUserData (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 ()
virtual ON_UUID ModelObjectId () const
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_Objectoperator= (const ON_Object &)
void PurgeUserData ()
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)
int UserStringCount () const

Public Attributes

ON_Color m_color
int m_display_order
ON_SimpleArray< ON_DisplayMaterialRefm_dmref
int m_layer_index
int m_linetype_index
int m_material_index
ON_wString m_name
ON::object_decoration m_object_decoration
 Used to indicate an object has a decoration (like an arrowhead on a curve) More...
ON_Color m_plot_color
double m_plot_weight_mm
ON_ObjectRenderingAttributes m_rendering_attributes
ON::active_space m_space
ON_wString m_url
ON_UUID m_uuid
ON_UUID m_viewport_id
int m_wire_density

Static Public Attributes

static const ON_3dmObjectAttributes DefaultAttributes
static const ON_3dmObjectAttributes Unset

Additional Inherited Members

- Public Types inherited from ON_Object
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

Detailed Description


/ / Copyright (c) 1993-2012 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. / ////////////////////////////////////////////////////////////// defines ON_3dmObjectAttributes Description: Top level OpenNURBS objects have geometry and attributes. The geometry is stored in some class derived from ON_Geometry and the attributes are stored in an ON_3dmObjectAttributes class. Examples of attributes are object name, object id, display attributes, group membership, layer membership, and so on.

Remarks: 7 January 2003 Dale Lear Derived from ON_Object so ON_UserData can be attached to ON_3dmObjectAttributes.

Constructor & Destructor Documentation

◆ ON_3dmObjectAttributes()

ON_3dmObjectAttributes::ON_3dmObjectAttributes ( )

attributes of geometry and dimension table objects

◆ ~ON_3dmObjectAttributes()

ON_3dmObjectAttributes::~ON_3dmObjectAttributes ( )

Member Function Documentation

◆ AddDisplayMaterialRef()

bool ON_3dmObjectAttributes::AddDisplayMaterialRef ( ON_DisplayMaterialRef  display_material)

Description: Add a display material reference to the attributes. If there is an existing entry with a matching viewport id, the existing entry is replaced. Parameters: display_material - [in] Returns: True if input is valid (material id != nil) See Also: ON_3dmObjectAttributes::FindDisplayMaterialRef ON_3dmObjectAttributes::RemoveDisplayMaterialRef

◆ AddToGroup()

void ON_3dmObjectAttributes::AddToGroup ( int  )

Adds object to the group with specified index by appending index to group list (If the object is already in group, nothing is changed.)

◆ ApplyParentalControl()

unsigned int ON_3dmObjectAttributes::ApplyParentalControl ( const ON_3dmObjectAttributes parent_attributes,
const ON_Layer parent_layer,
unsigned int  control_limits = 0xFFFFFFFF 

Description: If "this" has attributes (color, plot weight, ...) with "by parent" sources, then the values of those attributes on parent_attributes are copied. Parameters: parent_attributes - [in] parent_layer - [in] control_limits - [in] The bits in control_limits determine which attributes may may be copied. 1: visibility 2: color 4: render material 8: plot color 0x10: plot weight 0x20: linetype 0x40: display order

Returns: The bits in the returned integer indicate which attributes were actually modified.

       1: visibility
       2: color
       4: render material
       8: plot color
   0x10: plot weight
   0x20: linetype
   0x40: display order

ON_DEPRECATED unsigned int ApplyParentalControl( const ON_3dmObjectAttributes& parent_attributes, unsigned int control_limits = 0xFFFFFFFF );

◆ ColorSource()

ON::object_color_source ON_3dmObjectAttributes::ColorSource ( ) const

The color used to display an OpenNURBS object is specified in one of three ways. If ColorSource() is ON::color_from_layer, then the object's layer ON_Layer::Color() is used. If ColorSource() is ON::color_from_object, then value of m_color is used. If ColorSource() is ON::color_from_material, then the diffuse color of the object's render material is used. See ON_3dmObjectAttributes::MaterialSource() to determine where to get the definition of the object's render material.

◆ CustomRenderMeshParameters()

const ON_MeshParameters* ON_3dmObjectAttributes::CustomRenderMeshParameters ( ) const

Returns: Null or a pointer to fragile mesh parameters. If a non-null pointer is returned, copy it and use the copy. DO NOT SAVE THIS POINTER FOR LATER USE. A call to DeleteMeshParameters() will delete the class. DO NOT const_cast the returned pointer and change its settings. You must use either SetMeshParameters() or EnableMeshParameters() to change settings. Remarks: If the value of ON_MeshParameters::m_bCustomSettingsDisabled is true, then do no use these parameters to make a render mesh.

◆ Default()

void ON_3dmObjectAttributes::Default ( )

Initializes all attributes to the default values.

◆ DeleteCustomRenderMeshParameters()

void ON_3dmObjectAttributes::DeleteCustomRenderMeshParameters ( )

Description: Deletes any per object mesh parameters.

◆ DisplayMaterialRefCount()

int ON_3dmObjectAttributes::DisplayMaterialRefCount ( ) const

Returns: Number of diplay material refences.

◆ Dump()

void ON_3dmObjectAttributes::Dump ( ON_TextLog ) const


Reimplemented from ON_Object.

Reimplemented in CRhinoObjectAttributes.

◆ EnableCustomRenderMeshParameters()

bool ON_3dmObjectAttributes::EnableCustomRenderMeshParameters ( bool  bEnable)

Parameters: bEnable - [in] true to enable use of the per object mesh parameters. false to disable use of the per object mesh parameters. Returns: False if the object doe not have per object mesh parameters and bEnable was true. Use SetMeshParameters() to set per object mesh parameters. Remarks: Sets the value of ON_MeshParameters::m_bCustomSettingsDisabled to !bEnable

◆ FindDisplayMaterialId()

bool ON_3dmObjectAttributes::FindDisplayMaterialId ( const ON_UUID viewport_id,
ON_UUID display_material_id = nullptr 
) const

Description: Quick way to see if a viewport has a special material. Parameters: viewport_id - [in] display_material_id - [out] Returns: True if a material_id is assigned.

◆ FindDisplayMaterialRef()

bool ON_3dmObjectAttributes::FindDisplayMaterialRef ( const ON_DisplayMaterialRef search_material,
ON_DisplayMaterialRef found_material = nullptr 
) const

display material references

Description: Searches for a matching display material. For a given viewport id, there is at most one display material. For a given display material id, there can be multiple viewports. If there is a display reference in the list with a nil viewport id, then the display material will be used in all viewports that are not explictly referenced in other ON_DisplayMaterialRefs.

Parameters: search_material - [in] found_material - [out]

If FindDisplayMaterialRef(), the input value of search_material is never changed. If FindDisplayMaterialRef() returns true, the chart shows the output value of display_material. When there are multiple possibilities for a match, the matches at the top of the chart have higher priority.

search_material found_material input value output value

(nil,nil) (nil,did) if (nil,did) is in the list. (nil,did) (vid,did) if (vid,did) is in the list. (nil,did) (nil,did) if (nil,did) is in the list. (vid,nil) (vid,did) if (vid,did) is in the list (vid,nil) (vid,did) if (nil,did) is in the list (vid,did) (vid,did) if (vid,did) is in the list.

Example: ON_UUID display_material_id = ON_nil_uuid; ON_Viewport vp = ...; ON_DisplayMaterialRef search_dm; search_dm.m_viewport_id = vp.ViewportId(); ON_DisplayMaterialRef found_dm; if ( attributes.FindDisplayMaterial(search_dm, &found_dm) ) { display_material_id = found_dm.m_display_material_id; }

Returns: True if a matching display material is found. See Also: ON_3dmObjectAttributes::AddDisplayMaterialRef ON_3dmObjectAttributes::RemoveDisplayMaterialRef

◆ GetGroupList()

int ON_3dmObjectAttributes::GetGroupList ( ON_SimpleArray< int > &  ) const

Returns GroupCount() and puts a list of zero based group indices into the array.

◆ GroupCount()

int ON_3dmObjectAttributes::GroupCount ( ) const

group interface

returns number of groups object belongs to

◆ GroupList()

const int* ON_3dmObjectAttributes::GroupList ( ) const

Returns and array an array of GroupCount() zero based group indices. If GroupCount() is zero, then GroupList() returns nullptr.

◆ IsInGroup()

bool ON_3dmObjectAttributes::IsInGroup ( int  ) const

Returns true if object is in group with the specified index.

◆ IsInGroups() [1/2]

bool ON_3dmObjectAttributes::IsInGroups ( const ON_SimpleArray< int > &  ) const

Returns true if object is in any of the groups in the list.

◆ IsInGroups() [2/2]

bool ON_3dmObjectAttributes::IsInGroups ( int  ,
const int *   
) const

Returns true if the object is in any of the groups in the list.

◆ IsInstanceDefinitionObject()

bool ON_3dmObjectAttributes::IsInstanceDefinitionObject ( ) const

Description: Use this query to determine if an object is part of an instance definition. Returns: True if the object is part of an instance definition.

◆ IsValid()

bool ON_3dmObjectAttributes::IsValid ( class ON_TextLog text_log = nullptr) const

ON_Object virtual interface. See ON_Object for details.

Reimplemented from ON_Object.

◆ IsVisible()

bool ON_3dmObjectAttributes::IsVisible ( ) const

Returns: Returns true if object is visible. See Also: ON_3dmObjectAttributes::SetVisible

◆ LinetypeSource()

ON::object_linetype_source ON_3dmObjectAttributes::LinetypeSource ( ) const

The Linetype used to display an OpenNURBS object is specified in one of two ways. If LinetypeSource() is ON::linetype_from_layer, then the object's layer ON_Layer::Linetype() is used. If LinetypeSource() is ON::linetype_from_object, then value of m_linetype is used.

◆ MaterialSource()

ON::object_material_source ON_3dmObjectAttributes::MaterialSource ( ) const

END: Per object mesh parameter support Description: Determine if the simple material should come from the object or from it's layer. High quality rendering plug-ins should use m_rendering_attributes. Returns: Where to get material information if you do are too lazy to look in m_rendering_attributes.m_materials[].

◆ Mode()

ON::object_mode ON_3dmObjectAttributes::Mode ( ) const

Interface ////////////////////////////////////////////////////////.

An OpenNURBS object must be in one of three modes: normal, locked or hidden. If an object is in normal mode, then the object's layer controls visibility and selectability. If an object is locked, then the object's layer controls visibility by the object cannot be selected. If the object is hidden, it is not visible and it cannot be selected.

◆ Name()

const ON_wString ON_3dmObjectAttributes::Name ( ) const

◆ operator!=()

bool ON_3dmObjectAttributes::operator!= ( const ON_3dmObjectAttributes ) const

◆ operator==()

bool ON_3dmObjectAttributes::operator== ( const ON_3dmObjectAttributes ) const

Default C++ copy constructor and operator= work fine Do not provide custom versions NO ///< ON_3dmObjectAttributes(const ON_3dmObjectAttributes&); NO ///< ON_3dmObjectAttributes& operator=(const ON_3dmObjectAttributes&);

◆ PlotColorSource()

ON::plot_color_source ON_3dmObjectAttributes::PlotColorSource ( ) const

The color used to plot an OpenNURBS object on paper is specified in one of three ways. If PlotColorSource() is ON::plot_color_from_layer, then the object's layer ON_Layer::PlotColor() is used. If PlotColorSource() is ON::plot_color_from_object, then value of PlotColor() is used.

◆ PlotWeightSource()

ON::plot_weight_source ON_3dmObjectAttributes::PlotWeightSource ( ) const

◆ Read()

bool ON_3dmObjectAttributes::Read ( ON_BinaryArchive )


Reimplemented from ON_Object.

◆ RemoveAllDisplayMaterialRefs()

void ON_3dmObjectAttributes::RemoveAllDisplayMaterialRefs ( )

Description: Remove a the entire display material reference list.

◆ RemoveDisplayMaterialRef()

bool ON_3dmObjectAttributes::RemoveDisplayMaterialRef ( ON_UUID  viewport_id,
ON_UUID  display_material_id = ON_nil_uuid 

Description: Remove a display material reference from the list. Parameters: viewport_id - [in] Any display material references with this viewport id will be removed. If nil, then viewport_id is ignored. display_material_id - [in] Any display material references that match the viewport_id and have this display_material_id will be removed. If nil, then display_material_id is ignored. Returns: True if a display material reference was removed. See Also: ON_3dmObjectAttributes::FindDisplayMaterialRef ON_3dmObjectAttributes::AddDisplayMaterialRef

◆ RemoveFromAllGroups()

void ON_3dmObjectAttributes::RemoveFromAllGroups ( )

Removes object from all groups.

◆ RemoveFromGroup()

void ON_3dmObjectAttributes::RemoveFromGroup ( int  )

Removes object from the group with specified index. If the object is not in the group, nothing is changed.

◆ RemoveFromTopGroup()

void ON_3dmObjectAttributes::RemoveFromTopGroup ( )

removes the object from the last group in the group list

◆ SetColorSource()

void ON_3dmObjectAttributes::SetColorSource ( ON::object_color_source  )

◆ SetCustomRenderMeshParameters()

bool ON_3dmObjectAttributes::SetCustomRenderMeshParameters ( const class ON_MeshParameters mp)

BEGIN: Per object mesh parameter support Parameters: mp - [in] per object mesh parameters Returns: True if successful.

◆ SetLinetypeSource()

void ON_3dmObjectAttributes::SetLinetypeSource ( ON::object_linetype_source  )

◆ SetMaterialSource()

void ON_3dmObjectAttributes::SetMaterialSource ( ON::object_material_source  ms)

Description: Specifies if the simple material should be the one indicated by the material index or the one indicated by the object's layer. Parameters: ms - [in]

◆ SetMode()

void ON_3dmObjectAttributes::SetMode ( ON::object_mode  )

See Mode().

◆ SetName()

bool ON_3dmObjectAttributes::SetName ( const wchar_t *  name,
bool  bFixInvalidName 

◆ SetPlotColorSource()

void ON_3dmObjectAttributes::SetPlotColorSource ( ON::plot_color_source  )

◆ SetPlotWeightSource()

void ON_3dmObjectAttributes::SetPlotWeightSource ( ON::plot_weight_source  )

◆ SetVisible()

void ON_3dmObjectAttributes::SetVisible ( bool  bVisible)

Description: Controls object visibility Parameters: bVisible - [in] true to make object visible, false to make object invisible See Also: ON_3dmObjectAttributes::IsVisible

◆ SizeOf()

unsigned int ON_3dmObjectAttributes::SizeOf ( ) const


Reimplemented from ON_Object.

◆ TopGroup()

int ON_3dmObjectAttributes::TopGroup ( ) const

Returns the index of the last group in the group list or -1 if the object is not in any groups

◆ Transform()

bool ON_3dmObjectAttributes::Transform ( const ON_Xform xform)

Returns: True if successful. (xform is invertable or didn't need to be).

◆ UpdateReferencedComponents()

bool ON_3dmObjectAttributes::UpdateReferencedComponents ( const class ON_ComponentManifest source_manifest,
const class ON_ComponentManifest destination_manifest,
const class ON_ManifestMap manifest_map 

Description: 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. Parameters: 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. Returns: True if successful. False indicates a referenced component was not found in the manifest and the reference was changed to a default value. Example: If this object is an ON_Layer, the line pattern and render material references are updated. If this object is an ON_DimStyle, the text style reference is updated. If this object is an ON_3dmObjectAttributes, the layer, material, line pattern, and group references are updated.

Reimplemented from ON_Object.

◆ Write()

bool ON_3dmObjectAttributes::Write ( ON_BinaryArchive ) const


Reimplemented from ON_Object.

Member Data Documentation

◆ DefaultAttributes

const ON_3dmObjectAttributes ON_3dmObjectAttributes::DefaultAttributes

◆ m_color

ON_Color ON_3dmObjectAttributes::m_color

If ON::color_from_object == ColorSource(), then m_color is the object's display color.

◆ m_display_order

int ON_3dmObjectAttributes::m_display_order

Display order used to force objects to be drawn on top or behind each other 0 = draw object in standard depth buffered order <0 = draw object behind "normal" draw order objects >0 = draw object on top of "noraml" draw order objects Larger number draws on top of smaller number.

◆ m_dmref

ON_SimpleArray<ON_DisplayMaterialRef> ON_3dmObjectAttributes::m_dmref

◆ m_layer_index

int ON_3dmObjectAttributes::m_layer_index

Layer definitions in an OpenNURBS model are stored in a layer table. The layer table is conceptually an array of ON_Layer classes. Every OpenNURBS object in a model is on some layer. The object's layer is specified by zero based indicies into the ON_Layer array.

◆ m_linetype_index

int ON_3dmObjectAttributes::m_linetype_index

Linetype definitions in an OpenNURBS model are stored in a linetype table. The linetype table is conceptually an array of ON_Linetype classes. Every OpenNURBS object in a model references some linetype. The object's linetype is specified by zero based indicies into the ON_Linetype array. index 0 is reserved for continuous linetype (no pattern)

◆ m_material_index

int ON_3dmObjectAttributes::m_material_index

Rendering material: If you want something simple and fast, set m_material_index to the index of the rendering material and ignore m_rendering_attributes. If you are developing a high quality plug-in renderer, and a user is assigning one of your fabulous rendering materials to this object, then add rendering material information to the m_rendering_attributes.m_materials[] array.

Developers: As soon as m_rendering_attributes.m_materials[] is not empty, rendering material queries slow down. Do not populate m_rendering_attributes.m_materials[] when setting m_material_index will take care of your needs.

◆ m_name

ON_wString ON_3dmObjectAttributes::m_name

The m_name member is public to avoid breaking the SDK. Use SetName() and Name() for proper validation. OpenNURBS object have optional text names. More than one object in a model can have the same name and some objects may have no name. ON_ModelComponent::IsValidComponentName(m_name) should be true.

◆ m_object_decoration

ON::object_decoration ON_3dmObjectAttributes::m_object_decoration

Used to indicate an object has a decoration (like an arrowhead on a curve)

◆ m_plot_color

ON_Color ON_3dmObjectAttributes::m_plot_color

If ON::plot_color_from_object == PlotColorSource(), then m_color is the object's display color.

◆ m_plot_weight_mm

double ON_3dmObjectAttributes::m_plot_weight_mm

Plot weight in millimeters. =0.0 means use the default width <0.0 means don't plot (visible for screen display, but does not show on plot)

◆ m_rendering_attributes

ON_ObjectRenderingAttributes ON_3dmObjectAttributes::m_rendering_attributes

◆ m_space

ON::active_space ON_3dmObjectAttributes::m_space

Starting with V4, objects can be in either model space or page space. If an object is in page space, then m_viewport_id is not nil and identifies the page it is on.

◆ m_url

ON_wString ON_3dmObjectAttributes::m_url

OpenNURBS objects may have an URL. There are no restrictions on what value this URL may have. As an example, if the object came from a commercial part library, the URL might point to the definition of that part.

◆ m_uuid

ON_UUID ON_3dmObjectAttributes::m_uuid

Every OpenNURBS object has a UUID (universally unique identifier). The default value is nullptr. When an OpenNURBS object is added to a model, the value is checked. If the value is nullptr, a new UUID is created. If the value is not nullptr but it is already used by another object in the model, a new UUID is created. If the value is not nullptr and it is not used by another object in the model, then that value persists. When an object is updated, by a move for example, the value of m_uuid persists.

◆ m_viewport_id

ON_UUID ON_3dmObjectAttributes::m_viewport_id

If m_viewport_id is nil, the object is active in all viewports. If m_viewport_id is not nil, then this object is only active in a specific view.
This field is primarily used to assign page space objects to a specific page, but it can also be used to restrict model space to a specific view.

◆ m_wire_density

int ON_3dmObjectAttributes::m_wire_density

When a surface object is displayed in wireframe, m_wire_density controls how many isoparametric wires are used.

@table value number of isoparametric wires -1 boundary wires 0 boundary and knot wires 1 boundary and knot wires and, if there are no interior knots, a single interior wire. N>=2 boundary and knot wires and (N-1) interior wires

◆ Unset

const ON_3dmObjectAttributes ON_3dmObjectAttributes::Unset