LeviLamina
Loading...
Searching...
No Matches
VoxelShape.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/container/small_vector.h"
7#include "mc/deps/voxel_shapes/Cells.h"
8#include "mc/deps/voxel_shapes/JoinOperation.h"
9
10// auto generated forward declare list
11// clang-format off
12class AABB;
13class Vec3;
14namespace VoxelShapes { struct SerializableVoxelShape; }
15// clang-format on
16
17namespace VoxelShapes {
18
19class VoxelShape {
20public:
21 // member variables
22 // NOLINTBEGIN
23 ::ll::TypedStorage<8, 80, ::VoxelShapes::Cells> mCells;
24 ::ll::TypedStorage<8, 64, ::Bedrock::small_vector<float, 12>> mXCoords;
25 ::ll::TypedStorage<8, 64, ::Bedrock::small_vector<float, 12>> mYCoords;
26 ::ll::TypedStorage<8, 64, ::Bedrock::small_vector<float, 12>> mZCoords;
27 // NOLINTEND
28
29public:
30 // prevent constructor by default
31 VoxelShape& operator=(VoxelShape const&);
32 VoxelShape();
33
34public:
35 // member functions
36 // NOLINTBEGIN
37 MCAPI VoxelShape(::VoxelShapes::VoxelShape&&);
38
39 MCAPI VoxelShape(::VoxelShapes::VoxelShape const&);
40
41 MCAPI VoxelShape(
46 );
47
48 MCAPI ::VoxelShapes::VoxelShape computeFaceShape(uchar face) const;
49
50 MCAPI ::VoxelShapes::VoxelShape& operator=(::VoxelShapes::VoxelShape&&);
51
52 MCAPI bool operator==(::VoxelShapes::VoxelShape const& rhs) const;
53
54 MCAPI ::VoxelShapes::SerializableVoxelShape toSerializable() const;
55
56 MCAPI ~VoxelShape();
57 // NOLINTEND
58
59public:
60 // static functions
61 // NOLINTBEGIN
62 MCAPI static ::VoxelShapes::VoxelShape
63 createCuboidShape(float xMin, float yMin, float zMin, float xMax, float yMax, float zMax);
64
65 MCAPI static ::VoxelShapes::VoxelShape createEmptyShape();
66
67 MCAPI static ::VoxelShapes::VoxelShape createShapeFromAabbs(::gsl::span<::AABB const> boxes);
68
69 MCAPI static ::VoxelShapes::VoxelShape fromSerializable(::VoxelShapes::SerializableVoxelShape const& serializable);
70
71#ifdef LL_PLAT_C
72 MCAPI static bool joinIsNotEmpty(
73 ::VoxelShapes::VoxelShape const& first,
74 ::VoxelShapes::VoxelShape const& second,
75 ::VoxelShapes::JoinOperation operation
76 );
77#endif
78
79 MCAPI static ::VoxelShapes::VoxelShape joinUnoptimized(
80 ::VoxelShapes::VoxelShape const& first,
81 ::VoxelShapes::VoxelShape const& second,
82 ::VoxelShapes::JoinOperation operation
83 );
84
85 MCAPI static ::VoxelShapes::VoxelShape transform(
87 ::Vec3 const& scale,
88 ::Vec3 const& scalePivot,
89 ::Vec3 const& rotation,
90 ::Vec3 const& rotationPivot,
91 ::Vec3 const& translation
92 );
93 // NOLINTEND
94
95public:
96 // static variables
97 // NOLINTBEGIN
98 MCAPI static ::VoxelShapes::VoxelShape const& emptyShape();
99
100 MCAPI static ::VoxelShapes::VoxelShape const& unitCubeShape();
101 // NOLINTEND
102
103public:
104 // constructor thunks
105 // NOLINTBEGIN
106 MCAPI void* $ctor(::VoxelShapes::VoxelShape&&);
107
108 MCAPI void* $ctor(::VoxelShapes::VoxelShape const&);
109
110 MCAPI void* $ctor(
115 );
116 // NOLINTEND
117
118public:
119 // destructor thunk
120 // NOLINTBEGIN
121 MCAPI void $dtor();
122 // NOLINTEND
123};
124
125} // namespace VoxelShapes
Definition AABB.h:18
Definition small_vector.h:8
Definition Vec3.h:10
Definition Cells.h:12
Definition VoxelShape.h:19
Definition SerializableVoxelShape.h:10