diff options
| author | levlam <levlam@telegram.org> | 2024-06-16 22:00:48 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2024-06-16 22:00:48 +0300 |
| commit | 442484d2d58cd5839caf55e9218955d36855dab8 (patch) | |
| tree | ddf95888634745b40ecccce96972d7c7d9540b7d /td/telegram/MediaAreaCoordinates.cpp | |
| parent | 315ee9b1d162fbcc53c907d342f1624b2c0bec6d (diff) | |
Add storyAreaPosition.corner_radius_percentage.
Diffstat (limited to 'td/telegram/MediaAreaCoordinates.cpp')
| -rw-r--r-- | td/telegram/MediaAreaCoordinates.cpp | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/td/telegram/MediaAreaCoordinates.cpp b/td/telegram/MediaAreaCoordinates.cpp index 843f32a1b..0376d7ed6 100644 --- a/td/telegram/MediaAreaCoordinates.cpp +++ b/td/telegram/MediaAreaCoordinates.cpp @@ -19,7 +19,7 @@ static double fix_double(double &value, double min_value = 0.0, double max_value return clamp(value, min_value, max_value); } -void MediaAreaCoordinates::init(double x, double y, double width, double height, double rotation_angle) { +void MediaAreaCoordinates::init(double x, double y, double width, double height, double rotation_angle, double radius) { x_ = fix_double(x); y_ = fix_double(y); width_ = fix_double(width); @@ -28,6 +28,7 @@ void MediaAreaCoordinates::init(double x, double y, double width, double height, if (rotation_angle_ < 0) { rotation_angle_ += 360.0; } + radius_ = fix_double(radius); } MediaAreaCoordinates::MediaAreaCoordinates( @@ -35,7 +36,8 @@ MediaAreaCoordinates::MediaAreaCoordinates( if (coordinates == nullptr) { return; } - init(coordinates->x_, coordinates->y_, coordinates->w_, coordinates->h_, coordinates->rotation_); + init(coordinates->x_, coordinates->y_, coordinates->w_, coordinates->h_, coordinates->rotation_, + coordinates->radius_); } MediaAreaCoordinates::MediaAreaCoordinates(const td_api::object_ptr<td_api::storyAreaPosition> &position) { @@ -44,24 +46,29 @@ MediaAreaCoordinates::MediaAreaCoordinates(const td_api::object_ptr<td_api::stor } init(position->x_percentage_, position->y_percentage_, position->width_percentage_, position->height_percentage_, - position->rotation_angle_); + position->rotation_angle_, position->corner_radius_percentage_); } td_api::object_ptr<td_api::storyAreaPosition> MediaAreaCoordinates::get_story_area_position_object() const { CHECK(is_valid()); - return td_api::make_object<td_api::storyAreaPosition>(x_, y_, width_, height_, rotation_angle_); + return td_api::make_object<td_api::storyAreaPosition>(x_, y_, width_, height_, rotation_angle_, radius_); } telegram_api::object_ptr<telegram_api::mediaAreaCoordinates> MediaAreaCoordinates::get_input_media_area_coordinates() const { CHECK(is_valid()); - return telegram_api::make_object<telegram_api::mediaAreaCoordinates>(0, x_, y_, width_, height_, rotation_angle_, 0.0); + int32 flags = 0; + if (radius_ > 0) { + flags |= telegram_api::mediaAreaCoordinates::RADIUS_MASK; + } + return telegram_api::make_object<telegram_api::mediaAreaCoordinates>(flags, x_, y_, width_, height_, rotation_angle_, + radius_); } bool operator==(const MediaAreaCoordinates &lhs, const MediaAreaCoordinates &rhs) { return std::abs(lhs.x_ - rhs.x_) < 1e-6 && std::abs(lhs.y_ - rhs.y_) < 1e-6 && std::abs(lhs.width_ - rhs.width_) < 1e-6 && std::abs(lhs.height_ - rhs.height_) < 1e-6 && - std::abs(lhs.rotation_angle_ - rhs.rotation_angle_) < 1e-6; + std::abs(lhs.rotation_angle_ - rhs.rotation_angle_) < 1e-6 && std::abs(lhs.radius_ - rhs.radius_) < 1e-6; } bool operator!=(const MediaAreaCoordinates &lhs, const MediaAreaCoordinates &rhs) { @@ -71,7 +78,7 @@ bool operator!=(const MediaAreaCoordinates &lhs, const MediaAreaCoordinates &rhs StringBuilder &operator<<(StringBuilder &string_builder, const MediaAreaCoordinates &coordinates) { return string_builder << "StoryAreaPosition[" << coordinates.x_ << ", " << coordinates.y_ << ", " << coordinates.width_ << ", " << coordinates.height_ << ", " << coordinates.rotation_angle_ - << ']'; + << ", " << coordinates.radius_ << ']'; } } // namespace td |
