No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TMP_CharacterInfo.cs 6.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. using System.Diagnostics;
  2. using UnityEngine;
  3. using UnityEngine.TextCore;
  4. namespace TMPro
  5. {
  6. public struct TMP_Vertex
  7. {
  8. public Vector3 position;
  9. public Vector4 uv;
  10. public Vector2 uv2;
  11. //public Vector2 uv4;
  12. public Color32 color;
  13. public static TMP_Vertex zero { get { return k_Zero; } }
  14. //public Vector3 normal;
  15. //public Vector4 tangent;
  16. static readonly TMP_Vertex k_Zero = new TMP_Vertex();
  17. }
  18. /// <summary>
  19. ///
  20. /// </summary>
  21. public struct TMP_Offset
  22. {
  23. public float left { get { return m_Left; } set { m_Left = value; } }
  24. public float right { get { return m_Right; } set { m_Right = value; } }
  25. public float top { get { return m_Top; } set { m_Top = value; } }
  26. public float bottom { get { return m_Bottom; } set { m_Bottom = value; } }
  27. public float horizontal { get { return m_Left; } set { m_Left = value; m_Right = value; } }
  28. public float vertical { get { return m_Top; } set { m_Top = value; m_Bottom = value; } }
  29. /// <summary>
  30. ///
  31. /// </summary>
  32. public static TMP_Offset zero { get { return k_ZeroOffset; } }
  33. // =============================================
  34. // Private backing fields for public properties.
  35. // =============================================
  36. float m_Left;
  37. float m_Right;
  38. float m_Top;
  39. float m_Bottom;
  40. static readonly TMP_Offset k_ZeroOffset = new TMP_Offset(0F, 0F, 0F, 0F);
  41. /// <summary>
  42. ///
  43. /// </summary>
  44. /// <param name="left"></param>
  45. /// <param name="right"></param>
  46. /// <param name="top"></param>
  47. /// <param name="bottom"></param>
  48. public TMP_Offset(float left, float right, float top, float bottom)
  49. {
  50. m_Left = left;
  51. m_Right = right;
  52. m_Top = top;
  53. m_Bottom = bottom;
  54. }
  55. /// <summary>
  56. ///
  57. /// </summary>
  58. /// <param name="horizontal"></param>
  59. /// <param name="vertical"></param>
  60. public TMP_Offset(float horizontal, float vertical)
  61. {
  62. m_Left = horizontal;
  63. m_Right = horizontal;
  64. m_Top = vertical;
  65. m_Bottom = vertical;
  66. }
  67. public static bool operator ==(TMP_Offset lhs, TMP_Offset rhs)
  68. {
  69. return lhs.m_Left == rhs.m_Left &&
  70. lhs.m_Right == rhs.m_Right &&
  71. lhs.m_Top == rhs.m_Top &&
  72. lhs.m_Bottom == rhs.m_Bottom;
  73. }
  74. public static bool operator !=(TMP_Offset lhs, TMP_Offset rhs)
  75. {
  76. return !(lhs == rhs);
  77. }
  78. public static TMP_Offset operator *(TMP_Offset a, float b)
  79. {
  80. return new TMP_Offset(a.m_Left * b, a.m_Right * b, a.m_Top * b, a.m_Bottom * b);
  81. }
  82. public override int GetHashCode()
  83. {
  84. return base.GetHashCode();
  85. }
  86. public override bool Equals(object obj)
  87. {
  88. return base.Equals(obj);
  89. }
  90. public bool Equals(TMP_Offset other)
  91. {
  92. return base.Equals(other);
  93. }
  94. }
  95. /// <summary>
  96. ///
  97. /// </summary>
  98. public struct HighlightState
  99. {
  100. public Color32 color;
  101. public TMP_Offset padding;
  102. public HighlightState(Color32 color, TMP_Offset padding)
  103. {
  104. this.color = color;
  105. this.padding = padding;
  106. }
  107. public static bool operator ==(HighlightState lhs, HighlightState rhs)
  108. {
  109. return lhs.color.Compare(rhs.color) && lhs.padding == rhs.padding;
  110. }
  111. public static bool operator !=(HighlightState lhs, HighlightState rhs)
  112. {
  113. return !(lhs == rhs);
  114. }
  115. public override int GetHashCode()
  116. {
  117. return base.GetHashCode();
  118. }
  119. public override bool Equals(object obj)
  120. {
  121. return base.Equals(obj);
  122. }
  123. public bool Equals(HighlightState other)
  124. {
  125. return base.Equals(other);
  126. }
  127. }
  128. /// <summary>
  129. /// Structure containing information about individual text elements (character or sprites).
  130. /// </summary>
  131. [DebuggerDisplay("Unicode '{character}' ({((uint)character).ToString(\"X\")})")]
  132. public struct TMP_CharacterInfo
  133. {
  134. public TMP_TextElementType elementType;
  135. public char character; // Should be changed to an uint to handle UTF32
  136. /// <summary>
  137. /// Index of the character in the source text.
  138. /// </summary>
  139. public int index;
  140. public int stringLength;
  141. public TMP_TextElement textElement;
  142. public Glyph alternativeGlyph;
  143. public TMP_FontAsset fontAsset;
  144. public Material material;
  145. public int materialReferenceIndex;
  146. public bool isUsingAlternateTypeface;
  147. public float pointSize;
  148. //public short wordNumber;
  149. public int lineNumber;
  150. //public short charNumber;
  151. public int pageNumber;
  152. public int vertexIndex;
  153. public TMP_Vertex vertex_BL;
  154. public TMP_Vertex vertex_TL;
  155. public TMP_Vertex vertex_TR;
  156. public TMP_Vertex vertex_BR;
  157. public Vector3 topLeft;
  158. public Vector3 bottomLeft;
  159. public Vector3 topRight;
  160. public Vector3 bottomRight;
  161. public float origin;
  162. public float xAdvance;
  163. public float ascender;
  164. public float baseLine;
  165. public float descender;
  166. internal float adjustedAscender;
  167. internal float adjustedDescender;
  168. internal float adjustedHorizontalAdvance;
  169. public float aspectRatio;
  170. public float scale;
  171. public Color32 color;
  172. public Color32 underlineColor;
  173. public int underlineVertexIndex;
  174. public Color32 strikethroughColor;
  175. public int strikethroughVertexIndex;
  176. public Color32 highlightColor;
  177. public HighlightState highlightState;
  178. public FontStyles style;
  179. public bool isVisible;
  180. //public bool isIgnoringAlignment;
  181. }
  182. }