Loading pcbnew/exporters/export_vrml.cpp +9 −5 Original line number Diff line number Diff line Loading @@ -185,7 +185,11 @@ public: colors[ VRML_COLOR_TIN ] = VRML_COLOR( .749, .756, .761, .749, .756, .761, 0, 0, 0, 0.8, 0, 0.8 ); precision = 5; plainPCB = false; SetScale( 1.0 ); SetOffset( 0.0, 0.0 ); s_text_layer = F_Cu; s_text_width = 1; } VRML_COLOR& GetColor( VRML_COLOR_INDEX aIndex ) Loading Loading @@ -889,11 +893,11 @@ static void export_vrml_zones( MODEL_VRML& aModel, BOARD* aPcb ) const CPOLYGONS_LIST& poly = zone->GetFilledPolysList(); int nvert = poly.GetCornersCount(); int i = 0; bool cutout = false; while( i < nvert ) { int seg = vl->NewContour(); bool first = true; if( seg < 0 ) break; Loading @@ -914,10 +918,10 @@ static void export_vrml_zones( MODEL_VRML& aModel, BOARD* aPcb ) // KiCad ensures that the first polygon is the outline // and all others are holes vl->EnsureWinding( seg, first ? false : true ); vl->EnsureWinding( seg, cutout ); if( first ) first = false; if( !cutout ) cutout = true; ++i; } Loading utils/idftools/idf_parser.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -2425,12 +2425,18 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib while( !FetchIDFLine( aLibFile, iline, isComment, pos ) && aLibFile.good() ); if( !aLibFile.good() && !aLibFile.eof() ) { delete pout; throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__, "problems reading library section" ) ); } // no data was read; this only happens at eof() if( iline.empty() ) { delete pout; return; } if( isComment ) { Loading @@ -2448,6 +2454,7 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib ostr << "* Violation of specification: quoted string where .ELECTRICAL or .MECHANICAL expected\n"; ostr << "* line: '" << iline << "'\n"; ostr << "* pos: " << pos; delete pout; throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__, ostr.str() ) ); } Loading Loading @@ -2509,6 +2516,8 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib } } delete pout; if( !aLibFile.eof() ) throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__, "problems reading IDF library file" ) ); Loading Loading
pcbnew/exporters/export_vrml.cpp +9 −5 Original line number Diff line number Diff line Loading @@ -185,7 +185,11 @@ public: colors[ VRML_COLOR_TIN ] = VRML_COLOR( .749, .756, .761, .749, .756, .761, 0, 0, 0, 0.8, 0, 0.8 ); precision = 5; plainPCB = false; SetScale( 1.0 ); SetOffset( 0.0, 0.0 ); s_text_layer = F_Cu; s_text_width = 1; } VRML_COLOR& GetColor( VRML_COLOR_INDEX aIndex ) Loading Loading @@ -889,11 +893,11 @@ static void export_vrml_zones( MODEL_VRML& aModel, BOARD* aPcb ) const CPOLYGONS_LIST& poly = zone->GetFilledPolysList(); int nvert = poly.GetCornersCount(); int i = 0; bool cutout = false; while( i < nvert ) { int seg = vl->NewContour(); bool first = true; if( seg < 0 ) break; Loading @@ -914,10 +918,10 @@ static void export_vrml_zones( MODEL_VRML& aModel, BOARD* aPcb ) // KiCad ensures that the first polygon is the outline // and all others are holes vl->EnsureWinding( seg, first ? false : true ); vl->EnsureWinding( seg, cutout ); if( first ) first = false; if( !cutout ) cutout = true; ++i; } Loading
utils/idftools/idf_parser.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -2425,12 +2425,18 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib while( !FetchIDFLine( aLibFile, iline, isComment, pos ) && aLibFile.good() ); if( !aLibFile.good() && !aLibFile.eof() ) { delete pout; throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__, "problems reading library section" ) ); } // no data was read; this only happens at eof() if( iline.empty() ) { delete pout; return; } if( isComment ) { Loading @@ -2448,6 +2454,7 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib ostr << "* Violation of specification: quoted string where .ELECTRICAL or .MECHANICAL expected\n"; ostr << "* line: '" << iline << "'\n"; ostr << "* pos: " << pos; delete pout; throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__, ostr.str() ) ); } Loading Loading @@ -2509,6 +2516,8 @@ void IDF3_BOARD::readLibSection( std::ifstream& aLibFile, IDF3::FILE_STATE& aLib } } delete pout; if( !aLibFile.eof() ) throw( IDF_ERROR( __FILE__, __FUNCTION__, __LINE__, "problems reading IDF library file" ) ); Loading