Lines Matching refs:mpImplPolygon

354 	if ( mpImplPolygon->mnRefCount != 1 )  in ImplMakeUnique()
356 if ( mpImplPolygon->mnRefCount ) in ImplMakeUnique()
357 mpImplPolygon->mnRefCount--; in ImplMakeUnique()
358 mpImplPolygon = new ImplPolygon( *mpImplPolygon ); in ImplMakeUnique()
375 mpImplPolygon = (ImplPolygon*)(&aStaticImplPolygon); in Polygon()
385 mpImplPolygon = new ImplPolygon( nSize ); in Polygon()
387 mpImplPolygon = (ImplPolygon*)(&aStaticImplPolygon); in Polygon()
397 mpImplPolygon = new ImplPolygon( nPoints, pPtAry, pFlagAry ); in Polygon()
399 mpImplPolygon = (ImplPolygon*)(&aStaticImplPolygon); in Polygon()
408 DBG_ASSERT( rPoly.mpImplPolygon->mnRefCount < 0xFFFFFFFE, "Polygon: RefCount overflow" ); in Polygon()
410 mpImplPolygon = rPoly.mpImplPolygon; in Polygon()
411 if ( mpImplPolygon->mnRefCount ) in Polygon()
412 mpImplPolygon->mnRefCount++; in Polygon()
422 mpImplPolygon = (ImplPolygon*)(&aStaticImplPolygon); in Polygon()
425 mpImplPolygon = new ImplPolygon( 5 ); in Polygon()
426 mpImplPolygon->mpPointAry[0] = rRect.TopLeft(); in Polygon()
427 mpImplPolygon->mpPointAry[1] = rRect.TopRight(); in Polygon()
428 mpImplPolygon->mpPointAry[2] = rRect.BottomRight(); in Polygon()
429 mpImplPolygon->mpPointAry[3] = rRect.BottomLeft(); in Polygon()
430 mpImplPolygon->mpPointAry[4] = rRect.TopLeft(); in Polygon()
441 mpImplPolygon = (ImplPolygon*)(&aStaticImplPolygon); in Polygon()
452 mpImplPolygon = new ImplPolygon( 5 ); in Polygon()
453 mpImplPolygon->mpPointAry[0] = aRect.TopLeft(); in Polygon()
454 mpImplPolygon->mpPointAry[1] = aRect.TopRight(); in Polygon()
455 mpImplPolygon->mpPointAry[2] = aRect.BottomRight(); in Polygon()
456 mpImplPolygon->mpPointAry[3] = aRect.BottomLeft(); in Polygon()
457 mpImplPolygon->mpPointAry[4] = aRect.TopLeft(); in Polygon()
468 mpImplPolygon = new ImplPolygon( pEllipsePoly->GetSize() + 1 ); in Polygon()
471 Point* pDstAry = mpImplPolygon->mpPointAry; in Polygon()
512 mpImplPolygon = new ImplPolygon( nPoints = (nPoints + 3) & ~3 ); in Polygon()
526 pPt = &(mpImplPolygon->mpPointAry[i]); in Polygon()
529 pPt = &(mpImplPolygon->mpPointAry[nPoints2-i-1]); in Polygon()
532 pPt = &(mpImplPolygon->mpPointAry[i+nPoints2]); in Polygon()
535 pPt = &(mpImplPolygon->mpPointAry[nPoints-i-1]); in Polygon()
541 mpImplPolygon = (ImplPolygon*)(&aStaticImplPolygon); in Polygon()
596 mpImplPolygon = new ImplPolygon( nPoints + 2 ); in Polygon()
597 mpImplPolygon->mpPointAry[ 0 ] = aCenter2; in Polygon()
598 mpImplPolygon->mpPointAry[ nEnd ] = aCenter2; in Polygon()
602 mpImplPolygon = new ImplPolygon( ( POLY_CHORD == eStyle ) ? ( nPoints + 1 ) : nPoints ); in Polygon()
609 Point& rPt = mpImplPolygon->mpPointAry[ nStart ]; in Polygon()
616 mpImplPolygon->mpPointAry[ nPoints ] = mpImplPolygon->mpPointAry[ 0 ]; in Polygon()
619 mpImplPolygon = (ImplPolygon*) &aStaticImplPolygon; in Polygon()
644 mpImplPolygon = new ImplPolygon( nPoints ); in Polygon()
648 Point& rPt = mpImplPolygon->mpPointAry[ i ]; in Polygon()
667 if ( mpImplPolygon->mnRefCount ) in ~Polygon()
669 if ( mpImplPolygon->mnRefCount > 1 ) in ~Polygon()
670 mpImplPolygon->mnRefCount--; in ~Polygon()
672 delete mpImplPolygon; in ~Polygon()
683 return (Point*)mpImplPolygon->mpPointAry; in ImplGetPointAry()
693 mpImplPolygon->ImplCreateFlagArray(); in ImplGetFlagAry()
694 return mpImplPolygon->mpFlagAry; in ImplGetFlagAry()
702 return (Point*)mpImplPolygon->mpPointAry; in GetConstPointAry()
710 return mpImplPolygon->mpFlagAry; in GetConstFlagAry()
718 DBG_ASSERT( nPos < mpImplPolygon->mnPoints, in SetPoint()
722 mpImplPolygon->mpPointAry[nPos] = rPt; in SetPoint()
730 DBG_ASSERT( nPos < mpImplPolygon->mnPoints, in SetFlags()
735 if ( mpImplPolygon || ( eFlags != POLY_NORMAL ) ) in SetFlags()
738 mpImplPolygon->ImplCreateFlagArray(); in SetFlags()
739 mpImplPolygon->mpFlagAry[ nPos ] = (sal_uInt8) eFlags; in SetFlags()
748 DBG_ASSERT( nPos < mpImplPolygon->mnPoints, in GetPoint()
751 return mpImplPolygon->mpPointAry[nPos]; in GetPoint()
759 DBG_ASSERT( nPos < mpImplPolygon->mnPoints, in GetFlags()
761 return( mpImplPolygon->mpFlagAry ? in GetFlags()
762 (PolyFlags) mpImplPolygon->mpFlagAry[ nPos ] : in GetFlags()
770 return mpImplPolygon->mpFlagAry != NULL; in HasFlags()
778 DBG_ASSERT( nPos < mpImplPolygon->mnPoints, in IsControl()
780 PolyFlags eFlags = mpImplPolygon->mpFlagAry ? in IsControl()
781 (PolyFlags) mpImplPolygon->mpFlagAry[ nPos ] : POLY_NORMAL; in IsControl()
791 DBG_ASSERT( nPos < mpImplPolygon->mnPoints, in IsSmooth()
793 PolyFlags eFlags = mpImplPolygon->mpFlagAry ? in IsSmooth()
794 (PolyFlags) mpImplPolygon->mpFlagAry[ nPos ] : POLY_NORMAL; in IsSmooth()
804 if ( mpImplPolygon->mpFlagAry == NULL ) in IsRect()
806 …if ( ( ( mpImplPolygon->mnPoints == 5 ) && ( mpImplPolygon->mpPointAry[ 0 ] == mpImplPolygon->mpPo… in IsRect()
807 ( mpImplPolygon->mnPoints == 4 ) ) in IsRect()
809 if ( ( mpImplPolygon->mpPointAry[ 0 ].X() == mpImplPolygon->mpPointAry[ 3 ].X() ) && in IsRect()
810 ( mpImplPolygon->mpPointAry[ 0 ].Y() == mpImplPolygon->mpPointAry[ 1 ].Y() ) && in IsRect()
811 ( mpImplPolygon->mpPointAry[ 1 ].X() == mpImplPolygon->mpPointAry[ 2 ].X() ) && in IsRect()
812 ( mpImplPolygon->mpPointAry[ 2 ].Y() == mpImplPolygon->mpPointAry[ 3 ].Y() ) ) in IsRect()
825 if( nNewSize != mpImplPolygon->mnPoints ) in SetSize()
828 mpImplPolygon->ImplSetSize( nNewSize ); in SetSize()
838 return mpImplPolygon->mnPoints; in GetSize()
847 if ( mpImplPolygon->mnRefCount ) in Clear()
849 if ( mpImplPolygon->mnRefCount > 1 ) in Clear()
850 mpImplPolygon->mnRefCount--; in Clear()
852 delete mpImplPolygon; in Clear()
855 mpImplPolygon = (ImplPolygon*)(&aStaticImplPolygon); in Clear()
862 DBG_ASSERT( nP1 < mpImplPolygon->mnPoints, in CalcDistance()
864 DBG_ASSERT( nP2 < mpImplPolygon->mnPoints, in CalcDistance()
867 const Point& rP1 = mpImplPolygon->mpPointAry[ nP1 ]; in CalcDistance()
868 const Point& rP2 = mpImplPolygon->mpPointAry[ nP2 ]; in CalcDistance()
880 DBG_ASSERT( !mpImplPolygon->mpFlagAry, "Optimizing could fail with beziers!" ); in Optimize()
882 sal_uInt16 nSize = mpImplPolygon->mnPoints; in Optimize()
898 const Point& rFirst = mpImplPolygon->mpPointAry[ 0 ]; in Optimize()
906 while( nSize && ( mpImplPolygon->mpPointAry[ nSize - 1 ] == rFirst ) ) in Optimize()
918 if( ( mpImplPolygon->mpPointAry[ i ] != mpImplPolygon->mpPointAry[ nLast ] ) && in Optimize()
921 aNewPoly[ nNewCount++ ] = mpImplPolygon->mpPointAry[ nLast = i ]; in Optimize()
934 nSize = mpImplPolygon->mnPoints; in Optimize()
939 ( mpImplPolygon->mpPointAry[ 0 ] != mpImplPolygon->mpPointAry[ nSize - 1 ] ) ) in Optimize()
941 SetSize( mpImplPolygon->mnPoints + 1 ); in Optimize()
942 mpImplPolygon->mpPointAry[ mpImplPolygon->mnPoints - 1 ] = mpImplPolygon->mpPointAry[ 0 ]; in Optimize()
945 ( mpImplPolygon->mpPointAry[ 0 ] == mpImplPolygon->mpPointAry[ nSize - 1 ] ) ) in Optimize()
947 const Point& rFirst = mpImplPolygon->mpPointAry[ 0 ]; in Optimize()
949 while( nSize && ( mpImplPolygon->mpPointAry[ nSize - 1 ] == rFirst ) ) in Optimize()
1044 if( !mpImplPolygon->mpFlagAry ) in AdaptiveSubdivide()
1060 sal_uInt8 P1( mpImplPolygon->mpFlagAry[ i ] ); in AdaptiveSubdivide()
1061 sal_uInt8 P4( mpImplPolygon->mpFlagAry[ i + 3 ] ); in AdaptiveSubdivide()
1064 ( POLY_CONTROL == mpImplPolygon->mpFlagAry[ i + 1 ] ) && in AdaptiveSubdivide()
1065 ( POLY_CONTROL == mpImplPolygon->mpFlagAry[ i + 2 ] ) && in AdaptiveSubdivide()
1069mpImplPolygon->mpPointAry[ i ].X(), mpImplPolygon->mpPointAry[ i ].Y(), in AdaptiveSubdivide()
1070mpImplPolygon->mpPointAry[ i+1 ].X(), mpImplPolygon->mpPointAry[ i+1 ].Y(), in AdaptiveSubdivide()
1071mpImplPolygon->mpPointAry[ i+2 ].X(), mpImplPolygon->mpPointAry[ i+2 ].Y(), in AdaptiveSubdivide()
1072mpImplPolygon->mpPointAry[ i+3 ].X(), mpImplPolygon->mpPointAry[ i+3 ].Y() ); in AdaptiveSubdivide()
1078 *aPointIter++ = mpImplPolygon->mpPointAry[ i++ ]; in AdaptiveSubdivide()
1096 ::std::copy(aPoints.begin(), aPoints.end(), rResult.mpImplPolygon->mpPointAry); in AdaptiveSubdivide()
1246 sal_uInt16 nCount = mpImplPolygon->mnPoints; in Move()
1249 Point* pPt = &(mpImplPolygon->mpPointAry[i]); in Move()
1262 for ( sal_uInt16 i = 0, nCount = mpImplPolygon->mnPoints; i < nCount; i++ ) in Translate()
1263 mpImplPolygon->mpPointAry[ i ] += rTrans; in Translate()
1273 for ( sal_uInt16 i = 0, nCount = mpImplPolygon->mnPoints; i < nCount; i++ ) in Scale()
1275 Point& rPnt = mpImplPolygon->mpPointAry[i]; in Scale()
1306 for( sal_uInt16 i = 0, nCount = mpImplPolygon->mnPoints; i < nCount; i++ ) in Rotate()
1308 Point& rPt = mpImplPolygon->mpPointAry[ i ]; in Rotate()
1324 for( sal_uInt16 i = 0, nCount = mpImplPolygon->mnPoints; i < nCount; i++ ) in SlantX()
1326 Point& rPnt = mpImplPolygon->mpPointAry[ i ]; in SlantX()
1341 for( sal_uInt16 i = 0, nCount = mpImplPolygon->mnPoints; i < nCount; i++ ) in SlantY()
1343 Point& rPnt = mpImplPolygon->mpPointAry[ i ]; in SlantY()
1369 DBG_ASSERT( rDistortedRect.mpImplPolygon->mnPoints >= 4, "Distort rect too small!" ); in Distort()
1380 for( sal_uInt16 i = 0, nCount = mpImplPolygon->mnPoints; i < nCount; i++ ) in Distort()
1382 Point& rPnt = mpImplPolygon->mpPointAry[ i ]; in Distort()
1598 sal_uInt16 nSourceSize = mpImplPolygon->mnPoints; in Clip()
1606 aVertFilter.Input( mpImplPolygon->mpPointAry[i] ); in Clip()
1614 if ( mpImplPolygon->mnRefCount ) in Clip()
1616 if ( mpImplPolygon->mnRefCount > 1 ) in Clip()
1617 mpImplPolygon->mnRefCount--; in Clip()
1619 delete mpImplPolygon; in Clip()
1621 mpImplPolygon = aPolygon.mpPoly; in Clip()
1640 sal_uInt16 nCount = mpImplPolygon->mnPoints; in GetBoundRect()
1646 const Point* pPt = &(mpImplPolygon->mpPointAry[0]); in GetBoundRect()
1652 pPt = &(mpImplPolygon->mpPointAry[i]); in GetBoundRect()
1680 DBG_ASSERT( !mpImplPolygon->mpFlagAry, "GetArea could fail with beziers!" ); in GetSignedArea()
1684 if( mpImplPolygon->mnPoints > 2 ) in GetSignedArea()
1686 const sal_uInt16 nCount1 = mpImplPolygon->mnPoints - 1; in GetSignedArea()
1690 const Point& rPt = mpImplPolygon->mpPointAry[ i ]; in GetSignedArea()
1691 const Point& rPt1 = mpImplPolygon->mpPointAry[ ++i ]; in GetSignedArea()
1695 const Point& rPt = mpImplPolygon->mpPointAry[ nCount1 ]; in GetSignedArea()
1696 const Point& rPt0 = mpImplPolygon->mpPointAry[ 0 ]; in GetSignedArea()
1708 DBG_ASSERT( !mpImplPolygon->mpFlagAry, "IsInside could fail with beziers!" ); in IsInside()
1712 sal_uInt16 nCount = mpImplPolygon->mnPoints; in IsInside()
1717 Point aPt1( mpImplPolygon->mpPointAry[ 0 ] ); in IsInside()
1721 while ( ( aPt1 == mpImplPolygon->mpPointAry[ nCount - 1 ] ) && ( nCount > 3 ) ) in IsInside()
1726 const Point& rPt2 = mpImplPolygon->mpPointAry[ ( i < nCount ) ? i : 0 ]; in IsInside()
1770 if( nPos >= mpImplPolygon->mnPoints ) in Insert()
1771 nPos = mpImplPolygon->mnPoints; in Insert()
1773 mpImplPolygon->ImplSplit( nPos, 1 ); in Insert()
1774 mpImplPolygon->mpPointAry[ nPos ] = rPt; in Insert()
1778 mpImplPolygon->ImplCreateFlagArray(); in Insert()
1779 mpImplPolygon->mpFlagAry[ nPos ] = (sal_uInt8) eFlags; in Insert()
1788 const sal_uInt16 nInsertCount = rPoly.mpImplPolygon->mnPoints; in Insert()
1794 if( nPos >= mpImplPolygon->mnPoints ) in Insert()
1795 nPos = mpImplPolygon->mnPoints; in Insert()
1797 if( rPoly.mpImplPolygon->mpFlagAry ) in Insert()
1798 mpImplPolygon->ImplCreateFlagArray(); in Insert()
1800 mpImplPolygon->ImplSplit( nPos, nInsertCount, rPoly.mpImplPolygon ); in Insert()
1809 if( nCount && ( nPos < mpImplPolygon->mnPoints ) ) in Remove()
1812 mpImplPolygon->ImplRemove( nPos, nCount ); in Remove()
1821 DBG_ASSERT( nPos < mpImplPolygon->mnPoints, "Polygon::[]: nPos >= nPoints" ); in operator []()
1824 return mpImplPolygon->mpPointAry[nPos]; in operator []()
1833 DBG_ASSERT( rPoly.mpImplPolygon->mnRefCount < 0xFFFFFFFE, "Polygon: RefCount overflow" ); in operator =()
1837 if ( rPoly.mpImplPolygon->mnRefCount ) in operator =()
1838 rPoly.mpImplPolygon->mnRefCount++; in operator =()
1842 if ( mpImplPolygon->mnRefCount ) in operator =()
1844 if ( mpImplPolygon->mnRefCount > 1 ) in operator =()
1845 mpImplPolygon->mnRefCount--; in operator =()
1847 delete mpImplPolygon; in operator =()
1850 mpImplPolygon = rPoly.mpImplPolygon; in operator =()
1861 if ( (rPoly.mpImplPolygon == mpImplPolygon) ) in operator ==()
1909 if ( rPoly.mpImplPolygon->mnRefCount != 1 ) in operator >>()
1911 if ( rPoly.mpImplPolygon->mnRefCount ) in operator >>()
1912 rPoly.mpImplPolygon->mnRefCount--; in operator >>()
1913 rPoly.mpImplPolygon = new ImplPolygon( nPoints ); in operator >>()
1916 rPoly.mpImplPolygon->ImplSetSize( nPoints, sal_False ); in operator >>()
1931 rPoly.mpImplPolygon->mpPointAry[i].X() = nShortX; in operator >>()
1932 rPoly.mpImplPolygon->mpPointAry[i].Y() = nShortY; in operator >>()
1940 rPoly.mpImplPolygon->mpPointAry[i].X() = nLongX; in operator >>()
1941 rPoly.mpImplPolygon->mpPointAry[i].Y() = nLongY; in operator >>()
1961 rIStream >> rPoly.mpImplPolygon->mpPointAry[i].X() in operator >>()
1962 >> rPoly.mpImplPolygon->mpPointAry[i].Y(); in operator >>()
1966 rIStream.Read( rPoly.mpImplPolygon->mpPointAry, nPoints*sizeof(Point) ); in operator >>()
1997 if ( ((rPoly.mpImplPolygon->mpPointAry[nStart].X() >= SHRT_MIN) && in operator <<()
1998 (rPoly.mpImplPolygon->mpPointAry[nStart].X() <= SHRT_MAX)) && in operator <<()
1999 ((rPoly.mpImplPolygon->mpPointAry[nStart].Y() >= SHRT_MIN) && in operator <<()
2000 (rPoly.mpImplPolygon->mpPointAry[nStart].Y() <= SHRT_MAX)) ) in operator <<()
2007 if ( ((rPoly.mpImplPolygon->mpPointAry[nStart].X() >= SHRT_MIN) && in operator <<()
2008 (rPoly.mpImplPolygon->mpPointAry[nStart].X() <= SHRT_MAX)) && in operator <<()
2009 ((rPoly.mpImplPolygon->mpPointAry[nStart].Y() >= SHRT_MIN) && in operator <<()
2010 (rPoly.mpImplPolygon->mpPointAry[nStart].Y() <= SHRT_MAX)) ) in operator <<()
2032 rOStream << (short)rPoly.mpImplPolygon->mpPointAry[nStart].X() in operator <<()
2033 << (short)rPoly.mpImplPolygon->mpPointAry[nStart].Y(); in operator <<()
2040 rOStream << rPoly.mpImplPolygon->mpPointAry[nStart].X() in operator <<()
2041 << rPoly.mpImplPolygon->mpPointAry[nStart].Y(); in operator <<()
2061 rOStream << rPoly.mpImplPolygon->mpPointAry[i].X() in operator <<()
2062 << rPoly.mpImplPolygon->mpPointAry[i].Y(); in operator <<()
2068 rOStream.Write( rPoly.mpImplPolygon->mpPointAry, nPoints*sizeof(Point) ); in operator <<()
2086 mpImplPolygon->mpFlagAry = new sal_uInt8[ mpImplPolygon->mnPoints ]; in ImplRead()
2087 rIStream.Read( mpImplPolygon->mpFlagAry, mpImplPolygon->mnPoints ); in ImplRead()
2104 sal_uInt8 bHasPolyFlags = mpImplPolygon->mpFlagAry != NULL; in ImplWrite()
2109 rOStream.Write( mpImplPolygon->mpFlagAry, mpImplPolygon->mnPoints ); in ImplWrite()
2185 const sal_uInt16 nCount(mpImplPolygon->mnPoints); in getB2DPolygon()
2189 if(mpImplPolygon->mpFlagAry) in getB2DPolygon()
2192 const Point aStartPoint(mpImplPolygon->mpPointAry[0]); in getB2DPolygon()
2193 sal_uInt8 nPointFlag(mpImplPolygon->mpFlagAry[0]); in getB2DPolygon()
2202 if(POLY_CONTROL == mpImplPolygon->mpFlagAry[a]) in getB2DPolygon()
2204 aControlA = mpImplPolygon->mpPointAry[a++]; in getB2DPolygon()
2208 if(a < nCount && POLY_CONTROL == mpImplPolygon->mpFlagAry[a]) in getB2DPolygon()
2210 aControlB = mpImplPolygon->mpPointAry[a++]; in getB2DPolygon()
2219 const Point aEndPoint(mpImplPolygon->mpPointAry[a]); in getB2DPolygon()
2237 nPointFlag = mpImplPolygon->mpFlagAry[a++]; in getB2DPolygon()
2248 impCorrectContinuity(aRetval, 0, mpImplPolygon->mpFlagAry[0]); in getB2DPolygon()
2257 const Point aPoint(mpImplPolygon->mpPointAry[a]); in getB2DPolygon()
2277 : mpImplPolygon(0) in Polygon()
2301 mpImplPolygon = new ImplPolygon(static_cast< sal_uInt16 >(nMaxTargetCount), true); in Polygon()
2313 mpImplPolygon->mpPointAry[nStartPointIndex] = aStartPoint; in Polygon()
2314 mpImplPolygon->mpFlagAry[nStartPointIndex] = (sal_uInt8)POLY_NORMAL; in Polygon()
2326mpImplPolygon->mpPointAry[nArrayInsert] = Point(FRound(aBezier.getControlPointA().getX()), FRound(… in Polygon()
2327 mpImplPolygon->mpFlagAry[nArrayInsert] = (sal_uInt8)POLY_CONTROL; in Polygon()
2330mpImplPolygon->mpPointAry[nArrayInsert] = Point(FRound(aBezier.getControlPointB().getX()), FRound(… in Polygon()
2331 mpImplPolygon->mpFlagAry[nArrayInsert] = (sal_uInt8)POLY_CONTROL; in Polygon()
2342 mpImplPolygon->mpFlagAry[nStartPointIndex] = (sal_uInt8)POLY_SMOOTH; in Polygon()
2346 mpImplPolygon->mpFlagAry[nStartPointIndex] = (sal_uInt8)POLY_SYMMTR; in Polygon()
2357 mpImplPolygon->mpPointAry[nArrayInsert] = mpImplPolygon->mpPointAry[0]; in Polygon()
2358 mpImplPolygon->mpFlagAry[nArrayInsert] = (sal_uInt8)POLY_NORMAL; in Polygon()
2366 mpImplPolygon->mpPointAry[nArrayInsert] = aEnd; in Polygon()
2367 mpImplPolygon->mpFlagAry[nArrayInsert] = (sal_uInt8)POLY_NORMAL; in Polygon()
2375 mpImplPolygon->ImplSetSize(static_cast< sal_uInt16 >(nArrayInsert), true); in Polygon()
2392 mpImplPolygon = new ImplPolygon( static_cast< sal_uInt16 >(nTargetCount) ); in Polygon()
2399 mpImplPolygon->mpPointAry[nIndex++] = aPoint; in Polygon()
2405 mpImplPolygon->mpPointAry[nIndex] = mpImplPolygon->mpPointAry[0]; in Polygon()
2410 if(!mpImplPolygon) in Polygon()
2413 mpImplPolygon = (ImplPolygon*)(&aStaticImplPolygon); in Polygon()