Skeleton constructor

Skeleton(
  1. SkeletonData data
)

Implementation

Skeleton(this.data) {
  for (int i = 0; i < data.bones.length; i++) {
    final BoneData boneData = data.bones[i];
    Bone bone;
    if (boneData.parent == null) {
      bone = Bone(boneData, this, null);
    } else {
      final Bone parent = bones[boneData.parent!.index];
      bone = Bone(boneData, this, parent);
      parent.children.add(bone);
    }
    bones.add(bone);
  }

  for (int i = 0; i < data.slots.length; i++) {
    final SlotData slotData = data.slots[i];
    final Bone bone = bones[slotData.boneData.index];
    final Slot slot = Slot(slotData, bone);
    slots.add(slot);
    drawOrder.add(slot);
  }

  for (int i = 0; i < data.ikConstraints.length; i++) {
    final IkConstraintData? ikConstraintData = data.ikConstraints[i];
    if (ikConstraintData != null) {
      ikConstraints.add(IkConstraint(ikConstraintData, this));
    }
  }

  for (int i = 0; i < data.transformConstraints.length; i++) {
    final TransformConstraintData? transformConstraintData =
        data.transformConstraints[i];
    if (transformConstraintData != null) {
      transformConstraints
          .add(TransformConstraint(transformConstraintData, this));
    }
  }

  for (int i = 0; i < data.pathConstraints.length; i++) {
    final PathConstraintData pathConstraintData = data.pathConstraints[i];
    pathConstraints.add(PathConstraint(pathConstraintData, this));
  }

  color = Color(1.0, 1.0, 1.0, 1.0);
  updateCache();
}