KiCad PCB EDA Suite
Loading...
Searching...
No Matches
kicad_diff_types.h File Reference
#include <kicommon.h>
#include <kiid.h>
#include <math/box2.h>
#include <math/vector2d.h>
#include <gal/color4d.h>
#include <layer_ids.h>
#include <json_common.h>
#include <wx/string.h>
#include <cstdint>
#include <functional>
#include <map>
#include <optional>
#include <string>
#include <variant>
#include <vector>

Go to the source code of this file.

Classes

class  KICAD_DIFF::DIFF_VALUE
 A typed sum value used to carry the before/after of any single property. More...
 
struct  KICAD_DIFF::PROPERTY_DELTA
 Single (name, before, after) triple for one mutated property on an item. More...
 
struct  KICAD_DIFF::ITEM_CHANGE
 One change record on a single item. More...
 
struct  KICAD_DIFF::DOCUMENT_DIFF
 The full set of changes between two parsed documents of one type. More...
 
struct  KICAD_DIFF::PROJECT_DIFF
 Aggregated project-level diff covering many documents. More...
 

Namespaces

namespace  KICAD_DIFF
 

Enumerations

enum class  KICAD_DIFF::DISPLAY_HINT { KICAD_DIFF::NONE , KICAD_DIFF::DISTANCE , KICAD_DIFF::COORD , KICAD_DIFF::ANGLE }
 How a numeric DIFF_VALUE should be interpreted when rendered for humans. More...
 
enum class  KICAD_DIFF::CHANGE_KIND {
  KICAD_DIFF::ADDED , KICAD_DIFF::REMOVED , KICAD_DIFF::MODIFIED , KICAD_DIFF::COLLISION ,
  KICAD_DIFF::DUPLICATE_UUID
}
 Coarse classification of a single item-level change between two documents. More...
 

Functions

const KIIDKICAD_DIFF::SchScreenSentinelKiid ()
 Sentinel KIID appended to a sheet's KIID_PATH to mark a per-sheet SCH_SCREEN resolution (page format / orientation override on that sheet's screen).
 
KIID_PATH KICAD_DIFF::LibraryItemKiidPath (const wxString &aName)
 Build a deterministic synthetic KIID_PATH from a library item name (symbol name or footprint name).
 
template<typename SeverityMap>
std::string KICAD_DIFF::SummarizeSeverities (const SeverityMap &aMap)
 Format a severity-override map (DRC or ERC, keyed by error code, value is a SEVERITY enum) as a short summary with a content hash, so two maps with the same size but different contents render as distinct before/after strings.
 
const char * KICAD_DIFF::ChangeKindToString (CHANGE_KIND aKind)
 
CHANGE_KIND KICAD_DIFF::ChangeKindFromString (const std::string &aKind)
 
std::string KICAD_DIFF::FormatDiffAsText (const DOCUMENT_DIFF &aDiff, const wxString &aLabelA, const wxString &aLabelB, EDA_UNITS aUnits, const EDA_IU_SCALE &aScale)
 Render a DOCUMENT_DIFF as the human-readable text report shared by the diff jobs and CLI: a diff <labelA> <labelB> header, the change count, then one indented line per change (recursing into footprint/sheet children) with property deltas printed as name: before -> after.
 
bool KICAD_DIFF::WriteDiffOutput (const std::string &aContent, const wxString &aOutputPath)
 Write diff/merge text output to aOutputPath, or to stdout when the path is empty.
 
std::map< KIID_PATH, const ITEM_CHANGE * > KICAD_DIFF::IndexChangesByKiid (const DOCUMENT_DIFF &aDiff)
 Flatten a DOCUMENT_DIFF's ITEM_CHANGE tree into a KIID_PATH -> ITEM_CHANGE* map, recursing into child changes.
 
std::map< wxString, const PROPERTY_DELTA * > KICAD_DIFF::IndexPropertiesByName (const ITEM_CHANGE &aChange)
 Index property deltas inside one ITEM_CHANGE by property name.
 
bool KICAD_DIFF::ChangeInvalidatesZone (const ITEM_CHANGE &aChange)
 Whether a change to an item of the given type invalidates any overlapping filled zones.
 
bool KICAD_DIFF::ChangeRequiresConnectivityRebuild (const ITEM_CHANGE &aChange)
 Whether a change to an item of the given type requires the connectivity graph to be rebuilt.
 

Variables

const wxString KICAD_DIFF::DOC_PROP_PAGE_FORMAT = wxS( "Page Format" )
 Property-name keys for the synthetic document-level ITEM_CHANGE (empty KIID_PATH).
 
const wxString KICAD_DIFF::DOC_PROP_PAGE_ORIENTATION = wxS( "Page Orientation" )
 
const wxString KICAD_DIFF::DOC_PROP_BOARD_THICKNESS = wxS( "Board Thickness" )
 
const wxString KICAD_DIFF::DOC_PROP_LAYER_STACKUP = wxS( "Layer Stackup" )
 
const wxString KICAD_DIFF::DOC_PROP_DRC_SEVERITIES = wxS( "DRC Severity Overrides" )
 
const wxString KICAD_DIFF::DOC_PROP_ERC_SEVERITIES = wxS( "ERC Severity Overrides" )
 
const wxString KICAD_DIFF::DOC_PROP_DRAWING_SHEET = wxS( "Drawing Sheet File" )
 
const wxString KICAD_DIFF::DOC_PROP_NET_CLASSES = wxS( "Net Classes" )
 
const wxString KICAD_DIFF::DOC_PROP_CUSTOM_RULES = wxS( "Custom DRC Rules" )
 
const wxString KICAD_DIFF::DOC_PROP_FP_LIB_TABLE = wxS( "Footprint Library Table" )
 
const wxString KICAD_DIFF::DOC_PROP_SYM_LIB_TABLE = wxS( "Symbol Library Table" )