@@ -215,6 +215,33 @@ void BoardPreferences::load_from_json(const json &j)
215215 move_using_router = j.value (" move_using_router" , true );
216216}
217217
218+ json View3DPreferences::serialize () const
219+ {
220+ json j;
221+ j[" use_ortho_projection" ] = use_ortho_projection;
222+ j[" solder_mask_color" ] = color_to_json (solder_mask_color);
223+ j[" silkscreen_color" ] = color_to_json (silkscreen_color);
224+ j[" substrate_color" ] = color_to_json (substrate_color);
225+ j[" bg_top_color" ] = color_to_json (bg_top_color);
226+ j[" bg_bottom_color" ] = color_to_json (bg_bottom_color);
227+ return j;
228+ }
229+
230+ void View3DPreferences::load_from_json (const json &j)
231+ {
232+ use_ortho_projection = j.value (" use_ortho_projection" , false );
233+ if (j.count (" solder_mask_color" ))
234+ solder_mask_color = color_from_json (j.at (" solder_mask_color" ));
235+ if (j.count (" silkscreen_color" ))
236+ silkscreen_color = color_from_json (j.at (" silkscreen_color" ));
237+ if (j.count (" substrate_color" ))
238+ substrate_color = color_from_json (j.at (" substrate_color" ));
239+ if (j.count (" bg_top_color" ))
240+ bg_top_color = color_from_json (j.at (" bg_top_color" ));
241+ if (j.count (" bg_bottom_color" ))
242+ bg_bottom_color = color_from_json (j.at (" bg_bottom_color" ));
243+ }
244+
218245json ZoomPreferences::serialize () const
219246{
220247 json j;
@@ -601,6 +628,7 @@ json Preferences::serialize() const
601628 j[" key_sequences" ] = key_sequences.serialize ();
602629 j[" in_tool_key_sequences" ] = in_tool_key_sequences.serialize ();
603630 j[" board" ] = board.serialize ();
631+ j[" view_3d" ] = view_3d.serialize ();
604632 j[" zoom" ] = zoom.serialize ();
605633 j[" capture_output" ] = capture_output;
606634 j[" stock_info_provider" ] = stock_info_provider_lut.lookup_reverse (stock_info_provider);
@@ -636,6 +664,8 @@ void Preferences::load_from_json(const json &j)
636664 schematic.load_from_json (j.at (" schematic" ));
637665 if (j.count (" board" ))
638666 board.load_from_json (j.at (" board" ));
667+ if (j.count (" view_3d" ))
668+ view_3d.load_from_json (j.at (" view_3d" ));
639669 if (j.count (" zoom" ))
640670 zoom.load_from_json (j.at (" zoom" ));
641671 if (j.count (" key_sequences" ))
0 commit comments