Loading...
Searching...
No Matches
openshot::SphericalProjection Class Reference

Projects 360° or fisheye video through a virtual camera. Supports yaw, pitch, roll, input and output FOV, sphere/hemisphere/fisheye modes, optional inversion, and automatic quality selection. More...

`#include <effects/SphericalProjection.h>`

Inheritance diagram for openshot::SphericalProjection:

## Public Types

enum | InputModel { INPUT_EQUIRECT = 0 , INPUT_FEQ_EQUIDISTANT = 1 , INPUT_FEQ_EQUISOLID = 2 , INPUT_FEQ_STEREOGRAPHIC = 3 , INPUT_FEQ_ORTHOGRAPHIC = 4 }
enum | InterpMode { INTERP_NEAREST = 0 , INTERP_BILINEAR = 1 , INTERP_BICUBIC = 2 , INTERP_AUTO = 3 }
enum | InvertFlag { INVERT_NORMAL = 0 , INVERT_BACK = 1 }
enum | ProjectionMode { MODE_RECT_SPHERE = 0 , MODE_RECT_HEMISPHERE = 1 , MODE_FISHEYE_EQUIDISTANT = 2 , MODE_FISHEYE_EQUISOLID = 3 , MODE_FISHEYE_STEREOGRAPHIC = 4 , MODE_FISHEYE_ORTHOGRAPHIC = 5 }

## Public Member Functions

std::shared_ptr< Frame > | GetFrame (int64_t frame_number) override
| ClipBase override: create a fresh Frame then call the main GetFrame.
std::shared_ptr< Frame > | GetFrame (std::shared_ptr< Frame > frame, int64_t frame_number) override
| EffectBase override: reproject the QImage.
std::string | Json () const override
| Generate JSON string of this object.
Json::Value | JsonValue () const override
| Generate Json::Value for this object.
std::string | PropertiesJSON (int64_t requested_frame) const override
void | SetJson (std::string value) override
| Load JSON string into this object.
void | SetJsonValue (Json::Value root) override
| Load Json::Value into this object.
| SphericalProjection ()
| Blank ctor (for JSON deserialization).
| SphericalProjection (Keyframe new_yaw, Keyframe new_pitch, Keyframe new_roll, Keyframe new_fov)
| Ctor with custom curves.
Public Member Functions inherited from openshot::EffectBase
Json::Value | BasePropertiesJSON (int64_t requested_frame) const
| Generate JSON object of base properties (recommended to be used by all effects).
int | constrain (int color_value)
| Constrain a color value from 0 to 255.
void | DisplayInfo (std::ostream *out=&std::cout)
| Display effect information in the standard output stream (stdout).
virtual std::string | GetVisibleObjects (int64_t frame_number) const
| Get the indexes and IDs of all visible objects in the given frame.
void | InitEffectInfo ()
virtual std::string | Json (int64_t requested_frame) const
Json::Value | JsonInfo () const
| Generate JSON object of meta data / info.
int | Order () const
| Get the order that this effect should be executed.
void | Order (int new_order)
| Set the order that this effect should be executed.
openshot::ClipBase * | ParentClip ()
| Parent clip object of this effect (which can be unparented and NULL).
void | ParentClip (openshot::ClipBase *new_clip)
| Set parent clip object of this effect.
std::string | ParentClipId () const
| Return the ID of this effect's parent clip.
virtual void | SetJson (int64_t requested_frame, const std::string value)
void | SetParentEffect (std::string parentEffect_id)
| Set the parent effect from which this properties will be set to.
virtual | ~EffectBase ()=default
Public Member Functions inherited from openshot::ClipBase
| ClipBase ()
| Constructor for the base clip.
float | Duration () const
| Get the length of this clip (in seconds).
virtual float | End () const
| Get end position (in seconds) of clip (trim end of video).
virtual void | End (float value)
| Set end position (in seconds) of clip (trim end of video).
virtual std::shared_ptr< openshot::Frame > | GetFrame (std::shared_ptr< openshot::Frame > frame, int64_t frame_number)=0
| This method is required for all derived classes of ClipBase, and returns a modified openshot::Frame object.
std::string | Id () const
| Get the Id of this clip object.
void | Id (std::string value)
int | Layer () const
| Get layer of clip on timeline (lower number is covered by higher numbers).
void | Layer (int value)
| Set layer of clip on timeline (lower number is covered by higher numbers).
bool | operator< (ClipBase &a)
bool | operator<= (ClipBase &a)
bool | operator> (ClipBase &a)
bool | operator>= (ClipBase &a)
virtual openshot::TimelineBase * | ParentTimeline ()
| Get the associated Timeline pointer (if any).
virtual void | ParentTimeline (openshot::TimelineBase *new_timeline)
| Set associated Timeline pointer.
float | Position () const
| Get position on timeline (in seconds).
void | Position (float value)
| Set position on timeline (in seconds).
float | Start () const
| Get start position (in seconds) of clip (trim start of video).
void | Start (float value)
| Set start position (in seconds) of clip (trim start of video).
virtual | ~ClipBase ()=default

