Conscience Core
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions
tiny_gltf.h File Reference
#include <array>
#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdlib>
#include <cstring>
#include <limits>
#include <map>
#include <string>
#include <vector>

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::Accessor::Sparse
 
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
 
struct  tinygltf::PositionalEmitter
 
struct  tinygltf::AudioEmitter
 
struct  tinygltf::AudioSource
 
class  tinygltf::Model
 
struct  tinygltf::URICallbacks
 
struct  tinygltf::FsCallbacks
 
class  tinygltf::TinyGLTF
 

Namespaces

 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)   (std::fabs((b) - (a)) < TINYGLTF_DOUBLE_EPS)
 
#define TINYGLTF_VALUE_GET(ctype, var)
 

Typedefs

using tinygltf::ColorValue = std::array< double, 4 >
 Aggregate object for representing a color. More...
 
typedef std::map< std::string, Parameter > tinygltf::ParameterMap
 
typedef std::map< std::string, Value > tinygltf::ExtensionMap
 
typedef bool(* tinygltf::URIEncodeFunction) (const std::string &in_uri, const std::string &object_type, std::string *out_uri, void *user_data)
 
typedef bool(* tinygltf::URIDecodeFunction) (const std::string &in_uri, std::string *out_uri, void *user_data)
 
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 *basepath, const std::string *filename, const Image *image, bool embedImages, const URICallbacks *uri_cb, std::string *out_uri, void *user_pointer)
 
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 > *, std::string *, const std::string &, void *)
 
typedef bool(* tinygltf::WriteWholeFileFunction) (std::string *, const std::string &, const std::vector< unsigned char > &, void *)
 
typedef bool(* tinygltf::GetFileSizeFunction) (size_t *filesize_out, std::string *err, const std::string &abs_filename, void *userdata)
 

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::ParseStrictness { tinygltf::Permissive, tinygltf::Strict }
 
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

static int32_t tinygltf::GetComponentSizeInBytes (uint32_t componentType)
 
static int32_t tinygltf::GetNumComponentsInType (uint32_t ty)
 
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::URIDecode (const std::string &in_uri, std::string *out_uri, void *user_data)
 
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, const Image *image, bool embedImages, const URICallbacks *uri_cb, std::string *out_uri, 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 > *out, std::string *err, const std::string &filepath, void *)
 
bool tinygltf::WriteWholeFile (std::string *err, const std::string &filepath, const std::vector< unsigned char > &contents, void *)
 
bool tinygltf::GetFileSizeInBytes (size_t *filesize_out, std::string *err, const std::string &filepath, 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;

◆ 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,
 
)    (std::fabs((b) - (a)) < TINYGLTF_DOUBLE_EPS)

◆ 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; \
}
TINYGLTF_NOEXCEPT
#define TINYGLTF_NOEXCEPT
Definition: tiny_gltf.h:70