svg

package
v0.3.6 Latest Latest
Warning

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

Go to latest
Published: Dec 17, 2024 License: MIT, Apache-2.0 Imports: 13 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{}) (*geom.Bounds, error)

Types

type Arc

type Arc struct {
	Type ElementType
	*gerber.Arc
	RadiusX float64
	RadiusY float64

	LargeArc int
	Sweep    int

	Stroke string
	Attr   map[string]string
}

An Arc is a SVG Arc.

func (Arc) Bounds

func (e Arc) Bounds() *geom.Bounds

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() *geom.Bounds

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 = "CircularArc"
)

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() *geom.Bounds

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        float64
	Y        float64
	Commands []interface{}
	Fill     string
	Attr     map[string]string
}

A Path is a SVG path.

func (Path) Bounds

func (e Path) Bounds() (*geom.Bounds, 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
	XRadius  float64
	YRadius  float64
	LargeArc int
	Sweep    int
	X        float64
	Y        float64
}

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    float64
	Y    float64
}

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.
	*gerber.ViewBox

	// 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
	// contains filtered or unexported fields
}

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)

func (*Processor) Circle

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

func (*Processor) Contour

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

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 added in v0.3.0

func (p *Processor) SetViewBox(box *gerber.ViewBox)

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 float64
	RadiusY float64
	Fill    string
	Attr    map[string]string
}

A Rectangle is a rectangle.

func (Rectangle) Bounds

func (e Rectangle) Bounds() *geom.Bounds

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