## Public Attributes

Keyframe | fov
| Output field-of-view (degrees).
Keyframe | in_fov
| Source lens coverage / FOV (degrees).
int | input_model
| 0=Equirect, 1=Fisheye-Equidistant
int | interpolation
| 0=Nearest, 1=Bilinear, 2=Bicubic, 3=Auto
int | invert
| 0=Normal, 1=Invert (back lens / +180°)
Keyframe | pitch
| Pitch around right-axis (degrees).
int | projection_mode
| 0=Sphere, 1=Hemisphere, 2=Fisheye
Keyframe | roll
| Roll around forward-axis (degrees).
Keyframe | yaw
| Yaw around up-axis (degrees).
Public Attributes inherited from openshot::EffectBase
EffectInfoStruct | info
| Information about the current effect.
EffectBase * | parentEffect
| Parent effect (which properties will set this effect properties).
std::map< int, std::shared_ptr< openshot::TrackedObjectBase > > | trackedObjects
| Map of Tracked Object's by their indices (used by Effects that track objects on clips).

## Additional Inherited Members

Protected Member Functions inherited from openshot::ClipBase
Json::Value | add_property_choice_json (std::string name, int value, int selected_value) const
| Generate JSON choice for a property (dropdown properties).
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
| Generate JSON for a property.
Protected Attributes inherited from openshot::EffectBase
openshot::ClipBase * | clip
| Pointer to the parent clip instance (if any).
Protected Attributes inherited from openshot::ClipBase
float | end
| The position in seconds to end playing (used to trim the ending of a clip).
std::string | id
| ID Property for all derived Clip and Effect classes.
int | layer
| The layer this clip is on. Lower clips are covered up by higher clips.
float | position
| The position on the timeline where this clip should start playing.
std::string | previous_properties
| This string contains the previous JSON properties.
float | start
| The position in seconds to start playing (used to trim the beginning of a clip).
openshot::TimelineBase * | timeline
| Pointer to the parent timeline instance (if any).

## Detailed Description

Projects 360° or fisheye video through a virtual camera. Supports yaw, pitch, roll, input and output FOV, sphere/hemisphere/fisheye modes, optional inversion, and automatic quality selection.

Definition at line 32 of file SphericalProjection.h.

## Member Enumeration Documentation

## InputModel

enum openshot::SphericalProjection::InputModel

Enumerator
INPUT_EQUIRECT |
INPUT_FEQ_EQUIDISTANT |
INPUT_FEQ_EQUISOLID |
INPUT_FEQ_STEREOGRAPHIC |
INPUT_FEQ_ORTHOGRAPHIC |

Definition at line 38 of file SphericalProjection.h.

## InterpMode

enum openshot::SphericalProjection::InterpMode

Enumerator
INTERP_NEAREST |
INTERP_BILINEAR |
INTERP_BICUBIC |
INTERP_AUTO |

Definition at line 55 of file SphericalProjection.h.

## InvertFlag

enum openshot::SphericalProjection::InvertFlag

Enumerator
INVERT_NORMAL |
INVERT_BACK |

Definition at line 62 of file SphericalProjection.h.

## ProjectionMode

enum openshot::SphericalProjection::ProjectionMode

Enumerator
MODE_RECT_SPHERE |
MODE_RECT_HEMISPHERE |
MODE_FISHEYE_EQUIDISTANT |
MODE_FISHEYE_EQUISOLID |
MODE_FISHEYE_STEREOGRAPHIC |
MODE_FISHEYE_ORTHOGRAPHIC |

Definition at line 46 of file SphericalProjection.h.

## Constructor & Destructor Documentation

## SphericalProjection() [1/2]

SphericalProjection::SphericalProjection | ( |  | ) |

Blank ctor (for JSON deserialization).

Definition at line 23 of file SphericalProjection.cpp.

## SphericalProjection() [2/2]

SphericalProjection::SphericalProjection | ( | Keyframe | new_yaw,
|  | Keyframe | new_pitch,
|  | Keyframe | new_roll,
|  | Keyframe | new_fov )

Ctor with custom curves.

Definition at line 30 of file SphericalProjection.cpp.

## Member Function Documentation

## GetFrame() [1/2]

