graphics library

3D visualization and graphics components.

Provides 3D rendering capabilities, custom meshes, and visual indicators for the megastructure design viewer.

Classes

AssemblyColorLegend
Assembly handle color legend with clickable swatches in a 2x3 grid with reset button on side
ColorLegendItem
A single clickable color swatch for the assembly handle legend
CrossHatchShader
HoneycombCustomPainterWidget
HoneycombPainter
InstanceMetrics
StandardLineChart
StatusIndicator
ThreeDisplay
ThreeDisplayState
ValencyIndicator

Constants

defaultPrintScaleMmPerUnit → const double
Default scale: 0.47 mm per internal unit. This makes a standard 32-slot slat (320 internal units) ≈ 150mm (15cm).
kLogTickStep → const double

Functions

approxEqual(double a, double b, [double epsilon = 1e-4]) → bool
createDBSlat(double radius, double slatLength, double gridSize, double x60jump, double y60jump, bool tipExtensions, bool hexaTilt, {List<List<double>>? helixBundlePositions, bool honeyCombVariant = false, bool drawBVariant = false}) → BufferGeometry
createHoneyCombSlat(List<List<double>> helixBundlePositions, double helixBundleSize, double gridSize, bool tipExtensions) → BufferGeometry
createSeedTubeGeometry(Map<int, Offset> coordinates, double gridSize, int rotationAngle, int transverseAngle, int cols, int rows, double tubeRadius) → BufferGeometry
drawTube(List<Vector3> pathPoints, double tubeRadius, {String curveType = "catmullrom", double tension = 0.01}) → List<BufferGeometry>
exportDesignToSTL({required Map<String, InstanceMetrics> instanceManager, required List<String> slatInstanceNames, required String designName, double scaleFactor = defaultPrintScaleMmPerUnit}) → Future<void>
Exports all visible slat instances as a binary STL file.
leftTitleWidgets(double value, TitleMeta meta) → Widget
log10(num x) → double
logXAxisTitleWidgets(double value, TitleMeta meta) → Widget
seedKeyToString((String, String, Offset) key) → String
validateFullConnectivity({required Map<String, Slat> slats, required Map<String, Map<Offset, String>> occupiedGridPoints, required Map<String, Map<String, dynamic>> layerMap}) → String?
Returns null if all slats form a single connected component via assembly handles, or an error message listing disconnected slats.