| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scaled vectors
These behave like similar methods for Rect/Point/Size.
Tests:
ui_unittests:Vector2dTest.Scale
ui_unittests:Vector3dTest.Scale
R=sky
BUG=160158
Review URL: https://codereview.chromium.org/11293193
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166993 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This class is composed of four points representing its corners. It does not
have to be axis-aligned, unlike a rectangle. The class supports the following
operations:
IsRectilinear()
- True if the quad is an axis-aligned rectangle.
IsCounterClockwise()
- True if the points of the quad are in counter-clockwise order.
Contains(Point)
- True if Point is inside the quad or on its boundary.
BoundingBox()
- A Rectangle whose edges are defined by the four points of the quad.
Scale()
- Scales each point on the quad by the given scale factors.
operator+/-
- Moves each point in the quad by the given offset.
The operations on this class are inspired by, but not copied from, the
FloatQuad class in WebCore. I've written my own implementation to match those
in WebCore for each of them, with exception of IsRectilinear() as I also
wrote the current method in WebCore.
Tests:
ui_unittests:QuadTest.Construction
ui_unittests:QuadTest.AddingVectors
ui_unittests:QuadTest.IsRectilinear
ui_unittests:QuadTest.IsCounterClockwise
ui_unittests:QuadTest.BoundingBox
ui_unittests:QuadTest.ContainsPoint
ui_unittests:QuadTest.Scale
BUG=147395
R=sky,pkasting
Review URL: https://codereview.chromium.org/11369043
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165689 0039d316-1c4b-4281-b951-d872f2087c98
|
|
Previously Point served two purposes, to be a position in 2d space, and also
an offset from the origin. This introduces a Vector2d class to represent an
offset, allowing typesafety checks for geometric operations.
The following are now the case:
Point +/- Vector = Point
- A point plus/minus an offset gives you a point at a position offset by the
vector.
Vector +/- Vector = Vector
- Two offsets can be added together to make a new offset.
Point - Point = Vector
- Subtracting one point from another gives you the offset between the two
points.
We add some new methods to perform these operations:
Rect::OffsetFromOrigin() gives the offset between the position of the rect
and the origin.
Point::OffsetFromOrigin() gives the offset between the point and the origin.
PointAtOffsetFromOrigin(Vector2d) converts a Vector2d to a Point at the given
offset away from the origin.
Rect::Offset(), Point::Add(), and Point::Subtract() now receive a Vector2d
instead of a point.
BUG=147395
R=sky
Review URL: https://codereview.chromium.org/11269022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165198 0039d316-1c4b-4281-b951-d872f2087c98
|