]> git.lizzy.rs Git - irrlicht.git/blob - source/Irrlicht/CAttributeImpl.h
Replace _IRR_OVERRIDE_ macro with override keyword
[irrlicht.git] / source / Irrlicht / CAttributeImpl.h
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt\r
2 // This file is part of the "Irrlicht Engine".\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h\r
4 \r
5 #include "CAttributes.h"\r
6 #include "fast_atof.h"\r
7 #include "ITexture.h"\r
8 #include "IVideoDriver.h"\r
9 \r
10 namespace irr\r
11 {\r
12 namespace io\r
13 {\r
14 \r
15 /*\r
16         Basic types, check documentation in IAttribute.h to see how they generally work.\r
17 */\r
18 \r
19 // Attribute implemented for boolean values\r
20 class CBoolAttribute : public IAttribute\r
21 {\r
22 public:\r
23 \r
24         CBoolAttribute(const char* name, bool value)\r
25         {\r
26                 Name = name;\r
27                 setBool(value);\r
28         }\r
29 \r
30         s32 getInt() const override\r
31         {\r
32                 return BoolValue ? 1 : 0;\r
33         }\r
34 \r
35         f32 getFloat() const override\r
36         {\r
37                 return BoolValue ? 1.0f : 0.0f;\r
38         }\r
39 \r
40         bool getBool() const override\r
41         {\r
42                 return BoolValue;\r
43         }\r
44 \r
45         void setInt(s32 intValue) override\r
46         {\r
47                 BoolValue = (intValue != 0);\r
48         }\r
49 \r
50         void setFloat(f32 floatValue) override\r
51         {\r
52                 BoolValue = (floatValue != 0);\r
53         }\r
54 \r
55         void setBool(bool boolValue) override\r
56         {\r
57                 BoolValue = boolValue;\r
58         }\r
59 \r
60         E_ATTRIBUTE_TYPE getType() const override\r
61         {\r
62                 return EAT_BOOL;\r
63         }\r
64 \r
65         const wchar_t* getTypeString() const override\r
66         {\r
67                 return L"bool";\r
68         }\r
69 \r
70         bool BoolValue;\r
71 };\r
72 \r
73 // Attribute implemented for integers\r
74 class CIntAttribute : public IAttribute\r
75 {\r
76 public:\r
77 \r
78         CIntAttribute(const char* name, s32 value)\r
79         {\r
80                 Name = name;\r
81                 setInt(value);\r
82         }\r
83 \r
84         s32 getInt() const override\r
85         {\r
86                 return Value;\r
87         }\r
88 \r
89         f32 getFloat() const override\r
90         {\r
91                 return (f32)Value;\r
92         }\r
93 \r
94         void setInt(s32 intValue) override\r
95         {\r
96                 Value = intValue;\r
97         }\r
98 \r
99         void setFloat(f32 floatValue) override\r
100         {\r
101                 Value = (s32)floatValue;\r
102         };\r
103 \r
104         E_ATTRIBUTE_TYPE getType() const override\r
105         {\r
106                 return EAT_INT;\r
107         }\r
108 \r
109         const wchar_t* getTypeString() const override\r
110         {\r
111                 return L"int";\r
112         }\r
113 \r
114         s32 Value;\r
115 };\r
116 \r
117 // Attribute implemented for floats\r
118 class CFloatAttribute : public IAttribute\r
119 {\r
120 public:\r
121 \r
122         CFloatAttribute(const char* name, f32 value)\r
123         {\r
124                 Name = name;\r
125                 setFloat(value);\r
126         }\r
127 \r
128         s32 getInt() const override\r
129         {\r
130                 return (s32)Value;\r
131         }\r
132 \r
133         f32 getFloat() const override\r
134         {\r
135                 return Value;\r
136         }\r
137 \r
138         void setInt(s32 intValue) override\r
139         {\r
140                 Value = (f32)intValue;\r
141         }\r
142 \r
143         void setFloat(f32 floatValue) override\r
144         {\r
145                 Value = floatValue;\r
146         }\r
147 \r
148         E_ATTRIBUTE_TYPE getType() const override\r
149         {\r
150                 return EAT_FLOAT;\r
151         }\r
152 \r
153         const wchar_t* getTypeString() const override\r
154         {\r
155                 return L"float";\r
156         }\r
157 \r
158         f32 Value;\r
159 };\r
160 \r
161 } // end namespace io\r
162 } // end namespace irr\r