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 cereal { struct ReflectionCtx; }
18// clang-format on
19
20namespace Editor {
21
22class RelativeVolumeListBlockVolume : public ::BlockVolumeBase {
23public:
24 // member variables
25 // NOLINTBEGIN
33 // NOLINTEND
34
35public:
36 // prevent constructor by default
37 RelativeVolumeListBlockVolume();
38
39public:
40 // virtual functions
41 // NOLINTBEGIN
42 virtual ::BoundingBox getBoundingBox() const /*override*/;
43
44 virtual ::BlockPos getMin() const /*override*/;
45
46 virtual ::BlockPos getMax() const /*override*/;
47
48 virtual ::glm::ivec3 getSpan() const /*override*/;
49
50 virtual int getCapacity() const /*override*/;
51
52 virtual bool isInside(::BlockPos const& pos) const /*override*/;
53
54 virtual void translate(::BlockPos const& delta) /*override*/;
55
56 virtual void forEach(::brstd::function_ref<bool(::BlockPos const&)> callback) const /*override*/;
57
58 virtual ::std::set<::ChunkPos> getChunks() const /*override*/;
59
60 virtual ::std::unordered_set<::BlockPos> getFlattenedBlockPositions() const /*override*/;
61
62 virtual ::std::unique_ptr<::BaseBlockLocationIterator> getIterator() const /*override*/;
63
64 virtual ~RelativeVolumeListBlockVolume() /*override*/;
65 // NOLINTEND
66
67public:
68 // member functions
69 // NOLINTBEGIN
71
73
75 ::std::vector<::Vec3> const& blockPositions,
76 ::std::optional<::BlockPos> const& origin
77 );
78
79 MCNAPI void add(::SimpleBlockVolume const& _relativeVolume);
80
81 MCNAPI void add(::std::vector<::Vec3> const& blockPositions);
82
83 MCNAPI void add(::Vec3 const& pos);
84
85 MCNAPI ::std::vector<::SimpleBlockVolume>
87
88 MCNAPI void clear();
89
90 MCNAPI void enableAdjacencyMap();
91
92#ifdef LL_PLAT_C
93 MCNAPI void forEachRelativeBlockPosition(::std::function<bool(::BlockPos const&)> callback) const;
94#endif
95
96 MCNAPI ::std::vector<::BlockPos> getBlockPositionList(bool relative) const;
97
98 MCNAPI ::std::unordered_set<::BlockPos> getBlockPositionSet(bool relative) const;
99
100 MCNAPI bool hasAdjacent(::BlockPos const& pos, ::BlockPos const& offset) const;
101
102#ifdef LL_PLAT_C
103 MCNAPI void moveTo(::BlockPos const& pos);
104#endif
105
106 MCNAPI ::Editor::RelativeVolumeListBlockVolume& operator=(::Vec3 const& location);
107
108 MCNAPI ::Editor::RelativeVolumeListBlockVolume& operator=(::std::vector<::Vec3> const& locations);
109
110 MCNAPI ::Editor::RelativeVolumeListBlockVolume& operator=(::Editor::RelativeVolumeListBlockVolume&& rhs);
111
112 MCNAPI ::Editor::RelativeVolumeListBlockVolume& operator=(::Editor::RelativeVolumeListBlockVolume const& rhs);
113
115
116 MCNAPI void remove(::std::vector<::Vec3> const& blockPositions);
117
118 MCNAPI void remove(::Vec3 const& pos);
119
120 MCNAPI void remove(::SimpleBlockVolume const& relativeVolume);
121 // NOLINTEND
122
123public:
124 // static functions
125 // NOLINTBEGIN
127 // NOLINTEND
128
129public:
130 // constructor thunks
131 // NOLINTBEGIN
133
135
136 MCNAPI void* $ctor(::std::vector<::Vec3> const& blockPositions, ::std::optional<::BlockPos> const& origin);
137 // NOLINTEND
138
139public:
140 // destructor thunk
141 // NOLINTBEGIN
142 MCNAPI void $dtor();
143 // NOLINTEND
144
145public:
146 // virtual function thunks
147 // NOLINTBEGIN
148 MCNAPI ::BoundingBox $getBoundingBox() const;
149
150 MCNAPI ::BlockPos $getMin() const;
151
152 MCNAPI ::BlockPos $getMax() const;
153
154 MCNAPI ::glm::ivec3 $getSpan() const;
155
156 MCNAPI int $getCapacity() const;
157
158 MCNAPI bool $isInside(::BlockPos const& pos) const;
159
160 MCNAPI void $translate(::BlockPos const& delta);
161
162 MCNAPI void $forEach(::brstd::function_ref<bool(::BlockPos const&)> callback) const;
163
164 MCNAPI ::std::set<::ChunkPos> $getChunks() const;
165
166 MCNAPI ::std::unordered_set<::BlockPos> $getFlattenedBlockPositions() const;
167
168 MCNAPI ::std::unique_ptr<::BaseBlockLocationIterator> $getIterator() const;
169
170
171 // NOLINTEND
172
173public:
174 // vftables
175 // NOLINTBEGIN
176 MCNAPI static void** $vftable();
177 // NOLINTEND
178};
179
180} // namespace Editor
Definition BaseBlockLocationIterator.h:8
Definition BlockPos.h:19
Definition BlockVolumeBase.h:16
Definition BoundingBox.h:13
Definition ChunkPos.h:11
Definition RelativeVolumeListBlockVolume.h:22
MCAPI::BoundingBox $getBoundingBox() const
MCAPI::Editor::RelativeVolumeListBlockVolume & operator=(::Vec3 const &location)
MCAPI::BlockPos $getMax() const
MCAPI void remove(::SimpleBlockVolume const &relativeVolume)
MCAPI void * $ctor(::Editor::RelativeVolumeListBlockVolume &&rhs)
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 remove(::std::vector<::Vec3 > const &blockPositions)
static MCAPI void bindType(::cereal::ReflectionCtx &ctx)
MCAPI RelativeVolumeListBlockVolume(::Editor::RelativeVolumeListBlockVolume const &rhs)
MCAPI ::std::vector<::BlockPos > getBlockPositionList(bool relative) const
MCAPI void add(::std::vector<::Vec3 > const &blockPositions)
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::BlockPos $getMin() const
MCAPI ::std::set<::ChunkPos > $getChunks() const
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 remove(::Vec3 const &pos)
MCAPI bool $isInside(::BlockPos const &pos) const
MCAPI ::std::unordered_set<::BlockPos > getBlockPositionSet(bool relative) const
MCAPI RelativeVolumeListBlockVolume(::std::vector<::Vec3 > const &blockPositions, ::std::optional<::BlockPos > const &origin)
MCAPI::Editor::RelativeVolumeListBlockVolume & operator=(::Editor::RelativeVolumeListBlockVolume &&rhs)
MCAPI ::std::vector<::SimpleBlockVolume > calculateVolumetricDifference(::SimpleBlockVolume const &volA, ::SimpleBlockVolume const &volB)
Definition SimpleBlockVolume.h:20
Definition Vec3.h:10
Definition function_ref.h:60
Definition ReflectionCtx.h:11
Definition ctx.h:5
Definition Alias.h:14