14 #include <Draw/Arrowheads.h> 15 #include <Draw/DrawStyle.h> 16 #include <Draw/OglMaterial.h> 17 #include <Draw/Texture2.h> 18 #include <Draw/Texture2Transform.h> 19 #include <Draw/TextureCoordinateFunction.h> 20 #include <Draw/TextureCoordinateMapping.h> 34 #include <boost/any.hpp> 35 #include <boost/smart_ptr.hpp> 36 #include <unordered_set> 37 #include <unordered_map> 76 typedef std::shared_ptr<Topo::Shape>
pShape;
84 struct ImportMessageDataType;
89 explicit Variant(
const char* s);
92 friend class VariantHandler;
93 friend class App::Placement;
94 friend class Sketcher::Constraint;
177 explicit Variant(
const wchar_t* s);
183 explicit Variant(
const std::vector<Base::Color>& cl);
184 explicit Variant(
const std::vector<Base::MColor>& cl);
185 explicit Variant(
const Draw::OglMaterial& m);
186 explicit Variant(
const Draw::Texture2& t);
187 explicit Variant(
const Draw::Texture2Transform& ttf);
188 explicit Variant(
const Draw::TextureCoordinateMapping& tcm);
189 explicit Variant(
const Draw::TextureCoordinateFunction& tcf);
190 explicit Variant(
const Draw::DrawStyle& ds);
191 explicit Variant(
const Draw::Arrowheads& ah);
194 explicit Variant(
const std::map<int, Draw::OglMaterial>& ml);
195 explicit Variant(
const std::map<int, Draw::Texture2>& tl);
202 explicit Variant(
const std::unordered_set<Core::DocObject*>& oset);
203 explicit Variant(
const std::vector<Core::DocObject*>& objects);
210 explicit Variant(
const std::vector<int>& ilist);
211 explicit Variant(
const std::vector<uint8_t>& ilist);
213 explicit Variant(
const std::vector<Geom::Pnt>& plist);
214 explicit Variant(
const std::vector<Geom::Pnt2d>& plist);
217 explicit Variant(
const std::vector<pBrepData>& dataSet);
220 explicit Variant(
const std::vector<double>& value);
223 explicit Variant(
const std::vector<Core::Variant>& varList);
225 explicit Variant(
const std::shared_ptr<ImportMessageDataType> aData);
226 explicit Variant(
const std::shared_ptr<LxIfcBase::LxIfcEntity> aEntity);
228 explicit Variant(
const std::vector<Geom::Geometry*>& aValue);
233 bool operator==(
const Variant& other)
const;
240 uint64_t toUInt64(
bool* ok = 0)
const;
241 uint32_t toUInt32(
bool* ok = 0)
const;
242 uint8_t toUInt8(
bool* ok = 0)
const;
243 int toInteger(
bool* ok = 0)
const;
244 long toLong(
bool* ok = 0)
const;
245 std::string toStdString(
bool* ok = 0)
const;
247 double toDouble(
bool* ok = 0)
const;
248 bool toBool(
bool* ok = 0)
const;
250 std::vector<Base::Color> toColorList(
bool* ok = 0)
const;
251 Draw::OglMaterial toMaterial(
bool* ok = 0)
const;
252 Draw::Texture2 toTexture2(
bool* ok = 0)
const;
253 Draw::Texture2Transform toTexture2Transform(
bool* ok = 0)
const;
254 Draw::TextureCoordinateMapping toTextureCoordinateMapping(
bool* ok = 0)
const;
255 Draw::TextureCoordinateFunction toTextureCoordinateFunction(
bool* ok = 0)
const;
256 Draw::DrawStyle toDrawStyle(
bool* ok = 0)
const;
257 Draw::Arrowheads toArrowheads(
bool* ok = 0)
const;
260 std::map<int, Draw::OglMaterial> toMaterialList(
bool* ok = 0)
const;
261 std::map<int, Draw::Texture2> toTexture2List(
bool* ok = 0)
const;
269 std::unordered_set<Core::DocObject*> toObjectSet(
bool* ok = 0)
const;
270 std::vector<Core::DocObject*> toObjectVector(
bool* ok = 0)
const;
274 Geom::Dir toDirection(
bool* ok = 0)
const;
278 std::vector<Geom::Pnt> toPointList(
bool* ok = 0)
const;
279 std::vector<Geom::Pnt2d> toPoint2dList(
bool* ok = 0)
const;
280 MD5 toMD5(
bool* ok = 0)
const;
281 pBrepData toBrepData(
bool* ok = 0)
const;
282 std::vector<pBrepData> toBrepDataSet(
bool* ok = 0)
const;
283 std::vector<int> toIntegerList(
bool* ok = 0)
const;
284 std::vector<uint8_t> toUInt8List(
bool* ok = 0)
const;
286 std::vector<double> toRealList(
bool* ok = 0)
const;
289 std::vector<Core::Variant> toVariantList(
bool* ok = 0)
const;
290 const std::shared_ptr<Core::ImportMessageDataType> toImportMessageDataType(
bool* ok = 0)
const;
291 std::shared_ptr<LxIfcBase::LxIfcEntity> toIfcEntity(
bool* ok = 0)
const;
293 std::vector<Geom::Geometry*> toGeomGeometryList(
bool* ok =
nullptr)
const;
299 std::string getTypeAsString()
const;
301 bool hasValue()
const;
310 explicit Variant(
const QFont& font);
311 explicit Variant(
const QDateTime& dateTime);
313 explicit Variant(
const std::vector<std::vector<SearchValue>>& searchSettings);
314 explicit Variant(
const std::vector<std::vector<std::vector<SearchValue>>>& searchSettingsVector);
316 QFont toFont(
bool* ok = 0)
const;
317 QDateTime toDateTime(
bool* ok = 0)
const;
319 std::vector<std::vector<SearchValue>> toSearchSettings(
bool* ok = 0)
const;
320 std::vector<std::vector<std::vector<SearchValue>>> toSearchSettingsVector(
bool* ok = 0)
const;
324 template <
typename T>
329 return boost::any_cast<T>(data);
332 int getValue<int>(
bool* ok)
const 334 return toInteger(ok);
337 uint32_t getValue<uint32_t>(
bool* ok)
const 342 long getValue<long>(
bool* ok)
const 347 std::string getValue<std::string>(
bool* ok)
const 349 return toStdString(ok);
352 double getValue<double>(
bool* ok)
const 357 bool getValue<bool>(
bool* ok)
const 367 Draw::OglMaterial getValue<Draw::OglMaterial>(
bool* ok)
const 369 return toMaterial(ok);
372 Draw::Texture2 getValue<Draw::Texture2>(
bool* ok)
const 374 return toTexture2(ok);
377 Draw::Texture2Transform getValue<Draw::Texture2Transform>(
bool* ok)
const 379 return toTexture2Transform(ok);
382 Draw::TextureCoordinateMapping getValue<Draw::TextureCoordinateMapping>(
bool* ok)
const 384 return toTextureCoordinateMapping(ok);
387 Draw::TextureCoordinateFunction getValue<Draw::TextureCoordinateFunction>(
bool* ok)
const 389 return toTextureCoordinateFunction(ok);
392 Draw::DrawStyle getValue<Draw::DrawStyle>(
bool* ok)
const 394 return toDrawStyle(ok);
397 Draw::Arrowheads getValue<Draw::Arrowheads>(
bool* ok)
const 399 return toArrowheads(ok);
404 return toStdStringList(ok);
409 return toStringList(ok);
412 std::map<int, Draw::OglMaterial> getValue<std::map<int, Draw::OglMaterial>>(
bool* ok)
const 414 return toMaterialList(ok);
417 std::map<int, Draw::Texture2> getValue<std::map<int, Draw::Texture2>>(
bool* ok)
const 419 return toTexture2List(ok);
439 return toAxis22d(ok);
451 std::unordered_set<Core::DocObject*> getValue<std::unordered_set<Core::DocObject*>>(
bool* ok)
const 453 return toObjectSet(ok);
456 std::vector<Core::DocObject*> getValue<std::vector<Core::DocObject*>>(
bool* ok)
const 458 return toObjectVector(ok);
474 return toPoint2d(ok);
484 return toDirection(ok);
489 return toTransform(ok);
494 return toGTransform(ok);
499 return toVectorList(ok);
502 std::vector<Geom::Pnt> getValue<std::vector<Geom::Pnt>>(
bool* ok)
const 504 return toPointList(ok);
507 std::vector<Geom::Pnt2d> getValue<std::vector<Geom::Pnt2d>>(
bool* ok)
const 509 return toPoint2dList(ok);
512 MD5 getValue<MD5>(
bool* ok)
const 519 return toBrepData(ok);
522 std::vector<pBrepData> getValue<std::vector<pBrepData>>(
bool* ok)
const 524 return toBrepDataSet(ok);
527 std::vector<int> getValue<std::vector<int>>(
bool* ok)
const 529 return toIntegerList(ok);
541 std::shared_ptr<LxIfcBase::LxIfcEntity> getValue<std::shared_ptr<LxIfcBase::LxIfcEntity>>(
bool* ok)
const 543 return toIfcEntity(ok);
548 return toLinkList(ok);
551 std::vector<Geom::Geometry*> getValue<std::vector<Geom::Geometry*>>(
bool* ok)
const 553 return toGeomGeometryList(ok);
561 class LX_CORE_EXPORT
Core::VariantHandler
569 virtual int getType() = 0;
573 static Core::VariantHandler* getVariantHandler(
int type);
575 static bool registerVariantHandler(
int type, Core::VariantHandler* vhnd);
578 static std::map<int, Core::VariantHandler*>
registry;
Definition: Variant.h:153
Definition: Variant.h:104
Definition: Variant.h:137
A compound measure of plane angle in degrees, minutes, seconds, and optionally millionth-seconds of a...
Definition: CompoundPlaneAngle.h:12
Definition: Variant.h:143
Definition: Variant.h:146
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:43
Definition: Variant.h:102
Definition: Variant.h:113
Definition: Variant.h:130
Definition: Variant.h:116
Definition: Variant.h:162
constexpr bool operator!=(const basic_hashed_string< Char > &lhs, const basic_hashed_string< Char > &rhs) ENTT_NOEXCEPT
Compares two hashed strings.
Definition: entt.hpp:570
Definition: Variant.h:122
Definition: Variant.h:109
Definition: Geometry.h:75
Definition: Variant.h:111
Definition: Variant.h:120
virtual int getUserType() const
Must be overwritten for custom types.
Definition: Variant.h:238
Vector3< _Pr1 > toVector(const Vector3< _Pr2 > &v)
Definition: Vector3D.h:242
Definition: Variant.h:135
std::shared_ptr< Geom::BrepData > pBrepData
Definition: BrepData.h:28
Definition: Variant.h:160
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:23
Definition: Variant.h:127
boost::any data
The data.
Definition: Variant.h:306
LX_CORE_EXPORT Version & version
Definition: Variant.h:106
Definition: Variant.h:121
Definition: CoreDocument.h:210
Definition: Variant.h:128
Definition: Variant.h:124
Definition: Variant.h:129
T getValue(bool *ok) const
Definition: Variant.h:325
Definition: Variant.h:132
Definition: Variant.h:154
Type
Definition: Variant.h:97
Definition: Variant.h:157
Definition: Variant.h:138
Definition: Variant.h:140
Definition: GlobalId.h:29
Definition: Variant.h:101
int type
The variant type.
Definition: Variant.h:304
Definition: Variant.h:114
Definition: Variant.h:103
Definition: Variant.h:155
Definition: AbstractConstraint.h:6
Definition: Variant.h:145
Definition: Variant.h:151
Definition: Variant.h:139
Definition: Variant.h:105
Definition: Variant.h:144
Definition: Variant.h:131
Definition: Variant.h:141
basic_registry< entity > registry
Alias declaration for the most common use case.
Definition: entt.hpp:3790
Definition: Variant.h:152
Definition: Variant.h:112
Definition: Variant.h:149
Defines a non-persistent vector in 3D space.
Definition: Vec.h:44
Definition: Variant.h:100
Definition: Variant.h:156
Definition: Variant.h:136
Definition: Variant.h:118
Definition: Variant.h:126
Definition: Variant.h:117
Definition: Variant.h:119
Definition: Variant.h:161
Definition: Variant.h:159
std::shared_ptr< Topo::Shape const > pConstShape
Definition: Variant.h:77
Definition: Variant.h:163
Definition: Variant.h:147
Definition: Variant.h:107
Definition: Variant.h:133
Definition: Variant.h:123
Definition: Variant.h:134
Defines a non-persistent 2D cartesian point.
Definition: Pnt2d.h:33
Definition: Variant.h:158
Definition: Variant.h:142
Definition: Variant.h:115
Definition: Variant.h:108
Definition: Variant.h:125
Definition: Variant.h:148
Definition: Variant.h:110
Definition: DocObject.h:51
std::shared_ptr< Topo::Shape > pShape
Definition: Variant.h:76
Definition: Variant.h:150
Definition: Variant.h:164