LeviLamina
Loading...
Searching...
No Matches
BlockVolumeBase.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/platform/brstd/function_ref.h"
7
8// auto generated forward declare list
9// clang-format off
11class BlockPos;
12class BoundingBox;
13class ChunkPos;
14// clang-format on
15
17public:
18 // virtual functions
19 // NOLINTBEGIN
20 virtual ~BlockVolumeBase() = default;
21
22 virtual ::BoundingBox getBoundingBox() const = 0;
23
24 virtual ::BlockPos getMin() const = 0;
25
26 virtual ::BlockPos getMax() const = 0;
27
28 virtual ::glm::ivec3 getSpan() const = 0;
29
30 virtual int getCapacity() const = 0;
31
32 virtual bool isInside(::BlockPos const& pos) const = 0;
33
34 virtual void translate(::BlockPos const& delta) = 0;
35
36 virtual void forEach(::brstd::function_ref<bool(::BlockPos const&)> callback) const = 0;
37
38 virtual ::std::set<::ChunkPos> getChunks() const = 0;
39
40 virtual ::std::unordered_set<::BlockPos> getFlattenedBlockPositions() const = 0;
41
42 virtual ::std::unique_ptr<::BaseBlockLocationIterator> getIterator() const = 0;
43 // NOLINTEND
44};
Definition BaseBlockLocationIterator.h:8
Definition BlockPos.h:17
Definition BlockVolumeBase.h:16
Definition BoundingBox.h:13
Definition ChunkPos.h:13
Definition function_ref.h:60