Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
GradientColor Class Reference
Inheritance diagram for GradientColor:

Public Types

enum  GradientMode { Local , GlobalTextArea , GlobalFullRect }
 
enum  GradientDirection { Vertical , Horizontal }
 
enum  ColorMode { Override , Additive , Multiply }
 

Public Member Functions

override void ModifyMesh (VertexHelper vh)
 

Public Attributes

Color m_FirstColor = Color.white
 
Color m_SecondColor = Color.black
 

Protected Member Functions

 GradientColor ()
 

Properties

GradientMode gradientMode [get, set]
 
GradientDirection gradientDirection [get, set]
 
ColorMode colorMode [get, set]
 
Color firstColor [get, set]
 
Color secondColor [get, set]
 
bool useGraphicAlpha [get, set]
 

Private Member Functions

Color CalculateColor (Color initialColor, Color newColor, ColorMode colorMode)
 

Private Attributes

GradientMode m_GradientMode
 
GradientDirection m_GradientDirection
 
ColorMode m_ColorMode
 
bool m_UseGraphicAlpha = true
 
List< UIVertex > m_Verts = new List<UIVertex>()
 

Detailed Description

Definition at line 7 of file GradientColor.cs.

Member Enumeration Documentation

◆ ColorMode

Enumerator
Override 
Additive 
Multiply 

Definition at line 22 of file GradientColor.cs.

◆ GradientDirection

Enumerator
Vertical 
Horizontal 

Definition at line 16 of file GradientColor.cs.

◆ GradientMode

Enumerator
Local 
GlobalTextArea 
GlobalFullRect 

Definition at line 9 of file GradientColor.cs.

Constructor & Destructor Documentation

◆ GradientColor()

GradientColor.GradientColor ( )
inlineprotected

Definition at line 145 of file GradientColor.cs.

146 {
147 }

Member Function Documentation

◆ CalculateColor()

Color GradientColor.CalculateColor ( Color  initialColor,
Color  newColor,
ColorMode  colorMode 
)
inlineprivate

Definition at line 255 of file GradientColor.cs.

256 {
257 return colorMode switch
258 {
259 ColorMode.Override => newColor,
260 ColorMode.Additive => initialColor + newColor,
261 ColorMode.Multiply => initialColor * newColor,
262 _ => newColor,
263 };
264 }
ColorMode colorMode

References colorMode.

Referenced by ModifyMesh().

◆ ModifyMesh()

override void GradientColor.ModifyMesh ( VertexHelper  vh)
inline

Definition at line 149 of file GradientColor.cs.

150 {
151 if (!IsActive())
152 {
153 return;
154 }
155 vh.GetUIVertexStream(m_Verts);
156 if (m_Verts.Count == 0)
157 {
158 return;
159 }
160 if (gradientMode == GradientMode.GlobalTextArea || gradientMode == GradientMode.GlobalFullRect)
161 {
162 Vector2 zero = Vector2.zero;
163 Vector2 zero2 = Vector2.zero;
164 if (gradientMode == GradientMode.GlobalFullRect)
165 {
166 Rect rect = GetComponent<RectTransform>().rect;
167 zero = new Vector2(rect.xMin, rect.yMax);
168 zero2 = new Vector2(rect.xMax, rect.yMin);
169 }
170 else
171 {
172 zero = m_Verts[0].position;
173 zero2 = m_Verts[m_Verts.Count - 1].position;
174 for (int i = 0; i < m_Verts.Count; i++)
175 {
176 if (m_Verts[i].position.x < zero.x)
177 {
178 zero.x = m_Verts[i].position.x;
179 }
180 if (m_Verts[i].position.y > zero.y)
181 {
182 zero.y = m_Verts[i].position.y;
183 }
184 if (m_Verts[i].position.x > zero2.x)
185 {
186 zero2.x = m_Verts[i].position.x;
187 }
188 if (m_Verts[i].position.y < zero2.y)
189 {
190 zero2.y = m_Verts[i].position.y;
191 }
192 }
193 }
194 float num = zero.y - zero2.y;
195 float num2 = zero2.x - zero.x;
196 for (int j = 0; j < m_Verts.Count; j++)
197 {
198 UIVertex value = m_Verts[j];
199 if (gradientDirection == GradientDirection.Vertical)
200 {
201 Color newColor = Color.Lerp(firstColor, secondColor, (zero.y - value.position.y) / num);
202 value.color = CalculateColor(value.color, newColor, colorMode);
203 }
204 else
205 {
206 Color newColor2 = Color.Lerp(firstColor, secondColor, (value.position.x - zero.x) / num2);
207 value.color = CalculateColor(value.color, newColor2, colorMode);
208 }
209 if (useGraphicAlpha)
210 {
211 value.color.a = (byte)(value.color.a * m_Verts[j].color.a / 255);
212 }
213 m_Verts[j] = value;
214 }
215 }
216 else
217 {
218 for (int k = 0; k < m_Verts.Count; k++)
219 {
220 UIVertex value2 = m_Verts[k];
221 if (gradientDirection == GradientDirection.Vertical)
222 {
223 if (k % 6 == 0 || k % 6 == 1 || k % 6 == 5)
224 {
225 Color newColor3 = firstColor;
226 value2.color = CalculateColor(value2.color, newColor3, colorMode);
227 }
228 else
229 {
230 Color newColor4 = secondColor;
231 value2.color = CalculateColor(value2.color, newColor4, colorMode);
232 }
233 }
234 else if (k % 6 == 0 || k % 6 == 4 || k % 6 == 5)
235 {
236 Color newColor5 = firstColor;
237 value2.color = CalculateColor(value2.color, newColor5, colorMode);
238 }
239 else
240 {
241 Color newColor6 = secondColor;
242 value2.color = CalculateColor(value2.color, newColor6, colorMode);
243 }
244 if (useGraphicAlpha)
245 {
246 value2.color.a = (byte)(value2.color.a * m_Verts[k].color.a / 255);
247 }
248 m_Verts[k] = value2;
249 }
250 }
251 vh.Clear();
252 vh.AddUIVertexTriangleStream(m_Verts);
253 }
GradientMode
Definition: GradientMode.cs:2
Color CalculateColor(Color initialColor, Color newColor, ColorMode colorMode)
GradientMode gradientMode
List< UIVertex > m_Verts
GradientDirection gradientDirection

