1#include <game/mLib/m_3d.hpp>
2#include <game/mLib/m_heap.hpp>
3#include <constants/sjis_constants.h>
7m3d::banm_c::~banm_c() {
11void m3d::banm_c::remove() {
12 if (mpObj !=
nullptr) {
13 mpObj->DetachFromParent();
18 if (mpHeap !=
nullptr) {
19 mHeap::destroyFrmHeap(mpHeap);
24bool m3d::banm_c::createAllocator(mAllocator_c *allocator,
size_t *size) {
25 size_t aligned =
nw4r::ut::RoundUp(mHeap::frmHeapCost(*size, 0x20), 0x20) - mHeap::frmHeapCost(0, 0x20);
28 mpHeap = mHeap::makeFrmHeap(aligned, allocator->mpHeap, M3D_BANM_HEAP_NAME, sHeapAlignment, 0);
29 mAllocator.attach(mpHeap, 0x20);
33bool m3d::banm_c::IsBound()
const {
34 if (mpObj ==
nullptr) {
37 return mpObj->TestAnmFlag(nw4r::g3d::AnmObj::IS_BOUND);
40float m3d::banm_c::getFrame()
const {
41 return mpObj->GetFrame();
44void m3d::banm_c::setFrameOnly(
float frame) {
45 mpObj->SetFrame(frame);
48float m3d::banm_c::getRate()
const {
49 return mpObj->GetUpdateRate();
52void m3d::banm_c::setRate(
float frame) {
53 mpObj->SetUpdateRate(frame);
static u32 sHeapAlignment
T RoundUp(T x, u32 base)
Rounds x up to a multiple of base.