MCPcopy Create free account
hub / github.com/assimp/assimp / LoadNodeTag

Method LoadNodeTag

code/AssetLib/LWO/LWOMaterial.cpp:753–783  ·  view source on GitHub ↗

------------------------------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

751
752// ------------------------------------------------------------------------------------------------
753void LWOImporter::LoadNodeTag(unsigned int size) {
754 LE_NCONST uint8_t *const end = mFileBuffer + size;
755
756 while (true) {
757 if (mFileBuffer + 8 >= end)
758 break;
759
760 IFF::ChunkHeader head = IFF::LoadChunk(mFileBuffer);
761 int bufOffset = 0;
762 if (head.type == AI_IFF_FOURCC_FORM) { // not chunk, it's a form
763 mFileBuffer -= 8;
764 head = IFF::LoadForm(mFileBuffer);
765 bufOffset = 4;
766 }
767
768 if (mFileBuffer + head.length > end) {
769 throw DeadlyImportError("LWO3: cannot read length; LoadNodeTag");
770 }
771
772 uint8_t *const next = mFileBuffer + head.length;
773 mFileBuffer += bufOffset;
774
775 switch (head.type) {
776 case AI_LWO_NDTA:
777 LoadNodeData(head.length);
778 break;
779 }
780
781 mFileBuffer = next;
782 }
783}
784
785// ------------------------------------------------------------------------------------------------
786void LWOImporter::LoadNodeData(unsigned int size) {

Callers

nothing calls this directly

Calls 3

LoadChunkFunction · 0.85
LoadFormFunction · 0.85
DeadlyImportErrorFunction · 0.85

Tested by

no test coverage detected