42 lines
945 B
Go
42 lines
945 B
Go
package svgtemplate
|
|
|
|
// Data holds dynamic values for the SVG mask template.
|
|
type Data struct {
|
|
Size float64
|
|
Bleed float64
|
|
Margin float64
|
|
Padding float64
|
|
ViewBoxMin float64
|
|
ViewBoxSize float64
|
|
MaskSize float64
|
|
OuterSize float64
|
|
OuterOffset float64
|
|
InnerSize float64
|
|
InnerOffset float64
|
|
MarkLength float64
|
|
}
|
|
|
|
const defaultMarkLength = 6.0 // mm
|
|
|
|
// Build computes template data from product dimensions.
|
|
func Build(size, bleed, margin, padding float64) Data {
|
|
offset := bleed + margin + defaultMarkLength
|
|
viewBoxMin := -offset
|
|
viewBoxSize := size + (offset * 2)
|
|
|
|
return Data{
|
|
Size: size,
|
|
Bleed: bleed,
|
|
Margin: margin,
|
|
Padding: padding,
|
|
ViewBoxMin: viewBoxMin,
|
|
ViewBoxSize: viewBoxSize,
|
|
MarkLength: defaultMarkLength,
|
|
MaskSize: size,
|
|
OuterSize: size + (bleed * 2),
|
|
OuterOffset: -bleed,
|
|
InnerSize: size - (padding * 2),
|
|
InnerOffset: padding,
|
|
}
|
|
}
|