15 changed files with 611 additions and 592 deletions
-
1CHANGELOG.txt
-
20eeschema/block.cpp
-
14eeschema/bus-wire-junction.cpp
-
2eeschema/class_libentry_fields.h
-
4eeschema/class_pin.cpp
-
20eeschema/class_schematic_items.cpp
-
285eeschema/class_schematic_items.h
-
159eeschema/classes_body_items.cpp
-
118eeschema/classes_body_items.h
-
20eeschema/eelibs_draw_components.cpp
-
172eeschema/eeredraw.cpp
-
12eeschema/load_one_schematic_file.cpp
-
103eeschema/locate.cpp
-
269eeschema/program.h
-
4eeschema/protos.h
@ -0,0 +1,285 @@ |
|||
/************************************************************************/ |
|||
/* classes to handle items used in schematic: wires, bus, junctions ... */ |
|||
/************************************************************************/ |
|||
|
|||
#ifndef CLASS_SCHEMATIC_ITEMS_H |
|||
#define CLASS_SCHEMATIC_ITEMS_H |
|||
|
|||
#ifndef eda_global |
|||
#define eda_global extern |
|||
#endif |
|||
|
|||
#define DRAWJUNCTION_SIZE 16 /* Rayon du symbole connexion */ |
|||
#define DRAWMARKER_SIZE 16 /* Rayon du symbole marqueur */ |
|||
#define DRAWNOCONNECT_SIZE 48 /* Rayon du symbole No Connexion */ |
|||
|
|||
/* flags pour BUS ENTRY (bus to bus ou wire to bus */ |
|||
#define WIRE_TO_BUS 0 |
|||
#define BUS_TO_BUS 1 |
|||
|
|||
|
|||
enum TypeMarker { /* Type des Marqueurs */ |
|||
MARQ_UNSPEC, |
|||
MARQ_ERC, |
|||
MARQ_PCB, |
|||
MARQ_SIMUL, |
|||
MARQ_NMAX /* Derniere valeur: fin de tableau */ |
|||
}; |
|||
|
|||
|
|||
/* Messages correspondants aux types des marqueurs */ |
|||
#ifdef MAIN |
|||
const wxChar* NameMarqueurType[] = |
|||
{ |
|||
wxT( "" ), |
|||
wxT( "ERC" ), |
|||
wxT( "PCB" ), |
|||
wxT( "SIMUL" ), |
|||
wxT( "?????" ) |
|||
}; |
|||
#else |
|||
extern const wxChar* NameMarqueurType[]; |
|||
#endif |
|||
|
|||
|
|||
/** |
|||
* Class EDA_DrawLineStruct |
|||
* is a segment decription base class to describe items which have 2 end |
|||
* points (track, wire, draw line ...) |
|||
*/ |
|||
class EDA_DrawLineStruct : public SCH_ITEM |
|||
{ |
|||
public: |
|||
int m_Width; // 0 = line, > 0 = tracks, bus ... |
|||
wxPoint m_Start; // Line start point |
|||
wxPoint m_End; // Line end point |
|||
|
|||
bool m_StartIsDangling; |
|||
bool m_EndIsDangling; // TRUE si Start ou End not connected (wires, tracks...) |
|||
|
|||
public: |
|||
EDA_DrawLineStruct( const wxPoint& pos, int layer ); |
|||
~EDA_DrawLineStruct() { } |
|||
|
|||
EDA_DrawLineStruct* Next() const { return (EDA_DrawLineStruct*) Pnext; } |
|||
EDA_DrawLineStruct* Back() const { return (EDA_DrawLineStruct*) Pback; } |
|||
|
|||
virtual wxString GetClass() const |
|||
{ |
|||
return wxT( "EDA_DrawLine" ); |
|||
} |
|||
|
|||
|
|||
bool IsOneEndPointAt( const wxPoint& pos ); |
|||
EDA_DrawLineStruct* GenCopy(); |
|||
|
|||
bool IsNull() |
|||
{ |
|||
return m_Start == m_End; |
|||
} |
|||
|
|||
|
|||
EDA_Rect GetBoundingBox(); |
|||
|
|||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, int draw_mode, |
|||
int Color = -1 ); |
|||
|
|||
/** |
|||
* Function Save |
|||
* writes the data structures for this object out to a FILE in "*.brd" format. |
|||
* @param aFile The FILE to write to. |
|||
* @return bool - true if success writing else false. |
|||
*/ |
|||
bool Save( FILE* aFile ) const; |
|||
|
|||
#if defined(DEBUG) |
|||
void Show( int nestLevel, std::ostream& os ); |
|||
|
|||
#endif |
|||
}; |
|||
|
|||
|
|||
class DrawMarkerStruct : public SCH_ITEM /* marqueurs */ |
|||
{ |
|||
public: |
|||
wxPoint m_Pos; /* XY coordinates of marker. */ |
|||
TypeMarker m_Type; |
|||
int m_MarkFlags; // complements d'information |
|||
wxString m_Comment; /* Texte (commentaireassocie eventuel */ |
|||
|
|||
public: |
|||
DrawMarkerStruct( const wxPoint& pos, const wxString& text ); |
|||
~DrawMarkerStruct(); |
|||
virtual wxString GetClass() const |
|||
{ |
|||
return wxT( "DrawMarker" ); |
|||
} |
|||
|
|||
|
|||
DrawMarkerStruct* GenCopy(); |
|||
wxString GetComment(); |
|||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, |
|||
int draw_mode, int Color = -1 ); |
|||
|
|||
/** |
|||
* Function Save |
|||
* writes the data structures for this object out to a FILE in "*.brd" format. |
|||
* @param aFile The FILE to write to. |
|||
* @return bool - true if success writing else false. |
|||
*/ |
|||
bool Save( FILE* aFile ) const; |
|||
|
|||
#if defined(DEBUG) |
|||
void Show( int nestLevel, std::ostream& os ); |
|||
|
|||
#endif |
|||
}; |
|||
|
|||
|
|||
class DrawNoConnectStruct : public SCH_ITEM /* Symboles de non connexion */ |
|||
{ |
|||
public: |
|||
wxPoint m_Pos; /* XY coordinates of NoConnect. */ |
|||
|
|||
public: |
|||
DrawNoConnectStruct( const wxPoint& pos ); |
|||
~DrawNoConnectStruct() { } |
|||
virtual wxString GetClass() const |
|||
{ |
|||
return wxT( "DrawNoConnect" ); |
|||
} |
|||
|
|||
|
|||
DrawNoConnectStruct* GenCopy(); |
|||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, |
|||
int draw_mode, int Color = -1 ); |
|||
|
|||
/** |
|||
* Function Save |
|||
* writes the data structures for this object out to a FILE in "*.brd" format. |
|||
* @param aFile The FILE to write to. |
|||
* @return bool - true if success writing else false. |
|||
*/ |
|||
bool Save( FILE* aFile ) const; |
|||
|
|||
EDA_Rect GetBoundingBox(); |
|||
}; |
|||
|
|||
|
|||
/** |
|||
* Class DrawBusEntryStruct |
|||
* Struct de descr 1 raccord a 45 degres de BUS ou WIRE |
|||
*/ |
|||
class DrawBusEntryStruct : public SCH_ITEM |
|||
{ |
|||
public: |
|||
int m_Width; |
|||
wxPoint m_Pos; |
|||
wxSize m_Size; |
|||
|
|||
public: |
|||
DrawBusEntryStruct( const wxPoint& pos, int shape, int id ); |
|||
~DrawBusEntryStruct() { } |
|||
|
|||
virtual wxString GetClass() const |
|||
{ |
|||
return wxT( "DrawBusEntry" ); |
|||
} |
|||
|
|||
|
|||
DrawBusEntryStruct* GenCopy(); |
|||
wxPoint m_End() const; // retourne la coord de fin du raccord |
|||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, |
|||
int draw_mode, int Color = -1 ); |
|||
|
|||
/** |
|||
* Function Save |
|||
* writes the data structures for this object out to a FILE in "*.brd" format. |
|||
* @param aFile The FILE to write to. |
|||
* @return bool - true if success writing else false. |
|||
*/ |
|||
bool Save( FILE* aFile ) const; |
|||
|
|||
EDA_Rect GetBoundingBox(); |
|||
}; |
|||
|
|||
class DrawPolylineStruct : public SCH_ITEM /* Polyligne (serie de segments) */ |
|||
{ |
|||
public: |
|||
int m_Width; /* Tickness */ |
|||
std::vector<wxPoint> m_PolyPoints; // list of points (>= 2) |
|||
|
|||
public: |
|||
DrawPolylineStruct( int layer ); |
|||
~DrawPolylineStruct(); |
|||
|
|||
virtual wxString GetClass() const |
|||
{ |
|||
return wxT( "DrawPolyline" ); |
|||
} |
|||
|
|||
|
|||
DrawPolylineStruct* GenCopy(); |
|||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, |
|||
int draw_mode, int Color = -1 ); |
|||
|
|||
/** |
|||
* Function Save |
|||
* writes the data structures for this object out to a FILE in "*.brd" format. |
|||
* @param aFile The FILE to write to. |
|||
* @return bool - true if success writing else false. |
|||
*/ |
|||
bool Save( FILE* aFile ) const; |
|||
|
|||
/** Function AddPoint |
|||
* add a corner to m_PolyPoints |
|||
*/ |
|||
void AddPoint( const wxPoint& point ) |
|||
{ |
|||
m_PolyPoints.push_back( point ); |
|||
} |
|||
|
|||
/** Function GetCornerCount |
|||
* @return the number of corners |
|||
*/ |
|||
|
|||
unsigned GetCornerCount() const { return m_PolyPoints.size(); } |
|||
}; |
|||
|
|||
class DrawJunctionStruct : public SCH_ITEM |
|||
{ |
|||
public: |
|||
wxPoint m_Pos; /* XY coordinates of connection. */ |
|||
|
|||
public: |
|||
DrawJunctionStruct( const wxPoint& pos ); |
|||
~DrawJunctionStruct() { } |
|||
|
|||
virtual wxString GetClass() const |
|||
{ |
|||
return wxT( "DrawJunction" ); |
|||
} |
|||
|
|||
|
|||
EDA_Rect GetBoundingBox(); |
|||
|
|||
DrawJunctionStruct* GenCopy(); |
|||
|
|||
virtual void Draw( WinEDA_DrawPanel* panel, wxDC* DC, const wxPoint& offset, |
|||
int draw_mode, int Color = -1 ); |
|||
/** |
|||
* Function Save |
|||
* writes the data structures for this object out to a FILE in "*.brd" format. |
|||
* @param aFile The FILE to write to. |
|||
* @return bool - true if success writing else false. |
|||
*/ |
|||
bool Save( FILE* aFile ) const; |
|||
|
|||
#if defined(DEBUG) |
|||
void Show( int nestLevel, std::ostream& os ); |
|||
|
|||
#endif |
|||
}; |
|||
|
|||
|
|||
#endif /* CLASS_SCHEMATIC_ITEMS_H */ |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue