aboutsummaryrefslogtreecommitdiffhomepage
path: root/td/telegram/MediaAreaCoordinates.cpp
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2024-06-16 22:00:48 +0300
committerlevlam <levlam@telegram.org>2024-06-16 22:00:48 +0300
commit442484d2d58cd5839caf55e9218955d36855dab8 (patch)
treeddf95888634745b40ecccce96972d7c7d9540b7d /td/telegram/MediaAreaCoordinates.cpp
parent315ee9b1d162fbcc53c907d342f1624b2c0bec6d (diff)
Add storyAreaPosition.corner_radius_percentage.
Diffstat (limited to 'td/telegram/MediaAreaCoordinates.cpp')
-rw-r--r--td/telegram/MediaAreaCoordinates.cpp21
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