Rhino C++ API  8.6
Public Member Functions | Protected Member Functions | Friends | List of all members
CRhinoWidget Class Referenceabstract

#include <rhinoSdkWidget.h>

Inheritance diagram for CRhinoWidget:
CRhinoObject ON_Object

Public Member Functions

 CRhinoWidget ()
 
virtual void AddToDrawCache (CRhinoWidgetGeometry &geom)=0
 
virtual void ApplyTransformation (const ON_Xform &xform)=0
 
virtual ON_BoundingBox BoundingBox () const override
 
virtual ON_BoundingBox BoundingBox (const CRhinoViewport *) const override
 
virtual bool CanDrawMarquee (void) const
 
virtual void Draw (CRhinoDisplayPipeline &dp) const override
 Draws object based on pipeline display attributes... More...
 
IRhWidgetDrawCacheDrawCache (void) const
 
virtual void DrawFeedback (const ON_Xform &xformDynamic, CRhinoDisplayPipeline &dp) const =0
 
virtual void EnableGrips (bool bEnable) override
 
CRhinoWidgetGeometryGeometry (void) const
 
virtual void GetGeometryTransformData (const CRhinoWidgetGeometry &newGeom, ON_Xform &xform) const
 
virtual void GetGripPoints (ON_3dPointArray &aOut) const =0
 
virtual bool GetXformLocal (ON_Xform &xformLocalOut) const
 
virtual bool GetXformTrans (ON_Xform &xformTransOut) const =0
 
virtual bool GumballHack (const CRhinoDoc &doc, CRhinoGumball &gumball, bool bAlignToObject) const
 Added to support '15 March 2012, Mikko: Hack to get planar mapping widget gumball to behave the way it used to.'. More...
 
ON_Plane InitialObjectFrame (const CRhinoDoc &) const
 [SDK_UNFREEZE] More...
 
bool IsAssociatedWithListObject (ON_SimpleArray< CRhinoObject * > &list) const
 Added to support 'ALB 2011.6.3 - partial fix for TRR#34533, #34544'. More...
 
virtual bool IsAssociatedWithObject (const CRhinoObject &obj) const =0
 
virtual bool IsDeletable () const override
 
virtual bool IsSelectableWithGripsOn () const override
 true if can be selected while grips are on More...
 
virtual bool MovesWithAssociatedObjects (void) const =0
 
virtual CRhinoWidgetGeometryNewGeometry (void) const =0
 
virtual CRhinoWidgetGeometryNewGeometryForMovedGrip (const CRhinoWidgetGrip &movedGrip) const =0
 
virtual CRhinoWidgetGripNewGrip (int index) const
 
virtual ON::object_type ObjectType () const override
 
virtual void OnWidgetDeleted (void)
 
const CRhinoWidgetoperator= (const CRhinoWidget &w)
 
virtual int Pick (const CRhinoPickContext &, CRhinoObjRefArray &a) const override
 
virtual bool PickFilter (const CRhinoGetObject &go, bool bCheckSubObjects) const override
 
virtual void PreDrawUpdate (CRhinoDisplayPipeline &dp) const override
 
virtual void SetGeometryWhenGripDropped (CRhinoWidgetGeometry &newGeom, bool bApplyToDynamicDecal)=0
 
void SetInitialGeometry (ON_Geometry *)
 For internal use only. More...
 
virtual void SetInterestObject (const UUID &uuidObject) const
 
virtual void UpdateFeedbackManager (const CRhinoWidgetGeometry &geom, const ON_Xform &xformLocal) const =0
 
- Public Member Functions inherited from CRhinoObject
 CRhinoObject ()
 assigns a new object UUID More...
 
 CRhinoObject (const CRhinoObject &)
 copies source object UUID More...
 
 CRhinoObject (const ON_3dmObjectAttributes &)
 
virtual ~CRhinoObject ()
 
BOOL32 AttachAttributeUserData (ON_UserData *pUserData)
 
bool AttachGeometryUserData (ON_UserData *pUserData)
 
CRhinoObjectAttributesAttributes ()
 
virtual const CRhinoObjectAttributesAttributes () const
 
