1 /* 2 * This program source code file is part of KiCad, a free EDA CAD application. 3 * 4 * Copyright (C) 2016 Mario Luzeiro <mrluzeiro@ua.pt> 5 * Copyright (C) 1992-2020 KiCad Developers, see AUTHORS.txt for contributors. 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License 9 * as published by the Free Software Foundation; either version 2 10 * of the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, you may find one here: 19 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 20 * or you may search the http://www.gnu.org website for the version 2 license, 21 * or you may write to the Free Software Foundation, Inc., 22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 23 */ 24 25 /** 26 * @file 3d_enums.h 27 * @brief declared enumerations and flags 28 */ 29 30 #ifndef _3D_ENUMS_H_ 31 #define _3D_ENUMS_H_ 32 33 /// Flags used in rendering options 34 enum DISPLAY3D_FLG 35 { 36 FL_AXIS = 0, 37 FL_ZONE, 38 FL_ADHESIVE, 39 FL_SILKSCREEN, 40 FL_SOLDERMASK, 41 FL_SOLDERPASTE, 42 FL_COMMENTS, 43 FL_ECO, 44 45 FL_FP_ATTRIBUTES_NORMAL, 46 FL_FP_ATTRIBUTES_NORMAL_INSERT, 47 FL_FP_ATTRIBUTES_VIRTUAL, 48 49 FL_USE_SELECTION, 50 FL_HIGHLIGHT_ROLLOVER_ITEM, 51 52 FL_SHOW_BOARD_BODY, 53 FL_MOUSEWHEEL_PANNING, 54 FL_USE_REALISTIC_MODE, 55 FL_SUBTRACT_MASK_FROM_SILK, 56 FL_CLIP_SILK_ON_VIA_ANNULUS, 57 FL_RENDER_PLATED_PADS_AS_PLATED, 58 59 // OpenGL options 60 FL_RENDER_OPENGL_SHOW_MODEL_BBOX, 61 FL_RENDER_OPENGL_COPPER_THICKNESS, 62 FL_RENDER_OPENGL_AA_DISABLE_ON_MOVE, 63 FL_RENDER_OPENGL_THICKNESS_DISABLE_ON_MOVE, 64 FL_RENDER_OPENGL_VIAS_DISABLE_ON_MOVE, 65 FL_RENDER_OPENGL_HOLES_DISABLE_ON_MOVE, 66 67 // Raytracing options 68 FL_RENDER_RAYTRACING_SHADOWS, 69 FL_RENDER_RAYTRACING_BACKFLOOR, 70 FL_RENDER_RAYTRACING_REFRACTIONS, 71 FL_RENDER_RAYTRACING_REFLECTIONS, 72 FL_RENDER_RAYTRACING_POST_PROCESSING, 73 FL_RENDER_RAYTRACING_ANTI_ALIASING, 74 FL_RENDER_RAYTRACING_PROCEDURAL_TEXTURES, 75 FL_LAST 76 }; 77 78 79 /// Rotation direction for the 3d canvas 80 enum class ROTATION_DIR 81 { 82 X_CW, 83 X_CCW, 84 Y_CW, 85 Y_CCW, 86 Z_CW, 87 Z_CCW 88 }; 89 90 91 /// Camera types 92 enum class CAMERA_TYPE 93 { 94 TRACKBALL 95 }; 96 97 98 /// Grid types 99 enum class GRID3D_TYPE 100 { 101 NONE, 102 GRID_1MM, 103 GRID_2P5MM, 104 GRID_5MM, 105 GRID_10MM 106 }; 107 108 109 /// Render engine mode 110 enum class RENDER_ENGINE 111 { 112 OPENGL, 113 RAYTRACING, 114 }; 115 116 117 /// Render 3d model shape materials mode 118 enum class MATERIAL_MODE 119 { 120 NORMAL, ///< Use all material properties from model file 121 DIFFUSE_ONLY, ///< Use only diffuse material properties 122 CAD_MODE ///< Use a gray shading based on diffuse material 123 }; 124 125 #endif // _3D_ENUMS_H_ 126