Unigine.Plugins.SpiderVision.WarpGridData Class
The object of this class stores the information on the warp grid — a set of points and their handles that create a mesh based on which the displayed image is reshaped.
Warping of the image is required to render the projected image on a distorted surface in such a way that it would look undistorted.
This object is accessible via the corresponding method of the ViewportData class.
The mask data are stored in the configuration file.
WarpGridData Class
Enums
VIEWPORT_FLIP_TYPE#
WARP_HANDLE_ROLE#
Properties
bool Enabled#
The value indicating if the warp grid rendering is enabled.
int NumRows#
The number of warping grid points vertically in the warp grid, which define the grid rows.
int NumColumns#
The number of warping grid points horizontally in the warp grid, which define the grid columns.
int WarpPointsCount#
The total number of points in the warp grid.
WarpGridData.VIEWPORT_FLIP_TYPE CanvasFlipMask#
The type of flipping the canvas mask for the viewport.
Event EventChanged#
The event triggered on changing warp grid data. You can subscribe to events via
Connect() and unsubscribe via Disconnect(). You can also use EventConnection and
EventConnections classes for convenience (see examples below).
The event handler signature is as follows: myhandler()
For more details see the Event Handling article.
Usage Example
// implement the Changed event handler
void changed_event_handler()
{
Log.Message("\Handling Changed event\n");
}
//////////////////////////////////////////////////////////////////////////////
// 1. Multiple subscriptions can be linked to an EventConnections instance
// class that you can use later to remove all these subscriptions at once
//////////////////////////////////////////////////////////////////////////////
// create an instance of the EventConnections class
EventConnections changed_event_connections = new EventConnections();
// link to this instance when subscribing to an event (subscription to various events can be linked)
WarpGridData.EventChanged.Connect(changed_event_connections, changed_event_handler);
// other subscriptions are also linked to this EventConnections instance
// (e.g. you can subscribe using lambdas)
WarpGridData.EventChanged.Connect(changed_event_connections, () => {
Log.Message("Handling Changed event lambda\n");
}
);
// later all of these linked subscriptions can be removed with a single line
changed_event_connections.DisconnectAll();
//////////////////////////////////////////////////////////////////////////////
// 2. You can subscribe and unsubscribe via the handler function directly
//////////////////////////////////////////////////////////////////////////////
// subscribe to the Changed event with a handler function
WarpGridData.EventChanged.Connect(changed_event_handler);
// remove subscription to the Changed event later by the handler function
WarpGridData.EventChanged.Disconnect(changed_event_handler);
//////////////////////////////////////////////////////////////////////////////
// 3. Subscribe to an event and unsubscribe later via an EventConnection instance
//////////////////////////////////////////////////////////////////////////////
// define a connection to be used to unsubscribe later
EventConnection changed_event_connection;
// subscribe to the Changed event with a lambda handler function and keeping the connection
changed_event_connection = WarpGridData.EventChanged.Connect(() => {
Log.Message("Handling Changed event lambda\n");
}
);
// ...
// you can temporarily disable a particular event connection
changed_event_connection.Enabled = false;
// ... perform certain actions
// and enable it back when necessary
changed_event_connection.Enabled = true;
// ...
// remove the subscription later using the saved connection
changed_event_connection.Disconnect();
//////////////////////////////////////////////////////////////////////////////
// 4. Ignoring Changed events when necessary
//////////////////////////////////////////////////////////////////////////////
// you can temporarily disable the event to perform certain actions without triggering it
WarpGridData.EventChanged.Enabled = false;
// ... actions to be performed
// and enable it back when necessary
WarpGridData.EventChanged.Enabled = true;
Members
void SetGridSize ( int row, int column ) #
Sets the number of columns and rows on the warping grid.Arguments
- int row - Number of grid rows.
- int column - Number of grid columns.
void SetPoint ( int x, int y, vec2 point ) #
Sets the coordinates of the warping control point on the grid.Arguments
- int x - Position of the warping control point in the row, starting from 0 on the left.
- int y - Position of the warping control point in the column, starting from 0 at the bottom.
- vec2 point - Screen-space coordinates of the point.
void SetPoint ( int index, vec2 point ) #
Sets the coordinates of the warping control point on the grid.Arguments
- int index - Warping control point index. The point with the 0 index is in the bottom left corner with the progression going upwards, and then to the next column bottom point.
- vec2 point - Screen-space coordinates of the point.
vec2 GetPoint ( int x, int y ) #
Returns the coordinates of the warping control point on the grid.Arguments
- int x - Position of the warping control point in the row, starting from 0 on the left.
- int y - Position of the warping control point in the column, starting from 0 at the bottom.
Return value
Screen-space coordinates of the point.vec2 GetPoint ( int index ) #
Returns the coordinates of the warping control point on the grid.Arguments
- int index - Warping control point index. The point with the 0 index is in the bottom left corner with the progression going upwards, and then to the next column bottom point.
Return value
Screen-space coordinates of the point.void SetPointHandle ( int x, int y, WarpGridData.WARP_HANDLE_ROLE type, vec2 point ) #
Sets the type and position of the handle point for the specified warp grid point.Arguments
- int x - Position of the warping control point in the row, starting from 0 on the left.
- int y - Position of the warping control point in the column, starting from 0 at the bottom.
- WarpGridData.WARP_HANDLE_ROLE type - Type of control handle of the warping control point.
- vec2 point - Screen-space coordinates of the point.
void SetPointHandle ( int index, WarpGridData.WARP_HANDLE_ROLE type, vec2 point ) #
Sets the type and position of the handle point for the specified warp grid point.Arguments
- int index - Warping control point index. The point with the 0 index is in the bottom left corner with the progression going upwards, and then to the next column bottom point.
- WarpGridData.WARP_HANDLE_ROLE type - Type of control handle of the warping control point.
- vec2 point - Screen-space coordinates of the point.
vec2 GetPointHandle ( int x, int y, WarpGridData.WARP_HANDLE_ROLE type ) #
Returns the type and position of the handle point for the specified warp grid point.Arguments
- int x - Position of the warping control point in the row, starting from 0 on the left.
- int y - Position of the warping control point in the column, starting from 0 at the bottom.
- WarpGridData.WARP_HANDLE_ROLE type - Type of control handle of the warping control point.
Return value
Screen-space coordinates of the point.vec2 GetPointHandle ( int index, WarpGridData.WARP_HANDLE_ROLE type ) #
Returns the type and position of the handle point for the specified warp grid point.Arguments
- int index - Warping control point index. The point with the 0 index is in the bottom left corner with the progression going upwards, and then to the next column bottom point.
- WarpGridData.WARP_HANDLE_ROLE type - Type of control handle of the warping control point.
Return value
Screen-space coordinates of the point.void SetPointHandleSmoothType ( int x, int y, ViewportData.POINT_SMOOTH_TYPE smooth_type ) #
Sets the type of line curving for the handle point of the specified warp grid point.Arguments
- int x - Position of the warping control point in the row, starting from 0 on the left.
- int y - Position of the warping control point in the column, starting from 0 at the bottom.
- ViewportData.POINT_SMOOTH_TYPE smooth_type - The type of line curving for the handle point.
void SetPointHandleSmoothType ( int index, ViewportData.POINT_SMOOTH_TYPE smooth_type ) #
Sets the type of line curving for the handle point of the specified warp grid point.Arguments
- int index - Warping control point index. The point with the 0 index is in the bottom left corner with the progression going upwards, and then to the next column bottom point.
- ViewportData.POINT_SMOOTH_TYPE smooth_type - The type of line curving for the handle point.
ViewportData.POINT_SMOOTH_TYPE GetPointHandleSmoothType ( int x, int y ) #
Returns the type of line curving for the handle point of the specified warp grid point.Arguments
- int x - Position of the warping control point in the row, starting from 0 on the left.
- int y - Position of the warping control point in the column, starting from 0 at the bottom.
Return value
The type of line curving for the handle point.ViewportData.POINT_SMOOTH_TYPE GetPointHandleSmoothType ( int index ) #
Returns the type of line curving for the handle point of the specified warp grid point.Arguments
- int index - Warping control point index. The point with the 0 index is in the bottom left corner with the progression going upwards, and then to the next column bottom point.
Return value
The type of line curving for the handle point.void SaveXml ( Xml xml ) #
Saves the warp grid data to the given instance of the Xml class.Arguments
bool RestoreXml ( Xml xml ) #
Loads the warp grid data from the specified instance of the Xml class.Arguments
Return value
true if the data has been loaded successfully, otherwise false.void Save ( Stream stream ) #
Saves the warp grid data to the specified stream.Arguments
- Stream stream - Stream to which the data is to be written.
void Restore ( Stream stream ) #
Loads the warp grid data from the specified stream.Arguments
- Stream stream - Stream the data from which is to be loaded.
Last update:
2024-08-01
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)