GameApi 28
Library used by GameApi Builder tool
Loading...
Searching...
No Matches
tiny_gltf.h File Reference
#include "GraphI.hh"
#include <array>
#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <limits>
#include <map>
#include <string>
#include <vector>
#include <functional>
Include dependency graph for tiny_gltf.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  tinygltf::Value
struct  tinygltf::Parameter
struct  tinygltf::AnimationChannel
struct  tinygltf::AnimationSampler
struct  tinygltf::Animation
struct  tinygltf::Skin
struct  tinygltf::Sampler
struct  tinygltf::Image
struct  tinygltf::Texture
struct  tinygltf::TextureInfo
struct  tinygltf::NormalTextureInfo
struct  tinygltf::OcclusionTextureInfo
struct  tinygltf::PbrMetallicRoughness
struct  tinygltf::Material
struct  tinygltf::BufferView
struct  tinygltf::Accessor
struct  tinygltf::PerspectiveCamera
struct  tinygltf::OrthographicCamera
struct  tinygltf::Camera
struct  tinygltf::Primitive
struct  tinygltf::Mesh
class  tinygltf::Node
struct  tinygltf::Buffer
struct  tinygltf::Asset
struct  tinygltf::Scene
struct  tinygltf::SpotLight
struct  tinygltf::Light
class  tinygltf::Model
struct  tinygltf::FsCallbacks
class  tinygltf::TinyGLTF

Namespaces

namespace  tinygltf

Macros

#define TINYGLTF_NOEXCEPT   noexcept
#define DEFAULT_METHODS(x)
#define TINYGLTF_MODE_POINTS   (0)
#define TINYGLTF_MODE_LINE   (1)
#define TINYGLTF_MODE_LINE_LOOP   (2)
#define TINYGLTF_MODE_LINE_STRIP   (3)
#define TINYGLTF_MODE_TRIANGLES   (4)
#define TINYGLTF_MODE_TRIANGLE_STRIP   (5)
#define TINYGLTF_MODE_TRIANGLE_FAN   (6)
#define TINYGLTF_COMPONENT_TYPE_BYTE   (5120)
#define TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE   (5121)
#define TINYGLTF_COMPONENT_TYPE_SHORT   (5122)
#define TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT   (5123)
#define TINYGLTF_COMPONENT_TYPE_INT   (5124)
#define TINYGLTF_COMPONENT_TYPE_UNSIGNED_INT   (5125)
#define TINYGLTF_COMPONENT_TYPE_FLOAT   (5126)
#define TINYGLTF_COMPONENT_TYPE_DOUBLE   (5130)
#define TINYGLTF_TEXTURE_FILTER_NEAREST   (9728)
#define TINYGLTF_TEXTURE_FILTER_LINEAR   (9729)
#define TINYGLTF_TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST   (9984)
#define TINYGLTF_TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST   (9985)
#define TINYGLTF_TEXTURE_FILTER_NEAREST_MIPMAP_LINEAR   (9986)
#define TINYGLTF_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR   (9987)
#define TINYGLTF_TEXTURE_WRAP_REPEAT   (10497)
#define TINYGLTF_TEXTURE_WRAP_CLAMP_TO_EDGE   (33071)
#define TINYGLTF_TEXTURE_WRAP_MIRRORED_REPEAT   (33648)
#define TINYGLTF_PARAMETER_TYPE_BYTE   (5120)
#define TINYGLTF_PARAMETER_TYPE_UNSIGNED_BYTE   (5121)
#define TINYGLTF_PARAMETER_TYPE_SHORT   (5122)
#define TINYGLTF_PARAMETER_TYPE_UNSIGNED_SHORT   (5123)
#define TINYGLTF_PARAMETER_TYPE_INT   (5124)
#define TINYGLTF_PARAMETER_TYPE_UNSIGNED_INT   (5125)
#define TINYGLTF_PARAMETER_TYPE_FLOAT   (5126)
#define TINYGLTF_PARAMETER_TYPE_FLOAT_VEC2   (35664)
#define TINYGLTF_PARAMETER_TYPE_FLOAT_VEC3   (35665)
#define TINYGLTF_PARAMETER_TYPE_FLOAT_VEC4   (35666)
#define TINYGLTF_PARAMETER_TYPE_INT_VEC2   (35667)
#define TINYGLTF_PARAMETER_TYPE_INT_VEC3   (35668)
#define TINYGLTF_PARAMETER_TYPE_INT_VEC4   (35669)
#define TINYGLTF_PARAMETER_TYPE_BOOL   (35670)
#define TINYGLTF_PARAMETER_TYPE_BOOL_VEC2   (35671)
#define TINYGLTF_PARAMETER_TYPE_BOOL_VEC3   (35672)
#define TINYGLTF_PARAMETER_TYPE_BOOL_VEC4   (35673)
#define TINYGLTF_PARAMETER_TYPE_FLOAT_MAT2   (35674)
#define TINYGLTF_PARAMETER_TYPE_FLOAT_MAT3   (35675)
#define TINYGLTF_PARAMETER_TYPE_FLOAT_MAT4   (35676)
#define TINYGLTF_PARAMETER_TYPE_SAMPLER_2D   (35678)
#define TINYGLTF_TYPE_VEC2   (2)
#define TINYGLTF_TYPE_VEC3   (3)
#define TINYGLTF_TYPE_VEC4   (4)
#define TINYGLTF_TYPE_MAT2   (32 + 2)
#define TINYGLTF_TYPE_MAT3   (32 + 3)
#define TINYGLTF_TYPE_MAT4   (32 + 4)
#define TINYGLTF_TYPE_SCALAR   (64 + 1)
#define TINYGLTF_TYPE_VECTOR   (64 + 4)
#define TINYGLTF_TYPE_MATRIX   (64 + 16)
#define TINYGLTF_IMAGE_FORMAT_JPEG   (0)
#define TINYGLTF_IMAGE_FORMAT_PNG   (1)
#define TINYGLTF_IMAGE_FORMAT_BMP   (2)
#define TINYGLTF_IMAGE_FORMAT_GIF   (3)
#define TINYGLTF_TEXTURE_FORMAT_ALPHA   (6406)
#define TINYGLTF_TEXTURE_FORMAT_RGB   (6407)
#define TINYGLTF_TEXTURE_FORMAT_RGBA   (6408)
#define TINYGLTF_TEXTURE_FORMAT_LUMINANCE   (6409)
#define TINYGLTF_TEXTURE_FORMAT_LUMINANCE_ALPHA   (6410)
#define TINYGLTF_TEXTURE_TARGET_TEXTURE2D   (3553)
#define TINYGLTF_TEXTURE_TYPE_UNSIGNED_BYTE   (5121)
#define TINYGLTF_TARGET_ARRAY_BUFFER   (34962)
#define TINYGLTF_TARGET_ELEMENT_ARRAY_BUFFER   (34963)
#define TINYGLTF_SHADER_TYPE_VERTEX_SHADER   (35633)
#define TINYGLTF_SHADER_TYPE_FRAGMENT_SHADER   (35632)
#define TINYGLTF_DOUBLE_EPS   (1.e-12)
#define TINYGLTF_DOUBLE_EQUAL(a, b)
#define TINYGLTF_VALUE_GET(ctype, var)

