OpenShot Library | libopenshot  0.3.2
Public Member Functions | List of all members
openshot::Keyframe Class Reference

A Keyframe is a collection of Point instances, which is used to vary a number or property over time. More...

#include <KeyFrame.h>

Public Member Functions

void AddPoint (double x, double y, InterpolationType interpolate=BEZIER)
 Add a new point on the key-frame, with optional interpolation type. More...
 
void AddPoint (Point p)
 Add a new point on the key-frame. Each point has a primary coordinate, a left handle, and a right handle. More...
 
bool Contains (Point p) const
 Does this keyframe contain a specific point. More...
 
int64_t FindIndex (Point p) const
 Get the index of a point by matching a coordinate. More...
 
void FlipPoints ()
 Flip all the points in this openshot::Keyframe (useful for reversing an effect or transition, etc...) More...
 
Point GetClosestPoint (Point p) const
 Get current point (or closest point to the right) from the X coordinate (i.e. the frame number) More...
 
Point GetClosestPoint (Point p, bool useLeft) const
 
int64_t GetCount () const
 Get the number of points (i.e. # of points) More...
 
double GetDelta (int64_t index) const
 Get the change in Y value (from the previous Y value) More...
 
int GetInt (int64_t index) const
 Get the rounded INT value at a specific index. More...
 
int64_t GetLength () const
 
int64_t GetLong (int64_t index) const
 Get the rounded LONG value at a specific index. More...
 
Point GetMaxPoint () const
 Get max point (by Y coordinate) More...
 
const PointGetPoint (int64_t index) const
 Get a point at a specific index. More...
 
Point GetPreviousPoint (Point p) const
 Get previous point (. More...
 
double GetValue (int64_t index) const
 Get the value at a specific index. More...
 
bool IsIncreasing (int index) const
 Get the direction of the curve at a specific index (increasing or decreasing) More...
 
std::string Json () const
 Generate JSON string of this object. More...
 
Json::Value JsonValue () const
 Generate Json::Value for this object. More...
 
 Keyframe ()=default
 Default constructor for the Keyframe class. More...
 
 Keyframe (const std::vector< openshot::Point > &points)
 Constructor which adds a supplied vector of Points. More...
 
 Keyframe (double value)
 Constructor which sets the default point & coordinate at X=1. More...
 
void PrintPoints (std::ostream *out=&std::cout) const
 Print a list of points. More...
 
void PrintValues (std::ostream *out=&std::cout) const
 Print just the Y value of the point's primary coordinate. More...
 
void RemovePoint (int64_t index)
 Remove a point by index. More...
 
void RemovePoint (Point p)
 Remove a point by matching a coordinate. More...
 
void ScalePoints (double scale)
 
void SetJson (const std::string value)
 Load JSON string into this object. More...
 
void SetJsonValue (const Json::Value root)
 Load Json::Value into this object. More...
 
void UpdatePoint (int64_t index, Point p)
 Replace an existing point with a new point. More...
 
 ~Keyframe ()
 Destructor. More...
 

Detailed Description

A Keyframe is a collection of Point instances, which is used to vary a number or property over time.

Keyframes are used to animate and interpolate values of properties over time. For example, a single property can use a Keyframe instead of a constant value. Assume you want to slide an image (from left to right) over a video. You can create a Keyframe which will adjust the X value of the image over 100 frames (or however many frames the animation needs to last) from the value of 0 to 640.

Please see the following Example Code:

k1.AddPoint(Point(1,0));
k1.AddPoint(Point(100,640));
kf.PrintValues();

Definition at line 53 of file KeyFrame.h.

Constructor & Destructor Documentation

◆ Keyframe() [1/3]

openshot::Keyframe::Keyframe ( )
default

Default constructor for the Keyframe class.

◆ Keyframe() [2/3]

Keyframe::Keyframe ( double  value)

Constructor which sets the default point & coordinate at X=1.

Definition at line 115 of file KeyFrame.cpp.

◆ Keyframe() [3/3]

Keyframe::Keyframe ( const std::vector< openshot::Point > &  points)

Constructor which adds a supplied vector of Points.

Definition at line 121 of file KeyFrame.cpp.

◆ ~Keyframe()

Keyframe::~Keyframe ( )

Destructor.

Definition at line 124 of file KeyFrame.cpp.

Member Function Documentation

◆ AddPoint() [1/2]

void Keyframe::AddPoint ( double  x,
double  y,
InterpolationType  interpolate = BEZIER 
)

Add a new point on the key-frame, with optional interpolation type.

Definition at line 156 of file KeyFrame.cpp.

◆ AddPoint() [2/2]

void Keyframe::AddPoint ( Point  p)

Add a new point on the key-frame. Each point has a primary coordinate, a left handle, and a right handle.

Definition at line 131 of file KeyFrame.cpp.

Referenced by AddPoint(), SetJsonValue(), and UpdatePoint().

◆ Contains()

bool Keyframe::Contains ( Point  p) const

Does this keyframe contain a specific point.

Definition at line 184 of file KeyFrame.cpp.

Referenced by openshot::ClipBase::add_property_json(), openshot::TrackedObjectBBox::add_property_json(), and PrintValues().

◆ FindIndex()

int64_t Keyframe::FindIndex ( Point  p) const

Get the index of a point by matching a coordinate.

Definition at line 166 of file KeyFrame.cpp.

Referenced by GetPreviousPoint().

◆ FlipPoints()

void Keyframe::FlipPoints ( )

Flip all the points in this openshot::Keyframe (useful for reversing an effect or transition, etc...)

Definition at line 530 of file KeyFrame.cpp.

◆ GetClosestPoint() [1/2]

Point Keyframe::GetClosestPoint ( Point  p) const

Get current point (or closest point to the right) from the X coordinate (i.e. the frame number)

Definition at line 221 of file KeyFrame.cpp.

Referenced by openshot::ClipBase::add_property_json(), and openshot::TrackedObjectBBox::add_property_json().

◆ GetClosestPoint() [2/2]

Point Keyframe::GetClosestPoint ( Point  p,
bool  useLeft 
) const

Get current point (or closest point) from the X coordinate (i.e. the frame number) Either use the closest left point, or right point

Definition at line 191 of file KeyFrame.cpp.

◆ GetCount()

int64_t Keyframe::GetCount ( ) const

◆ GetDelta()

double Keyframe::GetDelta ( int64_t  index) const

Get the change in Y value (from the previous Y value)

Definition at line 399 of file KeyFrame.cpp.

Referenced by PrintValues().

◆ GetInt()

int Keyframe::GetInt ( int64_t  index) const

Get the rounded INT value at a specific index.

Definition at line 282 of file KeyFrame.cpp.

Referenced by openshot::Color::GetColorHex(), openshot::Color::GetColorRGBA(), openshot::Blur::GetFrame(), and openshot::ChromaKey::GetFrame().

◆ GetLength()

int64_t Keyframe::GetLength ( ) const

Definition at line 417 of file KeyFrame.cpp.

Referenced by openshot::Clip::End(), GetDelta(), IsIncreasing(), and PrintValues().

◆ GetLong()

int64_t Keyframe::GetLong ( int64_t  index) const

Get the rounded LONG value at a specific index.

Definition at line 287 of file KeyFrame.cpp.

◆ GetMaxPoint()

Point Keyframe::GetMaxPoint ( ) const

Get max point (by Y coordinate)

Definition at line 245 of file KeyFrame.cpp.

◆ GetPoint()

const Point & Keyframe::GetPoint ( int64_t  index) const

Get a point at a specific index.

Definition at line 407 of file KeyFrame.cpp.

◆ GetPreviousPoint()

Point Keyframe::GetPreviousPoint ( Point  p) const

Get previous point (.

Definition at line 226 of file KeyFrame.cpp.

Referenced by openshot::ClipBase::add_property_json(), and openshot::TrackedObjectBBox::add_property_json().

◆ GetValue()

double Keyframe::GetValue ( int64_t  index) const

Get the value at a specific index.

Definition at line 258 of file KeyFrame.cpp.

Referenced by openshot::TrackedObjectBBox::GetBox(), openshot::TrackedObjectBBox::GetBoxValues(), GetDelta(), openshot::Noise::GetFrame(), openshot::Distortion::GetFrame(), openshot::Delay::GetFrame(), openshot::Echo::GetFrame(), openshot::Hue::GetFrame(), openshot::Brightness::GetFrame(), openshot::Shift::GetFrame(), openshot::Compressor::GetFrame(), openshot::Expander::GetFrame(), openshot::Bars::GetFrame(), openshot::Wave::GetFrame(), openshot::Mask::GetFrame(), openshot::Blur::GetFrame(), openshot::Pixelate::GetFrame(), openshot::Saturation::GetFrame(), openshot::ColorShift::GetFrame(), openshot::Crop::GetFrame(), openshot::Stabilizer::GetFrame(), openshot::Caption::GetFrame(), openshot::ObjectDetection::GetFrame(), openshot::Timeline::GetFrame(), GetInt(), GetLong(), IsIncreasing(), PrintValues(), openshot::Noise::PropertiesJSON(), openshot::Distortion::PropertiesJSON(), openshot::ParametricEQ::PropertiesJSON(), openshot::Delay::PropertiesJSON(), openshot::Echo::PropertiesJSON(), openshot::Hue::PropertiesJSON(), openshot::Brightness::PropertiesJSON(), openshot::Shift::PropertiesJSON(), openshot::Compressor::PropertiesJSON(), openshot::Expander::PropertiesJSON(), openshot::Bars::PropertiesJSON(), openshot::Wave::PropertiesJSON(), openshot::Mask::PropertiesJSON(), openshot::Saturation::PropertiesJSON(), openshot::Blur::PropertiesJSON(), openshot::Pixelate::PropertiesJSON(), openshot::ColorShift::PropertiesJSON(), openshot::Crop::PropertiesJSON(), openshot::ChromaKey::PropertiesJSON(), openshot::Stabilizer::PropertiesJSON(), openshot::Caption::PropertiesJSON(), openshot::ObjectDetection::PropertiesJSON(), openshot::TrackedObjectBBox::PropertiesJSON(), openshot::Clip::PropertiesJSON(), openshot::Distortion::updateFilters(), and openshot::ParametricEQ::updateFilters().

◆ IsIncreasing()

bool Keyframe::IsIncreasing ( int  index) const

Get the direction of the curve at a specific index (increasing or decreasing)

Definition at line 292 of file KeyFrame.cpp.

Referenced by openshot::FrameMapper::GetFrame(), and PrintValues().

◆ Json()

std::string Keyframe::Json ( ) const

Generate JSON string of this object.

Definition at line 332 of file KeyFrame.cpp.

◆ JsonValue()

Json::Value Keyframe::JsonValue ( ) const

◆ PrintPoints()

void Keyframe::PrintPoints ( std::ostream *  out = &std::cout) const

Print a list of points.

Definition at line 470 of file KeyFrame.cpp.

◆ PrintValues()

void Keyframe::PrintValues ( std::ostream *  out = &std::cout) const

Print just the Y value of the point's primary coordinate.

Definition at line 481 of file KeyFrame.cpp.

◆ RemovePoint() [1/2]

void Keyframe::RemovePoint ( int64_t  index)

Remove a point by index.

Definition at line 449 of file KeyFrame.cpp.

◆ RemovePoint() [2/2]

void Keyframe::RemovePoint ( Point  p)

Remove a point by matching a coordinate.

Definition at line 430 of file KeyFrame.cpp.

Referenced by UpdatePoint().

◆ ScalePoints()

void Keyframe::ScalePoints ( double  scale)

Scale all points by a percentage (good for evenly lengthening or shortening an openshot::Keyframe) 1.0 = same size, 1.05 = 5% increase, etc...

Definition at line 516 of file KeyFrame.cpp.

◆ SetJson()

void Keyframe::SetJson ( const std::string  value)

Load JSON string into this object.

Definition at line 355 of file KeyFrame.cpp.

◆ SetJsonValue()

void Keyframe::SetJsonValue ( const Json::Value  root)

◆ UpdatePoint()

void Keyframe::UpdatePoint ( int64_t  index,
Point  p 
)

Replace an existing point with a new point.

Definition at line 462 of file KeyFrame.cpp.


The documentation for this class was generated from the following files:
openshot::Keyframe::Keyframe
Keyframe()=default
Default constructor for the Keyframe class.