Loading common/base_struct.cpp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -259,6 +259,7 @@ SEARCH_RESULT EDA_BaseStruct::IterateForward( EDA_BaseStruct* listStart, // see base_struct.h // see base_struct.h // many classes inherit this method, be careful: SEARCH_RESULT EDA_BaseStruct::Visit( INSPECTOR* inspector, const void* testData, SEARCH_RESULT EDA_BaseStruct::Visit( INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ) const KICAD_T scanTypes[] ) { { Loading pcbnew/class_board.cpp +46 −15 Original line number Original line Diff line number Diff line Loading @@ -267,22 +267,52 @@ bool BOARD::ComputeBoundaryBox( void ) */ */ void BOARD::Show( int nestLevel, std::ostream& os ) void BOARD::Show( int nestLevel, std::ostream& os ) { { EDA_BaseStruct* p; // for now, make it look like XML: // for now, make it look like XML: NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << ">\n"; NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << ">\n"; // specialization of the output: // specialization of the output: EDA_BaseStruct* p = m_Modules; NestedSpace( nestLevel+1, os ) << "<modules>\n"; p = m_Modules; for( ; p; p = p->Pnext ) for( ; p; p = p->Pnext ) p->Show( nestLevel+1, os ); p->Show( nestLevel+2, os ); NestedSpace( nestLevel+1, os ) << "</modules>\n"; NestedSpace( nestLevel+1, os ) << "<pdrawings>\n"; p = m_Drawings; p = m_Drawings; for( ; p; p = p->Pnext ) for( ; p; p = p->Pnext ) p->Show( nestLevel+1, os ); p->Show( nestLevel+2, os ); NestedSpace( nestLevel+1, os ) << "</pdrawings>\n"; NestedSpace( nestLevel+1, os ) << "<nets>\n"; p = m_Equipots; for( ; p; p = p->Pnext ) p->Show( nestLevel+2, os ); NestedSpace( nestLevel+1, os ) << "</nets>\n"; NestedSpace( nestLevel+1, os ) << "<tracks>\n"; p = m_Track; for( ; p; p = p->Pnext ) p->Show( nestLevel+2, os ); NestedSpace( nestLevel+1, os ) << "</tracks>\n"; NestedSpace( nestLevel+1, os ) << "<zones>\n"; p = m_Zone; for( ; p; p = p->Pnext ) p->Show( nestLevel+2, os ); NestedSpace( nestLevel+1, os ) << "</zones>\n"; NestedSpace( nestLevel+1, os ) << "<edgezones>\n"; p = m_CurrentLimitZone; for( ; p; p = p->Pnext ) p->Show( nestLevel+2, os ); NestedSpace( nestLevel+1, os ) << "</edgezones>\n"; EDA_BaseStruct* kid = m_Son; p = m_Son; for( ; kid; kid = kid->Pnext ) for( ; p; p = p->Pnext ) { { kid->Show( nestLevel+1, os ); p->Show( nestLevel+1, os ); } } NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n"; NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n"; Loading @@ -299,10 +329,8 @@ EDA_BaseStruct* BOARD::FindPadOrModule( const wxPoint& refPos, int layer ) int layer; int layer; PadOrModule( int alayer ) : PadOrModule( int alayer ) : found(0), // found is NULL found(0), layer(alayer) layer(alayer) {} { } SEARCH_RESULT Inspect( EDA_BaseStruct* testItem, const void* testData ) SEARCH_RESULT Inspect( EDA_BaseStruct* testItem, const void* testData ) { { Loading @@ -326,14 +354,17 @@ EDA_BaseStruct* BOARD::FindPadOrModule( const wxPoint& refPos, int layer ) { { if( testItem->HitTest( refPos ) ) if( testItem->HitTest( refPos ) ) { { // save regardless of layer test, but only quit if // layer matches, otherwise use this item if no future // layer match. found = testItem; if( layer == mlayer ) if( layer == mlayer ) { found = testItem; return SEARCH_QUIT; return SEARCH_QUIT; } } // layer mismatch, save in case we don't find a // future layer match hit. if( !found ) found = testItem; } } } } } return SEARCH_CONTINUE; return SEARCH_CONTINUE; Loading pcbnew/class_edge_mod.cpp +7 −6 Original line number Original line Diff line number Diff line Loading @@ -515,7 +515,7 @@ bool EDGE_MODULE::HitTest( const wxPoint& ref_pos ) */ */ void EDGE_MODULE::Show( int nestLevel, std::ostream& os ) void EDGE_MODULE::Show( int nestLevel, std::ostream& os ) { { const char* cp = "???"; const char* cp; switch( m_Shape ) switch( m_Shape ) { { Loading @@ -528,16 +528,17 @@ void EDGE_MODULE::Show( int nestLevel, std::ostream& os ) case S_SPOT_CIRCLE: cp = "spot_circle"; break; case S_SPOT_CIRCLE: cp = "spot_circle"; break; case S_SPOT_RECT: cp = "spot_rect"; break; case S_SPOT_RECT: cp = "spot_rect"; break; case S_POLYGON: cp = "polygon"; break; case S_POLYGON: cp = "polygon"; break; default: cp = "??EDGE??"; break; } } // for now, make it look like XML: // for now, make it look like XML: NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << " type=\"" << cp << "\">\n"; " type=\"" << cp << "\">"; NestedSpace( nestLevel+1, os ) << "<start" << m_Start0 << "/>\n"; os << " <start" << m_Start0 << "/>"; NestedSpace( nestLevel+1, os ) << "<end" << m_End0 << "/>\n"; os << " <end" << m_End0 << "/>"; NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n"; os << " </" << GetClass().Lower().mb_str() << ">\n"; } } #endif #endif pcbnew/class_equipot.cpp +17 −0 Original line number Original line Diff line number Diff line Loading @@ -146,3 +146,20 @@ int EQUIPOT:: WriteEquipotDescr( FILE* File ) fprintf( File, "$EndEQUIPOT\n" ); fprintf( File, "$EndEQUIPOT\n" ); return 1; return 1; } } #if defined(DEBUG) /** * Function Show * is used to output the object tree, currently for debugging only. * @param nestLevel An aid to prettier tree indenting, and is the level * of nesting of this object within the overall tree. * @param os The ostream& to output to. */ void EQUIPOT::Show( int nestLevel, std::ostream& os ) { // for now, make it look like XML: NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << " name=\"" << m_Netname.mb_str() << '"' << " netcode=\"" << m_NetCode << "\"/>\n"; } #endif pcbnew/class_equipot.h +51 −29 Original line number Original line Diff line number Diff line Loading @@ -31,6 +31,28 @@ public: /* Readind and writing data on files */ /* Readind and writing data on files */ int ReadEquipotDescr( FILE* File, int* LineNum ); int ReadEquipotDescr( FILE* File, int* LineNum ); int WriteEquipotDescr( FILE* File ); int WriteEquipotDescr( FILE* File ); }; #if defined(DEBUG) /** * Function GetClass * returns the class name. * @return wxString */ wxString GetClass() const { return wxT("NET"); } /** * Function Show * is used to output the object tree, currently for debugging only. * @param nestLevel An aid to prettier tree indenting, and is the level * of nesting of this object within the overall tree. * @param os The ostream& to output to. */ virtual void Show( int nestLevel, std::ostream& os ); #endif }; Loading
common/base_struct.cpp +1 −0 Original line number Original line Diff line number Diff line Loading @@ -259,6 +259,7 @@ SEARCH_RESULT EDA_BaseStruct::IterateForward( EDA_BaseStruct* listStart, // see base_struct.h // see base_struct.h // many classes inherit this method, be careful: SEARCH_RESULT EDA_BaseStruct::Visit( INSPECTOR* inspector, const void* testData, SEARCH_RESULT EDA_BaseStruct::Visit( INSPECTOR* inspector, const void* testData, const KICAD_T scanTypes[] ) const KICAD_T scanTypes[] ) { { Loading
pcbnew/class_board.cpp +46 −15 Original line number Original line Diff line number Diff line Loading @@ -267,22 +267,52 @@ bool BOARD::ComputeBoundaryBox( void ) */ */ void BOARD::Show( int nestLevel, std::ostream& os ) void BOARD::Show( int nestLevel, std::ostream& os ) { { EDA_BaseStruct* p; // for now, make it look like XML: // for now, make it look like XML: NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << ">\n"; NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << ">\n"; // specialization of the output: // specialization of the output: EDA_BaseStruct* p = m_Modules; NestedSpace( nestLevel+1, os ) << "<modules>\n"; p = m_Modules; for( ; p; p = p->Pnext ) for( ; p; p = p->Pnext ) p->Show( nestLevel+1, os ); p->Show( nestLevel+2, os ); NestedSpace( nestLevel+1, os ) << "</modules>\n"; NestedSpace( nestLevel+1, os ) << "<pdrawings>\n"; p = m_Drawings; p = m_Drawings; for( ; p; p = p->Pnext ) for( ; p; p = p->Pnext ) p->Show( nestLevel+1, os ); p->Show( nestLevel+2, os ); NestedSpace( nestLevel+1, os ) << "</pdrawings>\n"; NestedSpace( nestLevel+1, os ) << "<nets>\n"; p = m_Equipots; for( ; p; p = p->Pnext ) p->Show( nestLevel+2, os ); NestedSpace( nestLevel+1, os ) << "</nets>\n"; NestedSpace( nestLevel+1, os ) << "<tracks>\n"; p = m_Track; for( ; p; p = p->Pnext ) p->Show( nestLevel+2, os ); NestedSpace( nestLevel+1, os ) << "</tracks>\n"; NestedSpace( nestLevel+1, os ) << "<zones>\n"; p = m_Zone; for( ; p; p = p->Pnext ) p->Show( nestLevel+2, os ); NestedSpace( nestLevel+1, os ) << "</zones>\n"; NestedSpace( nestLevel+1, os ) << "<edgezones>\n"; p = m_CurrentLimitZone; for( ; p; p = p->Pnext ) p->Show( nestLevel+2, os ); NestedSpace( nestLevel+1, os ) << "</edgezones>\n"; EDA_BaseStruct* kid = m_Son; p = m_Son; for( ; kid; kid = kid->Pnext ) for( ; p; p = p->Pnext ) { { kid->Show( nestLevel+1, os ); p->Show( nestLevel+1, os ); } } NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n"; NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n"; Loading @@ -299,10 +329,8 @@ EDA_BaseStruct* BOARD::FindPadOrModule( const wxPoint& refPos, int layer ) int layer; int layer; PadOrModule( int alayer ) : PadOrModule( int alayer ) : found(0), // found is NULL found(0), layer(alayer) layer(alayer) {} { } SEARCH_RESULT Inspect( EDA_BaseStruct* testItem, const void* testData ) SEARCH_RESULT Inspect( EDA_BaseStruct* testItem, const void* testData ) { { Loading @@ -326,14 +354,17 @@ EDA_BaseStruct* BOARD::FindPadOrModule( const wxPoint& refPos, int layer ) { { if( testItem->HitTest( refPos ) ) if( testItem->HitTest( refPos ) ) { { // save regardless of layer test, but only quit if // layer matches, otherwise use this item if no future // layer match. found = testItem; if( layer == mlayer ) if( layer == mlayer ) { found = testItem; return SEARCH_QUIT; return SEARCH_QUIT; } } // layer mismatch, save in case we don't find a // future layer match hit. if( !found ) found = testItem; } } } } } return SEARCH_CONTINUE; return SEARCH_CONTINUE; Loading
pcbnew/class_edge_mod.cpp +7 −6 Original line number Original line Diff line number Diff line Loading @@ -515,7 +515,7 @@ bool EDGE_MODULE::HitTest( const wxPoint& ref_pos ) */ */ void EDGE_MODULE::Show( int nestLevel, std::ostream& os ) void EDGE_MODULE::Show( int nestLevel, std::ostream& os ) { { const char* cp = "???"; const char* cp; switch( m_Shape ) switch( m_Shape ) { { Loading @@ -528,16 +528,17 @@ void EDGE_MODULE::Show( int nestLevel, std::ostream& os ) case S_SPOT_CIRCLE: cp = "spot_circle"; break; case S_SPOT_CIRCLE: cp = "spot_circle"; break; case S_SPOT_RECT: cp = "spot_rect"; break; case S_SPOT_RECT: cp = "spot_rect"; break; case S_POLYGON: cp = "polygon"; break; case S_POLYGON: cp = "polygon"; break; default: cp = "??EDGE??"; break; } } // for now, make it look like XML: // for now, make it look like XML: NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << " type=\"" << cp << "\">\n"; " type=\"" << cp << "\">"; NestedSpace( nestLevel+1, os ) << "<start" << m_Start0 << "/>\n"; os << " <start" << m_Start0 << "/>"; NestedSpace( nestLevel+1, os ) << "<end" << m_End0 << "/>\n"; os << " <end" << m_End0 << "/>"; NestedSpace( nestLevel, os ) << "</" << GetClass().Lower().mb_str() << ">\n"; os << " </" << GetClass().Lower().mb_str() << ">\n"; } } #endif #endif
pcbnew/class_equipot.cpp +17 −0 Original line number Original line Diff line number Diff line Loading @@ -146,3 +146,20 @@ int EQUIPOT:: WriteEquipotDescr( FILE* File ) fprintf( File, "$EndEQUIPOT\n" ); fprintf( File, "$EndEQUIPOT\n" ); return 1; return 1; } } #if defined(DEBUG) /** * Function Show * is used to output the object tree, currently for debugging only. * @param nestLevel An aid to prettier tree indenting, and is the level * of nesting of this object within the overall tree. * @param os The ostream& to output to. */ void EQUIPOT::Show( int nestLevel, std::ostream& os ) { // for now, make it look like XML: NestedSpace( nestLevel, os ) << '<' << GetClass().Lower().mb_str() << " name=\"" << m_Netname.mb_str() << '"' << " netcode=\"" << m_NetCode << "\"/>\n"; } #endif
pcbnew/class_equipot.h +51 −29 Original line number Original line Diff line number Diff line Loading @@ -31,6 +31,28 @@ public: /* Readind and writing data on files */ /* Readind and writing data on files */ int ReadEquipotDescr( FILE* File, int* LineNum ); int ReadEquipotDescr( FILE* File, int* LineNum ); int WriteEquipotDescr( FILE* File ); int WriteEquipotDescr( FILE* File ); }; #if defined(DEBUG) /** * Function GetClass * returns the class name. * @return wxString */ wxString GetClass() const { return wxT("NET"); } /** * Function Show * is used to output the object tree, currently for debugging only. * @param nestLevel An aid to prettier tree indenting, and is the level * of nesting of this object within the overall tree. * @param os The ostream& to output to. */ virtual void Show( int nestLevel, std::ostream& os ); #endif };