46 int apt_def_symbol_num = -1;
47 double apt_def_resize_factor;
69 double orient_def_rotation;
71 ContourPolygon::Vector m_contourPolygons;
73 const ContourPolygon::Vector& GetContourPolygons()
const;
75 typedef std::vector<std::shared_ptr<FeatureRecord>> Vector;
78 std::unique_ptr<Odb::Lib::Protobuf::FeaturesFile::FeatureRecord> to_protobuf()
const override;
79 void from_protobuf(
const Odb::Lib::Protobuf::FeaturesFile::FeatureRecord& message)
override;
81 constexpr inline static const char* LINE_TOKEN =
"L";
82 constexpr inline static const char* PAD_TOKEN =
"P";
83 constexpr inline static const char* TEXT_TOKEN =
"T";
84 constexpr inline static const char* ARC_TOKEN =
"A";
85 constexpr inline static const char* BARCODE_TOKEN =
"B";
86 constexpr inline static const char* SURFACE_START_TOKEN =
"S";
87 constexpr inline static const char* SURFACE_END_TOKEN =
"SE";
90 bool Parse(std::filesystem::path directory,
const std::string& alternateFilename =
"");
92 bool Save(std::ostream& os)
override;
94 std::string GetUnits()
const;
95 std::filesystem::path GetPath();
96 std::filesystem::path GetDirectory();
97 int GetNumFeatures()
const;
98 unsigned int GetId()
const;
100 const SymbolName::StringMap& GetSymbolNamesByName()
const;
101 const SymbolName::Vector& GetSymbolNames()
const;
102 const FeatureRecord::Vector& GetFeatureRecords()
const;
105 std::unique_ptr<Odb::Lib::Protobuf::FeaturesFile> to_protobuf()
const override;
106 void from_protobuf(
const Odb::Lib::Protobuf::FeaturesFile& message)
override;
109 std::string m_units =
"";
110 std::filesystem::path m_path;
111 std::filesystem::path m_directory;
115 FeatureRecord::Vector m_featureRecords;
116 SymbolName::StringMap m_symbolNamesByName;
117 SymbolName::Vector m_symbolNames;
120 std::vector<std::string> m_attributeNames;
121 std::vector<std::string> m_attributeTextValues;
123 constexpr inline static const char* FEATURES_FILENAMES[] =
130 constexpr inline static const char* UNITS_TOKEN =
"UNITS";
131 constexpr inline static const char* ID_TOKEN =
"ID";
132 constexpr inline static const char* ATTRIBUTE_NAME_TOKEN =
"@";
133 constexpr inline static const char* ATTRIBUTE_VALUE_TOKEN =
"&";
134 constexpr inline static const char* SYMBOL_NAME_TOKEN =
"$";
135 constexpr inline static const char* COMMENT_TOKEN =
"#";
136 constexpr inline static const char* NUM_FEATURES_TOKEN =
"F";