public RWSceneNodeBoneMetadata(int boneName, RWRootBoneInfo rootInfo)
            : base(RWNodeType.SceneNodeBoneMetadata)
        {
            _nameID = boneName;

            if (rootInfo == null)
                throw new ArgumentNullException("rootInfo");

            _rootInfo = rootInfo;
        }
        internal RWSceneNodeBoneMetadata(RWNodeFactory.RWNodeInfo header, BinaryReader reader)
                : base(header)
        {
            int version = reader.ReadInt32();

            if (version != VERSION)
            {
                throw new NotImplementedException("Unexpected version for RWHierarchyAnimPlugin");
            }

            _nameID = reader.ReadInt32();
            int numNodes = reader.ReadInt32();

            if (numNodes == 0)
                return;

            RWRootBoneFlags flags = (RWRootBoneFlags)reader.ReadUInt32();
            int keyFrameSize = reader.ReadInt32();
            List< RWBoneHierarchyNode> hierarchyNodes = new List<RWBoneHierarchyNode>(numNodes);

            for (int i = 0; i < numNodes; i++)
            {
                hierarchyNodes.Add(new RWBoneHierarchyNode(reader));
            }

            _rootInfo = new RWRootBoneInfo(flags, hierarchyNodes);
        }