Skip to content
LeviMC
English
AutoLightDark
LeviLamina
Loading...
Searching...
No Matches
RelativeVolumeListBlockVolume.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#include "mc/world/level/block/BlockVolumeBase.h"
8
9// auto generated forward declare list
10// clang-format off
12class BlockPos;
13class BoundingBox;
14class ChunkPos;
16class Vec3;
17namespace Editor { class BlockAdjacencyItem; }
18namespace Editor { class BlockAdjacencyMap; }
19namespace cereal { struct ReflectionCtx; }
20// clang-format on
21
22namespace Editor {
23
24class RelativeVolumeListBlockVolume : public ::BlockVolumeBase {
25public:
26 // member variables
27 // NOLINTBEGIN
38 // NOLINTEND
39
40public:
41 // prevent constructor by default
42 RelativeVolumeListBlockVolume();
43
44public:
45 // virtual functions
46 // NOLINTBEGIN
47 virtual ::BoundingBox getBoundingBox() const /*override*/;
48
49 virtual ::BlockPos getMin() const /*override*/;
50
51 virtual ::BlockPos getMax() const /*override*/;
52
53 virtual ::glm::ivec3 getSpan() const /*override*/;
54
55 virtual int getCapacity() const /*override*/;
56
57 virtual bool isInside(::BlockPos const& pos) const /*override*/;
58
59 virtual void translate(::BlockPos const& delta) /*override*/;
60
61 virtual void forEach(::brstd::function_ref<bool(::BlockPos const&)> callback) const /*override*/;
62
63 virtual ::std::set<::ChunkPos> getChunks() const /*override*/;
64
65 virtual ::std::unordered_set<::BlockPos> getFlattenedBlockPositions() const /*override*/;
66
67 virtual ::std::unique_ptr<::BaseBlockLocationIterator> getIterator() const /*override*/;
68
69 virtual ~RelativeVolumeListBlockVolume() /*override*/;
70 // NOLINTEND
71
72public:
73 // member functions
74 // NOLINTBEGIN
76
78
80 ::std::vector<::BlockPos> const& blockPositions,
81 ::std::optional<::BlockPos> const& origin
82 );
83
85 ::std::vector<::Vec3> const& blockPositions,
86 ::std::optional<::BlockPos> const& origin
87 );
88
89 MCNAPI RelativeVolumeListBlockVolume(::BlockPos const& pos, ::std::optional<::BlockPos> const& origin);
90
91 MCNAPI RelativeVolumeListBlockVolume(::Vec3 const& pos, ::std::optional<::BlockPos> const& origin);
92
93 MCNAPI RelativeVolumeListBlockVolume(::SimpleBlockVolume const& volume, ::std::optional<::BlockPos> const& origin);
94
95 MCNAPI void _addVolumesBulkViaGrid(::std::vector<::SimpleBlockVolume> const& volumes);
96
97 MCNAPI void add(::SimpleBlockVolume const& _relativeVolume);
98
99 MCNAPI void add(::Vec3 const& pos);
100
102
103 MCNAPI void add(::std::vector<::SimpleBlockVolume> const& volumes);
104
105 MCNAPI ::std::vector<::SimpleBlockVolume>
107
108#ifdef LL_PLAT_C
109 MCNAPI void clear();
110#endif
111
112 MCNAPI void compact();
113
114 MCNAPI void enableAdjacencyMap() const;
115
116#ifdef LL_PLAT_C
117 MCNAPI ::Editor::BlockAdjacencyItem getAdjacencyBits(::BlockPos const& pos) const;
118#endif
119
120 MCNAPI ::std::vector<::BlockPos> getBlockPositionList(bool relative) const;
121
122 MCNAPI ::std::vector<::Vec3> getVec3PositionList(bool relative) const;
123
124 MCNAPI bool hasAdjacent(::BlockPos const& pos, ::BlockPos const& offset) const;
125
126 MCNAPI void moveTo(::BlockPos const& pos);
127
128 MCNAPI ::Editor::RelativeVolumeListBlockVolume& operator=(::std::vector<::Vec3> const& locations);
129
130 MCNAPI ::Editor::RelativeVolumeListBlockVolume& operator=(::Editor::RelativeVolumeListBlockVolume&& rhs);
131
132 MCNAPI ::Editor::RelativeVolumeListBlockVolume& operator=(::Editor::RelativeVolumeListBlockVolume const& rhs);
133
134 MCNAPI ::Editor::RelativeVolumeListBlockVolume& operator=(::SimpleBlockVolume const& volume);
135
137
138 MCNAPI void remove(::std::unordered_set<::BlockPos> const& blockPositions);
139
140 MCNAPI void remove(::std::vector<::BlockPos> const& blockPositions);
141
142 MCNAPI void remove(::std::vector<::Vec3> const& blockPositions);
143
144 MCNAPI void remove(::Vec3 const& pos);
145
146 MCNAPI void remove(::SimpleBlockVolume const& relativeVolume);
147 // NOLINTEND
148
149public:
150 // static functions
151 // NOLINTBEGIN
152 MCNAPI static ::std::vector<::SimpleBlockVolume>
153 _greedyBoxCoverFromGrid(::Editor::BlockAdjacencyMap& remaining, ::std::vector<::BlockPos>& voxels);
154
156
157 MCNAPI static ::Editor::RelativeVolumeListBlockVolume fromValidatedDisjointVolumes(
158 ::std::vector<::SimpleBlockVolume> volumes,
159 int capacity,
160 ::std::optional<::BlockPos> const& origin
161 );
162 // NOLINTEND
163
164public:
165 // constructor thunks
166 // NOLINTBEGIN
168
170
171 MCNAPI void* $ctor(::std::vector<::BlockPos> const& blockPositions, ::std::optional<::BlockPos> const& origin);
172
173 MCNAPI void* $ctor(::std::vector<::Vec3> const& blockPositions, ::std::optional<::BlockPos> const& origin);
174
175 MCNAPI void* $ctor(::BlockPos const& pos, ::std::optional<::BlockPos> const& origin);
176
177 MCNAPI void* $ctor(::Vec3 const& pos, ::std::optional<::BlockPos> const& origin);
178
179 MCNAPI void* $ctor(::SimpleBlockVolume const& volume, ::std::optional<::BlockPos> const& origin);
180 // NOLINTEND
181
182public:
183 // destructor thunk
184 // NOLINTBEGIN
185 MCNAPI void $dtor();
186 // NOLINTEND
187
188public:
189 // virtual function thunks
190 // NOLINTBEGIN
191 MCNAPI ::BoundingBox $getBoundingBox() const;
192
193 MCNAPI ::BlockPos $getMin() const;
194
195 MCNAPI ::BlockPos $getMax() const;
196
197 MCNAPI ::glm::ivec3 $getSpan() const;
198
199 MCNAPI int $getCapacity() const;
200
201 MCNAPI bool $isInside(::BlockPos const& pos) const;
202
203 MCNAPI void $translate(::BlockPos const& delta);
204
205 MCNAPI void $forEach(::brstd::function_ref<bool(::BlockPos const&)> callback) const;
206
207 MCNAPI ::std::set<::ChunkPos> $getChunks() const;
208
209 MCNAPI ::std::unordered_set<::BlockPos> $getFlattenedBlockPositions() const;
210
211 MCNAPI ::std::unique_ptr<::BaseBlockLocationIterator> $getIterator() const;
212
213
214 // NOLINTEND
215
216public:
217 // vftables
218 // NOLINTBEGIN
219 MCNAPI static void** $vftable();
220 // NOLINTEND
221};
222
223} // namespace Editor
Definition BaseBlockLocationIterator.h:8
Definition BlockPos.h:14
Definition BlockVolumeBase.h:16
Definition BoundingBox.h:13
Definition ChunkPos.h:13
Definition BlockAdjacencyItem.h:7
Definition BlockAdjacencyMap.h:13
Definition RelativeVolumeListBlockVolume.h:24
MCAPI::BoundingBox $getBoundingBox() const
MCAPI::Editor::RelativeVolumeListBlockVolume & operator=(::SimpleBlockVolume const &volume)
MCAPI void remove(::std::vector<::BlockPos > const &blockPositions)
MCAPI::BlockPos $getMax() const
MCAPI RelativeVolumeListBlockVolume(::BlockPos const &pos, ::std::optional<::BlockPos > const &origin)
MCAPI void remove(::SimpleBlockVolume const &relativeVolume)
MCAPI void * $ctor(::Editor::RelativeVolumeListBlockVolume &&rhs)
MCAPI void moveTo(::BlockPos const &pos)
MCAPI ::std::unique_ptr<::BaseBlockLocationIterator > $getIterator() const
MCAPI::Editor::RelativeVolumeListBlockVolume & operator=(::Editor::RelativeVolumeListBlockVolume const &rhs)
MCAPI ::std::unordered_set<::BlockPos > $getFlattenedBlockPositions() const
MCAPI bool hasAdjacent(::BlockPos const &pos, ::BlockPos const &offset) const
MCAPI void add(::Editor::RelativeVolumeListBlockVolume const &volume)
static MCAPI ::std::vector<::SimpleBlockVolume > _greedyBoxCoverFromGrid(::Editor::BlockAdjacencyMap &remaining, ::std::vector<::BlockPos > &voxels)
MCAPI void * $ctor(::std::vector<::BlockPos > const &blockPositions, ::std::optional<::BlockPos > const &origin)
MCAPI void remove(::std::vector<::Vec3 > const &blockPositions)
static MCAPI void bindType(::cereal::ReflectionCtx &ctx)
MCAPI RelativeVolumeListBlockVolume(::Editor::RelativeVolumeListBlockVolume const &rhs)
MCAPI RelativeVolumeListBlockVolume(::std::vector<::BlockPos > const &blockPositions, ::std::optional<::BlockPos > const &origin)
MCAPI ::std::vector<::BlockPos > getBlockPositionList(bool relative) const
MCAPI void * $ctor(::std::vector<::Vec3 > const &blockPositions, ::std::optional<::BlockPos > const &origin)
MCAPI void * $ctor(::Editor::RelativeVolumeListBlockVolume const &rhs)
MCAPI void $translate(::BlockPos const &delta)
MCAPI bool operator==(::Editor::RelativeVolumeListBlockVolume const &rhs) const
MCAPI::Editor::RelativeVolumeListBlockVolume & operator=(::std::vector<::Vec3 > const &locations)
MCAPI void * $ctor(::Vec3 const &pos, ::std::optional<::BlockPos > const &origin)
MCAPI::BlockPos $getMin() const
MCAPI RelativeVolumeListBlockVolume(::Vec3 const &pos, ::std::optional<::BlockPos > const &origin)
MCAPI void * $ctor(::BlockPos const &pos, ::std::optional<::BlockPos > const &origin)
MCAPI ::std::set<::ChunkPos > $getChunks() const
MCAPI RelativeVolumeListBlockVolume(::SimpleBlockVolume const &volume, ::std::optional<::BlockPos > const &origin)
MCAPI::glm::ivec3 $getSpan() const
MCAPI void add(::SimpleBlockVolume const &_relativeVolume)
MCAPI void $forEach(::brstd::function_ref< bool(::BlockPos const &)> callback) const
MCAPI void add(::Vec3 const &pos)
MCAPI RelativeVolumeListBlockVolume(::Editor::RelativeVolumeListBlockVolume &&rhs)
MCAPI void * $ctor(::SimpleBlockVolume const &volume, ::std::optional<::BlockPos > const &origin)
MCAPI void add(::std::vector<::SimpleBlockVolume > const &volumes)
MCAPI void remove(::Vec3 const &pos)
MCAPI bool $isInside(::BlockPos const &pos) const
MCAPI void _addVolumesBulkViaGrid(::std::vector<::SimpleBlockVolume > const &volumes)
MCAPI ::std::vector<::Vec3 > getVec3PositionList(bool relative) const
static MCAPI ::Editor::RelativeVolumeListBlockVolume fromValidatedDisjointVolumes(::std::vector<::SimpleBlockVolume > volumes, int capacity, ::std::optional<::BlockPos > const &origin)
MCAPI RelativeVolumeListBlockVolume(::std::vector<::Vec3 > const &blockPositions, ::std::optional<::BlockPos > const &origin)
MCAPI void remove(::std::unordered_set<::BlockPos > const &blockPositions)
MCAPI::Editor::RelativeVolumeListBlockVolume & operator=(::Editor::RelativeVolumeListBlockVolume &&rhs)
MCAPI ::std::vector<::SimpleBlockVolume > calculateVolumetricDifference(::SimpleBlockVolume const &volA, ::SimpleBlockVolume const &volB)
Definition SimpleBlockVolume.h:18
Definition Vec3.h:10
Definition function_ref.h:60
Definition ReflectionCtx.h:11
Definition ctx.h:5
Definition Alias.h:14