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, } }