/** * @return <code>true</code> if this controllers {@link #getRepeatType() repeat type} is * {@link ComplexSpatialController.RepeatType#CLAMP clamp} and its currently clamped at the maximum index. */ public boolean isClamped() { return isRepeatTypeClamp() && getIndex() == getMaximumIndex(); }
@Override public void reset() { super.reset(); _distance = 0.0; }
/** * Resets the internal state, namely the cycle direction, delta and index variables. */ public void reset() { setCycleForward(true); setDelta(DELTA_MIN); setIndex(getMinimumIndex()); }
@Override public void setConstantSpeed(final boolean constantSpeed) { super.setConstantSpeed(constantSpeed); if (isConstantSpeed() && null == _arcLengths) { LOGGER .warning("Constant speed was set to true, you will need to call generateArcLengths() to avoid errors during update."); } }
@Override protected int decrementIndex() { assert (null != _arcLengthsReverse) : "You need to call generateArcLengths() to create the required arc length tables!"; _distance -= _arcLengthsReverse.getLength(getIndex()); return super.decrementIndex(); }
@Override protected int incrementIndex() { assert (null != _arcLengths) : "You need to call generateArcLengths() to create the required arc length tables!"; _distance -= _arcLengths.getLength(getIndex()); return super.incrementIndex(); }
/** * Generates the arc lengths, generates the reverse table if the * {@link #setRepeatType(com.ardor3d.scenegraph.controller.ComplexSpatialController.RepeatType) repeat type} is set * to {@link ComplexSpatialController.RepeatType#CYCLE cycle} * * @param step * 'See Also:' method for more info. * @see #generateArcLengths(int, boolean) */ public void generateArcLengths(final int step) { generateArcLengths(step, RepeatType.CYCLE.equals(getRepeatType())); }
/** * Since splines require at least 4 points to interpolate correctly the default minimum value is overridden to 1 * more than normal. */ @Override protected int getMinimumIndex() { return super.getMinimumIndex() + 1; }
/** * Since splines require at least 4 points to interpolate correctly the default maximum value is overridden to 1 * less than normal. */ @Override protected int getMaximumIndex() { return super.getMaximumIndex() - 1; }
/** * @return The maximum allowed index. By default it returns the last index in the {@link #getControls() control} * list. */ protected int getMaximumIndex() { return getControls().size() - 1; }
/** * Resets the internal state, namely the cycle direction, delta and index variables. */ public void reset() { setCycleForward(true); setDelta(DELTA_MIN); setIndex(getMinimumIndex()); }
/** * @return <code>true</code> if this controllers {@link #getRepeatType() repeat type} is * {@link ComplexSpatialController.RepeatType#CLAMP clamp} and its currently clamped at the maximum index. */ public boolean isClamped() { return isRepeatTypeClamp() && getIndex() == getMaximumIndex(); }
@Override public void setConstantSpeed(final boolean constantSpeed) { super.setConstantSpeed(constantSpeed); if (isConstantSpeed() && null == _arcLengths) { LOGGER .warning("Constant speed was set to true, you will need to call generateArcLengths() to avoid errors during update."); } }
@Override protected int decrementIndex() { assert (null != _arcLengthsReverse) : "You need to call generateArcLengths() to create the required arc length tables!"; _distance -= _arcLengthsReverse.getLength(getIndex()); return super.decrementIndex(); }
@Override protected int incrementIndex() { assert (null != _arcLengths) : "You need to call generateArcLengths() to create the required arc length tables!"; _distance -= _arcLengths.getLength(getIndex()); return super.incrementIndex(); }
@Override public void reset() { super.reset(); _distance = 0.0; }
/** * Since splines require at least 4 points to interpolate correctly the default minimum value is overridden to 1 * more than normal. */ @Override protected int getMinimumIndex() { return super.getMinimumIndex() + 1; }
/** * Since splines require at least 4 points to interpolate correctly the default maximum value is overridden to 1 * less than normal. */ @Override protected int getMaximumIndex() { return super.getMaximumIndex() - 1; }