Blob() = default;
+ Blob(const Blob&) = default;
+ Blob& operator=(const Blob&) = default;
+
+ Blob(Blob&&) = default;
+ Blob& operator=(Blob&&) = default;
+
Blob(uint32_t offset, uint32_t length, uint16_t stride = 0, uint16_t elementSizeHint = 0, const std::vector<float>& min = {}, const std::vector<float>& max = {});
/**
{
SparseBlob() = default;
+ SparseBlob(const SparseBlob&) = default;
+ SparseBlob& operator=(const SparseBlob&) = default;
+
+ SparseBlob(SparseBlob&&) = default;
+ SparseBlob& operator=(SparseBlob&&) = default;
+
SparseBlob(const Blob& indices, const Blob& values, uint32_t count);
+ SparseBlob(Blob&& indices, Blob&& values, uint32_t count);
Blob mIndices;
Blob mValues;
Accessor(const MeshDefinition::Blob& blob,
const MeshDefinition::SparseBlob& sparse);
+ Accessor(MeshDefinition::Blob&& blob,
+ MeshDefinition::SparseBlob&& sparse);
bool IsDefined() const
{
MeshGeometry Load(RawData&& raw) const;
public: // DATA
- uint32_t mFlags = 0x0;
- Geometry::Type mPrimitiveType = Geometry::TRIANGLES;
- std::string mUri;
- Accessor mIndices;
- Accessor mPositions;
- Accessor mNormals; // data can be generated based on positions
- Accessor mTexCoords;
- Accessor mColors;
- Accessor mTangents; // data can be generated based on normals and texCoords (the latter isn't mandatory; the results will be better if available)
- Accessor mJoints0;
- Accessor mWeights0;
- Property::Type mTangentType{Property::VECTOR3};
+ std::shared_ptr<RawData> mRawData;
+ uint32_t mFlags = 0x0;
+ Geometry::Type mPrimitiveType = Geometry::TRIANGLES;
+ std::string mUri;
+ Accessor mIndices;
+ Accessor mPositions;
+ Accessor mNormals; // data can be generated based on positions
+ Accessor mTexCoords;
+ Accessor mColors;
+ Accessor mTangents; // data can be generated based on normals and texCoords (the latter isn't mandatory; the results will be better if available)
+ Accessor mJoints0;
+ Accessor mWeights0;
+ Property::Type mTangentType{Property::VECTOR3};
Blob mBlendShapeHeader;
std::vector<BlendShape> mBlendShapes;