virtual void BeginTransform (CRhinoDoc &doc, bool bDeleteOriginal, bool bAddNewObjectToDoc, bool bAddTransformHistory)
 
virtual ON_BoundingBox BoundingBox (const class CRhinoViewport *pViewport) const
 
unsigned int BrepReferenceCount () const
 
class CRhObjectReferenceCounter * BrepReferenceCounter (void) const
 
void BrepReferenceCounter_DestroyRuntimeCache (bool bDelete) const
 
bool BrepReferenceCounterExists () const
 
bool CopyHistoryOnReplace () const
 
virtual int CreateMeshes (ON::mesh_type mesh_type, const ON_MeshParameters &mp, bool bIgnoreCustom=false)
 
BOOL32 DeleteAttributeUserData (ON_UUID userdata_uuid)
 
void DeleteDynamicTransform ()
 
bool DeleteGeometryUserData (ON_UUID userdata_uuid)
 
void DestroyMeshes (ON::mesh_type mesh_type)
 
virtual void DestroyMeshes (ON::mesh_type mesh_type, bool bDeleteMeshes)
 
void DestroyRuntimeCache (bool bDelete=true) override
 virtual ON_Object override More...
 
class CRhinoDocDocument () const
 
unsigned int DocumentRuntimeSerialNumber () const
 
void Draw (CRhinoViewport &) const
 
virtual void DrawGrips (class CRhinoDisplayPipeline &) const
 
virtual void DrawHighlightedSubObjects (class CRhinoDisplayPipeline &) const
 
virtual void DrawSubObject (class CRhinoDisplayPipeline &, ON_COMPONENT_INDEX) const
 Draws wireframe representation of a sub object. More...
 
virtual void DrawV6 (class CRhinoObjectDrawContext *draw_context) const RHINO_NOEXCEPT
 
virtual CRhinoObjectDuplicateRhinoObject () const
 
*enum ANALYSIS_MODE **bool EnableAnalysisMode (ON_UUID am_id, bool bEnable=true) const
 new way (not virtual) More...
 
virtual bool EnableCustomGrips (class CRhinoObjectGrips *custom_grips)
 
virtual void EndTransform (CRhinoDoc &doc, bool bDeleteOriginal, bool bAddNewObjectToDoc, bool bAddTransformHistory)
 
const ON_GeometryGeometry () const
 returns a pointer to the object's geometry More...
 
ON_UserDataGetAttributeUserData (ON_UUID userdata_uuid) const
 
bool GetDynamicTransform (ON_Xform &dynamic_xform) const
 
virtual bool GetFrame (ON_Plane &plane) const
 
ON_UserDataGetGeometryUserData (ON_UUID userdata_uuid) const
 
virtual int GetGrips (ON_SimpleArray< class CRhinoGripObject * > &grip_list) const
 
virtual int GetHighlightedSubObjects (ON_SimpleArray< ON_COMPONENT_INDEX > &component_indices) const
 
std::vector< std::shared_ptr< const ON_Mesh > > GetMeshes (ON::mesh_type mesh_type) const
 
virtual int GetMeshes (ON::mesh_type mesh_type, ON_SimpleArray< const ON_Mesh * > &meshes) const
 
void GetRenderMeshParameters (ON_MeshParameters &mp) const
 
virtual int GetSelectedSubObjects (ON_SimpleArray< ON_COMPONENT_INDEX > &component_indices) const
 
virtual int GetSubobjectMaterialComponents (ON_SimpleArray< ON_COMPONENT_INDEX > &components_with_subobject_materials) const
 
virtual int GetSubObjects (ON_SimpleArray< CRhinoObject * > &subObjects, const class CRhinoViewport *pViewport=NULL) const
 
virtual bool GetTightBoundingBox (ON_BoundingBox &tight_bbox, bool bGrowBox=false, const ON_Xform *xform=nullptr) const
 
virtual int GetWireframeCurves (ON_SimpleArray< ON_Curve * > &curve_list) const
 
const class CRhinoGripsEnablerGripsEnabler () const
 
int GripsOn () const
 
bool GripsSelected () const
 
