auto transform = GetChannel()->mixer().get_image_transform(GetLayerIndex());\r
transform.set_image_translation(x, y);\r
transform.set_image_scale(x_s, y_s);\r
- transform.set_mask_translation(0.0, 0.0);\r
- transform.set_mask_scale(1.0, 1.0);\r
+ transform.set_mask_translation(x, y);\r
+ transform.set_mask_scale(x_s, y_s);\r
GetChannel()->mixer().set_image_transform(GetLayerIndex(), std::move(transform));\r
}\r
else if(_parameters[1] == L"CLIP_RECT")\r
transform.set_mask_scale(x_s, y_s);\r
GetChannel()->mixer().set_image_transform(GetLayerIndex(), std::move(transform));\r
}\r
+ else if(_parameters[1] == L"GRID")\r
+ {\r
+ int n = boost::lexical_cast<int>(_parameters.at(2));\r
+ double delta = 1.0/static_cast<double>(n);\r
+ for(int x = 0; x < n; ++x)\r
+ {\r
+ for(int y = 0; y < n; ++y)\r
+ {\r
+ int index = x+y*n;\r
+ auto transform = GetChannel()->mixer().get_image_transform(index); \r
+ transform.set_image_translation(x*delta, y*delta);\r
+ transform.set_image_scale(delta, delta); \r
+ transform.set_mask_translation(x*delta, y*delta);\r
+ transform.set_mask_scale(delta, delta);\r
+ GetChannel()->mixer().set_image_transform(index, std::move(transform));\r
+ }\r
+ }\r
+ }\r
else if(_parameters[1] == L"RESET")\r
{\r
GetChannel()->mixer().set_image_transform(GetLayerIndex(), image_transform());\r