TraceMaker
C++ API of the engine
Loading...
Searching...
No Matches
board.hpp File Reference

The board model (design doc 02 §3): every object TraceMaker reads from a .kicad_pcb, in absolute integer-nanometre coordinates, with a link back to its s-expression node for lossless writing. More...

#include <climits>
#include <cstdint>
#include <string>
#include <unordered_map>
#include <utility>
#include <vector>
#include "core/units.hpp"
#include "geom/point.hpp"
#include "model/stackup.hpp"
#include "sexpr/sexpr.hpp"

Go to the source code of this file.

Classes

struct  tmk::model::LayerDef
struct  tmk::model::Net
struct  tmk::model::Pad
struct  tmk::model::Pad::CustomPrim
 Custom-pad primitives in the pad frame, each already grown by half its stroke width (KiCad draws them with a round pen and fills them): a polygon or rectangle, a polyline (line, arc) or a disc (circle; pts[0] is the centre). More...
struct  tmk::model::Graphic
struct  tmk::model::Text
struct  tmk::model::Footprint
struct  tmk::model::Track
struct  tmk::model::ArcTrack
struct  tmk::model::Via
struct  tmk::model::Zone
struct  tmk::model::Board
struct  tmk::model::Box
struct  tmk::model::Point

Namespaces

namespace  tmk
namespace  tmk::model

Typedefs

using tmk::model::NetId = std::int32_t
 0 = no net
using tmk::model::LayerMask = std::uint64_t
 bit i = copper layer i in stack order (0 = F.Cu, last = B.Cu)

Enumerations

enum class  tmk::model::PadType : std::uint8_t { tmk::model::Smd , tmk::model::ThruHole , tmk::model::NpThruHole , tmk::model::Connect }
enum class  tmk::model::PadShape : std::uint8_t {
  tmk::model::Circle , tmk::model::Rect , tmk::model::Oval , tmk::model::Trapezoid ,
  tmk::model::RoundRect , tmk::model::ChamferedRect , tmk::model::Custom
}
enum class  tmk::model::ZoneConnect : std::int8_t {
  tmk::model::Inherited = -1 , tmk::model::None = 0 , tmk::model::Thermal = 1 , tmk::model::Full = 2 ,
  tmk::model::ThtThermal = 3
}
 How a pad joins a zone of its net (KiCad's ZONE_CONNECTION; the file stores these numbers). More...
enum class  tmk::model::ViaType : std::uint8_t { tmk::model::Through , tmk::model::Blind , tmk::model::Micro }

Functions

constexpr LayerMask tmk::model::layer_bit (int copper_index)

Detailed Description

The board model (design doc 02 §3): every object TraceMaker reads from a .kicad_pcb, in absolute integer-nanometre coordinates, with a link back to its s-expression node for lossless writing.

Definition in file board.hpp.