Typedefs

using tinygltf::ColorValue = std::array<double, 4>
 Agregate object for representing a color.
typedef std::map< std::string, Parameter > tinygltf::ParameterMap
typedef std::map< std::string, Value > tinygltf::ExtensionMap
typedef bool(* tinygltf::LoadImageDataFunction) (Image *, const int, std::string *, std::string *, int, int, const unsigned char *, int, void *user_pointer)
typedef bool(* tinygltf::WriteImageDataFunction) (const std::string *, const std::string *, Image *, bool, void *)
typedef bool(* tinygltf::FileExistsFunction) (const std::string &abs_filename, void *)
typedef std::string(* tinygltf::ExpandFilePathFunction) (const std::string &, void *)
typedef bool(* tinygltf::ReadWholeFileFunction) (std::vector< unsigned char, ::GameApiAllocator< unsigned char > > *, std::string *, const std::string &, void *)
typedef bool(* tinygltf::WriteWholeFileFunction) (std::string *, const std::string &, const std::vector< unsigned char, ::GameApiAllocator< unsigned char > > &, void *)

Enumerations

enum  tinygltf::Type {
  tinygltf::NULL_TYPE , tinygltf::REAL_TYPE , tinygltf::INT_TYPE , tinygltf::BOOL_TYPE ,
  tinygltf::STRING_TYPE , tinygltf::ARRAY_TYPE , tinygltf::BINARY_TYPE , tinygltf::OBJECT_TYPE
}
enum  tinygltf::SectionCheck {
  tinygltf::NO_REQUIRE = 0x00 , tinygltf::REQUIRE_VERSION = 0x01 , tinygltf::REQUIRE_SCENE = 0x02 , tinygltf::REQUIRE_SCENES = 0x04 ,
  tinygltf::REQUIRE_NODES = 0x08 , tinygltf::REQUIRE_ACCESSORS = 0x10 , tinygltf::REQUIRE_BUFFERS = 0x20 , tinygltf::REQUIRE_BUFFER_VIEWS = 0x40 ,
  tinygltf::REQUIRE_ALL = 0x7f
}

