TEXTE_MODULE::TEXTE_MODULE( MODULE* parent, TEXT_TYPE text_type ) : BOARD_ITEM( parent, PCB_MODULE_TEXT_T ), EDA_TEXT() { MODULE* module = static_cast<MODULE*>( m_Parent ); m_Type = text_type; m_unlocked = false; // Set text thickness to a default value SetThickness( Millimeter2iu( 0.15 ) ); SetLayer( F_SilkS ); // Set position and give a default layer if a valid parent footprint exists if( module && ( module->Type() == PCB_MODULE_T ) ) { SetTextPos( module->GetPosition() ); if( IsBackLayer( module->GetLayer() ) ) { SetLayer( B_SilkS ); SetMirrored( true ); } } SetDrawCoord(); }
void EDGE_MODULE::Move( const wxPoint& aMoveVector ) { // Move an edge of the footprint. // This is a footprint shape modification. m_Start0 += aMoveVector; m_End0 += aMoveVector; switch( GetShape() ) { default: break; case S_POLYGON: // polygon corners coordinates are always relative to the // footprint position, orientation 0 for( unsigned ii = 0; ii < m_PolyPoints.size(); ii++ ) m_PolyPoints[ii] += aMoveVector; } SetDrawCoord(); }
void EDGE_MODULE::Move( const wxPoint& aMoveVector ) { // Move an edge of the footprint. // This is a footprint shape modification. m_Start0 += aMoveVector; m_End0 += aMoveVector; switch( GetShape() ) { default: break; case S_POLYGON: // polygon corners coordinates are always relative to the // footprint position, orientation 0 for( auto iter = m_Poly.Iterate(); iter; iter++ ) *iter += VECTOR2I( aMoveVector ); } SetDrawCoord(); }
void EDGE_MODULE::Mirror( wxPoint aCentre, bool aMirrorAroundXAxis ) { // Mirror an edge of the footprint. the layer is not modified // This is a footprint shape modification. switch( GetShape() ) { case S_ARC: SetAngle( -GetAngle() ); //Fall through default: case S_SEGMENT: if( aMirrorAroundXAxis ) { MIRROR( m_Start0.y, aCentre.y ); MIRROR( m_End0.y, aCentre.y ); } else { MIRROR( m_Start0.x, aCentre.x ); MIRROR( m_End0.x, aCentre.x ); } break; case S_POLYGON: // polygon corners coordinates are always relative to the // footprint position, orientation 0 for( unsigned ii = 0; ii < m_PolyPoints.size(); ii++ ) { if( aMirrorAroundXAxis ) MIRROR( m_PolyPoints[ii].y, aCentre.y ); else MIRROR( m_PolyPoints[ii].x, aCentre.x ); } } SetDrawCoord(); }