1#include "Library/Obj/CameraRailHolder.h"
2
3#include "Library/Camera/CameraDirector.h"
4#include "Library/Camera/CameraLimitRailKeeper.h"
5#include "Library/Camera/CameraUtil.h"
6#include "Library/LiveActor/ActorInitFunction.h"
7#include "Library/LiveActor/ActorInitInfo.h"
8#include "Library/Placement/PlacementFunction.h"
9#include "Library/Placement/PlacementInfo.h"
10
11namespace al {
12CameraRailHolder::CameraRailHolder(const char* name) : LiveActor(name) {}
13
14void CameraRailHolder::init(const ActorInitInfo& info) {
15 initActorSceneInfo(actor: this, info);
16 initExecutorWatchObj(actor: this, info);
17 info.actorSceneInfo.cameraDirector->registerCameraRailHolder(railHolder: this);
18
19 mCameraRailCount = calcLinkChildNum(initInfo: info, linkName: "Rail");
20
21 if (mCameraRailCount > 0) {
22 mCameraRails = new CameraLimitRailKeeper*[mCameraRailCount];
23
24 for (s32 i = 0; i < mCameraRailCount; i++) {
25 PlacementInfo placementInfo;
26
27 getLinksInfoByIndex(linkPlacementInfo: &placementInfo, initInfo: info, linkName: "Rail", index: i);
28 mCameraRails[i] = new CameraLimitRailKeeper();
29
30 mCameraRails[i]->init(info: placementInfo, viewCount: getViewNumMax(user: this));
31 }
32 }
33
34 makeActorDead();
35}
36} // namespace al
37