271 COLOR4D( 0.0, 1.0, 0.0, 1.0 ) ) );
275 &
m_Render.opengl_copper_thickness,
false ) );
277 &
m_Render.show_model_bbox,
false ) );
279 &
m_Render.show_off_board_silk,
false ) );
281 &
m_Render.highlight_on_rollover,
true ) );
283 &
m_Render.opengl_AA_disableOnMove,
false ) );
285 &
m_Render.opengl_thickness_disableOnMove,
false ) );
287 &
m_Render.opengl_microvias_disableOnMove,
false ) );
289 &
m_Render.opengl_holes_disableOnMove,
false ) );
291 &
m_Render.opengl_render_bbox_only_OnMove,
false ) );
295 &
m_Render.raytrace_anti_aliasing,
true ) );
297 &
m_Render.raytrace_backfloor,
false ) );
299 &
m_Render.raytrace_post_processing,
true ) );
301 &
m_Render.raytrace_procedural_textures,
true ) );
303 &
m_Render.raytrace_reflections,
true ) );
305 &
m_Render.raytrace_refractions,
true ) );
307 &
m_Render.raytrace_shadows,
true ) );
310 &
m_Render.raytrace_nrsamples_shadows, 3 ) );
312 &
m_Render.raytrace_nrsamples_reflections, 3 ) );
314 &
m_Render.raytrace_nrsamples_refractions, 4 ) );
317 &
m_Render.raytrace_recursivelevel_reflections, 3 ) );
319 &
m_Render.raytrace_recursivelevel_refractions, 2 ) );
322 &
m_Render.raytrace_spread_shadows, 0.05f ) );
324 &
m_Render.raytrace_spread_reflections, 0.025f ) );
326 &
m_Render.raytrace_spread_refractions, 0.025f ) );
329 &
m_Render.raytrace_lightColorCamera,
330 COLOR4D( 0.2, 0.2, 0.2, 1.0 ) ) );
334 COLOR4D( 0.247, 0.247, 0.247, 1.0 ) ) );
337 &
m_Render.raytrace_lightColorBottom,
338 COLOR4D( 0.247, 0.247, 0.247, 1.0 ) ) );
340 std::vector<COLOR4D> default_colors =
342 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
343 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
344 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
345 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
346 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
347 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
348 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
349 COLOR4D( 0.168, 0.168, 0.168, 1.0 )
354 std::move( default_colors ) ) );
356 const std::vector<int> default_elevation =
358 67, 67, 67, 67, -67, -67, -67, -67,
363 std::move( default_elevation ) ) );
365 const std::vector<int> default_azimuth =
367 45, 135, 225, 315, 45, 135, 225, 315,
372 std::move( default_azimuth ) ) );
379 &
m_Render.show_board_body,
true ) );
381 &
m_Render.show_plated_barrels,
true ) );
395 &
m_Render.show_f_courtyard,
false ) );
397 &
m_Render.show_b_courtyard,
false ) );
399 for(
int layer = 0; layer < 45; ++layer )
401 m_params.emplace_back( new PARAM<bool>( fmt::format(
"render.show_user{}", layer + 1 ),
402 &m_Render.show_user[layer], false ) );
406 &
m_Render.show_footprints_insert,
true ) );
408 &
m_Render.show_footprints_normal,
true ) );
410 &
m_Render.show_footprints_virtual,
true ) );
412 &
m_Render.show_footprints_not_in_posfile,
true ) );
414 &
m_Render.show_footprints_dnp,
false ) );
416 &
m_Render.show_silkscreen_top,
true ) );
418 &
m_Render.show_silkscreen_bottom,
true ) );
420 &
m_Render.show_soldermask_top,
true ) );
422 &
m_Render.show_soldermask_bottom,
true ) );
424 &
m_Render.show_solderpaste,
true ) );
426 &
m_Render.show_copper_bottom,
true ) );
428 &
m_Render.show_copper_top,
true ) );
432 &
m_Render.show_fp_references,
true ) );
438 &
m_Render.subtract_mask_from_silk,
false ) );
440 &
m_Render.clip_silk_on_via_annuli,
false ) );
442 &
m_Render.differentiate_plated_copper,
false ) );
444 &
m_Render.use_board_editor_copper_colors,
false ) );
446 &
m_Render.preview_show_board_body,
true ) );
449 &
m_Camera.animation_enabled,
true ) );
451 &
m_Camera.moving_speed_multiplier, 3 ) );
453 &
m_Camera.rotation_increment, 10.0 ) );
478 Set(
"render.opengl_copper_thickness",
false );
485 if( std::optional<bool> optval =
Get<bool>(
"render.show_copper" ) )
487 Set(
"render.show_copper_top", *optval );
488 Set(
"render.show_copper_bottom", *optval );
491 if( std::optional<bool> optval =
Get<bool>(
"render.show_silkscreen" ) )
493 Set(
"render.show_silkscreen_top", *optval );
494 Set(
"render.show_silkscreen_bottom", *optval );
497 if( std::optional<bool> optval =
Get<bool>(
"render.show_soldermask" ) )
499 Set(
"render.show_soldermask_top", *optval );
500 Set(
"render.show_soldermask_bottom", *optval );
503 if( std::optional<bool> optval =
Get<bool>(
"render.show_comments" ) )
504 Set(
"render.show_drawings", *optval );
506 if( std::optional<bool> optval =
Get<bool>(
"render.show_eco" ) )
508 Set(
"render.show_eco1", *optval );
509 Set(
"render.show_eco2", *optval );
518 std::map<int, wxString> legacyColorMap;
520 legacyColorMap[142] =
"fp_values";
521 legacyColorMap[143] =
"fp_references";
522 legacyColorMap[130] =
"fp_text";
523 legacyColorMap[466] =
"background_bottom";
524 legacyColorMap[467] =
"background_top";
525 legacyColorMap[468] =
"board";
526 legacyColorMap[469] =
"copper";
527 legacyColorMap[470] =
"copper_bottom";
528 legacyColorMap[471] =
"silkscreen_bottom";
529 legacyColorMap[472] =
"silkscreen_top";
530 legacyColorMap[473] =
"soldermask_bottom";
531 legacyColorMap[474] =
"soldermask_top";
532 legacyColorMap[475] =
"solderpaste";
533 legacyColorMap[476] =
"adhesive";
534 legacyColorMap[477] =
"user_comments";
535 legacyColorMap[478] =
"user_drawings";
536 legacyColorMap[479] =
"user_eco1";
537 legacyColorMap[480] =
"user_eco2";
538 legacyColorMap[481] =
"th_models";
539 legacyColorMap[482] =
"smd_models";
540 legacyColorMap[483] =
"virtual_models";
541 legacyColorMap[484] =
"non_pos_file_models";
542 legacyColorMap[485] =
"dnp_models";
543 legacyColorMap[486] =
"3d_navigator";
544 legacyColorMap[487] =
"bounding_boxes";
545 legacyColorMap[488] =
"off_board_silk";
547 if( !
Contains(
"layer_presets" ) || !
At(
"layer_presets" ).is_array() )
550 for( nlohmann::json& preset :
At(
"layer_presets" ) )
552 if( preset.contains(
"colors" ) && preset.at(
"colors" ).is_array() )
554 for( nlohmann::json& color : preset.at(
"colors" ) )
556 if( color.contains(
"layer" ) && color.at(
"layer" ).is_number_integer() )
557 color[
"layer"] = legacyColorMap[color[
"layer"].get<
int>()];
561 if( preset.contains(
"layers" ) && preset.at(
"layers" ).is_array() )
563 nlohmann::json mappedLayers = nlohmann::json::array();
565 for(
const nlohmann::json& layer : preset.at(
"layers" ) )
567 if( layer.is_number_integer() )
568 mappedLayers.push_back( legacyColorMap[layer.get<
int>()] );
571 preset[
"layers"] = mappedLayers;