TransformObject.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. using System.Collections.Generic;
  2. namespace DragonBones
  3. {
  4. /**
  5. * @language zh_CN
  6. * 基础变换对象。
  7. * @version DragonBones 4.5
  8. */
  9. public abstract class TransformObject : BaseObject
  10. {
  11. /**
  12. * @language zh_CN
  13. * 对象的名称。
  14. * @readOnly
  15. * @version DragonBones 3.0
  16. */
  17. public string name;
  18. /**
  19. * @language zh_CN
  20. * 相对于骨架坐标系的矩阵。
  21. * @readOnly
  22. * @version DragonBones 3.0
  23. */
  24. public readonly Matrix globalTransformMatrix = new Matrix();
  25. /**
  26. * @language zh_CN
  27. * 相对于骨架坐标系的变换。
  28. * @readOnly
  29. * @see DragonBones.Transform
  30. * @version DragonBones 3.0
  31. */
  32. public readonly Transform global = new Transform();
  33. /**
  34. * @language zh_CN
  35. * 相对于骨架或父骨骼坐标系的偏移变换。
  36. * @see DragonBones.Transform
  37. * @version DragonBones 3.0
  38. */
  39. public readonly Transform offset = new Transform();
  40. /**
  41. * @language zh_CN
  42. * 相对于骨架或父骨骼坐标系的绑定变换。
  43. * @readOnly
  44. * @see DragonBones.Transform
  45. * @version DragonBones 3.0
  46. */
  47. public Transform origin;
  48. /**
  49. * @language zh_CN
  50. * 可以用于存储临时数据。
  51. * @version DragonBones 3.0
  52. */
  53. public object userData;
  54. /**
  55. * @private
  56. */
  57. internal Armature _armature;
  58. /**
  59. * @private
  60. */
  61. internal Bone _parent;
  62. /**
  63. * @private
  64. */
  65. public TransformObject()
  66. {
  67. }
  68. /**
  69. * @private
  70. */
  71. protected override void _onClear()
  72. {
  73. name = null;
  74. global.Identity();
  75. offset.Identity();
  76. globalTransformMatrix.Identity();
  77. origin = null;
  78. userData = null;
  79. _armature = null;
  80. _parent = null;
  81. }
  82. /**
  83. * @private
  84. */
  85. internal virtual void _setArmature(Armature value)
  86. {
  87. _armature = value;
  88. }
  89. /**
  90. * @private
  91. */
  92. internal void _setParent(Bone value)
  93. {
  94. _parent = value;
  95. }
  96. /**
  97. * @language zh_CN
  98. * 所属的骨架。
  99. * @see DragonBones.Armature
  100. * @version DragonBones 3.0
  101. */
  102. public Armature armature
  103. {
  104. get { return _armature; }
  105. }
  106. /**
  107. * @language zh_CN
  108. * 所属的父骨骼。
  109. * @see DragonBones.Bone
  110. * @version DragonBones 3.0
  111. */
  112. public Bone parent
  113. {
  114. get { return _parent; }
  115. }
  116. }
  117. }