2 #pragma warning(disable : 4531) 5 #define BOOST_HAS_STDINT_H 7 #if !defined(HAVE_INT8_T) 8 #define HAVE_INT8_T // Coin Problem 15 #pragma warning(disable : 4251) 17 #pragma warning(disable : 4100) 18 #pragma warning(disable : 4005) 28 #include <Draw/Arrowheads.h> 29 #include <Draw/DrawStyle.h> 30 #include <Draw/OglMaterial.h> 31 #include <Draw/Texture2.h> 32 #include <Draw/Texture2Transform.h> 33 #include <Draw/TextureCoordinateFunction.h> 34 #include <Draw/TextureCoordinateMapping.h> 48 #include <boost/any.hpp> 49 #include <boost/smart_ptr.hpp> 50 #include <boost/unordered_set.hpp> 80 typedef std::shared_ptr<Topo::Shape>
pShape;
87 struct ImportMessageDataType;
92 explicit Variant(
const char* s);
95 friend class VariantHandler;
96 friend class App::Placement;
176 explicit Variant(
const wchar_t* s);
182 explicit Variant(
const std::vector<Base::Color>& cl);
183 explicit Variant(
const std::vector<Base::MColor>& cl);
184 explicit Variant(
const Draw::OglMaterial& m);
185 explicit Variant(
const Draw::Texture2& t);
186 explicit Variant(
const Draw::Texture2Transform& ttf);
187 explicit Variant(
const Draw::TextureCoordinateMapping& tcm);
188 explicit Variant(
const Draw::TextureCoordinateFunction& tcf);
189 explicit Variant(
const Draw::DrawStyle& ds);
190 explicit Variant(
const Draw::Arrowheads& ah);
191 explicit Variant(
const std::list<std::string>& sl);
192 explicit Variant(
const std::list<Base::String>& sl);
193 explicit Variant(
const std::map<int, Draw::OglMaterial>& ml);
194 explicit Variant(
const std::map<int, Draw::Texture2>& tl);
201 explicit Variant(
const boost::unordered_set<Core::DocObject*>& oset);
202 explicit Variant(
const std::vector<Core::DocObject*>& objects);
209 explicit Variant(
const std::vector<int>& ilist);
210 explicit Variant(
const std::vector<uint8_t>& ilist);
211 explicit Variant(
const std::list<Geom::Vec>& vlist);
212 explicit Variant(
const std::vector<Geom::Pnt>& plist);
213 explicit Variant(
const std::vector<Geom::Pnt2d>& plist);
216 explicit Variant(
const std::vector<pBrepData>& dataSet);
219 explicit Variant(
const std::list<double>& value);
220 explicit Variant(
const std::list<std::list<Geom::Pnt>>& the_list);
222 explicit Variant(
const std::vector<Core::Variant>& varList);
224 explicit Variant(
const std::shared_ptr<ImportMessageDataType> aData);
225 explicit Variant(
const std::shared_ptr<LxIfcBase::LxIfcEntity> aEntity);
226 explicit Variant(
const std::list<Core::DocObject*>& list);
230 bool operator==(
const Variant& other)
const;
237 uint64_t toUInt64(
bool* ok = 0)
const;
238 uint32_t toUInt32(
bool* ok = 0)
const;
239 uint8_t toUInt8(
bool* ok = 0)
const;
240 int toInteger(
bool* ok = 0)
const;
241 long toLong(
bool* ok = 0)
const;
242 std::string toStdString(
bool* ok = 0)
const;
244 double toDouble(
bool* ok = 0)
const;
245 bool toBool(
bool* ok = 0)
const;
247 std::vector<Base::Color> toColorList(
bool* ok = 0)
const;
248 Draw::OglMaterial toMaterial(
bool* ok = 0)
const;
249 Draw::Texture2 toTexture2(
bool* ok = 0)
const;
250 Draw::Texture2Transform toTexture2Transform(
bool* ok = 0)
const;
251 Draw::TextureCoordinateMapping toTextureCoordinateMapping(
bool* ok = 0)
const;
252 Draw::TextureCoordinateFunction toTextureCoordinateFunction(
bool* ok = 0)
const;
253 Draw::DrawStyle toDrawStyle(
bool* ok = 0)
const;
254 Draw::Arrowheads toArrowheads(
bool* ok = 0)
const;
255 std::list<std::string> toStdStringList(
bool* ok = 0)
const;
256 std::list<Base::String> toStringList(
bool* ok = 0)
const;
257 std::map<int, Draw::OglMaterial> toMaterialList(
bool* ok = 0)
const;
258 std::map<int, Draw::Texture2> toTexture2List(
bool* ok = 0)
const;
265 boost::unordered_set<Core::DocObject*> toObjectSet(
bool* ok = 0)
const;
266 std::vector<Core::DocObject*> toObjectVector(
bool* ok = 0)
const;
270 Geom::Dir toDirection(
bool* ok = 0)
const;
273 std::list<Geom::Vec> toVectorList(
bool* ok = 0)
const;
274 std::vector<Geom::Pnt> toPointList(
bool* ok = 0)
const;
275 std::vector<Geom::Pnt2d> toPoint2dList(
bool* ok = 0)
const;
276 MD5 toMD5(
bool* ok = 0)
const;
277 pBrepData toBrepData(
bool* ok = 0)
const;
278 std::vector<pBrepData> toBrepDataSet(
bool* ok = 0)
const;
279 std::vector<int> toIntegerList(
bool* ok = 0)
const;
280 std::vector<uint8_t> toUInt8List(
bool* ok = 0)
const;
282 std::list<double> toRealList(
bool* ok = 0)
const;
283 std::list<std::list<Geom::Pnt>> toListPointList(
bool* ok = 0)
const;
285 std::vector<Core::Variant> toVariantList(
bool* ok = 0)
const;
286 const std::shared_ptr<Core::ImportMessageDataType> toImportMessageDataType(
bool* ok = 0)
const;
287 std::shared_ptr<LxIfcBase::LxIfcEntity> toIfcEntity(
bool* ok = 0)
const;
288 std::list<Core::DocObject*> toLinkList(
bool* ok =
nullptr)
const;
294 std::string getTypeAsString()
const;
296 bool hasValue()
const;
305 explicit Variant(
const QFont& font);
306 explicit Variant(
const QDateTime& dateTime);
307 explicit Variant(
const std::list<QDateTime>& dateTime);
308 explicit Variant(
const std::vector<std::vector<SearchValue>>& searchSettings);
309 explicit Variant(
const std::vector<std::vector<std::vector<SearchValue>>>& searchSettingsVector);
311 QFont toFont(
bool* ok = 0)
const;
312 QDateTime toDateTime(
bool* ok = 0)
const;
313 std::list<QDateTime> toDateTimeList(
bool* ok = 0)
const;
314 std::vector<std::vector<SearchValue>> toSearchSettings(
bool* ok = 0)
const;
315 std::vector<std::vector<std::vector<SearchValue>>> toSearchSettingsVector(
bool* ok = 0)
const;
319 template <
typename T>
324 return boost::any_cast<T>(data);
327 int getValue<int>(
bool* ok)
const 329 return toInteger(ok);
332 uint32_t getValue<uint32_t>(
bool* ok)
const 337 long getValue<long>(
bool* ok)
const 342 std::string getValue<std::string>(
bool* ok)
const 344 return toStdString(ok);
347 double getValue<double>(
bool* ok)
const 352 bool getValue<bool>(
bool* ok)
const 362 Draw::OglMaterial getValue<Draw::OglMaterial>(
bool* ok)
const 364 return toMaterial(ok);
367 Draw::Texture2 getValue<Draw::Texture2>(
bool* ok)
const 369 return toTexture2(ok);
372 Draw::Texture2Transform getValue<Draw::Texture2Transform>(
bool* ok)
const 374 return toTexture2Transform(ok);
377 Draw::TextureCoordinateMapping getValue<Draw::TextureCoordinateMapping>(
bool* ok)
const 379 return toTextureCoordinateMapping(ok);
382 Draw::TextureCoordinateFunction getValue<Draw::TextureCoordinateFunction>(
bool* ok)
const 384 return toTextureCoordinateFunction(ok);
387 Draw::DrawStyle getValue<Draw::DrawStyle>(
bool* ok)
const 389 return toDrawStyle(ok);
392 Draw::Arrowheads getValue<Draw::Arrowheads>(
bool* ok)
const 394 return toArrowheads(ok);
397 std::list<std::string> getValue<std::list<std::string>>(
bool* ok)
const 399 return toStdStringList(ok);
402 std::list<Base::String> getValue<std::list<Base::String>>(
bool* ok)
const 404 return toStringList(ok);
407 std::map<int, Draw::OglMaterial> getValue<std::map<int, Draw::OglMaterial>>(
bool* ok)
const 409 return toMaterialList(ok);
412 std::map<int, Draw::Texture2> getValue<std::map<int, Draw::Texture2>>(
bool* ok)
const 414 return toTexture2List(ok);
434 return toAxis22d(ok);
444 boost::unordered_set<Core::DocObject*> getValue<boost::unordered_set<Core::DocObject*>>(
bool* ok)
const 446 return toObjectSet(ok);
449 std::vector<Core::DocObject*> getValue<std::vector<Core::DocObject*>>(
bool* ok)
const 451 return toObjectVector(ok);
465 return toPoint2d(ok);
475 return toDirection(ok);
480 return toTransform(ok);
485 return toGTransform(ok);
488 std::list<Geom::Vec> getValue<std::list<Geom::Vec>>(
bool* ok)
const 490 return toVectorList(ok);
493 std::vector<Geom::Pnt> getValue<std::vector<Geom::Pnt>>(
bool* ok)
const 495 return toPointList(ok);
498 std::vector<Geom::Pnt2d> getValue<std::vector<Geom::Pnt2d>>(
bool* ok)
const 500 return toPoint2dList(ok);
503 MD5 getValue<MD5>(
bool* ok)
const 510 return toBrepData(ok);
513 std::vector<pBrepData> getValue<std::vector<pBrepData>>(
bool* ok)
const 515 return toBrepDataSet(ok);
518 std::vector<int> getValue<std::vector<int>>(
bool* ok)
const 520 return toIntegerList(ok);
532 std::shared_ptr<LxIfcBase::LxIfcEntity> getValue<std::shared_ptr<LxIfcBase::LxIfcEntity>>(
bool* ok)
const 534 return toIfcEntity(ok);
537 std::list<Core::DocObject*> getValue<std::list<Core::DocObject*>>(
bool* ok)
const 539 return toLinkList(ok);
555 virtual int getType() = 0;
559 static Core::VariantHandler* getVariantHandler(
int type);
561 static bool registerVariantHandler(
int type, Core::VariantHandler* vhnd);
564 static std::map<int, Core::VariantHandler*>
registry;
Definition: Variant.h:155
Definition: Variant.h:106
Definition: Variant.h:139
#define CORE_EXPORT
Definition: core_defines2.h:10
A compound measure of plane angle in degrees, minutes, seconds, and optionally millionth-seconds of a...
Definition: CompoundPlaneAngle.h:14
Definition: Variant.h:145
Definition: Variant.h:148
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:42
Definition: Variant.h:104
Definition: Variant.h:115
Definition: Variant.h:132
Definition: Variant.h:118
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:124
Definition: Variant.h:111
Definition: Variant.h:113
Definition: Variant.h:122
virtual int getUserType() const
Must be overwritten for custom types.
Definition: Variant.h:235
Definition: Variant.h:137
std::shared_ptr< Geom::BrepData > pBrepData
Definition: BrepData.h:34
Definition: Variant.h:162
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:29
Definition: Variant.h:129
boost::any data
The data.
Definition: Variant.h:301
LX_CORE_EXPORT Version & version
Definition: Variant.h:108
Definition: Variant.h:123
Definition: Variant.h:130
Definition: Variant.h:126
Definition: Variant.h:131
T getValue(bool *ok) const
Definition: Variant.h:320
Definition: Variant.h:134
Definition: Variant.h:156
Type
Definition: Variant.h:99
Definition: Variant.h:159
Definition: Variant.h:140
Definition: Variant.h:142
Definition: GlobalId.h:32
Definition: Variant.h:103
int type
The variant type.
Definition: Variant.h:299
Definition: Variant.h:116
Definition: Variant.h:105
Definition: Variant.h:157
Definition: Variant.h:147
Definition: Variant.h:153
Definition: Variant.h:141
Definition: Variant.h:107
Definition: Variant.h:146
Definition: Variant.h:133
Definition: Variant.h:143
basic_registry< entity > registry
Alias declaration for the most common use case.
Definition: entt.hpp:3790
Definition: Variant.h:154
Definition: Variant.h:114
Definition: Variant.h:151
Defines a non-persistent vector in 3D space.
Definition: Vec.h:45
Definition: Variant.h:102
Definition: Variant.h:158
Definition: Variant.h:138
Definition: Variant.h:120
Definition: Variant.h:128
Definition: Variant.h:119
Definition: Variant.h:121
Definition: Variant.h:163
Definition: Variant.h:161
std::shared_ptr< Topo::Shape const > pConstShape
Definition: Variant.h:81
Definition: Variant.h:149
Definition: Variant.h:109
Definition: Variant.h:135
Definition: Variant.h:125
Definition: Variant.h:136
Defines a non-persistent 2D cartesian point.
Definition: Pnt2d.h:33
Definition: Variant.h:160
Definition: Variant.h:144
Definition: Variant.h:117
Definition: Variant.h:110
Definition: Variant.h:127
Definition: Variant.h:150
Definition: Variant.h:112
Definition: DocObject.h:28
std::shared_ptr< Topo::Shape > pShape
Definition: Variant.h:80
Definition: Variant.h:152