#pragma once #include "DataSpec/DNACommon/DNACommon.hpp" #include "DataSpec/DNACommon/RigInverter.hpp" namespace DataSpec::DNAMP2 { struct CINF : BigDNA { AT_DECL_DNA Value boneCount; struct Bone : BigDNA { AT_DECL_DNA Value id; Value parentId; Value origin; Value q1; Value q2; Value linkedCount; Vector linked; }; Vector bones; Value boneIdCount; Vector boneIds; Value nameCount; struct Name : BigDNA { AT_DECL_DNA String<-1> name; Value boneId; }; Vector names; atUint32 getInternalBoneIdxFromId(atUint32 id) const; atUint32 getBoneIdxFromId(atUint32 id) const; const std::string* getBoneNameFromId(atUint32 id) const; void sendVertexGroupsToBlender(hecl::blender::PyOutStream& os) const; void sendCINFToBlender(hecl::blender::PyOutStream& os, const UniqueID32& cinfId) const; static std::string GetCINFArmatureName(const UniqueID32& cinfId); }; }