bool HasCustomRenderMeshes (ON::mesh_type mt, const ON_Viewport *vp=nullptr, ON__UINT32 *flags=nullptr, const class CRhinoPlugIn *requestingPlugIn=nullptr, const class CDisplayPipelineAttributes *pAttributes=nullptr) const
 Determine if custom render meshes will be supplied for a particular object. More...
 
bool HasDynamicTransform () const
 
virtual bool HasSubobjectMaterials (void) const
 
bool Highlight (bool bHighlight=true) const
 
virtual bool HighlightRequiresRedraw () const
 
virtual bool HighlightSubObject (ON_COMPONENT_INDEX component_index, bool bHighlight=true) const
 
const CRhinoHistoryRecordHistoryRecord () const
 
const ON_UUID Id () const
 
bool InAnalysisMode () const
 
bool InAnalysisMode (const ON_UUID &am_id) const
 bool AnalysisMode( ANALYSIS_MODE am ) const; ///< old way More...
 
ON_Plane InitialObjectFrame (const CRhinoDoc &) const
 
const class CRhinoVisualAnalysisModeInShadedAnalysisMode () const
 
unsigned int IsActiveInDocument () const
 
virtual bool IsActiveInViewport (const class CRhinoViewport &) const
 
bool IsDeleted () const
 
virtual bool IsGroupObject () const
 
bool IsHidden () const
 
int IsHighlighted (BOOL32 bCheckSubObjects=false) const
 highlighted state (almost always = IsSelected() except in one or two commands) More...
 
bool IsInstanceDefinitionGeometry () const
 
int IsInstanceDefinitionGeometryEx () const
 
bool IsLocked () const
 
int IsMarked () const
 
virtual bool IsMeshable (ON::mesh_type) const
 Returns true if the object is capable of having a mesh of the specified type. More...
 
bool IsModelObject () const
 
bool IsNormal () const
 
bool IsPageObject () const
 
int IsProxy () const
 
bool IsReference () const
 
bool IsSelectable (bool bIgnoreSelectionState, bool bIgnoreGripsState, bool bIgnoreLocking, bool bIgnoreVisibility) const
 
bool IsSelectable (bool bIgnoreSelectionState=false, bool bIgnoreGripsState=false) const
 
int IsSelected (bool bCheckSubObjects=false) const
 
virtual bool IsSolid () const
 
virtual bool IsSubObjectHighlighted (ON_COMPONENT_INDEX component_index) const
 true if specified component is highlighted More...
 
bool IsSubObjectSelectable (ON_COMPONENT_INDEX component_index, bool bIgnoreSelectionState=false) const
 
virtual bool IsSubObjectSelected (ON_COMPONENT_INDEX component_index) const
 
bool IsValid (ON_TextLog *text_log=nullptr) const override
 
bool IsVisible () const
 
unsigned int LinkedInstanceDefinitionSerialNumber () const
 
void Mark (int)
 
void MemoryRelocate () override
 virtual ON_Object override More...
 
virtual int MeshCount (ON::mesh_type mesh_type, const ON_MeshParameters *mp=0) const
 
virtual const class CDisplayPipelineAttributesMeshDisplayAttributes (int mesh_index, const ON_Mesh &mesh, const class CDisplayPipelineAttributes &display_attrs) const
 
const ON_ModelComponentModelComponent () const
 
ON_UUID ModelObjectId () const override
 
virtual bool ModifyAttributes (const ON_3dmObjectAttributes &new_attributes, bool bEnableUndo=true, bool bQuiet=false)
 
const ON_wString Name () const
 
ON_Color ObjectDrawColor (bool bIgnoreObjectState=false) const
 
ON_Color ObjectDrawColor (const CRhinoObjectAttributes &attributes, bool bIgnoreObjectState=false) const
 
ON_Color ObjectDrawColor (const CRhinoObjectAttributes &attributes, const ON_UUID &viewport_id, bool bIgnoreObjectState) const
 
ON_Plane ObjectFrame (const ON_COMPONENT_INDEX &ci, unsigned int objectframe_flags) const
 
const class CRhinoLayerObjectLayer () const
 
