Loading 3d-viewer/3d_aux.cpp +3 −7 Original line number Diff line number Diff line Loading @@ -189,13 +189,9 @@ Info_3D_Visu::Info_3D_Visu() m_Layers = 1; m_BoardSettings = NULL; m_Draw3DAxis = true; m_Draw3DModule = true; m_Draw3DZone = true; m_Draw3DComments = true; m_Draw3DDrawings = true; m_Draw3DEco1 = true; m_Draw3DEco2 = true; // default all special item layers Visible for (ii=0; ii< FL_LAST; ii++) m_DrawFlags[ii]=true; } Loading 3d-viewer/3d_draw.cpp +27 −47 Original line number Diff line number Diff line Loading @@ -206,7 +206,7 @@ GLuint EDA_3D_CANVAS::CreateDrawGL_List() glColorMaterial( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE ); // draw axis if( g_Parm_3D_Visu.m_Draw3DAxis ) if (g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_AXIS]) { glEnable( GL_COLOR_MATERIAL ); SetGLColor( WHITE ); Loading @@ -223,37 +223,7 @@ GLuint EDA_3D_CANVAS::CreateDrawGL_List() } // Draw epoxy limits (do not use, works and test in progress) #if 0 glEnable( GL_FOG ); GLfloat param; // param = GL_LINEAR; // glFogfv(GL_FOG_MODE, & param); param = 0.2; glFogfv( GL_FOG_DENSITY, ¶m ); param = g_Parm_3D_Visu.m_LayerZcoord[15]; glFogfv( GL_FOG_END, ¶m ); glBegin( GL_QUADS ); SetGLColor( g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[LAYER_N_FRONT] ); double sx = DataScale3D * g_Parm_3D_Visu.m_BoardSize.x / 2; double sy = DataScale3D * g_Parm_3D_Visu.m_BoardSize.y / 2; double zpos = g_Parm_3D_Visu.m_LayerZcoord[15]; glNormal3f( 0.0, 0.0, 1.0 ); // Normal is Z axis sx = sy = 0.5; glVertex3f( -sx, -sy, zpos ); glVertex3f( -sx, sy, zpos ); glVertex3f( sx, sy, zpos ); glVertex3f( sx, -sy, zpos ); glEnd(); glBegin( GL_QUADS ); SetGLColor( g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[LAYER_N_BACK] ); glNormal3f( 0.0, 0.0, -1.0 ); // Normal is -Z axis glVertex3f( -sx, -sy, 0 ); glVertex3f( -sx, sy, 0 ); glVertex3f( sx, sy, 0 ); glVertex3f( sx, -sy, 0 ); glEnd(); #endif // TODO // move the board in order to draw it with its center at 0,0 3D coordinates glTranslatef( -g_Parm_3D_Visu.m_BoardPos.x * g_Parm_3D_Visu.m_BoardScale, Loading @@ -271,7 +241,7 @@ GLuint EDA_3D_CANVAS::CreateDrawGL_List() Draw3D_Track( track ); } if( g_Parm_3D_Visu.m_Draw3DZone ) if (g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ZONE]) { // Draw segments used to fill copper areas. outdated! for( segzone = pcb->m_Zone; segzone != NULL; segzone = segzone->Next() ) Loading Loading @@ -707,7 +677,7 @@ void MODULE::Draw3D( EDA_3D_CANVAS* glcanvas ) S3D_MASTER* Struct3D = m_3D_Drawings; bool As3dShape = false; if( g_Parm_3D_Visu.m_Draw3DModule ) if (g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_MODULE]) { glPushMatrix(); Loading Loading @@ -1430,23 +1400,33 @@ void EDA_3D_CANVAS::Draw3D_Polygon( std::vector<wxPoint>& aCornersList, double a static int Get3DLayerEnable( int act_layer ) { bool enablelayer; enablelayer = true; if( act_layer == DRAW_N && !g_Parm_3D_Visu.m_Draw3DDrawings ) enablelayer = false; int i = -1; // see if layer needs to be shown // check the flags switch (act_layer) { case DRAW_N: i=g_Parm_3D_Visu.FL_DRAWINGS; break; if( act_layer == COMMENT_N && !g_Parm_3D_Visu.m_Draw3DComments ) enablelayer = false; case COMMENT_N: i=g_Parm_3D_Visu.FL_COMMENTS; break; if( act_layer == ECO1_N && !g_Parm_3D_Visu.m_Draw3DEco1 ) enablelayer = false; case ECO1_N: i=g_Parm_3D_Visu.FL_ECO1; break; if( act_layer == ECO2_N && !g_Parm_3D_Visu.m_Draw3DEco2 ) enablelayer = false; case ECO2_N: i=g_Parm_3D_Visu.FL_ECO2; break; } // the layer was not a layer with a flag, so show it if (i < 0) return true; return enablelayer; // if the layer has a flag, return the flag return g_Parm_3D_Visu.m_DrawFlags[i]; } Loading 3d-viewer/3d_frame.cpp +17 −84 Original line number Diff line number Diff line Loading @@ -222,8 +222,10 @@ void EDA_3D_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) void EDA_3D_FRAME::Process_Special_Functions( wxCommandEvent& event ) { #define ROT_ANGLE 10.0 int id = event.GetId(); bool isChecked = event.IsChecked(); switch( event.GetId() ) switch( id ) { case ID_RELOAD3D_BOARD: NewDisplay(); Loading Loading @@ -285,31 +287,38 @@ void EDA_3D_FRAME::Process_Special_Functions( wxCommandEvent& event ) return; case ID_MENU3D_AXIS_ONOFF: Set3DAxisOnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_AXIS] = isChecked; NewDisplay(); return; case ID_MENU3D_MODULE_ONOFF: Set3DModuleOnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_MODULE] = isChecked; NewDisplay(); return; case ID_MENU3D_ZONE_ONOFF: Set3DZoneOnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ZONE] = isChecked; NewDisplay(); return; case ID_MENU3D_COMMENTS_ONOFF: Set3DCommentsOnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_COMMENTS] = isChecked; NewDisplay(); return; case ID_MENU3D_DRAWINGS_ONOFF: Set3DDrawingsOnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_DRAWINGS] = isChecked; NewDisplay(); return; case ID_MENU3D_ECO1_ONOFF: Set3DEco1OnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO1] = isChecked; NewDisplay(); return; case ID_MENU3D_ECO2_ONOFF: Set3DEco2OnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO2] = isChecked; NewDisplay(); return; default: Loading Loading @@ -367,79 +376,3 @@ void EDA_3D_FRAME::Set3DBgColor() NewDisplay(); } } void EDA_3D_FRAME::Set3DAxisOnOff() { if( g_Parm_3D_Visu.m_Draw3DAxis ) g_Parm_3D_Visu.m_Draw3DAxis = false; else g_Parm_3D_Visu.m_Draw3DAxis = true; NewDisplay(); } void EDA_3D_FRAME::Set3DModuleOnOff() { if( g_Parm_3D_Visu.m_Draw3DModule ) g_Parm_3D_Visu.m_Draw3DModule = false; else g_Parm_3D_Visu.m_Draw3DModule = true; NewDisplay(); } void EDA_3D_FRAME::Set3DZoneOnOff() { if( g_Parm_3D_Visu.m_Draw3DZone ) g_Parm_3D_Visu.m_Draw3DZone = false; else g_Parm_3D_Visu.m_Draw3DZone = true; NewDisplay(); } void EDA_3D_FRAME::Set3DCommentsOnOff() { if( g_Parm_3D_Visu.m_Draw3DComments ) g_Parm_3D_Visu.m_Draw3DComments = false; else g_Parm_3D_Visu.m_Draw3DComments = true; NewDisplay(); } void EDA_3D_FRAME::Set3DDrawingsOnOff() { if( g_Parm_3D_Visu.m_Draw3DDrawings ) g_Parm_3D_Visu.m_Draw3DDrawings = false; else g_Parm_3D_Visu.m_Draw3DDrawings = true; NewDisplay(); } void EDA_3D_FRAME::Set3DEco1OnOff() { if( g_Parm_3D_Visu.m_Draw3DEco1 ) g_Parm_3D_Visu.m_Draw3DEco1 = false; else g_Parm_3D_Visu.m_Draw3DEco1 = true; NewDisplay(); } void EDA_3D_FRAME::Set3DEco2OnOff() { if( g_Parm_3D_Visu.m_Draw3DEco2 ) g_Parm_3D_Visu.m_Draw3DEco2 = false; else g_Parm_3D_Visu.m_Draw3DEco2 = true; NewDisplay(); } 3d-viewer/3d_toolbar.cpp +32 −22 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ #include <fctsys.h> #include <3d_viewer.h> #include <menus_helpers.h> void EDA_3D_FRAME::ReCreateHToolbar() Loading Loading @@ -132,13 +133,13 @@ void EDA_3D_FRAME::ReCreateMenuBar() bool full_options = true; // If called from the display frame of CvPcb, only some options are relevant if( Parent()->GetName() == wxT( "CmpFrame" ) ) // Called from CvPcb: do not display all options if( Parent()->GetName() == wxT( "CmpFrame" ) ) { full_options = false; } wxMenuBar* menuBar = new wxMenuBar; wxMenu* fileMenu = new wxMenu; wxMenu* prefsMenu = new wxMenu; menuBar->Append( fileMenu, _( "&File" ) ); Loading @@ -153,34 +154,43 @@ void EDA_3D_FRAME::ReCreateMenuBar() fileMenu->AppendSeparator(); fileMenu->Append( wxID_EXIT, _( "&Exit" ) ); wxMenu* referencesMenu = new wxMenu; menuBar->Append( referencesMenu, _( "&Preferences" ) ); menuBar->Append( prefsMenu, _( "&Preferences" ) ); AddMenuItem( referencesMenu, ID_MENU3D_BGCOLOR_SELECTION, AddMenuItem( prefsMenu, ID_MENU3D_BGCOLOR_SELECTION, _( "Choose background color" ), KiBitmap( palette_xpm ) ); AddMenuItem( referencesMenu, ID_MENU3D_AXIS_ONOFF, _( "3D Axis On/Off" ), KiBitmap( axis3d_front_xpm ) ); wxMenuItem* item; item = AddMenuItem( prefsMenu, ID_MENU3D_AXIS_ONOFF, _( "Show 3D &Axis" ), KiBitmap( axis3d_front_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_AXIS]); if( full_options ) { AddMenuItem( referencesMenu, ID_MENU3D_MODULE_ONOFF, _( "3D Footprints Shapes On/Off" ), KiBitmap( shape_3d_xpm ) ); item = AddMenuItem( prefsMenu, ID_MENU3D_MODULE_ONOFF, _( "Show 3D F&ootprints" ), KiBitmap( shape_3d_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_MODULE]); item = AddMenuItem( prefsMenu, ID_MENU3D_ZONE_ONOFF, _( "Show Zone &Filling" ), KiBitmap( add_zone_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ZONE]); AddMenuItem( referencesMenu, ID_MENU3D_ZONE_ONOFF, _( "Zone Filling On/Off" ), KiBitmap( add_zone_xpm ) ); item = AddMenuItem( prefsMenu, ID_MENU3D_COMMENTS_ONOFF, _( "Show &Comments Layer" ), KiBitmap( edit_sheet_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_COMMENTS]); AddMenuItem( referencesMenu, ID_MENU3D_COMMENTS_ONOFF, _( "Comments Layer On/Off" ), KiBitmap( edit_sheet_xpm ) ); item = AddMenuItem( prefsMenu, ID_MENU3D_DRAWINGS_ONOFF, _( "Show &Drawings Layer" ), KiBitmap( add_polygon_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_DRAWINGS]); AddMenuItem( referencesMenu, ID_MENU3D_DRAWINGS_ONOFF, _( "Drawings Layer On/Off" ), KiBitmap( add_polygon_xpm ) ); item = AddMenuItem( prefsMenu, ID_MENU3D_ECO1_ONOFF, _( "Show Eco&1 Layer" ), KiBitmap( tools_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO1]); AddMenuItem( referencesMenu, ID_MENU3D_ECO1_ONOFF, _( "Eco1 Layer On/Off" ), KiBitmap( tools_xpm ) ); item = AddMenuItem( prefsMenu, ID_MENU3D_ECO2_ONOFF, _( "Show Eco&2 Layer" ), KiBitmap( tools_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO2]); AddMenuItem( referencesMenu, ID_MENU3D_ECO2_ONOFF, _( "Eco2 Layer On/Off" ), KiBitmap( tools_xpm ) ); } SetMenuBar( menuBar ); Loading 3d-viewer/3d_viewer.h +8 −15 Original line number Diff line number Diff line Loading @@ -134,19 +134,20 @@ class SEGVIA; /* information needed to display 3D board */ class Info_3D_Visu { public: enum { FL_AXIS=0, FL_MODULE, FL_ZONE, FL_COMMENTS, FL_DRAWINGS, FL_ECO1, FL_ECO2, FL_LAST }; double m_Beginx, m_Beginy; /* position of mouse */ double m_Quat[4]; /* orientation of object */ double m_Rot[4]; /* man rotation of object */ double m_Zoom; /* field of view in degrees */ S3D_Color m_BgColor; bool m_Draw3DAxis; bool m_Draw3DModule; bool m_Draw3DZone; bool m_Draw3DComments; bool m_Draw3DDrawings; bool m_Draw3DEco1; bool m_Draw3DEco2; bool m_DrawFlags[FL_LAST]; /* show these special items */ wxPoint m_BoardPos; wxSize m_BoardSize; int m_Layers; Loading Loading @@ -320,14 +321,6 @@ public: void NewDisplay(); void Set3DBgColor(); void Set3DAxisOnOff(); void Set3DModuleOnOff(); void Set3DPlaceOnOff(); void Set3DZoneOnOff(); void Set3DCommentsOnOff(); void Set3DDrawingsOnOff(); void Set3DEco1OnOff(); void Set3DEco2OnOff(); DECLARE_EVENT_TABLE() }; Loading Loading
3d-viewer/3d_aux.cpp +3 −7 Original line number Diff line number Diff line Loading @@ -189,13 +189,9 @@ Info_3D_Visu::Info_3D_Visu() m_Layers = 1; m_BoardSettings = NULL; m_Draw3DAxis = true; m_Draw3DModule = true; m_Draw3DZone = true; m_Draw3DComments = true; m_Draw3DDrawings = true; m_Draw3DEco1 = true; m_Draw3DEco2 = true; // default all special item layers Visible for (ii=0; ii< FL_LAST; ii++) m_DrawFlags[ii]=true; } Loading
3d-viewer/3d_draw.cpp +27 −47 Original line number Diff line number Diff line Loading @@ -206,7 +206,7 @@ GLuint EDA_3D_CANVAS::CreateDrawGL_List() glColorMaterial( GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE ); // draw axis if( g_Parm_3D_Visu.m_Draw3DAxis ) if (g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_AXIS]) { glEnable( GL_COLOR_MATERIAL ); SetGLColor( WHITE ); Loading @@ -223,37 +223,7 @@ GLuint EDA_3D_CANVAS::CreateDrawGL_List() } // Draw epoxy limits (do not use, works and test in progress) #if 0 glEnable( GL_FOG ); GLfloat param; // param = GL_LINEAR; // glFogfv(GL_FOG_MODE, & param); param = 0.2; glFogfv( GL_FOG_DENSITY, ¶m ); param = g_Parm_3D_Visu.m_LayerZcoord[15]; glFogfv( GL_FOG_END, ¶m ); glBegin( GL_QUADS ); SetGLColor( g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[LAYER_N_FRONT] ); double sx = DataScale3D * g_Parm_3D_Visu.m_BoardSize.x / 2; double sy = DataScale3D * g_Parm_3D_Visu.m_BoardSize.y / 2; double zpos = g_Parm_3D_Visu.m_LayerZcoord[15]; glNormal3f( 0.0, 0.0, 1.0 ); // Normal is Z axis sx = sy = 0.5; glVertex3f( -sx, -sy, zpos ); glVertex3f( -sx, sy, zpos ); glVertex3f( sx, sy, zpos ); glVertex3f( sx, -sy, zpos ); glEnd(); glBegin( GL_QUADS ); SetGLColor( g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[LAYER_N_BACK] ); glNormal3f( 0.0, 0.0, -1.0 ); // Normal is -Z axis glVertex3f( -sx, -sy, 0 ); glVertex3f( -sx, sy, 0 ); glVertex3f( sx, sy, 0 ); glVertex3f( sx, -sy, 0 ); glEnd(); #endif // TODO // move the board in order to draw it with its center at 0,0 3D coordinates glTranslatef( -g_Parm_3D_Visu.m_BoardPos.x * g_Parm_3D_Visu.m_BoardScale, Loading @@ -271,7 +241,7 @@ GLuint EDA_3D_CANVAS::CreateDrawGL_List() Draw3D_Track( track ); } if( g_Parm_3D_Visu.m_Draw3DZone ) if (g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ZONE]) { // Draw segments used to fill copper areas. outdated! for( segzone = pcb->m_Zone; segzone != NULL; segzone = segzone->Next() ) Loading Loading @@ -707,7 +677,7 @@ void MODULE::Draw3D( EDA_3D_CANVAS* glcanvas ) S3D_MASTER* Struct3D = m_3D_Drawings; bool As3dShape = false; if( g_Parm_3D_Visu.m_Draw3DModule ) if (g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_MODULE]) { glPushMatrix(); Loading Loading @@ -1430,23 +1400,33 @@ void EDA_3D_CANVAS::Draw3D_Polygon( std::vector<wxPoint>& aCornersList, double a static int Get3DLayerEnable( int act_layer ) { bool enablelayer; enablelayer = true; if( act_layer == DRAW_N && !g_Parm_3D_Visu.m_Draw3DDrawings ) enablelayer = false; int i = -1; // see if layer needs to be shown // check the flags switch (act_layer) { case DRAW_N: i=g_Parm_3D_Visu.FL_DRAWINGS; break; if( act_layer == COMMENT_N && !g_Parm_3D_Visu.m_Draw3DComments ) enablelayer = false; case COMMENT_N: i=g_Parm_3D_Visu.FL_COMMENTS; break; if( act_layer == ECO1_N && !g_Parm_3D_Visu.m_Draw3DEco1 ) enablelayer = false; case ECO1_N: i=g_Parm_3D_Visu.FL_ECO1; break; if( act_layer == ECO2_N && !g_Parm_3D_Visu.m_Draw3DEco2 ) enablelayer = false; case ECO2_N: i=g_Parm_3D_Visu.FL_ECO2; break; } // the layer was not a layer with a flag, so show it if (i < 0) return true; return enablelayer; // if the layer has a flag, return the flag return g_Parm_3D_Visu.m_DrawFlags[i]; } Loading
3d-viewer/3d_frame.cpp +17 −84 Original line number Diff line number Diff line Loading @@ -222,8 +222,10 @@ void EDA_3D_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) void EDA_3D_FRAME::Process_Special_Functions( wxCommandEvent& event ) { #define ROT_ANGLE 10.0 int id = event.GetId(); bool isChecked = event.IsChecked(); switch( event.GetId() ) switch( id ) { case ID_RELOAD3D_BOARD: NewDisplay(); Loading Loading @@ -285,31 +287,38 @@ void EDA_3D_FRAME::Process_Special_Functions( wxCommandEvent& event ) return; case ID_MENU3D_AXIS_ONOFF: Set3DAxisOnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_AXIS] = isChecked; NewDisplay(); return; case ID_MENU3D_MODULE_ONOFF: Set3DModuleOnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_MODULE] = isChecked; NewDisplay(); return; case ID_MENU3D_ZONE_ONOFF: Set3DZoneOnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ZONE] = isChecked; NewDisplay(); return; case ID_MENU3D_COMMENTS_ONOFF: Set3DCommentsOnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_COMMENTS] = isChecked; NewDisplay(); return; case ID_MENU3D_DRAWINGS_ONOFF: Set3DDrawingsOnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_DRAWINGS] = isChecked; NewDisplay(); return; case ID_MENU3D_ECO1_ONOFF: Set3DEco1OnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO1] = isChecked; NewDisplay(); return; case ID_MENU3D_ECO2_ONOFF: Set3DEco2OnOff(); g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO2] = isChecked; NewDisplay(); return; default: Loading Loading @@ -367,79 +376,3 @@ void EDA_3D_FRAME::Set3DBgColor() NewDisplay(); } } void EDA_3D_FRAME::Set3DAxisOnOff() { if( g_Parm_3D_Visu.m_Draw3DAxis ) g_Parm_3D_Visu.m_Draw3DAxis = false; else g_Parm_3D_Visu.m_Draw3DAxis = true; NewDisplay(); } void EDA_3D_FRAME::Set3DModuleOnOff() { if( g_Parm_3D_Visu.m_Draw3DModule ) g_Parm_3D_Visu.m_Draw3DModule = false; else g_Parm_3D_Visu.m_Draw3DModule = true; NewDisplay(); } void EDA_3D_FRAME::Set3DZoneOnOff() { if( g_Parm_3D_Visu.m_Draw3DZone ) g_Parm_3D_Visu.m_Draw3DZone = false; else g_Parm_3D_Visu.m_Draw3DZone = true; NewDisplay(); } void EDA_3D_FRAME::Set3DCommentsOnOff() { if( g_Parm_3D_Visu.m_Draw3DComments ) g_Parm_3D_Visu.m_Draw3DComments = false; else g_Parm_3D_Visu.m_Draw3DComments = true; NewDisplay(); } void EDA_3D_FRAME::Set3DDrawingsOnOff() { if( g_Parm_3D_Visu.m_Draw3DDrawings ) g_Parm_3D_Visu.m_Draw3DDrawings = false; else g_Parm_3D_Visu.m_Draw3DDrawings = true; NewDisplay(); } void EDA_3D_FRAME::Set3DEco1OnOff() { if( g_Parm_3D_Visu.m_Draw3DEco1 ) g_Parm_3D_Visu.m_Draw3DEco1 = false; else g_Parm_3D_Visu.m_Draw3DEco1 = true; NewDisplay(); } void EDA_3D_FRAME::Set3DEco2OnOff() { if( g_Parm_3D_Visu.m_Draw3DEco2 ) g_Parm_3D_Visu.m_Draw3DEco2 = false; else g_Parm_3D_Visu.m_Draw3DEco2 = true; NewDisplay(); }
3d-viewer/3d_toolbar.cpp +32 −22 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ #include <fctsys.h> #include <3d_viewer.h> #include <menus_helpers.h> void EDA_3D_FRAME::ReCreateHToolbar() Loading Loading @@ -132,13 +133,13 @@ void EDA_3D_FRAME::ReCreateMenuBar() bool full_options = true; // If called from the display frame of CvPcb, only some options are relevant if( Parent()->GetName() == wxT( "CmpFrame" ) ) // Called from CvPcb: do not display all options if( Parent()->GetName() == wxT( "CmpFrame" ) ) { full_options = false; } wxMenuBar* menuBar = new wxMenuBar; wxMenu* fileMenu = new wxMenu; wxMenu* prefsMenu = new wxMenu; menuBar->Append( fileMenu, _( "&File" ) ); Loading @@ -153,34 +154,43 @@ void EDA_3D_FRAME::ReCreateMenuBar() fileMenu->AppendSeparator(); fileMenu->Append( wxID_EXIT, _( "&Exit" ) ); wxMenu* referencesMenu = new wxMenu; menuBar->Append( referencesMenu, _( "&Preferences" ) ); menuBar->Append( prefsMenu, _( "&Preferences" ) ); AddMenuItem( referencesMenu, ID_MENU3D_BGCOLOR_SELECTION, AddMenuItem( prefsMenu, ID_MENU3D_BGCOLOR_SELECTION, _( "Choose background color" ), KiBitmap( palette_xpm ) ); AddMenuItem( referencesMenu, ID_MENU3D_AXIS_ONOFF, _( "3D Axis On/Off" ), KiBitmap( axis3d_front_xpm ) ); wxMenuItem* item; item = AddMenuItem( prefsMenu, ID_MENU3D_AXIS_ONOFF, _( "Show 3D &Axis" ), KiBitmap( axis3d_front_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_AXIS]); if( full_options ) { AddMenuItem( referencesMenu, ID_MENU3D_MODULE_ONOFF, _( "3D Footprints Shapes On/Off" ), KiBitmap( shape_3d_xpm ) ); item = AddMenuItem( prefsMenu, ID_MENU3D_MODULE_ONOFF, _( "Show 3D F&ootprints" ), KiBitmap( shape_3d_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_MODULE]); item = AddMenuItem( prefsMenu, ID_MENU3D_ZONE_ONOFF, _( "Show Zone &Filling" ), KiBitmap( add_zone_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ZONE]); AddMenuItem( referencesMenu, ID_MENU3D_ZONE_ONOFF, _( "Zone Filling On/Off" ), KiBitmap( add_zone_xpm ) ); item = AddMenuItem( prefsMenu, ID_MENU3D_COMMENTS_ONOFF, _( "Show &Comments Layer" ), KiBitmap( edit_sheet_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_COMMENTS]); AddMenuItem( referencesMenu, ID_MENU3D_COMMENTS_ONOFF, _( "Comments Layer On/Off" ), KiBitmap( edit_sheet_xpm ) ); item = AddMenuItem( prefsMenu, ID_MENU3D_DRAWINGS_ONOFF, _( "Show &Drawings Layer" ), KiBitmap( add_polygon_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_DRAWINGS]); AddMenuItem( referencesMenu, ID_MENU3D_DRAWINGS_ONOFF, _( "Drawings Layer On/Off" ), KiBitmap( add_polygon_xpm ) ); item = AddMenuItem( prefsMenu, ID_MENU3D_ECO1_ONOFF, _( "Show Eco&1 Layer" ), KiBitmap( tools_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO1]); AddMenuItem( referencesMenu, ID_MENU3D_ECO1_ONOFF, _( "Eco1 Layer On/Off" ), KiBitmap( tools_xpm ) ); item = AddMenuItem( prefsMenu, ID_MENU3D_ECO2_ONOFF, _( "Show Eco&2 Layer" ), KiBitmap( tools_xpm ), wxITEM_CHECK ); item->Check(g_Parm_3D_Visu.m_DrawFlags[g_Parm_3D_Visu.FL_ECO2]); AddMenuItem( referencesMenu, ID_MENU3D_ECO2_ONOFF, _( "Eco2 Layer On/Off" ), KiBitmap( tools_xpm ) ); } SetMenuBar( menuBar ); Loading
3d-viewer/3d_viewer.h +8 −15 Original line number Diff line number Diff line Loading @@ -134,19 +134,20 @@ class SEGVIA; /* information needed to display 3D board */ class Info_3D_Visu { public: enum { FL_AXIS=0, FL_MODULE, FL_ZONE, FL_COMMENTS, FL_DRAWINGS, FL_ECO1, FL_ECO2, FL_LAST }; double m_Beginx, m_Beginy; /* position of mouse */ double m_Quat[4]; /* orientation of object */ double m_Rot[4]; /* man rotation of object */ double m_Zoom; /* field of view in degrees */ S3D_Color m_BgColor; bool m_Draw3DAxis; bool m_Draw3DModule; bool m_Draw3DZone; bool m_Draw3DComments; bool m_Draw3DDrawings; bool m_Draw3DEco1; bool m_Draw3DEco2; bool m_DrawFlags[FL_LAST]; /* show these special items */ wxPoint m_BoardPos; wxSize m_BoardSize; int m_Layers; Loading Loading @@ -320,14 +321,6 @@ public: void NewDisplay(); void Set3DBgColor(); void Set3DAxisOnOff(); void Set3DModuleOnOff(); void Set3DPlaceOnOff(); void Set3DZoneOnOff(); void Set3DCommentsOnOff(); void Set3DDrawingsOnOff(); void Set3DEco1OnOff(); void Set3DEco2OnOff(); DECLARE_EVENT_TABLE() }; Loading