//**************************************************************** // Picking - Methods for picking the camera and it's view. //**************************************************************** /// <summary> /// Generate and return a PPickPath for the point x,y specified in the local /// coordinate system of this camera. /// </summary> /// <param name="x">The x coordinate of the pick point.</param> /// <param name="y">The y coordinate of the pick point.</param> /// <param name="halo"> /// The value to use for the width and height of the rectangle used for picking. /// </param> /// <returns>A PPickPath for the given point.</returns> /// <remarks> /// Picking is done with a rectangle, halo specifies how large that rectangle /// will be. /// </remarks> public virtual PPickPath Pick(float x, float y, float halo) { RectangleF b = PUtil.InflatedRectangle(new PointF(x, y), halo, halo); PPickPath result = new PPickPath(this, b); FullPick(result); // make sure this camera is pushed. if (result.NodeStackReference.Count == 0) { result.PushNode(this); result.PushMatrix(MatrixReference); } return(result); }