úÎJÀAS¥      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrs t u v w x y z { | } ~  € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž ‘ ’ “ ”•–—˜™š›œžŸ ¡¢£¤GHC experimental!Ian-Woo Kim <ianwookim@gmail.com> Safe-InferredGHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None ¥¦        ¥¦GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None !"#$%&'() !"#$%&'()"#$%&' !!!() !!!"#$%&'()GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None2+normal rendering data struture for hoodle ! container for page is IntMap  page is RPage 3*normal rendering data structure for page @ background is RBackground and container for layer is IntMap  and layer is RLayer 4;normal rendering data structure for layer, R for rendering 1 buffer is Surface, container for item = list % and StrokeBBox as contained items 8'project to simple Layer out of RLayer 9$project to simple Page out of RPage :)project to simple Hoodle out of RHoodle *+,-./0123456789:*+,-./0123456789:56432789:/01-.*+, *+,-./0123456789:GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None;<;<;<;<GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None=>?@ABCDEFGHIJKLMNOPQRS=>?@ABCDEFGHIJKLMNOPQRSIKJFGHCDEBALMNO@=>?PQRS=>?@ABCDEFGHIKJLMNOPQRSGHC experimental!Ian-Woo Kim <ianwookim@gmail.com>NoneT&hit test of whether a point in a bbox ! previously, hitTestBBoxPoint U(hit test of whether two lines intersect Vpreviously, hitTestLineStroke W1Do two bounding boxes intersect with each other?  previously, hitTestBBoxBBox X*is the second bbox inside the first bbox? ! previously, hitTestInsideBBox Z,highlight strokes filtered by a condition.  previously mkHitTestAL ]2only check if a line and bbox of item overlapped Tpoint Uline1 line2 VWX 1st bbox  2nd bbox Yhit test condition strokes to test Zhit test condition strokes to test [test bounding box items to test \]line items to test ^_`abTUVWXYZ[\]^_`abTUVWXYZ[\]^_`abTUVWXYZ[\]^_`abGHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Nonecdefghijklmnopqrcdefghijklmnopqrmlkghijfenodcpqr cdefghijklmnopqrGHC experimental!Ian-Woo Kim <ianwookim@gmail.com>NoneF  !"#$%&'()*+,-./0123456789:cdefghijklmnopqr GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Nonestststst GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Nonevrender items highlighted uvwuvwuvwuvw GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Nonexconstruct renderable item y7get embedded png image. If not, just give me nothing. z>read JPG file using GD library and create cairo image surface L currently, this uses temporary png file (which is potentially dangerous) xyz{xyz{xyz{xyz{ GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None€draw ruling all draw ruling in bbox ‚*render background without any constraint ƒ!this has some bugs. need to fix |}~ page number €‚ƒ|}~€‚ƒ|}~€‚ƒ|}~€‚ƒ GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None„render stroke …&render image : not fully implemented § render svg ¨ render svg † render item Šbackground drawing in bbox ‹.render RLayer within BBox after hittest items Œ"Background rendering using buffer „…§¨†‡©ˆ‰Š‹ŒŽ‘’“‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“„…‚†‡ˆ‰‹ŠŒŽ“ƒ’‘„…§¨†‡©ˆ‰Š‹ŒŽ‘’“GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None•render background without pdf –/render only bounding box of a StrokeBBox š/render only bounding box of a StrokeBBox ”•–—ª«˜™š Œ”•–—˜™š ”•–—˜™šŒ ”•–—ª«˜™šGHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None£temporary util ›œžŸ ¡¢£¤¬­®¯°±²³´µ¶·¸ ›œžŸ ¡¢£¤ £¡¢žŸ ›œ¤›œžŸ ¡¢£¤¬­®¯°±²³´µ¶·¸¹ !"#$%&'()*+,-./01233456789::;<<==>?@ABBCDEFGHIIJKLMNNOPPQRSTUVWXYZ[\]^_`abcdefghijklmnoppqrstuvwxyz { | } ~  € ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ Ž ‘ ’ “ ” • – — ˜ ™ š ›œžŸ ¡¢£¤¥¦§¨©ª«¬­® ¯ ° ±²³´µ¶·¸¹º»¼½¾¿ÀÁhoodle-render-0.3.2Hoodle.Util.Process Graphics.Hoodle.Render.Type.Item&Graphics.Hoodle.Render.Type.Background"Graphics.Hoodle.Render.Type.HoodleGraphics.Hoodle.Render.Util#Graphics.Hoodle.Render.Type.HitTest#Graphics.Hoodle.Render.Util.HitTest"Graphics.Hoodle.Render.Type.Select Graphics.Hoodle.Render.Primitive Graphics.Hoodle.Render.HighlightGraphics.Hoodle.Render.Item!Graphics.Hoodle.Render.BackgroundGraphics.Hoodle.RenderGraphics.Hoodle.Render.DebugGraphics.Hoodle.Render.GenericGraphics.Hoodle.Render.Type checkPipe mkTmpFileNameexistThenRemove pipeActionpipeActionWithRItem RItemLinkRItemSVG RItemImage RItemStroke isStrkInRItem isImgInRItem isSVGInRItem isLinkInRItemfindStrkInRItemfindImgInRItemfindSVGInRItem rItem2ItemRBkgOptRBkgDrawPDFInBBoxRBkgDrawBuffer RBkgDrawWhite RBkgDrawPDF RBackground RBkgEmbedPDFRBkgPDF rbkg_domain rbkg_filename rbkg_pagenorbkg_popplerpageRBkgSmpl rbkg_color rbkg_stylerbkg_cairosurfaceContext ctxt_domain ctxt_filenamectxt_docctxt_embeddeddoc isRBkgSmplrbkg2Bkg InBBoxBkgBufunInBBoxBkgBuf InBBoxOptionInBBoxunInBBoxRHoodleRPageRLayerLyBuf emptyRLayer rLayer2Layer rPage2PagerHoodle2HoodleclipBBox clearBBoxTEitherAlterHittedunTEitherAlterHitted TAlterHitted RItemHitted StrokeHittedHittedunHitted NotHitted unNotHitted AlterList:-EmptyfmapALgetAgetB interleave takeHitted isAnyHittedtakeFirstFromHittedtakeLastFromHitted isPointInBBoxdo2LinesIntersectdoesLineHitStrkdo2BBoxIntersectisBBox2InBBox1hltFilteredBy_StateT hltFilteredByhltHittedByBBoxhltEmbeddedByBBoxhltHittedByLineRoughhltItmsHittedByLine_StateT%hltItmsHittedByLineFrmSelected_StateT elimHittedmerge getTotalBBoxHHoodleHPageHLayerHLayersHLayersFhlyrt_selectedLayerhlyrt_otherLayersBufOfItmOfSLayerF selectedLayer otherLayers hLayer2RLayer hPage2RPagemkHPagedrawStrokeCurvedrawVWStrokeCurverenderStrkHltdrenderRItemHltdrenderBBoxHltd cnstrctRItemgetByteStringIfEmbeddedPNGgetJPGandCreateSurfacesaveTempPNGToCreateSurfacepopplerGetDocFromFilegetByteStringIfEmbeddedPDFpopplerGetDocFromDataURIpopplerGetPageFromDoc drawRulingdrawRuling_InBBox renderBkgcnstrctRBkg_StateT renderStrk renderImg renderItem renderPage renderRBkg renderRItemrenderRBkg_InBBoxrenderRLayer_InBBoxrenderRBkg_BufrenderRLayer_InBBoxBufupdateLayerBuf updatePageBufupdateHoodleBufcnstrctRHoodlecnstrctRPage_StateT cnstrctRLayerrenderRBkg_DummyrenderRBkg_NoPDFrenderStrkBBx_BBoxOnlyrenderImgBBx_BBoxOnlyrenderRItem_BBoxOnlyrenderRLayer_BBoxOnlyrenderRPage_BBoxOnlyStrokeBBoxOption DrawBoxOnlyDrawFullRenderOptionable RenderOptioncairoRenderOption Renderable cairoRenderpassargcairoOptionPage $fShowRItem$fGetBBoxableRItem renderSVG renderLinkdrawFallBackBkgrenderSVGBBx_BBoxOnlyrenderLnkBBx_BBoxOnly$fRenderOptionableInBBoxBkgBuf$fRenderOptionableInBBox$fRenderOptionableGPage$fRenderOptionableInBBox0$fRenderOptionableGLayer$fRenderOptionable(,)$fRenderOptionableBBoxed$fRenderOptionableStroke$fRenderOptionable(,)0$fRenderableGLayer$fRenderableBBoxed$fRenderableStroke$fRenderable(,)