public virtual void activateAll(SpriterAbstractPlayer player) { foreach (SpriterBone bone in player.getRuntimeBones()) { bone.active = true; } foreach (SpriterObject obj in player.getRuntimeObjects()) { obj.active = true; } }
public virtual void activateEffectors(SpriterAbstractPlayer player) { foreach (SpriterIKObject key in this.ikMap.Keys) { SpriterAbstractObject obj = this.ikMap[key]; if (obj is SpriterBone) obj = player.getRuntimeBones()[obj.getId()]; else obj = player.getRuntimeObjects()[obj.getId()]; obj.active = true; SpriterBone par = (SpriterBone)obj.getParent(); for (int j = 0; j < key.chainLength && par != null; j++) { player.getRuntimeBones()[par.getId()].active = true; par = (SpriterBone)par.getParent(); } } }
protected internal virtual void updateRecursively(SpriterAbstractPlayer player, SpriterAbstractObject @object) { this.updateObject(player, @object); if (@object is SpriterBone) { foreach (SpriterBone child in ((SpriterBone )@object).getChildBones()) { this.updateRecursively(player, player.getRuntimeBones()[child.getId()]); } foreach (SpriterObject child_1 in ((SpriterBone )@object).getChildObjects()) { this.updateRecursively(player, player.getRuntimeObjects()[child_1.getId()]); } } }
/// <summary> /// Resolves the inverse kinematics constraints with the implemented algorithm in /// <see cref="resolve(float, float, int, SpriterAbstractObject, SpriterAbstractPlayer) /// ">resolve(float, float, int, SpriterAbstractObject, SpriterAbstractPlayer) /// </see> /// . /// </summary> /// <param name="player">player to apply the resolving.</param> public virtual void resolve(SpriterAbstractPlayer player) { foreach(SpriterIKObject key in this.ikMap.Keys) { for (int j = 0; j < key.iterations; j++) { SpriterAbstractObject obj = this.ikMap[key]; if (obj is Com.Brashmonkey.Spriter.objects.SpriterBone) obj = player.getRuntimeBones()[obj.getId()]; else obj = player.getRuntimeObjects()[obj.getId()]; this.resolve(obj.getX(), obj.getY(), key.chainLength, obj, player); } } }