Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Side by Side Diff: cc/layer_quad.h

Issue 12471007: Part 8 of cc/ directory shuffles: resources (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/layer_painter.h ('k') | cc/layer_quad.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5
6 #ifndef CC_LAYER_QUAD_H_
7 #define CC_LAYER_QUAD_H_
8
9 #include "base/basictypes.h"
10 #include "cc/base/cc_export.h"
11 #include "ui/gfx/point_f.h"
12
13 namespace gfx {
14 class QuadF;
15 }
16
17 static const float kAntiAliasingInflateDistance = 0.5f;
18
19 namespace cc {
20
21 class CC_EXPORT LayerQuad {
22 public:
23 class Edge {
24 public:
25 Edge() : x_(0), y_(0), z_(0) {}
26 Edge(gfx::PointF p, gfx::PointF q);
27
28 float x() const { return x_; }
29 float y() const { return y_; }
30 float z() const { return z_; }
31
32 void set_x(float x) { x_ = x; }
33 void set_y(float y) { y_ = y; }
34 void set_z(float z) { z_ = z; }
35 void set(float x, float y, float z) {
36 x_ = x;
37 y_ = y;
38 z_ = z;
39 }
40
41 void move_x(float dx) { x_ += dx; }
42 void move_y(float dy) { y_ += dy; }
43 void move_z(float dz) { z_ += dz; }
44 void move(float dx, float dy, float dz) {
45 x_ += dx;
46 y_ += dy;
47 z_ += dz;
48 }
49
50 void scale_x(float sx) { x_ *= sx; }
51 void scale_y(float sy) { y_ *= sy; }
52 void scale_z(float sz) { z_ *= sz; }
53 void scale(float sx, float sy, float sz) {
54 x_ *= sx;
55 y_ *= sy;
56 z_ *= sz;
57 }
58 void scale(float s) { scale(s, s, s); }
59
60 gfx::PointF Intersect(const Edge& e) const {
61 return gfx::PointF(
62 (y() * e.z() - e.y() * z()) / (x() * e.y() - e.x() * y()),
63 (x() * e.z() - e.x() * z()) / (e.x() * y() - x() * e.y()));
64 }
65
66 private:
67 float x_;
68 float y_;
69 float z_;
70 };
71
72 LayerQuad(const Edge& left,
73 const Edge& top,
74 const Edge& right,
75 const Edge& bottom);
76 LayerQuad(const gfx::QuadF& quad);
77
78 Edge left() const { return left_; }
79 Edge top() const { return top_; }
80 Edge right() const { return right_; }
81 Edge bottom() const { return bottom_; }
82
83 void InflateX(float dx) { left_.move_z(dx); right_.move_z(dx); }
84 void InflateY(float dy) { top_.move_z(dy); bottom_.move_z(dy); }
85 void Inflate(float d) { InflateX(d); InflateY(d); }
86 void InflateAntiAliasingDistance() {
87 Inflate(kAntiAliasingInflateDistance);
88 }
89
90 gfx::QuadF ToQuadF() const;
91
92 void ToFloatArray(float flattened[12]) const;
93
94 private:
95 Edge left_;
96 Edge top_;
97 Edge right_;
98 Edge bottom_;
99
100 DISALLOW_COPY_AND_ASSIGN(LayerQuad);
101 };
102
103 }
104
105 #endif // CC_LAYER_QUAD_H_
OLDNEW
« no previous file with comments | « cc/layer_painter.h ('k') | cc/layer_quad.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698