File indexing completed on 2024-05-12 15:39:16
0001 /* 0002 * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org> 0003 * 0004 * Redistribution and use in source and binary forms, with or without 0005 * modification, are permitted provided that the following conditions 0006 * are met: 0007 * 1. Redistributions of source code must retain the above copyright 0008 * notice, this list of conditions and the following disclaimer. 0009 * 2. Redistributions in binary form must reproduce the above copyright 0010 * notice, this list of conditions and the following disclaimer in the 0011 * documentation and/or other materials provided with the distribution. 0012 * 0013 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 0014 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 0015 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 0016 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 0017 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 0018 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 0019 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 0020 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 0021 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 0022 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 0023 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 0024 */ 0025 0026 #include "wtf/Platform.h" 0027 0028 #if ENABLE(SVG) 0029 #include "SVGResourceClipper.h" 0030 0031 /*#include "SVGRenderTreeAsText.h"*/ 0032 0033 namespace WebCore 0034 { 0035 0036 SVGResourceClipper::SVGResourceClipper() 0037 : SVGResource() 0038 { 0039 } 0040 0041 SVGResourceClipper::~SVGResourceClipper() 0042 { 0043 } 0044 0045 void SVGResourceClipper::resetClipData() 0046 { 0047 m_clipData.clear(); 0048 } 0049 0050 void SVGResourceClipper::addClipData(const Path &path, WindRule rule, bool bboxUnits) 0051 { 0052 m_clipData.addPath(path, rule, bboxUnits); 0053 } 0054 0055 const ClipDataList &SVGResourceClipper::clipData() const 0056 { 0057 return m_clipData; 0058 } 0059 0060 /*TextStream& SVGResourceClipper::externalRepresentation(TextStream& ts) const 0061 { 0062 ts << "[type=CLIPPER]"; 0063 ts << " [clip data=" << clipData().clipData() << "]"; 0064 return ts; 0065 } 0066 0067 TextStream& operator<<(TextStream& ts, WindRule rule) 0068 { 0069 switch (rule) { 0070 case RULE_NONZERO: 0071 ts << "NON-ZERO"; break; 0072 case RULE_EVENODD: 0073 ts << "EVEN-ODD"; break; 0074 } 0075 0076 return ts; 0077 } 0078 0079 TextStream& operator<<(TextStream& ts, const ClipData& d) 0080 { 0081 ts << "[winding=" << d.windRule << "]"; 0082 0083 if (d.bboxUnits) 0084 ts << " [bounding box mode=" << d.bboxUnits << "]"; 0085 0086 ts << " [path=" << d.path.debugString() << "]"; 0087 return ts; 0088 }*/ 0089 0090 SVGResourceClipper *getClipperById(Document *document, const AtomicString &id) 0091 { 0092 SVGResource *resource = getResourceById(document, id); 0093 if (resource && resource->isClipper()) { 0094 return static_cast<SVGResourceClipper *>(resource); 0095 } 0096 0097 return nullptr; 0098 } 0099 0100 } // namespace WebCore 0101 0102 #endif