OpenLexocad  28.0
PropertySolverElementLinkVector.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Core/Property.h>
4 
5 
6 namespace Core
7 {
8 class LX_CORE_EXPORT PropertySolverElementLinkVector : public Core::Property
9 {
11 
12 public:
15 
16  virtual void setValue(const std::vector<Core::DocObject*>& list);
17  virtual bool setValueFromVariant(const Core::Variant&);
18  virtual void copyValue(Core::Property* p);
19 
20  virtual void addLink(Core::DocObject* o);
21  virtual void removeLink(Core::DocObject* o);
22  virtual bool hasLink(Core::DocObject* o) const;
23  virtual void setEmpty();
24  bool isEmpty() const;
25  size_t getSize() const;
26 
27  const std::vector<Core::DocObject*>& getValue() const;
28 
30 
31  virtual void save(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version);
33  virtual const Core::PropertyKind getPropertyKind(void) const;
34  virtual bool isEqual(const Property*) const;
35  virtual bool isLink() const { return true; }
36  virtual std::shared_ptr<Core::DbgInfo> getDbgInfo() const override;
37  virtual Core::Property* copy(void) const override;
38  virtual void paste(const Core::Property& from) override;
39 
40 protected:
41  std::vector<Core::DocObject*> _linkList;
42 };
43 
44 DECLARE_PROPERTY_FACTORY(PropertySolverElementLinkList_Factory, Core::PropertySolverElementLinkVector);
45 
46 } // namespace Core
Property.h
Core::PropertyKind
PropertyKind
Definition: Property.h:42
Core::DocObject
Definition: DocObject.h:54
Base::PersistenceVersion
Definition: Persistence.h:13
Core
Definition: Base.h:5
Core::Variant
Definition: Variant.h:78
Base::AbstractWriter
Definition: Writer.h:13
Base::AbstractXMLReader
Definition: AbstractXMLReader.h:7
Core::version
LX_CORE_EXPORT Version & version
Core::Property
Definition: Property.h:72
TYPESYSTEM_HEADER
#define TYPESYSTEM_HEADER()
define for subclassing Base::BaseClass
Definition: Base.h:12
Core::DECLARE_PROPERTY_FACTORY
DECLARE_PROPERTY_FACTORY(PropertyAxis1_Factory, Core::PropertyAxis1)