static YGFloatOptional YGNodeBoundAxisWithinMinAndMax()

in yoga/Yoga.cpp [1151:1180]


static YGFloatOptional YGNodeBoundAxisWithinMinAndMax(
    const YGNodeConstRef node,
    const YGFlexDirection axis,
    const YGFloatOptional value,
    const float axisSize) {
  YGFloatOptional min;
  YGFloatOptional max;

  if (YGFlexDirectionIsColumn(axis)) {
    min = YGResolveValue(
        node->getStyle().minDimensions()[YGDimensionHeight], axisSize);
    max = YGResolveValue(
        node->getStyle().maxDimensions()[YGDimensionHeight], axisSize);
  } else if (YGFlexDirectionIsRow(axis)) {
    min = YGResolveValue(
        node->getStyle().minDimensions()[YGDimensionWidth], axisSize);
    max = YGResolveValue(
        node->getStyle().maxDimensions()[YGDimensionWidth], axisSize);
  }

  if (max >= YGFloatOptional{0} && value > max) {
    return max;
  }

  if (min >= YGFloatOptional{0} && value < min) {
    return min;
  }

  return value;
}