, brightness(1.0)\r
, contrast(1.0)\r
, saturation(1.0)\r
- , is_key(false)\r
, field_mode(field_mode::progressive)\r
+ , is_key(false)\r
{\r
std::fill(fill_translation.begin(), fill_translation.end(), 0.0);\r
std::fill(fill_scale.begin(), fill_scale.end(), 1.0);\r
brightness *= other.brightness;\r
contrast *= other.contrast;\r
saturation *= other.saturation;\r
- levels.min_input = std::max(levels.min_input, other.levels.min_input);\r
- levels.max_input = std::min(levels.max_input, other.levels.max_input); \r
- levels.min_output = std::max(levels.min_output, other.levels.min_output);\r
- levels.max_output = std::min(levels.max_output, other.levels.max_output);\r
- levels.gamma *= other.levels.gamma;\r
- field_mode = static_cast<field_mode::type>(field_mode & other.field_mode);\r
- is_key |= other.is_key;\r
fill_translation[0] += other.fill_translation[0]*fill_scale[0];\r
fill_translation[1] += other.fill_translation[1]*fill_scale[1];\r
fill_scale[0] *= other.fill_scale[0];\r
clip_translation[1] += other.clip_translation[1]*clip_scale[1];\r
clip_scale[0] *= other.clip_scale[0];\r
clip_scale[1] *= other.clip_scale[1];\r
+ levels.min_input = std::max(levels.min_input, other.levels.min_input);\r
+ levels.max_input = std::min(levels.max_input, other.levels.max_input); \r
+ levels.min_output = std::max(levels.min_output, other.levels.min_output);\r
+ levels.max_output = std::min(levels.max_output, other.levels.max_output);\r
+ levels.gamma *= other.levels.gamma;\r
+ field_mode = static_cast<field_mode::type>(field_mode & other.field_mode);\r
+ is_key |= other.is_key;\r
return *this;\r
}\r
\r
};\r
\r
frame_transform result; \r
- result.is_key = source.is_key | dest.is_key;\r
- result.field_mode = static_cast<field_mode::type>(source.field_mode & dest.field_mode);\r
- result.volume = do_tween(time, source.volume, dest.volume, duration, tweener);\r
- result.brightness = do_tween(time, source.brightness, dest.brightness, duration, tweener);\r
- result.contrast = do_tween(time, source.contrast, dest.contrast, duration, tweener);\r
- result.saturation = do_tween(time, source.saturation, dest.saturation, duration, tweener);\r
- result.opacity = do_tween(time, source.opacity, dest.opacity, duration, tweener);\r
- \r
- result.fill_translation[0] = do_tween(time, source.fill_translation[0], dest.fill_translation[0], duration, tweener), \r
- result.fill_translation[1] = do_tween(time, source.fill_translation[1], dest.fill_translation[1], duration, tweener);\r
- \r
- result.fill_scale[0] = do_tween(time, source.fill_scale[0], dest.fill_scale[0], duration, tweener), \r
- result.fill_scale[1] = do_tween(time, source.fill_scale[1], dest.fill_scale[1], duration, tweener);\r
- \r
- result.clip_translation[0] = do_tween(time, source.clip_translation[0], dest.clip_translation[0], duration, tweener), \r
- result.clip_translation[1] = do_tween(time, source.clip_translation[1], dest.clip_translation[1], duration, tweener);\r
- \r
- result.clip_scale[0] = do_tween(time, source.clip_scale[0], dest.clip_scale[0], duration, tweener), \r
- result.clip_scale[1] = do_tween(time, source.clip_scale[1], dest.clip_scale[1], duration, tweener);\r
-\r
- auto s_levels = source.levels;\r
- auto d_levels = dest.levels;\r
-\r
- result.levels.max_input = do_tween(time, s_levels.max_input, d_levels.max_input, duration, tweener);\r
- result.levels.min_input = do_tween(time, s_levels.min_input, d_levels.min_input, duration, tweener); \r
- result.levels.max_output = do_tween(time, s_levels.max_output, d_levels.max_output, duration, tweener);\r
- result.levels.min_output = do_tween(time, s_levels.min_output, d_levels.min_output, duration, tweener);\r
- result.levels.gamma = do_tween(time, s_levels.gamma, d_levels.gamma, duration, tweener);\r
+ result.volume = do_tween(time, source.volume, dest.volume, duration, tweener);\r
+ result.brightness = do_tween(time, source.brightness, dest.brightness, duration, tweener);\r
+ result.contrast = do_tween(time, source.contrast, dest.contrast, duration, tweener);\r
+ result.saturation = do_tween(time, source.saturation, dest.saturation, duration, tweener);\r
+ result.opacity = do_tween(time, source.opacity, dest.opacity, duration, tweener); \r
+ result.fill_translation[0] = do_tween(time, source.fill_translation[0], dest.fill_translation[0], duration, tweener), \r
+ result.fill_translation[1] = do_tween(time, source.fill_translation[1], dest.fill_translation[1], duration, tweener); \r
+ result.fill_scale[0] = do_tween(time, source.fill_scale[0], dest.fill_scale[0], duration, tweener), \r
+ result.fill_scale[1] = do_tween(time, source.fill_scale[1], dest.fill_scale[1], duration, tweener); \r
+ result.clip_translation[0] = do_tween(time, source.clip_translation[0], dest.clip_translation[0], duration, tweener), \r
+ result.clip_translation[1] = do_tween(time, source.clip_translation[1], dest.clip_translation[1], duration, tweener); \r
+ result.clip_scale[0] = do_tween(time, source.clip_scale[0], dest.clip_scale[0], duration, tweener), \r
+ result.clip_scale[1] = do_tween(time, source.clip_scale[1], dest.clip_scale[1], duration, tweener);\r
+ result.levels.max_input = do_tween(time, source.levels.max_input, dest.levels.max_input, duration, tweener);\r
+ result.levels.min_input = do_tween(time, source.levels.min_input, dest.levels.min_input, duration, tweener); \r
+ result.levels.max_output = do_tween(time, source.levels.max_output, dest.levels.max_output, duration, tweener);\r
+ result.levels.min_output = do_tween(time, source.levels.min_output, dest.levels.min_output, duration, tweener);\r
+ result.levels.gamma = do_tween(time, source.levels.gamma, dest.levels.gamma, duration, tweener);\r
+ result.field_mode = static_cast<field_mode::type>(source.field_mode & dest.field_mode);\r
+ result.is_key = source.is_key | dest.is_key;\r
\r
return result;\r
}\r