References CalculateColor(), Color, colorMode, firstColor, gradientDirection, gradientMode, m_Verts, secondColor, and useGraphicAlpha.

Member Data Documentation

◆ m_ColorMode

ColorMode GradientColor.m_ColorMode
private

Definition at line 36 of file GradientColor.cs.

◆ m_FirstColor

Color GradientColor.m_FirstColor = Color.white

Definition at line 39 of file GradientColor.cs.

◆ m_GradientDirection

GradientDirection GradientColor.m_GradientDirection
private

Definition at line 33 of file GradientColor.cs.

◆ m_GradientMode

GradientMode GradientColor.m_GradientMode
private

Definition at line 30 of file GradientColor.cs.

◆ m_SecondColor

Color GradientColor.m_SecondColor = Color.black

Definition at line 42 of file GradientColor.cs.

◆ m_UseGraphicAlpha

bool GradientColor.m_UseGraphicAlpha = true
private

Definition at line 45 of file GradientColor.cs.

◆ m_Verts

List<UIVertex> GradientColor.m_Verts = new List<UIVertex>()
private

Definition at line 47 of file GradientColor.cs.

Referenced by ModifyMesh().

Property Documentation

◆ colorMode

ColorMode GradientColor.colorMode
getset

Definition at line 81 of file GradientColor.cs.

82 {
83 get
84 {
85 return m_ColorMode;
86 }
87 set
88 {
89 m_ColorMode = value;
90 if (base.graphic != null)
91 {
92 base.graphic.SetVerticesDirty();
93 }
94 }
95 }
ColorMode m_ColorMode

Referenced by CalculateColor(), and ModifyMesh().

◆ firstColor

Color GradientColor.firstColor
getset

Definition at line 97 of file GradientColor.cs.

98 {
99 get
100 {
101 return m_FirstColor;
102 }
103 set
104 {
105 m_FirstColor = value;
106 if (base.graphic != null)
107 {
108 base.graphic.SetVerticesDirty();
109 }
110 }
111 }
Color m_FirstColor

Referenced by ModifyMesh().

◆ gradientDirection

GradientDirection GradientColor.gradientDirection
getset

Definition at line 65 of file GradientColor.cs.

66 {
67 get
68 {
70 }
71 set
72 {
73 m_GradientDirection = value;
74 if (base.graphic != null)
75 {
76 base.graphic.SetVerticesDirty();
77 }
78 }
79 }
GradientDirection m_GradientDirection

Referenced by ModifyMesh().

◆ gradientMode

GradientMode GradientColor.gradientMode
getset

Definition at line 49 of file GradientColor.cs.

50 {
51 get
52 {
53 return m_GradientMode;
54 }
55 set
56 {
57 m_GradientMode = value;
58 if (base.graphic != null)
59 {
60 base.graphic.SetVerticesDirty();
61 }
62 }
63 }
GradientMode m_GradientMode

Referenced by ModifyMesh().

◆ secondColor

Color GradientColor.secondColor
getset

Definition at line 113 of file GradientColor.cs.

114 {
115 get
116 {
117 return m_SecondColor;
118 }
119 set
120 {
121 m_SecondColor = value;
122 if (base.graphic != null)
123 {
124 base.graphic.SetVerticesDirty();
125 }
126 }
127 }
Color m_SecondColor

Referenced by ModifyMesh().

◆ useGraphicAlpha

bool GradientColor.useGraphicAlpha
getset

Definition at line 129 of file GradientColor.cs.

130 {
131 get
132 {
133 return m_UseGraphicAlpha;
134 }
135 set
136 {
137 m_UseGraphicAlpha = value;
138 if (base.graphic != null)
139 {
140 base.graphic.SetVerticesDirty();
141 }
142 }
143 }
bool m_UseGraphicAlpha

Referenced by ModifyMesh().


The documentation for this class was generated from the following file: