Implemented flip for tuning patterns.
This commit is contained in:
parent
4a01f322ff
commit
c7ad5efbed
|
@ -35,6 +35,7 @@
|
||||||
#include <dialogs/dialog_unit_entry.h>
|
#include <dialogs/dialog_unit_entry.h>
|
||||||
#include <collectors.h>
|
#include <collectors.h>
|
||||||
#include <scoped_set_reset.h>
|
#include <scoped_set_reset.h>
|
||||||
|
#include <core/mirror.h>
|
||||||
|
|
||||||
#include <board_design_settings.h>
|
#include <board_design_settings.h>
|
||||||
#include <drc/drc_engine.h>
|
#include <drc/drc_engine.h>
|
||||||
|
@ -289,12 +290,10 @@ public:
|
||||||
|
|
||||||
void Move( const VECTOR2I& aMoveVector ) override
|
void Move( const VECTOR2I& aMoveVector ) override
|
||||||
{
|
{
|
||||||
m_origin += aMoveVector;
|
|
||||||
m_end += aMoveVector;
|
|
||||||
|
|
||||||
if( !this->HasFlag( IN_EDIT ) )
|
if( !this->HasFlag( IN_EDIT ) )
|
||||||
{
|
{
|
||||||
PCB_GROUP::Move( aMoveVector );
|
PCB_GENERATOR::Move( aMoveVector );
|
||||||
|
m_end += aMoveVector;
|
||||||
|
|
||||||
if( m_baseLine )
|
if( m_baseLine )
|
||||||
m_baseLine->Move( aMoveVector );
|
m_baseLine->Move( aMoveVector );
|
||||||
|
@ -308,9 +307,8 @@ public:
|
||||||
{
|
{
|
||||||
if( !this->HasFlag( IN_EDIT ) )
|
if( !this->HasFlag( IN_EDIT ) )
|
||||||
{
|
{
|
||||||
RotatePoint( m_origin, aRotCentre, aAngle );
|
PCB_GENERATOR::Rotate( aRotCentre, aAngle );
|
||||||
RotatePoint( m_end, aRotCentre, aAngle );
|
RotatePoint( m_end, aRotCentre, aAngle );
|
||||||
PCB_GROUP::Rotate( aRotCentre, aAngle );
|
|
||||||
|
|
||||||
if( m_baseLine )
|
if( m_baseLine )
|
||||||
m_baseLine->Rotate( aAngle, aRotCentre );
|
m_baseLine->Rotate( aAngle, aRotCentre );
|
||||||
|
@ -320,6 +318,24 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Flip( const VECTOR2I& aCentre, bool aFlipLeftRight ) override
|
||||||
|
{
|
||||||
|
if( !this->HasFlag( IN_EDIT ) )
|
||||||
|
{
|
||||||
|
PCB_GENERATOR::Flip( aCentre, aFlipLeftRight );
|
||||||
|
if( aFlipLeftRight )
|
||||||
|
MIRROR( m_end.x, aCentre.x );
|
||||||
|
else
|
||||||
|
MIRROR( m_end.y, aCentre.y );
|
||||||
|
|
||||||
|
if( m_baseLine )
|
||||||
|
m_baseLine->Mirror( aFlipLeftRight, !aFlipLeftRight, aCentre );
|
||||||
|
|
||||||
|
if( m_baseLineCoupled )
|
||||||
|
m_baseLineCoupled->Mirror( aFlipLeftRight, !aFlipLeftRight, aCentre );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const BOX2I GetBoundingBox() const override
|
const BOX2I GetBoundingBox() const override
|
||||||
{
|
{
|
||||||
return getOutline().BBox();
|
return getOutline().BBox();
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <pcb_generator.h>
|
#include <pcb_generator.h>
|
||||||
|
#include <core/mirror.h>
|
||||||
|
#include <board.h>
|
||||||
|
|
||||||
|
|
||||||
PCB_GENERATOR::PCB_GENERATOR( BOARD_ITEM* aParent, PCB_LAYER_ID aLayer ) :
|
PCB_GENERATOR::PCB_GENERATOR( BOARD_ITEM* aParent, PCB_LAYER_ID aLayer ) :
|
||||||
|
@ -126,6 +128,24 @@ void PCB_GENERATOR::Move( const VECTOR2I& aMoveVector )
|
||||||
PCB_GROUP::Move( aMoveVector );
|
PCB_GROUP::Move( aMoveVector );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PCB_GENERATOR::Rotate( const VECTOR2I& aRotCentre, const EDA_ANGLE& aAngle )
|
||||||
|
{
|
||||||
|
RotatePoint( m_origin, aRotCentre, aAngle );
|
||||||
|
|
||||||
|
PCB_GROUP::Rotate( aRotCentre, aAngle );
|
||||||
|
}
|
||||||
|
|
||||||
|
void PCB_GENERATOR::Flip( const VECTOR2I& aCentre, bool aFlipLeftRight )
|
||||||
|
{
|
||||||
|
if( aFlipLeftRight )
|
||||||
|
MIRROR( m_origin.x, aCentre.x );
|
||||||
|
else
|
||||||
|
MIRROR( m_origin.y, aCentre.y );
|
||||||
|
|
||||||
|
SetLayer( FlipLayer( GetLayer(), GetBoard()->GetCopperLayerCount() ) );
|
||||||
|
|
||||||
|
PCB_GROUP::Flip( aCentre, aFlipLeftRight );
|
||||||
|
}
|
||||||
|
|
||||||
bool PCB_GENERATOR::AddItem( BOARD_ITEM* aItem )
|
bool PCB_GENERATOR::AddItem( BOARD_ITEM* aItem )
|
||||||
{
|
{
|
||||||
|
|
|
@ -83,6 +83,10 @@ public:
|
||||||
|
|
||||||
void Move( const VECTOR2I& aMoveVector ) override;
|
void Move( const VECTOR2I& aMoveVector ) override;
|
||||||
|
|
||||||
|
void Rotate( const VECTOR2I& aRotCentre, const EDA_ANGLE& aAngle ) override;
|
||||||
|
|
||||||
|
void Flip( const VECTOR2I& aCentre, bool aFlipLeftRight ) override;
|
||||||
|
|
||||||
bool AddItem( BOARD_ITEM* aItem ) override;
|
bool AddItem( BOARD_ITEM* aItem ) override;
|
||||||
|
|
||||||
LSET GetLayerSet() const override;
|
LSET GetLayerSet() const override;
|
||||||
|
|
Loading…
Reference in New Issue