module math.geometry.rectangle; import math.linear.vector; import math.linear.point; alias VecRect = PointVecRect; alias VRect = PointVecRect; alias Rect = PointVecRect; alias PVRect = PointVecRect; struct PointVecRect(T) { PVec2!T pos; alias point=pos; alias p=pos; Vec2!T offset; alias vector=offset; alias vec=offset; alias v=offset; } alias SizeRect = PointSizeRect; alias SRect = PointSizeRect; struct PointSizeRect(T) { PVec2!T pos; alias point=pos; alias p=pos; Vec2!T size; alias vector=size; alias vec=size; alias v=size; PointVecRect pointVecRect() { return cast(PointVecRect) this; } alias pointVecRect this; } alias PointRect = PointPointRect; alias PPRect = PointPointRect; struct PointPointRect(T) { PVec2!T pointA; alias a=pointA; PVec2!T pointB; alias b=pointB; } alias OrdPointPointRect = MinPointMaxPointRect; alias OrdPointRect = MinPointMaxPointRect; alias OrdPPRect = MinPointMaxPointRect; alias MinPMaxPRect = MinPointMaxPointRect; struct MinPointMaxPointRect(T) { PVec2!T minPoint; alias pointA=minPoint; alias a=minPoint; alias min=minPoint; PVec2!T maxPoint; alias pointB=maxPoint; alias b=maxPoint; alias max=maxPoint; PointPointRect pointPointRect() { return cast(PointPointRect) this; } alias pointPointRect this; }