The InputPoint used to pick entities that reside under the current cursor location. InputPoint and PickHelper are similar, but InputPoint also uses inferencing. Only tools react to cursor location. Therefore, most of the methods in this class are only useful in the context of a tool you are writing. For example, if you want to determine the entity that you just clicked on with the mouse, you would use InputPoint.pick from within your onLMouseButton method in a tool. See the example script linetool.rb for examples of using the InputPoint class.
The == method is used to determine if two input points are the same.
Arguments:
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = Sketchup::InputPoint.new ip2 = view.inputpoint x,y # Copy the contents of inputpoint2 into inputpoint1 ip1.copy! ip2 # Returns true status = ip1 == ip2
The clear method is used to clear the input point.
This sets it to an empty state. After calling this, valid? will return
false.
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = view.inputpoint x,y # Returns true ip = ip1.clear
The copy! method is used to copy the data from a second input point into this input point.
Arguments:
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = Sketchup::InputPoint.new ip2 = view.inputpoint x,y # Copy the contents of inputpoint2 into inputpoint1 ip = ip1.copy! ip2
The degrees_of_freedom method retrieves the number of degrees of freedom
there are for an input point.
If you are just getting a point in space, then the degrees_of_freedom will
be 3 - meaning that there is nothing about the point that would constrain
its position.
If you are on a face, then the degrees_of_freedom will be 2
meaning that you can only move on the plane of the face.
If you are on an Edge or an axis, then the degrees_of_freedom will be 1
meaning that you can only move in the direction of the edge or axis.
If you get an end point of an Edge, or an intersection point, then the
degrees_of_freedom will be 0.
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = view.inputpoint x,y dof = ip1.degrees_of_freedom
The depth method retrieves the depth of an inference if it is coming from a
component.
If the InputPoint is not getting a position from inside a component, this
method will return 0. Otherwise it returns the depth of the entity in a
nested component that is providing the position.
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = view.inputpoint x,y d = ip1.depth
The display? method is used to determine if the input point has anything to
draw.
If the method returns true, then the draw method will draw something.
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = view.inputpoint x,y status = ip1.display
The draw method is used to draw the input point.
This is useful for showing an InputPoint from within the draw method of a
tool that you have implemented in Ruby. Additional examples are available in
the Plugins/examples directory.
Arguments:
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = view.inputpoint x,y ip = ip1.draw view
The edge method is used to retrieve the edge if the input point is getting its position from a point on an Edge.
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = view.inputpoint x,y e = ip1.edge
The face method retrieves the face if the input point is getting its
position from a face.
Otherwise it returns nil.
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = view.inputpoint x,y f = ip1.face
The new method is used to create a new InputPoint object.
Returns:
ip1 = Sketchup::InputPoint.new
The pick method is used to get the input point at a specific screen
position.
The first form just uses the screen position to compute the InputPoint. It
is used when you don't want the InputPoint to be dependent on another
InputPoint.
The second form uses the screen position and another InputPoint. It will
find additional inferences such as along one of the axis directions from the
first point.
Arguments:
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 inputpoint = view.inputpoint x, y inputpoint2 = Sketchup::InputPoint.new inputpoint.pick view, x, y inputpoint.pick view, x, y, inputpoint2
The position method is used to get the 3D point from the input point.
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = view.inputpoint x,y point = ip1.position
The tooltip method is used to retrieve the string that is the tool tip to display for the input point.
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = view.inputpoint x,y # Click on a face and you get "On Face" tip = ip1.tooltip
The transformation method retrieves the Transformation object for the input
point.
If the InputPoint object is getting its position from something inside of a
component instance, this method returns the Transformation of the component
instance. Otherwise it returns the identity Transformation.
Note that the position method on a input point always returns a point that is
transformed into model space. If you are using the edge, face or vertex
method on the InputPoint though, you will probably need to use the
transformation method to transform the data that you get back from the
selected entity.
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = view.inputpoint x,y # In this case, returning the identity transformation tform = ip1.transformation
The valid? method is used to determine if an input point has valid data.
You must have called the pick method to set the data before it is valid.
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = view.inputpoint x,y status = ip1.valid?
The vertex method returns a Vertex associated with the InputPoint. If the InputPoint is on the end of a line, then it will return the Vertex. If the InputPoint does not select any vertices this method returns nil.
Returns:
view = Sketchup.active_model.active_view x = 100 y = 100 ip1 = view.inputpoint x,y # Click on a face and you get "On Face" tip = ip1.vertex