| 1 | #pragma once |
| 2 | |
| 3 | #include <basis/seadTypes.h> |
| 4 | #include <math/seadVector.h> |
| 5 | |
| 6 | namespace sead { |
| 7 | class Color4f; |
| 8 | } |
| 9 | |
| 10 | namespace al { |
| 11 | class LiveActor; |
| 12 | class ShadowMaskBase; |
| 13 | class DepthShadowMapInfo; |
| 14 | class OccSphere; |
| 15 | |
| 16 | enum class ShadowMaskDrawCategory : s32 {}; |
| 17 | |
| 18 | bool isExistShadow(LiveActor* actor); |
| 19 | bool isExistShadowMaskCtrl(LiveActor* actor); |
| 20 | bool isExistShadowMask(LiveActor* actor, const char* maskName); |
| 21 | bool isExistDepthShadow(LiveActor* actor); |
| 22 | bool isExistDepthShadowMapCtrl(LiveActor* actor); |
| 23 | bool isExistAnyShadowCtrl(LiveActor* actor); |
| 24 | bool isHideShadowMask(const LiveActor* actor); |
| 25 | void hideShadow(LiveActor* actor); |
| 26 | void showShadow(LiveActor* actor); |
| 27 | void showShadowMask(LiveActor* actor); |
| 28 | void showShadowMask(LiveActor* actor, ShadowMaskBase* mask); |
| 29 | void showShadowMask(LiveActor* actor, const char* maskName); |
| 30 | void showShadowMask(LiveActor* actor, ShadowMaskDrawCategory drawCategory); |
| 31 | void hideShadowMask(LiveActor* actor); |
| 32 | void hideShadowMask(LiveActor* actor, ShadowMaskBase* mask); |
| 33 | void hideShadowMask(LiveActor* actor, const char* maskName); |
| 34 | void hideShadowMask(LiveActor* actor, ShadowMaskDrawCategory drawCategory); |
| 35 | bool isHideShadowMask(LiveActor* actor, const char* maskName); |
| 36 | void showDepthShadowMap(LiveActor* actor, s32 mapIdx); |
| 37 | void showDepthShadowMap(const LiveActor* actor, DepthShadowMapInfo* map); |
| 38 | void showDepthShadowMap(LiveActor* actor, const char* mapName); |
| 39 | void hideDepthShadowMap(LiveActor* actor, s32 mapIdx); |
| 40 | void hideDepthShadowMap(const LiveActor* actor, DepthShadowMapInfo* map); |
| 41 | void hideDepthShadowMap(LiveActor* actor, const char* mapName); |
| 42 | bool isHideDepthShadowMap(LiveActor* actor, const char* mapName); |
| 43 | bool isHideDepthShadowMap(LiveActor* actor, s32 mapIdx); |
| 44 | s32 getDepthShadowMapNum(LiveActor* actor); |
| 45 | void validateShadowMask(LiveActor* actor); |
| 46 | void validateShadowMask(LiveActor* actor, ShadowMaskBase* mask); |
| 47 | void validateShadowMask(LiveActor* actor, const char* maskName); |
| 48 | void invalidateShadowMask(LiveActor* actor); |
| 49 | void invalidateShadowMask(LiveActor* actor, ShadowMaskBase* mask); |
| 50 | void invalidateShadowMask(LiveActor* actor, const char* maskName); |
| 51 | void validateDepthShadowMap(LiveActor* actor); |
| 52 | void validateDepthShadowMap(LiveActor* actor, DepthShadowMapInfo* map); |
| 53 | void validateDepthShadowMap(LiveActor* actor, const char* mapName); |
| 54 | void invalidateDepthShadowMap(LiveActor* actor); |
| 55 | void invalidateDepthShadowMap(LiveActor* actor, DepthShadowMapInfo* map); |
| 56 | void invalidateDepthShadowMap(LiveActor* actor, const char* mapName); |
| 57 | void invalidateShadowMask(LiveActor* actor, ShadowMaskDrawCategory drawCategory); |
| 58 | void invalidateShadowMaskIntensityAll(LiveActor* actor); |
| 59 | void setShadowMaskFixed(LiveActor* actor, bool isFixed); |
| 60 | void setShadowMaskDropDir(LiveActor* actor, const sead::Vector3f& dropDir); |
| 61 | void setShadowMaskDropDir(LiveActor* actor, const sead::Vector3f& dropDir, const char* maskName); |
| 62 | void setShadowMaskDropDirActorDown(LiveActor* actor); |
| 63 | void setShadowMaskSize(LiveActor* actor, const char* maskName, const sead::Vector3f& size); |
| 64 | void setShadowMaskSize(LiveActor* actor, const char* maskName, f32 sizeX, f32 sizeY, f32 sizeZ); |
| 65 | void setShadowTextureOffset(LiveActor* actor, const char* maskName, f32 offsetX, f32 offsetY); |
| 66 | void onShadowTextureScroll(LiveActor* actor, const char* maskName); |
| 67 | void offShadowTextureScroll(LiveActor* actor, const char* maskName); |
| 68 | void calcShadowMaskSize(sead::Vector3f* size, LiveActor* actor, const char* maskName); |
| 69 | f32 getShadowMaskDropLength(const LiveActor* actor, const char* maskName); |
| 70 | void setShadowMaskDropLength(LiveActor* actor, f32 dropLength); |
| 71 | void setShadowMaskDropLength(LiveActor* actor, f32 dropLength, const char* maskName); |
| 72 | void setShadowMaskDropLengthScaleWithDrawCategory(LiveActor* actor, f32 dropLengthScale, |
| 73 | ShadowMaskDrawCategory drawCategory); |
| 74 | void setShadowMaskDropLengthWithDrawCategory(LiveActor* actor, f32 dropLength, |
| 75 | ShadowMaskDrawCategory drawCategory); |
| 76 | void setShadowMaskDropLengthEvenWithTarget(ShadowMaskBase* targetMask, const char* maskName, |
| 77 | const sead::Vector3f&); |
| 78 | void setShadowMaskDropLengthEvenWithTarget(ShadowMaskBase* targetMask, const ShadowMaskBase* mask, |
| 79 | const sead::Vector3f&); |
| 80 | void setShadowMaskDropLengthEvenWithDrawCategory(LiveActor*, ShadowMaskDrawCategory drawCategory, |
| 81 | const LiveActor*, const char* maskName); |
| 82 | void setShadowMaskDropLengthEvenPlaneNormal(const LiveActor* actor, const sead::Vector3f&); |
| 83 | s32 getDepthShadowMapWidth(const LiveActor* actor, const char* mapName); |
| 84 | s32 getDepthShadowMapHeight(const LiveActor* actor, const char* mapName); |
| 85 | void setDepthShadowMapSize(const LiveActor* actor, s32 width, s32 height, const char* mapName); |
| 86 | f32 getDepthShadowMapLength(const LiveActor* actor, const char* mapName); |
| 87 | void setDepthShadowMapLength(const LiveActor* actor, f32 length, const char* mapName); |
| 88 | void setDepthShadowMapLengthFromActorTransFlag(const LiveActor* actor, bool isSetShadowLength, |
| 89 | const char* mapName); |
| 90 | void setDepthShadowMapBoundingBox(const LiveActor* actor, const sead::Vector3f& boundMin, |
| 91 | const sead::Vector3f& boundMax, const char* mapName); |
| 92 | void setDepthShadowMapMaskTypeNone(const LiveActor* actor, const char* mapName); |
| 93 | void setDepthShadowMapMaskTypeSelf(const LiveActor* actor, const char* mapName); |
| 94 | void setEnableDepthShadowMapBottomGradation(const LiveActor* actor, const char* mapName, |
| 95 | bool isEnableBottomGradation); |
| 96 | bool isEnableDepthShadowMapBottomGradation(const LiveActor* actor, const char* mapName); |
| 97 | void setDepthShadowMapBottomGradationLength(const LiveActor* actor, const char* mapName, |
| 98 | f32 length); |
| 99 | f32 getDepthShadowMapBottomGradationLength(const LiveActor* actor, const char* mapName); |
| 100 | bool isAppendSubActorDepthShadowMap(const LiveActor* actor); |
| 101 | f32 getShadowMaskDropLengthMax(const LiveActor* actor); |
| 102 | void setShadowMaskColor(const LiveActor* actor, const char* maskName, const sead::Color4f& color); |
| 103 | const sead::Color4f& getShadowMaskColor(const LiveActor* actor, const char* maskName); |
| 104 | void setShadowMaskIntensity(const LiveActor* actor, const char* maskName, f32 intensity); |
| 105 | f32 getShadowMaskIntensity(const LiveActor* actor, const char* maskName); |
| 106 | f32 getShadowMaskTextureFixedScale(const LiveActor* actor, const char* maskName); |
| 107 | void setShadowMaskTextureFixedScale(const LiveActor* actor, const char* maskName, f32 scale); |
| 108 | const sead::Vector3f& getShadowMaskOffset(const LiveActor* actor, const char* maskName); |
| 109 | void setShadowMaskOffset(const LiveActor* actor, const sead::Vector3f& offset, |
| 110 | const char* maskName); |
| 111 | bool isExistOcclusionLightPosPtr(const LiveActor* actor, const char* occSphereName); |
| 112 | void setOcclusionLightPosPtr(const LiveActor* actor, const char* occSphereName, |
| 113 | const sead::Vector3f* lightPosPtr); |
| 114 | void setOcclusionAddOffset(const LiveActor* actor, const char* occSphereName, |
| 115 | const sead::Vector3f& offset); |
| 116 | void enableOcclusion(const LiveActor* actor, const char* occSphereName); |
| 117 | void disableOcclusion(const LiveActor* actor, const char* occSphereName); |
| 118 | bool isEnableOcclusion(const LiveActor* actor, const char* occSphereName); |
| 119 | void calcSphereDoBoundingInfo(sead::Vector3f*, sead::Vector3f*, f32*, f32*, const LiveActor* actor, |
| 120 | const char* occSphereName, f32); |
| 121 | void calcOcclusionSpherePos(sead::Vector3f* pos, const LiveActor* actor, const char* occSphereName); |
| 122 | void changeOcclusionGroup(const LiveActor* actor, const char* occSphereName, const char* groupName); |
| 123 | OccSphere* getOcclusionSphere(const LiveActor* actor, const char* occSphereName); |
| 124 | void setOcclusionIgnoreHostHide(const LiveActor* actor, bool isIgnoreHostHide); |
| 125 | bool findIsInShade(const LiveActor* actor, const sead::Vector3f& pos); |
| 126 | void requestDepthShadowMapLightDir(const LiveActor* actor, const sead::Vector3f& lightDir, |
| 127 | const char* mapName); |
| 128 | void resetRequestDepthShadowMapLightDir(const LiveActor* actor, const char* mapName); |
| 129 | bool isRequestDepthShadowMapLightDir(const LiveActor* actor, const char* mapName); |
| 130 | void onDepthShadowModel(LiveActor* actor); |
| 131 | void offDepthShadowModel(LiveActor* actor); |
| 132 | void updateDepthShadowMapCtrlShapeVisible(LiveActor* actor); |
| 133 | } // namespace al |
| 134 | |