Files
DP44/docs/ai/Common/DTS.CommonCore/Interface/RegionOfInterest.md
2026-04-17 14:55:32 -04:00

3.3 KiB

source_files, generated_at, model, schema_version, sha256
source_files generated_at model schema_version sha256
Common/DTS.CommonCore/Interface/RegionOfInterest/IRegionOfInterest.cs
2026-04-17T16:38:32.163819+00:00 zai-org/GLM-5-FP8 1 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.