Rhino C++ API  8.0
Public Member Functions | Public Attributes | List of all members
CRhinoGumballDragger Class Reference

#include <rhinoSdkGumball.h>

Inheritance diagram for CRhinoGumballDragger:
CRhinoGetPoint CRhinoGet

Public Member Functions

 CRhinoGumballDragger (CRhinoGumballDisplayConduit &dc)
CRhinoGet::result DragGumball ()
 lets user drag m_gumball around. More...
void DynamicDraw (CRhinoDisplayPipeline &dp, const ON_3dPoint &pt)
void OnMouseDown (CRhinoViewport &vp, UINT nFlags, const ON_3dPoint &point, const ON_2iPoint *view_wnd_point)
void OnMouseMove (CRhinoViewport &vp, UINT nFlags, const ON_3dPoint &point, const ON_2iPoint *view_wnd_point)
- Public Member Functions inherited from CRhinoGetPoint
 CRhinoGetPoint ()
 CRhinoGetPoint (const CRhinoGet &src)
 prompt and options copied More...
 CRhinoGetPoint (const CRhinoGetPoint &)=delete
 no implementation More...
virtual ~CRhinoGetPoint ()
int AddConstructionPoint (const ON_3dPoint &construction_point)
int AddSnapPoint (const ON_3dPoint &snap_point)
int AddSnapPoints (BOOL32 bRationalPoints, int point_count, int point_stride, const double *points)
int AddSnapPoints (int point_count, const ON_3dPoint *snap_points)
const CRhinoObjRefBaseObjRef () const
ON_3dPoint BasePoint () const
void ClearConstraints ()
void ClearConstructionPoints ()
void ClearSnapPoints ()
bool ComplexPointInput () const
BOOL32 Constrain (const ON_Arc &)
 constrain point to lie on an arc More...
BOOL32 Constrain (const ON_Brep &, int wire_density=-1, int face_index=-1, bool bAllowPickingPointOffObject=false)
BOOL32 Constrain (const ON_BrepFace &, int wire_density=-1, bool bAllowPickingPointOffObject=false)
BOOL32 Constrain (const ON_Circle &)
 constrain point to lie on a circle More...
BOOL32 Constrain (const ON_Curve &, bool bAllowPickingPointOffObject=false)
BOOL32 Constrain (const ON_Cylinder &)
 constrain point to lie on a cylinder More...
BOOL32 Constrain (const ON_Line &, BOOL32 bTrackFromStart=true)
 constrain to a line More...
BOOL32 Constrain (const ON_Mesh &, bool bAllowPickingPointOffObject=false)
BOOL32 Constrain (const ON_Plane &, bool bAllowElevator=false)
 constrain point to lie on a plane More...
BOOL32 Constrain (const ON_Sphere &)
 constrain point to lie on a sphere More...
BOOL32 Constrain (const ON_Surface &, bool bAllowPickingPointOffObject=false)
BOOL32 Constrain (ON_3dPoint, ON_3dPoint)
 constrain to a line More...
void ConstrainDistanceFromBasePoint (double distance_from_basepoint)
bool Constrained () const
BOOL32 ConstrainEx (const ON_Mesh &, bool bAllowPickingPointOffObject=false, double dOffset=0.0)
BOOL32 ConstrainEx (const ON_SubD &, bool bAllowPickingPointOffObject=false, double dOffset=0.0)
BOOL32 ConstrainToConstructionPlane (BOOL32 bThroughBasePoint=true, BOOL32 bProjectOsnaps=false)
BOOL32 ConstrainToTargetPlane ()
BOOL32 ConstrainToVirtualCPlaneIntersection (const ON_Plane &)
HCURSOR CurrentCursor () const
void DrawLineFromPoint (ON_3dPoint start_point, BOOL32 bShowDistanceInStatusBar)
bool DrawsShadedMeshes () const
virtual void DynamicDraw (HDC, CRhinoViewport &, const ON_3dPoint &)
const ON_BoundingBoxDynamicDrawBounds () const
ON_Color DynamicDrawColor () const
void EnableCurveSnapArrow (BOOL32 bDrawDirectionArrowAtSnapPoint=true, BOOL32 bReverseArrow=false)
void EnableCurveSnapPerpBar (BOOL32 bDrawPerpBarAtSnapPoint=true, BOOL32 bDrawEndPoints=false)
void EnableCurveSnapTangentBar (BOOL32 bDrawTangentBarAtSnapPoint=true, BOOL32 bDrawEndPoints=false)
void EnableDrawLineFromPoint (BOOL32 bDrawLineFromPoint=true)
void EnableNoRedrawOnExit (bool bNoRedrawOnExit=true)
void EnableObjectSnapCursors (bool bEnableObjectSnapCursors=true)
void EnableOneShotOsnapHiddenOptions (bool bEnable)
void EnableOnObjectCursors (bool bEnableOnObjectCursors=true)
void EnableSnapToCurves (BOOL32=true)
CRhinoGet::result Get2dLine (CRhinoView *pView=NULL, const POINT *corner=NULL, BOOL32 bCentered=false, int pen_style=PS_SOLID, bool bClampToView=true)
CRhinoGet::result Get2dPoint (CRhinoView *pView=NULL, bool bOnMouseUp=false)
CRhinoGet::result Get2dRectangle (CRhinoView *pView=NULL, const POINT *corner=NULL, BOOL32 bCentered=false, int pen_style=PS_SOLID, bool bClampToView=true, const wchar_t *second_prompt=NULL)
int GetConstructionPoints (ON_SimpleArray< ON_3dPoint > &construction_points) const
BOOL32 GetPlanarConstraint (const CRhinoViewport *vp, ON_Plane &plane) const
CRhinoGet::result GetPoint (CRhinoHistory *history=nullptr, bool bOnMouseUp=false)
HCURSOR GetPointCursor () const
bool GetPointOnMouseUp () const
 true if getting point on mouse up event More...
