Skip to content

Commit a42b513

Browse files
authored
Merge pull request #1329 from CesiumGS/voxel-mode
Add formal constant for voxel extension
2 parents 476418d + 1f89425 commit a42b513

File tree

4 files changed

+31
-3
lines changed

4 files changed

+31
-3
lines changed

CHANGES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
- Added a constructor overload for `Cesium3DTilesSelection::ITwinCesiumCuratedContentLoaderFactory` to override the iTwin Cesium Curated Content base URL. This makes it possible to connect to alternate servers (e.g., staging, QA, mock servers).
1212
- Added `ViewUpdateResult::tileScreenSpaceErrorThisFrame`, which stores the screen space errors computed for tiles in `tilesToRenderThisFrame`.
13+
- Added `CesiumGltf::ExtensionExtPrimitiveVoxels::MODE`, representing the primitive mode constant used by the extension.
1314

1415
##### Fixes :wrench:
1516

CesiumGltf/generated/include/CesiumGltf/ExtensionExtPrimitiveVoxels.h renamed to CesiumGltf/generated/include/CesiumGltf/ExtensionExtPrimitiveVoxelsSpec.h

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace CesiumGltf {
1717
* @brief `EXT_primitive_voxels` extension for a primitive in a glTF model to
1818
* indicate voxel-based volumetric data
1919
*/
20-
struct CESIUMGLTF_API ExtensionExtPrimitiveVoxels final
20+
struct CESIUMGLTF_API ExtensionExtPrimitiveVoxelsSpec
2121
: public CesiumUtility::ExtensibleObject {
2222
/**
2323
* @brief The original name of this type.
@@ -60,7 +60,7 @@ struct CESIUMGLTF_API ExtensionExtPrimitiveVoxels final
6060
*/
6161
int64_t getSizeBytes() const {
6262
int64_t accum = 0;
63-
accum += int64_t(sizeof(ExtensionExtPrimitiveVoxels));
63+
accum += int64_t(sizeof(ExtensionExtPrimitiveVoxelsSpec));
6464
accum += CesiumUtility::ExtensibleObject::getSizeBytes() -
6565
int64_t(sizeof(CesiumUtility::ExtensibleObject));
6666
accum += int64_t(sizeof(int64_t) * this->dimensions.capacity());
@@ -77,5 +77,12 @@ struct CESIUMGLTF_API ExtensionExtPrimitiveVoxels final
7777
}
7878
return accum;
7979
}
80+
81+
protected:
82+
/**
83+
* @brief This class is not meant to be instantiated directly. Use {@link ExtensionExtPrimitiveVoxels} instead.
84+
*/
85+
ExtensionExtPrimitiveVoxelsSpec() = default;
86+
friend struct ExtensionExtPrimitiveVoxels;
8087
};
8188
} // namespace CesiumGltf
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#pragma once
2+
3+
#include <CesiumGltf/ExtensionExtPrimitiveVoxelsSpec.h>
4+
5+
namespace CesiumGltf {
6+
7+
/** @copydoc ExtensionExtPrimitiveVoxelsSpec */
8+
struct CESIUMGLTF_API ExtensionExtPrimitiveVoxels final
9+
: public ExtensionExtPrimitiveVoxelsSpec {
10+
/**
11+
* @brief The constant used to indicate a voxel primitive in \ref
12+
* CesiumGltf::MeshPrimitive::mode.
13+
*/
14+
static constexpr int32_t MODE = 2147483647;
15+
16+
ExtensionExtPrimitiveVoxels() = default;
17+
};
18+
19+
} // namespace CesiumGltf

tools/generate-classes/glTF.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,8 @@
162162
"overrideName": "ExtensionExtImplicitCylinderRegion"
163163
},
164164
"EXT_primitive_voxels glTF Mesh Primitive extension": {
165-
"overrideName": "ExtensionExtPrimitiveVoxels"
165+
"overrideName": "ExtensionExtPrimitiveVoxels",
166+
"toBeInherited": true
166167
},
167168
"KHR_gaussian_splatting glTF Mesh Primitive Extension": {
168169
"overrideName": "ExtensionKhrGaussianSplatting",

0 commit comments

Comments
 (0)