2020-08-23 19:01:08 +00:00
|
|
|
|
/*
|
|
|
|
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
|
|
|
|
*
|
|
|
|
|
* Copyright (C) 2020 Thomas Pointhuber <thomas.pointhuber@gmx.at>
|
2022-10-31 14:03:35 +00:00
|
|
|
|
* Copyright (C) 2021-2022 KiCad Developers, see AUTHORS.txt for contributors.
|
2020-08-23 19:01:08 +00:00
|
|
|
|
*
|
|
|
|
|
* This program is free software; you can redistribute it and/or
|
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
|
* as published by the Free Software Foundation; either version 2
|
|
|
|
|
* of the License, or (at your option) any later version.
|
|
|
|
|
*
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
|
* along with this program; if not, you may find one here:
|
|
|
|
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
|
|
|
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
|
|
|
|
* or you may write to the Free Software Foundation, Inc.,
|
|
|
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#ifndef ALTIUM_PARSER_SCH_H
|
|
|
|
|
#define ALTIUM_PARSER_SCH_H
|
|
|
|
|
|
|
|
|
|
#include <cstdint>
|
|
|
|
|
#include <cstring>
|
|
|
|
|
#include <map>
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
2022-01-01 06:04:08 +00:00
|
|
|
|
#include <math/vector2d.h>
|
2020-10-23 12:29:07 +00:00
|
|
|
|
#include <wx/string.h>
|
|
|
|
|
|
2020-08-23 19:01:08 +00:00
|
|
|
|
// this constant specifies a item which is not inside an component
|
|
|
|
|
const int ALTIUM_COMPONENT_NONE = -1;
|
|
|
|
|
|
2021-04-10 19:45:36 +00:00
|
|
|
|
class ALTIUM_PARSER;
|
|
|
|
|
|
|
|
|
|
struct ASCH_STORAGE_FILE
|
|
|
|
|
{
|
|
|
|
|
wxString filename;
|
|
|
|
|
std::vector<char> data;
|
|
|
|
|
|
|
|
|
|
explicit ASCH_STORAGE_FILE( ALTIUM_PARSER& aReader );
|
|
|
|
|
};
|
|
|
|
|
|
2022-08-09 11:39:13 +00:00
|
|
|
|
struct ASCH_ADDITIONAL_FILE
|
|
|
|
|
{
|
2022-08-10 08:00:41 +00:00
|
|
|
|
wxString FileName;
|
|
|
|
|
std::vector<char> Data;
|
2022-08-09 11:39:13 +00:00
|
|
|
|
|
|
|
|
|
explicit ASCH_ADDITIONAL_FILE( ALTIUM_PARSER& aReader );
|
|
|
|
|
};
|
2021-04-10 19:45:36 +00:00
|
|
|
|
|
2020-08-23 19:01:08 +00:00
|
|
|
|
enum class ALTIUM_SCH_RECORD
|
|
|
|
|
{
|
2024-01-14 10:12:47 +00:00
|
|
|
|
UNKNOWN = -1,
|
|
|
|
|
|
2020-08-23 19:01:08 +00:00
|
|
|
|
HEADER = 0,
|
|
|
|
|
COMPONENT = 1,
|
|
|
|
|
PIN = 2,
|
|
|
|
|
IEEE_SYMBOL = 3,
|
|
|
|
|
LABEL = 4,
|
|
|
|
|
BEZIER = 5,
|
|
|
|
|
POLYLINE = 6,
|
|
|
|
|
POLYGON = 7,
|
|
|
|
|
ELLIPSE = 8,
|
|
|
|
|
PIECHART = 9,
|
|
|
|
|
ROUND_RECTANGLE = 10,
|
|
|
|
|
ELLIPTICAL_ARC = 11,
|
|
|
|
|
ARC = 12,
|
|
|
|
|
LINE = 13,
|
|
|
|
|
RECTANGLE = 14,
|
|
|
|
|
SHEET_SYMBOL = 15,
|
|
|
|
|
SHEET_ENTRY = 16,
|
|
|
|
|
POWER_PORT = 17,
|
|
|
|
|
PORT = 18,
|
|
|
|
|
NO_ERC = 22,
|
|
|
|
|
NET_LABEL = 25,
|
|
|
|
|
BUS = 26,
|
|
|
|
|
WIRE = 27,
|
|
|
|
|
TEXT_FRAME = 28,
|
|
|
|
|
JUNCTION = 29,
|
|
|
|
|
IMAGE = 30,
|
|
|
|
|
SHEET = 31,
|
|
|
|
|
SHEET_NAME = 32,
|
|
|
|
|
FILE_NAME = 33,
|
|
|
|
|
DESIGNATOR = 34,
|
|
|
|
|
BUS_ENTRY = 37,
|
|
|
|
|
TEMPLATE = 39,
|
|
|
|
|
PARAMETER = 41,
|
2023-03-06 02:13:40 +00:00
|
|
|
|
PARAMETER_SET = 43,
|
2020-08-23 19:01:08 +00:00
|
|
|
|
IMPLEMENTATION_LIST = 44,
|
|
|
|
|
IMPLEMENTATION = 45,
|
2023-09-04 21:46:25 +00:00
|
|
|
|
MAP_DEFINER_LIST = 46,
|
|
|
|
|
MAP_DEFINER = 47,
|
|
|
|
|
IMPL_PARAMS = 48,
|
2021-07-05 22:57:58 +00:00
|
|
|
|
NOTE = 209,
|
2021-08-14 11:05:56 +00:00
|
|
|
|
COMPILE_MASK = 211,
|
2022-08-09 12:00:45 +00:00
|
|
|
|
HARNESS_CONNECTOR = 215,
|
2022-08-09 12:15:42 +00:00
|
|
|
|
HARNESS_ENTRY = 216,
|
2022-08-09 12:32:41 +00:00
|
|
|
|
HARNESS_TYPE = 217,
|
2022-08-09 11:39:13 +00:00
|
|
|
|
SIGNAL_HARNESS = 218,
|
2023-02-22 23:10:40 +00:00
|
|
|
|
BLANKET = 225,
|
2023-08-28 21:50:56 +00:00
|
|
|
|
HYPERLINK = 226,
|
2020-08-23 19:01:08 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2020-10-14 19:38:12 +00:00
|
|
|
|
enum class ASCH_RECORD_ORIENTATION
|
|
|
|
|
{
|
2021-07-24 20:28:24 +00:00
|
|
|
|
RIGHTWARDS = 0, // 0
|
|
|
|
|
UPWARDS = 1, // 90
|
|
|
|
|
LEFTWARDS = 2, // 180
|
|
|
|
|
DOWNWARDS = 3 // 270
|
2020-10-14 19:38:12 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_OWNER_INTERFACE
|
2021-12-27 15:50:30 +00:00
|
|
|
|
{
|
2023-09-04 21:46:25 +00:00
|
|
|
|
int ownerindex;
|
|
|
|
|
int ownerpartid;
|
|
|
|
|
int ownerpartdisplaymode;
|
|
|
|
|
int indexinsheet;
|
2023-08-28 21:50:56 +00:00
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
explicit ASCH_OWNER_INTERFACE( const std::map<wxString, wxString>& aProps );
|
2023-08-28 21:50:56 +00:00
|
|
|
|
};
|
2021-12-27 15:50:30 +00:00
|
|
|
|
|
2023-08-28 21:50:56 +00:00
|
|
|
|
struct ASCH_FILL_INTERFACE
|
|
|
|
|
{
|
|
|
|
|
int AreaColor;
|
2022-09-03 22:38:41 +00:00
|
|
|
|
bool IsSolid;
|
2023-08-28 21:50:56 +00:00
|
|
|
|
bool IsTransparent;
|
|
|
|
|
|
|
|
|
|
explicit ASCH_FILL_INTERFACE( const std::map<wxString, wxString>& aProps );
|
|
|
|
|
};
|
2021-12-27 15:50:30 +00:00
|
|
|
|
|
2023-08-28 21:50:56 +00:00
|
|
|
|
struct ASCH_BORDER_INTERFACE
|
|
|
|
|
{
|
|
|
|
|
int LineWidth;
|
2022-09-03 22:38:41 +00:00
|
|
|
|
int Color;
|
2023-08-28 21:50:56 +00:00
|
|
|
|
|
|
|
|
|
explicit ASCH_BORDER_INTERFACE( const std::map<wxString, wxString>& aProps );
|
2021-12-27 15:50:30 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2021-06-10 14:10:55 +00:00
|
|
|
|
struct ASCH_SYMBOL
|
2020-08-23 19:01:08 +00:00
|
|
|
|
{
|
|
|
|
|
int currentpartid;
|
2022-11-28 00:34:33 +00:00
|
|
|
|
int m_indexInSheet;
|
2020-08-23 19:01:08 +00:00
|
|
|
|
wxString libreference;
|
2020-10-23 14:22:56 +00:00
|
|
|
|
wxString sourcelibraryname;
|
|
|
|
|
wxString componentdescription;
|
2020-08-23 19:01:08 +00:00
|
|
|
|
|
2022-01-01 06:04:08 +00:00
|
|
|
|
int orientation;
|
|
|
|
|
bool isMirrored;
|
|
|
|
|
VECTOR2I location;
|
2020-08-23 19:01:08 +00:00
|
|
|
|
|
2020-10-23 14:22:56 +00:00
|
|
|
|
int partcount;
|
|
|
|
|
int displaymodecount;
|
|
|
|
|
int displaymode;
|
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_SYMBOL( const std::map<wxString, wxString>& aProps );
|
2020-08-23 19:01:08 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-08-28 21:50:56 +00:00
|
|
|
|
enum class ASCH_PIN_SYMBOL_EDGE
|
2020-10-09 15:13:18 +00:00
|
|
|
|
{
|
|
|
|
|
UNKNOWN = -1,
|
|
|
|
|
NO_SYMBOL = 0,
|
2023-08-28 21:50:56 +00:00
|
|
|
|
NEGATED = 1,
|
|
|
|
|
RIGHTLEFT = 2,
|
|
|
|
|
CLOCK = 3,
|
|
|
|
|
LOW_INPUT = 4,
|
|
|
|
|
ANALOG_IN = 5,
|
|
|
|
|
NOLOGICCONNECT = 6,
|
|
|
|
|
// 7 is missing
|
|
|
|
|
POSTPONE_OUTPUT = 8,
|
2020-10-09 15:13:18 +00:00
|
|
|
|
OPEN_COLLECTOR = 9,
|
|
|
|
|
HIZ = 10,
|
|
|
|
|
HIGH_CURRENT = 11,
|
|
|
|
|
PULSE = 12,
|
|
|
|
|
SCHMITT = 13,
|
2023-08-28 21:50:56 +00:00
|
|
|
|
// 14-16 missing
|
|
|
|
|
LOW_OUTPUT = 17,
|
|
|
|
|
// 18-21 missing
|
2020-10-09 15:13:18 +00:00
|
|
|
|
OPEN_COLLECTOR_PULL_UP = 22,
|
|
|
|
|
OPEN_EMITTER = 23,
|
|
|
|
|
OPEN_EMITTER_PULL_UP = 24,
|
2023-08-28 21:50:56 +00:00
|
|
|
|
DIGITAL_IN = 25,
|
|
|
|
|
// 26-29 missing
|
2020-10-09 15:13:18 +00:00
|
|
|
|
SHIFT_LEFT = 30,
|
2023-08-28 21:50:56 +00:00
|
|
|
|
// 31 is missing
|
|
|
|
|
OPEN_OUTPUT = 32,
|
|
|
|
|
LEFTRIGHT = 33,
|
|
|
|
|
BIDI = 34
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
class ASCH_PIN_SYMBOL
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
enum PTYPE
|
|
|
|
|
{
|
|
|
|
|
UNKNOWN = -1,
|
|
|
|
|
NO_SYMBOL = 0,
|
|
|
|
|
NEGATED = 1,
|
|
|
|
|
RIGHTLEFT = 2,
|
|
|
|
|
CLOCK = 3,
|
|
|
|
|
LOW_INPUT = 4,
|
|
|
|
|
ANALOG_IN = 5,
|
|
|
|
|
NOLOGICCONNECT = 6,
|
|
|
|
|
// 7 is missing
|
|
|
|
|
POSTPONE_OUTPUT = 8,
|
|
|
|
|
OPEN_COLLECTOR = 9,
|
|
|
|
|
HIZ = 10,
|
|
|
|
|
HIGH_CURRENT = 11,
|
|
|
|
|
PULSE = 12,
|
|
|
|
|
SCHMITT = 13,
|
|
|
|
|
// 14-16 missing
|
|
|
|
|
LOW_OUTPUT = 17,
|
|
|
|
|
// 18-21 missing
|
|
|
|
|
OPEN_COLLECTOR_PULL_UP = 22,
|
|
|
|
|
OPEN_EMITTER = 23,
|
|
|
|
|
OPEN_EMITTER_PULL_UP = 24,
|
|
|
|
|
DIGITAL_IN = 25,
|
|
|
|
|
// 26-29 missing
|
|
|
|
|
SHIFT_LEFT = 30,
|
|
|
|
|
// 31 is missing
|
|
|
|
|
OPEN_OUTPUT = 32,
|
|
|
|
|
LEFTRIGHT = 33,
|
|
|
|
|
BIDI = 34
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
static PTYPE FromInt( int aInt )
|
|
|
|
|
{
|
|
|
|
|
switch( aInt )
|
|
|
|
|
{
|
|
|
|
|
case 0:
|
|
|
|
|
return NO_SYMBOL;
|
|
|
|
|
case 1:
|
|
|
|
|
return NEGATED;
|
|
|
|
|
case 2:
|
|
|
|
|
return RIGHTLEFT;
|
|
|
|
|
case 3:
|
|
|
|
|
return CLOCK;
|
|
|
|
|
case 4:
|
|
|
|
|
return LOW_INPUT;
|
|
|
|
|
case 5:
|
|
|
|
|
return ANALOG_IN;
|
|
|
|
|
case 6:
|
|
|
|
|
return NOLOGICCONNECT;
|
|
|
|
|
case 8:
|
|
|
|
|
return POSTPONE_OUTPUT;
|
|
|
|
|
case 9:
|
|
|
|
|
return OPEN_COLLECTOR;
|
|
|
|
|
case 10:
|
|
|
|
|
return HIZ;
|
|
|
|
|
case 11:
|
|
|
|
|
return HIGH_CURRENT;
|
|
|
|
|
case 12:
|
|
|
|
|
return PULSE;
|
|
|
|
|
case 13:
|
|
|
|
|
return SCHMITT;
|
|
|
|
|
case 17:
|
|
|
|
|
return LOW_OUTPUT;
|
|
|
|
|
case 22:
|
|
|
|
|
return OPEN_COLLECTOR_PULL_UP;
|
|
|
|
|
case 23:
|
|
|
|
|
return OPEN_EMITTER;
|
|
|
|
|
case 24:
|
|
|
|
|
return OPEN_EMITTER_PULL_UP;
|
|
|
|
|
case 25:
|
|
|
|
|
return DIGITAL_IN;
|
|
|
|
|
case 30:
|
|
|
|
|
return SHIFT_LEFT;
|
|
|
|
|
case 32:
|
|
|
|
|
return OPEN_OUTPUT;
|
|
|
|
|
case 33:
|
|
|
|
|
return LEFTRIGHT;
|
|
|
|
|
case 34:
|
|
|
|
|
return BIDI;
|
|
|
|
|
default:
|
|
|
|
|
return UNKNOWN;
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-10-09 14:23:07 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enum class ASCH_PIN_ELECTRICAL
|
|
|
|
|
{
|
|
|
|
|
UNKNOWN = -1,
|
|
|
|
|
|
|
|
|
|
INPUT = 0,
|
|
|
|
|
BIDI = 1,
|
|
|
|
|
OUTPUT = 2,
|
|
|
|
|
OPEN_COLLECTOR = 3,
|
|
|
|
|
PASSIVE = 4,
|
|
|
|
|
TRISTATE = 5,
|
|
|
|
|
OPEN_EMITTER = 6,
|
|
|
|
|
POWER = 7
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_PIN : ASCH_OWNER_INTERFACE
|
2020-08-23 19:01:08 +00:00
|
|
|
|
{
|
|
|
|
|
wxString name;
|
|
|
|
|
wxString text;
|
|
|
|
|
wxString designator;
|
|
|
|
|
|
2023-08-28 21:50:56 +00:00
|
|
|
|
ASCH_PIN_SYMBOL::PTYPE symbolOuter;
|
|
|
|
|
ASCH_PIN_SYMBOL::PTYPE symbolInner;
|
2020-10-09 15:13:18 +00:00
|
|
|
|
|
2023-08-28 21:50:56 +00:00
|
|
|
|
ASCH_PIN_SYMBOL::PTYPE symbolOuterEdge;
|
|
|
|
|
ASCH_PIN_SYMBOL::PTYPE symbolInnerEdge;
|
2020-10-09 14:23:07 +00:00
|
|
|
|
|
2020-10-17 11:52:47 +00:00
|
|
|
|
ASCH_PIN_ELECTRICAL electrical;
|
2020-10-14 19:38:12 +00:00
|
|
|
|
ASCH_RECORD_ORIENTATION orientation;
|
2020-10-09 14:23:07 +00:00
|
|
|
|
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
|
|
|
|
int pinlength;
|
2020-10-09 14:23:07 +00:00
|
|
|
|
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I kicadLocation; // location of pin in KiCad without rounding error
|
2020-10-10 14:43:33 +00:00
|
|
|
|
|
2020-10-09 14:23:07 +00:00
|
|
|
|
bool showPinName;
|
|
|
|
|
bool showDesignator;
|
2023-08-28 21:50:56 +00:00
|
|
|
|
bool hidden;
|
2023-09-04 21:46:25 +00:00
|
|
|
|
bool locked;
|
2023-08-28 21:50:56 +00:00
|
|
|
|
|
|
|
|
|
bool isKiCadLibPin; // Tracking variable to handle LibEdit nuance
|
2020-08-23 19:01:08 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_PIN( const std::map<wxString, wxString>& aProps );
|
2020-08-23 19:01:08 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2020-10-17 11:52:47 +00:00
|
|
|
|
enum class ASCH_LABEL_JUSTIFICATION
|
|
|
|
|
{
|
|
|
|
|
UNKNOWN = -1,
|
|
|
|
|
|
|
|
|
|
BOTTOM_LEFT = 0,
|
|
|
|
|
BOTTOM_CENTER = 1,
|
|
|
|
|
BOTTOM_RIGHT = 2,
|
|
|
|
|
CENTER_LEFT = 3,
|
|
|
|
|
CENTER_CENTER = 4,
|
|
|
|
|
CENTER_RIGHT = 5,
|
|
|
|
|
TOP_LEFT = 6,
|
|
|
|
|
TOP_CENTER = 7,
|
|
|
|
|
TOP_RIGHT = 8
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2021-07-06 19:26:22 +00:00
|
|
|
|
enum class ASCH_TEXT_FRAME_ALIGNMENT
|
2021-07-05 22:57:58 +00:00
|
|
|
|
{
|
|
|
|
|
LEFT = 1,
|
|
|
|
|
CENTER = 2,
|
|
|
|
|
RIGHT = 3
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_LABEL : ASCH_OWNER_INTERFACE
|
2020-10-17 11:52:47 +00:00
|
|
|
|
{
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
2020-10-17 11:52:47 +00:00
|
|
|
|
|
2020-10-17 12:33:30 +00:00
|
|
|
|
wxString text;
|
2023-08-28 21:50:56 +00:00
|
|
|
|
int textColor;
|
2020-10-17 12:33:30 +00:00
|
|
|
|
|
|
|
|
|
int fontId;
|
|
|
|
|
bool isMirrored;
|
|
|
|
|
|
2020-10-17 11:52:47 +00:00
|
|
|
|
ASCH_LABEL_JUSTIFICATION justification;
|
2021-07-24 20:28:24 +00:00
|
|
|
|
ASCH_RECORD_ORIENTATION orientation;
|
2020-10-17 11:52:47 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_LABEL( const std::map<wxString, wxString>& aProps );
|
2020-10-17 11:52:47 +00:00
|
|
|
|
};
|
|
|
|
|
|
2023-08-28 21:50:56 +00:00
|
|
|
|
struct ASCH_HYPERLINK : ASCH_LABEL
|
|
|
|
|
{
|
|
|
|
|
wxString url;
|
|
|
|
|
|
|
|
|
|
explicit ASCH_HYPERLINK( const std::map<wxString, wxString>& aProps );
|
|
|
|
|
};
|
|
|
|
|
|
2020-10-17 11:52:47 +00:00
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_TEXT_FRAME : ASCH_OWNER_INTERFACE
|
2021-07-05 22:57:58 +00:00
|
|
|
|
{
|
2022-08-16 14:45:11 +00:00
|
|
|
|
VECTOR2I Location;
|
2023-09-06 22:40:15 +00:00
|
|
|
|
VECTOR2I Size;
|
2022-10-31 14:03:35 +00:00
|
|
|
|
|
2022-08-16 14:45:11 +00:00
|
|
|
|
// have both coordinates, for convenience
|
|
|
|
|
VECTOR2I BottomLeft;
|
|
|
|
|
VECTOR2I TopRight;
|
2021-07-05 22:57:58 +00:00
|
|
|
|
|
2022-08-16 14:45:11 +00:00
|
|
|
|
wxString Text;
|
2021-07-05 22:57:58 +00:00
|
|
|
|
|
2022-08-16 14:45:11 +00:00
|
|
|
|
bool IsWordWrapped; // to do when kicad supports this
|
|
|
|
|
bool ShowBorder;
|
|
|
|
|
|
|
|
|
|
int FontID;
|
|
|
|
|
int TextMargin; // to do when kicad supports this
|
|
|
|
|
int AreaColor;
|
2023-08-28 21:50:56 +00:00
|
|
|
|
int TextColor;
|
2022-08-16 14:45:11 +00:00
|
|
|
|
int BorderColor;
|
2023-08-28 21:50:56 +00:00
|
|
|
|
int BorderWidth;
|
|
|
|
|
bool isSolid;
|
2021-07-05 22:57:58 +00:00
|
|
|
|
|
2022-08-16 14:45:11 +00:00
|
|
|
|
ASCH_TEXT_FRAME_ALIGNMENT Alignment;
|
2021-07-06 19:26:22 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_TEXT_FRAME( const std::map<wxString, wxString>& aProps );
|
2021-07-06 19:26:22 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct ASCH_NOTE : ASCH_TEXT_FRAME
|
|
|
|
|
{
|
|
|
|
|
wxString author;
|
2021-07-05 22:57:58 +00:00
|
|
|
|
|
|
|
|
|
explicit ASCH_NOTE( const std::map<wxString, wxString>& aProperties );
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_BEZIER : ASCH_OWNER_INTERFACE, ASCH_BORDER_INTERFACE
|
2020-10-10 14:56:19 +00:00
|
|
|
|
{
|
2022-01-01 06:04:08 +00:00
|
|
|
|
std::vector<VECTOR2I> points;
|
2020-10-10 14:56:19 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_BEZIER( const std::map<wxString, wxString>& aProps );
|
2020-10-10 14:56:19 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2020-10-14 19:04:53 +00:00
|
|
|
|
enum class ASCH_POLYLINE_LINESTYLE
|
|
|
|
|
{
|
|
|
|
|
SOLID = 0,
|
|
|
|
|
DASHED = 1,
|
|
|
|
|
DOTTED = 2,
|
|
|
|
|
DASH_DOTTED = 3
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2022-08-09 12:15:42 +00:00
|
|
|
|
enum class ASCH_SHEET_ENTRY_SIDE
|
|
|
|
|
{
|
|
|
|
|
LEFT = 0,
|
|
|
|
|
RIGHT = 1,
|
|
|
|
|
TOP = 2,
|
|
|
|
|
BOTTOM = 3
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_POLYLINE : ASCH_OWNER_INTERFACE, ASCH_BORDER_INTERFACE
|
2020-10-10 14:56:19 +00:00
|
|
|
|
{
|
2022-09-03 22:02:17 +00:00
|
|
|
|
std::vector<VECTOR2I> Points;
|
2020-10-10 14:56:19 +00:00
|
|
|
|
|
2022-09-03 22:02:17 +00:00
|
|
|
|
ASCH_POLYLINE_LINESTYLE LineStyle;
|
2020-10-14 19:04:53 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_POLYLINE( const std::map<wxString, wxString>& aProps );
|
2020-10-10 14:56:19 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_POLYGON : ASCH_OWNER_INTERFACE, ASCH_FILL_INTERFACE, ASCH_BORDER_INTERFACE
|
2020-10-10 14:22:53 +00:00
|
|
|
|
{
|
2022-01-01 06:04:08 +00:00
|
|
|
|
std::vector<VECTOR2I> points;
|
2020-10-10 14:22:53 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_POLYGON( const std::map<wxString, wxString>& aProps );
|
2020-10-10 14:22:53 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_ROUND_RECTANGLE : ASCH_OWNER_INTERFACE, ASCH_FILL_INTERFACE, ASCH_BORDER_INTERFACE
|
2020-10-14 19:15:09 +00:00
|
|
|
|
{
|
2022-09-03 22:38:41 +00:00
|
|
|
|
VECTOR2I BottomLeft;
|
|
|
|
|
VECTOR2I TopRight;
|
2020-10-14 19:15:09 +00:00
|
|
|
|
|
2023-09-06 22:40:15 +00:00
|
|
|
|
VECTOR2I CornerRadius;
|
2020-10-14 19:15:09 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_ROUND_RECTANGLE( const std::map<wxString, wxString>& aProps );
|
2020-10-14 19:15:09 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_ARC : ASCH_OWNER_INTERFACE, ASCH_BORDER_INTERFACE
|
2020-10-10 16:41:19 +00:00
|
|
|
|
{
|
2022-11-24 18:42:41 +00:00
|
|
|
|
bool m_IsElliptical;
|
|
|
|
|
VECTOR2I m_Center;
|
|
|
|
|
int m_Radius;
|
|
|
|
|
int m_SecondaryRadius;
|
|
|
|
|
double m_StartAngle;
|
|
|
|
|
double m_EndAngle;
|
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_ARC( const std::map<wxString, wxString>& aProps );
|
2020-10-10 16:41:19 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_ELLIPSE : ASCH_OWNER_INTERFACE, ASCH_FILL_INTERFACE, ASCH_BORDER_INTERFACE
|
2022-09-04 00:58:03 +00:00
|
|
|
|
{
|
|
|
|
|
VECTOR2I Center;
|
|
|
|
|
int Radius;
|
|
|
|
|
double SecondaryRadius;
|
|
|
|
|
|
|
|
|
|
bool IsNotAccesible;
|
|
|
|
|
|
|
|
|
|
explicit ASCH_ELLIPSE( const std::map<wxString, wxString>& aProps );
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_LINE : ASCH_OWNER_INTERFACE, ASCH_BORDER_INTERFACE
|
2020-10-10 16:41:19 +00:00
|
|
|
|
{
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I point1;
|
|
|
|
|
VECTOR2I point2;
|
2020-10-10 16:41:19 +00:00
|
|
|
|
|
2023-09-11 14:52:13 +00:00
|
|
|
|
ASCH_POLYLINE_LINESTYLE LineStyle;
|
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_LINE( const std::map<wxString, wxString>& aProps );
|
2020-10-10 16:41:19 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_SIGNAL_HARNESS : ASCH_OWNER_INTERFACE
|
2022-08-09 11:39:13 +00:00
|
|
|
|
{
|
2022-08-10 08:00:41 +00:00
|
|
|
|
VECTOR2I Point1;
|
|
|
|
|
VECTOR2I Point2;
|
2022-08-09 11:39:13 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
std::vector<VECTOR2I> Points;
|
2022-08-09 11:39:13 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
int Color;
|
|
|
|
|
int LineWidth;
|
2022-08-09 11:39:13 +00:00
|
|
|
|
|
|
|
|
|
explicit ASCH_SIGNAL_HARNESS( const std::map<wxString, wxString>& aProps );
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_HARNESS_CONNECTOR : ASCH_OWNER_INTERFACE
|
2022-08-09 12:00:45 +00:00
|
|
|
|
{
|
2022-08-10 08:00:41 +00:00
|
|
|
|
VECTOR2I Location;
|
2023-02-19 03:40:07 +00:00
|
|
|
|
VECTOR2I Size;
|
2022-08-09 12:00:45 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
int AreaColor;
|
|
|
|
|
int Color;
|
|
|
|
|
int LineWidth;
|
2022-08-09 12:00:45 +00:00
|
|
|
|
//int locationX; // keep just in case
|
|
|
|
|
//int locationY;
|
2022-08-10 08:00:41 +00:00
|
|
|
|
int LocationPrimaryConnectionPosition;
|
2022-08-09 12:00:45 +00:00
|
|
|
|
//int xSize; // keep just in case
|
|
|
|
|
//int ySize;
|
|
|
|
|
|
|
|
|
|
explicit ASCH_HARNESS_CONNECTOR( const std::map<wxString, wxString>& aProps );
|
|
|
|
|
};
|
|
|
|
|
|
2022-08-09 11:39:13 +00:00
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_HARNESS_ENTRY : ASCH_OWNER_INTERFACE
|
2022-08-09 12:15:42 +00:00
|
|
|
|
{
|
2022-08-10 08:00:41 +00:00
|
|
|
|
int AreaColor;
|
|
|
|
|
int Color;
|
|
|
|
|
int DistanceFromTop;
|
|
|
|
|
int TextColor;
|
|
|
|
|
int TextFontID;
|
|
|
|
|
int TextStyle;
|
2022-08-09 12:15:42 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
bool OwnerIndexAdditionalList; // what is that?
|
2022-08-09 12:15:42 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
wxString Name;
|
|
|
|
|
ASCH_SHEET_ENTRY_SIDE Side;
|
2022-08-09 12:15:42 +00:00
|
|
|
|
|
|
|
|
|
explicit ASCH_HARNESS_ENTRY( const std::map<wxString, wxString>& aProps );
|
2022-08-09 12:32:41 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_HARNESS_TYPE : ASCH_OWNER_INTERFACE
|
2022-08-09 12:32:41 +00:00
|
|
|
|
{
|
2022-08-10 08:00:41 +00:00
|
|
|
|
int Color;
|
|
|
|
|
int FontID;
|
2022-08-09 12:32:41 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
bool IsHidden;
|
|
|
|
|
bool OwnerIndexAdditionalList; // what is that?
|
2022-10-31 14:03:35 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
VECTOR2I Location;
|
2022-10-31 14:03:35 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
wxString Text;
|
2022-08-09 12:32:41 +00:00
|
|
|
|
|
|
|
|
|
explicit ASCH_HARNESS_TYPE( const std::map<wxString, wxString>& aProps );
|
2022-08-09 12:15:42 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_RECTANGLE : ASCH_OWNER_INTERFACE, ASCH_FILL_INTERFACE, ASCH_BORDER_INTERFACE
|
2020-08-23 19:01:08 +00:00
|
|
|
|
{
|
2022-09-03 22:38:41 +00:00
|
|
|
|
VECTOR2I BottomLeft;
|
|
|
|
|
VECTOR2I TopRight;
|
2020-08-23 19:01:08 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_RECTANGLE( const std::map<wxString, wxString>& aProps );
|
2020-08-23 19:01:08 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_SHEET_SYMBOL : ASCH_OWNER_INTERFACE
|
2020-10-27 14:51:19 +00:00
|
|
|
|
{
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
2023-02-19 03:40:07 +00:00
|
|
|
|
VECTOR2I size;
|
2020-10-27 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
bool isSolid;
|
|
|
|
|
|
|
|
|
|
int color;
|
|
|
|
|
int areacolor;
|
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_SHEET_SYMBOL( const std::map<wxString, wxString>& aProps );
|
2020-10-27 14:51:19 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enum class ASCH_PORT_IOTYPE
|
|
|
|
|
{
|
|
|
|
|
UNSPECIFIED = 0,
|
|
|
|
|
OUTPUT = 1,
|
|
|
|
|
INPUT = 2,
|
|
|
|
|
BIDI = 3,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enum class ASCH_PORT_STYLE
|
|
|
|
|
{
|
|
|
|
|
NONE_HORIZONTAL = 0,
|
|
|
|
|
LEFT = 1,
|
|
|
|
|
RIGHT = 2,
|
|
|
|
|
LEFT_RIGHT = 3,
|
|
|
|
|
NONE_VERTICAL = 4,
|
|
|
|
|
TOP = 5,
|
|
|
|
|
BOTTOM = 6,
|
|
|
|
|
TOP_BOTTOM = 7
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_SHEET_ENTRY : ASCH_OWNER_INTERFACE
|
2020-10-27 14:51:19 +00:00
|
|
|
|
{
|
|
|
|
|
int distanceFromTop;
|
|
|
|
|
|
|
|
|
|
ASCH_SHEET_ENTRY_SIDE side;
|
|
|
|
|
ASCH_PORT_IOTYPE iotype;
|
|
|
|
|
ASCH_PORT_STYLE style;
|
|
|
|
|
|
|
|
|
|
wxString name;
|
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_SHEET_ENTRY( const std::map<wxString, wxString>& aProps );
|
2020-10-27 14:51:19 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2020-10-24 16:40:16 +00:00
|
|
|
|
enum class ASCH_POWER_PORT_STYLE
|
|
|
|
|
{
|
|
|
|
|
UNKNOWN = -1,
|
|
|
|
|
|
|
|
|
|
CIRCLE = 0,
|
|
|
|
|
ARROW = 1,
|
|
|
|
|
BAR = 2,
|
|
|
|
|
WAVE = 3,
|
|
|
|
|
POWER_GROUND = 4,
|
|
|
|
|
SIGNAL_GROUND = 5,
|
|
|
|
|
EARTH = 6,
|
|
|
|
|
GOST_ARROW = 7,
|
|
|
|
|
GOST_POWER_GROUND = 8,
|
|
|
|
|
GOST_EARTH = 9,
|
|
|
|
|
GOST_BAR = 10
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_POWER_PORT : ASCH_OWNER_INTERFACE
|
2020-10-24 16:40:16 +00:00
|
|
|
|
{
|
|
|
|
|
wxString text;
|
|
|
|
|
bool showNetName;
|
|
|
|
|
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
2020-10-24 16:40:16 +00:00
|
|
|
|
ASCH_RECORD_ORIENTATION orientation;
|
|
|
|
|
ASCH_POWER_PORT_STYLE style;
|
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_POWER_PORT( const std::map<wxString, wxString>& aProps );
|
2020-10-24 16:40:16 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_PORT : ASCH_OWNER_INTERFACE
|
2020-10-26 15:54:49 +00:00
|
|
|
|
{
|
2022-08-10 08:00:41 +00:00
|
|
|
|
wxString Name;
|
|
|
|
|
wxString HarnessType;
|
2020-10-26 15:54:49 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
VECTOR2I Location;
|
|
|
|
|
int Width;
|
|
|
|
|
int Height;
|
|
|
|
|
int AreaColor;
|
|
|
|
|
int Color;
|
|
|
|
|
int TextColor;
|
|
|
|
|
int FontID;
|
2022-08-09 19:21:36 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
ASCH_TEXT_FRAME_ALIGNMENT Alignment;
|
2020-10-26 15:54:49 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
ASCH_PORT_IOTYPE IOtype;
|
|
|
|
|
ASCH_PORT_STYLE Style;
|
2020-10-26 15:54:49 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_PORT( const std::map<wxString, wxString>& aProps );
|
2020-10-26 15:54:49 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2020-10-14 19:23:36 +00:00
|
|
|
|
struct ASCH_NO_ERC
|
|
|
|
|
{
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
2020-10-14 19:23:36 +00:00
|
|
|
|
|
|
|
|
|
bool isActive;
|
2022-11-22 18:31:57 +00:00
|
|
|
|
bool suppressAll;
|
2020-10-14 19:23:36 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_NO_ERC( const std::map<wxString, wxString>& aProps );
|
2020-10-14 19:23:36 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_NET_LABEL : ASCH_OWNER_INTERFACE
|
2020-08-23 19:01:08 +00:00
|
|
|
|
{
|
|
|
|
|
wxString text;
|
2020-10-14 19:38:12 +00:00
|
|
|
|
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
2020-08-23 19:01:08 +00:00
|
|
|
|
|
2023-07-04 07:27:43 +00:00
|
|
|
|
ASCH_LABEL_JUSTIFICATION justification;
|
2020-10-14 19:38:12 +00:00
|
|
|
|
ASCH_RECORD_ORIENTATION orientation;
|
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_NET_LABEL( const std::map<wxString, wxString>& aProps );
|
2020-08-23 19:01:08 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_BUS : ASCH_OWNER_INTERFACE
|
2020-08-23 19:01:08 +00:00
|
|
|
|
{
|
2020-10-10 14:22:53 +00:00
|
|
|
|
int lineWidth;
|
2020-08-23 19:01:08 +00:00
|
|
|
|
|
2022-01-01 06:04:08 +00:00
|
|
|
|
std::vector<VECTOR2I> points;
|
2020-08-23 19:01:08 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_BUS( const std::map<wxString, wxString>& aProps );
|
2020-08-23 19:01:08 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_WIRE : ASCH_OWNER_INTERFACE
|
2020-08-23 19:01:08 +00:00
|
|
|
|
{
|
2020-10-10 14:22:53 +00:00
|
|
|
|
int lineWidth;
|
2020-08-23 19:01:08 +00:00
|
|
|
|
|
2022-01-01 06:04:08 +00:00
|
|
|
|
std::vector<VECTOR2I> points;
|
2020-08-23 19:01:08 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_WIRE( const std::map<wxString, wxString>& aProps );
|
2020-08-23 19:01:08 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_JUNCTION : ASCH_OWNER_INTERFACE
|
2020-10-09 15:21:27 +00:00
|
|
|
|
{
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
2020-10-09 15:21:27 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_JUNCTION( const std::map<wxString, wxString>& aProps );
|
2020-10-09 15:21:27 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_IMAGE : ASCH_OWNER_INTERFACE, ASCH_BORDER_INTERFACE
|
2021-04-10 19:45:36 +00:00
|
|
|
|
{
|
|
|
|
|
wxString filename;
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
|
|
|
|
VECTOR2I corner;
|
2021-04-10 19:45:36 +00:00
|
|
|
|
|
|
|
|
|
bool embedimage;
|
|
|
|
|
bool keepaspect;
|
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_IMAGE( const std::map<wxString, wxString>& aProps );
|
2021-04-10 19:45:36 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_SHEET_FONT : ASCH_OWNER_INTERFACE
|
2020-10-17 12:33:30 +00:00
|
|
|
|
{
|
2022-08-10 08:00:41 +00:00
|
|
|
|
wxString FontName;
|
2020-10-17 12:33:30 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
int Size;
|
|
|
|
|
int Rotation;
|
|
|
|
|
int AreaColor;
|
2020-10-17 12:33:30 +00:00
|
|
|
|
|
2022-08-10 08:00:41 +00:00
|
|
|
|
bool Italic;
|
|
|
|
|
bool Bold;
|
|
|
|
|
bool Underline;
|
2020-10-17 12:33:30 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_SHEET_FONT( const std::map<wxString, wxString>& aProps, int aId );
|
2020-10-17 12:33:30 +00:00
|
|
|
|
};
|
|
|
|
|
|
2020-10-17 13:35:22 +00:00
|
|
|
|
|
|
|
|
|
enum class ASCH_SHEET_SIZE
|
|
|
|
|
{
|
|
|
|
|
UNKNOWN = -1, // use A4
|
|
|
|
|
|
|
|
|
|
A4 = 0, // 1150 × 760
|
|
|
|
|
A3 = 1, // 1550 × 1110
|
|
|
|
|
A2 = 2, // 2230 × 1570
|
|
|
|
|
A1 = 3, // 3150 × 2230
|
|
|
|
|
A0 = 4, // 4460 × 3150
|
|
|
|
|
A = 5, // 950 × 750
|
|
|
|
|
B = 6, // 1500 × 950
|
|
|
|
|
C = 7, // 2000 × 1500
|
|
|
|
|
D = 8, // 3200 × 2000
|
|
|
|
|
E = 9, // 4200 × 3200
|
|
|
|
|
LETTER = 10, // 1100 × 850
|
|
|
|
|
LEGAL = 11, // 1400 × 850
|
|
|
|
|
TABLOID = 12, // 1700 × 1100
|
|
|
|
|
ORCAD_A = 13, // 990 × 790
|
|
|
|
|
ORCAD_B = 14, // 1540 × 990
|
|
|
|
|
ORCAD_C = 15, // 2060 × 1560
|
|
|
|
|
ORCAD_D = 16, // 3260 × 2060
|
|
|
|
|
ORCAD_E = 17 // 4280 × 3280
|
|
|
|
|
};
|
|
|
|
|
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I ASchSheetGetSize( ASCH_SHEET_SIZE aSheetSize );
|
2020-10-17 13:35:22 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
enum class ASCH_SHEET_WORKSPACEORIENTATION
|
|
|
|
|
{
|
|
|
|
|
LANDSCAPE = 0,
|
|
|
|
|
PORTRAIT = 1
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_SHEET : ASCH_OWNER_INTERFACE
|
2020-10-17 12:33:30 +00:00
|
|
|
|
{
|
|
|
|
|
std::vector<ASCH_SHEET_FONT> fonts;
|
|
|
|
|
|
2023-09-11 07:02:59 +00:00
|
|
|
|
bool useCustomSheet;
|
|
|
|
|
VECTOR2I customSize;
|
|
|
|
|
|
2020-10-17 13:35:22 +00:00
|
|
|
|
ASCH_SHEET_SIZE sheetSize;
|
|
|
|
|
ASCH_SHEET_WORKSPACEORIENTATION sheetOrientation;
|
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_SHEET( const std::map<wxString, wxString>& aProps );
|
2020-10-17 12:33:30 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_SHEET_NAME : ASCH_OWNER_INTERFACE
|
2020-10-27 14:51:19 +00:00
|
|
|
|
{
|
|
|
|
|
wxString text;
|
|
|
|
|
|
|
|
|
|
ASCH_RECORD_ORIENTATION orientation;
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
2020-10-27 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
bool isHidden;
|
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_SHEET_NAME( const std::map<wxString, wxString>& aProps );
|
2020-10-27 14:51:19 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_FILE_NAME : ASCH_OWNER_INTERFACE
|
2020-10-27 14:51:19 +00:00
|
|
|
|
{
|
|
|
|
|
wxString text;
|
|
|
|
|
|
|
|
|
|
ASCH_RECORD_ORIENTATION orientation;
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
2020-10-27 14:51:19 +00:00
|
|
|
|
|
|
|
|
|
bool isHidden;
|
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_FILE_NAME( const std::map<wxString, wxString>& aProps );
|
2020-10-27 14:51:19 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_DESIGNATOR : ASCH_OWNER_INTERFACE
|
2020-08-23 19:01:08 +00:00
|
|
|
|
{
|
|
|
|
|
wxString name;
|
|
|
|
|
wxString text;
|
2023-09-06 17:10:54 +00:00
|
|
|
|
int fontId;
|
2020-08-23 19:01:08 +00:00
|
|
|
|
|
2021-07-24 20:28:24 +00:00
|
|
|
|
ASCH_RECORD_ORIENTATION orientation;
|
|
|
|
|
ASCH_LABEL_JUSTIFICATION justification;
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
2020-08-23 19:01:08 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_DESIGNATOR( const std::map<wxString, wxString>& aProps );
|
2020-08-23 19:01:08 +00:00
|
|
|
|
};
|
|
|
|
|
|
2020-10-17 14:03:46 +00:00
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_IMPLEMENTATION : ASCH_OWNER_INTERFACE
|
2021-07-06 13:39:56 +00:00
|
|
|
|
{
|
|
|
|
|
wxString name;
|
|
|
|
|
wxString type;
|
|
|
|
|
wxString libname;
|
2023-09-05 21:01:27 +00:00
|
|
|
|
wxString description;
|
2021-07-06 13:39:56 +00:00
|
|
|
|
bool isCurrent;
|
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_IMPLEMENTATION( const std::map<wxString, wxString>& aProps );
|
2021-07-06 13:39:56 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_IMPLEMENTATION_LIST : ASCH_OWNER_INTERFACE
|
2021-07-06 13:39:56 +00:00
|
|
|
|
{
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_IMPLEMENTATION_LIST( const std::map<wxString, wxString>& aProps );
|
2021-07-06 13:39:56 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_BUS_ENTRY : ASCH_OWNER_INTERFACE
|
2020-10-17 14:03:46 +00:00
|
|
|
|
{
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
|
|
|
|
VECTOR2I corner;
|
2020-10-17 14:03:46 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_BUS_ENTRY( const std::map<wxString, wxString>& aProps );
|
2020-10-17 14:03:46 +00:00
|
|
|
|
};
|
|
|
|
|
|
2020-10-26 17:26:49 +00:00
|
|
|
|
|
2023-09-04 21:46:25 +00:00
|
|
|
|
struct ASCH_PARAMETER : ASCH_OWNER_INTERFACE
|
2020-10-26 17:26:49 +00:00
|
|
|
|
{
|
2022-01-01 06:04:08 +00:00
|
|
|
|
VECTOR2I location;
|
2021-07-24 20:28:24 +00:00
|
|
|
|
ASCH_LABEL_JUSTIFICATION justification;
|
|
|
|
|
ASCH_RECORD_ORIENTATION orientation;
|
2020-10-26 17:26:49 +00:00
|
|
|
|
|
|
|
|
|
wxString name;
|
|
|
|
|
wxString text;
|
|
|
|
|
|
|
|
|
|
bool isHidden;
|
|
|
|
|
bool isMirrored;
|
|
|
|
|
bool isShowName;
|
2023-09-06 17:10:54 +00:00
|
|
|
|
int fontId;
|
2020-10-26 17:26:49 +00:00
|
|
|
|
|
2021-07-23 20:46:04 +00:00
|
|
|
|
explicit ASCH_PARAMETER( const std::map<wxString, wxString>& aProps );
|
2020-10-26 17:26:49 +00:00
|
|
|
|
};
|
|
|
|
|
|
2021-06-10 14:10:55 +00:00
|
|
|
|
#endif //ALTIUM_PARSER_SCH_H
|