|
|
@@ -338,8 +338,13 @@ namespace matrix_transform
|
|
|
if(!(delta.x > T(0) && delta.y > T(0)))
|
|
|
return Result; // Error
|
|
|
|
|
|
+ detail::tvec3<T> Temp(
|
|
|
+ (T(viewport[2]) - T(2) * (center.x - T(viewport[0]))) / delta.x,
|
|
|
+ (T(viewport[3]) - T(2) * (center.y - T(viewport[1]))) / delta.y,
|
|
|
+ T(0));
|
|
|
+
|
|
|
// Translate and scale the picked region to the entire window
|
|
|
- Result = translate(Result, (T(viewport[2]) - T(2) * (center.x - T(viewport[0]))) / delta.x, (T(viewport[3]) - T(2) * (center.y - T(viewport[1]))) / delta.y, T(0));
|
|
|
+ Result = translate(Result, Temp);
|
|
|
return scale(Result, T(viewport[2]) / delta.x, T(viewport[3]) / delta.y, T(1));
|
|
|
}
|
|
|
|