Fabric: LayoutConstraints::clamp()

Summary: `LayoutConstraints::clamp` clamps the provided `Size` between the `minimumSize` and `maximumSize` bounds of this `LayoutConstraints`.

Reviewed By: mdvacca

Differential Revision: D14205770

fbshipit-source-id: 4799608cead393451d334e47dd6906255699a1e8
This commit is contained in:
Valentin Shergin 2019-02-27 00:29:19 -08:00 коммит произвёл Facebook Github Bot
Родитель 3c1114eea7
Коммит 104ef96498
2 изменённых файлов: 28 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,22 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#include "LayoutConstraints.h"
#include <algorithm>
namespace facebook {
namespace react {
Size LayoutConstraints::clamp(const Size &size) const {
return {
std::max(minimumSize.width, std::min(maximumSize.width, size.width)),
std::max(minimumSize.height, std::min(maximumSize.height, size.height))};
}
} // namespace react
} // namespace facebook

Просмотреть файл

@ -21,6 +21,12 @@ struct LayoutConstraints {
Size minimumSize{0, 0};
Size maximumSize{kFloatUndefined, kFloatUndefined};
LayoutDirection layoutDirection{LayoutDirection::Undefined};
/*
* Clamps the provided `Size` between the `minimumSize` and `maximumSize`
* bounds of this `LayoutConstraints`.
*/
Size clamp(const Size &size) const;
};
inline bool operator==(