OpenLexocad  27.0
PropertyTexture2.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <Draw/Texture2.h>
4 #include <Draw/Texture2Transform.h>
5 #include <Draw/TextureCoordinateFunction.h>
6 #include <Draw/TextureCoordinateMapping.h>
7 
8 #include "Core/Property.h"
9 #include "Core/Variant.h"
10 
11 #pragma warning(push)
12 #pragma warning(disable : 4100)
13 #include <string>
14 #pragma warning(pop)
15 
16 #include <Core/core_defines2.h>
17 
18 namespace Core
19 {
21 {
23 
24 public:
25  PropertyTexture2(void);
26  virtual ~PropertyTexture2(void);
27 
28  void setValue(const Draw::Texture2& mat);
29  bool setValueFromVariant(const Core::Variant& value);
30  void copyValue(Core::Property* p);
31 
32  const Draw::Texture2 getValue() const;
33  Core::Variant getVariant(void) const;
34 
35  virtual void save(Base::AbstractWriter& writer, Base::PersistanceVersion& save_version);
36  virtual void restore(Base::AbstractXMLReader& reader, Base::PersistanceVersion& version);
37  virtual bool isEqual(const Property*) const;
38 
39 protected:
41 };
42 
44 {
46 
47 public:
50 
51  void setValue(const Draw::Texture2Transform& ttf, bool calculateTextureScaleFactor = false);
52  bool setValueFromVariant(const Core::Variant& value);
53  void copyValue(Core::Property* p);
54 
55  const Draw::Texture2Transform& getValue() const;
56  Core::Variant getVariant(void) const;
57 
58  void setCalculateTextureScaleFactor(bool onoff);
59  bool isCalculateTextureScaleFactor() const;
60 
61  void save(Base::AbstractWriter& writer, Base::PersistanceVersion& save_version);
63  virtual bool isEqual(const Property*) const;
64  std::shared_ptr<Core::DbgInfo> getDbgInfo() const override;
65 
66 protected:
67  Draw::Texture2Transform _texture2Transform;
69 };
70 
72 {
74 
75 public:
78 
79  void setValue(const Draw::TextureCoordinateMapping& tcm);
80  bool setValueFromVariant(const Core::Variant& value);
81  void copyValue(Core::Property* p);
82 
83  const Draw::TextureCoordinateMapping& getValue() const;
84  Core::Variant getVariant(void) const;
85 
86  void save(Base::AbstractWriter& writer, Base::PersistanceVersion& save_version);
88  virtual bool isEqual(const Property*) const;
89 
90 protected:
91  Draw::TextureCoordinateMapping _textureCoordinateMapping;
92 };
93 
95 {
97 
98 public:
101 
102  void setValue(const Draw::TextureCoordinateFunction& tcf);
103  bool setValueFromVariant(const Core::Variant& value);
104  void copyValue(Core::Property* p);
105 
106  const Draw::TextureCoordinateFunction& getValue() const;
107  Core::Variant getVariant(void) const;
108 
109  void save(Base::AbstractWriter& writer, Base::PersistanceVersion& save_version);
111  virtual bool isEqual(const Property*) const;
112 
113 protected:
114  Draw::TextureCoordinateFunction _textureCoordinateFunction;
115 };
116 
118 {
120 
121 public:
124 
125  void setValue(const std::map<int, Draw::Texture2>& texList);
126  bool setValueFromVariant(const Core::Variant&) { return false; }
127  void copyValue(Core::Property* p);
128 
129  int addTexture(const Draw::Texture2& tex);
130  bool hasTexture(const Draw::Texture2& tex);
131  void setEmpty();
132 
133  const Draw::Texture2& getTextureById(int id);
134 
135  const std::map<int, Draw::Texture2>& getValue(void) const;
136  Core::Variant getVariant(void) const;
137 
138  virtual void save(Base::AbstractWriter& writer, Base::PersistanceVersion& save_version);
139  virtual void restore(Base::AbstractXMLReader& reader, Base::PersistanceVersion& version);
140 
141  virtual void saveDocFile(Base::AbstractWriter& writer, const Base::String& filename, const Base::String& tmpdir);
142  virtual void restoreDocFile(Base::Reader& reader, const Base::String& tmpdir);
143  virtual bool isEqual(const Property*) const;
144 
145 private:
146  std::map<int, Draw::Texture2> _textureMap;
147  Draw::Texture2 _defaultTexture;
148  int _nextAvailableId;
149 };
150 
151 
152 DECLARE_PROPERTY_FACTORY(PropertyTexture2_Factory, Core::PropertyTexture2);
153 DECLARE_PROPERTY_FACTORY(PropertyTexture2Transform_Factory, Core::PropertyTexture2Transform);
154 DECLARE_PROPERTY_FACTORY(PropertyTextureCoordinateMapping_Factory, Core::PropertyTextureCoordinateMapping);
155 DECLARE_PROPERTY_FACTORY(PropertyTextureCoordinateFunction_Factory, Core::PropertyTextureCoordinateFunction);
156 DECLARE_PROPERTY_FACTORY(PropertyTexture2List_Factory, Core::PropertyTexture2List);
157 
158 
159 } // namespace Core
#define CORE_EXPORT
Definition: core_defines2.h:10
Definition: PropertyTexture2.h:71
A Utf-16 (windows) or ucs4 (unix) encoded string class.
Definition: String.h:29
Definition: Persistance.h:20
LX_CORE_EXPORT Version & version
Draw::TextureCoordinateFunction _textureCoordinateFunction
Definition: PropertyTexture2.h:114
Definition: Variant.h:90
Definition: Writer.h:209
Draw::Texture2Transform _texture2Transform
Definition: PropertyTexture2.h:67
Definition: AbstractXMLReader.h:10
Core::PropertyText filename
Definition: CoreDocument.h:151
Definition: Base.h:19
Definition: PropertyTexture2.h:94
Draw::TextureCoordinateMapping _textureCoordinateMapping
Definition: PropertyTexture2.h:91
Definition: Writer.h:27
Definition: PropertyTexture2.h:117
bool setValueFromVariant(const Core::Variant &)
Definition: PropertyTexture2.h:126
Definition: Property.h:81
Definition: PropertyTexture2.h:20
Definition: PropertyTexture2.h:43
int _textureId
Definition: PropertyTexture2.h:40
TYPESYSTEM_HEADER()
DECLARE_PROPERTY_FACTORY(PropertyAxis1_Factory, Core::PropertyAxis1)
bool _calculateTextureScaleFactor
Definition: PropertyTexture2.h:68