29 enum class CornerIndex : uchar {
40 enum class IntersectionResult :
int {
48 using CornerHandle = uchar;
53 ::ll::TypedStorage<4, 12, ::BlockPos> mFrom;
54 ::ll::TypedStorage<4, 12, ::BlockPos> mTo;
64 virtual ::BlockPos getMin() const ;
70 virtual ::glm::ivec3 getSpan() const ;
72 virtual
int getCapacity() const ;
74 virtual
bool isInside(::
BlockPos const& pos) const ;
76 virtual
void translate(::
BlockPos const& delta) ;
78 virtual
void forEach(::brstd::function_ref<
bool(::
BlockPos const&)> callback) const ;
82 virtual ::
std::unordered_set<::
BlockPos> getFlattenedBlockPositions() const ;
90 MCAPI explicit SimpleBlockVolume(::
BoundingBox const& bounds);
92 MCAPI SimpleBlockVolume(::SimpleBlockVolume&& volume);
94 MCAPI SimpleBlockVolume(::SimpleBlockVolume const& volume);
96 MCAPI SimpleBlockVolume(::
BlockPos const& from, ::glm::ivec3 const& size);
106 MCAPI ::SimpleBlockVolumeIterator begin()
const;
108 MCFOLD
bool contains(
::BlockPos const& pos)
const;
112 MCAPI
bool doesBlockTouchFaces(
::BlockPos const& blockPos)
const;
115 MCAPI uchar getCornerHandle(::SimpleBlockVolume::CornerIndex cornerIndex)
const;
117 MCAPI ::BlockPos getCornerPosition(uchar cornerHandle)
const;
120 MCFOLD ::BlockPos getFrom()
const;
123 MCAPI ::AABB getLocalAABB()
const;
126 MCFOLD ::BlockPos getTo()
const;
129 MCAPI ::AABB getWorldAABB()
const;
132 MCAPI ::SimpleBlockVolume::IntersectionResult intersects(::SimpleBlockVolume
const& other)
const;
134 MCAPI ::SimpleBlockVolume& operator=(::SimpleBlockVolume&& other);
136 MCAPI ::SimpleBlockVolume& operator=(::SimpleBlockVolume
const& other);
138 MCAPI
bool operator==(::SimpleBlockVolume
const&)
const;
141 MCAPI ::SimpleBlockVolume& setCornerPosition(uchar cornerHandle,
::BlockPos const& pos);
144 MCAPI ::SimpleBlockVolume& setPosition(
::BlockPos const& newPosition);
147 MCAPI ::SimpleBlockVolume& translateCorner(uchar cornerHandle, ::glm::ivec3
const& delta);
150 MCAPI ::SimpleBlockVolume translated(::glm::ivec3
const& delta)
const;
159 MCAPI static ::glm::vec3 getCornerUnitOffset(::SimpleBlockVolume::CornerIndex cornerIndex);
168 MCFOLD
void* $ctor(::SimpleBlockVolume&& volume);
170 MCFOLD
void* $ctor(::SimpleBlockVolume
const& volume);
172 MCAPI
void* $ctor(
::BlockPos const& from, ::glm::ivec3
const& size);
186 MCAPI ::BlockPos $getMin()
const;
188 MCAPI ::BlockPos $getMax()
const;
190 MCAPI ::BoundingBox $getBoundingBox()
const;
192 MCAPI ::glm::ivec3 $getSpan()
const;
194 MCAPI
int $getCapacity()
const;
196 MCFOLD
bool $isInside(
::BlockPos const& pos)
const;
198 MCAPI
void $translate(
::BlockPos const& delta);
202 MCAPI ::std::set<::ChunkPos> $getChunks()
const;
204 MCAPI ::std::unordered_set<::BlockPos> $getFlattenedBlockPositions()
const;
206 MCAPI ::std::unique_ptr<::BaseBlockLocationIterator> $getIterator()
const;
214 MCAPI
static void** $vftable();