1#include "Library/Obj/CameraWatchPoint.h"
2
3#include "Library/Camera/ActorCameraSubTarget.h"
4#include "Library/Camera/CameraUtil.h"
5#include "Library/LiveActor/ActorClippingFunction.h"
6#include "Library/LiveActor/ActorInitFunction.h"
7#include "Library/LiveActor/ActorInitUtil.h"
8#include "Project/Camera/CameraSubTargetTurnParam.h"
9
10namespace al {
11CameraWatchPoint::CameraWatchPoint(const char* name) : LiveActor(name) {}
12
13void CameraWatchPoint::init(const ActorInitInfo& info) {
14 initActorSceneInfo(actor: this, info);
15 initActorPoseTRSV(actor: this);
16 initActorSRT(actor: this, info);
17 initActorClipping(actor: this, initInfo: info);
18 invalidateClipping(actor: this);
19 initExecutorWatchObj(actor: this, info);
20 initStageSwitch(this, info);
21
22 mCameraSubTarget = createActorCameraSubTarget(actor: this, nullptr);
23
24 CameraSubTargetTurnParam* params = new CameraSubTargetTurnParam();
25 params->init(info);
26
27 initCameraSubTargetTurnParam(target: mCameraSubTarget, turnParam: params);
28 trySyncStageSwitchAppearAndKill(actor: this);
29}
30
31void CameraWatchPoint::makeActorAlive() {
32 LiveActor::makeActorAlive();
33
34 setCameraPlacementSubTarget(user: this, target: mCameraSubTarget);
35}
36
37void CameraWatchPoint::kill() {
38 LiveActor::kill();
39
40 resetCameraPlacementSubTarget(user: this, target: mCameraSubTarget);
41}
42} // namespace al
43