package fr.unistra.pelican.util.qfz; public abstract class MultivariateScalarAlphaLogicalPredicate extends MultivariateAlphaLogicalPredicate { protected int alpha; protected int currentAlpha; protected int alphaMax; protected int alphaMin; protected MultivariateScalarAlphaLogicalPredicate(int alpha) { super(); this.alpha= alpha; currentAlpha= alpha; alphaMax=alpha+1; alphaMin=0; } public void decreaseCurrentAlpha() { currentAlpha-=decreaseStep; if(currentAlpha<0) { currentAlpha=0; } } public boolean isCurrentAlphaZero() { return(currentAlpha<=0); } public void resetCurrentAlpha() { currentAlpha=alpha; finalAlpha=false; alphaMax=alpha+1; alphaMin=0; } public void predicateViolationUpdate() { alphaMax=currentAlpha; currentAlpha=(alphaMax+alphaMin)/2; } public void predicateValidationUpdate() { if(currentAlpha+1==alphaMax) { finalAlpha=true; } else { alphaMin=currentAlpha; currentAlpha=(alphaMax+alphaMin)/2; } } /*** * Just for compatibility with MultivariateLogicalPredicateConnectivityRegionMergingVideo until its rewriting * @return */ public int getCurrentAlpha() { return currentAlpha; } }