OpenShot Library | libopenshot
0.4.0
|
Go to the documentation of this file.
14 #ifndef OPENSHOT_TRACKEDOBJECTBBOX_H
15 #define OPENSHOT_TRACKEDOBJECTBBOX_H
54 BBox(
float _cx,
float _cy,
float _width,
float _height,
float _angle)
76 root[
"width"] =
width;
78 root[
"angle"] =
angle;
93 catch (
const std::exception &e)
96 throw InvalidJSON(
"JSON is invalid (missing keys or invalid data types)");
105 if (!root[
"cx"].isNull())
106 cx = root[
"cx"].asDouble();
107 if (!root[
"cy"].isNull())
108 cy = root[
"cy"].asDouble();
109 if (!root[
"width"].isNull())
110 width = root[
"width"].asDouble();
111 if (!root[
"height"].isNull())
112 height = root[
"height"].asDouble();
113 if (!root[
"angle"].isNull())
114 angle = root[
"angle"].asDouble();
157 void AddBox(int64_t _frame_num,
float _cx,
float _cy,
float _width,
float _height,
float _angle)
override;
169 bool Contains(int64_t frame_number)
const;
191 double FrameNToTime(int64_t frame_number,
double time_scale)
const;
200 std::string
Json()
const override;
202 void SetJson(
const std::string value)
override;
207 Json::Value
PropertiesJSON(int64_t requested_frame)
const override;
210 Json::Value
add_property_json(std::string name,
float value, std::string type, std::string memo,
const Keyframe* keyframe,
float min_value,
float max_value,
bool readonly, int64_t requested_frame)
const;
213 std::map<std::string, float>
GetBoxValues(int64_t frame_number)
const override;
const Json::Value stringToJson(const std::string value)
Json::Value PropertiesJSON(int64_t requested_frame) const override
Keyframe stroke_alpha
Stroke box opacity.
Keyframe rotation
Rotation Keyframe.
void AddBox(int64_t _frame_num, float _cx, float _cy, float _width, float _height, float _angle) override
Add a BBox to the BoxVec map.
float height
bounding box height
Header file for Fraction class.
bool Contains(int64_t frame_number) const
Check if there is a bounding-box in the given frame.
Json::Value JsonValue() const override
Generate Json::Value for this object.
Color background
Background fill color.
void SetJsonValue(const Json::Value root) override
Load Json::Value into this object.
This namespace is the default namespace for all code in the openshot library.
Json::Value JsonValue() const
Generate Json::Value for this object.
Json::Value add_property_json(std::string name, float value, std::string type, std::string memo, const Keyframe *keyframe, float min_value, float max_value, bool readonly, int64_t requested_frame) const
double FrameNToTime(int64_t frame_number, double time_scale) const
Get the time of the given frame.
This class represents a fraction.
float cy
y-coordinate of the bounding box center
void ScalePoints(double scale) override
Update the TimeScale member variable.
This abstract class is the base class of all Tracked Objects.
BBox GetBox(int64_t frame_number) const
Const-cast of the GetBox function, so that it can be called inside other cont function.
std::string Json() const override
Get and Set JSON methods.
Fraction GetBaseFPS()
Return the object's BaseFps.
Header file for the Keyframe class.
Keyframe scale_y
Y-direction scale Keyframe.
This class represents a color (used on the timeline and clips)
float angle
bounding box rotation angle [degrees]
This class contains the properties of a tracked object and functions to manipulate it.
A Keyframe is a collection of Point instances, which is used to vary a number or property over time.
Keyframe scale_x
X-direction scale Keyframe.
Exception for invalid JSON.
BBox GetBox(int64_t frame_number)
Return a bounding-box from BoxVec with it's properties adjusted by the Keyframes.
TrackedObjectBBox()
Default Constructor.
float width
bounding box width
void SetJsonValue(const Json::Value root)
Load Json::Value into this object.
BBox InterpolateBoxes(double t1, double t2, BBox left, BBox right, double target)
Interpolate the bouding-boxes properties.
Keyframe delta_y
Y-direction displacement Keyframe.
void RemoveBox(int64_t frame_number)
Remove a bounding-box from the BoxVec map.
std::map< double, BBox > BoxVec
Index the bounding-box by time of each frame.
std::map< std::string, float > GetBoxValues(int64_t frame_number) const override
Return a map that contains the bounding box properties and it's keyframes indexed by their names.
void SetJson(const std::string value)
Load JSON string into this object.
Keyframe delta_x
X-direction displacement Keyframe.
This struct holds the information of a bounding-box.
bool LoadBoxData(std::string inputFilePath)
Load the bounding-boxes information from the protobuf file.
void clear()
Clear the BoxVec map.
void SetBaseFPS(Fraction fps)
Update object's BaseFps.
void SetJson(const std::string value) override
Load JSON string into this object.
Color stroke
Border line color.
bool ExactlyContains(int64_t frame_number) const override
Check if there is a bounding-box in the exact frame number.
std::string Json() const
Generate JSON string of this object.
std::string protobufDataPath
Path to the protobuf file that holds the bounding box points across the frames.
BBox(float _cx, float _cy, float _width, float _height, float _angle)
Header file for Color class.
float cx
x-coordinate of the bounding box center
Header file for JSON class.
Keyframe stroke_width
Thickness of border line.
Header file for the TrackedObjectBase class.
Keyframe background_corner
Radius of rounded corners.
Header file for all Exception classes.
Keyframe background_alpha
Background box opacity.
int64_t GetLength() const
Get the size of BoxVec map.