1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 // MARKER(update_precomp.py): autogen include statement, do not remove 25 #include "precompiled_drawinglayer.hxx" 26 27 #include <drawinglayer/primitive2d/pointarrayprimitive2d.hxx> 28 #include <drawinglayer/primitive2d/drawinglayer_primitivetypes2d.hxx> 29 30 ////////////////////////////////////////////////////////////////////////////// 31 32 using namespace com::sun::star; 33 34 ////////////////////////////////////////////////////////////////////////////// 35 36 namespace drawinglayer 37 { 38 namespace primitive2d 39 { PointArrayPrimitive2D(const std::vector<basegfx::B2DPoint> & rPositions,const basegfx::BColor & rRGBColor)40 PointArrayPrimitive2D::PointArrayPrimitive2D( 41 const std::vector< basegfx::B2DPoint >& rPositions, 42 const basegfx::BColor& rRGBColor) 43 : BasePrimitive2D(), 44 maPositions(rPositions), 45 maRGBColor(rRGBColor), 46 maB2DRange() 47 { 48 } 49 operator ==(const BasePrimitive2D & rPrimitive) const50 bool PointArrayPrimitive2D::operator==(const BasePrimitive2D& rPrimitive) const 51 { 52 if(BasePrimitive2D::operator==(rPrimitive)) 53 { 54 const PointArrayPrimitive2D& rCompare = (PointArrayPrimitive2D&)rPrimitive; 55 56 return (getPositions() == rCompare.getPositions() 57 && getRGBColor() == rCompare.getRGBColor()); 58 } 59 60 return false; 61 } 62 getB2DRange(const geometry::ViewInformation2D &) const63 basegfx::B2DRange PointArrayPrimitive2D::getB2DRange(const geometry::ViewInformation2D& /*rViewInformation*/) const 64 { 65 if(maB2DRange.isEmpty()) 66 { 67 basegfx::B2DRange aNewRange; 68 69 // get the basic range from the position vector 70 for(std::vector< basegfx::B2DPoint >::const_iterator aIter(getPositions().begin()); aIter != getPositions().end(); aIter++) 71 { 72 aNewRange.expand(*aIter); 73 } 74 75 // assign to buffered value 76 const_cast< PointArrayPrimitive2D* >(this)->maB2DRange = aNewRange; 77 } 78 79 return maB2DRange; 80 } 81 82 // provide unique ID 83 ImplPrimitrive2DIDBlock(PointArrayPrimitive2D, PRIMITIVE2D_ID_POINTARRAYPRIMITIVE2D) 84 85 } // end of namespace primitive2d 86 } // end of namespace drawinglayer 87 88 ////////////////////////////////////////////////////////////////////////////// 89 // eof 90