Functions

bool tinygltf::IsDataURI (const std::string &in)
bool tinygltf::DecodeDataURI (std::vector< unsigned char > *out, std::string &mime_type, const std::string &in, size_t reqBytes, bool checkSize)
bool tinygltf::LoadImageData (Image *image, const int image_idx, std::string *err, std::string *warn, int req_width, int req_height, const unsigned char *bytes, int size, void *)
bool tinygltf::WriteImageData (const std::string *basepath, const std::string *filename, Image *image, bool embedImages, void *)
bool tinygltf::FileExists (const std::string &abs_filename, void *)
std::string tinygltf::ExpandFilePath (const std::string &filepath, void *userdata)
bool tinygltf::ReadWholeFile (std::vector< unsigned char, ::GameApiAllocator< unsigned char > > *out, std::string *err, const std::string &filepath, void *)
bool tinygltf::WriteWholeFile (std::string *err, const std::string &filepath, const std::vector< unsigned char, ::GameApiAllocator< unsigned char > > &contents, void *)

Macro Definition Documentation

◆ DEFAULT_METHODS

#define DEFAULT_METHODS ( x)
Value:
~x() = default; \
x(const x &) = default; \
x(x &&) TINYGLTF_NOEXCEPT = default; \
x &operator=(const x &) = default; \
x &operator=(x &&) TINYGLTF_NOEXCEPT = default;
#define TINYGLTF_NOEXCEPT
Definition tiny_gltf.h:86

◆ TINYGLTF_COMPONENT_TYPE_BYTE

#define TINYGLTF_COMPONENT_TYPE_BYTE   (5120)

◆ TINYGLTF_COMPONENT_TYPE_DOUBLE

#define TINYGLTF_COMPONENT_TYPE_DOUBLE   (5130)

◆ TINYGLTF_COMPONENT_TYPE_FLOAT

#define TINYGLTF_COMPONENT_TYPE_FLOAT   (5126)

◆ TINYGLTF_COMPONENT_TYPE_INT

#define TINYGLTF_COMPONENT_TYPE_INT   (5124)

◆ TINYGLTF_COMPONENT_TYPE_SHORT

#define TINYGLTF_COMPONENT_TYPE_SHORT   (5122)

◆ TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE

#define TINYGLTF_COMPONENT_TYPE_UNSIGNED_BYTE   (5121)

◆ TINYGLTF_COMPONENT_TYPE_UNSIGNED_INT

#define TINYGLTF_COMPONENT_TYPE_UNSIGNED_INT   (5125)

◆ TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT

#define TINYGLTF_COMPONENT_TYPE_UNSIGNED_SHORT   (5123)

◆ TINYGLTF_DOUBLE_EPS

#define TINYGLTF_DOUBLE_EPS   (1.e-12)

◆ TINYGLTF_DOUBLE_EQUAL

#define TINYGLTF_DOUBLE_EQUAL ( a,
b )
Value:
(std::fabs((b) - (a)) < TINYGLTF_DOUBLE_EPS)
#define TINYGLTF_DOUBLE_EPS
Definition tiny_gltf.h:186

◆ TINYGLTF_IMAGE_FORMAT_BMP

#define TINYGLTF_IMAGE_FORMAT_BMP   (2)

◆ TINYGLTF_IMAGE_FORMAT_GIF

#define TINYGLTF_IMAGE_FORMAT_GIF   (3)

◆ TINYGLTF_IMAGE_FORMAT_JPEG

#define TINYGLTF_IMAGE_FORMAT_JPEG   (0)

◆ TINYGLTF_IMAGE_FORMAT_PNG

#define TINYGLTF_IMAGE_FORMAT_PNG   (1)

◆ TINYGLTF_MODE_LINE

#define TINYGLTF_MODE_LINE   (1)

◆ TINYGLTF_MODE_LINE_LOOP

#define TINYGLTF_MODE_LINE_LOOP   (2)

◆ TINYGLTF_MODE_LINE_STRIP

#define TINYGLTF_MODE_LINE_STRIP   (3)

