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 ) );
442 Set(
"render.opengl_copper_thickness",
false );
449 if( std::optional<bool> optval =
Get<bool>(
"render.show_copper" ) )
451 Set(
"render.show_copper_top", *optval );
452 Set(
"render.show_copper_bottom", *optval );
455 if( std::optional<bool> optval =
Get<bool>(
"render.show_silkscreen" ) )
457 Set(
"render.show_silkscreen_top", *optval );
458 Set(
"render.show_silkscreen_bottom", *optval );
461 if( std::optional<bool> optval =
Get<bool>(
"render.show_soldermask" ) )
463 Set(
"render.show_soldermask_top", *optval );
464 Set(
"render.show_soldermask_bottom", *optval );
467 if( std::optional<bool> optval =
Get<bool>(
"render.show_comments" ) )
468 Set(
"render.show_drawings", *optval );
470 if( std::optional<bool> optval =
Get<bool>(
"render.show_eco" ) )
472 Set(
"render.show_eco1", *optval );
473 Set(
"render.show_eco2", *optval );
482 std::map<int, wxString> legacyColorMap;
484 legacyColorMap[142] =
"fp_values";
485 legacyColorMap[143] =
"fp_references";
486 legacyColorMap[130] =
"fp_text";
487 legacyColorMap[466] =
"background_bottom";
488 legacyColorMap[467] =
"background_top";
489 legacyColorMap[468] =
"board";
490 legacyColorMap[469] =
"copper";
491 legacyColorMap[470] =
"copper_bottom";
492 legacyColorMap[471] =
"silkscreen_bottom";
493 legacyColorMap[472] =
"silkscreen_top";
494 legacyColorMap[473] =
"soldermask_bottom";
495 legacyColorMap[474] =
"soldermask_top";
496 legacyColorMap[475] =
"solderpaste";
497 legacyColorMap[476] =
"adhesive";
498 legacyColorMap[477] =
"user_comments";
499 legacyColorMap[478] =
"user_drawings";
500 legacyColorMap[479] =
"user_eco1";
501 legacyColorMap[480] =
"user_eco2";
502 legacyColorMap[481] =
"th_models";
503 legacyColorMap[482] =
"smd_models";
504 legacyColorMap[483] =
"virtual_models";
505 legacyColorMap[484] =
"non_pos_file_models";
506 legacyColorMap[485] =
"dnp_models";
507 legacyColorMap[486] =
"3d_navigator";
508 legacyColorMap[487] =
"bounding_boxes";
509 legacyColorMap[488] =
"off_board_silk";
511 if( !
Contains(
"layer_presets" ) || !
At(
"layer_presets" ).is_array() )
514 for( nlohmann::json& preset :
At(
"layer_presets" ) )
516 if( preset.contains(
"colors" ) && preset.at(
"colors" ).is_array() )
518 for( nlohmann::json& color : preset.at(
"colors" ) )
520 if( color.contains(
"layer" ) && color.at(
"layer" ).is_number_integer() )
521 color[
"layer"] = legacyColorMap[color[
"layer"].get<
int>()];
525 if( preset.contains(
"layers" ) && preset.at(
"layers" ).is_array() )
527 nlohmann::json mappedLayers = nlohmann::json::array();
529 for(
const nlohmann::json& layer : preset.at(
"layers" ) )
531 if( layer.is_number_integer() )
532 mappedLayers.push_back( legacyColorMap[layer.get<
int>()] );
535 preset[
"layers"] = mappedLayers;