diff --git a/spine-cpp/spine-cpp/include/spine/Bone.h b/spine-cpp/spine-cpp/include/spine/Bone.h index 354ecabb8..61566377d 100644 --- a/spine-cpp/spine-cpp/include/spine/Bone.h +++ b/spine-cpp/spine-cpp/include/spine/Bone.h @@ -78,6 +78,9 @@ namespace spine { /// @param parent May be NULL. Bone(BoneData& data, Bone* parent); + /// Copy constructor. Does not copy the children bones. + Bone(Bone& bone, Bone* parent); + /// The parent bone, or null if this is the root bone. Bone* getParent(); diff --git a/spine-cpp/spine-cpp/src/spine/Bone.cpp b/spine-cpp/spine-cpp/src/spine/Bone.cpp index c3d64eacd..4f9dada99 100644 --- a/spine-cpp/spine-cpp/src/spine/Bone.cpp +++ b/spine-cpp/spine-cpp/src/spine/Bone.cpp @@ -47,6 +47,16 @@ Bone::Bone(BoneData &data, Bone *parent) : PosedGeneric_bone = this; } +Bone::Bone(Bone &bone, Bone *parent) : PosedGeneric(bone._data), + PosedActive(), + _parent(parent), + _children(), + _sorted(false) { + _constrained._bone = this; + _applied->_bone = this; + _pose.set(bone._pose); +} + Bone *Bone::getParent() { return _parent; }