Omnidome
Fulldome Mapping Software Toolkit
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Namespaces | Functions
WarpGrid.cpp File Reference
#include <omni/WarpGrid.h>
#include <QDataStream>
#include <omni/util.h>
#include <omni/serialization/PropertyMap.h>
#include <omni/serialization/container.h>
Include dependency graph for WarpGrid.cpp:

Namespaces

 omni
 Header to document namespaces.
 

Functions

bool omni::operator== (WarpGrid const &_lhs, WarpGrid const &_rhs)
 
QDataStream & operator<< (QDataStream &_os, const omni::WarpGrid &_p)
 Serialize omni::WarpGrid to stream. More...
 
QDataStream & operator>> (QDataStream &_is, omni::WarpGrid &_p)
 Deserialize omni::WarpGrid from stream. More...
 

Function Documentation

QDataStream& operator<< ( QDataStream &  _os,
const omni::WarpGrid _p 
)

Serialize omni::WarpGrid to stream.

270 {
272  _map
273  ("horizontal",_p.horizontal())
274  ("vertical",_p.vertical())
275  ("interpolation",omni::util::enumToInt(_p.interpolation()));
276  _os << _map;
277  for (auto& _point : _p.points()) _os << _point;
278 
279  return _os;
280 }
std::vector< WarpPoint > const & points() const
Return const reference to warp points.
Definition: WarpGrid.cpp:255
Interpolation interpolation() const
Return interpolation type (BICUBIC is default)
Definition: WarpGrid.cpp:74
int horizontal() const
Return horizontal resolution.
Definition: WarpGrid.cpp:68
int vertical() const
Return vertical resolution.
Definition: WarpGrid.cpp:63
Property map to store properties in a QBuffer with an id.
Definition: PropertyMap.h:96
auto enumToInt(ENUM const &_v) -> typename std::underlying_type< ENUM >::type
Converts an enum class to integer.
Definition: util.h:105
QDataStream& operator>> ( QDataStream &  _is,
omni::WarpGrid _p 
)

Deserialize omni::WarpGrid from stream.

283 {
284  using namespace omni;
285 
287  _is >> _map;
288  int _horizontal = _map.getValue<int>("horizontal");
289  int _vertical = _map.getValue<int>("vertical");
290  int _interpolation = _map.getValue<int>("interpolation",
292 
293  _p.resize(_horizontal, _vertical);
294  _p.setInterpolation(util::intToEnum<WarpGrid::Interpolation>(_interpolation));
295 
296  for (int y = 0; y < _p.vertical(); ++y)
297  for (int x = 0; x < _p.horizontal(); ++x) _is >> *_p.getPoint(x, y);
298 
299  return _is;
300 }
T getValue(QString const &_id, T const &_default=T()) const
Get value from id (with optional default value when id is not present)
Definition: PropertyMap.h:146
void resize(int _horz, int _vert)
Resize grid with given horizontal and vertical resolution.
Definition: WarpGrid.cpp:53
WarpPoint * getPoint(int x, int y)
Get point with x and y index.
Definition: WarpGrid.cpp:200
int horizontal() const
Return horizontal resolution.
Definition: WarpGrid.cpp:68
int vertical() const
Return vertical resolution.
Definition: WarpGrid.cpp:63
Property map to store properties in a QBuffer with an id.
Definition: PropertyMap.h:96
auto enumToInt(ENUM const &_v) -> typename std::underlying_type< ENUM >::type
Converts an enum class to integer.
Definition: util.h:105
void setInterpolation(Interpolation)
Interpolation value.
Definition: WarpGrid.cpp:79