const class CRhinoLayerObjectLayerPtr () const
 
const CRhinoLinetypeObjectLinetype () const
 
const CRhinoLinetypeObjectLinetypePtr () const
 
virtual const CRhinoMaterialObjectMaterial () const
 
virtual const CRhinoMaterialObjectMaterial (const ON_3dmObjectAttributes &attrs) const
 
virtual const CRhinoMaterialObjectMaterial (const ON_COMPONENT_INDEX &ci, const ON_UUID &plugin_id=RhinoDefaultRendererId(), const ON_3dmObjectAttributes *attrs=NULL) const
 This is now the preferred version of the function. This should be used to get materials component-wise in all cases. More...
 
virtual const CRhinoMaterialObjectMaterial (const ON_UUID &plugin_id) const
 
virtual const CRhRdkMaterialObjectRdkMaterial (const ON_COMPONENT_INDEX &ci, const ON_UUID &plugin_id=RhinoDefaultRendererId(), const ON_3dmObjectAttributes *attrs=NULL) const
 
virtual ON_wString OnDoubleClick (const CRhinoDoubleClickContext &double_click_context) const
 
CRhinoObjectoperator= (const CRhinoObject &)
 copies source object UUID More...
 
bool PerViewportIsVisible (ON_UUID viewport_id) const
 
virtual bool PickFilter (const class CRhinoGetObject &, bool) const
 
virtual bool PrepareToWrite (int archive_3dm_version)
 
virtual bool PromotePreviewMeshes (ON::mesh_type)
 
std::shared_ptr< const RhRdk::CustomRenderMeshes::IRenderMeshesRenderMeshes (ON::mesh_type mt, bool recursive, const ON_Viewport *vp=nullptr, const class CRhRdkObjectAncestry *ancestry_only_for_by_parent_attributes=nullptr, const CRhinoPlugIn *requestingPlugIn=nullptr, const CDisplayPipelineAttributes *pAttributes=nullptr, std::shared_ptr< const RhRdk::CustomRenderMeshes::IRenderMeshes > optional_initial_primitives=nullptr) const
 Returns a complete set of custom render meshes (primitives) for the object. Simple version with no need for flags. More...
 
std::shared_ptr< const RhRdk::CustomRenderMeshes::IRenderMeshesRenderMeshes (ON::mesh_type mt, const ON_Viewport *vp=nullptr, const class CRhRdkObjectAncestry *ancestry_only_for_by_parent_attributes=nullptr, ON__UINT32 *flags=nullptr, const CRhinoPlugIn *requestingPlugIn=nullptr, const CDisplayPipelineAttributes *pAttributes=nullptr, std::shared_ptr< const RhRdk::CustomRenderMeshes::IRenderMeshes > optional_initial_primitives=nullptr) const
 Returns a complete set of custom render meshes (primitives) for the object. More...
 
unsigned int RuntimeSerialNumber () const
 
int Select (bool bSelect, bool bSynchHighlight, bool bPersistentSelect, bool bIgnoreGripsState, bool bIgnoreLayerLocking, bool bIgnoreLayerVisibility) const
 
int Select (bool bSelect=true, bool bSynchHighlight=true, bool bPersistentSelect=true, bool bIgnoreGripsState=false) const
 
virtual int SelectSubObject (ON_COMPONENT_INDEX component_index, bool bSelect=true, bool bSynchHighlight=true, bool bPersistentSelect=false) const
 
bool SetCachedTextureCoordinates (const ON_TextureMapping &mapping, const ON_Xform *object_xform, bool bLazy=true) const
 
bool SetCachedTextureCoordinatesFromPlugIn (const ON_UUID &plugin_id) const
 Set cached texture coordinates for all mapping that require per vertex texture texture coordinates. Includes mappings referenced by object material and sub-object materials. More...
 
void SetCopyHistoryOnReplace (bool bCopy) const
 
bool SetDynamicTransform (const ON_Xform &dynamic_xform)
 
bool SetHistory (class CRhinoHistory &history)
 
void SetObjectFrame (const ON_COMPONENT_INDEX &ci, const ON_Plane &plane)
 
