KiCad PCB EDA Suite
Loading...
Searching...
No Matches
easypc_sch_items.cpp File Reference
#include <sch_io/easypc/easypc_sch_items.h>
#include <cmath>
#include <map>
#include <set>
#include <io/easypc/easypc_classes_connectivity.h>
#include <io/easypc/easypc_classes_geometry.h>
#include <io/easypc/easypc_classes_geometry_pad.h>
#include <io/easypc/easypc_classes_library.h>
#include <io/easypc/easypc_classes_styles.h>
#include <io/easypc/easypc_text_metrics.h>
#include <io/easypc/easypc_units.h>
#include <base_units.h>
#include <eda_text.h>
#include <font/font.h>
#include <ki_exception.h>
#include <lib_id.h>
#include <lib_symbol.h>
#include <sch_field.h>
#include <sch_pin.h>
#include <sch_shape.h>
#include <sch_text.h>
#include <string_utils.h>

Go to the source code of this file.

Namespaces

namespace  EASYPC
 

Functions

std::vector< const SOURCE_SEGMENT * > EASYPC::ShapeVertices (const SOURCE_SHAPE &aShape)
 A shape's vertices in drawing order, following next references for formats 1 and 2.
 
static VECTOR2D EASYPC::rotateAbout (const VECTOR2D &aPt, const VECTOR2D &aCentre, double aRadians)
 
static VECTOR2D EASYPC::arcCentre (const VECTOR2D &aStart, const VECTOR2D &aEnd, int32_t aAngle, bool aAnticlockwise)
 Centre of an arc span from its ends and swept angle.
 
static VECTOR2I EASYPC::mapD (const SCH_FRAME &aFrame, const VECTOR2D &aPt)
 
static std::vector< VECTOR2D > EASYPC::arcAsPolyline (const VECTOR2D &aStart, const VECTOR2D &aEnd, const VECTOR2D &aCentre, int32_t aAngle, bool aAnticlockwise)
 Points after aStart of an arc span at ARC_HIGH_DEF, at most 16384 of them.
 
std::vector< std::unique_ptr< SCH_SHAPE > > EASYPC::ConvertShape (const SOURCE_SHAPE &aShape, const SCH_FRAME &aFrame, SCH_LAYER_ID aLayer, int aStrokeWidth, bool aFilled, int aUnit=0)
 Outline of a shape: polylines, arcs and circles; a filled outline with arcs is one polygon.
 
std::vector< std::unique_ptr< SCH_SHAPE > > EASYPC::ConvertShapeItem (const SOURCE_SHAPE_ITEM &aItem, const SCH_FRAME &aFrame, SCH_LAYER_ID aLayer, int aUnit=0)
 A shape item with its own line style and fill.
 
VECTOR2I EASYPC::TextSize (const SOURCE_TEXT_STYLE &aStyle)
 KiCad text size for a source text style: its height as the width, its capital height as the height.
 
bool EASYPC::DrawsUpright (const SOURCE_TEXT_POSITION &aPos, bool aKeepUpright)
 True when a design that keeps text upright turns aPos about the far end of its first line.
 
void EASYPC::ApplyTextPosition (EDA_TEXT &aText, const SOURCE_TEXT_POSITION &aPos, const SCH_FRAME &aFrame, bool aKeepUpright=false, const wxString &aMeasured=wxEmptyString)
 Place any KiCad text as the source position says: anchor, angle, mirror, justification and style.
 
std::unique_ptr< SCH_TEXT > EASYPC::ConvertFreeText (const SOURCE_FREE_TEXT &aText, const SCH_FRAME &aFrame, SCH_LAYER_ID aLayer, int aUnit, bool aKeepUpright)
 
GATE_TERMINAL EASYPC::ResolveTerminal (const SOURCE_PCB_COMPONENT *aPcb, int aGate, int aTerminal)
 Terminal aTerminal (0-based) of gate aGate; formats before 9000 map a bare pad number, -1 unmapped.
 
std::unique_ptr< LIB_SYMBOL > EASYPC::ConvertComponentSymbol (const SCH_COMPONENT_SOURCE &aSrc, const LIB_ID &aId)
 One unit per gate in symbol-local coordinates, zero-length passive pins at the pads, pin texts where the symbol stores them.
 
std::unique_ptr< LIB_SYMBOL > EASYPC::ConvertSymbol (const SOURCE_SYMBOL &aSymbol, const LIB_ID &aId)
 A .ssl symbol alone: one unit, pins numbered by pad number.