OpenLexocad  27.0
PropertyVector.h
Go to the documentation of this file.
1 #pragma once
2 #include <Core/core_defines2.h>
3 #include <Geom/Vec.h>
4 
5 #include <vector>
6 
7 #include "Core/Property.h"
8 #include "Core/Variant.h"
9 
10 namespace Core
11 {
13 {
15 
16 public:
17  PropertyVector(void);
18  virtual ~PropertyVector(void);
19 
20  void setValue(const Geom::Vec& v);
21  bool setValueFromVariant(const Core::Variant& value);
22  void copyValue(Core::Property* p);
23 
24  const Geom::Vec& getValue() const;
25  Core::Variant getVariant(void) const;
26 
27  virtual void save(Base::AbstractWriter& writer, Base::PersistanceVersion& save_version);
28  virtual void restore(Base::AbstractXMLReader& reader, Base::PersistanceVersion& version);
29  virtual bool isEqual(const Property*) const;
30 
31 protected:
33 };
34 
35 
37 {
39 
40 public:
42  virtual ~PropertyVectorList();
43 
44  void setValue(const std::list<Geom::Vec>& list);
45  bool setValueFromVariant(const Core::Variant& value);
46  void copyValue(Core::Property* p);
47 
48  void addVector(const Geom::Vec& v);
49  void setEmpty();
50  bool isEmpty() const;
51 
52  const std::list<Geom::Vec>& getValue() const;
53 
54  Core::Variant getVariant(void) const { return Core::Variant(_vectorList); }
55 
56  virtual void save(Base::AbstractWriter& writer, Base::PersistanceVersion& save_version);
57  virtual void restore(Base::AbstractXMLReader& reader, Base::PersistanceVersion& version);
58  virtual bool isEqual(const Property*) const;
59 
60 protected:
61  std::list<Geom::Vec> _vectorList;
62 };
63 
64 
65 DECLARE_PROPERTY_FACTORY(PropertyVector_Factory, Core::PropertyVector);
66 DECLARE_PROPERTY_FACTORY(PropertyVectorList_Factory, Core::PropertyVectorList);
67 
68 } // namespace Core
#define CORE_EXPORT
Definition: core_defines2.h:10
std::list< Geom::Vec > _vectorList
Definition: PropertyVector.h:61
Definition: PropertyVector.h:36
Definition: Persistance.h:20
LX_CORE_EXPORT Version & version
Definition: Variant.h:90
Geom::Vec _vec
Definition: PropertyVector.h:32
Core::Variant getVariant(void) const
Definition: PropertyVector.h:54
Definition: AbstractXMLReader.h:10
Definition: Base.h:19
Definition: PropertyVector.h:12
Definition: Writer.h:27
Defines a non-persistent vector in 3D space.
Definition: Vec.h:45
Definition: Property.h:81
TYPESYSTEM_HEADER()
DECLARE_PROPERTY_FACTORY(PropertyAxis1_Factory, Core::PropertyAxis1)