1#include "Library/Camera/ActorCameraTarget.h"
2
3#include "Library/LiveActor/ActorAreaFunction.h"
4#include "Library/LiveActor/ActorCollisionFunction.h"
5#include "Library/LiveActor/ActorFlagFunction.h"
6#include "Library/LiveActor/ActorMovementFunction.h"
7#include "Library/LiveActor/ActorPoseUtil.h"
8#include "Library/LiveActor/LiveActor.h"
9
10namespace al {
11
12ActorCameraTarget::ActorCameraTarget(const LiveActor* actor, f32 yOffset,
13 const sead::Vector3f* localOffset)
14 : mActor(actor), mLocalOffset(localOffset), mYOffset(yOffset) {}
15
16const char* ActorCameraTarget::getTargetName() const {
17 return mActor->getName();
18}
19
20void ActorCameraTarget::calcTrans(sead::Vector3f* trans) const {
21 calcTransLocalOffset(transOut: trans, actor: mActor, transIn: mLocalOffset ? *mLocalOffset : sead::Vector3f::zero);
22 trans->y += mYOffset;
23}
24
25void ActorCameraTarget::calcSide(sead::Vector3f* side) const {
26 calcSideDir(side, actor: mActor);
27}
28
29void ActorCameraTarget::calcUp(sead::Vector3f* up) const {
30 calcUpDir(up, actor: mActor);
31}
32
33void ActorCameraTarget::calcFront(sead::Vector3f* front) const {
34 calcFrontDir(front, actor: mActor);
35}
36
37void ActorCameraTarget::calcGravity(sead::Vector3f* gravity) const {
38 gravity->set(getGravity(actor: mActor));
39}
40
41void ActorCameraTarget::calcVelocity(sead::Vector3f* velocity) const {
42 velocity->set(getVelocity(actor: mActor));
43}
44
45bool ActorCameraTarget::isCollideGround() const {
46 return isExistActorCollider(mActor) && !isNoCollide(actor: mActor) && isOnGround(mActor, 0);
47}
48
49bool ActorCameraTarget::isInWater() const {
50 return isInWaterArea(actor: mActor);
51}
52
53} // namespace al
54