cesium-native 0.66.0
Loading...
Searching...
No Matches
ModelSpec.h
1// This file was generated by generate-classes.
2// DO NOT EDIT THIS FILE!
3#pragma once
4
5#include <CesiumGltf/Accessor.h>
6#include <CesiumGltf/Animation.h>
7#include <CesiumGltf/Asset.h>
8#include <CesiumGltf/Buffer.h>
9#include <CesiumGltf/BufferView.h>
10#include <CesiumGltf/Camera.h>
11#include <CesiumGltf/ExternalAsset.h>
12#include <CesiumGltf/File.h>
13#include <CesiumGltf/Image.h>
14#include <CesiumGltf/Library.h>
15#include <CesiumGltf/Material.h>
16#include <CesiumGltf/Mesh.h>
17#include <CesiumGltf/Node.h>
18#include <CesiumGltf/Sampler.h>
19#include <CesiumGltf/Scene.h>
20#include <CesiumGltf/Shape.h>
21#include <CesiumGltf/Skin.h>
22#include <CesiumGltf/Texture.h>
23#include <CesiumUtility/ExtensibleObject.h>
24
25#include <cstdint>
26#include <string>
27#include <vector>
28
29namespace CesiumGltf {
33struct CESIUMGLTF_API ModelSpec : public CesiumUtility::ExtensibleObject {
37 static constexpr const char* TypeName = "Model";
38
42 std::vector<std::string> extensionsUsed;
43
47 std::vector<std::string> extensionsRequired;
48
54 std::vector<CesiumGltf::Accessor> accessors;
55
59 std::vector<CesiumGltf::Animation> animations;
60
65
71 std::vector<CesiumGltf::Buffer> buffers;
72
79 std::vector<CesiumGltf::BufferView> bufferViews;
80
86 std::vector<CesiumGltf::Camera> cameras;
87
94 std::vector<CesiumGltf::ExternalAsset> externalAssets;
95
101 std::vector<CesiumGltf::File> files;
102
108 std::vector<CesiumGltf::Image> images;
109
115 std::vector<CesiumGltf::Material> materials;
116
122 std::vector<CesiumGltf::Mesh> meshes;
123
127 std::vector<CesiumGltf::Node> nodes;
128
134 std::vector<CesiumGltf::Sampler> samplers;
135
141 int32_t scene = -1;
142
146 std::vector<CesiumGltf::Scene> scenes;
147
151 std::vector<CesiumGltf::Shape> shapes;
152
158 std::vector<CesiumGltf::Skin> skins;
159
163 std::vector<CesiumGltf::Texture> textures;
164
171 int64_t getSizeBytes() const {
172 int64_t accum = 0;
173 accum += int64_t(sizeof(ModelSpec));
175 int64_t(sizeof(CesiumUtility::ExtensibleObject));
176 accum += int64_t(sizeof(std::string) * this->extensionsUsed.capacity());
177 accum += int64_t(sizeof(std::string) * this->extensionsRequired.capacity());
178 accum += int64_t(sizeof(CesiumGltf::Accessor) * this->accessors.capacity());
179 for (const CesiumGltf::Accessor& value : this->accessors) {
180 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Accessor));
181 }
182 accum +=
183 int64_t(sizeof(CesiumGltf::Animation) * this->animations.capacity());
184 for (const CesiumGltf::Animation& value : this->animations) {
185 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Animation));
186 }
187 accum += this->asset.getSizeBytes() - int64_t(sizeof(CesiumGltf::Asset));
188 accum += int64_t(sizeof(CesiumGltf::Buffer) * this->buffers.capacity());
189 for (const CesiumGltf::Buffer& value : this->buffers) {
190 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Buffer));
191 }
192 accum +=
193 int64_t(sizeof(CesiumGltf::BufferView) * this->bufferViews.capacity());
194 for (const CesiumGltf::BufferView& value : this->bufferViews) {
195 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::BufferView));
196 }
197 accum += int64_t(sizeof(CesiumGltf::Camera) * this->cameras.capacity());
198 for (const CesiumGltf::Camera& value : this->cameras) {
199 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Camera));
200 }
201 accum += int64_t(
202 sizeof(CesiumGltf::ExternalAsset) * this->externalAssets.capacity());
203 for (const CesiumGltf::ExternalAsset& value : this->externalAssets) {
204 accum +=
205 value.getSizeBytes() - int64_t(sizeof(CesiumGltf::ExternalAsset));
206 }
207 accum += int64_t(sizeof(CesiumGltf::File) * this->files.capacity());
208 for (const CesiumGltf::File& value : this->files) {
209 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::File));
210 }
211 accum += int64_t(sizeof(CesiumGltf::Image) * this->images.capacity());
212 for (const CesiumGltf::Image& value : this->images) {
213 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Image));
214 }
215 accum += int64_t(sizeof(CesiumGltf::Material) * this->materials.capacity());
216 for (const CesiumGltf::Material& value : this->materials) {
217 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Material));
218 }
219 accum += int64_t(sizeof(CesiumGltf::Mesh) * this->meshes.capacity());
220 for (const CesiumGltf::Mesh& value : this->meshes) {
221 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Mesh));
222 }
223 accum += int64_t(sizeof(CesiumGltf::Node) * this->nodes.capacity());
224 for (const CesiumGltf::Node& value : this->nodes) {
225 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Node));
226 }
227 accum += int64_t(sizeof(CesiumGltf::Sampler) * this->samplers.capacity());
228 for (const CesiumGltf::Sampler& value : this->samplers) {
229 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Sampler));
230 }
231 accum += int64_t(sizeof(CesiumGltf::Scene) * this->scenes.capacity());
232 for (const CesiumGltf::Scene& value : this->scenes) {
233 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Scene));
234 }
235 accum += int64_t(sizeof(CesiumGltf::Shape) * this->shapes.capacity());
236 for (const CesiumGltf::Shape& value : this->shapes) {
237 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Shape));
238 }
239 accum += int64_t(sizeof(CesiumGltf::Skin) * this->skins.capacity());
240 for (const CesiumGltf::Skin& value : this->skins) {
241 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Skin));
242 }
243 accum += int64_t(sizeof(CesiumGltf::Texture) * this->textures.capacity());
244 for (const CesiumGltf::Texture& value : this->textures) {
245 accum += value.getSizeBytes() - int64_t(sizeof(CesiumGltf::Texture));
246 }
247 return accum;
248 }
249
250protected:
255 ModelSpec() = default;
256 friend struct Model;
257};
258} // namespace CesiumGltf
Classes for working with glTF models.
This class is not meant to be instantiated directly. Use Accessor instead.
Definition Accessor.h:12
A keyframe animation.
Definition Animation.h:16
Metadata about the glTF asset.
Definition Asset.h:16
int64_t getSizeBytes() const
Calculates the size in bytes of this object, including the contents of all collections,...
Definition Asset.h:59
A view into a buffer generally representing a subset of the buffer.
Definition BufferView.h:15
This class is not meant to be instantiated directly. Use Buffer instead.
Definition Buffer.h:9
A camera's projection. A node MAY reference a camera to apply a transform to place the camera in the ...
Definition Camera.h:18
An external asset that references a file in the files array and may be instantiated by any node.
A reference to an external file. Files MAY be referenced by a URI (or IRI) or a buffer view index.
Definition File.h:19
This class is not meant to be instantiated directly. Use Image instead.
Definition Image.h:10
The material appearance of a primitive.
Definition Material.h:20
A set of primitives to be rendered. Its global transform is defined by a node that references it.
Definition Mesh.h:16
std::vector< CesiumGltf::Camera > cameras
An array of cameras.
Definition ModelSpec.h:86
std::vector< CesiumGltf::Scene > scenes
An array of scenes.
Definition ModelSpec.h:146
ModelSpec()=default
This class is not meant to be instantiated directly. Use Model instead.
std::vector< CesiumGltf::Skin > skins
An array of skins.
Definition ModelSpec.h:158
static constexpr const char * TypeName
The original name of this type.
Definition ModelSpec.h:37
std::vector< CesiumGltf::BufferView > bufferViews
An array of bufferViews.
Definition ModelSpec.h:79
std::vector< CesiumGltf::Animation > animations
An array of keyframe animations.
Definition ModelSpec.h:59
std::vector< CesiumGltf::Sampler > samplers
An array of samplers.
Definition ModelSpec.h:134
std::vector< CesiumGltf::Material > materials
An array of materials.
Definition ModelSpec.h:115
std::vector< CesiumGltf::Shape > shapes
An array of shapes.
Definition ModelSpec.h:151
CesiumGltf::Asset asset
Metadata about the glTF asset.
Definition ModelSpec.h:64
int32_t scene
The index of the default scene.
Definition ModelSpec.h:141
std::vector< std::string > extensionsRequired
Names of glTF extensions required to properly load this asset.
Definition ModelSpec.h:47
std::vector< CesiumGltf::Mesh > meshes
An array of meshes.
Definition ModelSpec.h:122
std::vector< CesiumGltf::Node > nodes
An array of nodes.
Definition ModelSpec.h:127
std::vector< CesiumGltf::Image > images
An array of images.
Definition ModelSpec.h:108
std::vector< CesiumGltf::Accessor > accessors
An array of accessors.
Definition ModelSpec.h:54
std::vector< CesiumGltf::Texture > textures
An array of textures.
Definition ModelSpec.h:163
std::vector< std::string > extensionsUsed
Names of glTF extensions used in this asset.
Definition ModelSpec.h:42
int64_t getSizeBytes() const
Calculates the size in bytes of this object, including the contents of all collections,...
Definition ModelSpec.h:171
std::vector< CesiumGltf::ExternalAsset > externalAssets
An array of external assets.
Definition ModelSpec.h:94
std::vector< CesiumGltf::File > files
An array of file references.
Definition ModelSpec.h:101
std::vector< CesiumGltf::Buffer > buffers
An array of buffers.
Definition ModelSpec.h:71
A node in the node hierarchy. When the node contains skin, all mesh.primitives MUST contain JOINTS_0 ...
Definition Node.h:25
Texture sampler properties for filtering and wrapping modes.
Definition Sampler.h:14
The root nodes of a scene.
Definition Scene.h:15
A generic, re-usable shape definition with no inherent meaning attached to it.
Definition Shape.h:21
Joints and matrices defining a skin.
Definition Skin.h:15
A texture and its sampler.
Definition Texture.h:14
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 ...