KiCad PCB EDA Suite
Loading...
Searching...
No Matches
pads_binary_parser.cpp File Reference
#include "pads_binary_parser.h"
#include <algorithm>
#include <array>
#include <cctype>
#include <chrono>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>
#include <limits>
#include <numbers>
#include <numeric>
#include <optional>
#include <set>
#include <unordered_set>
#include <fmt/format.h>
#include <geometry/eda_angle.h>
#include <io/pads/pads_binary_utils.h>
#include <ki_exception.h>
#include <wx/log.h>

Go to the source code of this file.

Classes

struct  PADS_IO::PADSTACK_LAYOUT
 

Namespaces

namespace  PADS_IO
 
namespace  PADS_IO::DRW_ITEM
 
namespace  PADS_IO::DRW_ITEM_V2022
 
namespace  PADS_IO::DRW_TAG
 

Macros

#define KITIME(call)
 

Enumerations

enum  PADS_IO::DRW_ITEM::FIELD : size_t {
  PADS_IO::DRW_ITEM::PIECE_START = 8 , PADS_IO::DRW_ITEM::VERTEX_START = 12 , PADS_IO::DRW_ITEM::ARC_START = 16 , PADS_IO::DRW_ITEM::CLASS_WORD = 24 ,
  PADS_IO::DRW_ITEM::PIECE_COUNT = 24 , PADS_IO::DRW_ITEM::SUBTYPE_WORD = 28 , PADS_IO::DRW_ITEM::NAME = 44 , PADS_IO::DRW_ITEM::TYPE_TAG = 84 ,
  PADS_IO::DRW_ITEM::ORIGIN_X = 88 , PADS_IO::DRW_ITEM::ORIGIN_Y = 92 , PADS_IO::DRW_ITEM::BBOX_MIN_X = 96 , PADS_IO::DRW_ITEM::BBOX_MIN_Y = 100 ,
  PADS_IO::DRW_ITEM::BBOX_MAX_X = 104 , PADS_IO::DRW_ITEM::BBOX_MAX_Y = 108
}
 
enum  PADS_IO::DRW_TAG::TAG : uint32_t { PADS_IO::DRW_TAG::COPPER_FILL = 0x00004900 , PADS_IO::DRW_TAG::COPPER_FILL_B = 0x0000FF00 , PADS_IO::DRW_TAG::LINE_ITEM = 0x00004D00 }
 

Functions

static const PADSTACK_LAYOUTPADS_IO::padstackLayout (uint16_t aVersion)
 
static void PADS_IO::logParsePhase (const char *aWhat, std::chrono::steady_clock::time_point aStart)
 Enabled by setting KICAD_PADS_PROFILE.
 
static void PADS_IO::logResolvedBase (int aSection, const char *aWhat, size_t aResolved, uint32_t aPhysical)
 Report a structurally derived physical section base for cross-checking the Kaitai grammar.
 
static bool PADS_IO::viaRecordValid (const BINARY_CURSOR &aCur, size_t aTypeByte)
 
static ARC PADS_IO::deriveArc (const SDB_RECORD &aArcRecord, const ARC_VERTEX &aStart, const ARC_VERTEX &aEnd, double aOriginX, double aOriginY)
 

Variables

static const std::map< uint8_t, std::string > PADS_IO::PAD_SHAPE_NAMES
 
constexpr size_t PADS_IO::DRW_ITEM::SIZE = 112
 
constexpr size_t PADS_IO::DRW_ITEM::ROTATION = 68
 
constexpr size_t PADS_IO::DRW_ITEM_V2022::SIZE = 100
 
constexpr size_t PADS_IO::DRW_ITEM_V2022::NAME = 32
 
constexpr size_t PADS_IO::DRW_ITEM_V2022::ORIGIN_X = 72
 
static constexpr int PADS_IO::DECAL_NAME_OFFSET = 44
 Rotation between the physical section cursor and the logical record base.
 
static constexpr int PADS_IO::VIA_TYPE = 0x0E
 

Macro Definition Documentation

◆ KITIME

#define KITIME ( call)
Value:
do \
{ \
auto _t0 = std::chrono::steady_clock::now(); \
call; \
logParsePhase( #call, _t0 ); \
} while( 0 )

Referenced by PADS_IO::BINARY_PARSER::Parse().