private static void cloneSubtree(RigidBodyReadOnly originalStart, RigidBodyBasics cloneStart, String cloneSuffix, RigidBodyBuilder rigidBodyBuilder,
JointBuilder jointBuilder)
{
Map<RigidBodyReadOnly, RigidBodyBasics> originalToCloneBodyMap = new HashMap<>();
originalToCloneBodyMap.put(originalStart, cloneStart);
for (JointReadOnly originalJoint : originalStart.childrenSubtreeIterable())
{
RigidBodyReadOnly originalPredecessor = originalJoint.getPredecessor();
RigidBodyBasics clonePredecessor = originalToCloneBodyMap.get(originalPredecessor);
JointBasics cloneJoint = cloneJoint(originalJoint, cloneSuffix, clonePredecessor, originalStart.isRootBody(), jointBuilder);
RigidBodyReadOnly originalSuccessor = originalJoint.getSuccessor();
RigidBodyBasics cloneSuccessor = cloneRigidBody(originalSuccessor, null, cloneSuffix, cloneJoint, rigidBodyBuilder);
originalToCloneBodyMap.put(originalSuccessor, cloneSuccessor);
}
}