void SetObjectFrame (const ON_COMPONENT_INDEX &ci, const ON_Xform &wcs_to_ocs)
 
virtual bool SetRenderMeshParameters (const ON_MeshParameters &mp)
 
virtual bool SetTextureCoordinates (const ON_TextureMapping &mapping, const ON_Xform *object_xform, bool bLazy=true) const
 
virtual bool SetTextureCoordinatesFromPlugIn (const ON_UUID &plugin_id, int mapping_channel_id) const
 
virtual const wchar_t * ShortDescription (bool bPlural) const =0
 
virtual unsigned int SizeOf () const override
 returns number of bytes used by this particular instance More...
 
virtual bool SnapTo (const CRhinoSnapContext &snap_context, CRhinoSnapEvent &snap_event) const
 
ON::active_space Space () const
 
virtual ON_ComponentStatus SubObjectStatus () const
 
virtual bool SupportsBrepProxyReferenceCounting () const
 
bool UndoModifyAttributes (unsigned int ur_sn=0)
 
virtual int UnhighlightAllSubObjects ()
 returns number of changed subobjects More...
 
virtual int UnselectAllSubObjects ()
 returns number of unselected subobjects More...
 
void UpdateBoundingBox ()
 
virtual bool VetoTransformObject (CRhinoDoc &doc, bool bDeleteOriginal, bool bAddNewObjectToDoc, bool bAddTransformHistory) const
 
unsigned int WorksessionReferenceModelSerialNumber () const
 
- Public Member Functions inherited from ON_Object
 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 ON__UINT32 DataCRC (ON__UINT32 current_remainder) const
 
virtual bool DeleteComponents (const ON_COMPONENT_INDEX *ci_list, size_t ci_count)
 
bool DetachUserData (class ON_UserData *pUserData)
 
virtual void Dump (ON_TextLog &) const
 
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
 
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)
 
ON_Objectoperator= (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
 

Protected Member Functions

virtual ~CRhinoWidget ()
 
virtual void AddToDocNotification () override
 
ON_BoundingBox BoundingBoxImpl (void)
 
void CalculateXformForMovedGrip (const CRhinoWidgetGrip &movedGrip, ON_Xform &xformOut, bool constrain_axis[3]={}) const
 
void CheckUpdateGrips (void)
 
virtual void DeleteFromDocNotification () override
 
void RefreshGrips (void)
 
- Protected Member Functions inherited from CRhinoObject
void Destroy ()
 
virtual bool InternalVirtual_IsSelectable (bool bIgnoreSelectionState, bool bIgnoreGripsState, bool bIgnoreLocking, bool bIgnoreVisibility) const
 
virtual int SubObjectsAreHighlighted () const
 returns number of highlighted subobjects More...
 
virtual int SubObjectsAreSelected () const
 returns number of selected subobjects More...
 
virtual void SynchAttributes ()
 light objects are special because they are not in the geometry lists More...
 

Friends

class CRhinoWidgetGrips
 

Additional Inherited Members

- Public Types inherited from CRhinoObject
enum  GEOMETRY_TYPE {
  unknown_object_type = ON::object_type::unknown_object_type, point_object = ON::object_type::point_object, pointset_object = ON::object_type::pointset_object, curve_object = ON::object_type::curve_object,
  surface_object = ON::object_type::surface_object, polysrf_object = ON::object_type::polysrf_filter, edge_object = ON::object_type::edge_filter, polyedge_object = ON::object_type::polyedge_filter,
  loop_object = ON::object_type::loop_object, brepvertex_filter = ON::object_type::brepvertex_filter, mesh_object = ON::object_type::mesh_object, annotation_object = ON::object_type::annotation_object,
  light_object = ON::object_type::light_object, instance_reference = ON::object_type::instance_reference, grip_object = ON::object_type::grip_object, morph_control_object = ON::object_type::morph_control_object,
  subd_object = ON::object_type::subd_object, meshvertex_filter = ON::object_type::meshvertex_filter, meshedge_filter = ON::object_type::meshedge_filter, meshface_filter = ON::object_type::meshface_filter,
  meshcomponent_reference = ON::object_type::meshcomponent_reference, cage_object = ON::object_type::cage_object, hatch_object = ON::object_type::hatch_object, phantom_object = ON::object_type::phantom_object,
  extrusion_object = ON::object_type::extrusion_object, any_object = ON::object_type::any_object
}
 
enum  objectframe_flags : unsigned int { objectframe_standard = 0, objectframe_include_scale_transforms = 1, objectframe_return_unset = 2 }
 
- 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
}
 
