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