13#ifndef OPENSHOT_POINT_H
14#define OPENSHOT_POINT_H
79 Point(
float x,
float y);
104 std::string
Json()
const;
106 void SetJson(
const std::string value);
112template<
class charT,
class traits>
113std::basic_ostream<charT, traits>&
115 std::basic_ostringstream<charT, traits> s;
118 s.precision(o.precision());
Header file for Coordinate class.
Header file for JSON class.
A Cartesian coordinate (X, Y) used in the Keyframe animation system.
A Point is the basic building block of a key-frame curve.
Coordinate handle_left
This is the left handle coordinate (in percentages from 0 to 1)
void SetJson(const std::string value)
Load JSON string into this object.
Json::Value JsonValue() const
Generate Json::Value for this object.
void Initialize_RightHandle(float x, float y)
Set the right handle to a percent of the primary coordinate (0 to 1)
void Initialize_LeftHandle(float x, float y)
Set the left handle to a percent of the primary coordinate (0 to 1)
void Initialize_Handles()
HandleType handle_type
This is the handle mode.
Coordinate co
This is the primary coordinate.
InterpolationType interpolation
This is the interpolation mode.
Coordinate handle_right
This is the right handle coordinate (in percentages from 0 to 1)
Point()
Default constructor (defaults to 1,0)
void SetJsonValue(const Json::Value root)
Load Json::Value into this object.
std::string Json() const
Generate JSON string of this object.
This namespace is the default namespace for all code in the openshot library.
std::basic_ostream< charT, traits > & operator<<(std::basic_ostream< charT, traits > &o, const openshot::Coordinate &co)
Stream output operator for openshot::Coordinate.
HandleType
When BEZIER interpolation is used, the point's left and right handles are used to influence the direc...
@ AUTO
Automatically adjust the handles to achieve the smoothest curve.
@ MANUAL
Do not automatically adjust handles (set them manually)
InterpolationType
This controls how a Keyframe uses this point to interpolate between two points.
@ CONSTANT
Constant curves jump from their previous position to a new one (with no interpolation).
@ BEZIER
Bezier curves are quadratic curves, which create a smooth curve.
@ LINEAR
Linear curves are angular, straight lines between two points.