39 lines
1.3 KiB
Go
39 lines
1.3 KiB
Go
package main
|
|
|
|
import "image"
|
|
|
|
// VectorWrapSession holds state for the Vector Wrap workflow:
|
|
// wrapping 2D vector art onto 3D surfaces.
|
|
type VectorWrapSession struct {
|
|
SVGDoc *SVGDocument
|
|
SVGPath string
|
|
SVGImage image.Image
|
|
ModelPath string
|
|
ModelType string // "stl", "scad", or "project-enclosure"
|
|
ModelSTL []byte // raw binary STL data
|
|
EnclosureSCAD string // populated when ModelType == "project-enclosure"
|
|
TraySCAD string
|
|
}
|
|
|
|
// StructuralSession holds state for the Structural Procedures workflow:
|
|
// procedural pattern infill of edge-cut shapes for 3D printing.
|
|
type StructuralSession struct {
|
|
SVGDoc *SVGDocument
|
|
SVGPath string
|
|
Pattern string // e.g. "hexagon", "triangle", "diamond", "voronoi"
|
|
CellSize float64 // mm
|
|
WallThick float64 // mm
|
|
Height float64 // extrusion height mm
|
|
ShellThick float64 // outer shell thickness mm
|
|
}
|
|
|
|
// ScanHelperConfig holds configuration for generating printable scan grids.
|
|
type ScanHelperConfig struct {
|
|
PageWidth float64 // mm (e.g. 210 for A4)
|
|
PageHeight float64 // mm (e.g. 297 for A4)
|
|
GridSpacing float64 // mm between calibration markers
|
|
PagesWide int // number of pages horizontally when stitching
|
|
PagesTall int // number of pages vertically when stitching
|
|
DPI float64 // target scan DPI
|
|
}
|