- Static Public Member Functions inherited from CRhinoObject
static const CRhinoObjectFromId (unsigned int rhino_doc_runtime_serial_number, ON_UUID rhino_object_id)
 
static const CRhinoObjectFromRuntimeSerialNumber (unsigned int rhino_doc_runtime_serial_number, unsigned int rhino_object_runtime_serial_number)
 
static unsigned int NextRuntimeObjectSerialNumber ()
 
- Public Attributes inherited from CRhinoObject
class CRhObjectSdkExtensionm__object_sdk_extension
 
const class CRhinoObjectVisualAnalysisModem_analysis_mode_list
 list of enabled analysis modes More...
 
CRhinoCacheHandle m_cache
 
class CRhinoObjectGripsm_grips
 managed by derived objects More...
 
unsigned char m_use_preview_mesh
 
- Static Public Attributes inherited from CRhinoObject
static int m_no_show_mark
 
- Protected Attributes inherited from CRhinoObject
ON_BoundingBox m_bbox
 world coordinate bounding box More...
 
unsigned char m_geomem_type
 
ON_Geometrym_geometry
 
const CRhinoHistoryRecordm_history_record
 

Detailed Description

Description:

CRhinoWidget is a special kind of 'phantom' Rhino object which is used for widgets. A widget is a tool the user can use to manipulate data such as texture mappings or decals. Because widgets are also Rhino objects, they work with the gumball.

The widget base class is intentionally 'dumb'. A widget doesn't know exactly what it is being used for. That knowledge is delegated to subclasses created by widget clients.

NOTE: This object evolved from the 'mapping widget' but it is really nothing to do with 'mapping', 'texture mapping' or ON_TextureMapping. Mapping-specific code must not appear in this base class or its implementation.

To create your own widget, derive a class from CRhinoWidget and create the widget as follows:

::RhCreateWidget(doc, new CMyWidget(...));

Rhino will create a document-resident widget from your instance and take ownership of it; you must not store a pointer to it. Widgets, like other document-resident Rhino objects, are managed by the document.

Constructor & Destructor Documentation

◆ CRhinoWidget()

CRhinoWidget::CRhinoWidget ( )

◆ ~CRhinoWidget()

virtual CRhinoWidget::~CRhinoWidget ( )
protectedvirtual

Member Function Documentation

◆ AddToDocNotification()

virtual void CRhinoWidget::AddToDocNotification ( )
overrideprotectedvirtual

Description: This call informs an object it is about to be added to the list of active objects in the document. Some objects, like clipping planes, need to do a little extra cleanup before they are deleted.

Reimplemented from CRhinoObject.

◆ AddToDrawCache()

virtual void CRhinoWidget::AddToDrawCache ( CRhinoWidgetGeometry geom)
pure virtual

Add the widget's geometry to the draw cache.

◆ ApplyTransformation()

virtual void CRhinoWidget::ApplyTransformation ( const ON_Xform xform)
pure virtual

Apply a transformation to the widget's data.

◆ BoundingBox() [1/2]

virtual ON_BoundingBox CRhinoWidget::BoundingBox ( ) const
overridevirtual

Description: Gets 3d axis aligned bounding box that contains the object.

Returns: 3d bounding box

Remarks: The default implementation uses m_geometry->BoundingBox(), lazy evaluation, and caches the result in m_bbox.
If you override this function, then you must set m_bbox.

Reimplemented from CRhinoObject.

◆ BoundingBox() [2/2]

virtual ON_BoundingBox CRhinoWidget::BoundingBox ( const CRhinoViewport ) const
overridevirtual

◆ BoundingBoxImpl()

