243 COLOR4D( 0.0, 1.0, 0.0, 1.0 ) ) );
247 &
m_Render.opengl_copper_thickness,
false ) );
249 &
m_Render.show_model_bbox,
false ) );
251 &
m_Render.show_off_board_silk,
false ) );
253 &
m_Render.highlight_on_rollover,
true ) );
255 &
m_Render.opengl_AA_disableOnMove,
false ) );
257 &
m_Render.opengl_thickness_disableOnMove,
false ) );
259 &
m_Render.opengl_microvias_disableOnMove,
false ) );
261 &
m_Render.opengl_holes_disableOnMove,
false ) );
263 &
m_Render.opengl_render_bbox_only_OnMove,
false ) );
267 &
m_Render.raytrace_anti_aliasing,
true ) );
269 &
m_Render.raytrace_backfloor,
false ) );
271 &
m_Render.raytrace_post_processing,
true ) );
273 &
m_Render.raytrace_procedural_textures,
true ) );
275 &
m_Render.raytrace_reflections,
true ) );
277 &
m_Render.raytrace_refractions,
true ) );
279 &
m_Render.raytrace_shadows,
true ) );
282 &
m_Render.raytrace_nrsamples_shadows, 3 ) );
284 &
m_Render.raytrace_nrsamples_reflections, 3 ) );
286 &
m_Render.raytrace_nrsamples_refractions, 4 ) );
289 &
m_Render.raytrace_recursivelevel_reflections, 3 ) );
291 &
m_Render.raytrace_recursivelevel_refractions, 2 ) );
294 &
m_Render.raytrace_spread_shadows, 0.05f ) );
296 &
m_Render.raytrace_spread_reflections, 0.025f ) );
298 &
m_Render.raytrace_spread_refractions, 0.025f ) );
301 &
m_Render.raytrace_lightColorCamera,
302 COLOR4D( 0.2, 0.2, 0.2, 1.0 ) ) );
306 COLOR4D( 0.247, 0.247, 0.247, 1.0 ) ) );
309 &
m_Render.raytrace_lightColorBottom,
310 COLOR4D( 0.247, 0.247, 0.247, 1.0 ) ) );
312 std::vector<COLOR4D> default_colors =
314 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
315 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
316 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
317 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
318 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
319 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
320 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
321 COLOR4D( 0.168, 0.168, 0.168, 1.0 )
326 std::move( default_colors ) ) );
328 const std::vector<int> default_elevation =
330 67, 67, 67, 67, -67, -67, -67, -67,
335 std::move( default_elevation ) ) );
337 const std::vector<int> default_azimuth =
339 45, 135, 225, 315, 45, 135, 225, 315,
344 std::move( default_azimuth ) ) );
351 &
m_Render.show_board_body,
true ) );
353 &
m_Render.show_plated_barrels,
true ) );
363 for(
int layer = 0; layer < 45; ++layer )
365 m_params.emplace_back( new PARAM<bool>( fmt::format(
"render.show_user{}", layer + 1 ),
366 &m_Render.show_user[layer], false ) );
370 &
m_Render.show_footprints_insert,
true ) );
372 &
m_Render.show_footprints_normal,
true ) );
374 &
m_Render.show_footprints_virtual,
true ) );
376 &
m_Render.show_footprints_not_in_posfile,
true ) );
378 &
m_Render.show_footprints_dnp,
false ) );
380 &
m_Render.show_silkscreen_top,
true ) );
382 &
m_Render.show_silkscreen_bottom,
true ) );
384 &
m_Render.show_soldermask_top,
true ) );
386 &
m_Render.show_soldermask_bottom,
true ) );
388 &
m_Render.show_solderpaste,
true ) );
390 &
m_Render.show_copper_bottom,
true ) );
392 &
m_Render.show_copper_top,
true ) );
396 &
m_Render.show_fp_references,
true ) );
402 &
m_Render.subtract_mask_from_silk,
false ) );
404 &
m_Render.clip_silk_on_via_annuli,
false ) );
406 &
m_Render.differentiate_plated_copper,
false ) );
408 &
m_Render.use_board_editor_copper_colors,
false ) );
410 &
m_Render.preview_show_board_body,
true ) );
413 &
m_Camera.animation_enabled,
true ) );
415 &
m_Camera.moving_speed_multiplier, 3 ) );
417 &
m_Camera.rotation_increment, 10.0 ) );
433 Set(
"render.opengl_copper_thickness",
false );
440 if( std::optional<bool> optval =
Get<bool>(
"render.show_copper" ) )
442 Set(
"render.show_copper_top", *optval );
443 Set(
"render.show_copper_bottom", *optval );
446 if( std::optional<bool> optval =
Get<bool>(
"render.show_silkscreen" ) )
448 Set(
"render.show_silkscreen_top", *optval );
449 Set(
"render.show_silkscreen_bottom", *optval );
452 if( std::optional<bool> optval =
Get<bool>(
"render.show_soldermask" ) )
454 Set(
"render.show_soldermask_top", *optval );
455 Set(
"render.show_soldermask_bottom", *optval );
458 if( std::optional<bool> optval =
Get<bool>(
"render.show_comments" ) )
459 Set(
"render.show_drawings", *optval );
461 if( std::optional<bool> optval =
Get<bool>(
"render.show_eco" ) )
463 Set(
"render.show_eco1", *optval );
464 Set(
"render.show_eco2", *optval );
473 std::map<int, wxString> legacyColorMap;
475 legacyColorMap[142] =
"fp_values";
476 legacyColorMap[143] =
"fp_references";
477 legacyColorMap[130] =
"fp_text";
478 legacyColorMap[466] =
"background_bottom";
479 legacyColorMap[467] =
"background_top";
480 legacyColorMap[468] =
"board";
481 legacyColorMap[469] =
"copper";
482 legacyColorMap[470] =
"copper_bottom";
483 legacyColorMap[471] =
"silkscreen_bottom";
484 legacyColorMap[472] =
"silkscreen_top";
485 legacyColorMap[473] =
"soldermask_bottom";
486 legacyColorMap[474] =
"soldermask_top";
487 legacyColorMap[475] =
"solderpaste";
488 legacyColorMap[476] =
"adhesive";
489 legacyColorMap[477] =
"user_comments";
490 legacyColorMap[478] =
"user_drawings";
491 legacyColorMap[479] =
"user_eco1";
492 legacyColorMap[480] =
"user_eco2";
493 legacyColorMap[481] =
"th_models";
494 legacyColorMap[482] =
"smd_models";
495 legacyColorMap[483] =
"virtual_models";
496 legacyColorMap[484] =
"non_pos_file_models";
497 legacyColorMap[485] =
"dnp_models";
498 legacyColorMap[486] =
"3d_navigator";
499 legacyColorMap[487] =
"bounding_boxes";
500 legacyColorMap[488] =
"off_board_silk";
502 if( !
Contains(
"layer_presets" ) || !
At(
"layer_presets" ).is_array() )
505 for( nlohmann::json& preset :
At(
"layer_presets" ) )
507 if( preset.contains(
"colors" ) && preset.at(
"colors" ).is_array() )
509 for( nlohmann::json& color : preset.at(
"colors" ) )
511 if( color.contains(
"layer" ) && color.at(
"layer" ).is_number_integer() )
512 color[
"layer"] = legacyColorMap[color[
"layer"].get<
int>()];
516 if( preset.contains(
"layers" ) && preset.at(
"layers" ).is_array() )
518 nlohmann::json mappedLayers = nlohmann::json::array();
520 for(
const nlohmann::json& layer : preset.at(
"layers" ) )
522 if( layer.is_number_integer() )
523 mappedLayers.push_back( legacyColorMap[layer.get<
int>()] );
526 preset[
"layers"] = mappedLayers;