init
This commit is contained in:
62
docs/ai/Common/DTS.CommonCore/Interface/RegionOfInterest.md
Normal file
62
docs/ai/Common/DTS.CommonCore/Interface/RegionOfInterest.md
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
source_files:
|
||||
- Common/DTS.CommonCore/Interface/RegionOfInterest/IRegionOfInterest.cs
|
||||
generated_at: "2026-04-17T16:38:32.163819+00:00"
|
||||
model: "zai-org/GLM-5-FP8"
|
||||
schema_version: 1
|
||||
sha256: "aa8c3bd25b4f0eb9"
|
||||
---
|
||||
|
||||
# Documentation: IRegionOfInterest Interface
|
||||
|
||||
## 1. Purpose
|
||||
|
||||
The `IRegionOfInterest` interface defines a contract for representing a bounded region of interest within a data stream or signal. It extends `INotifyPropertyChanged`, indicating it is designed for use in data-binding scenarios (typically UI frameworks like WPF). The interface captures temporal/spatial boundaries (`Start`, `End`), associated channel metadata, and state flags for enabling or marking default regions. This abstraction allows different implementations of ROI behavior while maintaining a consistent interface for consumers.
|
||||
|
||||
---
|
||||
|
||||
## 2. Public Interface
|
||||
|
||||
### Properties
|
||||
|
||||
| Property | Type | Access | Description |
|
||||
|----------|------|--------|-------------|
|
||||
| `Suffix` | `string` | get/set | A string suffix associated with the region. |
|
||||
| `Start` | `double` | get/set | The starting boundary of the region. |
|
||||
| `End` | `double` | get/set | The ending boundary of the region. |
|
||||
| `IsEnabled` | `bool` | get/set | Flag indicating whether the region is active/enabled. |
|
||||
| `IsDefault` | `bool` | get/set | Flag indicating whether this region is the default. |
|
||||
| `ChannelNames` | `string[]` | get/set | Array of channel names associated with this region. |
|
||||
|
||||
### Methods
|
||||
|
||||
| Method | Signature | Description |
|
||||
|--------|-----------|-------------|
|
||||
| `SetChannelNamesNoNotify` | `void SetChannelNamesNoNotify(string[] names)` | Sets the `ChannelNames` property without raising property change notifications. |
|
||||
| `ResetSuffix` | `void ResetSuffix()` | Resets the `Suffix` property to a default or calculated value. |
|
||||
|
||||
---
|
||||
|
||||
## 3. Invariants
|
||||
|
||||
- **INotifyPropertyChanged Contract**: All implementations must raise `PropertyChanged` events when property values change (except when using `SetChannelNamesNoNotify`).
|
||||
- **No explicit ordering guarantee**: The interface does not enforce that `Start` must be less than `End`; this constraint, if required, must be enforced by implementations.
|
||||
- **No null constraints visible**: The interface does not specify nullability requirements for `Suffix`, `ChannelNames`, or the `names` parameter.
|
||||
|
||||
---
|
||||
|
||||
## 4. Dependencies
|
||||
|
||||
### This module depends on:
|
||||
- `System.ComponentModel` — for the `INotifyPropertyChanged` interface.
|
||||
|
||||
### What depends on this module:
|
||||
- **Cannot be determined from source alone.** As an interface definition, any class implementing `IRegionOfInterest` or any consumer accepting this interface as a parameter depends on this module.
|
||||
|
||||
---
|
||||
|
||||
## 5. Gotchas
|
||||
|
||||
- **`SetChannelNamesNoNotify` bypasses change notification**: This method exists specifically to set `ChannelNames` without triggering `PropertyChanged` events. Callers should be aware that UI bindings may not update automatically when using this method.
|
||||
- **`ResetSuffix` behavior is undefined in the interface**: The method implies there is a default or computed suffix value, but the logic for what "reset" means is implementation-specific and not documented in the interface.
|
||||
- **No validation at interface level**: There are no constraints on `Start`/`End` ordering, `ChannelNames` array contents, or mutual exclusivity of `IsDefault` across multiple regions. Implementations must define and document these behaviors.
|
||||
Reference in New Issue
Block a user