'ShiftMatrix' |
Print Previous Next |
The shifting function allows you to move the content of the matrix into a given direction. It is declared as following: void ShiftPixelMatrix(int x, int y, int w, int h, int dir, int step)
Again there are two possibilities. One is used with absolute pixel coordinates and values, and one uses relative coordinates and values between 0 and 1. x, y, w, and h define the pixel area that should be shifted. step defines how many pixels the content should be shifted into a given direction, specified by dir. For dir the SHIFT_ direction values are allowed. If the value of dir is invalid, the default direction SHIFT_TOP will be used. The following script fills the matrix with yellow and draws a red cross onto it during initialization. During the rendering the content of the whole matrix is shifted downwards. Hence, the cross is moving to the bottom of the matrix. You can simply copy and paste it. void InitEffect() { color colbg ={255,255}; color col ={255}; Clear(colbg); DrawVectorCross(col,0.0,0.0,1.0,1.0); }
void RenderEffect() { ShiftPixelMatrix(0,0,GetMatrixWidth(),GetMatrixHeight(),SHIFT_DOWN,1); }
The script also demonstrates an important behavior of the function. As one can see, the matrix remains yellow, but the cross moves to the bottom. Furthermore, red lines will be drawn on the left and right side. This is due to the fact that the Shift function copies the complete content of the matrix and redraws this picture on the new position. While the the content is moeved into the given direction, the original matrix is left unchanged. This leaves the first pixel "line" unchanged in our example.
|