svg

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2024 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package svg parses Gerber to SVG.

Package svg parses Gerber to SVG.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Bounds

func Bounds(element interface{}) (image.Rectangle, error)

Types

type Arc

type Arc struct {
	Type ElementType
	gerber.Arc
	RadiusX int
	RadiusY int

	LargeArc int
	Sweep    int

	Stroke string
	Attr   map[string]string
}

An Arc is a SVG Arc.

func (Arc) Bounds

func (e Arc) Bounds() image.Rectangle

func (Arc) MarshalJSON

func (e Arc) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (Arc) SetAttr

func (e Arc) SetAttr(k, v string) Arc

type Circle

type Circle struct {
	Type ElementType
	gerber.Circle
	Fill string
	Attr map[string]string
}

A Circle is a circle.

func (Circle) Bounds

func (e Circle) Bounds() image.Rectangle

func (Circle) MarshalJSON

func (e Circle) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (Circle) SetAttr

func (e Circle) SetAttr(k, v string) Circle

type ElementType

type ElementType string

An ElementType is a SVG element type.

const (
	ElementTypeCircle    ElementType = "Circle"
	ElementTypeRectangle ElementType = "Rect"
	ElementTypePath      ElementType = "Path"
	ElementTypeLine      ElementType = "Line"
	ElementTypeArc       ElementType = "Arc"
)

type Line

type Line struct {
	Type ElementType
	gerber.Line
	Stroke string
	Attr   map[string]string
}

A Line is a SVG line.

func (Line) Bounds

func (e Line) Bounds() image.Rectangle

func (Line) MarshalJSON

func (e Line) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (Line) SetAttr

func (e Line) SetAttr(k, v string) Line

type Path

type Path struct {
	Type     ElementType
	Line     int
	X        int
	Y        int
	Commands []interface{}
	Fill     string
	Attr     map[string]string
}

A Path is a SVG path.

func (Path) Bounds

func (e Path) Bounds() (image.Rectangle, error)

func (Path) MarshalJSON

func (e Path) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (Path) SetAttr

func (e Path) SetAttr(k, v string) Path

type PathArc

type PathArc struct {
	Type     ElementType
	RadiusX  int
	RadiusY  int
	LargeArc int
	Sweep    int
	X        int
	Y        int
}

A PathArc is an arc in a SVG path.

func (PathArc) MarshalJSON

func (e PathArc) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

type PathLine

type PathLine struct {
	Type ElementType
	X    int
	Y    int
}

A PathLine is a line in a SVG path.

func (PathLine) MarshalJSON

func (e PathLine) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

type Processor

type Processor struct {
	// Data contains SVG elements.
	Data []interface{}

	// Viewbox of Gerber image.
	MinX int
	MaxX int
	MinY int
	MaxY int

	// Color for Gerber polarities, defaults to black and white.
	PolarityDark  string
	PolarityClear string

	// Optional scaling factor of coordinates when writing SVG image.
	Scale float64

	// Optional width and height of output SVG image.
	Width  string
	Height string

	// Whether to output javascript for interactive panning and zooming in SVG.
	PanZoom bool
}

A Processor is a performer of Gerber graphic operations.

func NewProcessor

func NewProcessor() *Processor

NewProcessor creates a Processor.

func SVG

func SVG(r io.Reader) (*Processor, error)

SVG parses Gerber input into SVG.

func (*Processor) Arc

func (p *Processor) Arc(garc gerber.Arc) error

func (*Processor) Circle

func (p *Processor) Circle(circle gerber.Circle)

func (*Processor) Contour

func (p *Processor) Contour(contour gerber.Contour) error

func (*Processor) Line

func (p *Processor) Line(gline gerber.Line)

func (*Processor) Obround

func (p *Processor) Obround(obround gerber.Obround)

func (*Processor) Rectangle

func (p *Processor) Rectangle(rectangle gerber.Rectangle)

func (*Processor) SetViewbox

func (p *Processor) SetViewbox(minX, maxX, minY, maxY int)

func (*Processor) UnmarshalJSON

func (p *Processor) UnmarshalJSON(b []byte) error

func (*Processor) UnmarshalJSON_1

func (p *Processor) UnmarshalJSON_1(b []byte) error

func (*Processor) Write

func (p *Processor) Write(w io.Writer) error

Write writes Gerber graphics operations as SVG.

type Rectangle

type Rectangle struct {
	Type     ElementType
	Aperture string
	gerber.Rectangle
	RadiusX int
	RadiusY int
	Fill    string
	Attr    map[string]string
}

A Rectangle is a rectangle.

func (Rectangle) Bounds

func (e Rectangle) Bounds() image.Rectangle

func (Rectangle) MarshalJSON

func (e Rectangle) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler.

func (Rectangle) SetAttr

func (e Rectangle) SetAttr(k, v string) Rectangle

Jump to

Keyboard shortcuts

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