Loading eeschema/class_text-label.cpp +102 −0 Original line number Diff line number Diff line Loading @@ -305,6 +305,56 @@ void SCH_HIERLABEL::CreateGraphicShape( int* corner_list, const wxPoint& Pos ) } } EDA_Rect SCH_HIERLABEL::GetBoundingBox() { int x, y, dx, dy, dangle, length, height; x = m_Pos.x; y = m_Pos.y; if( m_IsDangling ) dangle = DANGLING_SYMBOL_SIZE; else dangle = 0; height = m_Size.y + 2*TXTMARGE; length = ( Pitch() * GetLength() ) + height + 2*dangle; // add height for triangular shapes switch( m_Orient ) // respect orientation { case 0: /* Horiz Normal Orientation (left justified) */ dx = -length; dy = height; x += dangle; y -= height/2; break; case 1: /* Vert Orientation UP */ dx = height; dy = length; x -= height/2; y -= dangle; break; case 2: /* Horiz Orientation - Right justified */ dx = length; dy = height; x -= dangle; y -= height/2; break; case 3: /* Vert Orientation BOTTOM */ dx = height; dy = -length; x -= height/2; y += dangle; break; } EDA_Rect box(wxPoint(x,y), wxSize(dx,dy) ); box.Normalize(); return box; } /*******************************************************************************************/ void SCH_GLOBALLABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& draw_offset, Loading Loading @@ -469,6 +519,58 @@ void SCH_GLOBALLABEL::CreateGraphicShape( int* corner_list, const wxPoint& Pos ) } EDA_Rect SCH_GLOBALLABEL::GetBoundingBox() { int x, y, dx, dy, dangle, length, height; x = m_Pos.x; y = m_Pos.y; if( m_IsDangling ) dangle = DANGLING_SYMBOL_SIZE; else dangle = 0; height = m_Size.y + 2*TXTMARGE; length = ( Pitch() * GetLength() ) + 2* height + 2*dangle; // add 2*height for triangular shapes (bidirectional) switch( m_Orient ) // respect orientation { case 0: /* Horiz Normal Orientation (left justified) */ dx = -length; dy = height; x += dangle; y -= height/2; break; case 1: /* Vert Orientation UP */ dx = height; dy = length; x -= height/2; y -= dangle; break; case 2: /* Horiz Orientation - Right justified */ dx = length; dy = height; x -= dangle; y -= height/2; break; case 3: /* Vert Orientation BOTTOM */ dx = height; dy = -length; x -= height/2; y += dangle; break; } EDA_Rect box(wxPoint(x,y), wxSize(dx,dy) ); box.Normalize(); return box; } EDA_Rect SCH_TEXT::GetBoundingBox() { int x, y, dx, dy, dangle, length, height; Loading eeschema/class_text-label.h +4 −0 Original line number Diff line number Diff line Loading @@ -144,6 +144,8 @@ public: * <corner_count>, x0, y0, ... xn, yn */ void CreateGraphicShape( int* corner_list, const wxPoint & Pos ); EDA_Rect GetBoundingBox(); }; Loading Loading @@ -171,6 +173,8 @@ public: * <corner_count>, x0, y0, ... xn, yn */ void CreateGraphicShape( int* corner_list, const wxPoint & Pos ); EDA_Rect GetBoundingBox(); }; #endif /* CLASS_TEXT_LABEL_H */ Loading
eeschema/class_text-label.cpp +102 −0 Original line number Diff line number Diff line Loading @@ -305,6 +305,56 @@ void SCH_HIERLABEL::CreateGraphicShape( int* corner_list, const wxPoint& Pos ) } } EDA_Rect SCH_HIERLABEL::GetBoundingBox() { int x, y, dx, dy, dangle, length, height; x = m_Pos.x; y = m_Pos.y; if( m_IsDangling ) dangle = DANGLING_SYMBOL_SIZE; else dangle = 0; height = m_Size.y + 2*TXTMARGE; length = ( Pitch() * GetLength() ) + height + 2*dangle; // add height for triangular shapes switch( m_Orient ) // respect orientation { case 0: /* Horiz Normal Orientation (left justified) */ dx = -length; dy = height; x += dangle; y -= height/2; break; case 1: /* Vert Orientation UP */ dx = height; dy = length; x -= height/2; y -= dangle; break; case 2: /* Horiz Orientation - Right justified */ dx = length; dy = height; x -= dangle; y -= height/2; break; case 3: /* Vert Orientation BOTTOM */ dx = height; dy = -length; x -= height/2; y += dangle; break; } EDA_Rect box(wxPoint(x,y), wxSize(dx,dy) ); box.Normalize(); return box; } /*******************************************************************************************/ void SCH_GLOBALLABEL::Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& draw_offset, Loading Loading @@ -469,6 +519,58 @@ void SCH_GLOBALLABEL::CreateGraphicShape( int* corner_list, const wxPoint& Pos ) } EDA_Rect SCH_GLOBALLABEL::GetBoundingBox() { int x, y, dx, dy, dangle, length, height; x = m_Pos.x; y = m_Pos.y; if( m_IsDangling ) dangle = DANGLING_SYMBOL_SIZE; else dangle = 0; height = m_Size.y + 2*TXTMARGE; length = ( Pitch() * GetLength() ) + 2* height + 2*dangle; // add 2*height for triangular shapes (bidirectional) switch( m_Orient ) // respect orientation { case 0: /* Horiz Normal Orientation (left justified) */ dx = -length; dy = height; x += dangle; y -= height/2; break; case 1: /* Vert Orientation UP */ dx = height; dy = length; x -= height/2; y -= dangle; break; case 2: /* Horiz Orientation - Right justified */ dx = length; dy = height; x -= dangle; y -= height/2; break; case 3: /* Vert Orientation BOTTOM */ dx = height; dy = -length; x -= height/2; y += dangle; break; } EDA_Rect box(wxPoint(x,y), wxSize(dx,dy) ); box.Normalize(); return box; } EDA_Rect SCH_TEXT::GetBoundingBox() { int x, y, dx, dy, dangle, length, height; Loading
eeschema/class_text-label.h +4 −0 Original line number Diff line number Diff line Loading @@ -144,6 +144,8 @@ public: * <corner_count>, x0, y0, ... xn, yn */ void CreateGraphicShape( int* corner_list, const wxPoint & Pos ); EDA_Rect GetBoundingBox(); }; Loading Loading @@ -171,6 +173,8 @@ public: * <corner_count>, x0, y0, ... xn, yn */ void CreateGraphicShape( int* corner_list, const wxPoint & Pos ); EDA_Rect GetBoundingBox(); }; #endif /* CLASS_TEXT_LABEL_H */