OpenLexocad  28.0
PropertyTexture2.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Core/Property.h>
4 
5 namespace Core
6 {
7 class LX_CORE_EXPORT PropertyTexture2 : public Core::Property
8 {
10 
11 public:
12  void setValue(const Draw::Texture2& mat);
13  bool setValueFromVariant(const Core::Variant& value);
15 
16  const Draw::Texture2 getValue() const;
18 
19  virtual void save(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version);
21  virtual bool isEqual(const Property*) const;
22  virtual Core::Property* copy(void) const override;
23  virtual void paste(const Core::Property& from) override;
24 
25 protected:
26  int _textureId = -1;
27 };
28 
29 class LX_CORE_EXPORT PropertyTexture2Transform : public Core::Property
30 {
32 
33 public:
34  void setValue(const Draw::Texture2Transform& ttf, bool calculateTextureScaleFactor = false);
35  bool setValueFromVariant(const Core::Variant& value);
37 
38  const Draw::Texture2Transform& getValue() const;
40 
43 
44  void save(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version);
46  virtual bool isEqual(const Property*) const;
47  std::shared_ptr<Core::DbgInfo> getDbgInfo() const override;
48  virtual Core::Property* copy(void) const override;
49  virtual void paste(const Core::Property& from) override;
50 
51 protected:
52  Draw::Texture2Transform _texture2Transform;
53  bool _calculateTextureScaleFactor = false;
54 };
55 
56 class LX_CORE_EXPORT PropertyTextureCoordinateMapping : public Core::Property
57 {
59 
60 public:
61  void setValue(const Draw::TextureCoordinateMapping& tcm);
62  bool setValueFromVariant(const Core::Variant& value);
64 
65  const Draw::TextureCoordinateMapping& getValue() const;
67 
68  void save(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version);
70  virtual bool isEqual(const Property*) const;
71  virtual Core::Property* copy(void) const override;
72  virtual void paste(const Core::Property& from) override;
73 
74 protected:
75  Draw::TextureCoordinateMapping _textureCoordinateMapping;
76 };
77 
79 {
81 
82 public:
83  void setValue(const Draw::TextureCoordinateFunction& tcf);
84  bool setValueFromVariant(const Core::Variant& value);
86 
87  const Draw::TextureCoordinateFunction& getValue() const;
89 
90  void save(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version);
92  virtual bool isEqual(const Property*) const;
93  virtual Core::Property* copy(void) const override;
94  virtual void paste(const Core::Property& from) override;
95 
96 protected:
97  Draw::TextureCoordinateFunction _textureCoordinateFunction;
98 };
99 
100 class LX_CORE_EXPORT PropertyTexture2List : public Core::Property
101 {
103 
104 public:
105  void setValue(const std::map<int, Draw::Texture2>& texList);
106  bool setValueFromVariant(const Core::Variant&) { return false; }
108 
109  int addTexture(const Draw::Texture2& tex);
110  bool hasTexture(const Draw::Texture2& tex);
111  void setEmpty();
112 
113  const Draw::Texture2& getTextureById(int id);
114 
115  const std::map<int, Draw::Texture2>& getValue(void) const;
117 
118  virtual void save(Base::AbstractWriter& writer, Base::PersistenceVersion& save_version);
120 
121  virtual void saveDocFile(Base::AbstractWriter& writer, const Base::String& filename, const Base::String& tmpdir);
122  virtual void restoreDocFile(Base::Reader& reader, const Base::String& tmpdir);
123  virtual bool isEqual(const Property*) const;
124  virtual Core::Property* copy(void) const override;
125  virtual void paste(const Core::Property& from) override;
126 
127 private:
128  std::map<int, Draw::Texture2> _textureMap;
129  Draw::Texture2 _defaultTexture;
130  int _nextAvailableId = 1;
131 };
132 
133 
135 DECLARE_PROPERTY_FACTORY(PropertyTexture2Transform_Factory, Core::PropertyTexture2Transform);
136 DECLARE_PROPERTY_FACTORY(PropertyTextureCoordinateMapping_Factory, Core::PropertyTextureCoordinateMapping);
137 DECLARE_PROPERTY_FACTORY(PropertyTextureCoordinateFunction_Factory, Core::PropertyTextureCoordinateFunction);
139 
140 
141 } // namespace Core
Core::PropertyTexture2::isEqual
virtual bool isEqual(const Property *) const
compare properties
Core::PropertyTexture2List::copyValue
void copyValue(Core::Property *p)
Property.h
Core::PropertyTexture2Transform::isCalculateTextureScaleFactor
bool isCalculateTextureScaleFactor() const
Core::PropertyTexture2List::getTextureById
const Draw::Texture2 & getTextureById(int id)
Core::PropertyTexture2List::hasTexture
bool hasTexture(const Draw::Texture2 &tex)
Core::PropertyTextureCoordinateFunction::_textureCoordinateFunction
Draw::TextureCoordinateFunction _textureCoordinateFunction
Definition: PropertyTexture2.h:97
Core::PropertyTexture2List::restoreDocFile
virtual void restoreDocFile(Base::Reader &reader, const Base::String &tmpdir)
This method is used to restore large amounts of data from a binary file.
Core::PropertyTexture2Transform::setCalculateTextureScaleFactor
void setCalculateTextureScaleFactor(bool onoff)
Core::PropertyTextureCoordinateMapping::paste
virtual void paste(const Core::Property &from) override
Paste the value from the property (mainly for Undo/Redo and transactions)
Core::PropertyTexture2List::getValue
const std::map< int, Draw::Texture2 > & getValue(void) const
Core::PropertyTexture2Transform::setValueFromVariant
bool setValueFromVariant(const Core::Variant &value)
Core::PropertyTextureCoordinateMapping::setValueFromVariant
bool setValueFromVariant(const Core::Variant &value)
Core::PropertyTexture2::getValue
const Draw::Texture2 getValue() const
Core::PropertyTexture2List::saveDocFile
virtual void saveDocFile(Base::AbstractWriter &writer, const Base::String &filename, const Base::String &tmpdir)
This method is used to save large amounts of data to a binary file.
Core::PropertyTexture2List::setEmpty
void setEmpty()
Core::PropertyTextureCoordinateMapping
Definition: PropertyTexture2.h:57
Core::PropertyTexture2::getVariant
Core::Variant getVariant(void) const
Core::PropertyTextureCoordinateFunction::setValue
void setValue(const Draw::TextureCoordinateFunction &tcf)
Core::PropertyTexture2List::setValue
void setValue(const std::map< int, Draw::Texture2 > &texList)
Core::PropertyTexture2::setValueFromVariant
bool setValueFromVariant(const Core::Variant &value)
Core::PropertyTexture2List::paste
virtual void paste(const Core::Property &from) override
Paste the value from the property (mainly for Undo/Redo and transactions)
Core::PropertyTexture2::copy
virtual Core::Property * copy(void) const override
Returns a new copy of the property (mainly for Undo/Redo and transactions). The copy has no container...
Core::PropertyTexture2::save
virtual void save(Base::AbstractWriter &writer, Base::PersistenceVersion &save_version)
This method is used to save properties or very small amounts of data to an XML document.
Core::PropertyTexture2Transform::copy
virtual Core::Property * copy(void) const override
Returns a new copy of the property (mainly for Undo/Redo and transactions). The copy has no container...
Core::PropertyTexture2List
Definition: PropertyTexture2.h:101
Core::PropertyTextureCoordinateFunction::copy
virtual Core::Property * copy(void) const override
Returns a new copy of the property (mainly for Undo/Redo and transactions). The copy has no container...
Core::PropertyTextureCoordinateFunction::copyValue
void copyValue(Core::Property *p)
Core::PropertyTextureCoordinateMapping::getValue
const Draw::TextureCoordinateMapping & getValue() const
Core::PropertyTextureCoordinateFunction::isEqual
virtual bool isEqual(const Property *) const
compare properties
Core::PropertyTexture2::setValue
void setValue(const Draw::Texture2 &mat)
Base::PersistenceVersion
Definition: Persistence.h:13
Core::PropertyTextureCoordinateMapping::setValue
void setValue(const Draw::TextureCoordinateMapping &tcm)
Core
Definition: Base.h:5
Core::PropertyTexture2Transform::setValue
void setValue(const Draw::Texture2Transform &ttf, bool calculateTextureScaleFactor=false)
Core::Variant
Definition: Variant.h:78
Core::PropertyTexture2::restore
virtual void restore(Base::AbstractXMLReader &reader, Base::PersistenceVersion &version)
This method is used to restore properties from an XML document.
Core::PropertyTexture2Transform
Definition: PropertyTexture2.h:30
Core::PropertyTexture2Transform::save
void save(Base::AbstractWriter &writer, Base::PersistenceVersion &save_version)
This method is used to save properties or very small amounts of data to an XML document.
Base::AbstractWriter
Definition: Writer.h:13
Core::PropertyTexture2::copyValue
void copyValue(Core::Property *p)
Core::PropertyTextureCoordinateMapping::copyValue
void copyValue(Core::Property *p)
Core::PropertyTexture2List::copy
virtual Core::Property * copy(void) const override
Returns a new copy of the property (mainly for Undo/Redo and transactions). The copy has no container...
Core::PropertyTexture2Transform::isEqual
virtual bool isEqual(const Property *) const
compare properties
Core::PropertyTexture2Transform::getValue
const Draw::Texture2Transform & getValue() const
Base::AbstractXMLReader
Definition: AbstractXMLReader.h:7
Core::PropertyTexture2Transform::restore
void restore(Base::AbstractXMLReader &reader, Base::PersistenceVersion &version)
This method is used to restore properties from an XML document.
Core::PropertyTexture2Transform::getVariant
Core::Variant getVariant(void) const
Core::PropertyTextureCoordinateMapping::isEqual
virtual bool isEqual(const Property *) const
compare properties
Core::PropertyTexture2List::restore
virtual void restore(Base::AbstractXMLReader &reader, Base::PersistenceVersion &version)
This method is used to restore properties from an XML document.
Core::PropertyTextureCoordinateFunction
Definition: PropertyTexture2.h:79
Core::PropertyTexture2Transform::getDbgInfo
std::shared_ptr< Core::DbgInfo > getDbgInfo() const override
Returns the debug information for this property.
Core::PropertyTexture2Transform::copyValue
void copyValue(Core::Property *p)
Core::PropertyTextureCoordinateMapping::_textureCoordinateMapping
Draw::TextureCoordinateMapping _textureCoordinateMapping
Definition: PropertyTexture2.h:75
Core::PropertyTextureCoordinateMapping::getVariant
Core::Variant getVariant(void) const
Core::PropertyTexture2Transform::_texture2Transform
Draw::Texture2Transform _texture2Transform
Definition: PropertyTexture2.h:52
Core::PropertyTexture2List::setValueFromVariant
bool setValueFromVariant(const Core::Variant &)
Definition: PropertyTexture2.h:106
Core::PropertyTextureCoordinateFunction::restore
void restore(Base::AbstractXMLReader &reader, Base::PersistenceVersion &version)
This method is used to restore properties from an XML document.
Core::version
LX_CORE_EXPORT Version & version
Core::Property
Definition: Property.h:72
Core::PropertyTextureCoordinateFunction::save
void save(Base::AbstractWriter &writer, Base::PersistenceVersion &save_version)
This method is used to save properties or very small amounts of data to an XML document.
Core::PropertyTextureCoordinateFunction::getVariant
Core::Variant getVariant(void) const
Core::PropertyTextureCoordinateMapping::restore
void restore(Base::AbstractXMLReader &reader, Base::PersistenceVersion &version)
This method is used to restore properties from an XML document.
Core::PropertyTexture2::paste
virtual void paste(const Core::Property &from) override
Paste the value from the property (mainly for Undo/Redo and transactions)
Base::String
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:18
Base::Reader
Definition: Writer.h:205
Core::PropertyTextureCoordinateFunction::paste
virtual void paste(const Core::Property &from) override
Paste the value from the property (mainly for Undo/Redo and transactions)
Core::PropertyTexture2
Definition: PropertyTexture2.h:8
Core::PropertyTexture2List::isEqual
virtual bool isEqual(const Property *) const
compare properties
Core::PropertyTextureCoordinateFunction::getValue
const Draw::TextureCoordinateFunction & getValue() const
TYPESYSTEM_HEADER
#define TYPESYSTEM_HEADER()
define for subclassing Base::BaseClass
Definition: Base.h:12
Core::PropertyTexture2List::getVariant
Core::Variant getVariant(void) const
Core::DECLARE_PROPERTY_FACTORY
DECLARE_PROPERTY_FACTORY(PropertyAxis1_Factory, Core::PropertyAxis1)
Core::PropertyTextureCoordinateMapping::save
void save(Base::AbstractWriter &writer, Base::PersistenceVersion &save_version)
This method is used to save properties or very small amounts of data to an XML document.
Core::PropertyTexture2List::addTexture
int addTexture(const Draw::Texture2 &tex)
Core::PropertyTexture2List::save
virtual void save(Base::AbstractWriter &writer, Base::PersistenceVersion &save_version)
This method is used to save properties or very small amounts of data to an XML document.
Core::PropertyTextureCoordinateMapping::copy
virtual Core::Property * copy(void) const override
Returns a new copy of the property (mainly for Undo/Redo and transactions). The copy has no container...
Core::PropertyTextureCoordinateFunction::setValueFromVariant
bool setValueFromVariant(const Core::Variant &value)
Core::PropertyTexture2Transform::paste
virtual void paste(const Core::Property &from) override
Paste the value from the property (mainly for Undo/Redo and transactions)