Time window segment specification
| Proposals | Status |
|---|---|
| Current status | Draft |
This is the engineering specification for the TimeWindowSegment type.
Overview
A TimeWindowSegment represents a specific part of a time window.
Example: TweenBetween
let tween = TweenBetween("opacity",
window: window,
segment: .entireSegment,
back: 0,
fore: 1)
MVP Specification
Struct type: TimeWindowSegment is a struct type, if the language allows.
position and length APIs: Provide two writable values for position and length.
Position and length must be expressed in normalized units from 0...1 inclusively. The sum of these two values must never exceed 1.
TimeWindowSegment {
var position
var length
}
Assertions:
0 <= position <= 10 <= length <= 10 <= position + length <= 1
0 refers to back while 1 refers to fore.
back fore
|---------|
0 1
Epsilon: Include an epsilon constant.
let TimeWindowSegmentEpsilon = 0.00001
Feature: Pre-defined segments
Provide the following set of pre-defined segments.
| name | from | to |
|---|---|---|
| entire | 0 | 1 |
| firstHalf | 0 | 0.5 |
| middleHalf | 0.25 | 0.75 |
| latterHalf | 0.5 | 1 |
| firstQuarter | 0 | 0.25 |
| secondQuarter | 0.25 | 0.5 |
| thirdQuarter | 0.5 | 0.75 |
| fourthQuarter | 0.75 | 1 |
| firstThreeQuarters | 0 | 0.75 |
| lastThreeQuarters | 0.25 | 1 |