Loading 3d-viewer/3d_draw.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -530,7 +530,7 @@ int color; break; case RECT : case SPECIAL_PAD: // case SPECIAL_PAD: case TRAPEZE: { int ddx, ddy ; Loading change_log.txt +28 −8 Original line number Diff line number Diff line Loading @@ -4,6 +4,26 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with email address. 2007-Aug-30 UPDATE Dick Hollenbeck <dick@softplc.com> ================================================================================ + pcbnew * Removed SEGVIA::IsViaOnLayer, and instead implemented an override to virtual BOARD_ITEM::IsOnLayer() called SEGVIA::IsOnLayer(). * Tweaked TRACK::Visit() to not traverse the KICAD_T scan list and a corresponding change to BOARD::Vist() so we can now get VIA priority if desired. (Have to traverse m_Tracks twice, wonder if we could use two lists: m_Tracks and a new m_Vias?) * Changed signature of MODULE::Display_Infos( WinEDA_DrawFrame* frame ) so it gets called virtually with any BOARD_ITEM* which is actually a MODULE*. This was a bug. * With virtual functions, it is now critical that the correct object type be instantiated. This was not happening in ioascii.cpp when reading the vias. Bug fixed. * GENERAL_COLLECTOR getting closer to useable. @todo search further for new TRACK( TRACK* ) and make sure no vias are being made this way. 2007-aug-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> ================================================================================ + eeschema & pcbnew Loading common/base_struct.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -211,7 +211,7 @@ SEARCH_RESULT EDA_BaseStruct::Visit( INSPECTOR* inspector, const void* testData, { KICAD_T stype; #if defined(DEBUG) #if 0 && defined(DEBUG) std::cout << GetClass().mb_str() << ' '; #endif Loading include/base_struct.h +26 −25 Original line number Diff line number Diff line Loading @@ -160,7 +160,7 @@ private: int m_Status; private: void InitVars( void ); void InitVars(); public: Loading @@ -174,7 +174,7 @@ public: int GetState( int type ); void SetState( int type, int state ); int ReturnStatus( void ) const int ReturnStatus() const { return m_Status; } Loading Loading @@ -347,11 +347,11 @@ public: public: EDA_TextStruct( const wxString& text = wxEmptyString ); virtual ~EDA_TextStruct( void ); void CreateDrawData( void ); virtual ~EDA_TextStruct(); void CreateDrawData(); int GetLength( void ) { return m_Text.Length(); }; int Pitch( void );/* retourne le pas entre 2 caracteres */ int GetLength() { return m_Text.Length(); }; int Pitch();/* retourne le pas entre 2 caracteres */ void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int color, int draw_mode, int display_mode = FILAIRE, int anchor_color = -1 ); Loading @@ -364,13 +364,13 @@ public: */ bool HitTest( const wxPoint& ref_pos ); int Len_Size( void ); // Return the text lenght in internal units int Len_Size(); // Return the text lenght in internal units }; /** * Class BOARD_ITEM * is an abstract base class for any item which can be embedded within the BOARD * is a base class for any item which can be embedded within the BOARD * container class, and therefore instances of derived classes should only be * found in PCBNEW or other programs that use class BOARD and its contents. * The corresponding class in EESCHEMA seems to be DrawPartStruct. Loading Loading @@ -441,7 +441,7 @@ public: /** * Function IsLocked * @returns bool - true if the object is locked, else false * @return bool - true if the object is locked, else false */ virtual bool IsLocked() const { Loading Loading @@ -469,11 +469,11 @@ public: public: DrawPickedStruct( EDA_BaseStruct* pickedstruct = NULL ); ~DrawPickedStruct( void ); ~DrawPickedStruct(); void Place( WinEDA_DrawFrame* frame, wxDC* DC ) { }; void DeleteWrapperList( void ); void DeleteWrapperList(); DrawPickedStruct* Next( void ) { return (DrawPickedStruct*) Pnext; } DrawPickedStruct* Next() { return (DrawPickedStruct*) Pnext; } }; Loading @@ -490,27 +490,28 @@ public: wxSize m_Size; // Rectangle Size public: EDA_Rect( void ) { }; wxPoint Centre( void ) EDA_Rect() { }; wxPoint Centre() { return wxPoint( m_Pos.x + (m_Size.x >> 1), m_Pos.y + (m_Size.y >> 1) ); } void Normalize( void ); // Ensure the height ant width are >= 0 void Normalize(); // Ensure the height and width are >= 0 bool Inside( const wxPoint& point ); // Return TRUE if point is in Rect bool Inside( int x, int y ) { return Inside( wxPoint( x, y ) ); } wxSize GetSize( void ) { return m_Size; } int GetX( void ) { return m_Pos.x; } int GetY( void ) { return m_Pos.y; } wxPoint GetOrigin( void ) { return m_Pos; } wxPoint GetPosition( void ) { return m_Pos; } wxPoint GetEnd( void ) { return wxPoint( GetRight(), GetBottom() ); } int GetWidth( void ) { return m_Size.x; } int GetHeight( void ) { return m_Size.y; } int GetRight( void ) { return m_Pos.x + m_Size.x; } int GetBottom( void ) { return m_Pos.y + m_Size.y; } wxSize GetSize() { return m_Size; } int GetX() { return m_Pos.x; } int GetY() { return m_Pos.y; } wxPoint GetOrigin() { return m_Pos; } wxPoint GetPosition() { return m_Pos; } wxPoint GetEnd() { return wxPoint( GetRight(), GetBottom() ); } int GetWidth() { return m_Size.x; } int GetHeight() { return m_Size.y; } int GetRight() { return m_Pos.x + m_Size.x; } int GetBottom() { return m_Pos.y + m_Size.y; } void SetOrigin( const wxPoint& pos ) { m_Pos = pos; } void SetOrigin( int x, int y ) { m_Pos.x = x; m_Pos.y = y; } void SetSize( const wxSize& size ) { m_Size = size; } Loading include/class_collector.h +61 −33 Original line number Diff line number Diff line Loading @@ -54,15 +54,15 @@ protected: /// Which object types to scan const KICAD_T* m_ScanTypes; /// The layer that is desired as a primary search criterion int m_PreferredLayer; /// A place to hold collected objects without taking ownership of their memory. std::vector<EDA_BaseStruct*> list; std::vector<EDA_BaseStruct*> m_List; /// The point at which the snapshot was taken. /// A point to test against, andt that was used to make the collection. wxPoint m_RefPos; /// A bounding box to test against, and that was used to make the collection. EDA_Rect m_RefBox; /// The time at which the collection was made. int m_TimeAtCollection; Loading @@ -71,7 +71,6 @@ public: COLLECTOR() { m_PreferredLayer = 0; m_ScanTypes = 0; } Loading @@ -80,19 +79,13 @@ public: } void SetPreferredLayer( int aPreferredLayer ) { m_PreferredLayer = aPreferredLayer; } /** * Function GetCount * returns the number of objects in the list */ unsigned GetCount() const { return list.size(); return m_List.size(); } Loading @@ -102,7 +95,7 @@ public: */ void Empty() { list.clear(); m_List.clear(); } Loading @@ -113,7 +106,7 @@ public: */ void Append( EDA_BaseStruct* item ) { list.push_back( item ); m_List.push_back( item ); } Loading @@ -126,22 +119,23 @@ public: EDA_BaseStruct* operator[]( int ndx ) const { if( (unsigned)ndx < GetCount() ) return list[ ndx ]; return m_List[ ndx ]; return NULL; } /** * Function SetScanTypes * records the list of KICAD_T types to consider for collection by * the Inspect() function. * @param scanTypes An array of KICAD_T, terminated by EOT. No copy is * is made of this array (so cannot come from caller's stack). */ void SetScanTypes( const KICAD_T* scanTypes ) { m_ScanTypes = scanTypes; } wxPoint GetRefPos() const { return m_RefPos; } void SetRefPos( const wxPoint& arefPos ) { m_RefPos = arefPos; } void SetTimeNow() { m_TimeAtCollection = GetTimeStamp(); Loading @@ -151,6 +145,12 @@ public: return m_TimeAtCollection; } void SetRefPos( const wxPoint& aRefPos ) { m_RefPos = aRefPos; } const wxPoint& GetRefPos() const { return m_RefPos; } void SetBoundingBox( const EDA_Rect& aRefBox ) { m_RefBox = aRefBox; } const EDA_Rect& GetBoundingBox() const { return m_RefBox; } /** * Function IsSimilarPointAndTime Loading Loading @@ -196,28 +196,56 @@ public: /** * Function Scan * scans a BOARD using this class's Inspector method, which does the collection. * @param board A BOARD to scan. * @param refPos A wxPoint to use in hit-testing. * Function Collect * scans an EDA_BaseStruct using this class's Inspector method, which does * the collection. * @param container An EDA_BaseStruct to scan, including those items it contains. * @param aRefPos A wxPoint to use in hit-testing. * * example implementation, in derived class: * virtual void Collect( EDA_BaseStruct* container, const wxPoint& aRefPos ) { example implementation: SetRefPos( aRefPos ); // remember where the snapshot was taken from Empty(); // empty the collection // visit the board with the INSPECTOR (me). container->Visit( this, // INSPECTOR* inspector NULL, // const void* testData, m_ScanTypes); SetTimeNow(); // when it was taken } */ /** * Function Collect * scans an EDA_BaseStruct using this class's Inspector method, which does * the collection. * @param container An EDA_BaseStruct to scan, including those items it contains. * @param aRefBox An EDA_Rect to use in bounds-testing. * * example implementation, in derived class: * virtual void Scan( BOARD* board, const wxPoint& refPos ) virtual void Collect( EDA_BaseStruct* container, const EDA_Rect& aRefBox ) { example implementation: SetRefPos( refPos ); // remember where the snapshot was taken from SetBoundingBox( aRefBox ); // pass box to Inspect() Empty(); // empty the collection // visit the board with the INSPECTOR (me). board->Visit( this, // INSPECTOR* inspector container->Visit( this, // INSPECTOR* inspector NULL, // const void* testData, m_ScanTypes); SetTimeNow(); // when it was taken } */ }; #endif // COLLECTOR_H Loading Loading
3d-viewer/3d_draw.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -530,7 +530,7 @@ int color; break; case RECT : case SPECIAL_PAD: // case SPECIAL_PAD: case TRAPEZE: { int ddx, ddy ; Loading
change_log.txt +28 −8 Original line number Diff line number Diff line Loading @@ -4,6 +4,26 @@ Started 2007-June-11 Please add newer entries at the top, list the date and your name with email address. 2007-Aug-30 UPDATE Dick Hollenbeck <dick@softplc.com> ================================================================================ + pcbnew * Removed SEGVIA::IsViaOnLayer, and instead implemented an override to virtual BOARD_ITEM::IsOnLayer() called SEGVIA::IsOnLayer(). * Tweaked TRACK::Visit() to not traverse the KICAD_T scan list and a corresponding change to BOARD::Vist() so we can now get VIA priority if desired. (Have to traverse m_Tracks twice, wonder if we could use two lists: m_Tracks and a new m_Vias?) * Changed signature of MODULE::Display_Infos( WinEDA_DrawFrame* frame ) so it gets called virtually with any BOARD_ITEM* which is actually a MODULE*. This was a bug. * With virtual functions, it is now critical that the correct object type be instantiated. This was not happening in ioascii.cpp when reading the vias. Bug fixed. * GENERAL_COLLECTOR getting closer to useable. @todo search further for new TRACK( TRACK* ) and make sure no vias are being made this way. 2007-aug-30 UPDATE Jean-Pierre Charras <jean-pierre.charras@inpg.fr> ================================================================================ + eeschema & pcbnew Loading
common/base_struct.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -211,7 +211,7 @@ SEARCH_RESULT EDA_BaseStruct::Visit( INSPECTOR* inspector, const void* testData, { KICAD_T stype; #if defined(DEBUG) #if 0 && defined(DEBUG) std::cout << GetClass().mb_str() << ' '; #endif Loading
include/base_struct.h +26 −25 Original line number Diff line number Diff line Loading @@ -160,7 +160,7 @@ private: int m_Status; private: void InitVars( void ); void InitVars(); public: Loading @@ -174,7 +174,7 @@ public: int GetState( int type ); void SetState( int type, int state ); int ReturnStatus( void ) const int ReturnStatus() const { return m_Status; } Loading Loading @@ -347,11 +347,11 @@ public: public: EDA_TextStruct( const wxString& text = wxEmptyString ); virtual ~EDA_TextStruct( void ); void CreateDrawData( void ); virtual ~EDA_TextStruct(); void CreateDrawData(); int GetLength( void ) { return m_Text.Length(); }; int Pitch( void );/* retourne le pas entre 2 caracteres */ int GetLength() { return m_Text.Length(); }; int Pitch();/* retourne le pas entre 2 caracteres */ void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int color, int draw_mode, int display_mode = FILAIRE, int anchor_color = -1 ); Loading @@ -364,13 +364,13 @@ public: */ bool HitTest( const wxPoint& ref_pos ); int Len_Size( void ); // Return the text lenght in internal units int Len_Size(); // Return the text lenght in internal units }; /** * Class BOARD_ITEM * is an abstract base class for any item which can be embedded within the BOARD * is a base class for any item which can be embedded within the BOARD * container class, and therefore instances of derived classes should only be * found in PCBNEW or other programs that use class BOARD and its contents. * The corresponding class in EESCHEMA seems to be DrawPartStruct. Loading Loading @@ -441,7 +441,7 @@ public: /** * Function IsLocked * @returns bool - true if the object is locked, else false * @return bool - true if the object is locked, else false */ virtual bool IsLocked() const { Loading Loading @@ -469,11 +469,11 @@ public: public: DrawPickedStruct( EDA_BaseStruct* pickedstruct = NULL ); ~DrawPickedStruct( void ); ~DrawPickedStruct(); void Place( WinEDA_DrawFrame* frame, wxDC* DC ) { }; void DeleteWrapperList( void ); void DeleteWrapperList(); DrawPickedStruct* Next( void ) { return (DrawPickedStruct*) Pnext; } DrawPickedStruct* Next() { return (DrawPickedStruct*) Pnext; } }; Loading @@ -490,27 +490,28 @@ public: wxSize m_Size; // Rectangle Size public: EDA_Rect( void ) { }; wxPoint Centre( void ) EDA_Rect() { }; wxPoint Centre() { return wxPoint( m_Pos.x + (m_Size.x >> 1), m_Pos.y + (m_Size.y >> 1) ); } void Normalize( void ); // Ensure the height ant width are >= 0 void Normalize(); // Ensure the height and width are >= 0 bool Inside( const wxPoint& point ); // Return TRUE if point is in Rect bool Inside( int x, int y ) { return Inside( wxPoint( x, y ) ); } wxSize GetSize( void ) { return m_Size; } int GetX( void ) { return m_Pos.x; } int GetY( void ) { return m_Pos.y; } wxPoint GetOrigin( void ) { return m_Pos; } wxPoint GetPosition( void ) { return m_Pos; } wxPoint GetEnd( void ) { return wxPoint( GetRight(), GetBottom() ); } int GetWidth( void ) { return m_Size.x; } int GetHeight( void ) { return m_Size.y; } int GetRight( void ) { return m_Pos.x + m_Size.x; } int GetBottom( void ) { return m_Pos.y + m_Size.y; } wxSize GetSize() { return m_Size; } int GetX() { return m_Pos.x; } int GetY() { return m_Pos.y; } wxPoint GetOrigin() { return m_Pos; } wxPoint GetPosition() { return m_Pos; } wxPoint GetEnd() { return wxPoint( GetRight(), GetBottom() ); } int GetWidth() { return m_Size.x; } int GetHeight() { return m_Size.y; } int GetRight() { return m_Pos.x + m_Size.x; } int GetBottom() { return m_Pos.y + m_Size.y; } void SetOrigin( const wxPoint& pos ) { m_Pos = pos; } void SetOrigin( int x, int y ) { m_Pos.x = x; m_Pos.y = y; } void SetSize( const wxSize& size ) { m_Size = size; } Loading
include/class_collector.h +61 −33 Original line number Diff line number Diff line Loading @@ -54,15 +54,15 @@ protected: /// Which object types to scan const KICAD_T* m_ScanTypes; /// The layer that is desired as a primary search criterion int m_PreferredLayer; /// A place to hold collected objects without taking ownership of their memory. std::vector<EDA_BaseStruct*> list; std::vector<EDA_BaseStruct*> m_List; /// The point at which the snapshot was taken. /// A point to test against, andt that was used to make the collection. wxPoint m_RefPos; /// A bounding box to test against, and that was used to make the collection. EDA_Rect m_RefBox; /// The time at which the collection was made. int m_TimeAtCollection; Loading @@ -71,7 +71,6 @@ public: COLLECTOR() { m_PreferredLayer = 0; m_ScanTypes = 0; } Loading @@ -80,19 +79,13 @@ public: } void SetPreferredLayer( int aPreferredLayer ) { m_PreferredLayer = aPreferredLayer; } /** * Function GetCount * returns the number of objects in the list */ unsigned GetCount() const { return list.size(); return m_List.size(); } Loading @@ -102,7 +95,7 @@ public: */ void Empty() { list.clear(); m_List.clear(); } Loading @@ -113,7 +106,7 @@ public: */ void Append( EDA_BaseStruct* item ) { list.push_back( item ); m_List.push_back( item ); } Loading @@ -126,22 +119,23 @@ public: EDA_BaseStruct* operator[]( int ndx ) const { if( (unsigned)ndx < GetCount() ) return list[ ndx ]; return m_List[ ndx ]; return NULL; } /** * Function SetScanTypes * records the list of KICAD_T types to consider for collection by * the Inspect() function. * @param scanTypes An array of KICAD_T, terminated by EOT. No copy is * is made of this array (so cannot come from caller's stack). */ void SetScanTypes( const KICAD_T* scanTypes ) { m_ScanTypes = scanTypes; } wxPoint GetRefPos() const { return m_RefPos; } void SetRefPos( const wxPoint& arefPos ) { m_RefPos = arefPos; } void SetTimeNow() { m_TimeAtCollection = GetTimeStamp(); Loading @@ -151,6 +145,12 @@ public: return m_TimeAtCollection; } void SetRefPos( const wxPoint& aRefPos ) { m_RefPos = aRefPos; } const wxPoint& GetRefPos() const { return m_RefPos; } void SetBoundingBox( const EDA_Rect& aRefBox ) { m_RefBox = aRefBox; } const EDA_Rect& GetBoundingBox() const { return m_RefBox; } /** * Function IsSimilarPointAndTime Loading Loading @@ -196,28 +196,56 @@ public: /** * Function Scan * scans a BOARD using this class's Inspector method, which does the collection. * @param board A BOARD to scan. * @param refPos A wxPoint to use in hit-testing. * Function Collect * scans an EDA_BaseStruct using this class's Inspector method, which does * the collection. * @param container An EDA_BaseStruct to scan, including those items it contains. * @param aRefPos A wxPoint to use in hit-testing. * * example implementation, in derived class: * virtual void Collect( EDA_BaseStruct* container, const wxPoint& aRefPos ) { example implementation: SetRefPos( aRefPos ); // remember where the snapshot was taken from Empty(); // empty the collection // visit the board with the INSPECTOR (me). container->Visit( this, // INSPECTOR* inspector NULL, // const void* testData, m_ScanTypes); SetTimeNow(); // when it was taken } */ /** * Function Collect * scans an EDA_BaseStruct using this class's Inspector method, which does * the collection. * @param container An EDA_BaseStruct to scan, including those items it contains. * @param aRefBox An EDA_Rect to use in bounds-testing. * * example implementation, in derived class: * virtual void Scan( BOARD* board, const wxPoint& refPos ) virtual void Collect( EDA_BaseStruct* container, const EDA_Rect& aRefBox ) { example implementation: SetRefPos( refPos ); // remember where the snapshot was taken from SetBoundingBox( aRefBox ); // pass box to Inspect() Empty(); // empty the collection // visit the board with the INSPECTOR (me). board->Visit( this, // INSPECTOR* inspector container->Visit( this, // INSPECTOR* inspector NULL, // const void* testData, m_ScanTypes); SetTimeNow(); // when it was taken } */ }; #endif // COLLECTOR_H Loading