OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. | 2 * Copyright (C) 2012 Adobe Systems Incorporated. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above | 8 * 1. Redistributions of source code must retain the above |
9 * copyright notice, this list of conditions and the following | 9 * copyright notice, this list of conditions and the following |
10 * disclaimer. | 10 * disclaimer. |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
79 Basis m_basis; | 79 Basis m_basis; |
80 }; | 80 }; |
81 | 81 |
82 class PolygonShape FINAL : public Shape { | 82 class PolygonShape FINAL : public Shape { |
83 WTF_MAKE_NONCOPYABLE(PolygonShape); | 83 WTF_MAKE_NONCOPYABLE(PolygonShape); |
84 public: | 84 public: |
85 PolygonShape(PassOwnPtr<Vector<FloatPoint> > vertices, WindRule fillRule) | 85 PolygonShape(PassOwnPtr<Vector<FloatPoint> > vertices, WindRule fillRule) |
86 : Shape() | 86 : Shape() |
87 , m_polygon(vertices, fillRule) | 87 , m_polygon(vertices, fillRule) |
88 , m_marginBounds(nullptr) | 88 , m_marginBounds(nullptr) |
89 , m_paddingBounds(nullptr) | |
90 { | 89 { |
91 } | 90 } |
92 | 91 |
93 virtual LayoutRect shapeMarginLogicalBoundingBox() const OVERRIDE { return s
tatic_cast<LayoutRect>(shapeMarginBounds().boundingBox()); } | 92 virtual LayoutRect shapeMarginLogicalBoundingBox() const OVERRIDE { return s
tatic_cast<LayoutRect>(shapeMarginBounds().boundingBox()); } |
94 virtual LayoutRect shapePaddingLogicalBoundingBox() const OVERRIDE { return
static_cast<LayoutRect>(shapePaddingBounds().boundingBox()); } | |
95 virtual bool isEmpty() const OVERRIDE { return m_polygon.isEmpty(); } | 93 virtual bool isEmpty() const OVERRIDE { return m_polygon.isEmpty(); } |
96 virtual void getExcludedIntervals(LayoutUnit logicalTop, LayoutUnit logicalH
eight, SegmentList&) const OVERRIDE; | 94 virtual void getExcludedIntervals(LayoutUnit logicalTop, LayoutUnit logicalH
eight, SegmentList&) const OVERRIDE; |
97 virtual void getIncludedIntervals(LayoutUnit logicalTop, LayoutUnit logicalH
eight, SegmentList&) const OVERRIDE; | |
98 virtual bool firstIncludedIntervalLogicalTop(LayoutUnit minLogicalIntervalTo
p, const FloatSize& minLogicalIntervalSize, LayoutUnit&) const OVERRIDE; | |
99 | 95 |
100 private: | 96 private: |
101 const FloatPolygon& shapeMarginBounds() const; | 97 const FloatPolygon& shapeMarginBounds() const; |
102 const FloatPolygon& shapePaddingBounds() const; | |
103 | 98 |
104 FloatPolygon m_polygon; | 99 FloatPolygon m_polygon; |
105 mutable OwnPtr<FloatPolygon> m_marginBounds; | 100 mutable OwnPtr<FloatPolygon> m_marginBounds; |
106 mutable OwnPtr<FloatPolygon> m_paddingBounds; | |
107 }; | 101 }; |
108 | 102 |
109 } // namespace WebCore | 103 } // namespace WebCore |
110 | 104 |
111 #endif // PolygonShape_h | 105 #endif // PolygonShape_h |
OLD | NEW |