cesium-native 0.43.0
Loading...
Searching...
No Matches
ExtensionModelExtStructuralMetadata.h
1// This file was generated by generate-classes.
2// DO NOT EDIT THIS FILE!
3#pragma once
4
5#include <CesiumGltf/Library.h>
6#include <CesiumGltf/PropertyAttribute.h>
7#include <CesiumGltf/PropertyTable.h>
8#include <CesiumGltf/PropertyTexture.h>
9#include <CesiumGltf/Schema.h>
10#include <CesiumUtility/ExtensibleObject.h>
11#include <CesiumUtility/IntrusivePointer.h>
12
13#include <optional>
14#include <string>
15#include <vector>
16
17namespace CesiumGltf {
22struct CESIUMGLTF_API ExtensionModelExtStructuralMetadata final
27 static constexpr const char* TypeName = "ExtensionModelExtStructuralMetadata";
30 static constexpr const char* ExtensionName = "EXT_structural_metadata";
31
36
40 std::optional<std::string> schemaUri;
41
46 std::vector<CesiumGltf::PropertyTable> propertyTables;
47
52 std::vector<CesiumGltf::PropertyTexture> propertyTextures;
53
58 std::vector<CesiumGltf::PropertyAttribute> propertyAttributes;
59
66 int64_t getSizeBytes() const {
67 int64_t accum = 0;
68 accum += int64_t(sizeof(ExtensionModelExtStructuralMetadata));
70 int64_t(sizeof(CesiumUtility::ExtensibleObject));
71 accum += this->schema->getSizeBytes();
72 if (this->schemaUri) {
73 accum += int64_t(this->schemaUri->capacity() * sizeof(char));
74 }
75 accum += int64_t(
76 sizeof(CesiumGltf::PropertyTable) * this->propertyTables.capacity());
77 for (const CesiumGltf::PropertyTable& value : this->propertyTables) {
78 accum +=
79 value.getSizeBytes() - int64_t(sizeof(CesiumGltf::PropertyTable));
80 }
81 accum += int64_t(
83 this->propertyTextures.capacity());
84 for (const CesiumGltf::PropertyTexture& value : this->propertyTextures) {
85 accum +=
86 value.getSizeBytes() - int64_t(sizeof(CesiumGltf::PropertyTexture));
87 }
88 accum += int64_t(
90 this->propertyAttributes.capacity());
91 for (const CesiumGltf::PropertyAttribute& value :
92 this->propertyAttributes) {
93 accum +=
94 value.getSizeBytes() - int64_t(sizeof(CesiumGltf::PropertyAttribute));
95 }
96 return accum;
97 }
98};
99} // namespace CesiumGltf
A smart pointer that calls addReference and releaseReference on the controlled object.
Classes for working with glTF models.
glTF extension that provides structural metadata about vertices, texels, and features in a glTF asset...
CesiumUtility::IntrusivePointer< CesiumGltf::Schema > schema
An object defining classes and enums.
std::vector< CesiumGltf::PropertyAttribute > propertyAttributes
An array of property attribute definitions, which may be referenced by index.
std::optional< std::string > schemaUri
The URI (or IRI) of the external schema file.
std::vector< CesiumGltf::PropertyTable > propertyTables
An array of property table definitions, which may be referenced by index.
std::vector< CesiumGltf::PropertyTexture > propertyTextures
An array of property texture definitions, which may be referenced by index.
int64_t getSizeBytes() const
Calculates the size in bytes of this object, including the contents of all collections,...
Properties conforming to a class, organized as property values stored in attributes.
Properties conforming to a class, organized as property values stored in binary columnar arrays.
Properties conforming to a class, organized as property values stored in textures.
The base class for objects that have extensions and extras.
int64_t getSizeBytes() const
Calculates the size in bytes of this ExtensibleObject, including all of its extras but NOT including ...