clip

package
v0.0.0-...-d956aad Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 2, 2020 License: Unlicense Imports: 7 Imported by: 0

Documentation

Overview

Package clip provides operations for clipping paint operations. Drawing outside the current clip area is ignored.

The current clip is initially the infinite set. An Op sets the clip to the intersection of the current clip and the clip area it represents. If you need to reset the current clip to its value before applying an Op, use op.StackOp.

General clipping areas are constructed with Path. Simpler special cases such as rectangular clip areas also exist as convenient constructors.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Op

type Op struct {
	// contains filtered or unexported fields
}

Op sets the current clip to the intersection of the existing clip with this clip.

If you need to reset the clip to its previous values after applying a Op, use op.StackOp.

func (Op) Add

func (p Op) Add(o *op.Ops)

type Path

type Path struct {
	// contains filtered or unexported fields
}

Path constructs a Op clip path described by lines and Bézier curves, where drawing outside the Path is discarded. The inside-ness of a pixel is determines by the even-odd rule, similar to the SVG rule of the same name.

Path generates no garbage and can be used for dynamic paths; path data is stored directly in the Ops list supplied to Begin.

func (*Path) Begin

func (p *Path) Begin(ops *op.Ops)

Begin the path, storing the path data and final Op into ops.

func (*Path) Cube

func (p *Path) Cube(ctrl0, ctrl1, to f32.Point)

Cube records a cubic Bézier from the pen through two control points ending in to.

func (*Path) End

func (p *Path) End() Op

End the path and return a clip operation that represents it.

func (*Path) Line

func (p *Path) Line(delta f32.Point)

Line moves the pen by the amount specified by delta, recording a line.

func (*Path) Move

func (p *Path) Move(to f32.Point)

MoveTo moves the pen to the given position.

func (*Path) Quad

func (p *Path) Quad(ctrl, to f32.Point)

Quad records a quadratic Bézier from the pen to end with the control point ctrl.

type Rect

type Rect struct {
	Rect f32.Rectangle
	// The corner radii.
	SE, SW, NW, NE float32
}

Rect represents the clip area of a rectangle with rounded corners.The origin is in the upper left corner. Specify a square with corner radii equal to half the square size to construct a circular clip area.

func (Rect) Op

func (rr Rect) Op(ops *op.Ops) Op

Op returns the Op for the rectangle.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL