project_points


Description:

public void project_points (int n_components, ulong stride_in, void* points_in, ulong stride_out, void* points_out, int n_points)

Projects an array of input points and writes the result to another array of output points.

The input points can either have 2, 3 or 4 components each. The output points always have 4 components (known as homogenous coordinates) . The output array can simply point to the input array to do the transform in-place.

Here's an example with differing input/output strides:

typedef struct {
float x,y;
uint8_t r,g,b,a;
float s,t,p;
} MyInVertex;
typedef struct {
uint8_t r,g,b,a;
float x,y,z;
} MyOutVertex;
MyInVertex vertices[N_VERTICES];
MyOutVertex results[N_VERTICES];
CoglMatrix matrix;

my_load_vertices (vertices);
my_get_matrix (&matrix);

cogl_matrix_project_points (&matrix,
2,
sizeof (MyInVertex),
&vertices[0].x,
sizeof (MyOutVertex),
&results[0].x,
N_VERTICES);

Parameters:

this

A projection matrix

n_components

The number of position components for each input point. (either 2, 3 or 4)

stride_in

The stride in bytes between input points.

points_in

A pointer to the first component of the first input point.

stride_out

The stride in bytes between output points.

points_out

A pointer to the first component of the first output point.

n_points

The number of points to transform.