pcbnew: Fix VRML export checking
In rare cases, the VRML triangulator may claim to work but return empty vectors. These cases need to be caught before we dereference the vector elements. Fixes: lp:1838448 * https://bugs.launchpad.net/kicad/+bug/1838448
This commit is contained in:
parent
090073cc3b
commit
161dc9ce7e
|
@ -1702,7 +1702,8 @@ static void create_vrml_plane( IFSG_TRANSFORM& PcbOutput, VRML_COLOR_INDEX color
|
|||
std::vector< int > idxPlane;
|
||||
std::vector< int > idxSide;
|
||||
|
||||
if( !(*layer).Get2DTriangles( vertices, idxPlane, top_z, aTopPlane ) )
|
||||
if( !( *layer ).Get2DTriangles( vertices, idxPlane, top_z, aTopPlane ) || idxPlane.empty()
|
||||
|| idxSide.empty() )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
do {
|
||||
|
@ -1788,7 +1789,8 @@ static void create_vrml_shell( IFSG_TRANSFORM& PcbOutput, VRML_COLOR_INDEX color
|
|||
bottom_z = tmp;
|
||||
}
|
||||
|
||||
if( !(*layer).Get3DTriangles( vertices, idxPlane, idxSide, top_z, bottom_z ) )
|
||||
if( !( *layer ).Get3DTriangles( vertices, idxPlane, idxSide, top_z, bottom_z )
|
||||
|| idxPlane.empty() || idxSide.empty() )
|
||||
{
|
||||
#ifdef DEBUG
|
||||
do {
|
||||
|
|
Loading…
Reference in New Issue