std::shared_ptr< Frame > openshot::SphericalProjection::GetFrame | ( | int64_t | frame_number | ) |

inline override virtual

ClipBase override: create a fresh Frame then call the main GetFrame.

Implements openshot::ClipBase.

Definition at line 86 of file SphericalProjection.h.

Referenced by GetFrame().

## GetFrame() [2/2]

std::shared_ptr< Frame > openshot::SphericalProjection::GetFrame | ( | std::shared_ptr< Frame > | frame,
|  | int64_t | frame_number )

override

EffectBase override: reproject the QImage.

## Json()

std::string SphericalProjection::Json | ( |  | ) | const

override virtual

Generate JSON string of this object.

Reimplemented from openshot::EffectBase.

Definition at line 422 of file SphericalProjection.cpp.

## JsonValue()

Json::Value SphericalProjection::JsonValue | ( |  | ) | const

override virtual

Generate Json::Value for this object.

Reimplemented from openshot::EffectBase.

Definition at line 427 of file SphericalProjection.cpp.

Referenced by Json().

## PropertiesJSON()

std::string SphericalProjection::PropertiesJSON | ( | int64_t | requested_frame | ) | const

override virtual

Get all properties for a specific frame (perfect for a UI to display the current state of all properties at any time)

Implements openshot::ClipBase.

Definition at line 493 of file SphericalProjection.cpp.

## SetJson()

void SphericalProjection::SetJson | ( | std::string | value | ) |

override virtual

Load JSON string into this object.

Reimplemented from openshot::EffectBase.

Definition at line 443 of file SphericalProjection.cpp.

## SetJsonValue()

void SphericalProjection::SetJsonValue | ( | Json::Value | root | ) |

override virtual

Load Json::Value into this object.

Reimplemented from openshot::EffectBase.

Definition at line 456 of file SphericalProjection.cpp.

Referenced by SetJson().

## Member Data Documentation

## fov

Keyframe openshot::SphericalProjection::fov

Output field-of-view (degrees).

Definition at line 70 of file SphericalProjection.h.

Referenced by JsonValue(), PropertiesJSON(), SetJsonValue(), SphericalProjection(), and SphericalProjection().

## in_fov

Keyframe openshot::SphericalProjection::in_fov

Source lens coverage / FOV (degrees).

Definition at line 71 of file SphericalProjection.h.

Referenced by JsonValue(), PropertiesJSON(), SetJsonValue(), SphericalProjection(), and SphericalProjection().

## input_model

int openshot::SphericalProjection::input_model

0=Equirect, 1=Fisheye-Equidistant

Definition at line 75 of file SphericalProjection.h.

Referenced by JsonValue(), PropertiesJSON(), SetJsonValue(), SphericalProjection(), and SphericalProjection().

## interpolation

int openshot::SphericalProjection::interpolation

0=Nearest, 1=Bilinear, 2=Bicubic, 3=Auto

Definition at line 76 of file SphericalProjection.h.

Referenced by JsonValue(), PropertiesJSON(), SetJsonValue(), SphericalProjection(), and SphericalProjection().

## invert

int openshot::SphericalProjection::invert

0=Normal, 1=Invert (back lens / +180°)

Definition at line 74 of file SphericalProjection.h.

Referenced by JsonValue(), PropertiesJSON(), SetJsonValue(), SphericalProjection(), and SphericalProjection().

## pitch

Keyframe openshot::SphericalProjection::pitch

Pitch around right-axis (degrees).

Definition at line 68 of file SphericalProjection.h.

Referenced by JsonValue(), PropertiesJSON(), SetJsonValue(), SphericalProjection(), and SphericalProjection().

## projection_mode

int openshot::SphericalProjection::projection_mode

0=Sphere, 1=Hemisphere, 2=Fisheye

Definition at line 73 of file SphericalProjection.h.

Referenced by JsonValue(), PropertiesJSON(), SetJsonValue(), SphericalProjection(), and SphericalProjection().

## roll

Keyframe openshot::SphericalProjection::roll

Roll around forward-axis (degrees).

Definition at line 69 of file SphericalProjection.h.

Referenced by JsonValue(), PropertiesJSON(), SetJsonValue(), SphericalProjection(), and SphericalProjection().

## yaw

Keyframe openshot::SphericalProjection::yaw

Yaw around up-axis (degrees).

Definition at line 67 of file SphericalProjection.h.

Referenced by JsonValue(), PropertiesJSON(), SetJsonValue(), SphericalProjection(), and SphericalProjection().

The documentation for this class was generated from the following files:

- effects/SphericalProjection.h
- effects/SphericalProjection.cpp