VTK  9.2.6
Typedefs | Functions | Variables
vtkGLTFUtils Namespace Reference

Helper functions for glTF parsing and validation. More...

Typedefs

using ChunkInfoType = std::pair< std::string, uint32_t >
 

Functions

bool ValidateGLBFile (const std::string &magic, uint32_t version, uint32_t fileLength, std::vector< vtkGLTFUtils::ChunkInfoType > chunkInfo)
 Checks various binary glTF elements for validity. More...
 
bool ExtractGLBFileInformation (const std::string &fileName, std::string &magic, uint32_t &version, uint32_t &fileLength, std::vector< vtkGLTFUtils::ChunkInfoType > &chunkInfo)
 Extract all header information from a binary glTF file. More...
 
bool GetIntValue (const nlohmann::json &root, const std::string &key, int &value)
 Get int value from Json variable, with existence and type checks. More...
 
bool GetUIntValue (const nlohmann::json &root, const std::string &key, unsigned int &value)
 Get int value from Json variable, with existence and type checks. More...
 
bool GetDoubleValue (const nlohmann::json &root, const std::string &key, double &value)
 Get double value from Json variable, with existence and type checks. More...
 
bool GetStringValue (const nlohmann::json &root, const std::string &key, std::string &value)
 Get string value from Json variable, with existence and type checks. More...
 
bool GetBoolValue (const nlohmann::json &root, const std::string &key, bool &value)
 Get bool value from Json variable, with existence and type checks. More...
 
bool GetIntArray (const nlohmann::json &root, const std::string &key, std::vector< int > &value)
 Get int array from Json variable, with existence and type checks. More...
 
bool GetUIntArray (const nlohmann::json &root, const std::string &key, std::vector< unsigned int > &value)
 Get int array from Json variable, with existence and type checks. More...
 
bool GetFloatArray (const nlohmann::json &root, const std::string &key, std::vector< float > &value)
 Get float array from Json variable, with existence and type checks. More...
 
bool GetDoubleArray (const nlohmann::json &root, const std::string &key, std::vector< double > &value)
 Get double array from Json variable, with existence and type checks. More...
 
bool CheckVersion (const nlohmann::json &glTFAsset)
 Check document version. More...
 
std::string GetResourceFullPath (const std::string &resourcePath, const std::string &glTFFilePath)
 Compute the path to a resource from its path as specified in the glTF file, and the glTF file's path. More...
 
bool GetBinaryBufferFromUri (const std::string &uri, const std::string &glTFFileName, std::vector< char > &buffer, size_t bufferSize)
 Load binary buffer from uri information. More...
 
std::string GetDataUriMimeType (const std::string &uri)
 Extract MIME-Type from data-uri. More...
 

Variables

const uint32_t GLBWordSize = 4
 
const uint32_t GLBHeaderSize = 12
 
const uint32_t GLBChunkHeaderSize = 8
 
const uint32_t GLBVersion = 2
 

Detailed Description

Helper functions for glTF parsing and validation.

vtkGLTFUtils is a helper namespace that contains various functions to help with the parsing and validation of JSON-formatted glTF files. More specifically, these functions add existence and type verifications before extracting Json values. Another function helps check the document's version against supported glTF versions

Typedef Documentation

using vtkGLTFUtils::ChunkInfoType = typedef std::pair<std::string, uint32_t>

Definition at line 37 of file vtkGLTFUtils.h.

Function Documentation

bool vtkGLTFUtils::ValidateGLBFile ( const std::string &  magic,
uint32_t  version,
uint32_t  fileLength,
std::vector< vtkGLTFUtils::ChunkInfoType chunkInfo 
)

Checks various binary glTF elements for validity.

Checks: version, file length, JSON chunk presence as first chunk, chunk type name size, chunk data size

bool vtkGLTFUtils::ExtractGLBFileInformation ( const std::string &  fileName,
std::string &  magic,
uint32_t &  version,
uint32_t &  fileLength,
std::vector< vtkGLTFUtils::ChunkInfoType > &  chunkInfo 
)

Extract all header information from a binary glTF file.

bool vtkGLTFUtils::GetIntValue ( const nlohmann::json &  root,
const std::string &  key,
int &  value 
)

Get int value from Json variable, with existence and type checks.

bool vtkGLTFUtils::GetUIntValue ( const nlohmann::json &  root,
const std::string &  key,
unsigned int &  value 
)

Get int value from Json variable, with existence and type checks.

bool vtkGLTFUtils::GetDoubleValue ( const nlohmann::json &  root,
const std::string &  key,
double &  value 
)

Get double value from Json variable, with existence and type checks.

bool vtkGLTFUtils::GetStringValue ( const nlohmann::json &  root,
const std::string &  key,
std::string &  value 
)

Get string value from Json variable, with existence and type checks.

bool vtkGLTFUtils::GetBoolValue ( const nlohmann::json &  root,
const std::string &  key,
bool &  value 
)

Get bool value from Json variable, with existence and type checks.

bool vtkGLTFUtils::GetIntArray ( const nlohmann::json &  root,
const std::string &  key,
std::vector< int > &  value 
)

Get int array from Json variable, with existence and type checks.

bool vtkGLTFUtils::GetUIntArray ( const nlohmann::json &  root,
const std::string &  key,
std::vector< unsigned int > &  value 
)

Get int array from Json variable, with existence and type checks.

bool vtkGLTFUtils::GetFloatArray ( const nlohmann::json &  root,
const std::string &  key,
std::vector< float > &  value 
)

Get float array from Json variable, with existence and type checks.

bool vtkGLTFUtils::GetDoubleArray ( const nlohmann::json &  root,
const std::string &  key,
std::vector< double > &  value 
)

Get double array from Json variable, with existence and type checks.

bool vtkGLTFUtils::CheckVersion ( const nlohmann::json &  glTFAsset)

Check document version.

Currently supporting glTF 2.0 only.

std::string vtkGLTFUtils::GetResourceFullPath ( const std::string &  resourcePath,
const std::string &  glTFFilePath 
)

Compute the path to a resource from its path as specified in the glTF file, and the glTF file's path.

bool vtkGLTFUtils::GetBinaryBufferFromUri ( const std::string &  uri,
const std::string &  glTFFileName,
std::vector< char > &  buffer,
size_t  bufferSize 
)

Load binary buffer from uri information.

Uri can be a base 64 data-uri or file path.

std::string vtkGLTFUtils::GetDataUriMimeType ( const std::string &  uri)

Extract MIME-Type from data-uri.

Variable Documentation

const uint32_t vtkGLTFUtils::GLBWordSize = 4

Definition at line 39 of file vtkGLTFUtils.h.

const uint32_t vtkGLTFUtils::GLBHeaderSize = 12

Definition at line 40 of file vtkGLTFUtils.h.

const uint32_t vtkGLTFUtils::GLBChunkHeaderSize = 8

Definition at line 41 of file vtkGLTFUtils.h.

const uint32_t vtkGLTFUtils::GLBVersion = 2

Definition at line 42 of file vtkGLTFUtils.h.