◆ TINYGLTF_MODE_POINTS

#define TINYGLTF_MODE_POINTS   (0)

◆ TINYGLTF_MODE_TRIANGLE_FAN

#define TINYGLTF_MODE_TRIANGLE_FAN   (6)

◆ TINYGLTF_MODE_TRIANGLE_STRIP

#define TINYGLTF_MODE_TRIANGLE_STRIP   (5)

◆ TINYGLTF_MODE_TRIANGLES

#define TINYGLTF_MODE_TRIANGLES   (4)

◆ TINYGLTF_NOEXCEPT

#define TINYGLTF_NOEXCEPT   noexcept

◆ TINYGLTF_PARAMETER_TYPE_BOOL

#define TINYGLTF_PARAMETER_TYPE_BOOL   (35670)

◆ TINYGLTF_PARAMETER_TYPE_BOOL_VEC2

#define TINYGLTF_PARAMETER_TYPE_BOOL_VEC2   (35671)

◆ TINYGLTF_PARAMETER_TYPE_BOOL_VEC3

#define TINYGLTF_PARAMETER_TYPE_BOOL_VEC3   (35672)

◆ TINYGLTF_PARAMETER_TYPE_BOOL_VEC4

#define TINYGLTF_PARAMETER_TYPE_BOOL_VEC4   (35673)

◆ TINYGLTF_PARAMETER_TYPE_BYTE

#define TINYGLTF_PARAMETER_TYPE_BYTE   (5120)

◆ TINYGLTF_PARAMETER_TYPE_FLOAT

#define TINYGLTF_PARAMETER_TYPE_FLOAT   (5126)

◆ TINYGLTF_PARAMETER_TYPE_FLOAT_MAT2

#define TINYGLTF_PARAMETER_TYPE_FLOAT_MAT2   (35674)

◆ TINYGLTF_PARAMETER_TYPE_FLOAT_MAT3

#define TINYGLTF_PARAMETER_TYPE_FLOAT_MAT3   (35675)

◆ TINYGLTF_PARAMETER_TYPE_FLOAT_MAT4

#define TINYGLTF_PARAMETER_TYPE_FLOAT_MAT4   (35676)

◆ TINYGLTF_PARAMETER_TYPE_FLOAT_VEC2

#define TINYGLTF_PARAMETER_TYPE_FLOAT_VEC2   (35664)

◆ TINYGLTF_PARAMETER_TYPE_FLOAT_VEC3

#define TINYGLTF_PARAMETER_TYPE_FLOAT_VEC3   (35665)

◆ TINYGLTF_PARAMETER_TYPE_FLOAT_VEC4

#define TINYGLTF_PARAMETER_TYPE_FLOAT_VEC4   (35666)

◆ TINYGLTF_PARAMETER_TYPE_INT

#define TINYGLTF_PARAMETER_TYPE_INT   (5124)

◆ TINYGLTF_PARAMETER_TYPE_INT_VEC2

#define TINYGLTF_PARAMETER_TYPE_INT_VEC2   (35667)

◆ TINYGLTF_PARAMETER_TYPE_INT_VEC3

#define TINYGLTF_PARAMETER_TYPE_INT_VEC3   (35668)

◆ TINYGLTF_PARAMETER_TYPE_INT_VEC4

#define TINYGLTF_PARAMETER_TYPE_INT_VEC4   (35669)

◆ TINYGLTF_PARAMETER_TYPE_SAMPLER_2D

#define TINYGLTF_PARAMETER_TYPE_SAMPLER_2D   (35678)

◆ TINYGLTF_PARAMETER_TYPE_SHORT

#define TINYGLTF_PARAMETER_TYPE_SHORT   (5122)

◆ TINYGLTF_PARAMETER_TYPE_UNSIGNED_BYTE

#define TINYGLTF_PARAMETER_TYPE_UNSIGNED_BYTE   (5121)

◆ TINYGLTF_PARAMETER_TYPE_UNSIGNED_INT

#define TINYGLTF_PARAMETER_TYPE_UNSIGNED_INT   (5125)

◆ TINYGLTF_PARAMETER_TYPE_UNSIGNED_SHORT

#define TINYGLTF_PARAMETER_TYPE_UNSIGNED_SHORT   (5123)

◆ TINYGLTF_SHADER_TYPE_FRAGMENT_SHADER

#define TINYGLTF_SHADER_TYPE_FRAGMENT_SHADER   (35632)

