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

Public Types

enum  SkewMode { TextArea , FullRect }
 

Public Member Functions

override void ModifyMesh (VertexHelper vh)
 

Protected Member Functions

 SkewEffect ()
 

Properties

Vector2 upperLeftOffset [get, set]
 
Vector2 upperRightOffset [get, set]
 
Vector2 lowerLeftOffset [get, set]
 
Vector2 lowerRightOffset [get, set]
 

Private Attributes

SkewMode m_SkewMode
 
Vector2 m_UpperLeftOffset = Vector2.zero
 
Vector2 m_UpperRightOffset = Vector2.zero
 
Vector2 m_LowerLeftOffset = Vector2.zero
 
Vector2 m_LowerRightOffset = Vector2.zero
 
List< UIVertex > m_Verts = new List<UIVertex>()
 

Detailed Description

Definition at line 7 of file SkewEffect.cs.

Member Enumeration Documentation

◆ SkewMode

Enumerator
TextArea 
FullRect 

Definition at line 9 of file SkewEffect.cs.

Constructor & Destructor Documentation

◆ SkewEffect()

SkewEffect.SkewEffect ( )
inlineprotected

Definition at line 96 of file SkewEffect.cs.

97 {
98 }

Member Function Documentation

◆ ModifyMesh()

override void SkewEffect.ModifyMesh ( VertexHelper  vh)
inline

Definition at line 100 of file SkewEffect.cs.

101 {
102 if (!IsActive())
103 {
104 return;
105 }
106 vh.GetUIVertexStream(m_Verts);
107 if (m_Verts.Count == 0)
108 {
109 return;
110 }
111 Vector2 zero = Vector2.zero;
112 Vector2 zero2 = Vector2.zero;
113 if (m_SkewMode == SkewMode.FullRect)
114 {
115 Rect rect = GetComponent<RectTransform>().rect;
116 zero = new Vector2(rect.xMin, rect.yMax);
117 zero2 = new Vector2(rect.xMax, rect.yMin);
118 }
119 else
120 {
121 zero = m_Verts[0].position;
122 zero2 = m_Verts[m_Verts.Count - 1].position;
123 for (int i = 0; i < m_Verts.Count; i++)
124 {
125 if (m_Verts[i].position.x < zero.x)
126 {
127 zero.x = m_Verts[i].position.x;
128 }
129 if (m_Verts[i].position.y > zero.y)
130 {
131 zero.y = m_Verts[i].position.y;
132 }
133 if (m_Verts[i].position.x > zero2.x)
134 {
135 zero2.x = m_Verts[i].position.x;
136 }
137 if (m_Verts[i].position.y < zero2.y)
138 {
139 zero2.y = m_Verts[i].position.y;
140 }
141 }
142 }
143 float num = zero.y - zero2.y;
144 float num2 = zero2.x - zero.x;
145 for (int j = 0; j < m_Verts.Count; j++)
146 {
147 UIVertex value = m_Verts[j];
148 float num3 = (value.position.y - zero2.y) / num;
149 float num4 = 1f - num3;
150 float num5 = (zero2.x - value.position.x) / num2;
151 float num6 = 1f - num5;
152 Vector3 zero3 = Vector3.zero;
153 zero3.y = (upperLeftOffset.y * num3 + lowerLeftOffset.y * num4) * num5 + (upperRightOffset.y * num3 + lowerRightOffset.y * num4) * num6;
154 zero3.x = (upperLeftOffset.x * num5 + upperRightOffset.x * num6) * num3 + (lowerLeftOffset.x * num5 + lowerRightOffset.x * num6) * num4;
155 value.position += zero3;
156 m_Verts[j] = value;
157 }
158 vh.Clear();
159 vh.AddUIVertexTriangleStream(m_Verts);
160 }
Vector2 lowerLeftOffset
Definition: SkewEffect.cs:65
Vector2 lowerRightOffset
Definition: SkewEffect.cs:81
Vector2 upperRightOffset
Definition: SkewEffect.cs:49
List< UIVertex > m_Verts
Definition: SkewEffect.cs:30
SkewMode m_SkewMode
Definition: SkewEffect.cs:16

References lowerLeftOffset, lowerRightOffset, m_SkewMode, m_Verts, and upperRightOffset.

Member Data Documentation

◆ m_LowerLeftOffset

Vector2 SkewEffect.m_LowerLeftOffset = Vector2.zero
private

Definition at line 25 of file SkewEffect.cs.

◆ m_LowerRightOffset

Vector2 SkewEffect.m_LowerRightOffset = Vector2.zero
private

Definition at line 28 of file SkewEffect.cs.

◆ m_SkewMode

SkewMode SkewEffect.m_SkewMode
private

Definition at line 16 of file SkewEffect.cs.

Referenced by ModifyMesh().

◆ m_UpperLeftOffset

Vector2 SkewEffect.m_UpperLeftOffset = Vector2.zero
private

Definition at line 19 of file SkewEffect.cs.

◆ m_UpperRightOffset

Vector2 SkewEffect.m_UpperRightOffset = Vector2.zero
private

Definition at line 22 of file SkewEffect.cs.

◆ m_Verts

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

Definition at line 30 of file SkewEffect.cs.

Referenced by ModifyMesh().

Property Documentation

◆ lowerLeftOffset

Vector2 SkewEffect.lowerLeftOffset
getset

Definition at line 64 of file SkewEffect.cs.

65 {
66 get
67 {
68 return m_LowerLeftOffset;
69 }
70 set
71 {
72 m_LowerLeftOffset = value;
73 if (base.graphic != null)
74 {
75 base.graphic.SetVerticesDirty();
76 }
77 }
78 }
Vector2 m_LowerLeftOffset
Definition: SkewEffect.cs:25

Referenced by ModifyMesh().

◆ lowerRightOffset

Vector2 SkewEffect.lowerRightOffset
getset

Definition at line 80 of file SkewEffect.cs.

81 {
82 get
83 {
84 return m_LowerRightOffset;
85 }
86 set
87 {
88 m_LowerRightOffset = value;
89 if (base.graphic != null)
90 {
91 base.graphic.SetVerticesDirty();
92 }
93 }
94 }
Vector2 m_LowerRightOffset
Definition: SkewEffect.cs:28

Referenced by ModifyMesh().

◆ upperLeftOffset

Vector2 SkewEffect.upperLeftOffset
getset

Definition at line 32 of file SkewEffect.cs.

33 {
34 get
35 {
36 return m_UpperLeftOffset;
37 }
38 set
39 {
40 m_UpperLeftOffset = value;
41 if (base.graphic != null)
42 {
43 base.graphic.SetVerticesDirty();
44 }
45 }
46 }
Vector2 m_UpperLeftOffset
Definition: SkewEffect.cs:19

◆ upperRightOffset

Vector2 SkewEffect.upperRightOffset
getset

Definition at line 48 of file SkewEffect.cs.

49 {
50 get
51 {
52 return m_UpperRightOffset;
53 }
54 set
55 {
56 m_UpperRightOffset = value;
57 if (base.graphic != null)
58 {
59 base.graphic.SetVerticesDirty();
60 }
61 }
62 }
Vector2 m_UpperRightOffset
Definition: SkewEffect.cs:22

Referenced by ModifyMesh().


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