263 COLOR4D( 0.0, 1.0, 0.0, 1.0 ) ) );
267 &
m_Render.opengl_copper_thickness,
false ) );
269 &
m_Render.show_model_bbox,
false ) );
271 &
m_Render.show_off_board_silk,
false ) );
273 &
m_Render.highlight_on_rollover,
true ) );
275 &
m_Render.opengl_AA_disableOnMove,
false ) );
277 &
m_Render.opengl_thickness_disableOnMove,
false ) );
279 &
m_Render.opengl_microvias_disableOnMove,
false ) );
281 &
m_Render.opengl_holes_disableOnMove,
false ) );
283 &
m_Render.opengl_render_bbox_only_OnMove,
false ) );
287 &
m_Render.raytrace_anti_aliasing,
true ) );
289 &
m_Render.raytrace_backfloor,
false ) );
291 &
m_Render.raytrace_post_processing,
true ) );
293 &
m_Render.raytrace_procedural_textures,
true ) );
295 &
m_Render.raytrace_reflections,
true ) );
297 &
m_Render.raytrace_refractions,
true ) );
299 &
m_Render.raytrace_shadows,
true ) );
302 &
m_Render.raytrace_nrsamples_shadows, 3 ) );
304 &
m_Render.raytrace_nrsamples_reflections, 3 ) );
306 &
m_Render.raytrace_nrsamples_refractions, 4 ) );
309 &
m_Render.raytrace_recursivelevel_reflections, 3 ) );
311 &
m_Render.raytrace_recursivelevel_refractions, 2 ) );
314 &
m_Render.raytrace_spread_shadows, 0.05f ) );
316 &
m_Render.raytrace_spread_reflections, 0.025f ) );
318 &
m_Render.raytrace_spread_refractions, 0.025f ) );
321 &
m_Render.raytrace_lightColorCamera,
322 COLOR4D( 0.2, 0.2, 0.2, 1.0 ) ) );
326 COLOR4D( 0.247, 0.247, 0.247, 1.0 ) ) );
329 &
m_Render.raytrace_lightColorBottom,
330 COLOR4D( 0.247, 0.247, 0.247, 1.0 ) ) );
332 std::vector<COLOR4D> default_colors =
334 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
335 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
336 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
337 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
338 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
339 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
340 COLOR4D( 0.168, 0.168, 0.168, 1.0 ),
341 COLOR4D( 0.168, 0.168, 0.168, 1.0 )
346 std::move( default_colors ) ) );
348 const std::vector<int> default_elevation =
350 67, 67, 67, 67, -67, -67, -67, -67,
355 std::move( default_elevation ) ) );
357 const std::vector<int> default_azimuth =
359 45, 135, 225, 315, 45, 135, 225, 315,
364 std::move( default_azimuth ) ) );
371 &
m_Render.show_board_body,
true ) );
373 &
m_Render.show_plated_barrels,
true ) );
383 for(
int layer = 0; layer < 45; ++layer )
385 m_params.emplace_back( new PARAM<bool>( fmt::format(
"render.show_user{}", layer + 1 ),
386 &m_Render.show_user[layer], false ) );
390 &
m_Render.show_footprints_insert,
true ) );
392 &
m_Render.show_footprints_normal,
true ) );
394 &
m_Render.show_footprints_virtual,
true ) );
396 &
m_Render.show_footprints_not_in_posfile,
true ) );
398 &
m_Render.show_footprints_dnp,
false ) );
400 &
m_Render.show_silkscreen_top,
true ) );
402 &
m_Render.show_silkscreen_bottom,
true ) );
404 &
m_Render.show_soldermask_top,
true ) );
406 &
m_Render.show_soldermask_bottom,
true ) );
408 &
m_Render.show_solderpaste,
true ) );
410 &
m_Render.show_copper_bottom,
true ) );
412 &
m_Render.show_copper_top,
true ) );
416 &
m_Render.show_fp_references,
true ) );
422 &
m_Render.subtract_mask_from_silk,
false ) );
424 &
m_Render.clip_silk_on_via_annuli,
false ) );
426 &
m_Render.differentiate_plated_copper,
false ) );
428 &
m_Render.use_board_editor_copper_colors,
false ) );
430 &
m_Render.preview_show_board_body,
true ) );
433 &
m_Camera.animation_enabled,
true ) );
435 &
m_Camera.moving_speed_multiplier, 3 ) );
437 &
m_Camera.rotation_increment, 10.0 ) );
462 Set(
"render.opengl_copper_thickness",
false );
469 if( std::optional<bool> optval =
Get<bool>(
"render.show_copper" ) )
471 Set(
"render.show_copper_top", *optval );
472 Set(
"render.show_copper_bottom", *optval );
475 if( std::optional<bool> optval =
Get<bool>(
"render.show_silkscreen" ) )
477 Set(
"render.show_silkscreen_top", *optval );
478 Set(
"render.show_silkscreen_bottom", *optval );
481 if( std::optional<bool> optval =
Get<bool>(
"render.show_soldermask" ) )
483 Set(
"render.show_soldermask_top", *optval );
484 Set(
"render.show_soldermask_bottom", *optval );
487 if( std::optional<bool> optval =
Get<bool>(
"render.show_comments" ) )
488 Set(
"render.show_drawings", *optval );
490 if( std::optional<bool> optval =
Get<bool>(
"render.show_eco" ) )
492 Set(
"render.show_eco1", *optval );
493 Set(
"render.show_eco2", *optval );
502 std::map<int, wxString> legacyColorMap;
504 legacyColorMap[142] =
"fp_values";
505 legacyColorMap[143] =
"fp_references";
506 legacyColorMap[130] =
"fp_text";
507 legacyColorMap[466] =
"background_bottom";
508 legacyColorMap[467] =
"background_top";
509 legacyColorMap[468] =
"board";
510 legacyColorMap[469] =
"copper";
511 legacyColorMap[470] =
"copper_bottom";
512 legacyColorMap[471] =
"silkscreen_bottom";
513 legacyColorMap[472] =
"silkscreen_top";
514 legacyColorMap[473] =
"soldermask_bottom";
515 legacyColorMap[474] =
"soldermask_top";
516 legacyColorMap[475] =
"solderpaste";
517 legacyColorMap[476] =
"adhesive";
518 legacyColorMap[477] =
"user_comments";
519 legacyColorMap[478] =
"user_drawings";
520 legacyColorMap[479] =
"user_eco1";
521 legacyColorMap[480] =
"user_eco2";
522 legacyColorMap[481] =
"th_models";
523 legacyColorMap[482] =
"smd_models";
524 legacyColorMap[483] =
"virtual_models";
525 legacyColorMap[484] =
"non_pos_file_models";
526 legacyColorMap[485] =
"dnp_models";
527 legacyColorMap[486] =
"3d_navigator";
528 legacyColorMap[487] =
"bounding_boxes";
529 legacyColorMap[488] =
"off_board_silk";
531 if( !
Contains(
"layer_presets" ) || !
At(
"layer_presets" ).is_array() )
534 for( nlohmann::json& preset :
At(
"layer_presets" ) )
536 if( preset.contains(
"colors" ) && preset.at(
"colors" ).is_array() )
538 for( nlohmann::json& color : preset.at(
"colors" ) )
540 if( color.contains(
"layer" ) && color.at(
"layer" ).is_number_integer() )
541 color[
"layer"] = legacyColorMap[color[
"layer"].get<
int>()];
545 if( preset.contains(
"layers" ) && preset.at(
"layers" ).is_array() )
547 nlohmann::json mappedLayers = nlohmann::json::array();
549 for(
const nlohmann::json& layer : preset.at(
"layers" ) )
551 if( layer.is_number_integer() )
552 mappedLayers.push_back( legacyColorMap[layer.get<
int>()] );
555 preset[
"layers"] = mappedLayers;