◆ TINYGLTF_SHADER_TYPE_VERTEX_SHADER

#define TINYGLTF_SHADER_TYPE_VERTEX_SHADER   (35633)

◆ TINYGLTF_TARGET_ARRAY_BUFFER

#define TINYGLTF_TARGET_ARRAY_BUFFER   (34962)

◆ TINYGLTF_TARGET_ELEMENT_ARRAY_BUFFER

#define TINYGLTF_TARGET_ELEMENT_ARRAY_BUFFER   (34963)

◆ TINYGLTF_TEXTURE_FILTER_LINEAR

#define TINYGLTF_TEXTURE_FILTER_LINEAR   (9729)

◆ TINYGLTF_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR

#define TINYGLTF_TEXTURE_FILTER_LINEAR_MIPMAP_LINEAR   (9987)

◆ TINYGLTF_TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST

#define TINYGLTF_TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST   (9985)

◆ TINYGLTF_TEXTURE_FILTER_NEAREST

#define TINYGLTF_TEXTURE_FILTER_NEAREST   (9728)

◆ TINYGLTF_TEXTURE_FILTER_NEAREST_MIPMAP_LINEAR

#define TINYGLTF_TEXTURE_FILTER_NEAREST_MIPMAP_LINEAR   (9986)

◆ TINYGLTF_TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST

#define TINYGLTF_TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST   (9984)

◆ TINYGLTF_TEXTURE_FORMAT_ALPHA

#define TINYGLTF_TEXTURE_FORMAT_ALPHA   (6406)

◆ TINYGLTF_TEXTURE_FORMAT_LUMINANCE

#define TINYGLTF_TEXTURE_FORMAT_LUMINANCE   (6409)

◆ TINYGLTF_TEXTURE_FORMAT_LUMINANCE_ALPHA

#define TINYGLTF_TEXTURE_FORMAT_LUMINANCE_ALPHA   (6410)

◆ TINYGLTF_TEXTURE_FORMAT_RGB

#define TINYGLTF_TEXTURE_FORMAT_RGB   (6407)

◆ TINYGLTF_TEXTURE_FORMAT_RGBA

#define TINYGLTF_TEXTURE_FORMAT_RGBA   (6408)

◆ TINYGLTF_TEXTURE_TARGET_TEXTURE2D

#define TINYGLTF_TEXTURE_TARGET_TEXTURE2D   (3553)

◆ TINYGLTF_TEXTURE_TYPE_UNSIGNED_BYTE

#define TINYGLTF_TEXTURE_TYPE_UNSIGNED_BYTE   (5121)

◆ TINYGLTF_TEXTURE_WRAP_CLAMP_TO_EDGE

#define TINYGLTF_TEXTURE_WRAP_CLAMP_TO_EDGE   (33071)

◆ TINYGLTF_TEXTURE_WRAP_MIRRORED_REPEAT

#define TINYGLTF_TEXTURE_WRAP_MIRRORED_REPEAT   (33648)

◆ TINYGLTF_TEXTURE_WRAP_REPEAT

#define TINYGLTF_TEXTURE_WRAP_REPEAT   (10497)

◆ TINYGLTF_TYPE_MAT2

#define TINYGLTF_TYPE_MAT2   (32 + 2)

◆ TINYGLTF_TYPE_MAT3

#define TINYGLTF_TYPE_MAT3   (32 + 3)

◆ TINYGLTF_TYPE_MAT4

#define TINYGLTF_TYPE_MAT4   (32 + 4)

◆ TINYGLTF_TYPE_MATRIX

#define TINYGLTF_TYPE_MATRIX   (64 + 16)

◆ TINYGLTF_TYPE_SCALAR

#define TINYGLTF_TYPE_SCALAR   (64 + 1)

◆ TINYGLTF_TYPE_VEC2

#define TINYGLTF_TYPE_VEC2   (2)

◆ TINYGLTF_TYPE_VEC3

#define TINYGLTF_TYPE_VEC3   (3)

◆ TINYGLTF_TYPE_VEC4

#define TINYGLTF_TYPE_VEC4   (4)

◆ TINYGLTF_TYPE_VECTOR

#define TINYGLTF_TYPE_VECTOR   (64 + 4)

◆ TINYGLTF_VALUE_GET

#define TINYGLTF_VALUE_GET ( ctype,
var )
Value:
template <> \
inline const ctype &Value::Get<ctype>() const { \
return var; \
} \
template <> \
inline ctype &Value::Get<ctype>() { \
return var; \
}