use of com.ferreusveritas.dynamictrees.systems.GrowSignal in project DynamicTrees-BYG by DynamicTreesTeam.
the class TaperedOakLogic method populateDirectionProbabilityMap.
@Override
public int[] populateDirectionProbabilityMap(GrowthLogicKitConfiguration configuration, DirectionManipulationContext context) {
final GrowSignal signal = context.signal();
final int[] probMap = context.probMap();
Direction originDir = signal.dir.getOpposite();
// Alter probability map for direction change
// Down is always disallowed
probMap[0] = 0;
probMap[1] = signal.isInTrunk() ? context.species().getUpProbability() : 1;
probMap[2] = probMap[3] = probMap[4] = // Only allow turns when we aren't in the trunk(or the branch is not a twig)
probMap[5] = !signal.isInTrunk() || context.radius() > 1 ? 2 : 0;
// Disable the direction we came from
probMap[originDir.ordinal()] = 0;
// Favor current travel direction
probMap[signal.dir.ordinal()] += signal.isInTrunk() ? 0 : signal.numTurns == 1 ? 2 : 1;
return probMap;
}
Aggregations