ON_BoundingBox CRhinoWidget::BoundingBoxImpl ( void  )
protected

◆ CalculateXformForMovedGrip()

void CRhinoWidget::CalculateXformForMovedGrip ( const CRhinoWidgetGrip movedGrip,
ON_Xform xformOut,
bool  constrain_axis[3] = {} 
) const
protected

◆ CanDrawMarquee()

virtual bool CRhinoWidget::CanDrawMarquee ( void  ) const
virtual

◆ CheckUpdateGrips()

void CRhinoWidget::CheckUpdateGrips ( void  )
protected

◆ DeleteFromDocNotification()

virtual void CRhinoWidget::DeleteFromDocNotification ( )
overrideprotectedvirtual

Description: This call informs an object it is about to be deleted. Some objects, like clipping planes, need to do a little extra cleanup before they are deleted.

Reimplemented from CRhinoObject.

◆ Draw()

virtual void CRhinoWidget::Draw ( CRhinoDisplayPipeline ) const
overridevirtual

Draws object based on pipeline display attributes...

Reimplemented from CRhinoObject.

◆ DrawCache()

IRhWidgetDrawCache& CRhinoWidget::DrawCache ( void  ) const

◆ DrawFeedback()

virtual void CRhinoWidget::DrawFeedback ( const ON_Xform xformDynamic,
CRhinoDisplayPipeline dp 
) const
pure virtual

Draw feedback when the widget is being moved.

◆ EnableGrips()

virtual void CRhinoWidget::EnableGrips ( bool  bGripsOn)
overridevirtual

Description: Turns on the object's default editing grips Parameters: bDefaultGripsOn - [in] True to turn on the object's default grips. False to turn off any grips. See Also: CRhinoObject::GripsOn CRhinoObject::GetGrips

Reimplemented from CRhinoObject.

◆ Geometry()

CRhinoWidgetGeometry& CRhinoWidget::Geometry ( void  ) const

◆ GetGeometryTransformData()

virtual void CRhinoWidget::GetGeometryTransformData ( const CRhinoWidgetGeometry newGeom,
ON_Xform xform 
) const
virtual

◆ GetGripPoints()

virtual void CRhinoWidget::GetGripPoints ( ON_3dPointArray aOut) const
pure virtual

Get the widget's grip points.

◆ GetXformLocal()

virtual bool CRhinoWidget::GetXformLocal ( ON_Xform xformLocalOut) const
virtual
Parameters
xformLocalOutaccepts an xform that makes a widget stay with an object when the object moves.
Note
This is here to support mapping widgets specifically and should not be needed by other clients.

◆ GetXformTrans()

virtual bool CRhinoWidget::GetXformTrans ( ON_Xform xformTransOut) const
pure virtual

Get the widget's transformation.

Parameters
xformTransOutaccepts the xform that transforms the unit widget into world space. Return true if successful, else false.

◆ GumballHack()

virtual bool CRhinoWidget::GumballHack ( const CRhinoDoc doc,
CRhinoGumball gumball,
bool  bAlignToObject 
) const
virtual

Added to support '15 March 2012, Mikko: Hack to get planar mapping widget gumball to behave the way it used to.'.

◆ InitialObjectFrame()

ON_Plane CRhinoWidget::InitialObjectFrame ( const CRhinoDoc ) const

[SDK_UNFREEZE]

virtual

◆ IsAssociatedWithListObject()

bool CRhinoWidget::IsAssociatedWithListObject ( ON_SimpleArray< CRhinoObject * > &  list) const

Added to support 'ALB 2011.6.3 - partial fix for TRR#34533, #34544'.

◆ IsAssociatedWithObject()

virtual bool CRhinoWidget::IsAssociatedWithObject ( const CRhinoObject obj) const
pure virtual

Return true if the widget is associated with the specified object. Widgets can optionally be associated with objects if they happen to have something in common with them. They can also optionally move with these objects.

◆ IsDeletable()

virtual bool CRhinoWidget::IsDeletable ( ) const
overridevirtual

Description: Some objects cannot be deleted, like grips on lights and annotation objects. Returns: True if object can be deleted.

Reimplemented from CRhinoObject.

