22#include <kiwano/math/Math.h>
23#include <kiwano/core/Time.h>
24#include <kiwano/base/ObjectBase.h>
25#include <kiwano/base/component/ComponentManager.h>
26#include <kiwano/event/EventDispatcher.h>
27#include <kiwano/utils/TaskScheduler.h>
28#include <kiwano/2d/animation/Animator.h>
38typedef IntrusiveList<RefPtr<Actor>> ActorList;
95 bool IsVisible()
const;
99 bool IsCascadeOpacityEnabled()
const;
103 size_t GetHashName()
const;
107 int GetZOrder()
const;
111 Point GetPosition()
const;
115 float GetPositionX()
const;
119 float GetPositionY()
const;
123 virtual Size GetSize()
const;
127 float GetWidth()
const;
131 float GetHeight()
const;
135 float GetScaledWidth()
const;
139 float GetScaledHeight()
const;
143 Size GetScaledSize()
const;
147 Point GetAnchor()
const;
151 float GetAnchorX()
const;
155 float GetAnchorY()
const;
159 float GetOpacity()
const;
163 float GetDisplayedOpacity()
const;
167 float GetRotation()
const;
171 Point GetScale()
const;
175 float GetScaleX()
const;
179 float GetScaleY()
const;
183 Point GetSkew()
const;
187 float GetSkewX()
const;
191 float GetSkewY()
const;
199 Actor* GetParent()
const;
203 Stage* GetStage()
const;
207 virtual Rect GetBounds()
const;
211 virtual Rect GetBoundingBox()
const;
215 const Matrix3x2& GetTransformMatrix()
const;
219 const Matrix3x2& GetTransformInverseMatrix()
const;
223 const Matrix3x2& GetTransformMatrixToParent()
const;
227 void SetVisible(
bool val);
235 void SetPosition(
const Point& point);
239 void SetPosition(
float x,
float y);
243 void SetPositionX(
float x);
247 void SetPositionY(
float y);
251 void MoveTo(
const Point& p);
255 void MoveTo(
float x,
float y);
259 void MoveBy(
const Vec2& trans);
263 void MoveBy(
float trans_x,
float trans_y);
267 void SetScale(
const Vec2& scale);
271 void SetScale(
float scalex,
float scaley);
275 void SetSkew(
const Vec2& skew);
279 void SetSkew(
float skewx,
float skewy);
283 void SetRotation(
float rotation);
287 void SetAnchor(
const Vec2& anchor);
291 void SetAnchor(
float anchorx,
float anchory);
295 void SetSize(
const Size& size);
299 void SetSize(
float width,
float height);
303 void SetWidth(
float width);
307 void SetHeight(
float height);
311 void SetOpacity(
float opacity);
315 void SetCascadeOpacityEnabled(
bool enabled);
319 void SetTransform(
const Transform& transform);
323 void SetZOrder(
int zorder);
343 Vector<RefPtr<Actor>> GetChildren(
StringView name)
const;
363 void RemoveAllChildren();
367 void RemoveFromParent();
371 void PauseUpdating();
375 void ResumeUpdating();
379 bool IsUpdatePausing()
const;
391 virtual bool ContainsPoint(
const Point& point)
const;
395 Point ConvertToLocal(
const Point& point)
const;
399 Point ConvertToWorld(
const Point& point)
const;
403 void ShowBorder(
bool show);
407 void DoSerialize(
Serializer* serializer)
const override;
411 void DoDeserialize(
Deserializer* deserializer)
override;
415 static void SetDefaultAnchor(
float anchor_x,
float anchor_y);
442 void UpdateTransform()
const;
447 void UpdateTransformUpwards()
const;
451 void UpdateOpacity();
459 void SetStage(
Stage* stage);
461 enum DirtyFlag : uint8_t
465 DirtyTransformInverse = 1 << 1,
466 DirtyOpacity = 1 << 2,
467 DirtyVisibility = 1 << 3
474 bool update_pausing_;
475 bool cascade_opacity_;
477 mutable bool visible_in_rt_;
483 float displayed_opacity_;
490 UpdateCallback cb_update_;
494 mutable Matrix3x2 transform_matrix_inverse_;
495 mutable Matrix3x2 transform_matrix_to_parent_;
522 return cascade_opacity_;
552 return transform_.
scale;
567 return transform_.
skew;
637 return displayed_opacity_;
657 update_pausing_ =
true;
662 update_pausing_ =
false;
667 return update_pausing_;
UpdateCallback GetCallbackOnUpdate() const
获取更新时的回调函数
Definition: Actor.h:675
Transform GetTransform() const
获取变换
Definition: Actor.h:640
Function< void(Duration)> UpdateCallback
角色更新回调函数
Definition: Actor.h:74
void SetSize(const Size &size)
修改大小
Definition: Actor.cpp:399
bool IsVisible() const
获取显示状态
Definition: Actor.h:515
float GetPositionX() const
获取 x 坐标
Definition: Actor.h:540
virtual void OnRender(RenderContext &ctx)
渲染角色
Definition: Actor.h:505
Point GetSkew() const
获取错切角度
Definition: Actor.h:565
bool IsCascadeOpacityEnabled() const
是否启用级联透明度
Definition: Actor.h:520
void MoveTo(const Point &p)
移动至坐标
Definition: Actor.h:700
void SetPosition(const Point &point)
设置坐标
Definition: Actor.cpp:425
Stage * GetStage() const
获取所在舞台
Definition: Actor.h:650
float GetAnchorY() const
获取 y 方向锚点
Definition: Actor.h:625
size_t GetHashName() const
获取名称的 Hash 值
Definition: Actor.h:525
void SetCallbackOnUpdate(const UpdateCallback &cb)
设置更新时的回调函数
Definition: Actor.h:670
Actor * GetParent() const
获取父角色
Definition: Actor.h:645
Point GetPosition() const
获取坐标
Definition: Actor.h:535
Size GetScaledSize() const
获取缩放后的大小
Definition: Actor.h:610
float GetDisplayedOpacity() const
获取显示透明度
Definition: Actor.h:635
void SetSkew(const Vec2 &skew)
设置错切角度,默认为 (0, 0)
Definition: Actor.cpp:443
void SetScale(const Vec2 &scale)
设置缩放比例,默认为 (1.0, 1.0)
Definition: Actor.cpp:434
bool IsUpdatePausing() const
角色更新是否暂停
Definition: Actor.h:665
float GetScaleY() const
获取纵向缩放比例
Definition: Actor.h:560
Point GetAnchor() const
获取锚点
Definition: Actor.h:615
int GetZOrder() const
获取 Z 轴顺序
Definition: Actor.h:530
float GetScaledHeight() const
获取缩放后的高度
Definition: Actor.h:605
float GetSkewX() const
获取横向错切角度
Definition: Actor.h:570
void SetWidth(float width)
修改宽度
Definition: Actor.h:735
float GetScaleX() const
获取横向缩放比例
Definition: Actor.h:555
void ResumeUpdating()
继续角色更新
Definition: Actor.h:660
virtual Size GetSize() const
获取大小
Definition: Actor.h:595
void SetHeight(float height)
修改高度
Definition: Actor.h:740
float GetAnchorX() const
获取 x 方向锚点
Definition: Actor.h:620
void MoveBy(const Vec2 &trans)
移动相对坐标
Definition: Actor.h:710
float GetScaledWidth() const
获取缩放后的宽度
Definition: Actor.h:600
void ShowBorder(bool show)
渲染角色边界
Definition: Actor.h:680
float GetOpacity() const
获取透明度
Definition: Actor.h:630
void SetPositionX(float x)
设置横坐标
Definition: Actor.h:690
float GetSkewY() const
获取纵向错切角度
Definition: Actor.h:575
float GetPositionY() const
获取 y 坐标
Definition: Actor.h:545
void PauseUpdating()
暂停角色更新
Definition: Actor.h:655
float GetWidth() const
获取宽度
Definition: Actor.h:585
virtual void OnUpdate(Duration dt)
更新角色
Definition: Actor.h:500
void SetAnchor(const Vec2 &anchor)
设置锚点位置,默认为 (0, 0), 范围 [0, 1]
Definition: Actor.cpp:390
float GetRotation() const
获取旋转角度
Definition: Actor.h:580
float GetHeight() const
获取高度
Definition: Actor.h:590
void SetPositionY(float y)
设置纵坐标
Definition: Actor.h:695
Point GetScale() const
获取缩放比例
Definition: Actor.h:550
动画调度器
Definition: Animator.h:37
组件管理器
Definition: ComponentManager.h:42
导演
Definition: Director.h:38
事件分发器
Definition: EventDispatcher.h:36
Definition: Function.h:228
侵入式链表元素
Definition: IntrusiveList.hpp:434
侵入式链表
Definition: IntrusiveList.hpp:34
基础对象
Definition: ObjectBase.h:138
引用计数智能指针
Definition: RefBasePtr.hpp:35
渲染上下文
Definition: RenderContext.h:62
任务调度器
Definition: TaskScheduler.h:36
舞台过渡动画
Definition: Transition.h:45
反序列化器
Definition: Serializable.h:147
时间段
Definition: Duration.h:48
序列化器
Definition: Serializable.h:40