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 ) );
412 &
m_Camera.animation_enabled,
true ) );
414 &
m_Camera.moving_speed_multiplier, 3 ) );
416 &
m_Camera.rotation_increment, 10.0 ) );
432 Set(
"render.opengl_copper_thickness",
false );
439 if( std::optional<bool> optval =
Get<bool>(
"render.show_copper" ) )
441 Set(
"render.show_copper_top", *optval );
442 Set(
"render.show_copper_bottom", *optval );
445 if( std::optional<bool> optval =
Get<bool>(
"render.show_silkscreen" ) )
447 Set(
"render.show_silkscreen_top", *optval );
448 Set(
"render.show_silkscreen_bottom", *optval );
451 if( std::optional<bool> optval =
Get<bool>(
"render.show_soldermask" ) )
453 Set(
"render.show_soldermask_top", *optval );
454 Set(
"render.show_soldermask_bottom", *optval );
457 if( std::optional<bool> optval =
Get<bool>(
"render.show_comments" ) )
458 Set(
"render.show_drawings", *optval );
460 if( std::optional<bool> optval =
Get<bool>(
"render.show_eco" ) )
462 Set(
"render.show_eco1", *optval );
463 Set(
"render.show_eco2", *optval );
472 std::map<int, wxString> legacyColorMap;
474 legacyColorMap[142] =
"fp_values";
475 legacyColorMap[143] =
"fp_references";
476 legacyColorMap[130] =
"fp_text";
477 legacyColorMap[466] =
"background_bottom";
478 legacyColorMap[467] =
"background_top";
479 legacyColorMap[468] =
"board";
480 legacyColorMap[469] =
"copper";
481 legacyColorMap[470] =
"copper_bottom";
482 legacyColorMap[471] =
"silkscreen_bottom";
483 legacyColorMap[472] =
"silkscreen_top";
484 legacyColorMap[473] =
"soldermask_bottom";
485 legacyColorMap[474] =
"soldermask_top";
486 legacyColorMap[475] =
"solderpaste";
487 legacyColorMap[476] =
"adhesive";
488 legacyColorMap[477] =
"user_comments";
489 legacyColorMap[478] =
"user_drawings";
490 legacyColorMap[479] =
"user_eco1";
491 legacyColorMap[480] =
"user_eco2";
492 legacyColorMap[481] =
"th_models";
493 legacyColorMap[482] =
"smd_models";
494 legacyColorMap[483] =
"virtual_models";
495 legacyColorMap[484] =
"non_pos_file_models";
496 legacyColorMap[485] =
"dnp_models";
497 legacyColorMap[486] =
"3d_navigator";
498 legacyColorMap[487] =
"bounding_boxes";
499 legacyColorMap[488] =
"off_board_silk";
501 if( !
Contains(
"layer_presets" ) || !
At(
"layer_presets" ).is_array() )
504 for( nlohmann::json& preset :
At(
"layer_presets" ) )
506 if( preset.contains(
"colors" ) && preset.at(
"colors" ).is_array() )
508 for( nlohmann::json&
color : preset.at(
"colors" ) )
510 if(
color.contains(
"layer" ) &&
color.at(
"layer" ).is_number_integer() )
511 color[
"layer"] = legacyColorMap[
color[
"layer"].get<
int>()];
515 if( preset.contains(
"layers" ) && preset.at(
"layers" ).is_array() )
517 nlohmann::json mappedLayers = nlohmann::json::array();
519 for(
const nlohmann::json& layer : preset.at(
"layers" ) )
521 if( layer.is_number_integer() )
522 mappedLayers.push_back( legacyColorMap[layer.get<
int>()] );
525 preset[
"layers"] = mappedLayers;