20#ifndef PADS_UNIT_CONVERTER_H
21#define PADS_UNIT_CONVERTER_H
75 static std::optional<PADS_UNIT_TYPE>
ParseUnitCode(
const std::string& aUnitCode );
static constexpr double MILS_TO_NM
double GetBasicUnitsScale() const
static constexpr double INCHES_TO_NM
std::vector< PADS_UNIT_TYPE > m_unitOverrideStack
bool IsBasicUnitsMode() const
size_t GetOverrideDepth() const
void SetBaseUnits(PADS_UNIT_TYPE aUnitType)
bool PushUnitOverride(const std::string &aUnitCode)
Push a unit override onto the stack, temporarily overriding the base units for subsequent conversions...
static constexpr double BASIC_TO_NM
PADS_UNIT_TYPE m_unitType
void SetBasicUnitsMode(bool aEnabled)
Enable or disable BASIC units mode.
int64_t ToNanometersSize(double aValue) const
Convert a size value (width, height, radius) in PADS file units to nanometers.
bool ParseFileHeader(const std::string &aHeader)
Parse a PADS file header string and configure units accordingly.
static std::optional< PADS_UNIT_TYPE > ParseUnitCode(const std::string &aUnitCode)
Parse a PADS unit override code ("M"/"D" mils, "MM" metric, "I" inches), returning an empty optional ...
PADS_UNIT_TYPE GetUnitType() const
static constexpr double MM_TO_NM
void SetBasicUnitsScale(double aScale)
Set a custom scale for BASIC units, in nanometers per BASIC unit.
void PopUnitOverride()
Pop the most recent unit override, reverting to the previous setting.
int64_t ToNanometers(double aValue) const
Convert a coordinate value in PADS file units to nanometers.
bool HasUnitOverride() const