int GetSnapPoints (ON_SimpleArray< ON_3dPoint > &snap_points) const
bool GetTabModeSettings (int *tab_mode=0, ON_Line *tab_mode_line=0)
bool GetView3dPoint (UINT nPointingDevice, CRhinoView &view, UINT_PTR nFlags, ON_3dPoint device_point, const ON_Line &world_line, ON_3dPoint &world_point)
BOOL32 HasBasePoint () const
BOOL32 InterruptMouseMove () const
 tool for use in More...
bool MouseMoved () const
bool NumberPreview (double *number=nullptr) const
int OnViewMouseDown (CRhinoView &, int button, UINT nFlags, const ON_2iPoint &point, CRhinoViewport &vp)
 these functions are used by CRhinoView::OnMouseDown/Move/Up - pretend they don't exist More...
int OnViewMouseMove (CRhinoView &, int button, UINT nFlags, const ON_2iPoint &point, CRhinoViewport &vp)
int OnViewMouseUp (CRhinoView &, int button, UINT nFlags, const ON_2iPoint &point, CRhinoViewport &vp)
CRhinoGetPointoperator= (const CRhinoGetPoint &)=delete
bool OrthoSnap () const
bool OsnapOverideEnabled (CRhinoAppSettings::osnap_mode &mode) const
void PermitConstraintOptions (BOOL32 bPermitConstraintOptions=true)
void PermitElevatorMode (int permit_elevator_mode=1)
void PermitFromOption (BOOL32 bPermitFromOption=true)
void PermitObjectSnap (BOOL32 bPermitObjectSnap=true)
void PermitOrthoSnap (BOOL32 bPermitOrthoSnap=true)
void PermitTabMode (bool bPermitTabMode=true)
ON_3dPoint Point () const
 returns 3d point in world coordinates More...
const ON_BrepFacePointOnBrep (double *u, double *v) const
const ON_CurvePointOnCurve (double *t) const
const ON_BrepEdgePointOnEdge (double *edge_parameter, const ON_BrepTrim *&pTrim) const
BOOL32 PointOnObject (CRhinoObjRef &) const
const ON_SurfacePointOnSurface (double *u, double *v) const
void ProhibitObjectSnap (const CRhinoObject *object)
void SetBaseObjRef (const CRhinoObjRef &ref)
void SetBasePoint (ON_3dPoint basePoint, bool showDistanceInStatusBar=false)
void SetComplexPointInput (bool b)
void SetDrawsShadedMeshes (bool on)
void SetDynamicDrawBounds (const ON_BoundingBox &bbox)
void SetDynamicDrawColor (COLORREF color)
HCURSOR SetGetPointCursor (HCURSOR getpoint_cursor)
void SetNumberPreview (double number)
const CRhinoSnapEventSnapEvent () 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_ColorDefaultColor () 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 CRhinoCommandOptionOption () 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
CRhinoViewView () const
MSG WindowsMessage () const
ON_3dPoint WorldPoint1 () const
ON_3dPoint WorldPoint2 () const

Public Attributes

 The gumball and support functions are members of m_dc. More...
- Public Attributes inherited from CRhinoGet
class CRhGetSdkExtension * m__rhino_get_sdk_extension

Additional Inherited Members

- 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
- 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)
- Protected Member Functions inherited from CRhinoGetPoint
ON_Plane GetCS (bool bWorldCoordinates, bool bRelativeCoordinates) override
 Helper used by IsAcceptableInput when parsing points. More...
