void SolveSpaceUI::Exit(void) { // Recent files for(int i = 0; i < MAX_RECENT; i++) CnfFreezeString(RecentFile[i], "RecentFile_" + std::to_string(i)); // Model colors for(int i = 0; i < MODEL_COLORS; i++) CnfFreezeColor(modelColor[i], "ModelColor_" + std::to_string(i)); // Light intensities CnfFreezeFloat((float)lightIntensity[0], "LightIntensity_0"); CnfFreezeFloat((float)lightIntensity[1], "LightIntensity_1"); // Light directions CnfFreezeFloat((float)lightDir[0].x, "LightDir_0_Right"); CnfFreezeFloat((float)lightDir[0].y, "LightDir_0_Up"); CnfFreezeFloat((float)lightDir[0].z, "LightDir_0_Forward"); CnfFreezeFloat((float)lightDir[1].x, "LightDir_1_Right"); CnfFreezeFloat((float)lightDir[1].y, "LightDir_1_Up"); CnfFreezeFloat((float)lightDir[1].z, "LightDir_1_Forward"); // Chord tolerance CnfFreezeFloat((float)chordTol, "ChordTolerancePct"); // Max pwl segments to generate CnfFreezeInt((uint32_t)maxSegments, "MaxSegments"); // Export Chord tolerance CnfFreezeFloat((float)exportChordTol, "ExportChordTolerance"); // Export Max pwl segments to generate CnfFreezeInt((uint32_t)exportMaxSegments, "ExportMaxSegments"); // View units CnfFreezeInt((uint32_t)viewUnits, "ViewUnits"); // Number of digits after the decimal point CnfFreezeInt((uint32_t)afterDecimalMm, "AfterDecimalMm"); CnfFreezeInt((uint32_t)afterDecimalInch, "AfterDecimalInch"); // Camera tangent (determines perspective) CnfFreezeFloat((float)cameraTangent, "CameraTangent"); // Grid spacing CnfFreezeFloat(gridSpacing, "GridSpacing"); // Export scale CnfFreezeFloat(exportScale, "ExportScale"); // Export offset (cutter radius comp) CnfFreezeFloat(exportOffset, "ExportOffset"); // Rewrite exported colors close to white into black (assuming white bg) CnfFreezeBool(fixExportColors, "FixExportColors"); // Draw back faces of triangles (when mesh is leaky/self-intersecting) CnfFreezeBool(drawBackFaces, "DrawBackFaces"); // Check that contours are closed and not self-intersecting CnfFreezeBool(checkClosedContour, "CheckClosedContour"); // Export shaded triangles in a 2d view CnfFreezeBool(exportShadedTriangles, "ExportShadedTriangles"); // Export pwl curves (instead of exact) always CnfFreezeBool(exportPwlCurves, "ExportPwlCurves"); // Background color on-screen CnfFreezeColor(backgroundColor, "BackgroundColor"); // Whether export canvas size is fixed or derived from bbox CnfFreezeBool(exportCanvasSizeAuto, "ExportCanvasSizeAuto"); // Margins for automatic canvas size CnfFreezeFloat(exportMargin.left, "ExportMargin_Left"); CnfFreezeFloat(exportMargin.right, "ExportMargin_Right"); CnfFreezeFloat(exportMargin.bottom, "ExportMargin_Bottom"); CnfFreezeFloat(exportMargin.top, "ExportMargin_Top"); // Dimensions for fixed canvas size CnfFreezeFloat(exportCanvas.width, "ExportCanvas_Width"); CnfFreezeFloat(exportCanvas.height, "ExportCanvas_Height"); CnfFreezeFloat(exportCanvas.dx, "ExportCanvas_Dx"); CnfFreezeFloat(exportCanvas.dy, "ExportCanvas_Dy"); // Extra parameters when exporting G code CnfFreezeFloat(gCode.depth, "GCode_Depth"); CnfFreezeInt(gCode.passes, "GCode_Passes"); CnfFreezeFloat(gCode.feed, "GCode_Feed"); CnfFreezeFloat(gCode.plungeFeed, "GCode_PlungeFeed"); // Show toolbar in the graphics window CnfFreezeBool(showToolbar, "ShowToolbar"); // Autosave timer CnfFreezeInt(autosaveInterval, "AutosaveInterval"); // And the default styles, colors and line widths and such. Style::FreezeDefaultStyles(); // Exiting cleanly. RemoveAutosave(); ExitNow(); }
void CnfFreezeColor(RgbColor v, const char *name) { CnfFreezeInt(v.ToPackedInt(), name); }
void SolveSpace::CnfFreezeColor(RgbaColor v, const char *name) { CnfFreezeInt(v.ToPackedInt(), name); }
void CnfFreezeBool(bool v, const char *name) { CnfFreezeInt(v ? 1 : 0, name); }
void SolveSpace::CnfFreezeBool(bool v, const char *name) { CnfFreezeInt(v ? 1 : 0, name); }