Rhino C++ API  7.24
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 (BOOL 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
 
BOOL Constrain (const ON_Arc &)
 constrain point to lie on an arc More...
 
BOOL Constrain (const ON_Brep &, int wire_density=-1, int face_index=-1, bool bAllowPickingPointOffObject=false)
 
BOOL Constrain (const ON_BrepFace &, int wire_density=-1, bool bAllowPickingPointOffObject=false)
 
BOOL Constrain (const ON_Circle &)
 constrain point to lie on a circle More...
 
BOOL Constrain (const ON_Curve &, bool bAllowPickingPointOffObject=false)
 
BOOL Constrain (const ON_Cylinder &)
 constrain point to lie on a cylinder More...
 
BOOL Constrain (const ON_Line &, BOOL bTrackFromStart=true)
 constrain to a line More...
 
BOOL Constrain (const ON_Mesh &, bool bAllowPickingPointOffObject=false)
 
BOOL Constrain (const ON_Plane &, bool bAllowElevator=false)
 constrain point to lie on a plane More...
 
BOOL Constrain (const ON_Sphere &)
 constrain point to lie on a sphere More...
 
BOOL Constrain (const ON_Surface &, bool bAllowPickingPointOffObject=false)
 
BOOL Constrain (ON_3dPoint, ON_3dPoint)
 constrain to a line More...
 
void ConstrainDistanceFromBasePoint (double distance_from_basepoint)
 
BOOL ConstrainToConstructionPlane (BOOL bThroughBasePoint=true, BOOL bProjectOsnaps=false)
 
BOOL ConstrainToTargetPlane ()
 
BOOL ConstrainToVirtualCPlaneIntersection (const ON_Plane &)
 
HCURSOR CurrentCursor () const
 
void DrawLineFromPoint (ON_3dPoint start_point, BOOL bShowDistanceInStatusBar)
 
bool DrawsShadedMeshes () const
 
virtual void DynamicDraw (HDC, CRhinoViewport &, const ON_3dPoint &)
 
const ON_BoundingBoxDynamicDrawBounds () const
 
ON_Color DynamicDrawColor () const
 
void EnableCurveSnapArrow (BOOL bDrawDirectionArrowAtSnapPoint=true, BOOL bReverseArrow=false)
 
void EnableCurveSnapPerpBar (BOOL bDrawPerpBarAtSnapPoint=true, BOOL bDrawEndPoints=false)
 
void EnableCurveSnapTangentBar (BOOL bDrawTangentBarAtSnapPoint=true, BOOL bDrawEndPoints=false)
 
void EnableDrawLineFromPoint (BOOL bDrawLineFromPoint=true)
 
void EnableNoRedrawOnExit (bool bNoRedrawOnExit=true)
 
void EnableObjectSnapCursors (bool bEnableObjectSnapCursors=true)
 
void EnableOneShotOsnapHiddenOptions (bool bEnable)
 
void EnableOnObjectCursors (bool bEnableOnObjectCursors=true)
 
void EnableSnapToCurves (BOOL=true)
 
CRhinoGet::result Get2dLine (CRhinoView *pView=NULL, const POINT *corner=NULL, BOOL 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, BOOL 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
 
BOOL 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)
 
BOOL HasBasePoint () const
 
BOOL 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
 
void PermitConstraintOptions (BOOL bPermitConstraintOptions=true)
 
void PermitElevatorMode (int permit_elevator_mode=1)
 
void PermitFromOption (BOOL bPermitFromOption=true)
 
void PermitObjectSnap (BOOL bPermitObjectSnap=true)
 
void PermitOrthoSnap (BOOL 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
 
BOOL 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)
 
const CRhinoSnapEventSnapEvent () const
 
- Public Member Functions inherited from CRhinoGet
 CRhinoGet (TYPE)
 
 CRhinoGet (TYPE, const CRhinoGet &)
 
virtual ~CRhinoGet ()
 
void AcceptColor (BOOL b=true)
 
bool AcceptCustomWindowsMessage (UINT winmsg_id)
 
void AcceptNothing (BOOL b=true)
 
void AcceptNumber (bool b=true, bool bAcceptZero=true)
 
void AcceptPoint (BOOL b=true)
 
void AcceptString (BOOL b=true)
 
void AcceptUndo (BOOL b=true)
 call to allow user undo previous selection. More...
 
int AddCommandOption (CRhinoCommandOptionName option_name, CRhinoCommandOptionValue option_value=CRhinoCommandOptionValue(nullptr, nullptr), BOOL 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, BOOL 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, bool bToggleState, bool *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
 
unsigned int DocumentRuntimeSerialNumber () const
 
void EnableTransparentCommands (BOOL bEnableTransparentCommands)
 
BOOL 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 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 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

CRhinoGumballDisplayConduitm_dc
 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 BOOL IsValidOptionName (const wchar_t *option_name)
 base class for all Rhino SDK CRhinoGet* classes More...
 
static BOOL 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 &, BOOL bAcceptNumber, BOOL *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...
 
BOOL m_bAcceptColor
 
BOOL m_bAcceptNothing
 
bool m_bAcceptNumber
 
bool m_bAcceptNumberZero
 
BOOL m_bAcceptPoint
 3d world point More...
 
BOOL m_bAcceptString
 
BOOL m_bAcceptString_0
 
BOOL m_bAcceptUndo
 
BOOL m_bEnableTransparentCommands
 
bool m_bGetPointOnMouseUp
 true if getting point on mouse up More...
 
ON_Color m_color
 
double m_number
 
CRhinoViewm_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
 

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  
)
virtual

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 
)
virtual

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 
)
virtual

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.