Fix small findings

- Merge anonymous functions into one block.
- Some reformattings
pull/4111/head
Kim Kulling 2021-11-12 11:08:19 +01:00 committed by GitHub
parent 37c81e7a28
commit 157e032bde
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 84 additions and 102 deletions

View File

@ -90,7 +90,6 @@ namespace {
// //
// JSON Value reading helpers // JSON Value reading helpers
// //
inline CustomExtension ReadExtensions(const char *name, Value &obj) { inline CustomExtension ReadExtensions(const char *name, Value &obj) {
CustomExtension ret; CustomExtension ret;
ret.name = name; ret.name = name;
@ -127,6 +126,80 @@ inline CustomExtension ReadExtensions(const char *name, Value &obj) {
return ret; return ret;
} }
inline void CopyData(size_t count, const uint8_t *src, size_t src_stride,
uint8_t *dst, size_t dst_stride) {
if (src_stride == dst_stride) {
memcpy(dst, src, count * src_stride);
return;
size_t sz = std::min(src_stride, dst_stride);
for (size_t i = 0; i < count; ++i) {
memcpy(dst, src, sz);
if (sz < dst_stride) {
memset(dst + sz, 0, dst_stride - sz);
}
src += src_stride;
dst += dst_stride;
}
}
void SetVector(vec4 &v, const float (&in)[4]) {
v[0] = in[0];
v[1] = in[1];
v[2] = in[2];
v[3] = in[3];
}
void SetVector(vec3 &v, const float (&in)[3]) {
v[0] = in[0];
v[1] = in[1];
v[2] = in[2];
}
template <int N>
inline int Compare(const char *attr, const char (&str)[N]) {
return (strncmp(attr, str, N - 1) == 0) ? N - 1 : 0;
}
#if _MSC_VER
#pragma warning(push)
#pragma warning(disable : 4706)
#endif // _MSC_VER
inline bool GetAttribVector(Mesh::Primitive &p, const char *attr, Mesh::AccessorList *&v, int &pos) {
if ((pos = Compare(attr, "POSITION"))) {
v = &(p.attributes.position);
} else if ((pos = Compare(attr, "NORMAL"))) {
v = &(p.attributes.normal);
} else if ((pos = Compare(attr, "TANGENT"))) {
v = &(p.attributes.tangent);
} else if ((pos = Compare(attr, "TEXCOORD"))) {
v = &(p.attributes.texcoord);
} else if ((pos = Compare(attr, "COLOR"))) {
v = &(p.attributes.color);
} else if ((pos = Compare(attr, "JOINT"))) {
v = &(p.attributes.joint);
} else if ((pos = Compare(attr, "JOINTMATRIX"))) {
v = &(p.attributes.jointmatrix);
} else if ((pos = Compare(attr, "WEIGHT"))) {
v = &(p.attributes.weight);
} else
return false;
return true;
}
inline bool GetAttribTargetVector(Mesh::Primitive &p, const int targetIndex, const char *attr, Mesh::AccessorList *&v, int &pos) {
if ((pos = Compare(attr, "POSITION"))) {
v = &(p.targets[targetIndex].position);
} else if ((pos = Compare(attr, "NORMAL"))) {
v = &(p.targets[targetIndex].normal);
} else if ((pos = Compare(attr, "TANGENT"))) {
v = &(p.targets[targetIndex].tangent);
} else
return false;
return true;
}
} // namespace } // namespace
inline Value *Object::FindString(Value &val, const char *memberId) { inline Value *Object::FindString(Value &val, const char *memberId) {
@ -456,7 +529,6 @@ Ref<T> LazyDict<T>::Create(const char *id) {
// //
// glTF dictionary objects methods // glTF dictionary objects methods
// //
inline Buffer::Buffer() : inline Buffer::Buffer() :
byteLength(0), byteLength(0),
type(Type_arraybuffer), type(Type_arraybuffer),
@ -865,27 +937,6 @@ inline size_t Accessor::GetMaxByteSize() {
return (bufferView ? bufferView->byteLength : sparse->data.size()); return (bufferView ? bufferView->byteLength : sparse->data.size());
} }
namespace {
inline void CopyData(size_t count,
const uint8_t *src, size_t src_stride,
uint8_t *dst, size_t dst_stride) {
if (src_stride == dst_stride) {
memcpy(dst, src, count * src_stride);
} else {
size_t sz = std::min(src_stride, dst_stride);
for (size_t i = 0; i < count; ++i) {
memcpy(dst, src, sz);
if (sz < dst_stride) {
memset(dst + sz, 0, dst_stride - sz);
}
src += src_stride;
dst += dst_stride;
}
}
}
} // namespace
template <class T> template <class T>
void Accessor::ExtractData(T *&outData) { void Accessor::ExtractData(T *&outData) {
uint8_t *data = GetPointer(); uint8_t *data = GetPointer();
@ -959,11 +1010,12 @@ inline void Accessor::WriteSparseIndices(size_t _count, const void *src_idx, siz
ai_assert(indices_dst + _count * indices_dst_stride <= indices_buffer_ptr + sparse->indices->buffer->byteLength); ai_assert(indices_dst + _count * indices_dst_stride <= indices_buffer_ptr + sparse->indices->buffer->byteLength);
CopyData(_count, indices_src, src_idxStride, indices_dst, indices_dst_stride); CopyData(_count, indices_src, src_idxStride, indices_dst, indices_dst_stride);
} }
inline Accessor::Indexer::Indexer(Accessor &acc) : inline Accessor::Indexer::Indexer(Accessor &acc) :
accessor(acc), accessor(acc),
data(acc.GetPointer()), data(acc.GetPointer()),
elemSize(acc.GetElementSize()), elemSize(acc.GetElementSize()),
stride(acc.GetStride()) { stride(acc.GetStride()) {
} }
//! Accesses the i-th value as defined by the accessor //! Accesses the i-th value as defined by the accessor
@ -1241,21 +1293,6 @@ inline void Material::Read(Value &material, Asset &r) {
} }
} }
namespace {
void SetVector(vec4 &v, const float (&in)[4]) {
v[0] = in[0];
v[1] = in[1];
v[2] = in[2];
v[3] = in[3];
}
void SetVector(vec3 &v, const float (&in)[3]) {
v[0] = in[0];
v[1] = in[1];
v[2] = in[2];
}
} // namespace
inline void Material::SetDefaults() { inline void Material::SetDefaults() {
//pbr materials //pbr materials
SetVector(pbrMetallicRoughness.baseColorFactor, defaultBaseColor); SetVector(pbrMetallicRoughness.baseColorFactor, defaultBaseColor);
@ -1294,53 +1331,6 @@ inline void MaterialIOR::SetDefaults() {
ior = 1.5f; ior = 1.5f;
} }
namespace {
template <int N>
inline int Compare(const char *attr, const char (&str)[N]) {
return (strncmp(attr, str, N - 1) == 0) ? N - 1 : 0;
}
#if _MSC_VER
#pragma warning(push)
#pragma warning(disable : 4706)
#endif // _MSC_VER
inline bool GetAttribVector(Mesh::Primitive &p, const char *attr, Mesh::AccessorList *&v, int &pos) {
if ((pos = Compare(attr, "POSITION"))) {
v = &(p.attributes.position);
} else if ((pos = Compare(attr, "NORMAL"))) {
v = &(p.attributes.normal);
} else if ((pos = Compare(attr, "TANGENT"))) {
v = &(p.attributes.tangent);
} else if ((pos = Compare(attr, "TEXCOORD"))) {
v = &(p.attributes.texcoord);
} else if ((pos = Compare(attr, "COLOR"))) {
v = &(p.attributes.color);
} else if ((pos = Compare(attr, "JOINT"))) {
v = &(p.attributes.joint);
} else if ((pos = Compare(attr, "JOINTMATRIX"))) {
v = &(p.attributes.jointmatrix);
} else if ((pos = Compare(attr, "WEIGHT"))) {
v = &(p.attributes.weight);
} else
return false;
return true;
}
inline bool GetAttribTargetVector(Mesh::Primitive &p, const int targetIndex, const char *attr, Mesh::AccessorList *&v, int &pos) {
if ((pos = Compare(attr, "POSITION"))) {
v = &(p.targets[targetIndex].position);
} else if ((pos = Compare(attr, "NORMAL"))) {
v = &(p.targets[targetIndex].normal);
} else if ((pos = Compare(attr, "TANGENT"))) {
v = &(p.targets[targetIndex].tangent);
} else
return false;
return true;
}
} // namespace
inline void Mesh::Read(Value &pJSON_Object, Asset &pAsset_Root) { inline void Mesh::Read(Value &pJSON_Object, Asset &pAsset_Root) {
Value *curName = FindMember(pJSON_Object, "name"); Value *curName = FindMember(pJSON_Object, "name");
if (nullptr != curName && curName->IsString()) { if (nullptr != curName && curName->IsString()) {
@ -1811,8 +1801,7 @@ inline void Asset::ReadBinaryHeader(IOStream &stream, std::vector<char> &sceneDa
} }
} }
inline rapidjson::Document Asset::ReadDocument(IOStream &stream, bool isBinary, std::vector<char> &sceneData) inline rapidjson::Document Asset::ReadDocument(IOStream &stream, bool isBinary, std::vector<char> &sceneData) {
{
ASSIMP_LOG_DEBUG("Loading GLTF2 asset"); ASSIMP_LOG_DEBUG("Loading GLTF2 asset");
// is binary? then read the header // is binary? then read the header
@ -1863,9 +1852,6 @@ inline rapidjson::Document Asset::ReadDocument(IOStream &stream, bool isBinary,
inline void Asset::Load(const std::string &pFile, bool isBinary) inline void Asset::Load(const std::string &pFile, bool isBinary)
{ {
mCurrentAssetDir.clear(); mCurrentAssetDir.clear();
/*int pos = std::max(int(pFile.rfind('/')), int(pFile.rfind('\\')));
if (pos != int(std::string::npos)) */
if (0 != strncmp(pFile.c_str(), AI_MEMORYIO_MAGIC_FILENAME, AI_MEMORYIO_MAGIC_FILENAME_LENGTH)) { if (0 != strncmp(pFile.c_str(), AI_MEMORYIO_MAGIC_FILENAME, AI_MEMORYIO_MAGIC_FILENAME_LENGTH)) {
mCurrentAssetDir = glTFCommon::getCurrentAssetDir(pFile); mCurrentAssetDir = glTFCommon::getCurrentAssetDir(pFile);
} }
@ -1950,10 +1936,8 @@ inline void Asset::Load(const std::string &pFile, bool isBinary)
} }
} }
inline bool Asset::CanRead(const std::string &pFile, bool isBinary) inline bool Asset::CanRead(const std::string &pFile, bool isBinary) {
{ try {
try
{
shared_ptr<IOStream> stream(OpenFile(pFile.c_str(), "rb", true)); shared_ptr<IOStream> stream(OpenFile(pFile.c_str(), "rb", true));
if (!stream) { if (!stream) {
return false; return false;
@ -1961,9 +1945,7 @@ inline bool Asset::CanRead(const std::string &pFile, bool isBinary)
std::vector<char> sceneData; std::vector<char> sceneData;
rapidjson::Document doc = ReadDocument(*stream, isBinary, sceneData); rapidjson::Document doc = ReadDocument(*stream, isBinary, sceneData);
asset.Read(doc); asset.Read(doc);
} } catch (...) {
catch (...)
{
return false; return false;
} }
return true; return true;
@ -2069,7 +2051,7 @@ inline std::string Asset::FindUniqueID(const std::string &str, const char *suffi
} }
#if _MSC_VER #if _MSC_VER
#pragma warning(pop) # pragma warning(pop)
#endif // _MSC_VER #endif // _MSC_VER
} // namespace glTF2 } // namespace glTF2