bool InElevatorMode (ON_Line &elevator) const
- Protected Member Functions inherited from CRhinoGet
CRhinoGet::result AutoProcessOption ()
const CRhinoCommandOptionCommandOptionAtIndex (int option_index) const
int CommandOptionCount () const
 see source for comments More...
CRhinoGet::result IsAcceptableInput (const class CRhEventToken &, BOOL32 bAcceptNumber, BOOL32 *bUpdatedOptionValue, CRhinoHistory *history)
CRhinoGetoperator= (const CRhinoGet &)
void PreGet ()
void RemoveCommandOptions (int option_index)
 see source for comments More...
virtual void SetCommandWndPrompt () const
void SetOptionAccelerators ()
- Protected Attributes inherited from CRhinoGetPoint
ON_3dPointArray m_construction_points
ON_SimpleArray< ON_Linem_feedback_lines
ON_3dPointArray m_int_osnap_points
ON_3dPointArray m_point_osnap_points
ON_SimpleArray< ON_Linem_tracking_lines
- 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
 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

Constructor & Destructor Documentation

◆ CRhinoGumballDragger()

CRhinoGumballDragger::CRhinoGumballDragger ( CRhinoGumballDisplayConduit dc)

Member Function Documentation

◆ DragGumball()

CRhinoGet::result CRhinoGumballDragger::DragGumball ( )

lets user drag m_gumball around.

◆ DynamicDraw()

void CRhinoGumballDragger::DynamicDraw ( CRhinoDisplayPipeline ,
const ON_3dPoint  

STEP 5a: Optional - override CRhinoGetPoint::DynamicDraw() if you want to dynamically draw things as the mouse/digitizer moves. Every time the mouse moves, DynamicDraw() will be called once per viewport. The calls to DynamicDraw() happen AFTER the call to OnMouseMove().

Use the CRhinoView::Draw* tools to draw things. Use Rhino::LayerColor(), etc., to get Rhino system colors.

If you are drawing anything that takes a long time, periodically call InterruptMouseMove() to see if you should stop.

If you override both OnMouseMove() and DynamicDraw(), then every time the mouse moves you will first get a single call to OnMouseMove() and then get a call to DynamicDraw() for each viewport.

If you override dynamic draw, you should call CRhinoGetPoint::DynamicDraw() at the end of your override.

Reimplemented from CRhinoGetPoint.

◆ OnMouseDown()

void CRhinoGumballDragger::OnMouseDown ( CRhinoViewport vp,
UINT  nFlags,
const ON_3dPoint point,
const ON_2iPoint view_wnd_point 

Description: This virtual function CRhinoGetPoint::OnMouseDown is called during CRhinoGetPoint::Get2dRectangle, RhinoGetPoint::Get2dLine, and CRhinoGetPoint::GetPoint(..,true) when the mouse down event for the initial point occurs. The default does nothing. This function is not called during ordinary point getting because the mouse down event terminates an ordinary point get and returns a CRhinoGet::point result. Parameters: vp - [in] active view nFlags - [in] standard windows OnMouseMove event flags point - [in] 3d world location view_wnd_point - [in] If the point is coming from a "mouse" pointing device, view_wnd_point is the CRhinoView window coordinates of mouse location. If the point is coming from a 3d digitizer pointing device, view_wnd_point is NULL.

Reimplemented from CRhinoGetPoint.

◆ OnMouseMove()

void CRhinoGumballDragger::OnMouseMove ( CRhinoViewport vp,
UINT  nFlags,
const ON_3dPoint point,
const ON_2iPoint view_wnd_point 

STEP 4: Optional - override CRhinoGetPoint::OnMouseMove() Description: If you want to be called every time the mouse moves, override this function. Parameters: vp - [in] active view nFlags - [in] standard windows OnMouseMove event flags point - [in] 3d world location ( May be uninitialized) view_wnd_point - [in] If the point is coming from a "mouse" pointing device, view_wnd_point is the CRhinoView window coordinates of mouse location. If the point is coming from a 3d digitizer pointing device, view_wnd_point is NULL. Remarks: CRhinoGetPoint::OnMouseMove is called once per mouse move and is called BEFORE any calls to CRhinoGetPoint::OnDynamicDraw. If you are doing anything that takes a long time, periodically call InterruptMouseMove() to see if you should stop. If the view is such that the 2d screen point can't be mapped to a 3d point, the 'point' argument will be ON_unset_point

Reimplemented from CRhinoGetPoint.

Member Data Documentation

◆ m_dc

CRhinoGumballDisplayConduit& CRhinoGumballDragger::m_dc

The gumball and support functions are members of m_dc.