physdes-rs 0.1.6

Physical Design in Rust
Documentation
# physdes-rs 项目上下文


## 项目概述


`physdes-rs` 是一个用 Rust 编写的物理设计库,专注于 VLSI(超大规模集成电路)物理设计中的几何操作。该项目提供了处理点、向量、多边形(包括普通多边形和矩形多边形)以及区间运算的通用数据结构和算法。从项目名称和内容来看,这是一个专门用于电子设计自动化(EDA)领域的几何计算库。

## 核心模块


### Point 模块 (`src/point.rs`)

- 定义了泛型的二维点结构 `Point<T1, T2>`,支持不同类型的 x 和 y 坐标
- 提供了点的基本操作:算术运算(加、减)、比较、翻转等
- 实现了点与其他几何对象的交互:重叠检测、包含关系、最小距离计算等
- 支持泛型操作,如凸包计算、交集运算等

### Vector2 模块 (`src/vector2.rs`)

- 定义了泛型的二维向量结构 `Vector2<T1, T2>`
- 提供了向量的基本运算:点积、叉积、缩放、范数计算等
- 支持向量的算术运算和赋值操作

### Interval 模块 (`src/interval.rs`)

- 定义了区间结构 `Interval<T>`,表示一个范围 [lb, ub]
- 提供了区间的各种操作:重叠检测、包含关系、交集、凸包等
- 实现了区间代数运算和几何关系判断

### Polygon 模块 (`src/polygon.rs`)

- 定义了通用多边形结构 `Polygon<T>`
- 支持多边形的基本操作:面积计算、顶点获取、边界框计算
- 提供多边形性质检测:是否为矩形、是否为凸多边形、方向性等
- 实现了单调多边形创建和检测算法

### RPolygon 模块 (`src/rpolygon.rs`)

- 定义了矩形多边形结构 `RPolygon<T>`
- 专门用于处理矩形多边形的操作和算法
- 提供矩形多边形的特殊优化算法

## 其他模块


- `generic.rs`: 定义了通用的几何操作 trait
- `merge_obj.rs`: 合并对象功能
- `interval_ai.rs`, `merge_obj_ai.rs`, `point_ai.rs`: 看起来是 AI 相关的接口文件

## 构建和运行


### 依赖

- `num``num-traits`: 数值运算支持
- `intervallum`: 区间运算库
- `quickcheck``quickcheck_macros`: 测试框架(开发依赖)

### 构建命令

```bash
# 构建项目

cargo build

# 运行测试

cargo test

# 安装

cargo install physdes-rs
```

## 开发约定


- 使用泛型设计,支持多种数值类型
- 遵循 Rust 的命名约定和代码风格
- 提供全面的单元测试和属性测试(使用 quickcheck)
- 使用 trait 实现通用的几何操作接口
- 代码结构清晰,每个模块职责单一

## 许可证


该项目采用 MIT 或 Apache-2.0 双许可证,用户可选择其中之一使用。