Commit e30ceb0a authored by Marco Mattila's avatar Marco Mattila

Fix 3d drawing of board edges defined in modules, now pcb edge layer is always drawn.

parent 314aa18e
...@@ -661,6 +661,7 @@ void MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas ) ...@@ -661,6 +661,7 @@ void MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas )
/* Draw module shape: 3D shape if exists (or module outlines if not exists) */ /* Draw module shape: 3D shape if exists (or module outlines if not exists) */
S3D_MASTER* Struct3D = m_3D_Drawings; S3D_MASTER* Struct3D = m_3D_Drawings;
bool As3dShape = FALSE; bool As3dShape = FALSE;
if( g_Parm_3D_Visu.m_Draw3DModule ) if( g_Parm_3D_Visu.m_Draw3DModule )
{ {
glPushMatrix(); glPushMatrix();
...@@ -673,6 +674,7 @@ void MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas ) ...@@ -673,6 +674,7 @@ void MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas )
{ {
glRotatef( (double) m_Orient / 10, 0.0, 0.0, 1.0 ); glRotatef( (double) m_Orient / 10, 0.0, 0.0, 1.0 );
} }
if( m_Layer == LAYER_N_BACK ) if( m_Layer == LAYER_N_BACK )
{ {
glRotatef( 180.0, 0.0, 1.0, 0.0 ); glRotatef( 180.0, 0.0, 1.0, 0.0 );
...@@ -692,9 +694,6 @@ void MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas ) ...@@ -692,9 +694,6 @@ void MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas )
glPopMatrix(); glPopMatrix();
} }
if( !As3dShape )
{
// The footprint does not have a 3D shape, draw its 2D shape instead
EDA_ITEM* Struct = m_Drawings; EDA_ITEM* Struct = m_Drawings;
glNormal3f( 0.0, 0.0, 1.0 ); // Normal is Z axis glNormal3f( 0.0, 0.0, 1.0 ); // Normal is Z axis
...@@ -706,14 +705,20 @@ void MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas ) ...@@ -706,14 +705,20 @@ void MODULE::Draw3D( Pcb3D_GLCanvas* glcanvas )
break; break;
case TYPE_EDGE_MODULE: case TYPE_EDGE_MODULE:
( (EDGE_MODULE*) Struct )->Draw3D( glcanvas ); {
EDGE_MODULE* edge = (EDGE_MODULE*) Struct;
// Draw module edges when no 3d shape exists.
// Always draw pcb edges.
if( !As3dShape || edge->GetLayer() == EDGE_N )
edge->Draw3D( glcanvas );
}
break; break;
default: default:
break; break;
} }
} }
}
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment