Go to the documentation of this file.
7 #include <Draw/Arrowheads.h>
8 #include <Draw/DrawStyle.h>
9 #include <Draw/OglMaterial.h>
10 #include <Draw/Texture2.h>
11 #include <Draw/Texture2Transform.h>
12 #include <Draw/TextureCoordinateFunction.h>
13 #include <Draw/TextureCoordinateMapping.h>
25 #include <unordered_set>
35 class AbstractXMLReader;
36 class PersistenceVersion;
64 typedef std::shared_ptr<Topo::Shape>
pShape;
73 struct ImportMessageDataType;
79 explicit Variant(
const char* s);
83 friend class App::Placement;
84 friend class Sketcher::Constraint;
177 explicit Variant(
const std::vector<Base::Color>& cl);
178 explicit Variant(
const std::vector<Base::MColor>& cl);
181 explicit Variant(
const Draw::Texture2Transform& ttf);
182 explicit Variant(
const Draw::TextureCoordinateMapping& tcm);
183 explicit Variant(
const Draw::TextureCoordinateFunction& tcf);
186 explicit Variant(
const std::list<std::string>& sl);
187 explicit Variant(
const std::list<Base::String>& sl);
188 explicit Variant(
const std::map<int, Draw::OglMaterial>& ml);
189 explicit Variant(
const std::map<int, Draw::Texture2>& tl);
195 explicit Variant(
const std::unordered_set<Core::DocObject*>& oset);
196 explicit Variant(
const std::vector<Core::DocObject*>& objects);
203 explicit Variant(
const std::vector<int>& ilist);
204 explicit Variant(
const std::vector<uint8_t>& ilist);
205 explicit Variant(
const std::list<Geom::Vec>& vlist);
206 explicit Variant(
const std::vector<Geom::Pnt>& plist);
207 explicit Variant(
const std::vector<Geom::Pnt2d>& plist);
208 explicit Variant(
const std::list<Geom::Ax2>& vlist);
211 explicit Variant(
const std::vector<pBrepData>& dataSet);
214 explicit Variant(
const std::vector<double>& value);
215 explicit Variant(
const std::list<std::list<Geom::Pnt>>& the_list);
217 explicit Variant(
const std::vector<Core::Variant>& varList);
219 explicit Variant(
const std::shared_ptr<ImportMessageDataType> aData);
220 explicit Variant(
const std::shared_ptr<LxIfcBase::LxIfcEntity> aEntity);
221 explicit Variant(
const std::list<Core::DocObject*>& list);
222 explicit Variant(
const std::vector<Geom::Geometry*>& aValue);
224 explicit Variant(
const std::map<Base::Type, Core::DocObject*>& typeMap);
225 explicit Variant(
const std::map<Base::String, Base::String>& stringMap);
226 explicit Variant(
const std::map<Base::String, double>& string2doubleMap);
265 std::unordered_set<Core::DocObject*>
toObjectSet(
bool* ok = 0)
const;
288 std::shared_ptr<LxIfcBase::LxIfcEntity>
toIfcEntity(
bool* ok = 0)
const;
289 std::list<Core::DocObject*>
toLinkList(
bool* ok =
nullptr)
const;
291 std::map<Base::Type, Core::DocObject*>
toTypeMap(
bool* ok =
nullptr)
const;
292 std::map<Base::String, Base::String>
toStringMap(
bool* ok =
nullptr)
const;
316 explicit Variant(
const std::list<QDateTime>& dateTime);
317 explicit Variant(
const std::vector<std::vector<SearchValue>>& searchSettings);
318 explicit Variant(
const std::vector<std::vector<std::vector<SearchValue>>>& searchSettingsVector);
328 template <
typename T>
333 return std::any_cast<T>(data);
336 int getValue<int>(
bool* ok)
const
338 return toInteger(ok);
341 uint32_t getValue<uint32_t>(
bool* ok)
const
346 long getValue<long>(
bool* ok)
const
351 std::string getValue<std::string>(
bool* ok)
const
353 return toStdString(ok);
356 double getValue<double>(
bool* ok)
const
361 bool getValue<bool>(
bool* ok)
const
371 Draw::OglMaterial getValue<Draw::OglMaterial>(
bool* ok)
const
373 return toMaterial(ok);
376 Draw::Texture2 getValue<Draw::Texture2>(
bool* ok)
const
378 return toTexture2(ok);
381 Draw::Texture2Transform getValue<Draw::Texture2Transform>(
bool* ok)
const
383 return toTexture2Transform(ok);
386 Draw::TextureCoordinateMapping getValue<Draw::TextureCoordinateMapping>(
bool* ok)
const
388 return toTextureCoordinateMapping(ok);
391 Draw::TextureCoordinateFunction getValue<Draw::TextureCoordinateFunction>(
bool* ok)
const
393 return toTextureCoordinateFunction(ok);
396 Draw::DrawStyle getValue<Draw::DrawStyle>(
bool* ok)
const
398 return toDrawStyle(ok);
401 Draw::Arrowheads getValue<Draw::Arrowheads>(
bool* ok)
const
403 return toArrowheads(ok);
406 std::list<std::string> getValue<std::list<std::string>>(
bool* ok)
const
408 return toStdStringList(ok);
411 std::list<Base::String> getValue<std::list<Base::String>>(
bool* ok)
const
413 return toStringList(ok);
416 std::map<int, Draw::OglMaterial> getValue<std::map<int, Draw::OglMaterial>>(
bool* ok)
const
418 return toMaterialList(ok);
421 std::map<int, Draw::Texture2> getValue<std::map<int, Draw::Texture2>>(
bool* ok)
const
423 return toTexture2List(ok);
443 return toAxis22d(ok);
455 std::unordered_set<Core::DocObject*> getValue<std::unordered_set<Core::DocObject*>>(
bool* ok)
const
457 return toObjectSet(ok);
460 std::vector<Core::DocObject*> getValue<std::vector<Core::DocObject*>>(
bool* ok)
const
462 return toObjectVector(ok);
465 std::map<Base::Type, DocObject*> getValue<std::map<Base::Type, DocObject*>>(
bool* ok)
const
467 return toTypeMap(ok);
470 std::map<Base::String, Base::String> getValue<std::map<Base::String, Base::String>>(
bool* ok)
const
472 return toStringMap(ok);
475 std::map<Base::String, double> getValue<std::map<Base::String, double>>(
bool* ok)
const
477 return toString2DoubleMap(ok);
492 return toPoint2d(ok);
502 return toDirection(ok);
507 return toTransform(ok);
512 return toGTransform(ok);
515 std::list<Geom::Vec> getValue<std::list<Geom::Vec>>(
bool* ok)
const
517 return toVectorList(ok);
520 std::vector<Geom::Pnt> getValue<std::vector<Geom::Pnt>>(
bool* ok)
const
522 return toPointList(ok);
525 std::vector<Geom::Pnt2d> getValue<std::vector<Geom::Pnt2d>>(
bool* ok)
const
527 return toPoint2dList(ok);
530 std::list<Geom::Ax2> getValue<std::list<Geom::Ax2>>(
bool* ok)
const
532 return toAxis2List(ok);
535 MD5 getValue<MD5>(
bool* ok)
const
542 return toBrepData(ok);
545 std::vector<pBrepData> getValue<std::vector<pBrepData>>(
bool* ok)
const
547 return toBrepDataSet(ok);
550 std::vector<int> getValue<std::vector<int>>(
bool* ok)
const
552 return toIntegerList(ok);
564 std::shared_ptr<LxIfcBase::LxIfcEntity> getValue<std::shared_ptr<LxIfcBase::LxIfcEntity>>(
bool* ok)
const
566 return toIfcEntity(ok);
569 std::list<Core::DocObject*> getValue<std::list<Core::DocObject*>>(
bool* ok)
const
571 return toLinkList(ok);
574 std::vector<Geom::Geometry*> getValue<std::vector<Geom::Geometry*>>(
bool* ok)
const
576 return toGeomGeometryList(ok);
601 static std::map<int, VariantHandler*>
registry;
@ String
Definition: Variant.h:99
@ StdString
Definition: Variant.h:98
static bool registerVariantHandler(int type, VariantHandler *vhnd)
Registers a VariantHandler for a given type. returns true, if successful, false if a handler for this...
@ DateTime
Definition: Variant.h:120
std::list< QDateTime > toDateTimeList(bool *ok=0) const
std::list< Base::String > toStringList(bool *ok=0) const
basic_registry< entity > registry
Alias declaration for the most common use case.
Definition: entt.hpp:3790
std::vector< pBrepData > toBrepDataSet(bool *ok=0) const
@ StringMap
Definition: Variant.h:157
Variant(const Draw::DrawStyle &ds)
@ Arrowheads
Definition: Variant.h:114
Base::String getAsString(bool humanReadable=true, int *version=0) const
Variant(const Draw::TextureCoordinateMapping &tcm)
Draw::TextureCoordinateMapping toTextureCoordinateMapping(bool *ok=0) const
Variant(const std::shared_ptr< ImportMessageDataType > aData)
Geom::Ax22d toAxis22d(bool *ok=0) const
std::unordered_set< Core::DocObject * > toObjectSet(bool *ok=0) const
Variant(const std::vector< double > &value)
Definition: CoreDocument.h:269
QDateTime toDateTime(bool *ok=0) const
bool toBool(bool *ok=0) const
std::list< Geom::Vec > toVectorList(bool *ok=0) const
Variant(const std::list< Core::DocObject * > &list)
Variant(const Draw::Texture2 &t)
@ TextureCoordinateMapping
Definition: Variant.h:111
std::list< std::list< Geom::Pnt > > toListPointList(bool *ok=0) const
@ MColorList
Definition: Variant.h:108
std::map< Base::Type, Core::DocObject * > toTypeMap(bool *ok=nullptr) const
std::vector< int > toIntegerList(bool *ok=0) const
Geom::Pnt2d toPoint2d(bool *ok=0) const
Variant(const std::vector< Core::DocObject * > &objects)
virtual int getUserType() const
Must be overwritten for custom types.
Definition: Variant.h:235
Geom::GTrsf toGTransform(bool *ok=0) const
Variant(const QFont &font)
@ UInt8List
Definition: Variant.h:91
Geom::Ax1 toAxis1(bool *ok=0) const
Geom::Trsf toTransform(bool *ok=0) const
virtual Core::Variant create()=0
Creates a Variant.
@ PointList
Definition: Variant.h:136
Variant(const Geom::Trsf &t)
Defines a non-persistent vector in 3D space.
Definition: Vec.h:41
Geom::Dir toDirection(bool *ok=0) const
Definition: GlobalId.h:28
Variant::Type getType() const
@ Color
Definition: Variant.h:105
@ SearchSettings
Definition: Variant.h:122
Base::String toString(bool *ok=0) const
@ StdStringList
Definition: Variant.h:101
Geom::CompoundPlaneAngle toCompoundPlaneAngle(bool *ok=0) const
@ RealList
Definition: Variant.h:144
Variant(const Variant &in)
@ IntegerList
Definition: Variant.h:95
Draw::TextureCoordinateFunction toTextureCoordinateFunction(bool *ok=0) const
@ GUID
Definition: Variant.h:149
std::shared_ptr< LxIfcBase::LxIfcEntity > toIfcEntity(bool *ok=0) const
Variant(Core::CoreDocument *value)
@ DateTimeList
Definition: Variant.h:121
@ ObjectVector
Definition: Variant.h:118
std::shared_ptr< Geom::BrepData > pBrepData
Definition: PropertyBrepData.h:5
Type
Definition: Variant.h:88
Variant(const Draw::TextureCoordinateFunction &tcf)
Variant(const Base::Color &c)
@ Vector
Definition: Variant.h:131
A compound measure of plane angle in degrees, minutes, seconds, and optionally millionth-seconds of a...
Definition: CompoundPlaneAngle.h:13
@ Font
Definition: Variant.h:119
Variant(const std::map< int, Draw::Texture2 > &tl)
@ Placement
Definition: Variant.h:128
bool operator==(const Variant &other) const
Variant(const std::vector< Base::Color > &cl)
@ IfcEntity
Definition: Variant.h:151
std::shared_ptr< Topo::Shape const > pConstShape
Definition: Variant.h:65
@ TextureCoordinateFunction
Definition: Variant.h:112
uint64_t toUInt64(bool *ok=0) const
bool canConvert(Variant::Type t) const
Variant(const Draw::OglMaterial &m)
@ ObjectSet
Definition: Variant.h:117
pBrepData toBrepData(bool *ok=0) const
Variant(const std::list< std::list< Geom::Pnt >> &the_list)
@ UInt32
Definition: Variant.h:92
Geom::Ax2 toAxis2(bool *ok=0) const
Variant(const std::vector< pBrepData > &dataSet)
Variant(const std::vector< Geom::Pnt > &plist)
Variant(const std::shared_ptr< LxIfcBase::LxIfcEntity > aEntity)
Core::CoreDocument * toCoreDocument(bool *ok=0) const
std::vector< std::vector< std::vector< SearchValue > > > toSearchSettingsVector(bool *ok=0) const
Geom::Vec toVector(bool *ok=0) const
@ Point
Definition: Variant.h:129
@ Axis2
Definition: Variant.h:125
Variant(const std::list< Geom::Vec > &vlist)
Vector3< _Pr1 > toVector(const Vector3< _Pr2 > &v)
Definition: Vector3D.h:240
int toInteger(bool *ok=0) const
double toDouble(bool *ok=0) const
@ L2D_Placement
Definition: Variant.h:145
Base::Color toColor(bool *ok=0) const
virtual bool isEqual(const Core::Variant &v1, const Core::Variant &v2, double tolerance=1E-06) const =0
Compares, if two Variants, both of the same type, are equal.
Definition: DocObject.h:54
std::shared_ptr< Topo::Shape > pShape
Definition: Variant.h:64
@ ColorList
Definition: Variant.h:107
Geom::Ax2d toAxis2d(bool *ok=0) const
@ String2DoubleMap
Definition: Variant.h:158
@ Texture2List
Definition: Variant.h:104
Variant(const std::map< Base::String, Base::String > &stringMap)
Variant(const std::list< QDateTime > &dateTime)
Variant(const std::map< int, Draw::OglMaterial > &ml)
Variant(const Base::GlobalId &id)
Definition: Persistence.h:13
Variant(const Base::MColor &c)
int type
The variant type.
Definition: Variant.h:308
std::list< Geom::Ax2 > toAxis2List(bool *ok=0) const
@ UInt64
Definition: Variant.h:93
uint32_t toUInt32(bool *ok=0) const
virtual int getType()=0
Returns the Variant type.
void restore(Base::AbstractXMLReader &reader, Base::PersistenceVersion &version)
@ GTransform
Definition: Variant.h:134
Defines a non-persistent 3D Cartesian point.
Definition: Pnt.h:44
Variant(const std::vector< Core::Variant > &varList)
Variant(pConstShape shape)
Base::GlobalId toGUID(bool *ok=0) const
Variant(const wchar_t *s)
virtual Base::String getAsString(const Core::Variant &v) const =0
Returns a string representation of the value of the Variant.
Variant(const Geom::CompoundPlaneAngle &compangle)
std::list< Core::DocObject * > toLinkList(bool *ok=nullptr) const
void restore(Base::AbstractXMLReader &reader, Base::PersistenceVersion &version, const Base::String &variantType)
Variant(const std::unordered_set< Core::DocObject * > &oset)
Variant(const std::vector< std::vector< std::vector< SearchValue >>> &searchSettingsVector)
const std::shared_ptr< Core::ImportMessageDataType > toImportMessageDataType(bool *ok=0) const
@ Long
Definition: Variant.h:96
@ GeomGeometryList
Definition: Variant.h:154
T getValue(bool *ok) const
Definition: Variant.h:329
@ ImportData
Definition: Variant.h:150
Variant(const std::vector< Base::MColor > &cl)
@ ConstShape
Definition: Variant.h:143
@ ListPointList
Definition: Variant.h:146
Definition: AbstractXMLReader.h:7
Variant(const Geom::Vec &v)
@ VariantList
Definition: Variant.h:148
Variant(const QDateTime &dateTime)
@ Texture2Transform
Definition: Variant.h:110
std::map< Base::String, Base::String > toStringMap(bool *ok=nullptr) const
Variant(const Geom::Ax2d &ax2d)
std::map< int, Draw::Texture2 > toTexture2List(bool *ok=0) const
@ Axis2d
Definition: Variant.h:126
@ BrepDataSet
Definition: Variant.h:141
std::vector< Geom::Geometry * > toGeomGeometryList(bool *ok=nullptr) const
Geom::Pnt toPoint(bool *ok=0) const
std::vector< Core::DocObject * > toObjectVector(bool *ok=0) const
Variant(const Geom::Pnt2d &p)
@ Shape
Definition: Variant.h:142
Variant(const Geom::Ax1 &ax1)
@ UInt8
Definition: Variant.h:90
bool operator!=(const Variant &other) const
@ Object
Definition: Variant.h:116
@ Texture2
Definition: Variant.h:109
@ StringList
Definition: Variant.h:102
MD5 toMD5(bool *ok=0) const
std::string toStdString(bool *ok=0) const
std::vector< std::vector< SearchValue > > toSearchSettings(bool *ok=0) const
Variant(const std::map< Base::Type, Core::DocObject * > &typeMap)
Variant(const Geom::Pnt &p)
Variant(const Draw::Arrowheads &ah)
LX_CORE_EXPORT Version & version
@ Bool
Definition: Variant.h:100
Definition: Variant.h:585
Core::DocObject * toObject(bool *ok=0) const
std::vector< Core::Variant > toVariantList(bool *ok=0) const
@ Double
Definition: Variant.h:97
std::vector< uint8_t > toUInt8List(bool *ok=0) const
@ SearchSettingsVector
Definition: Variant.h:123
@ Point2dList
Definition: Variant.h:137
@ VectorList
Definition: Variant.h:135
@ Integer
Definition: Variant.h:94
Variant(const std::vector< Geom::Pnt2d > &plist)
std::vector< Geom::Pnt2d > toPoint2dList(bool *ok=0) const
std::map< Base::String, double > toString2DoubleMap(bool *ok=nullptr) const
Variant(const std::vector< uint8_t > &ilist)
std::map< int, Draw::OglMaterial > toMaterialList(bool *ok=0) const
@ MColor
Definition: Variant.h:106
@ Point2d
Definition: Variant.h:130
@ BrepData
Definition: Variant.h:140
uint8_t toUInt8(bool *ok=0) const
Variant(const Draw::Texture2Transform &ttf)
@ Axis1
Definition: Variant.h:124
@ SketcherConstraintList
Definition: Variant.h:153
std::string getTypeAsString() const
Returns variant type as string.
@ CoreDocument
Definition: Variant.h:155
Variant(const std::map< Base::String, double > &string2doubleMap)
@ Direction
Definition: Variant.h:132
@ Md5
Definition: Variant.h:139
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:18
std::vector< double > toRealList(bool *ok=0) const
Defines a non-persistent 2D cartesian point.
Definition: Pnt2d.h:34
long toLong(bool *ok=0) const
Variant(const Geom::Dir &dir)
@ TypeMap
Definition: Variant.h:156
Variant(Core::DocObject *o)
Variant(const std::list< Geom::Ax2 > &vlist)
Variant(const Base::String &s)
QFont toFont(bool *ok=0) const
Variant(const Geom::Ax2 &ax2)
Draw::DrawStyle toDrawStyle(bool *ok=0) const
@ MaterialList
Definition: Variant.h:103
@ Axis2List
Definition: Variant.h:138
void save(Base::AbstractWriter &writer, Base::PersistenceVersion &save_version) const
Variant(const Geom::Ax22d &ax22d)
LX_CORE_EXPORT std::ostream & operator<<(std::ostream &o, const Core::Variant &variant)
@ Axis22d
Definition: Variant.h:127
std::list< std::string > toStdStringList(bool *ok=0) const
@ Material
Definition: Variant.h:115
@ Transform
Definition: Variant.h:133
Variant(const std::vector< int > &ilist)
std::vector< Base::Color > toColorList(bool *ok=0) const
Variant(const Geom::GTrsf &t)
std::any data
The data.
Definition: Variant.h:310
Variant(const std::vector< std::vector< SearchValue >> &searchSettings)
@ DrawStyle
Definition: Variant.h:113
Draw::OglMaterial toMaterial(bool *ok=0) const
static VariantHandler * getVariantHandler(int type)
Returns the VariantHandler for this type.
Variant(const std::list< Base::String > &sl)
Variant(const std::list< std::string > &sl)
Variant(const std::vector< Geom::Geometry * > &aValue)
Definition: AbstractXMLReader.h:5
Draw::Arrowheads toArrowheads(bool *ok=0) const
Definition: PropertyContainer.h:33
std::vector< Geom::Pnt > toPointList(bool *ok=0) const
@ LinkList
Definition: Variant.h:152
@ CompoundPlaneAngle
Definition: Variant.h:147
Draw::Texture2 toTexture2(bool *ok=0) const
Draw::Texture2Transform toTexture2Transform(bool *ok=0) const