◆ IsSelectableWithGripsOn()

virtual bool CRhinoWidget::IsSelectableWithGripsOn ( ) const
overridevirtual

true if can be selected while grips are on

Reimplemented from CRhinoObject.

◆ MovesWithAssociatedObjects()

virtual bool CRhinoWidget::MovesWithAssociatedObjects ( void  ) const
pure virtual

If the widget automatically moves with an associated object, it should return true.

◆ NewGeometry()

virtual CRhinoWidgetGeometry* CRhinoWidget::NewGeometry ( void  ) const
pure virtual

Return a new geometry object for the widget.

◆ NewGeometryForMovedGrip()

virtual CRhinoWidgetGeometry* CRhinoWidget::NewGeometryForMovedGrip ( const CRhinoWidgetGrip movedGrip) const
pure virtual

Return a new geometry object to use when grips are being manipulated.

◆ NewGrip()

virtual CRhinoWidgetGrip* CRhinoWidget::NewGrip ( int  index) const
virtual

Optionally override this method to return a new special grip. The default implementation returns a new standard grip.

Parameters
indexis the index of the grip (in point order).

◆ ObjectType()

virtual ON::object_type CRhinoWidget::ObjectType ( ) const
overridevirtual

Description: Returns a constant that determines the type of CRhinoObject. Returns: @untitled table ON::point_object CRhinoPointObject ON::pointset_object CRhinoPointCloudObject ON::curve_object CRhinoCurveObject ON::brep_object CRhinoBrepObject ON::mesh_object CRhinoMeshObject ON::annotation_object CRhinoAnnotation ON::light_object CRhinoLight Remarks: A brep object can be a surface or polysurface. An annotation object can be anything derived from CRhinoAnnotation.

Implements CRhinoObject.

◆ OnWidgetDeleted()

virtual void CRhinoWidget::OnWidgetDeleted ( void  )
virtual

Called when the user deletes the associated widget by using the 'Delete' command. Perform any extra actions here; for example, you may want to delete the data associated with the widget. Note that this is called BEFORE the widget is deleted so you cannot rely on calling CRhinoObject::IsDeleted().

◆ operator=()

const CRhinoWidget& CRhinoWidget::operator= ( const CRhinoWidget w)

◆ Pick()

virtual int CRhinoWidget::Pick ( const CRhinoPickContext pick_context,
CRhinoObjRefArray pick_list 
) const
overridevirtual

Description: Expert level tool. Should not normally be used by Rhino plug-ins. Parameters: pick_list: [in/out] If object should be picked, it is appended to the pick_list Returns: Number of items added to pick_list.

Reimplemented from CRhinoObject.

◆ PickFilter()

virtual bool CRhinoWidget::PickFilter ( const CRhinoGetObject go,
bool  bCheckSubObjects 
) const
overridevirtual

◆ PreDrawUpdate()

virtual void CRhinoWidget::PreDrawUpdate ( CRhinoDisplayPipeline dp) const
overridevirtual

Reimplemented from CRhinoObject.

◆ RefreshGrips()

void CRhinoWidget::RefreshGrips ( void  )
protected

◆ SetGeometryWhenGripDropped()

virtual void CRhinoWidget::SetGeometryWhenGripDropped ( CRhinoWidgetGeometry newGeom,
bool  bApplyToDynamicDecal 
)
pure virtual

When grips are dragged and dropped, new geometry is automatically created. Implement this method to use the new geometry to update your data.

◆ SetInitialGeometry()

void CRhinoWidget::SetInitialGeometry ( ON_Geometry )

For internal use only.

◆ SetInterestObject()

virtual void CRhinoWidget::SetInterestObject ( const UUID &  uuidObject) const
virtual

Optionally implement this method to record which Rhino object is being picked or otherwise manipulated by the user.

◆ UpdateFeedbackManager()

virtual void CRhinoWidget::UpdateFeedbackManager ( const CRhinoWidgetGeometry geom,
const ON_Xform xformLocal 
) const
pure virtual

Friends And Related Function Documentation

◆ CRhinoWidgetGrips

friend class CRhinoWidgetGrips
friend