EESchema bug fixes and other minor changes (fixes lp:793373).
* Fix debug build warning (lp:793373). * Changed sheet edit restore and undo to use object copy and replace method. * Add minimum width and height constraints when resizing sheets that have hierarchical pins. * Fix drag sheet hot key bug. * Change Doxygen configuration to extract private methods and members when creating documentation. * Fix a bunch of Doxygen comment warnings.
This commit is contained in:
parent
864426fb71
commit
baa0d7920a
2
Doxyfile
2
Doxyfile
|
@ -35,7 +35,7 @@ SUBGROUPING = YES
|
||||||
# Build related configuration options
|
# Build related configuration options
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
EXTRACT_ALL = YES
|
EXTRACT_ALL = YES
|
||||||
EXTRACT_PRIVATE = NO
|
EXTRACT_PRIVATE = YES
|
||||||
EXTRACT_STATIC = YES
|
EXTRACT_STATIC = YES
|
||||||
EXTRACT_LOCAL_CLASSES = YES
|
EXTRACT_LOCAL_CLASSES = YES
|
||||||
EXTRACT_LOCAL_METHODS = NO
|
EXTRACT_LOCAL_METHODS = NO
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/****************************************/
|
/**********************************/
|
||||||
/* Basic classes for Kicad: */
|
/* Basic classes for Kicad: */
|
||||||
/* EDA_ITEM */
|
/* EDA_ITEM */
|
||||||
/* EDA_TEXT */
|
/* EDA_TEXT */
|
||||||
/****************************************/
|
/**********************************/
|
||||||
|
|
||||||
#include "fctsys.h"
|
#include "fctsys.h"
|
||||||
#include "gr_basic.h"
|
#include "gr_basic.h"
|
||||||
|
@ -196,8 +196,8 @@ EDA_TEXT::EDA_TEXT( const wxString& text )
|
||||||
m_Orient = 0; // Rotation angle in 0.1 degrees.
|
m_Orient = 0; // Rotation angle in 0.1 degrees.
|
||||||
m_Attributs = 0;
|
m_Attributs = 0;
|
||||||
m_Mirror = false; // display mirror if true
|
m_Mirror = false; // display mirror if true
|
||||||
m_HJustify = GR_TEXT_HJUSTIFY_CENTER; // Defualt horizontal justification is centered.
|
m_HJustify = GR_TEXT_HJUSTIFY_CENTER; // Default horizontal justification is centered.
|
||||||
m_VJustify = GR_TEXT_VJUSTIFY_CENTER; // Defualt vertical justification is centered.
|
m_VJustify = GR_TEXT_VJUSTIFY_CENTER; // Default vertical justification is centered.
|
||||||
m_Thickness = 0; // thickness
|
m_Thickness = 0; // thickness
|
||||||
m_Italic = false; // true = italic shape.
|
m_Italic = false; // true = italic shape.
|
||||||
m_Bold = false;
|
m_Bold = false;
|
||||||
|
@ -230,7 +230,7 @@ EDA_TEXT::~EDA_TEXT()
|
||||||
|
|
||||||
int EDA_TEXT::LenSize( const wxString& aLine ) const
|
int EDA_TEXT::LenSize( const wxString& aLine ) const
|
||||||
{
|
{
|
||||||
return ReturnGraphicTextWidth(aLine, m_Size.x, m_Italic, m_Bold ) + m_Thickness;
|
return ReturnGraphicTextWidth( aLine, m_Size.x, m_Italic, m_Bold ) + m_Thickness;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -443,6 +443,7 @@ void EDA_TEXT::DrawOneLineOfText( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||||
m_HJustify, m_VJustify, width, m_Italic, m_Bold );
|
m_HJustify, m_VJustify, width, m_Italic, m_Bold );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
wxString EDA_TEXT::GetTextStyleName()
|
wxString EDA_TEXT::GetTextStyleName()
|
||||||
{
|
{
|
||||||
int style = 0;
|
int style = 0;
|
||||||
|
@ -510,6 +511,7 @@ bool EDA_RECT::Contains( const wxPoint& aPoint ) const
|
||||||
return (rel_pos.x >= 0) && (rel_pos.y >= 0) && ( rel_pos.y <= size.y) && ( rel_pos.x <= size.x);
|
return (rel_pos.x >= 0) && (rel_pos.y >= 0) && ( rel_pos.y <= size.y) && ( rel_pos.x <= size.x);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* return true if aRect is inside me (or on boundaries)
|
* return true if aRect is inside me (or on boundaries)
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -302,9 +302,9 @@ void GERBER_PLOTTER::circle( wxPoint aCentre, int aDiameter, FILL_T aFill,
|
||||||
/*
|
/*
|
||||||
* Function PlotPoly
|
* Function PlotPoly
|
||||||
* writes a filled or not filled polyline to output file
|
* writes a filled or not filled polyline to output file
|
||||||
* param aCornerList = buffer of corners coordinates
|
* @param aCornerList = buffer of corners coordinates
|
||||||
* param aFill = plot option (NO_FILL, FILLED_SHAPE, FILLED_WITH_BG_BODYCOLOR)
|
* @param aFill = plot option (NO_FILL, FILLED_SHAPE, FILLED_WITH_BG_BODYCOLOR)
|
||||||
* param aWidth = Width of the line to plot.
|
* @param aWidth = Width of the line to plot.
|
||||||
*/
|
*/
|
||||||
void GERBER_PLOTTER::PlotPoly( std::vector< wxPoint >& aCornerList, FILL_T aFill, int aWidth )
|
void GERBER_PLOTTER::PlotPoly( std::vector< wxPoint >& aCornerList, FILL_T aFill, int aWidth )
|
||||||
{
|
{
|
||||||
|
|
|
@ -366,8 +366,8 @@ int DSNLEXER::NeedNUMBER( const char* aExpectation ) throw( IO_ERROR )
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function isspace
|
* Function isSpace
|
||||||
* strips the upper bits of the int to ensure the value passed to ::isspace() is
|
* strips the upper bits of the int to ensure the value passed to C++ %isspace() is
|
||||||
* in the range of 0-255
|
* in the range of 0-255
|
||||||
*/
|
*/
|
||||||
static inline bool isSpace( int cc )
|
static inline bool isSpace( int cc )
|
||||||
|
|
|
@ -41,7 +41,7 @@ private:
|
||||||
* Function CreateParstList
|
* Function CreateParstList
|
||||||
* prints a list of components, in a form which can be imported by a
|
* prints a list of components, in a form which can be imported by a
|
||||||
* spreadsheet. Form is:
|
* spreadsheet. Form is:
|
||||||
* cmp value; number of components; <footprint>; <field1>; ...;
|
* cmp value; number of components; \<footprint\>; \<field1\>; ...;
|
||||||
* list of references having the same value
|
* list of references having the same value
|
||||||
*/
|
*/
|
||||||
void CreatePartsList( const wxString& aFullFileName, bool aIncludeSubComponents );
|
void CreatePartsList( const wxString& aFullFileName, bool aIncludeSubComponents );
|
||||||
|
|
|
@ -66,7 +66,6 @@ private:
|
||||||
/**
|
/**
|
||||||
* Function InitBuffers
|
* Function InitBuffers
|
||||||
* sets up to edit the given component.
|
* sets up to edit the given component.
|
||||||
* @param aComponent The component to edit.
|
|
||||||
*/
|
*/
|
||||||
void InitBuffers();
|
void InitBuffers();
|
||||||
|
|
||||||
|
|
|
@ -690,6 +690,7 @@ void SCH_EDIT_FRAME::OnHotKey( wxDC* aDC, int aHotKey, const wxPoint& aPosition,
|
||||||
case SCH_COMPONENT_T:
|
case SCH_COMPONENT_T:
|
||||||
case SCH_GLOBAL_LABEL_T:
|
case SCH_GLOBAL_LABEL_T:
|
||||||
case SCH_HIERARCHICAL_LABEL_T:
|
case SCH_HIERARCHICAL_LABEL_T:
|
||||||
|
case SCH_SHEET_T:
|
||||||
cmd.SetId( HK_Descr->m_IdMenuEvent );
|
cmd.SetId( HK_Descr->m_IdMenuEvent );
|
||||||
wxPostEvent( this, cmd );
|
wxPostEvent( this, cmd );
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -192,12 +192,13 @@ class EXPORT_HELP
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function writeListOfNetsCADSTAR
|
* Function writeListOfNetsCADSTAR
|
||||||
* writes a net list (ranked by Netcode), and
|
* writes a net list (ranked by Netcode), and pins connected to it.
|
||||||
* Pins connected to it
|
* <p>
|
||||||
* Format:
|
* Format:
|
||||||
*. ADD_TER RR2 6 "$42"
|
* - ADD_TER RR2 6 \"$42\"
|
||||||
*. B U1 100
|
* - B U1 100
|
||||||
* 6 CA
|
* - 6 CA
|
||||||
|
* </p>
|
||||||
*/
|
*/
|
||||||
void writeListOfNetsCADSTAR( FILE* f, NETLIST_OBJECT_LIST& aObjectsList );
|
void writeListOfNetsCADSTAR( FILE* f, NETLIST_OBJECT_LIST& aObjectsList );
|
||||||
|
|
||||||
|
|
|
@ -120,6 +120,7 @@ const KICAD_T SCH_COLLECTOR::RotatableItems[] = {
|
||||||
SCH_HIERARCHICAL_LABEL_T,
|
SCH_HIERARCHICAL_LABEL_T,
|
||||||
SCH_FIELD_T,
|
SCH_FIELD_T,
|
||||||
SCH_COMPONENT_T,
|
SCH_COMPONENT_T,
|
||||||
|
SCH_SHEET_T,
|
||||||
EOT
|
EOT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,7 @@ SCH_SHEET::SCH_SHEET( const wxPoint& pos ) :
|
||||||
{
|
{
|
||||||
m_Layer = LAYER_SHEET;
|
m_Layer = LAYER_SHEET;
|
||||||
m_Pos = pos;
|
m_Pos = pos;
|
||||||
|
m_Size = wxSize( MIN_SHEET_WIDTH, MIN_SHEET_HEIGHT );
|
||||||
m_TimeStamp = GetTimeStamp();
|
m_TimeStamp = GetTimeStamp();
|
||||||
m_SheetNameSize = m_FileNameSize = 60;
|
m_SheetNameSize = m_FileNameSize = 60;
|
||||||
m_AssociatedScreen = NULL;
|
m_AssociatedScreen = NULL;
|
||||||
|
@ -176,7 +177,7 @@ bool SCH_SHEET::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
{
|
{
|
||||||
if( !aLine.ReadLine() )
|
if( !aLine.ReadLine() )
|
||||||
{
|
{
|
||||||
aErrorMsg.Printf( wxT( "Read File Errror" ) );
|
aErrorMsg.Printf( wxT( "Read File Error" ) );
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -292,14 +293,20 @@ bool SCH_SHEET::Load( LINE_READER& aLine, wxString& aErrorMsg )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SCH_SHEET::SwapData( SCH_SHEET* copyitem )
|
void SCH_SHEET::SwapData( SCH_ITEM* aItem )
|
||||||
{
|
{
|
||||||
EXCHG( m_Pos, copyitem->m_Pos );
|
wxCHECK_RET( aItem->Type() == SCH_SHEET_T,
|
||||||
EXCHG( m_Size, copyitem->m_Size );
|
wxString::Format( wxT( "SCH_SHEET object cannot swap data with %s object." ),
|
||||||
EXCHG( m_SheetName, copyitem->m_SheetName );
|
GetChars( aItem->GetClass() ) ) );
|
||||||
EXCHG( m_SheetNameSize, copyitem->m_SheetNameSize );
|
|
||||||
EXCHG( m_FileNameSize, copyitem->m_FileNameSize );
|
SCH_SHEET* sheet = ( SCH_SHEET* ) aItem;
|
||||||
m_pins.swap( copyitem->m_pins );
|
|
||||||
|
EXCHG( m_Pos, sheet->m_Pos );
|
||||||
|
EXCHG( m_Size, sheet->m_Size );
|
||||||
|
EXCHG( m_SheetName, sheet->m_SheetName );
|
||||||
|
EXCHG( m_SheetNameSize, sheet->m_SheetNameSize );
|
||||||
|
EXCHG( m_FileNameSize, sheet->m_FileNameSize );
|
||||||
|
m_pins.swap( sheet->m_pins );
|
||||||
|
|
||||||
// Ensure sheet labels have their .m_Parent member pointing really on their
|
// Ensure sheet labels have their .m_Parent member pointing really on their
|
||||||
// parent, after swapping.
|
// parent, after swapping.
|
||||||
|
@ -308,9 +315,9 @@ void SCH_SHEET::SwapData( SCH_SHEET* copyitem )
|
||||||
sheetPin.SetParent( this );
|
sheetPin.SetParent( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, copyitem->m_pins )
|
BOOST_FOREACH( SCH_SHEET_PIN& sheetPin, sheet->m_pins )
|
||||||
{
|
{
|
||||||
sheetPin.SetParent( copyitem );
|
sheetPin.SetParent( sheet );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -399,6 +406,56 @@ bool SCH_SHEET::HasUndefinedPins()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int SCH_SHEET::GetMinWidth() const
|
||||||
|
{
|
||||||
|
int width = MIN_SHEET_WIDTH;
|
||||||
|
|
||||||
|
for( size_t i = 0; i < m_pins.size(); i++ )
|
||||||
|
{
|
||||||
|
int edge = m_pins[i].GetEdge();
|
||||||
|
|
||||||
|
// Make sure pin is on right or left side of sheet.
|
||||||
|
if( edge >= 2 )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
EDA_RECT rect = m_pins[i].GetBoundingBox();
|
||||||
|
|
||||||
|
if( width < rect.GetWidth() )
|
||||||
|
width = rect.GetWidth();
|
||||||
|
|
||||||
|
for( size_t j = 0; j < m_pins.size(); j++ )
|
||||||
|
{
|
||||||
|
if( (i == j) || (m_pins[i].m_Pos.y != m_pins[j].m_Pos.y) )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if( width < rect.GetWidth() + m_pins[j].GetBoundingBox().GetWidth() )
|
||||||
|
{
|
||||||
|
width = rect.GetWidth() + m_pins[j].GetBoundingBox().GetWidth();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return width;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int SCH_SHEET::GetMinHeight() const
|
||||||
|
{
|
||||||
|
int height = MIN_SHEET_HEIGHT;
|
||||||
|
|
||||||
|
for( size_t i = 0; i < m_pins.size(); i++ )
|
||||||
|
{
|
||||||
|
int pinY = m_pins[i].m_Pos.y - m_Pos.y;
|
||||||
|
|
||||||
|
if( pinY > height )
|
||||||
|
height = pinY;
|
||||||
|
}
|
||||||
|
|
||||||
|
return height;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void SCH_SHEET::Place( SCH_EDIT_FRAME* frame, wxDC* DC )
|
void SCH_SHEET::Place( SCH_EDIT_FRAME* frame, wxDC* DC )
|
||||||
{
|
{
|
||||||
/* Place list structures for new sheet. */
|
/* Place list structures for new sheet. */
|
||||||
|
@ -1013,6 +1070,12 @@ bool SCH_SHEET::doHitTest( const EDA_RECT& aRect, bool aContained, int aAccuracy
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
wxPoint SCH_SHEET::GetResizePosition() const
|
||||||
|
{
|
||||||
|
return wxPoint( m_Pos.x + m_Size.GetWidth(), m_Pos.y + m_Size.GetHeight() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined(DEBUG)
|
#if defined(DEBUG)
|
||||||
|
|
||||||
void SCH_SHEET::Show( int nestLevel, std::ostream& os )
|
void SCH_SHEET::Show( int nestLevel, std::ostream& os )
|
||||||
|
|
|
@ -19,6 +19,10 @@ class DANGLING_END_ITEM;
|
||||||
class SCH_EDIT_FRAME;
|
class SCH_EDIT_FRAME;
|
||||||
|
|
||||||
|
|
||||||
|
#define MIN_SHEET_WIDTH 500
|
||||||
|
#define MIN_SHEET_HEIGHT 150
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Pin (label) used in sheets to create hierarchical schematics.
|
* Pin (label) used in sheets to create hierarchical schematics.
|
||||||
*
|
*
|
||||||
|
@ -81,14 +85,14 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void CreateGraphicShape( std::vector <wxPoint>& aCorner_list, const wxPoint& aPos );
|
virtual void CreateGraphicShape( std::vector <wxPoint>& aCorner_list, const wxPoint& aPos );
|
||||||
|
|
||||||
void SwapData( SCH_SHEET_PIN* copyitem );
|
virtual void SwapData( SCH_ITEM* aItem );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the sheet label number.
|
* Get the sheet label number.
|
||||||
*
|
*
|
||||||
* @return Number of the sheet label.
|
* @return Number of the sheet label.
|
||||||
*/
|
*/
|
||||||
int GetNumber() { return m_Number; }
|
int GetNumber() const { return m_Number; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the sheet label number.
|
* Set the sheet label number.
|
||||||
|
@ -96,8 +100,10 @@ public:
|
||||||
* @param aNumber - New sheet number label.
|
* @param aNumber - New sheet number label.
|
||||||
*/
|
*/
|
||||||
void SetNumber( int aNumber );
|
void SetNumber( int aNumber );
|
||||||
|
|
||||||
void SetEdge( int aEdge );
|
void SetEdge( int aEdge );
|
||||||
int GetEdge();
|
|
||||||
|
int GetEdge() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function ConstraintOnEdge
|
* Function ConstraintOnEdge
|
||||||
|
@ -345,6 +351,38 @@ public:
|
||||||
*/
|
*/
|
||||||
bool HasUndefinedPins();
|
bool HasUndefinedPins();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetMinWidth
|
||||||
|
* returns the minimum width of the sheet based on the widths of the sheet pin text.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The minimum sheet width is determined by the width of the bounding box of each
|
||||||
|
* hierarchical sheet pin. If two pins are horizontally adjacent ( same Y position )
|
||||||
|
* to each other, the sum of the bounding box widths is used. If at some point in
|
||||||
|
* the future sheet objects can be rotated or pins can be placed in the vertical
|
||||||
|
* orientation, this function will need to be changed.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @return The minimum width the sheet can be resized.
|
||||||
|
*/
|
||||||
|
int GetMinWidth() const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function GetMinHeight
|
||||||
|
* returns the minimum height that the sheet can be resized based on the sheet pin
|
||||||
|
* positions.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* The minimum width of a sheet is determined by the Y axis location of the bottom
|
||||||
|
* most sheet pin. If at some point in the future sheet objects can be rotated or
|
||||||
|
* pins can be placed in the vertical orientation, this function will need to be
|
||||||
|
* changed.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @return The minimum height the sheet can be resized.
|
||||||
|
*/
|
||||||
|
int GetMinHeight() const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function GetPenSize
|
* Function GetPenSize
|
||||||
* @return the size of the "pen" that be used to draw or plot this item
|
* @return the size of the "pen" that be used to draw or plot this item
|
||||||
|
@ -373,7 +411,15 @@ public:
|
||||||
*/
|
*/
|
||||||
EDA_RECT GetBoundingBox() const;
|
EDA_RECT GetBoundingBox() const;
|
||||||
|
|
||||||
void SwapData( SCH_SHEET* copyitem );
|
/**
|
||||||
|
* Function GetResizePos
|
||||||
|
* returns the position of the lower right corner of the sheet in drawing units.
|
||||||
|
*
|
||||||
|
* @return A wxPoint containing lower right corner of the sheet in drawing units.
|
||||||
|
*/
|
||||||
|
wxPoint GetResizePosition() const;
|
||||||
|
|
||||||
|
virtual void SwapData( SCH_ITEM* aItem );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function ComponentCount
|
* Function ComponentCount
|
||||||
|
|
|
@ -80,15 +80,20 @@ void SCH_SHEET_PIN::Draw( EDA_DRAW_PANEL* aPanel,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SCH_SHEET_PIN::SwapData( SCH_SHEET_PIN* copyitem )
|
void SCH_SHEET_PIN::SwapData( SCH_ITEM* aItem )
|
||||||
{
|
{
|
||||||
SCH_TEXT::SwapData( (SCH_TEXT*) copyitem );
|
wxCHECK_RET( aItem->Type() == SCH_SHEET_PIN_T,
|
||||||
|
wxString::Format( wxT( "SCH_SHEET_PIN object cannot swap data with %s object." ),
|
||||||
|
GetChars( aItem->GetClass() ) ) );
|
||||||
|
|
||||||
|
SCH_SHEET_PIN* pin = ( SCH_SHEET_PIN* ) aItem;
|
||||||
|
SCH_TEXT::SwapData( (SCH_TEXT*) pin );
|
||||||
int tmp;
|
int tmp;
|
||||||
tmp = copyitem->GetNumber();
|
tmp = pin->GetNumber();
|
||||||
copyitem->SetNumber( GetNumber() );
|
pin->SetNumber( GetNumber() );
|
||||||
SetNumber( tmp );
|
SetNumber( tmp );
|
||||||
tmp = copyitem->GetEdge();
|
tmp = pin->GetEdge();
|
||||||
copyitem->SetEdge( GetEdge() );
|
pin->SetEdge( GetEdge() );
|
||||||
SetEdge( tmp );
|
SetEdge( tmp );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -178,7 +183,7 @@ void SCH_SHEET_PIN::SetEdge( int aEdge )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int SCH_SHEET_PIN::GetEdge()
|
int SCH_SHEET_PIN::GetEdge() const
|
||||||
{
|
{
|
||||||
return m_Edge;
|
return m_Edge;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1602,7 +1602,7 @@ wxPoint SCH_HIERLABEL::GetSchematicTextOffset()
|
||||||
void SCH_HIERLABEL::Mirror_Y( int aYaxis_position )
|
void SCH_HIERLABEL::Mirror_Y( int aYaxis_position )
|
||||||
{
|
{
|
||||||
/* The hierarchical label is NOT really mirrored for an horizontal label, the schematic
|
/* The hierarchical label is NOT really mirrored for an horizontal label, the schematic
|
||||||
* orientation is changed. For a vericalal label, the schematic orientation is not changed
|
* orientation is changed. For a vertical label, the schematic orientation is not changed
|
||||||
* and the label is moved to a suitable position.
|
* and the label is moved to a suitable position.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
|
@ -28,34 +28,6 @@
|
||||||
#include <boost/foreach.hpp>
|
#include <boost/foreach.hpp>
|
||||||
|
|
||||||
|
|
||||||
static int s_PreviousSheetWidth;
|
|
||||||
static int s_PreviousSheetHeight;
|
|
||||||
static wxPoint s_OldPos; /* Former position for cancellation or move ReSize */
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function EditSheet
|
|
||||||
* is used to edit an existing sheet or add a new sheet to the schematic.
|
|
||||||
* <p>
|
|
||||||
* When \a aSheet is a new sheet:
|
|
||||||
* <ul>
|
|
||||||
* <li>and the file name already exists in the schematic hierarchy, the screen associated with
|
|
||||||
* the sheet found in the hierarchy is associated with \a aSheet.</li>
|
|
||||||
* <li>and the file name already exists on the system, then \a aSheet is loaded with the
|
|
||||||
* existing file.</li>
|
|
||||||
* <li>and the file name does not exist in the schematic hierarchy or on the file system, then
|
|
||||||
* a new screen is created and associated with \a aSheet.</li>
|
|
||||||
* </ul> </p> <p>
|
|
||||||
* When \a aSheet is an existing sheet:
|
|
||||||
* <ul>
|
|
||||||
* <li>and the file name already exists in the schematic hierarchy, the current associated screen
|
|
||||||
* is replace by the one found in the hierarchy.</li>
|
|
||||||
* <li>and the file name already exists on the system, the current associated screen file name
|
|
||||||
* is changed and the file is loaded.</li>
|
|
||||||
* <li>and the file name does not exist in the schematic hierarchy or on the file system, the
|
|
||||||
* current associated screen file name is changed and saved to disk.</li>
|
|
||||||
* </ul> </p>
|
|
||||||
*/
|
|
||||||
bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC )
|
bool SCH_EDIT_FRAME::EditSheet( SCH_SHEET* aSheet, wxDC* aDC )
|
||||||
{
|
{
|
||||||
if( aSheet == NULL )
|
if( aSheet == NULL )
|
||||||
|
@ -231,11 +203,30 @@ static void MoveOrResizeSheet( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint&
|
||||||
if( aErase )
|
if( aErase )
|
||||||
sheet->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
sheet->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||||
|
|
||||||
if( sheet->m_Flags & IS_RESIZED )
|
if( sheet->GetFlags() & IS_RESIZED )
|
||||||
{
|
{
|
||||||
wxSize newSize( MAX( s_PreviousSheetWidth, screen->GetCrossHairPosition().x - sheet->m_Pos.x ),
|
int width = screen->GetCrossHairPosition().x - sheet->m_Pos.x;
|
||||||
MAX( s_PreviousSheetHeight, screen->GetCrossHairPosition().y - sheet->m_Pos.y ) );
|
int height = screen->GetCrossHairPosition().y - sheet->m_Pos.y;
|
||||||
sheet->Resize( newSize );
|
|
||||||
|
// If the sheet doesn't have any pins, clamp the minimum size to the default values.
|
||||||
|
width = ( width < MIN_SHEET_WIDTH ) ? MIN_SHEET_WIDTH : width;
|
||||||
|
height = ( height < MIN_SHEET_HEIGHT ) ? MIN_SHEET_HEIGHT : height;
|
||||||
|
|
||||||
|
if( sheet->HasPins() )
|
||||||
|
{
|
||||||
|
int gridSizeX = wxRound( screen->GetGridSize().x );
|
||||||
|
int gridSizeY = wxRound( screen->GetGridSize().y );
|
||||||
|
|
||||||
|
// If the sheet has pins, use the pin positions to clamp the minimum height.
|
||||||
|
height = ( height < sheet->GetMinHeight() + gridSizeY ) ?
|
||||||
|
sheet->GetMinHeight() + gridSizeY : height;
|
||||||
|
width = ( width < sheet->GetMinWidth() + gridSizeX ) ?
|
||||||
|
sheet->GetMinWidth() + gridSizeX : width;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxPoint grid = screen->GetNearestGridPosition( wxPoint( sheet->m_Pos.x + width,
|
||||||
|
sheet->m_Pos.y + height ) );
|
||||||
|
sheet->Resize( wxSize( grid.x - sheet->m_Pos.x, grid.y - sheet->m_Pos.y ) );
|
||||||
}
|
}
|
||||||
else /* Move Sheet */
|
else /* Move Sheet */
|
||||||
{
|
{
|
||||||
|
@ -251,38 +242,47 @@ static void MoveOrResizeSheet( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint&
|
||||||
static void ExitSheet( EDA_DRAW_PANEL* aPanel, wxDC* aDC )
|
static void ExitSheet( EDA_DRAW_PANEL* aPanel, wxDC* aDC )
|
||||||
{
|
{
|
||||||
SCH_SCREEN* screen = (SCH_SCREEN*) aPanel->GetScreen();
|
SCH_SCREEN* screen = (SCH_SCREEN*) aPanel->GetScreen();
|
||||||
SCH_SHEET* sheet = (SCH_SHEET*) screen->GetCurItem();
|
SCH_ITEM* item = screen->GetCurItem();
|
||||||
|
SCH_EDIT_FRAME* parent = ( SCH_EDIT_FRAME* ) aPanel->GetParent();
|
||||||
|
|
||||||
if( sheet == NULL )
|
if( (item == NULL) || (item->Type() != SCH_SHEET_T) || (parent == NULL) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( sheet->IsNew() )
|
parent->SetRepeatItem( NULL );
|
||||||
|
|
||||||
|
item->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
||||||
|
|
||||||
|
if( item->IsNew() )
|
||||||
{
|
{
|
||||||
sheet->Draw( aPanel, aDC, wxPoint( 0, 0 ), g_XorMode );
|
SAFE_DELETE( item );
|
||||||
SAFE_DELETE( sheet );
|
|
||||||
}
|
}
|
||||||
else if( (sheet->m_Flags & (IS_RESIZED|IS_MOVED)) )
|
else if( item->m_Flags & (IS_RESIZED | IS_MOVED) )
|
||||||
{
|
{
|
||||||
wxPoint curspos = screen->GetCrossHairPosition();
|
screen->RemoveFromDrawList( item );
|
||||||
aPanel->GetScreen()->SetCrossHairPosition( s_OldPos );
|
delete item;
|
||||||
MoveOrResizeSheet( aPanel, aDC, wxDefaultPosition, true );
|
|
||||||
sheet->Draw( aPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
item = parent->GetUndoItem();
|
||||||
sheet->m_Flags = 0;
|
|
||||||
screen->SetCrossHairPosition( curspos );
|
wxCHECK_RET( item != NULL, wxT( "Cannot restore undefined last sheet item." ) );
|
||||||
|
|
||||||
|
screen->AddToDrawList( item );
|
||||||
|
parent->SetUndoItem( NULL );
|
||||||
|
item->Draw( aPanel, aDC, wxPoint( 0, 0 ), GR_DEFAULT_DRAWMODE );
|
||||||
|
item->ClearFlags();
|
||||||
|
SCH_SHEET* sheet = ( SCH_SHEET* ) item;
|
||||||
|
aPanel->CrossHairOff( aDC );
|
||||||
|
screen->SetCrossHairPosition( sheet->GetResizePosition() );
|
||||||
|
aPanel->CrossHairOn( aDC );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sheet->m_Flags = 0;
|
item->ClearFlags();
|
||||||
}
|
}
|
||||||
|
|
||||||
screen->SetCurItem( NULL );
|
screen->SetCurItem( NULL );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#define SHEET_MIN_WIDTH 500
|
|
||||||
#define SHEET_MIN_HEIGHT 150
|
|
||||||
|
|
||||||
|
|
||||||
/* Create hierarchy sheet. */
|
/* Create hierarchy sheet. */
|
||||||
SCH_SHEET* SCH_EDIT_FRAME::CreateSheet( wxDC* aDC )
|
SCH_SHEET* SCH_EDIT_FRAME::CreateSheet( wxDC* aDC )
|
||||||
{
|
{
|
||||||
|
@ -294,8 +294,6 @@ SCH_SHEET* SCH_EDIT_FRAME::CreateSheet( wxDC* aDC )
|
||||||
sheet->m_TimeStamp = GetTimeStamp();
|
sheet->m_TimeStamp = GetTimeStamp();
|
||||||
sheet->SetParent( GetScreen() );
|
sheet->SetParent( GetScreen() );
|
||||||
sheet->SetScreen( NULL );
|
sheet->SetScreen( NULL );
|
||||||
s_PreviousSheetWidth = SHEET_MIN_WIDTH;
|
|
||||||
s_PreviousSheetHeight = SHEET_MIN_HEIGHT;
|
|
||||||
|
|
||||||
// need to check if this is being added to the GetDrawItems().
|
// need to check if this is being added to the GetDrawItems().
|
||||||
// also need to update the hierarchy, if we are adding
|
// also need to update the hierarchy, if we are adding
|
||||||
|
@ -303,6 +301,9 @@ SCH_SHEET* SCH_EDIT_FRAME::CreateSheet( wxDC* aDC )
|
||||||
GetScreen()->SetCurItem( sheet );
|
GetScreen()->SetCurItem( sheet );
|
||||||
DrawPanel->SetMouseCapture( MoveOrResizeSheet, ExitSheet );
|
DrawPanel->SetMouseCapture( MoveOrResizeSheet, ExitSheet );
|
||||||
DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, wxDefaultPosition, false );
|
DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, wxDefaultPosition, false );
|
||||||
|
DrawPanel->CrossHairOff( aDC );
|
||||||
|
GetScreen()->SetCrossHairPosition( sheet->GetResizePosition() );
|
||||||
|
DrawPanel->CrossHairOn( aDC );
|
||||||
|
|
||||||
return sheet;
|
return sheet;
|
||||||
}
|
}
|
||||||
|
@ -313,33 +314,24 @@ void SCH_EDIT_FRAME::ReSizeSheet( SCH_SHEET* aSheet, wxDC* aDC )
|
||||||
if( aSheet == NULL || aSheet->IsNew() )
|
if( aSheet == NULL || aSheet->IsNew() )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if( aSheet->Type() != SCH_SHEET_T )
|
wxCHECK_RET( aSheet->Type() == SCH_SHEET_T,
|
||||||
{
|
wxString::Format( wxT( "Cannot perform sheet resize on %s object." ),
|
||||||
DisplayError( this, wxT( "SCH_EDIT_FRAME::ReSizeSheet: Bad SructType" ) );
|
GetChars( aSheet->GetClass() ) ) );
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
OnModify( );
|
SetUndoItem( aSheet );
|
||||||
aSheet->m_Flags |= IS_RESIZED;
|
OnModify();
|
||||||
|
aSheet->SetFlags( IS_RESIZED );
|
||||||
|
|
||||||
s_OldPos = aSheet->m_Pos + aSheet->m_Size;
|
|
||||||
|
|
||||||
s_PreviousSheetWidth = SHEET_MIN_WIDTH;
|
|
||||||
s_PreviousSheetHeight = SHEET_MIN_HEIGHT;
|
|
||||||
|
|
||||||
BOOST_FOREACH( SCH_SHEET_PIN sheetPin, aSheet->GetPins() )
|
|
||||||
{
|
|
||||||
s_PreviousSheetWidth = MAX( s_PreviousSheetWidth,
|
|
||||||
( sheetPin.GetLength() + 1 ) * sheetPin.m_Size.x );
|
|
||||||
s_PreviousSheetHeight = MAX( s_PreviousSheetHeight,
|
|
||||||
sheetPin.m_Pos.y - aSheet->m_Pos.y );
|
|
||||||
}
|
|
||||||
|
|
||||||
DrawPanel->SetMouseCapture( MoveOrResizeSheet, ExitSheet );
|
DrawPanel->SetMouseCapture( MoveOrResizeSheet, ExitSheet );
|
||||||
DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, wxDefaultPosition, true );
|
DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, wxDefaultPosition, true );
|
||||||
|
|
||||||
if( aSheet->IsNew() ) // not already in edit, save a copy for undo/redo
|
if( aSheet->IsNew() ) // not already in edit, save a copy for undo/redo
|
||||||
SetUndoItem( aSheet );
|
SetUndoItem( aSheet );
|
||||||
|
|
||||||
|
DrawPanel->CrossHairOff( aDC );
|
||||||
|
GetScreen()->SetCrossHairPosition( aSheet->GetResizePosition() );
|
||||||
|
DrawPanel->CrossHairOn( aDC );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -352,12 +344,11 @@ void SCH_EDIT_FRAME::StartMoveSheet( SCH_SHEET* aSheet, wxDC* aDC )
|
||||||
GetScreen()->SetCrossHairPosition( aSheet->m_Pos );
|
GetScreen()->SetCrossHairPosition( aSheet->m_Pos );
|
||||||
DrawPanel->MoveCursorToCrossHair();
|
DrawPanel->MoveCursorToCrossHair();
|
||||||
|
|
||||||
s_OldPos = aSheet->m_Pos;
|
if( !aSheet->IsNew() )
|
||||||
aSheet->m_Flags |= IS_MOVED;
|
SetUndoItem( aSheet );
|
||||||
|
|
||||||
|
aSheet->SetFlags( IS_MOVED );
|
||||||
DrawPanel->SetMouseCapture( MoveOrResizeSheet, ExitSheet );
|
DrawPanel->SetMouseCapture( MoveOrResizeSheet, ExitSheet );
|
||||||
DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, wxDefaultPosition, true );
|
DrawPanel->m_mouseCaptureCallback( DrawPanel, aDC, wxDefaultPosition, true );
|
||||||
DrawPanel->CrossHairOn( aDC );
|
DrawPanel->CrossHairOn( aDC );
|
||||||
|
|
||||||
if( !aSheet->IsNew() ) // not already in edit, save a copy for undo/redo
|
|
||||||
SetUndoItem( aSheet );
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -176,7 +176,7 @@ public:
|
||||||
*
|
*
|
||||||
* @param aKeywordTable is an array of KEYWORDS holding \a aKeywordCount. This
|
* @param aKeywordTable is an array of KEYWORDS holding \a aKeywordCount. This
|
||||||
* token table need not contain the lexer separators such as '(' ')', etc.
|
* token table need not contain the lexer separators such as '(' ')', etc.
|
||||||
* @param aKeywordTable is the count of tokens in aKeywordTable.
|
* @param aKeywordCount is the count of tokens in aKeywordTable.
|
||||||
* @param aFile is an open file, which will be closed when this is destructed.
|
* @param aFile is an open file, which will be closed when this is destructed.
|
||||||
* @param aFileName is the name of the file
|
* @param aFileName is the name of the file
|
||||||
*/
|
*/
|
||||||
|
@ -189,7 +189,7 @@ public:
|
||||||
*
|
*
|
||||||
* @param aKeywordTable is an array of KEYWORDS holding \a aKeywordCount. This
|
* @param aKeywordTable is an array of KEYWORDS holding \a aKeywordCount. This
|
||||||
* token table need not contain the lexer separators such as '(' ')', etc.
|
* token table need not contain the lexer separators such as '(' ')', etc.
|
||||||
* @param aKeywordTable is the count of tokens in aKeywordTable.
|
* @param aKeywordCount is the count of tokens in aKeywordTable.
|
||||||
* @param aSExpression is text to feed through a STRING_LINE_READER
|
* @param aSExpression is text to feed through a STRING_LINE_READER
|
||||||
* @param aSource is a description of aSExpression, used for error reporting.
|
* @param aSource is a description of aSExpression, used for error reporting.
|
||||||
*/
|
*/
|
||||||
|
@ -204,7 +204,7 @@ public:
|
||||||
*
|
*
|
||||||
* @param aKeywordTable is an array of KEYWORDS holding \a aKeywordCount. This
|
* @param aKeywordTable is an array of KEYWORDS holding \a aKeywordCount. This
|
||||||
* token table need not contain the lexer separators such as '(' ')', etc.
|
* token table need not contain the lexer separators such as '(' ')', etc.
|
||||||
* @param aKeywordTable is the count of tokens in aKeywordTable.
|
* @param aKeywordCount is the count of tokens in aKeywordTable.
|
||||||
* @param aLineReader is any subclassed instance of LINE_READER, such as
|
* @param aLineReader is any subclassed instance of LINE_READER, such as
|
||||||
* STRING_LINE_READER or FILE_LINE_READER.
|
* STRING_LINE_READER or FILE_LINE_READER.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -565,7 +565,30 @@ private:
|
||||||
wxString SelectFromLibBrowser( void );
|
wxString SelectFromLibBrowser( void );
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool EditSheet( SCH_SHEET* Sheet, wxDC* DC );
|
/**
|
||||||
|
* Function EditSheet
|
||||||
|
* is used to edit an existing sheet or add a new sheet to the schematic.
|
||||||
|
* <p>
|
||||||
|
* When \a aSheet is a new sheet:
|
||||||
|
* <ul>
|
||||||
|
* <li>and the file name already exists in the schematic hierarchy, the screen associated
|
||||||
|
* with the sheet found in the hierarchy is associated with \a aSheet.</li>
|
||||||
|
* <li>and the file name already exists on the system, then \a aSheet is loaded with the
|
||||||
|
* existing file.</li>
|
||||||
|
* <li>and the file name does not exist in the schematic hierarchy or on the file system,
|
||||||
|
* then a new screen is created and associated with \a aSheet.</li>
|
||||||
|
* </ul> </p> <p>
|
||||||
|
* When \a aSheet is an existing sheet:
|
||||||
|
* <ul>
|
||||||
|
* <li>and the file name already exists in the schematic hierarchy, the current associated
|
||||||
|
* screen is replace by the one found in the hierarchy.</li>
|
||||||
|
* <li>and the file name already exists on the system, the current associated screen file
|
||||||
|
* name is changed and the file is loaded.</li>
|
||||||
|
* <li>and the file name does not exist in the schematic hierarchy or on the file system,
|
||||||
|
* the current associated screen file name is changed and saved to disk.</li>
|
||||||
|
* </ul> </p>
|
||||||
|
*/
|
||||||
|
bool EditSheet( SCH_SHEET* aSheet, wxDC* aDC );
|
||||||
|
|
||||||
wxPoint GetLastSheetPinPosition() const { return m_lastSheetPinPosition; }
|
wxPoint GetLastSheetPinPosition() const { return m_lastSheetPinPosition; }
|
||||||
|
|
||||||
|
@ -723,15 +746,15 @@ private:
|
||||||
* Function copyBlockItems
|
* Function copyBlockItems
|
||||||
* copies the list of block item.
|
* copies the list of block item.
|
||||||
* @sa m_blockItems
|
* @sa m_blockItems
|
||||||
* @param aItemList List to copy the block select items into.
|
* @param aItemsList List to copy the block select items into.
|
||||||
*/
|
*/
|
||||||
void copyBlockItems( PICKED_ITEMS_LIST& aItemsList );
|
void copyBlockItems( PICKED_ITEMS_LIST& aItemsList );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function addJunctionMenuEntries
|
* Function addJunctionMenuEntries
|
||||||
* adds the context menu items to \a aMenu for \a aJunction.
|
* adds the context menu items to \a aMenu for \a aJunction.
|
||||||
* @params aMenu The menu to add the items to.
|
* @param aMenu The menu to add the items to.
|
||||||
* @params aJunction The SCH_JUNCTION object selected.
|
* @param aJunction The SCH_JUNCTION object selected.
|
||||||
*/
|
*/
|
||||||
void addJunctionMenuEntries( wxMenu* aMenu, SCH_JUNCTION* aJunction );
|
void addJunctionMenuEntries( wxMenu* aMenu, SCH_JUNCTION* aJunction );
|
||||||
|
|
||||||
|
|
|
@ -199,7 +199,7 @@ private:
|
||||||
* but does not add it to the BOARD. Use this to report any kind of
|
* but does not add it to the BOARD. Use this to report any kind of
|
||||||
* DRC problem, or unconnected pad problem.
|
* DRC problem, or unconnected pad problem.
|
||||||
*
|
*
|
||||||
* @param aTrack The reference track
|
* @param aTrack The reference track.
|
||||||
* @param aItem Another item on the BOARD, such as a SEGVIA, SEGZONE,
|
* @param aItem Another item on the BOARD, such as a SEGVIA, SEGZONE,
|
||||||
* or TRACK.
|
* or TRACK.
|
||||||
* @param aErrorCode A categorizing identifier for the particular type
|
* @param aErrorCode A categorizing identifier for the particular type
|
||||||
|
@ -219,7 +219,7 @@ private:
|
||||||
* but does not add it to the BOARD. Use this to report any kind of
|
* but does not add it to the BOARD. Use this to report any kind of
|
||||||
* DRC problem, or unconnected pad problem.
|
* DRC problem, or unconnected pad problem.
|
||||||
*
|
*
|
||||||
* @param aEdge edge zone to test
|
* @param aArea The zone to test
|
||||||
* @param aPos position of error
|
* @param aPos position of error
|
||||||
* @param aErrorCode Type of error
|
* @param aErrorCode Type of error
|
||||||
* @param fillMe A MARKER_PCB* which is to be filled in, or NULL if one is to
|
* @param fillMe A MARKER_PCB* which is to be filled in, or NULL if one is to
|
||||||
|
|
|
@ -144,7 +144,7 @@ private:
|
||||||
/**
|
/**
|
||||||
* Function SetPadNetName
|
* Function SetPadNetName
|
||||||
* Update a pad netname using the current footprint
|
* Update a pad netname using the current footprint
|
||||||
* from the netlist (line format: ( <pad number> <net name> ) )
|
* from the netlist (line format: ( \<pad number\> \<net name\> ) )
|
||||||
* @param aText = current line read from netlist
|
* @param aText = current line read from netlist
|
||||||
*/
|
*/
|
||||||
bool SetPadNetName( char* aText );
|
bool SetPadNetName( char* aText );
|
||||||
|
|
|
@ -1134,7 +1134,7 @@ class LAYER : public ELEM
|
||||||
std::string name;
|
std::string name;
|
||||||
DSN_T layer_type; ///< one of: T_signal, T_power, T_mixed, T_jumper
|
DSN_T layer_type; ///< one of: T_signal, T_power, T_mixed, T_jumper
|
||||||
int direction;
|
int direction;
|
||||||
int cost; ///< [forbidden | high | medium | low | free | <positive_integer > | -1]
|
int cost; ///< [forbidden | high | medium | low | free | \<positive_integer\> | -1]
|
||||||
int cost_type; ///< T_length | T_way
|
int cost_type; ///< T_length | T_way
|
||||||
RULE* rules;
|
RULE* rules;
|
||||||
STRINGS use_net;
|
STRINGS use_net;
|
||||||
|
@ -2678,7 +2678,7 @@ class CLASS : public ELEM
|
||||||
|
|
||||||
STRINGS net_ids;
|
STRINGS net_ids;
|
||||||
|
|
||||||
/// <circuit_descriptor> list
|
/// circuit descriptor list
|
||||||
STRINGS circuit;
|
STRINGS circuit;
|
||||||
|
|
||||||
RULE* rules;
|
RULE* rules;
|
||||||
|
@ -3619,7 +3619,7 @@ class SPECCTRA_DB : public SPECCTRA_LEXER
|
||||||
* pin_reference and it will be tested through CurTok().
|
* pin_reference and it will be tested through CurTok().
|
||||||
*
|
*
|
||||||
* @param component_id Where to put the text preceeding the '-' hyphen.
|
* @param component_id Where to put the text preceeding the '-' hyphen.
|
||||||
* @param pin_d Where to put the text which trails the '-'.
|
* @param pid_id Where to put the text which trails the '-'.
|
||||||
* @throw IO_ERROR, if the next token or two do no make up a pin_reference,
|
* @throw IO_ERROR, if the next token or two do no make up a pin_reference,
|
||||||
* or there is an error reading from the input stream.
|
* or there is an error reading from the input stream.
|
||||||
*/
|
*/
|
||||||
|
@ -3719,6 +3719,7 @@ class SPECCTRA_DB : public SPECCTRA_LEXER
|
||||||
* Function makePADSTACK
|
* Function makePADSTACK
|
||||||
* creates a PADSTACK which matches the given pad. Only pads which do not
|
* creates a PADSTACK which matches the given pad. Only pads which do not
|
||||||
* satisfy the function isKeepout() should be passed to this function.
|
* satisfy the function isKeepout() should be passed to this function.
|
||||||
|
* @param aBoard The owner of the MODULE.
|
||||||
* @param aPad The D_PAD which needs to be made into a PADSTACK.
|
* @param aPad The D_PAD which needs to be made into a PADSTACK.
|
||||||
* @return PADSTACK* - The created padstack, including its padstack_id.
|
* @return PADSTACK* - The created padstack, including its padstack_id.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -143,7 +143,7 @@ public:
|
||||||
/**
|
/**
|
||||||
* Function Fillet
|
* Function Fillet
|
||||||
* returns a filleted version of a polygon.
|
* returns a filleted version of a polygon.
|
||||||
* @param aDistance is the fillet radius.
|
* @param aRadius is the fillet radius.
|
||||||
* @param aSegments is the number of segments / fillet.
|
* @param aSegments is the number of segments / fillet.
|
||||||
* @return CPolyLine* - Pointer to new polygon.
|
* @return CPolyLine* - Pointer to new polygon.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -955,7 +955,8 @@ double GetPointToLineSegmentDistance( int x, int y, int xi, int yi, int xf, int
|
||||||
* Function GetPointToLineSegmentDistance
|
* Function GetPointToLineSegmentDistance
|
||||||
* Get distance between line segment and point
|
* Get distance between line segment and point
|
||||||
* @param x,y = point
|
* @param x,y = point
|
||||||
* @param xi,yi and xf,yf = the end-points of the line segment
|
* @param xi,yi Start point of the line segament
|
||||||
|
* @param xf,yf End point of the line segment
|
||||||
* @return the distance
|
* @return the distance
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue