# GetPoint class

Namespace: [Rhino.Input.Custom](https://developer.rhino3d.com/api/rhinocommon/namespace/rhino.input.custom.md) · Assembly: [RhinoCommon](https://developer.rhino3d.com/api/rhinocommon/assembly/rhinocommon.md)

```cs
public class GetPoint : GetBaseClass
```

Used to interactively get a point.

**Derived types:** [GetTransform](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.gettransform.md)

## Constructors

- [GetPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/ctor.md): Create a new GetPoint.

## Properties

- [DynamicDrawColor](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/dynamicdrawcolor.md): Color used by CRhinoGetPoint::DynamicDraw to draw the current point and the line from the base point to the current point.
- [FullFrameRedrawDuringGet](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/fullframeredrawduringget.md): In the "RARE" case that you need to draw some depth buffered geometry during a Get() operation, setting this value to true will force entire frames to be redrawn while the user moves the mouse. This allows DisplayPipeline events to be triggered as well as OnPostDrawObjects NOTE!! Setting this value to true comes with a significant performance penalty because the scene needs to be fully regenerated every frame where the standard DynamicDraw event draws temporary decorations (geometry) on top of a static scene.
- [OsnapEventType](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/osnapeventtype.md): Gets the type of object snap used to obtain the point.
- [Tag](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/tag.md): Gets or sets an arbitrary object that can be attached to this [GetPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint.md) instance. Useful for passing some/ information that you may need in a DynamicDraw event since you can get at this Tag from the GetPointDrawEventArgs.

## Methods

- [AddConstructionPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/addconstructionpoint.md): Adds a point to the list of construction points.
- [AddConstructionPoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/addconstructionpoints.md): Adds points to the list of construction points.
- [AddSnapPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/addsnappoint.md): Adds a point to the list of osnap points.
- [AddSnapPoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/addsnappoints.md): Adds points to the list of osnap points.
- [ClearConstraints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/clearconstraints.md): Removes any explicit constraints added by calls to GetPoint::Constraint() and enable the built-in constraint options.
- [ClearConstructionPoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/clearconstructionpoints.md): Remove all construction points.
- [ClearSnapPoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/clearsnappoints.md): Remove all snap points.
- [Constrain](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/constrain.md): (11 overloads) Constrains the picked point to lie on an arc.
- [ConstrainDistanceFromBasePoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/constraindistancefrombasepoint.md): Sets distance constraint from base point.
- [ConstrainToConstructionPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/constraintoconstructionplane.md): If enabled, the picked point is constrained to be on the active construction plane. If the base point is set, then the point is constrained to be on the plane that contains the base point and is parallel to the active construction plane. By default this constraint is enabled.
- [ConstrainToTargetPlane](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/constraintotargetplane.md): Constrains point to lie on a plane that is parallel to the viewing plane and passes through the view's target point.
- [ConstrainToVirtualCPlaneIntersection](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/constraintovirtualcplaneintersection.md): If enabled, the picked point is constrained to be on the intersection of the plane and the virtual CPlane going through the plane origin. If the planes are parallel, the constraint works just like planar constraint.
- [DrawLineFromPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/drawlinefrompoint.md): Use DrawLineFromPoint() if you want a dynamic line drawn from a point to the point being picked.
- [EnableCurveSnapArrow](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/enablecurvesnaparrow.md): Controls display of the curve snap arrow icon.
- [EnableCurveSnapPerpBar](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/enablecurvesnapperpbar.md): Controls display of the curve snap perpendicular bar icon.
- [EnableCurveSnapTangentBar](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/enablecurvesnaptangentbar.md): Controls display of the curve snap tangent bar icon.
- [EnableDrawLineFromPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/enabledrawlinefrompoint.md): Controls drawing of dynamic a line from the start point.
- [EnableNoRedrawOnExit](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/enablenoredrawonexit.md): The default functionality of the GetPoint operation is to perform a redraw on exit. Calling this function with true turns off automatic redraw at the end of GetPoint. May be needed in some commands for flicker free feedback. When set to true, the caller is responsible for cleaning up the screen after GetPoint.
- [EnableObjectSnapCursors](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/enableobjectsnapcursors.md): Enables or disables object snap cursors. By default, object snap cursors are enabled.
- [EnableSnapToCurves](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/enablesnaptocurves.md): If you want GetPoint() to try to snap to curves when the mouse is near a curve (like the center point in the Circle command when the AroundCurve option is on), then enable the snap to curves option.
- [Get](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/get.md): (3 overloads) After setting up options and so on, call GetPoint::Get to get a 3d point. The point is retrieved when the mouse goes down.
- [GetConstructionPoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/getconstructionpoints.md): Gets current construction points.
- [GetPlanarConstraint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/getplanarconstraint.md)
- [GetSnapPoints](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/getsnappoints.md): Gets current snap points.
- [InterruptMouseMove](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/interruptmousemove.md): If you have lengthy computations in OnMouseMove() and/or DymanicDraw() overrides, then periodically call InterruptMouseMove() to see if you should interrupt your work because the mouse has moved again.
- [NumberPreview](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/numberpreview.md): If the user is typing a number, but hasn't pressed Enter, true is returned, along with the number the user typed.
- [OnDynamicDraw](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/ondynamicdraw.md): Default calls the DynamicDraw event.
- [OnMouseDown](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/onmousedown.md): Default calls the MouseDown event.
- [OnMouseMove](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/onmousemove.md): Calls the [GetPoint.MouseMove](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/mousemove.md) event and can/should be called by overriding implementation.
- [OnPostDrawObjects](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/onpostdrawobjects.md): In the "rare" case that you need to draw some depth buffered geometry during a GetPoint operation, override the OnPostDrawObjects function. NOTE!! Overriding this function comes with a significant performance penalty because the scene needs to be fully regenerated every frame where the standard DynamicDraw event draws temporary decorations (geometry) on top of a static scene.
- [PermitConstraintOptions](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/permitconstraintoptions.md): Control the availability of the built-in linear, planar, curve, and surface constraint options like "Along", "AlongPerp", "AlongTan", "AlongParallel", "Between", "OnCrv", "OnSrf", ".x", ".y", ".z", ".xy", etc.
- [PermitElevatorMode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/permitelevatormode.md): Permits the use of the control key to define a line constraint.
- [PermitFromOption](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/permitfromoption.md): Control the availability of the built-in "From" option. By default, the "From" option is enabled.
- [PermitObjectSnap](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/permitobjectsnap.md): By default, object snaps like "end", "near", etc. are controlled by the user. If you want to disable this ability, then call PermitObjectSnap(false).
- [PermitOrthoSnap](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/permitorthosnap.md): Controls availability of ortho snap. Default is true.
- [PermitTabMode](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/permittabmode.md): Permits the use of the tab key to define a line constraint.
- [PointOnBrep](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/pointonbrep.md): Use to determine if point was on a Brep face. If the point was on a Brep face, then the (u,v) are the face parameters for the point.
- [PointOnCurve](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/pointoncurve.md): Use to determine is point was on a curve.
- [PointOnObject](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/pointonobject.md): Call this function to see if the point was on an object. If the point was on an object an ObjRef is returned; otherwise null is returned.
- [PointOnSurface](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/pointonsurface.md): Use to determine if point was on a surface. If the point was on a surface, then the (u,v) are the surface parameters for the point. The point returned by Point() is the same as surface.PointAt(u,v).
- [SetBasePoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/setbasepoint.md): Sets a base point used by ortho snap, from snap, planar snap, etc.
- [SetCursor](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/setcursor.md): Sets cursor that will be used when Get() is called and snap is not happening.
- [Snap](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/snap.md): (static) Calculates the point the current object snap settings would produce, in the specified view, given a test point. This function does not prompt.
- [TryGetBasePoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/trygetbasepoint.md)

## Events

- [DynamicDraw](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/dynamicdraw.md): Event to use 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 MouseMove. If you are drawing anything that takes a long time, periodically call InterruptMouseMove() to see if you should stop.
- [MouseDown](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/mousedown.md): Called during Get2dRectangle, Get2dLine, and GetPoint(..,true) when the mouse down event for the initial point occurs. This function is not called during ordinary point getting because the mouse down event terminates an ordinary point get and returns a GetResult.Point result.
- [MouseMove](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/mousemove.md): Called every time the mouse moves. MouseMove is called once per mouse move and is called BEFORE any calls to 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 Unset.
- [PostDrawObjects](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getpoint/postdrawobjects.md): Same as the DisplayPipeline.PostDrawObjects, but only works during the operation of the Get() function. NOTE: You must set FullFrameRedrawDuringGet to true in order for this event to be called.

## Inherited Members

- From [GetBaseClass](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass.md): [AcceptColor](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/acceptcolor.md), [AcceptCustomMessage](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/acceptcustommessage.md), [AcceptEnterWhenDone](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/acceptenterwhendone.md), [AcceptNothing](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/acceptnothing.md), [AcceptNumber](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/acceptnumber.md), [AcceptPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/acceptpoint.md), [AcceptString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/acceptstring.md), [AcceptUndo](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/acceptundo.md), [AddOption](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/addoption.md), [AddOptionColor](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/addoptioncolor.md), [AddOptionDouble](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/addoptiondouble.md), [AddOptionEnumList<T>](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/addoptionenumlist.md), [AddOptionEnumSelectionList<T>](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/addoptionenumselectionlist.md), [AddOptionInteger](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/addoptioninteger.md), [AddOptionList](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/addoptionlist.md), [AddOptionString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/addoptionstring.md), [AddOptionToggle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/addoptiontoggle.md), [ClearCommandOptions](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/clearcommandoptions.md), [ClearDefault](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/cleardefault.md), [Color](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/color.md), [CommandResult](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/commandresult.md), [CustomMessage](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/custommessage.md), [Dispose](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/dispose.md), [EnableTransparentCommands](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/enabletransparentcommands.md), [GetSelectedEnumValue<T>](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/getselectedenumvalue.md), [GetSelectedEnumValueFromSelectionList<T>](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/getselectedenumvaluefromselectionlist.md), [GotDefault](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/gotdefault.md), [Line2d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/line2d.md), [Number](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/number.md), [Option](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/option.md), [OptionIndex](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/optionindex.md), [PickRectangle](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/pickrectangle.md), [Point](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/point.md), [Point2d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/point2d.md), [Rectangle2d](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/rectangle2d.md), [Result](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/result.md), [SetCommandPrompt](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/setcommandprompt.md), [SetCommandPromptDefault](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/setcommandpromptdefault.md), [SetDefaultColor](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/setdefaultcolor.md), [SetDefaultInteger](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/setdefaultinteger.md), [SetDefaultNumber](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/setdefaultnumber.md), [SetDefaultPoint](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/setdefaultpoint.md), [SetDefaultString](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/setdefaultstring.md), [SetOptionVaries](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/setoptionvaries.md), [SetWaitDuration](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/setwaitduration.md), [StringResult](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/stringresult.md), [Vector](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/vector.md), [View](https://developer.rhino3d.com/api/rhinocommon/type/rhino.input.custom.getbaseclass/view.md)
