EDA_TEXT: Use actual draw rotation angle to generate the effective shape.
Fixes: #5814
This commit is contained in:
parent
bf9e2de1ac
commit
9b470b6c09
|
@ -603,14 +603,14 @@ void EDA_TEXT::TransformTextShapeToSegmentList( std::vector<wxPoint>& aCornerBuf
|
||||||
for( unsigned ii = 0; ii < strings_list.Count(); ii++ )
|
for( unsigned ii = 0; ii < strings_list.Count(); ii++ )
|
||||||
{
|
{
|
||||||
wxString txt = strings_list.Item( ii );
|
wxString txt = strings_list.Item( ii );
|
||||||
GRText( NULL, positions[ii], color, txt, GetTextAngle(), size, GetHorizJustify(),
|
GRText( NULL, positions[ii], color, txt, GetDrawRotation(), size, GetHorizJustify(),
|
||||||
GetVertJustify(), penWidth, IsItalic(), forceBold, addTextSegmToBuffer,
|
GetVertJustify(), penWidth, IsItalic(), forceBold, addTextSegmToBuffer,
|
||||||
&aCornerBuffer );
|
&aCornerBuffer );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
GRText( NULL, GetTextPos(), color, GetText(), GetTextAngle(), size, GetHorizJustify(),
|
GRText( NULL, GetTextPos(), color, GetText(), GetDrawRotation(), size, GetHorizJustify(),
|
||||||
GetVertJustify(), penWidth, IsItalic(), forceBold, addTextSegmToBuffer,
|
GetVertJustify(), penWidth, IsItalic(), forceBold, addTextSegmToBuffer,
|
||||||
&aCornerBuffer );
|
&aCornerBuffer );
|
||||||
}
|
}
|
||||||
|
@ -631,6 +631,12 @@ std::shared_ptr<SHAPE_COMPOUND> EDA_TEXT::GetEffectiveTextShape( ) const
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
double EDA_TEXT::GetDrawRotation() const
|
||||||
|
{
|
||||||
|
return GetTextAngle();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static struct EDA_TEXT_DESC
|
static struct EDA_TEXT_DESC
|
||||||
{
|
{
|
||||||
EDA_TEXT_DESC()
|
EDA_TEXT_DESC()
|
||||||
|
|
|
@ -367,6 +367,8 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const;
|
virtual void Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aControlBits ) const;
|
||||||
|
|
||||||
|
virtual double GetDrawRotation() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
wxString m_text;
|
wxString m_text;
|
||||||
wxString m_shown_text; // Cache of unescaped text for efficient access
|
wxString m_shown_text; // Cache of unescaped text for efficient access
|
||||||
|
|
|
@ -457,7 +457,10 @@ wxString TEXTE_MODULE::GetShownText( int aDepth ) const
|
||||||
|
|
||||||
std::shared_ptr<SHAPE> TEXTE_MODULE::GetEffectiveShape( PCB_LAYER_ID aLayer ) const
|
std::shared_ptr<SHAPE> TEXTE_MODULE::GetEffectiveShape( PCB_LAYER_ID aLayer ) const
|
||||||
{
|
{
|
||||||
return GetEffectiveTextShape();
|
const MODULE* module = static_cast<MODULE*>( GetParent() );
|
||||||
|
auto shape = GetEffectiveTextShape();
|
||||||
|
|
||||||
|
return shape;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -181,7 +181,7 @@ public:
|
||||||
* @return the text rotation for drawings and plotting
|
* @return the text rotation for drawings and plotting
|
||||||
* the footprint rotation is taken in account
|
* the footprint rotation is taken in account
|
||||||
*/
|
*/
|
||||||
double GetDrawRotation() const;
|
virtual double GetDrawRotation() const override;
|
||||||
double GetDrawRotationRadians() const { return GetDrawRotation() * M_PI/1800; }
|
double GetDrawRotationRadians() const { return GetDrawRotation() * M_PI/1800; }
|
||||||
|
|
||||||
// Virtual function
|
// Virtual function
|
||||||
|
|
Loading…
Reference in New Issue