i and ai refactor pivector2d

This commit is contained in:
2026-02-27 00:07:00 +03:00
parent 6557933a2e
commit 42a1507536
6 changed files with 202 additions and 378 deletions

View File

@@ -1,48 +1,15 @@
# План рефакторинга PIVector2D
## Этап 1: Выполнить наследование Row от RowConst, Col от ColConst
## Этап 1: Сборка
### 1.1 Найти классы Col, Row, ColConst и RowConst
- они находятся в файле `libs/main/containers/pivector2d.h`
### 1.2 Изменить класс Row
- Наследовать от RowConst: `class Row : public RowConst`
- Убрать дублирующиеся методы (они унаследованы от RowConst):
- size()
- toVector()
- operator[] (const версия)
- data() (const версия)
- indexOf()
- lastIndexOf()
- indexWhere()
- lastIndexWhere()
- forEach() (const версия)
- contains()
- entries()
- any()
- every()
- Сохранить неконстантные методы:
- operator[] (неконстантный)
- data() (неконстантный)
- operator=()
- forEach() (неконстантный)
- fill()
### 1.3 Изменить класс Col
- Наследовать от ColConst: `class Col : public ColConst`
- Аналогично убрать дублирующиеся методы
### 1.4 Собрать проект
### 1.1 Собрать проект
- собери проект, при необходимости поправь ошибки
- тесты не трогай
## Этап 2: Проверить и поправить тесты
### 2.1 Запустить тесты
- Запустить: `./build/tests/pip_math_test --gtest_filter="*Vector2D*"`
### 2.2 Поправить код или тесты
- внести правки в pivector2d.h
- В случае ошибок внести правки в pivector2d.h
---
@@ -50,7 +17,7 @@
### 3.1 Создать структуру PIVector2DIndex
```cpp
struct PIVector2DIndex {
struct Index {
ssize_t row;
ssize_t col;
};