// See cairo_set_line_join().
//
// C API documentation: http://cairographics.org/manual/cairo-cairo-t.html#cairo-set-line-join
485526
func (cr *Context) SetLineJoin(lineJoin LineJoin) {
	C.cairo_set_line_join(cr.Ptr, C.cairo_line_join_t(lineJoin))
	if err := cr.status(); err != nil {
		panic(err)
	}
}
960577
func (s ShapeTags) Join(sep string) string {
	o := &bytes.Buffer{}
	for i, t := range s {
		o.WriteString(t.String())
		if i < len(s)-1 {
			o.WriteString(sep)
		}
	}

	return o.String()
}
66077
func (g *Group) Line() *Statement {
	s := Line()
	g.items = append(g.items, s)
	return s
}
532475
func (l *Line) Intersection(line *Line) *Point {
	den := (line.b[1]-line.a[1])*(l.b[0]-l.a[0]) - (line.b[0]-line.a[0])*(l.b[1]-l.a[1])
	U1 := (line.b[0]-line.a[0])*(l.a[1]-line.a[1]) - (line.b[1]-line.a[1])*(l.a[0]-line.a[0])
	U2 := (l.b[0]-l.a[0])*(l.a[1]-line.a[1]) - (l.b[1]-l.a[1])*(l.a[0]-line.a[0])

	if den == 0 {
		// collinear, all bets are off
		if U1 == 0 && U2 == 0 {
			return InfinityPoint
		}

		return nil
	}

	if U1/den < 0 || U1/den > 1 || U2/den < 0 || U2/den > 1 {
		return nil
	}

	return l.Interpolate(U1 / den)
}
1043650
func (list *List) Join(separator string) string {
	return strings.Join(list.Contents(), separator)
}
493671
func (s *ChannelsService) Join(name string) *ChannelsJoinCall {
	var call ChannelsJoinCall
	call.service = s
	call.name = name
	return &call
}
573761
func (cr *Context) SetLineCap(lineCap LineCap) {
	C.cairo_set_line_cap(cr.Ptr, C.cairo_line_cap_t(lineCap))
	if err := cr.status(); err != nil {
		panic(err)
	}
}
384712
func (d *Dataset) Join(name string, other *Dataset, sortOption *SortOption) *Dataset {
	return d.DoJoin(name, other, false, false, sortOption)
}
253051
func (s *UpdatePipelineInput) SetPipeline(v *PipelineDeclaration) *UpdatePipelineInput {
	s.Pipeline = v
	return s
}
901429
func (vs *VertexSlice) SetLen(len int) {
	vs.End() // vs must have been Begin-ed before calling this method
	*vs = vs.grow(len)
	vs.Begin()
}
1223558
func (c Context) Join(a []string, sep string) string {
	return strings.Join(a, sep)
}
77288
func (options *FontOptions) SetSubpixelOrder(subpixelOrder SubpixelOrder) {
	C.cairo_font_options_set_subpixel_order(options.Ptr, C.cairo_subpixel_order_t(subpixelOrder))
	if err := options.status(); err != nil {
		panic(err)
	}
}
324891
func (cr *Context) GetLineJoin() LineJoin {
	ret := LineJoin(C.cairo_get_line_join(cr.Ptr))
	if err := cr.status(); err != nil {
		panic(err)
	}
	return ret
}
331626
func (s *CreatePipelineOutput) SetPipeline(v *PipelineDeclaration) *CreatePipelineOutput {
	s.Pipeline = v
	return s
}
189041
func Join(vectors ...Vector) Vector {
	// figure out how big to make the resulting vector so we can
	// allocate efficiently
	n := 0
	for _, vector := range vectors {
		n += vector.Len()
	}

	i := 0
	v := make(Vector, n)
	for _, vector := range vectors {
		for _, value := range vector {
			v[i] = value
			i++
		}
	}

	return v
}
786796
func (i *ASCIIArt) SetWidth(w int) {
	// Find the longest line
	for j := range i.contents {
		mkUp := w - len(i.contents[j])
		if mkUp > 0 {
			i.contents[j] = i.contents[j] + strings.Repeat(" ", mkUp)
		} else {
			i.contents[j] = i.contents[j][:w]
		}
	}
}
471117
func (ta *TextArea) SetLines(lines []string) {
	ta.Init()
	m := ta.model
	m.width = 0
	m.height = len(lines)
	m.lines = append([]string{}, lines...)
	for _, l := range lines {
		if len(l) > m.width {
			m.width = len(l)
		}
	}
	ta.CellView.SetModel(m)
}