Rhino C++ API
8.14
|
#include <rhinoSdkGetObject.h>
Public Types | |
enum | GEOMETRY_ATTRIBUTE_FILTER { wire_curve = 1<<0, edge_curve = 1<<1, closed_curve = 1<<2, open_curve = 1<<3, seam_edge = 1<<4, manifold_edge = 1<<5, nonmanifold_edge = 1<<6, mated_edge = (1<<4)|(1<<5)|(1<<6), surface_boundary_edge = 1<<7, trimming_boundary_edge = 1<<8, boundary_edge = (1<<7)|(1<<8), closed_surface = 1<<9, open_surface = 1<<10, trimmed_surface = 1<<11, untrimmed_surface = 1<<12, sub_surface = 1<<13, top_surface = 1<<14, manifold_polysrf = 1<<15, nonmanifold_polysrf = 1<<16, closed_polysrf = 1<<17, open_polysrf = 1<<18, closed_mesh = 1<<19, open_mesh = 1<<20, boundary_inner_loop = 1<<21, mated_inner_loop = 1<<22, inner_loop = (1<<21)|(1<<22), boundary_outer_loop = 1<<23, mated_outer_loop = 1<<24, outer_loop = (1<<23)|(1<<24), special_loop = (1<<25), accept_all_attributes = 0xffffffff } |
enum | GEOMETRY_TYPE_FILTER { point_object = ON::object_type::point_object, grip_object = ON::object_type::grip_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, 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, morph_control_object = ON::object_type::morph_control_object, subd_object = ON::object_type::subd_object, phantom_object = ON::object_type::phantom_object, extrusion_object = ON::object_type::extrusion_object, any_object = ON::object_type::any_object } |
Public Types inherited from CRhinoGet | |
enum | result { no_result = 0, cancel = 1, nothing = 2, option, number, color, undo, miss, point, point2d, line2d, rect2d, object, string, winmsg, timeout, circle, plane, cylinder, sphere, angle, distance, direction, frame, number_preview, point_preview, user1 = 0xFFFFFFFF, user2 = 0xFFFFFFFE, user3 = 0xFFFFFFFD, user4 = 0xFFFFFFFC, user5 = 0xFFFFFFFB, exit_rhino = 0x0FFFFFFF } |
enum | TYPE { get_string = 1, get_point = 2, get_object = 3, get_meshes = 4, get_option = 5, get_number = 6, get_color = 7, force_32bit_enum = 0xFFFFFFFF } |
Public Member Functions | |
CRhinoGetObject () | |
CRhinoGetObject (const CRhinoGetObject &) | |
~CRhinoGetObject () | |
bool | AlreadySelectedObjectSelect () const |
bool | BlockSubObjectSelect () const |
bool | BottomObjectPreference () const |
bool | ChooseOneQuestion () const |
void | ClearObjects () |
virtual bool | CustomGeometryFilter (const CRhinoObject *object, const ON_Geometry *geometry, ON_COMPONENT_INDEX component_index) const |
bool | DeselectAllBeforePostSelect () const |
void | EnableAlreadySelectedObjectSelect (bool bEnable=true) |
void | EnableBottomObjectPreference (BOOL32 bEnableBottomObjectPreference=true) |
void | EnableChooseOneQuestion (BOOL32 bEnableChooseOneQuestion=true) |
void | EnableClearObjectsOnEntry (bool bClearObjectsOnEntry=true) |
void | EnableDeselectAllBeforePostSelect (bool bDeselectAllBeforePostSelect=true) |
void | EnableGroupSelect (BOOL32=true) |
void | EnableHighlight (BOOL32=true) |
default is true More... | |
void | EnableIgnoreGrips (bool=true) |
void | EnableIgnoreHistoryDependents (bool bIgnoreHistoryDependents) |
void | EnableInactiveDetailPick (bool enable=true) |
void | EnableMeshSelections (bool bEnable) |
void | EnableOneByOnePostSelect (BOOL32 bEnableOneByOnePostSelect=true) |
void | EnablePostSelect (BOOL32 bEnablePostSelect=true) |
void | EnablePreSelect (BOOL32 bEnablePreSelect=true, BOOL32 bIgnoreUnacceptablePreSelectedObjects=true) |
bool | EnablePressEnterWhenDonePrompt (bool bEnable=true) |
void | EnableProxyBrepFromSubD (bool bEnable) |
void | EnableReferenceObjectSelect (BOOL32=true) |
void | EnableSelPrev (BOOL32=true) |
default is true More... | |
void | EnableSubDSelections (bool bEnable) |
void | EnableSubObjectSelect (BOOL32 bEnableSubObjectSelect, BOOL32 bEnableBlockSubObjectSelect) |
void | EnableSubObjectSelect (BOOL32 bEnableSubObjectSelect=true) |
void | EnableUnselectObjectsOnExit (bool bUnselectObjectsOnExit=true) |
unsigned int | GeometryAttributeFilter () const |
unsigned int | GeometryFilter () const |
CRhinoGet::result | GetObjects (int minimum_number=1, int maximum_number=1) |
int | GetSubDComponentList (ON__UINT64 subd_runtime_serial_number, ON_COMPONENT_INDEX::TYPE component_type, class ON_SubDComponentRefList &subd_component_list) const |
bool | GroupSelect () const |
bool | Highlight () const |
bool | IgnoreHistoryDependents () const |
bool | InactiveDetailPick () const |
Added 30 June, 2010. More... | |
bool | MeshSelections () const |
CRhinoObjRef | Object (int) const |
0 based index More... | |
int | ObjectCount () const |
returns number of objects selected More... | |
bool | ObjectsWerePreSelected () const |
bool | OneByOnePostSelect () const |
CRhinoGetObject & | operator= (const CRhinoGetObject &) |
bool | PassesGeometryAttributeFilter (const CRhinoObject *object, const ON_Geometry *geometry, ON_COMPONENT_INDEX component_index) const |
const CRhinoObjRefArray & | PickList () const |
void | PostObjectSelectionChangedEvent (const CRhinoView *view) const |
Posts an event to Rhino that object selection has changed. More... | |
bool | ProxyBrepFromSubD () const |
bool | ReferenceObjectSelect () const |
unsigned int | SerialNumber () const |
void | SetGeometryAttributeFilter (unsigned int geometry_attribute_filter) |
void | SetGeometryFilter (unsigned int geometry_type_filter) |
void | SetPressEnterWhenDonePrompt (const wchar_t *sSecondPrompt) |
bool | SubDSelections () const |
bool | SubObjectSelect () const |
Public Member Functions inherited from CRhinoGet | |
CRhinoGet (TYPE) | |
CRhinoGet (TYPE, const CRhinoGet &) | |
virtual | ~CRhinoGet () |
void | AcceptColor (BOOL32 b=true) |
bool | AcceptCustomWindowsMessage (UINT winmsg_id) |
void | AcceptNothing (BOOL32 b=true) |
void | AcceptNumber (bool b=true, bool bAcceptZero=true) |
void | AcceptPoint (BOOL32 b=true) |
void | AcceptString (BOOL32 b=true) |
void | AcceptUndo (BOOL32 b=true) |
call to allow user undo previous selection. More... | |
int | AddCommandOption (CRhinoCommandOptionName option_name, CRhinoCommandOptionValue option_value=CRhinoCommandOptionValue(nullptr, nullptr), BOOL32 bHiddenOption=false) |
int | AddCommandOption (CRhinoCommandOptionName option_name, double number_value) |
int | AddCommandOption (CRhinoCommandOptionName option_name, int number_value) |
int | AddCommandOptionColor (CRhinoCommandOptionName option_name, ON_Color *color_value, const wchar_t *option_prompt=nullptr) |
int | AddCommandOptionInteger (CRhinoCommandOptionName option_name, int *integer_value, const wchar_t *option_prompt=nullptr, double lower_limit=ON_UNSET_VALUE, double upper_limit=ON_UNSET_VALUE) |
int | AddCommandOptionList (CRhinoCommandOptionName option_name, const ON_SimpleArray< CRhinoCommandOptionValue > &list_values, int list_current_index) |
int | AddCommandOptionList (CRhinoCommandOptionName option_name, int list_current_index, CRhinoCommandOptionValue list0_value=CRhinoCommandOptionValue(nullptr, nullptr), CRhinoCommandOptionValue list1_value=CRhinoCommandOptionValue(nullptr, nullptr), CRhinoCommandOptionValue list2_value=CRhinoCommandOptionValue(nullptr, nullptr), CRhinoCommandOptionValue list3_value=CRhinoCommandOptionValue(nullptr, nullptr), CRhinoCommandOptionValue list4_value=CRhinoCommandOptionValue(nullptr, nullptr), CRhinoCommandOptionValue list5_value=CRhinoCommandOptionValue(nullptr, nullptr), CRhinoCommandOptionValue list6_value=CRhinoCommandOptionValue(nullptr, nullptr), CRhinoCommandOptionValue list7_value=CRhinoCommandOptionValue(nullptr, nullptr), CRhinoCommandOptionValue list8_value=CRhinoCommandOptionValue(nullptr, nullptr), CRhinoCommandOptionValue list9_value=CRhinoCommandOptionValue(nullptr, nullptr)) |
int | AddCommandOptionList (CRhinoCommandOptionName option_name, int list_values_count, const CRhinoCommandOptionValue *list_values, int list_current_index) |
int | AddCommandOptionNumber (CRhinoCommandOptionName option_name, double *number_value, const wchar_t *option_prompt=nullptr, BOOL32 bIntegerValue=false, double lower_limit=ON_UNSET_VALUE, double upper_limit=ON_UNSET_VALUE, int number_format=0) |
int | AddCommandOptionToggle (CRhinoCommandOptionName option_name, CRhinoCommandOptionValue option_off_value, CRhinoCommandOptionValue option_on_value, bool bToggleState, bool *bCurrentToggleState=nullptr) |
int | AddCommandOptionToggle (CRhinoCommandOptionName option_name, CRhinoCommandOptionValue option_off_value, CRhinoCommandOptionValue option_on_value, BOOL32 bToggleState, BOOL32 *bCurrentToggleState=nullptr) |
void | AddHiddenCommandOptionAlias (int option_index, const wchar_t *alias1, const wchar_t *alias2=nullptr, const wchar_t *alias3=nullptr, const wchar_t *alias4=nullptr) |
low level tool More... | |
void | ClearCommandOptions () |
Clear all command line options. More... | |
void | ClearDefault () |
ON_Color | Color () const |
Used to get color if Get*() returns CRhinoGet::color. More... | |
CRhinoCommand::result | CommandResult () const |
const ON_Color & | DefaultColor () const |
double | DefaultNumber () const |
unsigned int | DocumentRuntimeSerialNumber () const |
void | EnableTransparentCommands (BOOL32 bEnableTransparentCommands) |
BOOL32 | GotDefault () const |
bool | In2dGet () const |
these functions are used by CRhinoView::OnMouseDown/Move/Up - pretend they don't exist More... | |
bool | IsGetColor () const |
bool | IsGetMeshes () const |
bool | IsGetNumber () const |
bool | IsGetObject () const |
bool | IsGetOption () const |
bool | IsGetPoint () const |
bool | IsGetString () const |
RH_LINE | Line2d () const |
double | Number () const |
const CRhinoCommandOption * | Option () const |
int | OptionCount () const |
Get the number of available command line options. This information is useful when command flow depends on the existence of command line options. More... | |
int | OptionCurrentListOptionIndex () const |
int | OptionIndex () const |
CRhinoCommandOption::COMMAND_OPTION_TYPE | OptionType () const |
ON_4iRect | PickRect () const |
ON_3dPoint | Point () const |
Used to get point if Get*() returns CRhinoGet::point. More... | |
ON_2iPoint | Point2d () const |
ON_4iRect | Rectangle2d () const |
CRhinoGet::result | Result () const |
returns result of the Get*() call More... | |
unsigned int | SerialNumber () const |
low level tool used to identify the get More... | |
void | SetCommandPrompt (const wchar_t *prompt) |
void | SetCommandPromptDefault (const wchar_t *default_value) |
void | SetDefaultColor (ON_Color default_color) |
void | SetDefaultColor (ON_Color default_color, bool bUseAlpha) |
void | SetDefaultInteger (int default_integer) |
void | SetDefaultNumber (double default_number, const wchar_t *format=nullptr) |
void | SetDefaultPoint (ON_3dPoint default_point) |
void | SetDefaultString (const wchar_t *default_string) |
void | SetDocument (unsigned int rhino_doc_sn) |
void | SetOptionVaries (int option_index, bool bVaries) |
Set option that uses "option_name=value" format to show the value as "Varies". More... | |
void | SetVector (const ON_3dVector &v) |
void | SetWaitDuration (double seconds) |
const wchar_t * | String () const |
TYPE | Type () const |
ON_3dVector | Vector () const |
CRhinoView * | View () const |
MSG | WindowsMessage () const |
ON_3dPoint | WorldPoint1 () const |
ON_3dPoint | WorldPoint2 () const |
Friends | |
int | CRhinoCurveObject::Pick (const CRhinoPickContext &, CRhinoObjRefArray &) const |
8 May 2018, Mikko, RH-45657: More... | |
class | CRhinoPickContext |
class | CRhinoView |
"raw" pick list More... | |
class | CRhRegionSelectHelper |
class | CRhViewBase |
const friend CRhinoObjRefArray * | RhinoCurrentGetObjectPickList (void) |
Added 8-27-2003 by Dale Fugier (TRR 11353) More... | |
int | RhSelCmdHelper (unsigned int, bool(*)(const CRhinoObject *), bool, bool, bool, bool, bool, bool, bool) |
int | RhSelCmdHelper (unsigned int, bool(*)(const CRhinoObject *), bool, bool, bool, bool, bool, bool, bool, bool(*)(const CRhinoObject *, ON_SimpleArray< ON_COMPONENT_INDEX > &)) |
CRhinoCommand::result | RhSelSetHelper (CRhinoDoc &, bool, int) |
Additional Inherited Members | |
Static Public Member Functions inherited from CRhinoGet | |
static BOOL32 | IsValidOptionName (const wchar_t *option_name) |
static BOOL32 | IsValidOptionValueName (const wchar_t *option_value) |
static void | PostCustomWindowsMessage (UINT Msg, WPARAM wParam, LPARAM lParam) |
Public Attributes inherited from CRhinoGet | |
class CRhGetSdkExtension * | m__rhino_get_sdk_extension |
Protected Member Functions inherited from CRhinoGet | |
CRhinoGet::result | AutoProcessOption () |
const CRhinoCommandOption * | CommandOptionAtIndex (int option_index) const |
int | CommandOptionCount () const |
see source for comments More... | |
virtual ON_Plane | GetCS (bool bWorldCoordinates, bool bRelativeCoordinates) |
Helper used by IsAcceptableInput when parsing points. More... | |
CRhinoGet::result | IsAcceptableInput (const class CRhEventToken &, BOOL32 bAcceptNumber, BOOL32 *bUpdatedOptionValue, CRhinoHistory *history) |
CRhinoGet & | operator= (const CRhinoGet &) |
void | PreGet () |
void | RemoveCommandOptions (int option_index) |
see source for comments More... | |
virtual void | SetCommandWndPrompt () const |
void | SetOptionAccelerators () |
Protected Attributes inherited from CRhinoGet | |
bool | m_2dClamp |
true to clamp 2d coordinates to window More... | |
int | m_2dget_mode |
int | m_2dget_pen_style |
ON_2iPoint | m_2dget_point1 |
first 2d rect corner-center / 2d line end More... | |
ON_2iPoint | m_2dget_point2 |
second 2d rect corner / 2d line end More... | |
ON_wString | m_2dget_second_prompt |
int | m_2dget_step |
0 = none, 1 = get first point, 2 get second point, 3 = done More... | |
ON_3dPoint | m_2dget_wpoint1 |
first 3d world point input during 2d get point More... | |
ON_3dPoint | m_2dget_wpoint2 |
second 3d world point input during 2d get point More... | |
ON_2iPoint | m_2dpoint |
2d window point (used by CRhinoGetPoint::Get2dPoint) More... | |
bool | m_bAccept2dPoint |
2d screen point (used by CRhinoGet2dPoint) More... | |
BOOL32 | m_bAcceptColor |
BOOL32 | m_bAcceptNothing |
bool | m_bAcceptNumber |
bool | m_bAcceptNumberZero |
BOOL32 | m_bAcceptPoint |
3d world point More... | |
BOOL32 | m_bAcceptString |
BOOL32 | m_bAcceptString_0 |
BOOL32 | m_bAcceptUndo |
BOOL32 | m_bEnableTransparentCommands |
bool | m_bGetPointOnMouseUp |
true if getting point on mouse up More... | |
ON_Color | m_color |
double | m_number |
CRhinoView * | m_p2dPointView |
if not NULL, Get2dPoint()/Get2dRectangle() will use this view More... | |
ON_4iRect | m_pick_rect |
ON_3dPoint | m_point |
3d world point More... | |
ON_wString | m_prompt |
ON_wString | m_prompt_default |
CRhinoGet::result | m_result |
unsigned int | m_rhino_view_sn = 0 |
ON_wString | m_string |
const TYPE | m_type |
ON_3dVector | m_vector |
3d world vector (from some digitizers) More... | |
UINT | m_wait_duration |
milliseconds More... | |
ON_SimpleArray< UINT > | m_winmsg_id_list |
Copyright (c) 1993-2017 Robert McNeel & Associates. All rights reserved. Rhinoceros is a registered trademark 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 Rhino SDK copyright information see http://www.rhino3d.com/developer. CLASS CRhinoGetObject
Description: The CRhinoGetObject class is the tool commands use to interactively select objects.
Example:
CRhinoGetObject go; go.GetObject(); if ( go.Result() != CRhinoGet::object ) ... use canceled or some other type of input was provided int object_count = go.ObjectCount(); for ( i = 0; i < object_count; i++ ) { CRhinoObjRef objref = go.Object(i); CRhinoObject* objref.Object(); const ON_Geometry* geo = objref.Geometry(); ... }
Remarks: The behavior of CRhinoGetObject::GetObject() can be highly customized to accept many kinds of alternative input, to restrict what kinds of object may be selected, to control how many object may be selected, etc. See the detailed comments in the declarations of CRhinoGet and CRhinoGetObject for more information.
Description: If an object passes the geometry TYPE filter,then the geometry ATTRIBUTE filter is applied. The geometry attributes filter is set by calling CRhinoGetObject::SetGeometryFilter.
Enumerator | |
---|---|
wire_curve | 3d wire curve attributes of acceptable curve objects. If you want to accept only wire or edge curves, then specify wire_curve or edge_curve, otherwise both wire and edge curves will pass the attribute filter. |
edge_curve | 3d curve of a surface edge |
closed_curve | closed curves and edges are acceptable If you want to accept only closed or open curves, then specify either closed_curve or open_curve. Otherwise both closed and open curves will pass the attribute filter. |
open_curve | open curves and edges are acceptable |
seam_edge | seam edges are acceptable attributes of acceptable trimming edge objects (associated with an ON_BrepTrim). If none of these attributes are explicitly specified, then any kind of trimming edge will pass the attribute filter. |
manifold_edge | edges with 2 difference surfaces pass |
nonmanifold_edge | edges with 3 or more surfaces pass |
mated_edge | any mated edge passes |
surface_boundary_edge | boundary edges on surface sides pass |
trimming_boundary_edge | boundary edges that trim a surface pass |
boundary_edge | any boundary edge passes |
closed_surface | attributes of acceptable surface objects. If you want to accept only closed or open surfaces, then specify either closed_surface or open_surface. Otherwise both closed and open surfaces will pass the attribute filter. |
open_surface | |
trimmed_surface | If you want to accept only trimmed or untrimmed surfaces, then specify either trimmed_surface or untrimmed_surface. Otherwise both trimmed and untrimmed surfaces will pass the attribute filter. |
untrimmed_surface | |
sub_surface | If you want to accept only sub-surfaces of (multi-surface) polysrf, then specify sub_surface. If you do not want to accept sub-surfaces, then specify top_surface. Otherwise sub-surfaces and top surfaces will pass the attribute filter. |
top_surface | |
manifold_polysrf | attributes of acceptable polysrf objects. If you want to accept only manifold or nonmanifold polysrfs, then specify manifold_polysrf or nonmanifold_polysrf. Otherwise both manifold and nonmanifold polysrfs will pass the attribute filter. |
nonmanifold_polysrf | |
closed_polysrf | If you want to accept only closed or open polysrfs, then specify either closed_polysrf or open_polysrf. Otherwise both closed and open polysrfs will pass the attribute filter. |
open_polysrf | |
closed_mesh | attributes of acceptable mesh objects. If you want to accept only closed or open meshs, then specify either closed_mesh or open_mesh. Otherwise both closed and open meshs will pass the attribute filter. |
open_mesh | |
boundary_inner_loop | all trimming edges are boundary edges attributes of acceptable loop objects. |
mated_inner_loop | all trimming edges are mated |
inner_loop | any inner loop is acceptable |
boundary_outer_loop | all trimming edges are boundary edges |
mated_outer_loop | all trimming edges are mated |
outer_loop | any outer loop is acceptable |
special_loop | slit, crvonsrf, ptonsrf, etc. |
accept_all_attributes | all attributes are acceptable |
STEP 1: Use CRhinoGet member functions to specify command prompt and command options. STEP 2: Use CRhinoGet member functions to specify what types of alternate input can be accepted. STEP 3: Specify object picking behavior. Description: The GEOMETRY_TYPE_FILTER enum values are bitwise or-ed together to create a filter used to specify acceptable geometry types. The geometry type filter is set by calling CRhinoGetObject::SetGeometryFilter. values = ON::object_type enum values. In an ideal world, the CRhinoGetObject::GEOMETRY_TYPE_FILTER would be removed and ON::object_type would be used everywhere.
Enumerator | |
---|---|
point_object | single point |
grip_object | |
pointset_object | point cloud or point grid |
curve_object | curve (can be edge in a brep) |
surface_object | surface or brep face |
polysrf_object | brep with 2 or more faces |
edge_object | brep edge (with an associated ON_BrepTrim) |
polyedge_object | a chain of edges and/or curves |
loop_object | brep loop |
brepvertex_filter | brep vertex |
mesh_object | |
annotation_object | |
light_object | |
instance_reference | |
meshvertex_filter | ON_Mesh.m_V[] index, ON_MeshTopologyVertex, ON_SubDVertex. NOTE: meshvertex_filter,meshedge_filter,meshface_filter,meshcomponent_reference are used for selection filter that accept ON_Mesh and ON_SubD components. |
meshedge_filter | |
meshface_filter | selection filter for ON_Mesh.m_F[] index, ON_MeshTopologyFace, ON_SubDFace |
meshcomponent_reference | |
cage_object | |
hatch_object | |
morph_control_object | |
subd_object | |
phantom_object | |
extrusion_object | |
any_object |
CRhinoGetObject::CRhinoGetObject | ( | ) |
CRhinoGetObject::~CRhinoGetObject | ( | ) |
CRhinoGetObject::CRhinoGetObject | ( | const CRhinoGetObject & | ) |
bool CRhinoGetObject::AlreadySelectedObjectSelect | ( | ) | const |
Description: Returns the current status of whether GetObjects() can select objects that are already selected, as set by EnableAlreadySelectedObjectSelect() Returns: true if Selected objects can be selected and returned false if they can't.
bool CRhinoGetObject::BlockSubObjectSelect | ( | ) | const |
Description: By default, CRhinoGetObject::GetObjects will permit a user to select block sub-objects (members in the top level block). If you only want the user to select "top" level block instances, call EnableSubObjectSelect(false) or EnableSubObjectSelect(true/false, false). Returns: true if selection of block sub-objects is permitted. See Also: CRhinoGetObject::EnableSubObjectSelect
bool CRhinoGetObject::BottomObjectPreference | ( | ) | const |
bool CRhinoGetObject::ChooseOneQuestion | ( | ) | const |
void CRhinoGetObject::ClearObjects | ( | ) |
Description: This is a low level geek tool for emptying the selected object list. Calling GetObjects() automatically clears this list, so the situations where this function is needed are very rare. See Also: CRhinoGetObject::EnableClearObjectsOnEntry CRhinoGetObject::EnableUnselectObjectsOnExit
|
virtual |
Description: Checks geometry to see if it can be selected. The default always returns true. Override to provide fancy filtering. Parameters: object - [in] parent object being considered. geometry - [in] geometry being considered. component_index - [in] if >= 0, geometry is a proper sub-part of object->Geometry() with component_index. Remarks: The default simply returns true. All obvious geometry filter checks have been performed by the time CustomGeometryFilter() is called.
bool CRhinoGetObject::DeselectAllBeforePostSelect | ( | ) | const |
Returns: True if pre-selected input will be deselected before post-selection begins when no pre-selected input is valid. Remarks: The default is true. See Also: CRhinoGetObject::EnablePreSelect CRhinoGetObject::EnableDeselectAllBeforePostSelect
void CRhinoGetObject::EnableAlreadySelectedObjectSelect | ( | bool | bEnable = true | ) |
Description: Allow selecting objects that are already selected. By default, GetObjects() disallows selection of objects that are already selected to avoid putting the same object in the selection set more than once. Calling EnableAlreadySelectedObjectSelect( true) overrides that restriction and allows selected objects to be selected and returned by GetObjects. This is useful because, coupled with the return immediately mode of GetObjects( 1, -1), it is possible to select a selected object to deselect when the selected objects are being managed outside GetObjects() as in the case of CRhinoPolyEdge::GetEdge(). Parameters: bEnable - [in]
void CRhinoGetObject::EnableBottomObjectPreference | ( | BOOL32 | bEnableBottomObjectPreference = true | ) |
Description: By default, if a call to GetObject is permitted to select different parts fo the same object, like a polysurface, a surface and an edge, then the top-most object is preferred. (polysurface beats face beats edge). If you want the bottom most object to be preferred, then call EnableBottomObjectPreference(true) before calling GetObjects(). Parameters: bEnableBottomObjectPreference - [in] See Also: CRhinoGetObject::ChooseOneQuestion
void CRhinoGetObject::EnableChooseOneQuestion | ( | BOOL32 | bEnableChooseOneQuestion = true | ) |
Description: By default, if a call to GetObject is permitted to select different parts fo the same object, like a polysurface and an edge of that polysurface, then the top-most object is automatically selected. If you want the choose-one-object mechanism to include pop up in these cases, then call EnableChooseOneQuestion(true) before calling GetObjects(). Parameters: bEnableChooseOneQuestion - [in] By default, if a call to GetObject is permitted to select different parts fo the same object, like a polysurface and an edge of that polysurface, then the top/bottom-most object is automatically selected. If you want the choose-one-object mechanism to include pop up in these cases, then call EnableChooseOneQuestion(true) before calling GetObjects(). See Also: CRhinoGetObject::ChooseOneQuestion
void CRhinoGetObject::EnableClearObjectsOnEntry | ( | bool | bClearObjectsOnEntry = true | ) |
Description: By default the picked object list is cleared when CRhinoGetObject::GetObjects() is called. If you are reusing a CRhinoGetObject class and do not want the existing object list cleared when you call GetObjects, then call EnableClearObjectsOnEntry(false) before calling GetObjects(). Parameters: bClearObjectsOnEntry - [in] See Also: CRhinoGetObject::EnableUnselectObjectsOnExit CRhinoGetObject::ClearObjects
void CRhinoGetObject::EnableDeselectAllBeforePostSelect | ( | bool | bDeselectAllBeforePostSelect = true | ) |
Description: Controls the deselection of preselected input when no valid input is pre-selected.
Parameters: bDeselectAllBeforePostSelect - [in]
Remarks: By default, if post selection is enabled and no valid input is pre-selected when GetObjects is called, then anything that was preselected is deselected before post selection begins. If there are objects selected and highlighted from a previous operation that you want to have stay that way when GetObject() is called, Call EnableDeselectAllBeforePostSelect( false) to make that happen. Otherwise the second GetObject will deselect and unhighlight the already seelcted and highlighted objects.
See Also: CRhinoGetObject::EnablePreSelect CRhinoGetObject::EnablePostSelect
void CRhinoGetObject::EnableGroupSelect | ( | BOOL32 | = true | ) |
By default, groups are ignored in GetObject. If you want your call to GetObjects() to select every object in a group that has any objects selected, then enable group selection.
void CRhinoGetObject::EnableHighlight | ( | BOOL32 | = true | ) |
default is true
By default, any object post-pick selected by GetObject() is highlighted. If you want to post-pick objects and not have them automatically highlight, then call EnableHighlight(false).
void CRhinoGetObject::EnableIgnoreGrips | ( | bool | = true | ) |
By default, post selection will select objects with grips on. If you do not want to be able to post select objects with grips on, then call EnableIgnoreGrips(false). The ability to preselect an object with grips on is determined by the value returned by the virtual CRhinoObject::IsSelectableWithGripsOn.
void CRhinoGetObject::EnableIgnoreHistoryDependents | ( | bool | bIgnoreHistoryDependents | ) |
void CRhinoGetObject::EnableInactiveDetailPick | ( | bool | enable = true | ) |
void CRhinoGetObject::EnableMeshSelections | ( | bool | bEnable | ) |
Description: The getobject filters for mesh and SubD components are shared. In some commands that deal exclusively with meshes and mesh components, it is necessary to prohibit SubD and SubD component selections. Parameters: bEnable - [in] true - (default) Selection of mesh objects and mesh components is determined by the standard filters. false - Selection of mesh objects and mesh components is prohibited. This is useful in commands that use the mesh component filters and only want to select SubDs and SubD components. Remarks: Default = true;
void CRhinoGetObject::EnableOneByOnePostSelect | ( | BOOL32 | bEnableOneByOnePostSelect = true | ) |
Description: If you want to force objects to be post selected one by one, then enable one-by-one post selection by calling EnableOneByOnePostSelect(true). Parameters: b - [in] if true, GetObjects() one-by-one post selection mode will be used. If false, the selection mode specified by EnablePostSelect()/EnablePostSelect() will be used. Remarks: By default, CRhinoGetObject::GetObjects() permits multiple objects to be selected using any combination of single pick selection and window crossing selection. See Also: CRhinoGetObject::EnablePostSelect
void CRhinoGetObject::EnablePostSelect | ( | BOOL32 | bEnablePostSelect = true | ) |
Description: Control the availability of post selection in GetObjects.
Parameters: bEnablePostSelect - [in]
Remarks: By default, if no valid input is pre-selected when GetObjects is called, then the user is given the chance to post select. If you want to force the user to pre-select, then call EnablePostSelect(false).
See Also: CRhinoGetObject::EnableOneByOnePostSelect CRhinoGetObject::EnablePreSelect CRhinoGetObject::EnableDeselectAllBeforePostSelect
void CRhinoGetObject::EnablePreSelect | ( | BOOL32 | bEnablePreSelect = true , |
BOOL32 | bIgnoreUnacceptablePreSelectedObjects = true |
||
) |
Description: Control the pre selection behavior GetObjects. Parameters: bEnablePreSelect - [in] if true, pre-selection is enabled.
bIgnoreUnacceptablePreSelectedObjects - [in] If true and some acceptable objects are pre-selected, then any unacceptable pre-selected objects are ignored. If false and any unacceptable are pre-selected, then the user is forced to post-select.
Remarks: By default, if valid input is pre-selected when GetObjects() is called, then that input is returned and the user is not given the opportunity to post-select. If you want to force the user to post-select, then call EnablePreSelect(false).
See Also: CRhinoGetObject::EnablePostSelect CRhinoGetObject::EnableDeselectAllBeforePostSelect
bool CRhinoGetObject::EnablePressEnterWhenDonePrompt | ( | bool | bEnable = true | ) |
Description: By default, when CRhinoGetObject::GetObjects is called with minimum_number > 0 and maximum_number = 0, the command prompt automatically includes "Press Enter when done" after the user has selected at least minimum_number of objects.
If you want to prohibit the addition of the "Press Enter when done", then call EnablePressEnterWhenDonePrompt(false). Parameters: bEnable - [in] Returns: Previous value.
void CRhinoGetObject::EnableProxyBrepFromSubD | ( | bool | bEnable | ) |
Parameters: bEnable - [in] true - if a subd (or a subd component) cannot be selected, but a brep (or brep component) can be selected, then automatically create and use a proxy brep. false Never create or use a proxy brep for a subd object. Remarks: Default = true;
void CRhinoGetObject::EnableReferenceObjectSelect | ( | BOOL32 | = true | ) |
By default, reference objects can be selected. If you do not want to be able to select reference objects, then call EnableReferenceObjectSelect(false).
void CRhinoGetObject::EnableSelPrev | ( | BOOL32 | = true | ) |
default is true
By default, any object selected during a command becomes part of the "previous selection set" and can be reselected by the SelPrev command. If you need to select objects but do not want them to be selected by a subsequent call to SelPrev, then call EnableSelPrev(false).
void CRhinoGetObject::EnableSubDSelections | ( | bool | bEnable | ) |
Description: The getobject filters for mesh and SubD components are shared. In some commands that deal exclusively with meshes and mesh components, it is necessary to prohibit SubD and SubD component selections. Parameters: bEnable - [in] true - (default) Selection of SubD objects and SubD components is determined by the standard filters. false - Selection of SubD objects and SubD components is prohibited. This is useful in commands that use the mesh component filters and only want to select meshes and mesh components. Remarks: Default = true;
void CRhinoGetObject::EnableSubObjectSelect | ( | BOOL32 | bEnableSubObjectSelect, |
BOOL32 | bEnableBlockSubObjectSelect | ||
) |
Description: By default, CRhinoGetObject::GetObjects will permit a user to select sub-objects (like a curve in a b-rep or a curve in a group). If you only want the user to select "top" level objects, then call EnableSubObjectSelect(false, false). This is the expert version that allows enabling/disabling normal object and block subobject selection separately, used by transform commands. Parameters: bEnableSubObjectSelect - [in] true to enable sub-object selection of objects other than block instances false to disable sub-object selection. bEnableBlockSubObjectSelect - [in] true to enable sub-object selection of block instances false to disable block sub-object selection. See Also: CRhinoGetObject::SubObjectSelect, CRhinoGetObject::BlockSubObjectSelect
void CRhinoGetObject::EnableSubObjectSelect | ( | BOOL32 | bEnableSubObjectSelect = true | ) |
Description: By default, CRhinoGetObject::GetObjects will permit a user to select sub-objects (like a curve in a b-rep or a curve in a group, or member in a block instance). If you only want the user to select "top" level objects, then call EnableSubObjectSelect(false). Parameters: bEnableSubObjectSelect - [in] true to enable sub-object selection false to disable sub-object selection. See Also: CRhinoGetObject::SubObjectSelect, CRhinoGetObject::BlockSubObjectSelect
void CRhinoGetObject::EnableUnselectObjectsOnExit | ( | bool | bUnselectObjectsOnExit = true | ) |
Description: By default any objects in the object list are unselected when CRhinoGetObject::GetObjects() exits with any return code besides CRhinoGet::object. If you want to leave the objects selected when non-object input is returned, then call EnableClearObjectsOnExit(false) before calling GetObjects(). Parameters: bClearObjectsOnExit - [in] Remarks: If you pass false to this function, then you are responsible for making sure the selection state of the objects in the object list is correct. See Also: CRhinoGetObject::EnableClearObjectsOnEntry CRhinoGetObject::ClearObjects
unsigned int CRhinoGetObject::GeometryAttributeFilter | ( | ) | const |
Description: The geometry attribute filter provides a secondary filter can be used to restrict which objects can be selected.
Control of the type of geometry (points, curves, surfaces, meshes, etc.) is provided by CRhinoGetObject::SetGeometryFilter. The geometry attribute filter is used to require the selected geometry to have certain attributes (open, closed, etc.). The default attribute filter permits selection of all types of geometry.
Returns: An unsigned int "object_attribute_filter". If the bit from an GEOMETRY_ATTRIBUTE_FILTER enum value is set in the geometry_attribute_filter, then GetObjects() will permit selection of object's that have that geometric attribute. If geometry_attribute_filter is 0xFFFFFFFF, then GetObjects() can select all types of geometry.
Example: If (GeometryAttributeFilter() | closed_curve) != 0, then any curve selected by GetObjects() will be closed.
See Also: CRhinoGetObject::SetGeometryAttributeFilter. CRhinoGetObject::SetGeometryFilter. CRhinoGetObject::GeometryFilter.
unsigned int CRhinoGetObject::GeometryFilter | ( | ) | const |
Description: The geometry type filter controls which types of geometry (points, curves, surfaces, meshes, etc.) can be selected.
The default geometry type filter permits selection of all types of geometry.
Returns: An unsigned int "object_filter". If the bit from an GEOMETRY_TYPE_FILTER enum value is set in the geometry_filter, then GetObjects() will permit selection of object's that have that type of geometry. If geometry_filter is 0xFFFFFFFF, then GetObjects() can select all types of geometry.
Example: If (GeometryFilter() | curve_object) != 0, then GetObjects() will permit curves to be selected.
See Also: CRhinoGetObject::SetGeometryFilter CRhinoGetObject::SetGeometryAttributeFilter CRhinoGetObject::GeometryAttributeFilter
CRhinoGet::result CRhinoGetObject::GetObjects | ( | int | minimum_number = 1 , |
int | maximum_number = 1 |
||
) |
STEP 4: Call GetObjects() to get a list of objects. Description: Call to select objects. Parameters: minimum_number - [in] minimum number of objects to select. maximum_number - [in] maximum number of objects to select. If 0, then the user must press enter to finish object selection. If -1, then object selection stops as soon as there are at least minimum_number of object selected. If >0, then the picking stops when there are maximum_number objects. If a window pick, crossing pick, or Sel* command attempts to add more than maximum_number, then the attempt is ignored. Example: / pick 3 or more curves and/or meshes CRhinoGetObject go; double x = 0.0; for (;;) { go.SetCommandPrompt("Select curves and meshes or type a number.\n"); go.SetGeometryFilter( CRhinoGetObject::curve_object | CRhinoGetObject::mesh_object ); go.AcceptNumber( true ); go.GetObject(3,0); if ( go.Result() == CRhinoGet::number ) { x = go.Number(); continue; } break; } if ( go.Result() == CRhinoGet::object ) { int i, object_count = go.ObjectCount(); for ( i = 0; i < object_count; i++ ) { CRhinoObjRef obj_ref = go.Object(i); } } See Also: CRhinGetObject::EnablePressEnterWhenDonePrompt Returns: CRhinoGet::success - objects selected. CRhinoGet::cancel - user pressed ESCAPE to cancel the get. See CRhinoGet::result for other possible values that may be returned when options, numbers, etc., are acceptable responses.
int CRhinoGetObject::GetSubDComponentList | ( | ON__UINT64 | subd_runtime_serial_number, |
ON_COMPONENT_INDEX::TYPE | component_type, | ||
class ON_SubDComponentRefList & | subd_component_list | ||
) | const |
Description: Call GetSubDComponents() after calling GetObjects(...) to get a list of the subd components that were selected. Parameters: subd_runtime_serial_number - [in] If subd_runtime_serial_number > 0 and < 0xFFFFFFFFFFFFFFFFllu, then only components from that subd will be added to component_type - [in] If component_type is ON_COMPONENT_INDEX::TYPE::subd_vertex, ON_COMPONENT_INDEX::TYPE::subd_edge, or ON_COMPONENT_INDEX::TYPE::subd_face, then only components of that type will be added. Returns: Number of components added to subd_component_list.
bool CRhinoGetObject::GroupSelect | ( | ) | const |
bool CRhinoGetObject::Highlight | ( | ) | const |
bool CRhinoGetObject::IgnoreHistoryDependents | ( | ) | const |
bool CRhinoGetObject::InactiveDetailPick | ( | ) | const |
Added 30 June, 2010.
bool CRhinoGetObject::MeshSelections | ( | ) | const |
Returns: true - (default) Selection of mesh objects and mesh components is determined by the standard filters. false - Selection of mesh objects and mesh components is prohibited. This is useful in commands that use the mesh component filters and only want to select SubDs and SubD components. Remarks: Default = true;
CRhinoObjRef CRhinoGetObject::Object | ( | int | ) | const |
0 based index
int CRhinoGetObject::ObjectCount | ( | ) | const |
returns number of objects selected
STEP 5: Use value returned by GetObject() to determine what function to call to get the input.
GetObject() return value function CRhinoGet::option CRhinoGet::Option() CRhinoGet::number CRhinoGet::Number() CRhinoGet::object CRhinoObject::Object()
When pieces of instance references are selected, the CRhinoObjRef contains reference counted proxy geometry. You need to keep either the CRhinoGetObject class or the CRhinoObjRef in in scope until you have finished using the geometry it references. After the destruction of the CRhinoGetObject class and the last CRhinoObjRef, the proxy geometry is deleted. At that point any references or pointers to the proxy geometry will be invalid.
bool CRhinoGetObject::ObjectsWerePreSelected | ( | ) | const |
Returns: True if CRhinoGetObjects::GetObjects() returned preselected objects.
bool CRhinoGetObject::OneByOnePostSelect | ( | ) | const |
Description: In one-by-one post selection, the user is forced to select objects by post picking them one at a time. Returns: true if one-by-one post selection mode is enabled. See Also: CRhinoGetObject::EnableOneByOnePostSelect
CRhinoGetObject& CRhinoGetObject::operator= | ( | const CRhinoGetObject & | ) |
bool CRhinoGetObject::PassesGeometryAttributeFilter | ( | const CRhinoObject * | object, |
const ON_Geometry * | geometry, | ||
ON_COMPONENT_INDEX | component_index | ||
) | const |
Description: Checks geometry to see if it passes the basic GeometryAttributeFilter. Parameters: object - [in] parent object being considered. geometry - [in] geometry being considered. component_index - [in] if >= 0, geometry is a proper sub-part of object->Geometry() with component_index. Remarks: The default simply checks that the geometry passes the filter returned by GeometryAttributeFilter(). See Also: CRhinoGetObject::EnablePostSelect CRhinoGetObject::PassesGeometryTypeFilter
const CRhinoObjRefArray& CRhinoGetObject::PickList | ( | ) | const |
Description: This is a low level geek tool for digging through the pick list. The situations where this function is needed are rare and no support is available.
void CRhinoGetObject::PostObjectSelectionChangedEvent | ( | const CRhinoView * | view | ) | const |
Posts an event to Rhino that object selection has changed.
bool CRhinoGetObject::ProxyBrepFromSubD | ( | ) | const |
Returns: true - if a subd (or a subd component) cannot be selected, but a brep (or brep component) can be selected, then automatically create and use a proxy brep. false Never create or use a proxy brep for a subd object. Remarks: Default = true;
bool CRhinoGetObject::ReferenceObjectSelect | ( | ) | const |
unsigned int CRhinoGetObject::SerialNumber | ( | ) | const |
Implementation Description: Each instanct of CRhinoGetObject has a unique runtime serial number that is used to identify object selection events associated with that instance.
void CRhinoGetObject::SetGeometryAttributeFilter | ( | unsigned int | geometry_attribute_filter | ) |
Description: The geometry attribute filter provides a secondary filter can be used to restrict which objects can be selected.
Control of the type of geometry (points, curves, surfaces, meshes, etc.) is provided by CRhinoGetObject::SetGeometryFilter. The geometry attribute filter is used to require the selected geometry to have certain attributes (open, closed, etc.). The default attribute filter permits selection of all types of geometry.
Parameters: geometry_attribute_filter - [in] an unsigned int made by bitwise or-ing ( | ) values from the GEOMETRY_ATTRIBUTE_FILTER enum. If you pass 0, then all geometry attributes will be acceptable.
Example: If you want to be able to select open curves or solids, then you would make a call like
CRhinoGetObject go; unsigned int geometry_type_filter = 0; unsigned int geometry_attribute_filter = 0; geometry_type_filter |= CRhinoGetObject::curve; geometry_type_filter |= CRhinoGetObject::surface_object; geometry_type_filter |= CRhinoGetObject::polysurface_object; geometry_attribute_filter |= CRhinoGetObject::closed_curve; geometry_attribute_filter |= CRhinoGetObject::solid_object; go.SetSetGeometryFilter( geometry_type_filter ); go.SetGeometryAttributeFilter( geometry_attribute_filter );
See Also: CRhinoGetObject::GeometryAttributeFilter. CRhinoGetObject::SetGeometryFilter. CRhinoGetObject::GeometryFilter.
void CRhinoGetObject::SetGeometryFilter | ( | unsigned int | geometry_type_filter | ) |
Description: The geometry type filter controls which types of geometry (points, curves, surfaces, meshes, etc.) can be selected.
The default geometry type filter permits selection of all types of geometry.
Parameters: geometry_type_filter - [in] an unsigned int made by or-ing ( | ) values from the GEOMETRY_TYPE_FILTER enum. If you pass 0, then all geometry will be acceptable.
Example: If you want to be able to select curves and meshes, then you would make a call like
unsigned int geometry_type_filter = 0; geometry_filter |= CRhinoGetObject::curve_object; geometry_filter |= CRhinoGetObject::mesh_object; SetGeometryFilter( geometry_type_filter );
See Also: CRhinoGetObject::GeometryFilter CRhinoGetObject::SetGeometryAttributeFilter CRhinoGetObject::GeometryAttributeFilter
void CRhinoGetObject::SetPressEnterWhenDonePrompt | ( | const wchar_t * | sSecondPrompt | ) |
Description: The default prompt when EnablePressEnterWhenDonePrompt is enabled is "Press Enter when done". Use this function to specify a different string to be appended. Parameters: sSecondPrompt - [in]
bool CRhinoGetObject::SubDSelections | ( | ) | const |
Returns: true - (default) Selection of SubD objects and SubD components is determined by the standard filters. false - Selection of SubD objects and SubD components is prohibited. This is useful in commands that use the mesh component filters and only want to select meshes and mesh components. Remarks: Default = true;
bool CRhinoGetObject::SubObjectSelect | ( | ) | const |
Description: By default, CRhinoGetObject::GetObjects will permit a user to select sub-objects (like a curve in a b-rep or a curve in a group). If you only want the user to select "top" level objects, then call EnableSubObjectSelect(false) or EnableSubObjectSelect(false, true/false). Returns: true if selection of sub-objects is permitted. See Also: CRhinoGetObject::EnableSubObjectSelect
|
friend |
8 May 2018, Mikko, RH-45657:
|
friend |
|
friend |
"raw" pick list
|
friend |
|
friend |
|
friend |
Added 8-27-2003 by Dale Fugier (TRR 11353)
|
friend |
|
friend |
|
friend |