bUu      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (c) 2013 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNone(c) 2011-2014 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNone(c) 2011-2014 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNone<=DR      (c) 2014 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNone!"%&I$@hashmap: key = UUID, value = (original size, view size, surface)* !"#$%&'()*+,-./0123456789:;<=>?@A( !"#$%&'()*+,-./0123456789:;<=>?*56/01234A-.()*+,@&'%$!"# 789:;<=>? !"#$%&'()*+,-./0123456789:;<=>?@A(c) 2011-2013 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNone2LMNOPQRSTUVWXYZ[\]^_`abLMNOPQRSTUVWXYZ[\]^_`abXYZUVWRSTQP[\]^OLMN_`abLMNOPQRSTUVWXYZ[\]^_`abZ6(c) 2011-2013 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNoneIhFhit test of whether a point in a bbox previously, hitTestBBoxPoint i'hit test of whether two lines intersectjpreviously, hitTestLineStrokekODo two bounding boxes intersect with each other? previously, hitTestBBoxBBoxlJis the second bbox inside the first bbox? previously, hitTestInsideBBoxnEhighlight strokes filtered by a condition. previously mkHitTestALq1only check if a line and bbox of item overlapped hpoint iline1line2 jkl1st bbox 2nd bbox mhit test conditionstrokes to test nhit test conditionstrokes to test otest bounding box items to testpqline  items to testrstuvhijklmnopqrstuvhijklmnopqrstuvhijklmnopqrstuv(c) 2011-2014 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNonewxyz{|}~wxyz{|}~|}~wxyz{wxyz{|}~(c) 2011-2015 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNone9;\normal rendering data struture for hoodle container for page is IntMap page is RPagenormal rendering data structure for page background is RBackground and container for layer is IntMap and layer is RLayer normal rendering data structure for layer, R for rendering buffer is Surface, container for item = list and StrokeBBox as contained items&project to simple Layer out of RLayer #project to simple Page out of RPage(project to simple Hoodle out of RHoodle   (c) 2011-2013 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNoneDR (c) 2011-2014 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNone<=DQRq  !"#$%&'()*+,-./0123456789:;<=>?wxyz{|}~ (c) 2011-2014 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNone (c) 2011-2015 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNone<=DQRconstruct renderable item 6get embedded png image. If not, just give me nothing. read JPG file using GD library and create cairo image surface currently, this uses temporary png file (which is potentially dangerous) (c) 2011-2014 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNonerender items highlighted  (c) 2011-2015 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNonedraw ruling all draw ruling in bbox )render background without any constraint  this has some bugs. need to fix For simple hoodle background  page number (c) 2011-2015 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNone!"LT render stroke %render image : not fully implemented  render svg  render svg  render item  renderLayerbackground drawing in bbox -render RLayer within BBox after hittest items!Background rendering using buffer(c) 2014, 2015 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNone7main pdf renderer engine. need to be in a single threadgeneric renderer engine(c) 2011-2015 Ian-Woo KimBSD3!Ian-Woo Kim <ianwookim@gmail.com> experimentalGHCNone9:;DLRtemporary util  !"#$%&'()*++,-./01234567789:;<==>?@ABCDDEFGHIJKLMNOPQRSTUVWXYZZ[\]^__`aabcdefghijklmnopqrstuvwxyz{|}~          (hoodle-render-0.6-H13cBF9PKorCDWdEDsCA0mHoodle.Util.ProcessGraphics.Hoodle.Render.Util Graphics.Hoodle.Render.Type.Item$Graphics.Hoodle.Render.Type.Renderer#Graphics.Hoodle.Render.Type.HitTest#Graphics.Hoodle.Render.Util.HitTest&Graphics.Hoodle.Render.Type.Background"Graphics.Hoodle.Render.Type.Hoodle"Graphics.Hoodle.Render.Type.Select Graphics.Hoodle.Render.PrimitiveGraphics.Hoodle.Render.Item Graphics.Hoodle.Render.Highlight!Graphics.Hoodle.Render.BackgroundGraphics.Hoodle.RenderGraphics.Hoodle.Render.EngineGraphics.Hoodle.Render.GenericGraphics.Hoodle.Render.Type checkPipe mkTmpFileNameexistThenRemove pipeActionpipeActionWithclipBBox clearBBoxRItem RItemStroke RItemImageRItemSVG RItemLink RItemAnchor isStrkInRItem isImgInRItem isSVGInRItem isLinkInRItemisAnchorInRItemfindStrkInRItemfindImgInRItemfindSVGInRItem rItem2Item $fShowRItem$fGetBBoxableRItemRenderer RendererStaterendererHandlerrendererPDFCmdQrendererGenCmdQ rendererCacheGenCommandQueuePDFCommandQueue RendererEvent SurfaceUpdateFinishCommandFor RenderCacheCanvasId SurfaceID GenCommand BkgSmplScaled LayerInit LayerRedraw LayerScaled GenCommandID PDFCommandGetDocFromFileGetDocFromDataURIGetPageFromDoc GetNPagesRenderPageScaled PDFCommandIDgetRenderCacheissuePDFCommandIDissueGenCommandIDissueSurfaceIDsendPDFCommand isRemovedsendGenCommand surfaceID isRemovedGen$fShowGenCommand$fShowPDFCommand$fShowPDFCommandID$fEqPDFCommandID$fOrdPDFCommandID$fShowGenCommandID$fEqGenCommandID$fOrdGenCommandID$fShowSurfaceID $fEqSurfaceID$fOrdSurfaceID$fHashableSurfaceIDTEitherAlterHittedunTEitherAlterHitted TAlterHitted RItemHitted StrokeHittedHittedunHitted NotHitted unNotHitted AlterListEmpty:-fmapALgetAgetB interleave takeHitted isAnyHittedtakeFirstFromHittedtakeLastFromHitted$fShowAlterList$fShowNotHitted$fFunctorNotHitted $fShowHitted$fFunctorHitted isPointInBBoxdo2LinesIntersectdoesLineHitStrkdo2BBoxIntersectisBBox2InBBox1hltFilteredBy_StateT hltFilteredByhltHittedByBBoxhltEmbeddedByBBoxhltHittedByLineRoughhltItmsHittedByLine_StateT%hltItmsHittedByLineFrmSelected_StateT elimHittedmerge getTotalBBoxRBkgOpt RBkgDrawPDF RBkgDrawWhiteRBkgDrawBufferRBkgDrawPDFInBBox RBackgroundRBkgSmplRBkgPDF RBkgEmbedPDF rbkg_color rbkg_stylerbkg_surfaceid rbkg_domain rbkg_filename rbkg_pagenorbkg_popplerpageContext ctxt_domain ctxt_filenamectxt_docctxt_embeddeddoc isRBkgSmplrbkg2Bkg$fShowRBackground InBBoxBkgBufunInBBoxBkgBuf InBBoxOptionInBBoxunInBBoxRHoodleRPageRLayerLyBufunLyBuf emptyRLayer rLayer2Layer rPage2PagerHoodle2Hoodle $fShowGHoodleHHoodleHPageHLayerHLayersHLayersFhlyrt_selectedLayerhlyrt_otherLayersBufOfItmOfSLayerF selectedLayer otherLayers hLayer2RLayer hPage2RPagemkHPagedrawStrokeCurvedrawVWStrokeCurve cnstrctRItemgetByteStringIfEmbeddedPNGgetJPGandCreateSurfacesaveTempPNGToCreateSurfacerenderStrkHltdrenderRItemHltd renderHltBBoxpopplerGetDocFromFilegetByteStringIfEmbeddedPDFpopplerGetDocFromDataURIpopplerGetPageFromDoc drawRulingdrawRuling_InBBox renderBkgcnstrctRBkg_StateTrenderBackground_StateT Xform4Pagetransxtransyscalexscaley renderStrk renderImg renderItem renderLayer renderPage renderRBkg renderRItemrenderRBkg_InBBoxrenderRLayer_InBBoxrenderRBkg_BufrenderRLayer_InBBoxBufupdateLayerBuf updatePageBufupdateHoodleBufcnstrctRHoodlecnstrctRPage_StateT cnstrctRLayerrenderPage_StateTinitRenderContext$fShowXform4PagepdfRendererMaingenRendererMaintransparentClearStrokeBBoxOptionDrawFull DrawBoxOnlyRenderOptionable RenderOptioncairoRenderOption Renderable cairoRenderpassargpassarg1const2cairoOptionPage$fRenderOptionable(,)$fRenderOptionable(,)0$fRenderOptionable(,)1$fRenderOptionableInBBox$fRenderOptionable(,,)$fRenderOptionable(,,)0$fRenderOptionableBBoxed$fRenderOptionableStroke$fRenderOptionable(,)2$fRenderable(,,)$fRenderableBBoxed$fRenderableStroke$fRenderable(,) renderSVG renderLink renderAnchordrawFallBackBkg adjustScale pdfWorker genWorker