# ディレクトリ構成 (Directory Structure)

## 全体構成 (Overview)

```text
TIASshot/
├── CLAUDE.md                   ← AI向けガイドライン（ドキュメント・コーディング規則の参照）
├── README.md                   ← プロジェクト概要
├── TIASshot.sln                ← Visual Studio ソリューションファイル
├── TIASshot/                   ← メインプロジェクト
├── TIASshot.Tests/             ← テストプロジェクト（NUnit / x64）
└── docs/                       ← ドキュメント
```

## メインプロジェクト TIASshot/ (Main Project)

### ソースコード

責務ごとにサブフォルダへ分離している（リファクタリング Phase 1〜5 による）．

```text
├── Program.cs                  ← エントリポイント
├── Config.cs                   ← config.xml の読み込みユーティリティ
├── LightSource.cs              ← 光源（シリアル通信）制御
├── Cameras/                    ← カメラ制御
│   ├── CameraBase.cs           ← カメラ制御の基底クラス（共通処理・撮影/校正の骨格）
│   ├── IScam.cs                ← ImagingSource カメラの実装
│   ├── Lucam.cs                ← Lumenera カメラの実装
│   └── GainCalc.cs             ← ゲイン更新比率の計算（純粋ロジック）
├── ChartDetection/             ← チャート検出
│   └── ChartDetector.cs        ← ArUco マーカー検出・マスク生成
├── ColorCorrection/            ← 色補正
│   └── ColorCorrector.cs       ← TCC 変換行列の計算・色変換
├── UI/                         ← フォーム（WinForms）
│   ├── Form1.cs                ← メインフォーム（UI・操作イベント）
│   ├── Form1.Designer.cs       ← メインフォームのデザイナー自動生成コード
│   ├── PreviewMonitor.cs       ← プレビューモニタフォーム
│   └── PreviewMonitor.Designer.cs ← プレビューモニタのデザイナー自動生成コード
└── Utils/                      ← ユーティリティ
    └── IoUtil.cs               ← ファイル I/O（CSV・保存フォルダ・撮影情報）・サウンド
```

### 設定・データファイル

```text
├── config.xml                  ← アプリケーション設定（パラメータ定義）
├── DFK33UX178.xml              ← ImagingSource DFK33UX178 カメラ設定
├── DFK23UX249.xml              ← ImagingSource DFK23UX249 カメラ設定
├── tcc_srgb.csv                ← TCC sRGB 変換参照値（24色票×3ch）
└── tcc_xyz.csv                 ← TCC XYZ 変換参照値（24色票×3ch）
```

### 外部ライブラリ・リソース

```text
├── lumenera.api.dll            ← Lumenera SDK（同梱）
├── lumenera.api.xml            ← Lumenera SDK ドキュメント
├── CalibDone.wav               ← キャリブレーション完了音
├── OneShot.wav                 ← 1枚撮影完了音
├── MultiShot.wav               ← 連続撮影完了音
└── main.ico                    ← アプリケーションアイコン
```

### プロジェクト設定

```text
├── TIASshot.csproj             ← プロジェクトファイル
├── App.config                  ← .NET アプリケーション設定
├── packages.config             ← NuGet パッケージ一覧
└── Properties/
    ├── AssemblyInfo.cs         ← アセンブリ情報
    ├── Resources.Designer.cs   ← リソース自動生成コード
    └── Settings.Designer.cs    ← アプリ設定自動生成コード
```

## テストプロジェクト TIASshot.Tests/ (Test Project)

```text
TIASshot.Tests/
├── TIASshot.Tests.csproj       ← テストプロジェクトファイル（net48 / x64）
├── packages.config             ← NuGet パッケージ一覧（NUnit 等）
├── IoUtilTests.cs              ← CSV 読み書き往復のテスト
├── ConfigTests.cs              ← config.xml パースのテスト
└── ColorCorrectorTests.cs      ← 次元拡張・変換行列・色変換のテスト
```

## ドキュメント docs/ (Documents)

```text
docs/
├── 01_GUIDE/   ← チームルール・規約（命名，Git，コーディング，コメント）
├── 02_ENV/     ← 開発環境・構成に関するドキュメント（本ディレクトリ）
├── 03_PLAN/    ← 進行計画・要件定義（リファクタリング計画，バグ修正計画）
├── 04_SPEC/    ← ユーザーから見える仕様（機能仕様，設定ファイル仕様）
├── 05_TECH/    ← クラス設計・アルゴリズム等の技術設計（カメラ制御，色補正処理）
└── 06_TEST/    ← テスト計画・品質保証（テスト仕様）
```
