[libgdx] Javadocs: prefer linking to property for brevity.

This commit is contained in:
Nathan Sweet 2026-03-24 23:30:16 -04:00
parent ca5ff77a8f
commit bf6ba6f858
19 changed files with 158 additions and 161 deletions

View File

@ -93,7 +93,7 @@ public class Animation {
/** Returns true if this animation contains a timeline with any of the specified property IDs.
* <p>
* See {@link Timeline#getPropertyIds()}. */
* See {@link Timeline#propertyIds}. */
public boolean hasTimeline (String[] propertyIds) {
for (String id : propertyIds)
if (timelineIds.contains(id)) return true;
@ -110,7 +110,7 @@ public class Animation {
this.duration = duration;
}
/** {@link Skeleton#getBones()} indices that this animation's timelines modify.
/** {@link Skeleton#bones} indices that this animation's timelines modify.
* <p>
* See {@link BoneTimeline#getBoneIndex()}. */
public IntArray getBones () {
@ -129,7 +129,7 @@ public class Animation {
* the first time an animation is applied to ensure frame 0 is triggered.
* @param time The time in seconds the skeleton is being posed for. Timelines find the frame before and after this time and
* interpolate between the frame values.
* @param loop True if <code>time</code> beyond the {@link #getDuration()} repeats the animation, else the last frame is used.
* @param loop True if <code>time</code> beyond the {@link #duration} repeats the animation, else the last frame is used.
* @param events If any events are fired, they are added to this list. Pass null to ignore fired events or if no timelines fire
* events.
* @param alpha 0 applies setup or current values (depending on <code>fromSetup</code>), 1 uses timeline values, and
@ -141,7 +141,7 @@ public class Animation {
* @param add If true, for timelines that support it, their values are added to the setup or current values (depending on
* <code>fromSetup</code>).
* @param out True when the animation is mixing out, else it is mixing in. Used by timelines that perform instant transitions.
* @param appliedPose True to modify {@link Posed#getAppliedPose()}, else {@link Posed#getPose()} is modified. */
* @param appliedPose True to modify {@link Posed#getAppliedPose()}, else {@link Posed#pose} is modified. */
public void apply (Skeleton skeleton, float lastTime, float time, boolean loop, @Null Array<Event> events, float alpha,
boolean fromSetup, boolean add, boolean out, boolean appliedPose) {
if (skeleton == null) throw new IllegalArgumentException("skeleton cannot be null.");
@ -254,7 +254,7 @@ public class Animation {
* <code>fromSetup</code>).
* @param out True when the animation is mixing out, else it is mixing in. Used by timelines that perform instant
* transitions.
* @param appliedPose True to modify {@link Posed#getAppliedPose()}, else {@link Posed#getPose()} is modified. */
* @param appliedPose True to modify {@link Posed#getAppliedPose()}, else {@link Posed#pose} is modified. */
abstract public void apply (Skeleton skeleton, float lastTime, float time, @Null Array<Event> events, float alpha,
boolean fromSetup, boolean add, boolean out, boolean appliedPose);
@ -281,7 +281,7 @@ public class Animation {
/** An interface for timelines that change a slot's properties. */
static public interface SlotTimeline {
/** The index of the slot in {@link Skeleton#getSlots()} that will be changed when this timeline is applied. */
/** The index of the slot in {@link Skeleton#slots} that will be changed when this timeline is applied. */
public int getSlotIndex ();
}
@ -368,7 +368,7 @@ public class Animation {
}
/** Returns the Bezier interpolated value for the specified time.
* @param frameIndex The index into {@link #getFrames()} for the values of the frame before <code>time</code>.
* @param frameIndex The index into {@link #frames} for the values of the frame before <code>time</code>.
* @param valueOffset The offset from <code>frameIndex</code> to the value this curve is used for.
* @param i The index of the Bezier segments. See {@link #getCurveType(int)}. */
public float getBezierValue (float time, int frameIndex, int valueOffset, int i) {
@ -493,7 +493,7 @@ public class Animation {
/** An interface for timelines that change a bone's properties. */
static public interface BoneTimeline {
/** The index of the bone in {@link Skeleton#getBones()} that is changed by this timeline. */
/** The index of the bone in {@link Skeleton#bones} that is changed by this timeline. */
public int getBoneIndex ();
}
@ -563,7 +563,7 @@ public class Animation {
boolean out);
}
/** Changes {@link BonePose#getRotation()}. */
/** Changes {@link BonePose#rotation}. */
static public class RotateTimeline extends BoneTimeline1 {
public RotateTimeline (int frameCount, int bezierCount, int boneIndex) {
super(frameCount, bezierCount, boneIndex, Property.rotate);
@ -574,7 +574,7 @@ public class Animation {
}
}
/** Changes {@link BonePose#getX()} and {@link BonePose#getY()}. */
/** Changes {@link BonePose#x} and {@link BonePose#y}. */
static public class TranslateTimeline extends BoneTimeline2 {
public TranslateTimeline (int frameCount, int bezierCount, int boneIndex) {
super(frameCount, bezierCount, boneIndex, Property.x, Property.y);
@ -624,7 +624,7 @@ public class Animation {
}
}
/** Changes {@link BonePose#getX()}. */
/** Changes {@link BonePose#x}. */
static public class TranslateXTimeline extends BoneTimeline1 {
public TranslateXTimeline (int frameCount, int bezierCount, int boneIndex) {
super(frameCount, bezierCount, boneIndex, Property.x);
@ -635,7 +635,7 @@ public class Animation {
}
}
/** Changes {@link BonePose#getY()}. */
/** Changes {@link BonePose#y}. */
static public class TranslateYTimeline extends BoneTimeline1 {
public TranslateYTimeline (int frameCount, int bezierCount, int boneIndex) {
super(frameCount, bezierCount, boneIndex, Property.y);
@ -646,7 +646,7 @@ public class Animation {
}
}
/** Changes {@link BonePose#getScaleX()} and {@link BonePose#getScaleY()}. */
/** Changes {@link BonePose#scaleX} and {@link BonePose#scaleY}. */
static public class ScaleTimeline extends BoneTimeline2 {
public ScaleTimeline (int frameCount, int bezierCount, int boneIndex) {
super(frameCount, bezierCount, boneIndex, Property.scaleX, Property.scaleY);
@ -713,7 +713,7 @@ public class Animation {
}
}
/** Changes {@link BonePose#getScaleX()}. */
/** Changes {@link BonePose#scaleX}. */
static public class ScaleXTimeline extends BoneTimeline1 {
public ScaleXTimeline (int frameCount, int bezierCount, int boneIndex) {
super(frameCount, bezierCount, boneIndex, Property.scaleX);
@ -724,7 +724,7 @@ public class Animation {
}
}
/** Changes {@link BonePose#getScaleY()}. */
/** Changes {@link BonePose#scaleY}. */
static public class ScaleYTimeline extends BoneTimeline1 {
public ScaleYTimeline (int frameCount, int bezierCount, int boneIndex) {
super(frameCount, bezierCount, boneIndex, Property.scaleY);
@ -735,7 +735,7 @@ public class Animation {
}
}
/** Changes {@link BonePose#getShearX()} and {@link BonePose#getShearY()}. */
/** Changes {@link BonePose#shearX} and {@link BonePose#shearY}. */
static public class ShearTimeline extends BoneTimeline2 {
public ShearTimeline (int frameCount, int bezierCount, int boneIndex) {
super(frameCount, bezierCount, boneIndex, Property.shearX, Property.shearY);
@ -785,7 +785,7 @@ public class Animation {
}
}
/** Changes {@link BonePose#getShearX()}. */
/** Changes {@link BonePose#shearX}. */
static public class ShearXTimeline extends BoneTimeline1 {
public ShearXTimeline (int frameCount, int bezierCount, int boneIndex) {
super(frameCount, bezierCount, boneIndex, Property.shearX);
@ -796,7 +796,7 @@ public class Animation {
}
}
/** Changes {@link BonePose#getShearY()}. */
/** Changes {@link BonePose#shearY}. */
static public class ShearYTimeline extends BoneTimeline1 {
public ShearYTimeline (int frameCount, int bezierCount, int boneIndex) {
super(frameCount, bezierCount, boneIndex, Property.shearY);
@ -807,7 +807,7 @@ public class Animation {
}
}
/** Changes {@link BonePose#getInherit()}. */
/** Changes {@link BonePose#inherit}. */
static public class InheritTimeline extends Timeline implements BoneTimeline {
static public final int ENTRIES = 2;
static private final int INHERIT = 1;
@ -877,7 +877,7 @@ public class Animation {
abstract protected void apply (Slot slot, SlotPose pose, float time, float alpha, boolean fromSetup, boolean add);
}
/** Changes {@link SlotPose#getColor()}. */
/** Changes {@link SlotPose#color}. */
static public class RGBATimeline extends SlotCurveTimeline {
static public final int ENTRIES = 5;
static private final int R = 1, G = 2, B = 3, A = 4;
@ -954,7 +954,7 @@ public class Animation {
}
}
/** Changes RGB for a slot's {@link SlotPose#getColor()}. */
/** Changes RGB for a slot's {@link SlotPose#color}. */
static public class RGBTimeline extends SlotCurveTimeline {
static public final int ENTRIES = 4;
static private final int R = 1, G = 2, B = 3;
@ -1034,7 +1034,7 @@ public class Animation {
}
}
/** Changes alpha for a slot's {@link SlotPose#getColor()}. */
/** Changes alpha for a slot's {@link SlotPose#color}. */
static public class AlphaTimeline extends CurveTimeline1 implements SlotTimeline {
final int slotIndex;
@ -1072,7 +1072,7 @@ public class Animation {
}
}
/** Changes {@link SlotPose#getColor()} and {@link SlotPose#getDarkColor()} for two color tinting. */
/** Changes {@link SlotPose#color} and {@link SlotPose#darkColor} for two color tinting. */
static public class RGBA2Timeline extends SlotCurveTimeline {
static public final int ENTRIES = 8;
static private final int R = 1, G = 2, B = 3, A = 4, R2 = 5, G2 = 6, B2 = 7;
@ -1183,7 +1183,7 @@ public class Animation {
}
}
/** Changes RGB for a slot's {@link SlotPose#getColor()} and {@link SlotPose#getDarkColor()} for two color tinting. */
/** Changes RGB for a slot's {@link SlotPose#color} and {@link SlotPose#darkColor} for two color tinting. */
static public class RGB2Timeline extends SlotCurveTimeline {
static public final int ENTRIES = 7;
static private final int R = 1, G = 2, B = 3, R2 = 4, G2 = 5, B2 = 6;
@ -1295,7 +1295,7 @@ public class Animation {
}
}
/** Changes {@link SlotPose#getAttachment()}. */
/** Changes {@link SlotPose#attachment}. */
static public class AttachmentTimeline extends Timeline implements SlotTimeline {
final int slotIndex;
final String[] attachmentNames;
@ -1345,7 +1345,7 @@ public class Animation {
}
}
/** Changes {@link SlotPose#getDeform()} to deform a {@link VertexAttachment}. */
/** Changes {@link SlotPose#deform} to deform a {@link VertexAttachment}. */
static public class DeformTimeline extends SlotCurveTimeline {
final VertexAttachment attachment;
private final float[][] vertices;
@ -1555,7 +1555,7 @@ public class Animation {
}
}
/** Changes {@link SlotPose#getSequenceIndex()} for an attachment's {@link Sequence}. */
/** Changes {@link SlotPose#sequenceIndex} for an attachment's {@link Sequence}. */
static public class SequenceTimeline extends Timeline implements SlotTimeline {
static public final int ENTRIES = 3;
static private final int MODE = 1, DELAY = 2;
@ -1578,7 +1578,7 @@ public class Animation {
return slotIndex;
}
/** The attachment for which {@link SlotPose#getSequenceIndex()} will be set.
/** The attachment for which {@link SlotPose#sequenceIndex} will be set.
* <p>
* See {@link VertexAttachment#getTimelineAttachment()}. */
public Attachment getAttachment () {
@ -1704,7 +1704,7 @@ public class Animation {
}
}
/** Changes {@link Skeleton#getDrawOrder()}. */
/** Changes {@link Skeleton#drawOrder}. */
static public class DrawOrderTimeline extends Timeline {
static final String propertyID = Integer.toString(Property.drawOrder.ordinal());
static private final String[] propertyIds = {propertyID};
@ -1754,13 +1754,13 @@ public class Animation {
}
}
/** Changes a subset of {@link Skeleton#getDrawOrder()}. */
/** Changes a subset of {@link Skeleton#drawOrder}. */
static public class DrawOrderFolderTimeline extends Timeline {
private final int[] slots;
private final boolean[] inFolder;
private final int[][] drawOrders;
/** @param slots {@link Skeleton#getSlots()} indices controlled by this timeline, in setup order.
/** @param slots {@link Skeleton#slots} indices controlled by this timeline, in setup order.
* @param slotCount The maximum number of slots in the skeleton. */
public DrawOrderFolderTimeline (int frameCount, int[] slots, int slotCount) {
super(frameCount, propertyIds(slots));
@ -1784,7 +1784,7 @@ public class Animation {
return frames.length;
}
/** The {@link Skeleton#getSlots()} indices that this timeline affects, in setup order. */
/** The {@link Skeleton#slots} indices that this timeline affects, in setup order. */
public int[] getSlots () {
return slots;
}
@ -1797,7 +1797,7 @@ public class Animation {
/** Sets the time and draw order for the specified frame.
* @param frame Between 0 and <code>frameCount</code>, inclusive.
* @param time The frame time in seconds.
* @param drawOrder Ordered {@link #getSlots()} indices, or null to use setup pose order. */
* @param drawOrder Ordered {@link #slots} indices, or null to use setup pose order. */
public void setFrame (int frame, float time, @Null int[] drawOrder) {
frames[frame] = time;
drawOrders[frame] = drawOrder;
@ -1842,14 +1842,13 @@ public class Animation {
}
static public interface ConstraintTimeline {
/** The index of the constraint in {@link Skeleton#getConstraints()} that will be changed when this timeline is applied, or
* -1 if a specific constraint will not be changed. */
/** The index of the constraint in {@link Skeleton#constraints} that will be changed when this timeline is applied, or -1 if
* a specific constraint will not be changed. */
public int getConstraintIndex ();
}
/** Changes {@link IkConstraintPose#getMix()}, {@link IkConstraintPose#getSoftness()},
* {@link IkConstraintPose#getBendDirection()}, {@link IkConstraintPose#getStretch()}, and
* {@link IkConstraintPose#getCompress()}. */
/** Changes {@link IkConstraintPose#mix}, {@link IkConstraintPose#softness}, {@link IkConstraintPose#bendDirection},
* {@link IkConstraintPose#stretch}, and {@link IkConstraintPose#compress}. */
static public class IkConstraintTimeline extends CurveTimeline implements ConstraintTimeline {
static public final int ENTRIES = 6;
static private final int MIX = 1, SOFTNESS = 2, BEND_DIRECTION = 3, COMPRESS = 4, STRETCH = 5;
@ -1941,9 +1940,9 @@ public class Animation {
}
}
/** Changes {@link TransformConstraintPose#getMixRotate()}, {@link TransformConstraintPose#getMixX()},
* {@link TransformConstraintPose#getMixY()}, {@link TransformConstraintPose#getMixScaleX()},
* {@link TransformConstraintPose#getMixScaleY()}, and {@link TransformConstraintPose#getMixShearY()}. */
/** Changes {@link TransformConstraintPose#mixRotate}, {@link TransformConstraintPose#mixX},
* {@link TransformConstraintPose#mixY}, {@link TransformConstraintPose#mixScaleX}, {@link TransformConstraintPose#mixScaleY},
* and {@link TransformConstraintPose#mixShearY}. */
static public class TransformConstraintTimeline extends CurveTimeline implements ConstraintTimeline {
static public final int ENTRIES = 7;
static private final int ROTATE = 1, X = 2, Y = 3, SCALEX = 4, SCALEY = 5, SHEARY = 6;
@ -2069,7 +2068,7 @@ public class Animation {
}
}
/** Changes {@link PathConstraintPose#getPosition()}. */
/** Changes {@link PathConstraintPose#position}. */
static public class PathConstraintPositionTimeline extends ConstraintTimeline1 {
public PathConstraintPositionTimeline (int frameCount, int bezierCount, int constraintIndex) {
super(frameCount, bezierCount, constraintIndex, Property.pathConstraintPosition);
@ -2086,7 +2085,7 @@ public class Animation {
}
}
/** Changes {@link PathConstraintPose#getSpacing()}. */
/** Changes {@link PathConstraintPose#spacing}. */
static public class PathConstraintSpacingTimeline extends ConstraintTimeline1 {
public PathConstraintSpacingTimeline (int frameCount, int bezierCount, int constraintIndex) {
super(frameCount, bezierCount, constraintIndex, Property.pathConstraintSpacing);
@ -2102,8 +2101,7 @@ public class Animation {
}
}
/** Changes {@link PathConstraintPose#getMixRotate()}, {@link PathConstraintPose#getMixX()}, and
* {@link PathConstraintPose#getMixY()}. */
/** Changes {@link PathConstraintPose#mixRotate}, {@link PathConstraintPose#mixX}, and {@link PathConstraintPose#mixY}. */
static public class PathConstraintMixTimeline extends CurveTimeline implements ConstraintTimeline {
static public final int ENTRIES = 4;
static private final int ROTATE = 1, X = 2, Y = 3;
@ -2226,7 +2224,7 @@ public class Animation {
abstract protected boolean global (PhysicsConstraintData constraint);
}
/** Changes {@link PhysicsConstraintPose#getInertia()}. */
/** Changes {@link PhysicsConstraintPose#inertia}. */
static public class PhysicsConstraintInertiaTimeline extends PhysicsConstraintTimeline {
public PhysicsConstraintInertiaTimeline (int frameCount, int bezierCount, int constraintIndex) {
super(frameCount, bezierCount, constraintIndex, Property.physicsConstraintInertia);
@ -2245,7 +2243,7 @@ public class Animation {
}
}
/** Changes {@link PhysicsConstraintPose#getStrength()}. */
/** Changes {@link PhysicsConstraintPose#strength}. */
static public class PhysicsConstraintStrengthTimeline extends PhysicsConstraintTimeline {
public PhysicsConstraintStrengthTimeline (int frameCount, int bezierCount, int constraintIndex) {
super(frameCount, bezierCount, constraintIndex, Property.physicsConstraintStrength);
@ -2264,7 +2262,7 @@ public class Animation {
}
}
/** Changes {@link PhysicsConstraintPose#getDamping()}. */
/** Changes {@link PhysicsConstraintPose#damping}. */
static public class PhysicsConstraintDampingTimeline extends PhysicsConstraintTimeline {
public PhysicsConstraintDampingTimeline (int frameCount, int bezierCount, int constraintIndex) {
super(frameCount, bezierCount, constraintIndex, Property.physicsConstraintDamping);
@ -2283,7 +2281,7 @@ public class Animation {
}
}
/** Changes {@link PhysicsConstraintPose#getMassInverse()}. The timeline values are not inverted. */
/** Changes {@link PhysicsConstraintPose#massInverse}. The timeline values are not inverted. */
static public class PhysicsConstraintMassTimeline extends PhysicsConstraintTimeline {
public PhysicsConstraintMassTimeline (int frameCount, int bezierCount, int constraintIndex) {
super(frameCount, bezierCount, constraintIndex, Property.physicsConstraintMass);
@ -2302,7 +2300,7 @@ public class Animation {
}
}
/** Changes {@link PhysicsConstraintPose#getWind()}. */
/** Changes {@link PhysicsConstraintPose#wind}. */
static public class PhysicsConstraintWindTimeline extends PhysicsConstraintTimeline {
public PhysicsConstraintWindTimeline (int frameCount, int bezierCount, int constraintIndex) {
super(frameCount, bezierCount, constraintIndex, Property.physicsConstraintWind);
@ -2322,7 +2320,7 @@ public class Animation {
}
}
/** Changes {@link PhysicsConstraintPose#getGravity()}. */
/** Changes {@link PhysicsConstraintPose#gravity}. */
static public class PhysicsConstraintGravityTimeline extends PhysicsConstraintTimeline {
public PhysicsConstraintGravityTimeline (int frameCount, int bezierCount, int constraintIndex) {
super(frameCount, bezierCount, constraintIndex, Property.physicsConstraintGravity);
@ -2342,7 +2340,7 @@ public class Animation {
}
}
/** Changes {@link PhysicsConstraintPose#getMix()}. */
/** Changes {@link PhysicsConstraintPose#mix}. */
static public class PhysicsConstraintMixTimeline extends PhysicsConstraintTimeline {
public PhysicsConstraintMixTimeline (int frameCount, int bezierCount, int constraintIndex) {
super(frameCount, bezierCount, constraintIndex, Property.physicsConstraintMix);
@ -2374,8 +2372,8 @@ public class Animation {
instant = true;
}
/** The index of the physics constraint in {@link Skeleton#getConstraints()} that will be reset when this timeline is
* applied, or -1 if all physics constraints in the skeleton will be reset. */
/** The index of the physics constraint in {@link Skeleton#constraints} that will be reset when this timeline is applied, or
* -1 if all physics constraints in the skeleton will be reset. */
public int getConstraintIndex () {
return constraintIndex;
}
@ -2422,7 +2420,7 @@ public class Animation {
}
}
/** Changes {@link SliderPose#getTime()}. */
/** Changes {@link SliderPose#time}. */
static public class SliderTimeline extends ConstraintTimeline1 {
public SliderTimeline (int frameCount, int bezierCount, int constraintIndex) {
super(frameCount, bezierCount, constraintIndex, Property.sliderTime);
@ -2439,7 +2437,7 @@ public class Animation {
}
}
/** Changes {@link SliderPose#getMix()}. */
/** Changes {@link SliderPose#mix}. */
static public class SliderMixTimeline extends ConstraintTimeline1 {
public SliderMixTimeline (int frameCount, int bezierCount, int constraintIndex) {
super(frameCount, bezierCount, constraintIndex, Property.sliderMix);

View File

@ -78,7 +78,7 @@ public class AnimationState {
this.data = data;
}
/** Increments each track entry {@link TrackEntry#getTrackTime()}, setting queued animations as current if needed. */
/** Increments each track entry {@link TrackEntry#trackTime}, setting queued animations as current if needed. */
public void update (float delta) {
delta *= timeScale;
TrackEntry[] tracks = this.tracks.items;
@ -496,7 +496,7 @@ public class AnimationState {
* If the formerly current track entry is for the same animation and was never applied to a skeleton, it is replaced (not mixed
* from).
* @param loop If true, the animation will repeat. If false it will not, instead its last frame is applied if played beyond its
* duration. In either case {@link TrackEntry#getTrackEnd()} determines when the track is cleared.
* duration. In either case {@link TrackEntry#trackEnd} determines when the track is cleared.
* @return A track entry to allow further customization of animation playback. References to the track entry must not be kept
* after the {@link AnimationStateListener#dispose(TrackEntry)} event occurs. */
public TrackEntry setAnimation (int trackIndex, Animation animation, boolean loop) {
@ -533,8 +533,8 @@ public class AnimationState {
/** Adds an animation to be played after the current or last queued animation for a track. If the track has no entries, this is
* equivalent to calling {@link #setAnimation(int, Animation, boolean)}.
* @param delay If > 0, sets {@link TrackEntry#getDelay()}. If <= 0, the delay set is the duration of the previous track entry
* minus any mix duration (from {@link #data}) plus the specified <code>delay</code> (ie the mix ends at (when
* @param delay If > 0, sets {@link TrackEntry#delay}. If <= 0, the delay set is the duration of the previous track entry minus
* any mix duration (from {@link #data}) plus the specified <code>delay</code> (ie the mix ends at (when
* <code>delay</code> = 0) or before (when <code>delay</code> < 0) the previous track entry duration). If the
* previous entry is looping, its next loop completion is used instead of its duration.
* @return A track entry to allow further customization of animation playback. References to the track entry must not be kept
@ -566,7 +566,7 @@ public class AnimationState {
}
/** Sets an empty animation for a track, discarding any queued animations, and sets the track entry's
* {@link TrackEntry#getMixDuration()}. An empty animation has no timelines and serves as a placeholder for mixing in or out.
* {@link TrackEntry#mixDuration}. An empty animation has no timelines and serves as a placeholder for mixing in or out.
* <p>
* Mixing out is done by setting an empty animation with a mix duration using either {@link #setEmptyAnimation(int, float)},
* {@link #setEmptyAnimations(float)}, or {@link #addEmptyAnimation(int, float, float)}. Mixing to an empty animation causes
@ -590,16 +590,16 @@ public class AnimationState {
}
/** Adds an empty animation to be played after the current or last queued animation for a track, and sets the track entry's
* {@link TrackEntry#getMixDuration()}. If the track has no entries, it is equivalent to calling
* {@link TrackEntry#mixDuration}. If the track has no entries, it is equivalent to calling
* {@link #setEmptyAnimation(int, float)}.
* <p>
* See {@link #setEmptyAnimation(int, float)} and
* <a href='https://esotericsoftware.com/spine-applying-animations#Empty-animations'>Empty animations</a> in the Spine Runtimes
* Guide.
* @param delay If > 0, sets {@link TrackEntry#getDelay()}. If <= 0, the delay set is the duration of the previous track entry
* minus any mix duration plus the specified <code>delay</code> (ie the mix ends at (when <code>delay</code> = 0) or
* before (when <code>delay</code> < 0) the previous track entry duration). If the previous entry is looping, its
* next loop completion is used instead of its duration.
* @param delay If > 0, sets {@link TrackEntry#delay}. If <= 0, the delay set is the duration of the previous track entry minus
* any mix duration plus the specified <code>delay</code> (ie the mix ends at (when <code>delay</code> = 0) or before
* (when <code>delay</code> < 0) the previous track entry duration). If the previous entry is looping, its next loop
* completion is used instead of its duration.
* @return A track entry to allow further customization of animation playback. References to the track entry must not be kept
* after the {@link AnimationStateListener#dispose(TrackEntry)} event occurs. */
public TrackEntry addEmptyAnimation (int trackIndex, float mixDuration, float delay) {
@ -668,7 +668,7 @@ public class AnimationState {
return entry;
}
/** Removes {@link TrackEntry#getNext()} and all entries after it for the specified entry. */
/** Removes {@link TrackEntry#next} and all entries after it for the specified entry. */
public void clearNext (TrackEntry entry) {
TrackEntry next = entry.next;
while (next != null) {
@ -779,7 +779,7 @@ public class AnimationState {
/** Multiplier for the delta time when the animation state is updated, causing time for all animations and mixes to play slower
* or faster. Defaults to 1.
* <p>
* See {@link TrackEntry#getTimeScale()} to affect a single animation. */
* See {@link TrackEntry#timeScale} to affect a single animation. */
public float getTimeScale () {
return timeScale;
}
@ -879,14 +879,14 @@ public class AnimationState {
}
/** Seconds to postpone playing the animation. Must be >= 0. When this track entry is the current track entry,
* <code>delay</code> postpones incrementing the {@link #getTrackTime()}. When this track entry is queued,
* <code>delay</code> is the time from the start of the previous animation to when this track entry will become the current
* track entry (ie when the previous track entry {@link #getTrackTime()} >= this track entry's <code>delay</code>).
* <code>delay</code> postpones incrementing the {@link #trackTime}. When this track entry is queued, <code>delay</code> is
* the time from the start of the previous animation to when this track entry will become the current track entry (ie when
* the previous track entry {@link #trackTime} >= this track entry's <code>delay</code>).
* <p>
* {@link #getTimeScale()} affects the delay.
* {@link #timeScale} affects the delay.
* <p>
* When passing <code>delay</code> <= 0 to {@link AnimationState#addAnimation(int, Animation, boolean, float)} this
* <code>delay</code> is set using a mix duration from {@link AnimationStateData}. To change the {@link #getMixDuration()}
* <code>delay</code> is set using a mix duration from {@link AnimationStateData}. To change the {@link #mixDuration}
* afterward, use {@link #setMixDuration(float, float)} so this <code>delay</code> is adjusted. */
public float getDelay () {
return delay;
@ -923,11 +923,11 @@ public class AnimationState {
this.trackEnd = trackEnd;
}
/** If this track entry is non-looping, this is the track time in seconds when {@link #getAnimationEnd()} is reached, or the
* current {@link #getTrackTime()} if it has already been reached.
/** If this track entry is non-looping, this is the track time in seconds when {@link #animationEnd} is reached, or the
* current {@link #trackTime} if it has already been reached.
* <p>
* If this track entry is looping, this is the track time when this animation will reach its next {@link #getAnimationEnd()}
* (the next loop completion). */
* If this track entry is looping, this is the track time when this animation will reach its next {@link #animationEnd} (the
* next loop completion). */
public float getTrackComplete () {
float duration = animationEnd - animationStart;
if (duration != 0) {
@ -939,8 +939,8 @@ public class AnimationState {
/** Seconds when this animation starts, both initially and after looping. Defaults to 0.
* <p>
* When changing the <code>animationStart</code> time, it often makes sense to set {@link #getAnimationLast()} to the same
* value to prevent timeline keys before the start time from triggering. */
* When changing the <code>animationStart</code> time, it often makes sense to set {@link #animationLast} to the same value
* to prevent timeline keys before the start time from triggering. */
public float getAnimationStart () {
return animationStart;
}
@ -950,7 +950,7 @@ public class AnimationState {
}
/** Seconds for the last frame of this animation. Non-looping animations won't play past this time. Looping animations will
* loop back to {@link #getAnimationStart()} at this time. Defaults to the animation {@link Animation#duration}. */
* loop back to {@link #animationStart} at this time. Defaults to the animation {@link Animation#duration}. */
public float getAnimationEnd () {
return animationEnd;
}
@ -972,12 +972,12 @@ public class AnimationState {
nextAnimationLast = animationLast;
}
/** Uses {@link #getTrackTime()} to compute the <code>animationTime</code>. When the <code>trackTime</code> is 0, the
/** Uses {@link #trackTime} to compute the <code>animationTime</code>. When the <code>trackTime</code> is 0, the
* <code>animationTime</code> is equal to the <code>animationStart</code> time.
* <p>
* The <code>animationTime</code> is between {@link #getAnimationStart()} and {@link #getAnimationEnd()}, except if this
* track entry is non-looping and {@link #getAnimationEnd()} is >= to the {@link Animation#duration}, then
* <code>animationTime</code> continues to increase past {@link #getAnimationEnd()}. */
* The <code>animationTime</code> is between {@link #animationStart} and {@link #animationEnd}, except if this track entry
* is non-looping and {@link #animationEnd} is >= to the {@link Animation#duration}, then <code>animationTime</code>
* continues to increase past {@link #animationEnd}. */
public float getAnimationTime () {
if (loop) {
float duration = animationEnd - animationStart;
@ -991,16 +991,16 @@ public class AnimationState {
/** Multiplier for the delta time when this track entry is updated, causing time for this animation to pass slower or
* faster. Defaults to 1.
* <p>
* Values < 0 are not supported. To play an animation in reverse, use {@link #getReverse()}.
* Values < 0 are not supported. To play an animation in reverse, use {@link #reverse}.
* <p>
* {@link #getMixTime()} is not affected by track entry time scale, so {@link #getMixDuration()} may need to be adjusted to
* match the animation speed.
* {@link #mixTime} is not affected by track entry time scale, so {@link #mixDuration} may need to be adjusted to match the
* animation speed.
* <p>
* When using {@link AnimationState#addAnimation(int, Animation, boolean, float)} with a <code>delay</code> <= 0, the
* {@link #getDelay()} is set using the mix duration from {@link AnimationState#data}, assuming time scale to be 1. If the
* time scale is not 1, the delay may need to be adjusted.
* {@link #delay} is set using the mix duration from {@link AnimationState#data}, assuming time scale to be 1. If the time
* scale is not 1, the delay may need to be adjusted.
* <p>
* See {@link AnimationState#getTimeScale()} to affect all animations. */
* See {@link AnimationState#timeScale} to affect all animations. */
public float getTimeScale () {
return timeScale;
}
@ -1026,7 +1026,7 @@ public class AnimationState {
* <p>
* Alpha should be 1 on track 0.
* <p>
* See {@link #getAlphaAttachmentThreshold()}. */
* See {@link #alphaAttachmentThreshold}. */
public float getAlpha () {
return alpha;
}
@ -1035,9 +1035,9 @@ public class AnimationState {
this.alpha = alpha;
}
/** When the mix percentage ({@link #getMixTime()} / {@link #getMixDuration()}) is less than the
* <code>eventThreshold</code>, event timelines are applied while this animation is being mixed out. Defaults to 0, so event
* timelines are not applied while this animation is being mixed out. */
/** When the mix percentage ({@link #mixTime} / {@link #mixDuration}) is less than the <code>eventThreshold</code>, event
* timelines are applied while this animation is being mixed out. Defaults to 0, so event timelines are not applied while
* this animation is being mixed out. */
public float getEventThreshold () {
return eventThreshold;
}
@ -1047,7 +1047,7 @@ public class AnimationState {
}
/** When the computed alpha is greater than <code>alphaAttachmentThreshold</code>, attachment timelines are applied. The
* computed alpha includes {@link #getAlpha()} and the mix percentage. Defaults to 0, so attachment timelines are always
* computed alpha includes {@link #alpha} and the mix percentage. Defaults to 0, so attachment timelines are always
* applied. */
public float getAlphaAttachmentThreshold () {
return alphaAttachmentThreshold;
@ -1057,9 +1057,9 @@ public class AnimationState {
this.alphaAttachmentThreshold = alphaAttachmentThreshold;
}
/** When the mix percentage ({@link #getMixTime()} / {@link #getMixDuration()}) is less than the
* <code>mixAttachmentThreshold</code>, attachment timelines are applied while this animation is being mixed out. Defaults
* to 0, so attachment timelines are not applied while this animation is being mixed out. */
/** When the mix percentage ({@link #mixTime} / {@link #mixDuration}) is less than the <code>mixAttachmentThreshold</code>,
* attachment timelines are applied while this animation is being mixed out. Defaults to 0, so attachment timelines are not
* applied while this animation is being mixed out. */
public float getMixAttachmentThreshold () {
return mixAttachmentThreshold;
}
@ -1068,9 +1068,9 @@ public class AnimationState {
this.mixAttachmentThreshold = mixAttachmentThreshold;
}
/** When the mix percentage ({@link #getMixTime()} / {@link #getMixDuration()}) is less than the
* <code>mixDrawOrderThreshold</code>, draw order timelines are applied while this animation is being mixed out. Defaults to
* 0, so draw order timelines are not applied while this animation is being mixed out. */
/** When the mix percentage ({@link #mixTime} / {@link #mixDuration}) is less than the <code>mixDrawOrderThreshold</code>,
* draw order timelines are applied while this animation is being mixed out. Defaults to 0, so draw order timelines are not
* applied while this animation is being mixed out. */
public float getMixDrawOrderThreshold () {
return mixDrawOrderThreshold;
}
@ -1099,7 +1099,7 @@ public class AnimationState {
return nextTrackLast != -1;
}
/** Returns true if there is a {@link #getNext()} track entry and it will become the current track entry during the next
/** Returns true if there is a {@link #next} track entry and it will become the current track entry during the next
* {@link AnimationState#update(float)}. */
public boolean isNextReady () {
return next != null && nextTrackLast - next.delay >= 0;
@ -1112,8 +1112,8 @@ public class AnimationState {
return trackTime >= animationEnd - animationStart;
}
/** Seconds elapsed from 0 to the {@link #getMixDuration()} when mixing from the previous animation to this animation. May
* be slightly more than <code>mixDuration</code> when the mix is complete. */
/** Seconds elapsed from 0 to the {@link #mixDuration} when mixing from the previous animation to this animation. May be
* slightly more than <code>mixDuration</code> when the mix is complete. */
public float getMixTime () {
return mixTime;
}
@ -1133,7 +1133,7 @@ public class AnimationState {
* track entry only before {@link AnimationState#update(float)} is next called.
* <p>
* When using {@link AnimationState#addAnimation(int, Animation, boolean, float)} with a <code>delay</code> <= 0, the
* {@link #getDelay()} is set using the mix duration from {@link AnimationState#data}. If <code>mixDuration</code> is set
* {@link #delay} is set using the mix duration from {@link AnimationState#data}. If <code>mixDuration</code> is set
* afterward, the delay needs to be adjusted:
*
* <pre>
@ -1155,11 +1155,11 @@ public class AnimationState {
this.mixDuration = mixDuration;
}
/** Sets both {@link #getMixDuration()} and {@link #getDelay()}.
* @param delay If > 0, sets {@link #getDelay()}. If <= 0, the delay set is the duration of the previous track entry minus
* the specified mix duration plus the specified <code>delay</code> (ie the mix ends at (when <code>delay</code> =
* 0) or before (when <code>delay</code> < 0) the previous track entry duration). If the previous entry is
* looping, its next loop completion is used instead of its duration. */
/** Sets both {@link #mixDuration} and {@link #delay}.
* @param delay If > 0, sets {@link #delay}. If <= 0, the delay set is the duration of the previous track entry minus the
* specified mix duration plus the specified <code>delay</code> (ie the mix ends at (when <code>delay</code> = 0)
* or before (when <code>delay</code> < 0) the previous track entry duration). If the previous entry is looping,
* its next loop completion is used instead of its duration. */
public void setMixDuration (float mixDuration, float delay) {
this.mixDuration = mixDuration;
if (delay <= 0) delay = previous == null ? 0 : Math.max(delay + previous.getTrackComplete() - mixDuration, 0);
@ -1205,7 +1205,7 @@ public class AnimationState {
}
/** When {@link #shortestRotation} is false, this clears the directions for mixing this entry's rotation. This can be useful
* to avoid bones rotating the long way around when using {@link #getAlpha()} and starting animations on other tracks.
* to avoid bones rotating the long way around when using {@link #alpha} and starting animations on other tracks.
* <p>
* Mixing involves finding a rotation between two others. There are two possible solutions: the short or the long way
* around. When the two rotations change over time, which direction is the short or long way can also change. If the short
@ -1366,7 +1366,7 @@ public class AnimationState {
/** Invoked every time this entry's animation completes a loop. This may occur during mixing (after
* {@link #interrupt(TrackEntry)}).
* <p>
* If this entry's {@link TrackEntry#getMixingTo()} is not null, this entry is mixing out (it is not the current entry).
* If this entry's {@link TrackEntry#mixingTo} is not null, this entry is mixing out (it is not the current entry).
* <p>
* Because this event is triggered at the end of {@link AnimationState#apply(Skeleton)}, any animations set in response to
* the event won't be applied until the next time the AnimationState is applied. */

View File

@ -74,7 +74,7 @@ public class AnimationStateData {
}
/** Returns the mix duration to use when changing from the specified animation to the other on the same track, or the
* {@link #getDefaultMix()} if no mix duration has been set. */
* {@link #defaultMix} if no mix duration has been set. */
public float getMix (Animation from, Animation to) {
if (from == null) throw new IllegalArgumentException("from cannot be null.");
if (to == null) throw new IllegalArgumentException("to cannot be null.");

View File

@ -35,9 +35,9 @@ import com.badlogic.gdx.utils.Null;
/** A node in a skeleton's hierarchy with a transform that affects its children and their attachments. A bone has a number of
* poses:
* <ul>
* <li>{@link #getData()}: The setup pose.
* <li>{@link #getPose()}: The unconstrained local pose. Set by animations and application code.
* <li>{@link #getAppliedPose()}: The constrained local pose. The {@link #getPose()} with modifications by constraints.
* <li>{@link #data}: The setup pose.
* <li>{@link #pose}: The unconstrained local pose. Set by animations and application code.
* <li>{@link #getAppliedPose()}: The constrained local pose. The {@link #pose} with modifications by constraints.
* <li>World transform (on the applied pose): the {@link #getAppliedPose()} combined with the parent world transform. Computed by
* {@link Skeleton#updateWorldTransform(Physics)} and {@link BonePose#updateWorldTransform(Skeleton)}.
* </ul>
@ -54,7 +54,7 @@ public class Bone extends PosedActive<BoneData, BonePose> {
constrained.bone = this;
}
/** Copy constructor. Does not copy the {@link #getChildren()} bones. */
/** Copy constructor. Does not copy the {@link #children} bones. */
public Bone (Bone bone, @Null Bone parent) {
this(bone.data, parent);
pose.set(bone.pose);

View File

@ -65,7 +65,7 @@ public class BoneData extends PosedData<BonePose> {
return super.getName();
}
/** The {@link Skeleton#getBones()} index. */
/** The {@link Skeleton#bones} index. */
public int getIndex () {
return index;
}

View File

@ -9,8 +9,8 @@ import com.badlogic.gdx.math.Vector2;
import com.esotericsoftware.spine.BoneData.Inherit;
/** The applied local pose and world transform for a bone. This is the {@link Bone#getPose()} with constraints applied and the
* world transform computed by {@link Skeleton#updateWorldTransform(Physics)} and {@link #updateWorldTransform(Skeleton)}.
/** The applied local pose and world transform for a bone. This is the {@link Bone#pose} with constraints applied and the world
* transform computed by {@link Skeleton#updateWorldTransform(Physics)} and {@link #updateWorldTransform(Skeleton)}.
* <p>
* If the world transform is changed, call {@link #updateLocalTransform(Skeleton)} before using the local transform. The local
* transform may be needed by other code (eg to apply another constraint).

View File

@ -62,8 +62,8 @@ public class IkConstraintData extends ConstraintData<IkConstraint, IkConstraintP
this.target = target;
}
/** When true and {@link IkConstraintPose#getCompress()} or {@link IkConstraintPose#getStretch()} is used, the bone is scaled
* on both the X and Y axes. */
/** When true and {@link IkConstraintPose#compress} or {@link IkConstraintPose#stretch} is used, the bone is scaled on both the
* X and Y axes. */
public boolean getUniform () {
return uniform;
}

View File

@ -84,8 +84,8 @@ public class IkConstraintPose implements Pose<IkConstraintPose> {
/** When true and the target is out of range, the parent bone is scaled to reach it.
* <p>
* For two bone IK: 1) the child bone's local Y translation is set to 0, 2) stretch is not applied if {@link #getSoftness()} is
* > 0, and 3) if the parent bone has local nonuniform scale, stretch is not applied. */
* For two bone IK: 1) the child bone's local Y translation is set to 0, 2) stretch is not applied if {@link #softness} is > 0,
* and 3) if the parent bone has local nonuniform scale, stretch is not applied. */
public boolean getStretch () {
return stretch;
}

View File

@ -79,7 +79,7 @@ public class PhysicsConstraintPose implements Pose<PhysicsConstraintPose> {
this.massInverse = massInverse;
}
/** Applies a constant force along the world X axis. */
/** Applies a constant force along the {@link Skeleton#windX}, {@link Skeleton#windY} vector. */
public float getWind () {
return wind;
}
@ -88,7 +88,7 @@ public class PhysicsConstraintPose implements Pose<PhysicsConstraintPose> {
this.wind = wind;
}
/** Applies a constant force along the world Y axis. */
/** Applies a constant force along the {@link Skeleton#gravityX}, {@link Skeleton#gravityY} vector. */
public float getGravity () {
return gravity;
}

View File

@ -3,9 +3,9 @@ package com.esotericsoftware.spine;
/** The base class for an object with a number of poses:
* <ul>
* <li>{@link #getData()}: The setup pose.
* <li>{@link #getPose()}: The unconstrained pose. Set by animations and application code.
* <li>{@link #getAppliedPose()}: The constrained pose. The {@link #getPose()} with modifications by constraints.
* <li>{@link #data}: The setup pose.
* <li>{@link #pose}: The unconstrained pose. Set by animations and application code.
* <li>{@link #getAppliedPose()}: The constrained pose. The {@link #pose} with modifications by constraints.
* </ul>
*/
abstract public class Posed< //

View File

@ -16,8 +16,8 @@ abstract public class PosedActive< //
/** Returns false when this constraint won't be updated by
* {@link Skeleton#updateWorldTransform(com.esotericsoftware.spine.Physics)} because a skin is required and the
* {@link Skeleton#getSkin() active skin} does not contain this item. See {@link Skin#getBones()},
* {@link Skin#getConstraints()}, {@link PosedData#getSkinRequired()}, and {@link Skeleton#updateCache()}. */
* {@link Skeleton#skin active skin} does not contain this item. See {@link Skin#bones}, {@link Skin#constraints},
* {@link PosedData#skinRequired}, and {@link Skeleton#updateCache()}. */
public boolean isActive () {
return active;
}

View File

@ -50,10 +50,10 @@ abstract public class PosedData<P extends Pose> {
return setup;
}
/** When true, {@link Skeleton#updateWorldTransform(Physics)} only updates this constraint if the {@link Skeleton#getSkin()}
/** When true, {@link Skeleton#updateWorldTransform(Physics)} only updates this constraint if the {@link Skeleton#skin}
* contains this constraint.
* <p>
* See {@link Skin#getConstraints()}. */
* See {@link Skin#constraints}. */
public boolean getSkinRequired () {
return skinRequired;
}

View File

@ -148,8 +148,8 @@ public class Skeleton {
updateCache();
}
/** Caches information about bones and constraints. Must be called if the {@link #getSkin()} is modified or if bones,
* constraints, or weighted path attachments are added or removed. */
/** Caches information about bones and constraints. Must be called if the {@link #skin} is modified or if bones, constraints,
* or weighted path attachments are added or removed. */
public void updateCache () {
updateCache.clear();
resetCache.clear();
@ -374,7 +374,7 @@ public class Skeleton {
setSkin(skin);
}
/** Sets the skin used to look up attachments before looking in {@link SkeletonData#getDefaultSkin()}. If the skin is changed,
/** Sets the skin used to look up attachments before looking in {@link SkeletonData#defaultSkin}. If the skin is changed,
* {@link #updateCache()} is called.
* <p>
* Attachments from the new skin are attached if the corresponding attachment from the old skin was attached. If there was no
@ -536,13 +536,13 @@ public class Skeleton {
return color;
}
/** A convenience method for setting the skeleton color. The color can also be set by modifying {@link #getColor()}. */
/** A convenience method for setting the skeleton color. The color can also be set by modifying {@link #color}. */
public void setColor (Color color) {
if (color == null) throw new IllegalArgumentException("color cannot be null.");
this.color.set(color);
}
/** A convenience method for setting the skeleton color. The color can also be set by modifying {@link #getColor()}. */
/** A convenience method for setting the skeleton color. The color can also be set by modifying {@link #color}. */
public void setColor (float r, float g, float b, float a) {
color.set(r, g, b, a);
}
@ -607,7 +607,7 @@ public class Skeleton {
this.y = y;
}
/** The x component of a vector that defines the direction {@link PhysicsConstraintPose#getWind()} is applied. */
/** The x component of a vector that defines the direction {@link PhysicsConstraintPose#wind} is applied. */
public float getWindX () {
return windX;
}
@ -616,7 +616,7 @@ public class Skeleton {
this.windX = windX;
}
/** The y component of a vector that defines the direction {@link PhysicsConstraintPose#getWind()} is applied. */
/** The y component of a vector that defines the direction {@link PhysicsConstraintPose#wind} is applied. */
public float getWindY () {
return windY;
}
@ -625,7 +625,7 @@ public class Skeleton {
this.windY = windY;
}
/** The x component of a vector that defines the direction {@link PhysicsConstraintPose#getGravity()} is applied. */
/** The x component of a vector that defines the direction {@link PhysicsConstraintPose#gravity} is applied. */
public float getGravityX () {
return gravityX;
}
@ -634,7 +634,7 @@ public class Skeleton {
this.gravityX = gravityX;
}
/** The y component of a vector that defines the direction {@link PhysicsConstraintPose#getGravity()} is applied. */
/** The y component of a vector that defines the direction {@link PhysicsConstraintPose#gravity} is applied. */
public float getGravityY () {
return gravityY;
}

View File

@ -186,7 +186,7 @@ public class Skin {
hashCode = placeholderName.hashCode() + slotIndex * 37;
}
/** The {@link Skeleton#getSlots()} index. */
/** The {@link Skeleton#slots} index. */
public int getSlotIndex () {
return slotIndex;
}

View File

@ -56,7 +56,7 @@ public class SlotData extends PosedData<SlotPose> {
return super.getName();
}
/** The {@link Skeleton#getSlots()} index. */
/** The {@link Skeleton#slots} index. */
public int getIndex () {
return index;
}

View File

@ -59,8 +59,8 @@ public class SlotPose implements Pose<SlotPose> {
deform.addAll(pose.deform);
}
/** The color used to tint the slot's attachment. If {@link #getDarkColor()} is set, this is used as the light color for two
* color tinting. */
/** The color used to tint the slot's attachment. If {@link #darkColor} is set, this is used as the light color for two color
* tinting. */
public Color getColor () {
return color;
}

View File

@ -58,7 +58,7 @@ public class AtlasAttachmentLoader implements AttachmentLoader {
this.allowMissingRegions = allowMissingRegions;
}
/** Sets each {@link Sequence#getRegions()} by calling {@link #findRegion(String, String)} for each texture region using
/** Sets each {@link Sequence#regions} by calling {@link #findRegion(String, String)} for each texture region using
* {@link Sequence#getPath(String, int)}. */
protected void findRegions (String name, String basePath, Sequence sequence) {
TextureRegion[] regions = sequence.getRegions();

View File

@ -35,8 +35,8 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.esotericsoftware.spine.SlotPose;
/** Holds texture regions, UVs, and vertex offsets for rendering a region or mesh attachment. {@link #getRegions() Regions} must
* be populated and {@link #update(HasSequence)} called before use. */
/** Holds texture regions, UVs, and vertex offsets for rendering a region or mesh attachment. {@link #regions Regions} must be
* populated and {@link #update(HasSequence)} called before use. */
public class Sequence {
static private int nextID;
@ -103,7 +103,7 @@ public class Sequence {
return regions;
}
/** Returns the {@link #getRegions()} index for the {@link SlotPose#getSequenceIndex()}. */
/** Returns the {@link #regions} index for the {@link SlotPose#getSequenceIndex()}. */
public int resolveIndex (SlotPose pose) {
int index = pose.getSequenceIndex();
if (index == -1) index = setupIndex;
@ -111,13 +111,13 @@ public class Sequence {
return index;
}
/** Returns the texture region from {@link #getRegions()} for the specified index. */
/** Returns the texture region from {@link #regions} for the specified index. */
public TextureRegion getRegion (int index) {
return regions[index];
}
/** Returns the UVs for the specified index. {@link #getRegions() Regions} must be populated and {@link #update(HasSequence)}
* called before calling this method. */
/** Returns the UVs for the specified index. {@link #regions Regions} must be populated and {@link #update(HasSequence)} called
* before calling this method. */
public float[] getUVs (int index) {
return uvs[index];
}
@ -181,7 +181,7 @@ public class Sequence {
return nextID++;
}
/** Controls how {@link Sequence#getRegions()} are displayed over time. */
/** Controls how {@link Sequence#regions} are displayed over time. */
static public enum SequenceMode {
hold, once, loop, pingpong, onceReverse, loopReverse, pingpongReverse;

View File

@ -73,13 +73,13 @@ abstract public class VertexAttachment extends Attachment {
worldVerticesLength = other.worldVerticesLength;
}
/** Transforms the attachment's local {@link #getVertices()} to world coordinates. If {@link SlotPose#getDeform()} is not
* empty, it is used to deform the vertices.
/** Transforms the attachment's local {@link #vertices} to world coordinates. If {@link SlotPose#getDeform()} is not empty, it
* is used to deform the vertices.
* <p>
* See <a href="https://esotericsoftware.com/spine-runtime-skeletons#World-transforms">World transforms</a> in the Spine
* Runtimes Guide.
* @param start The index of the first {@link #getVertices()} value to transform. Each vertex has 2 values, x and y.
* @param count The number of world vertex values to output. Must be <= {@link #getWorldVerticesLength()} - <code>start</code>.
* @param start The index of the first {@link #vertices} value to transform. Each vertex has 2 values, x and y.
* @param count The number of world vertex values to output. Must be <= {@link #worldVerticesLength} - <code>start</code>.
* @param worldVertices The output world vertices. Must have a length >= <code>offset</code> + <code>count</code> *
* <code>stride</code> / 2.
* @param offset The <code>worldVertices</code> index to begin writing values.
@ -142,9 +142,8 @@ abstract public class VertexAttachment extends Attachment {
}
}
/** The bones that affect the {@link #getVertices()}. The entries are, for each vertex, the number of bones affecting the
* vertex followed by that many bone indices, which is {@link Skeleton#getBones()} index. Null if this attachment has no
* weights. */
/** The bones that affect the {@link #vertices}. The entries are, for each vertex, the number of bones affecting the vertex
* followed by that many bone indices, which is {@link Skeleton#getBones()} index. Null if this attachment has no weights. */
public @Null int[] getBones () {
return bones;
}