Files

71 lines
2.8 KiB
C++

// This file was generated by generate-classes.
// DO NOT EDIT THIS FILE!
#pragma once
#include <Cesium3DTiles/Library.h>
#include <CesiumUtility/ExtensibleObject.h>
#include <vector>
namespace Cesium3DTiles {
/**
* @brief A bounding volume that encloses a tile or its content. At least one
* bounding volume property is required. Bounding volumes include `box`,
* `region`, or `sphere`.
*/
struct CESIUM3DTILES_API BoundingVolume final
: public CesiumUtility::ExtensibleObject {
/**
* @brief The original name of this type.
*/
static constexpr const char* TypeName = "BoundingVolume";
/**
* @brief An array of 12 numbers that define an oriented bounding box. The
* first three elements define the x, y, and z values for the center of the
* box. The next three elements (with indices 3, 4, and 5) define the x axis
* direction and half-length. The next three elements (indices 6, 7, and 8)
* define the y axis direction and half-length. The last three elements
* (indices 9, 10, and 11) define the z axis direction and half-length.
*/
std::vector<double> box;
/**
* @brief An array of six numbers that define a bounding geographic region in
* EPSG:4979 coordinates with the order [west, south, east, north, minimum
* height, maximum height]. Longitudes and latitudes are in radians. The range
* for latitudes is [-PI/2,PI/2]. The range for longitudes is [-PI,PI]. The
* value that is given as the 'south' of the region shall not be larger than
* the value for the 'north' of the region. The heights are in meters above
* (or below) the WGS84 ellipsoid. The 'minimum height' shall not be larger
* than the 'maximum height'.
*/
std::vector<double> region;
/**
* @brief An array of four numbers that define a bounding sphere. The first
* three elements define the x, y, and z values for the center of the sphere.
* The last element (with index 3) defines the radius in meters. The radius
* shall not be negative.
*/
std::vector<double> sphere;
/**
* @brief Calculates the size in bytes of this object, including the contents
* of all collections, pointers, and strings. This will NOT include the size
* of any extensions attached to the object. Calling this method may be slow
* as it requires traversing the object's entire structure.
*/
int64_t getSizeBytes() const {
int64_t accum = 0;
accum += int64_t(sizeof(BoundingVolume));
accum += CesiumUtility::ExtensibleObject::getSizeBytes() -
int64_t(sizeof(CesiumUtility::ExtensibleObject));
accum += int64_t(sizeof(double) * this->box.capacity());
accum += int64_t(sizeof(double) * this->region.capacity());
accum += int64_t(sizeof(double) * this->sphere.capacity());
return accum;
}
};
} // namespace Cesium3DTiles