清理不需要的代码

This commit is contained in:
daiqingshuang 2025-03-25 14:48:20 +08:00
parent 2d026313ff
commit aa926e31fc
7 changed files with 1 additions and 253 deletions

View File

@ -90,7 +90,7 @@ function(retrieve_files_custom path extension out_files)
foreach(dir_name IN LISTS dir_components)
#
if(dir_name MATCHES "^(windows|linux|mac|ios|android|mobile|desktop)$")
if(dir_name MATCHES "^(windows|linux|mac|ios|android|unix|mobile|desktop)$")
set(found_platform_dir TRUE)
is_current_platform(${dir_name} platform_matches)
if(NOT platform_matches)

View File

@ -1,11 +0,0 @@
#include "arranged_children.h"
#include "widget/mwidget.h"
void arranged_children::add_widget(const arranged_widget& in_widget_geometry) {
add_widget(in_widget_geometry.get_widget()->get_visibility(), in_widget_geometry);
}
void arranged_children::insert_widget(const arranged_widget& in_widget_geometry, size_t in_index) {
insert_widget(in_widget_geometry.get_widget()->get_visibility(), in_widget_geometry, in_index);
}

View File

@ -1,199 +0,0 @@
#pragma once
/**
* @file arranged_children.h
* @brief UI组件布局后的几何结构和组织
*
* arranged_widget和arranged_children类
* UI组件及其几何关系
*
*/
#include <utility>
#include "geometry.h"
#include "misc/mirage_type.h"
class mwidget;
/**
* @class arranged_widget
* @brief
*
* arranged_widget将一个UI组件与其对应的几何信息关联起来
* UI布局系统中跟踪组件的位置和大小
*/
class arranged_widget {
public:
/**
* @brief
* @param in_geometry
* @param in_widget
*/
arranged_widget(geometry_t in_geometry, std::shared_ptr<mwidget> in_widget) : geometry_(std::move(in_geometry)),
widget_(std::move(in_widget)) {
}
/**
* @brief
* @return
*/
[[nodiscard]] auto& get_geometry() { return geometry_; }
/**
* @brief
* @return
*/
[[nodiscard]] const auto& get_geometry() const { return geometry_; }
/**
* @brief
* @return
*/
[[nodiscard]] const auto& get_widget() const { return widget_; }
/**
* @brief
* @param in_geometry
*/
void set_geometry(const geometry_t& in_geometry) { geometry_ = in_geometry; }
/**
* @brief
* @param in_other arranged_widget
* @return true
*/
[[nodiscard]] auto operator==(const arranged_widget& in_other) const {
return widget_ == in_other.widget_;
}
private:
/** 组件的几何信息 */
geometry_t geometry_;
/** 组件的共享指针 */
std::shared_ptr<mwidget> widget_;
};
/**
* @class arranged_children
* @brief
*
* arranged_children用于存储和管理一组已排列的子组件
*
*/
class arranged_children {
public:
/**
* @brief
* @param in_visibility_filter
*
* arranged_children实例
*/
explicit arranged_children(visibility_t in_visibility_filter = visibility_t::any_visible) : visibility_filter_(in_visibility_filter) {}
//-------------- 可见性过滤 --------------
/**
* @brief
* @param in_visibility
* @return true
*/
[[nodiscard]] auto accepts(visibility_t in_visibility) const {
return has_any_flag(in_visibility, visibility_filter_);
}
/**
* @brief
* @param in_visibility_filter
*/
void set_filter(visibility_t in_visibility_filter) {
visibility_filter_ = in_visibility_filter;
}
/**
* @brief
* @param in_flag
*/
void add_filter_flag(visibility_t in_flag) {
visibility_filter_ |= in_flag;
}
/**
* @brief
* @param in_flag
*/
void remove_filter_flag(visibility_t in_flag) {
visibility_filter_ &= ~in_flag;
}
//-------------- 子项操作 --------------
/**
* @brief
*/
void reverse() {
std::ranges::reverse(children_);
}
/**
* @brief
* @param in_visibility_override
* @param in_widget_geometry
*
*
*/
void add_widget(visibility_t in_visibility_override, const arranged_widget& in_widget_geometry) {
if (accepts(in_visibility_override))
children_.push_back(in_widget_geometry);
}
/**
* @brief
* @param in_visibility_override
* @param in_widget_geometry
* @param in_index
*
*
*/
void insert_widget(visibility_t in_visibility_override, const arranged_widget& in_widget_geometry, size_t in_index) {
if (accepts(in_visibility_override))
children_.insert(children_.begin() + in_index, in_widget_geometry);
}
/**
* @brief
* @param in_widget_geometry
*
* 使
*/
void add_widget(const arranged_widget& in_widget_geometry);
/**
* @brief
* @param in_widget_geometry
* @param in_index
*
* 使
*/
void insert_widget(const arranged_widget& in_widget_geometry, size_t in_index);
//-------------- 访问器 --------------
/**
* @brief
* @return
*/
[[nodiscard]] const auto& get_children() const { return children_; }
/**
* @brief
* @return
*/
[[nodiscard]] auto& get_children() { return children_; }
private:
/** 可见性过滤级别 */
visibility_t visibility_filter_;
/** 子组件列表 */
std::vector<arranged_widget> children_;
};

View File

@ -1 +0,0 @@
#include "geometry.h"

View File

@ -1,39 +0,0 @@
#pragma once
#include <Eigen/Eigen>
#include <vector>
#include "layout_transform.h"
#include "rect.h"
class geometry_transformer {
public:
template<typename T>
static auto transform_points(const transform2d& in_transform, const std::vector<Eigen::Vector2<T>>& in_points) {
std::vector<Eigen::Vector2<T>> result;
result.reserve(in_points.size());
for (const auto& point : in_points) {
result.push_back(in_transform.transform_point(point));
}
return result;
}
template<typename T>
static auto transform_rect(const transform2d& in_transform, const rect_t<T>& in_rect) {
// 变换矩形的四个顶点
auto top_left = in_transform.transform_point(in_rect.top_left());
auto top_right = in_transform.transform_point(in_rect.top_right());
auto bottom_left = in_transform.transform_point(in_rect.bottom_left());
auto bottom_right = in_transform.transform_point(in_rect.bottom_right());
// 如果只有平移和缩放(没有旋转),则可以直接计算包围盒
if (std::abs(in_transform.get_matrix()(0, 1)) < 1e-6f &&
std::abs(in_transform.get_matrix()(1, 0)) < 1e-6f
) {
auto min = top_left.cwiseMin(top_right).cwiseMin(bottom_left).cwiseMin(bottom_right);
auto max = top_left.cwiseMax(top_right).cwiseMax(bottom_left).cwiseMax(bottom_right);
return rect_t<T>(min, max - min);
}
return rect_t<T>::bounding_box({top_left, top_right, bottom_left, bottom_right});
}
};

View File

@ -1,6 +1,5 @@
#pragma once
#include "mwidget.h"
#include "geometry/arranged_children.h"
#include "geometry/geometry.h"
#include "misc/mirage_type.h"

View File

@ -1,5 +1,4 @@
#pragma once
#include "geometry/arranged_children.h"
#include "geometry/geometry.h"
#include "misc/invalidate_reason.h"
#include "misc/key_type/key_type.h"